🔎 在 KDE Dolphin 文件管理器上实现类苹果的「快速查看」
今天看到一个安利苹果电脑的视频,发现有个功能特别好用,就是「快速查看」,选中一个文件按空格就可以概览内容。而在 Linux 这边,GNOME 桌面有类似的功能,也有两个第三方软件包 gloobus-preview 和 hawkeye-quicklook 实现了类似的功能,但都并不完美,各自支持的 Mime Type 也不同,所以要自己实现。
在搜寻一番后发现,KDE Dolphin 文件管理器并没有向第三方开放获取当前选中文件的 DBus API,也不支持给 Service Menu 自定义快捷键,于是只能间接通过剪贴板解决,就写出了这个铸币脚本。
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 
 | #!/bin/bash
 
 
 
 
 xclip -selection clipboard -o > /tmp/selection
 xdotool key  --delay 0 --clearmodifiers Ctrl+c
 
 FILE_PATH=`xclip -selection clipboard -o | sed 's|^file://||'`
 FILE_NAME="`basename "$FILE_PATH"`"
 
 
 FILE_MIME=`file --mime-type "$FILE_PATH" | awk -F": " '{print $2}'`
 FILE_MIME_1=`echo $FILE_MIME | awk -F"/" '{print $1}'`
 FILE_MIME_2=`echo $FILE_MIME | awk -F"/" '{print $2}'`
 
 if [ ${FILE_NAME: -3} == ".md" ]; then
 
 hawkeye --uri="file://${FILE_PATH}"
 elif [ ${FILE_NAME: -4} == ".xml" ]; then
 
 gloobus-preview "$FILE_PATH"
 else
 if [ $FILE_MIME_1 == "text" ]; then
 if [ $FILE_MIME_2 == "plain" ]; then
 sushi "$FILE_PATH"
 else
 gloobus-preview "$FILE_PATH"
 fi
 else
 if [[ $FILE_MIME_1 == "image" ]] || [[ $FILE_MIME_1 == "audio" ]] || [[ $FILE_MIME_1 == "video" ]] || [[ $FILE_MIME_2 == "pdf" ]]; then
 sushi "$FILE_PATH"
 else
 gloobus-preview "$FILE_PATH"
 fi
 fi
 fi
 
 
 xdotool keyup Ctrl
 xdotool keyup space
 sleep 0.08s
 WINDOW_ID=`xdotool search --name "$FILE_NAME"`
 WINDOW_ID=`echo $WINDOW_ID | sed "s/\n/ /"`
 xdotool windowactivate $WINDOW_ID
 
 xclip -i -selection clipboard < /tmp/selection
 rm /tmp/selection
 
 | 
之后绑定一个窗口范围的自定义快捷键到这个 shell 脚本就行了。
可以新建组,之后这么匹配 dolphin 窗口。