KDE 的奇技淫巧(第一弹)

众所周知, 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 的那个显示工作区的小插件里面的白色框是可以用鼠标拖动的

image

Super+T

KDE 可以为每个应用程序单独设置一些特别的属性,其中一个是对应用程序的快捷键。我把 Konsole 设置为了 Super+T。这样我可以在任意地方跳转回到 Konsole,全局只有一个 Konsole。


+ Add Property -> Shortcuts

Custom Context Menu

KDE 可以添加自定义的右键菜单,比如说我自用的通过 Inkscape.svg 转换成 .eps( LaTeX 插入 .eps 方便一些)

image

把如下的内容丢进 ~/.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)"

image

不过这个通知一会就会消失,可以在设置里面,把 low priority 的通知设置成 show in history


image

这个同时还可以插入图片,想知道可以搜以下 KNotify/Knotifications 的 API…

永远置顶 + 在所有桌面显示

比如,我要整理一份提纲,我可以把文本编辑器缩小,然后点击左上角的两个小图标,置顶 + 在所有桌面显示。这样可以在下面放网页,放 pdf,但是我的笔记本永远不脱离我的视线,并且随意编辑。

image

其它的快捷键

alt+space 拉起 krunner
Super+v 复制粘贴的历史记录
Dolphin:

  • F4 -> terminal
  • F3 -> split

(To be continued…)

9赞

好! :+1: :+1: :+1: :+1: :+1: :+1:

GNOME 用户表示羡慕

能和用户的期望,需求互相匹配的桌面环境就是合适用户的桌面环境。

Xfce Yes !

GNOME 用户表示我离不开动态工作区,四个不够用(

1赞

KDE 可以用右下角的加减按钮可以 “手动动态”,

迫害 GNOME 日常 :rofl:

1赞

第二弹推荐:
部件:window buttons
kwin 脚本:hide titles
窗口行为:atl + 鼠标左键 设置为移动窗口。