众所周知, KDE 是 Linux 世界中最好的桌面环境。在 Linux 上提高生产效率的方法有很多,这里只写几个和 KDE 有关的,同时希望借此抛砖引玉。
trash-cli
rm -rf
文件会彻底消失掉。为了避免误操作,有人写了一个替代品 trash-cli ,从命令行里面删除的时候移动到回收站,也就是 trash:/
不过 trash-cli 有点臃肿和重复,kde 的 kioclient5 可以做一样的事情
kioclient5 move <filename> trash:/
# 这里可以用文件通配符: 删除所有 .jpg 文件
kioclient5 move *.jpg trash:/
可以在 .bashrc
里面加入这个命令来放心地删除文件
function krm(){
kioclient5 move "$@" trash:/
}
liberate Super/Win/Command Key
为了避免快捷键冲突,我给所有软件 (比如 Emacs) 添加自定义快捷键都会用 SuperKey(Microsoft 叫 WinKey,Appple 叫 CommandKey)来弄。这时候就需要禁用 SuperKey 启动开始菜单来防止误操作。
kwriteconfig5 --file kwinrc --group ModifierOnlyShortcuts --key Meta ""
# 重载配置
qdbus org.kde.KWin /KWin reconfigure
kwriteconfig5
那条命令的实际作用是在~/.config/kwinrc
里面修改了这部分
[ModifierOnlyShortcuts]
Meta=
如果你想迁移你的 KDE 设置,可以把所用自定义的设置都用脚本来表示,比如说禁用键盘上的锁屏键
# 修改 ~/.config/kglobalshortcutsrc 里面 [ksmserver] 中 Lock Session= 的值为 ",,Lock Session"
kwriteconfig5 --file kglobalshortcutsrc --group ksmserver --key "Lock Session" ",,Lock Session"
一些特别的 SuperKey
Super+H
临时隐藏标题栏
可以多显示一行代码 + 全屏的时候更舒服 :)
另外,我的第四个工作区,是一个全屏不带标题栏,无法移动,永久存在的,以 home 为根目录显示文件树,全局性质的文本编辑器,用于在任何时候Ctrl-f4跳转到编辑器,同时用编辑器的 tab 来 “顺便” 记录下最近更改的文件。可能是 VSCode,Kate, 或者 Emacs。
Super+D
显示桌面
有时候我的工作流是按照 Windows 用户的常见做法 -> 把所有文件都堆积在桌面,然后靠 Windows 右下角的显示桌面按钮来不断切换文档(不过大部分 Windows 用户的桌面都免不了文件堆积如山的命运。)
在需要的软件和需要翻阅的文档数量大的情况下,一根 Taskbar 或者 Dock 根本不够用。
我的做法是把桌面当作临时的工作空间。比如说写论文,把论文相关的所有文件,代码,资料都放到桌面,然后靠 Super-D 在不断的在桌面
和 工作中的程序
之间切换,等论文写完,再把桌面上的文件打包重命名到其它合理的地方。
Super+X
平铺显示四个工作区 -> Show Desktop Grid
Super-C
Toggle Present Windows (Current Desktop),用在窗口过多的时候切换当前桌面里的应用
workspaces
切换工作区 -> Ctrl+F1,F2,F3…
快速拖动当前窗口到另一个工作区: 拖动窗口的过程中 Ctrl+F1,F2,F3…
另外,KDE 的那个显示工作区的小插件里面的白色框是可以用鼠标拖动的
Super+T
KDE 可以为每个应用程序单独设置一些特别的属性,其中一个是对应用程序的快捷键。我把 Konsole 设置为了 Super+T。这样我可以在任意地方跳转回到 Konsole,全局只有一个 Konsole。
+ Add Property -> Shortcuts
Custom Context Menu
KDE 可以添加自定义的右键菜单,比如说我自用的通过 Inkscape
把 .svg
转换成 .eps
( LaTeX 插入 .eps 方便一些)
把如下的内容丢进 ~/.local/share/kservices5/ServiceMenus/svg2eps.desktop
即可。
[Desktop Entry]
Type=Service
ServiceTypes=KonqPopupMenu/Plugin
MimeType=image/svg+xml
Actions=svg2eps
Icon=view-refresh
[Desktop Action svg2eps]
Name=convert svg to eps
Icon=view-refresh
Exec=inkscape -D "%f" --export-type=eps
唯一重点的一行是 Exec=
。
原始的命令是 inkscape -D <filename> --export-type=eps
,然后把 <filename>
换成 %f
, Dolphin 就会在从右键使用的时候自动传入目标文件。(大写的版本%F
会传入一组文件)。
具体的写法在 Freedesktop Desktop Entry Specification-> The Exec
key 里面。
MimeType=
是匹配文件格式,可以用 file --mime-type -b <filename>
来获取,或者从 freedesktop/xdg-shared-mime-info 里面查
你可能注意到,右键菜单里面的格式,用的和 launcher(开始菜单)用的是用样的格式 .desktop
如果仔细考虑一下,他们本质上是没有区别的,只不过一个从 launcher 里面打开,另一个从右键呼出。不过通过右键打开的,可以获取一些文件和目录的信息。
详细的教程 https://develop.kde.org/docs/dolphin/service-menus/
长命令通知
如果一个命令需要运行的特别特别久,可以在命令后面加上 && notify-send <message>"
比如 ls && notify-send "finished at $(date +%c)"
不过这个通知一会就会消失,可以在设置里面,把 low priority 的通知设置成 show in history
这个同时还可以插入图片,想知道可以搜以下 KNotify/Knotifications 的 API…
永远置顶 + 在所有桌面显示
比如,我要整理一份提纲,我可以把文本编辑器缩小,然后点击左上角的两个小图标,置顶 + 在所有桌面显示。这样可以在下面放网页,放 pdf,但是我的笔记本永远不脱离我的视线,并且随意编辑。
其它的快捷键
alt+space 拉起 krunner
Super+v 复制粘贴的历史记录
Dolphin:
- F4 -> terminal
- F3 -> split
(To be continued…)