設定「Xfce」搭配「Kwin」
微調腳本
微調腳本 |
---|
xfce-with-kwin |
前提
目前「Xubuntu」是採用「xfce」這個「桌面環境」,
搭配「xfwm4」這個「視窗管理器」。
現在我們要來嘗試讓「xfce」搭配「kwin」。
操作步驟
安裝「Kwin」
執行下面指令,安裝「kwin-x11」
sudo apt-get install kwin-x11
因為我們會使用到一些「Kwin Plugin」,所以執行下面指令,安裝「kwin-addons」。
sudo apt-get install kwin-addons
以上可以合併在一起,執行如下
sudo apt-get install \
kwin-x11 \
kwin-addons
關於我們用到那些「Kwin Plugin」,會在下面『關於「kwin-addons」』解說。
關於「Kwin」設定檔
關於「Kwin」設定檔路徑 |
---|
~/.config/kdeglobals |
~/.config/plasmarc |
~/.config/kcminputrc |
~/.config/kaccessrc |
~/.config/krunnerrc |
~/.config/ktimezonedrc |
設定「xfce-session」採用「kwin」
設定「Window Decoration」
在「Kwin」,「Window Decoration」預設使用的是「Breeze」
設定片段類似如下
[org.kde.kdecoration2]
NoPlugin=false
library=org.kde.breeze
theme=Breeze
我們要改採用「Aurorae Theme」。
以下舉例,要採用「Arc-Dark」這個「Aurorae Theme」。
先執行下面指令,安裝「arc-kde」。
sudo apt-get install arc-kde
執行
dpkg -L arc-kde | grep aurorae
顯示
/usr/share/aurorae
/usr/share/aurorae/themes
/usr/share/aurorae/themes/Arc
/usr/share/aurorae/themes/Arc/AUTHORS
/usr/share/aurorae/themes/Arc/Arcrc
/usr/share/aurorae/themes/Arc/alldesktops.svg
/usr/share/aurorae/themes/Arc/close.svg
/usr/share/aurorae/themes/Arc/decoration.svg
/usr/share/aurorae/themes/Arc/keepabove.svg
/usr/share/aurorae/themes/Arc/keepbelow.svg
/usr/share/aurorae/themes/Arc/maximize.svg
/usr/share/aurorae/themes/Arc/metadata.desktop
/usr/share/aurorae/themes/Arc/minimize.svg
/usr/share/aurorae/themes/Arc/shade.svg
/usr/share/aurorae/themes/Arc-Dark
/usr/share/aurorae/themes/Arc-Dark/AUTHORS
/usr/share/aurorae/themes/Arc-Dark/Arc-Darkrc
/usr/share/aurorae/themes/Arc-Dark/alldesktops.svg
/usr/share/aurorae/themes/Arc-Dark/close.svg
/usr/share/aurorae/themes/Arc-Dark/decoration.svg
/usr/share/aurorae/themes/Arc-Dark/keepabove.svg
/usr/share/aurorae/themes/Arc-Dark/keepbelow.svg
/usr/share/aurorae/themes/Arc-Dark/maximize.svg
/usr/share/aurorae/themes/Arc-Dark/metadata.desktop
/usr/share/aurorae/themes/Arc-Dark/minimize.svg
/usr/share/aurorae/themes/Arc-Dark/shade.svg
執行
ls -1 /usr/share/aurorae/themes
顯示
Arc
Arc-Dark
也就是我們可以在「/usr/share/aurorae/themes」這個資料夾
找到「Arc」和「Arc-Dark」這兩個「Aurorae Theme」。
接下來我們編輯「~/.config/kwinrc」這個檔案。
設定片段如下
[org.kde.kdecoration2]
ButtonsOnLeft=M
ButtonsOnRight=IAX
library=org.kde.kwin.aurorae
theme=__aurorae__svg__Arc-Dark
關於「ButtonsOnLeft=M
」和「ButtonsOnRight=IAX
」
可以在「Aurorae Window Decorations / Button types」找到相關的說明。
然而「theme=__aurorae__svg__Arc-Dark
」其中的「Arc-Dark
」
指的就是「/usr/share/aurorae/themes/Arc-Dark」
另外「Aurorae Theme」放置的資料夾,
除了可以放在「/usr/share/aurorae/themes/」這個資料夾,也就是「系統全域」。
也可以放在「~/.local/share/aurorae/themes」,也就是「個人區域」。
舉例我們可以在「GitHub」上找到「vimix」相關的「Aurorae Theme」。
放在「~/.local/share/aurorae/themes」這個資料夾。
設定「按鍵綁定」
我是拿我之前在「Kde Plasma」的「按鍵綁定」來做修改,
也就是使用「圖形介面程式 (shortcut)」搭配編輯「~/.config/kglobalshortcutsrc」這個檔案。
大致上,主軸的「按鍵綁定」是相同的,
只是做一些細微的調整,符合「xfce」的操作。
例如
「螢幕截圖」的「按鍵綁定」
原本在「KDE Plasma」採用的「螢幕截圖程式」是「Spectacle」。
我們要改成在「Xfce」環境所採用的「ScreenGrab」。
所以要調整「Kwin」的「按鍵綁定」。
按鍵組合 | 功能 | 執行指令 |
---|---|---|
Print | 整個桌面螢幕截圖 | screengrab --fullscreen |
Alt + Print | 啟動螢幕截圖程式 | screengrab |
Win + Print | 目前視窗截圖 | screengrab --active |
Ctrl + Print | 選取螢幕畫面區塊截圖 | screengrab --region |
仿照「/usr/share/applications/org.kde.spectacle.desktop」的作法。
複製「/usr/share/applications/screengrab.desktop」到「~/.local/share/applications/screengrab.desktop」,
編輯「~/.local/share/applications/screengrab.desktop」,加入一些「Action」如下
架構上的「設定片段」修改如下,完整的請對照我修改過後的「~/.local/share/applications/screengrab.desktop」。
[Desktop Entry]
Name=ScreenGrab
Exec=screengrab
X-KDE-Shortcuts=Alt+Print
Actions=FullScreenScreenShot;ActiveWindowScreenShot;RectangularRegionScreenShot;
[Desktop Action FullScreenScreenShot]
Name=Capture Entire Desktop
Exec=screengrab --fullscreen
X-KDE-Shortcuts=Print
[Desktop Action ActiveWindowScreenShot]
Name=Capture Active Window
Exec=screengrab --active
X-KDE-Shortcuts=Meta+Print
[Desktop Action RectangularRegionScreenShot]
Name=Capture Rectangular Region
Exec=screengrab --region
X-KDE-Shortcuts=Ctrl+Print
要注意的是在「[Desktop Entry]
」這個區塊,
要設定「Actions=FullScreenScreenShot;ActiveWindowScreenShot;RectangularRegionScreenShot;
」,
也就是「Action」的列表。
而「X-KDE-Shortcuts=
」的作用,
就是使用「圖形介面程式 (shortcut)」操作時,
加入「ScreenGrab」這個「Application」,
就會產生預設的「按鍵綁定」。
也就是會在「~/.config/kglobalshortcutsrc」這個檔案,加入如下的設定片段
[screengrab.desktop]
ActiveWindowScreenShot=Meta+Print,Meta+Print,Capture Active Window
FullScreenScreenShot=Print,Print,Capture Entire Desktop
RectangularRegionScreenShot=Ctrl+Print,Ctrl+Print,Capture Rectangular Region
_k_friendly_name=ScreenGrab
_launch=Alt+Print,Alt+Print,ScreenGrab
注意:「預設的按鍵綁定」是在「第二個欄位」,
然而「第一個欄位」才是「按鍵綁定設定值」,設定成「none
」則是停用「預設的按鍵綁定」。
最後「第三個欄位」則是「顯示名稱」。
Action | 第一個欄位 | 第二個欄位 | 第三個欄位 |
---|---|---|---|
執行動作 | 按鍵綁定設定值 | 預設的按鍵綁定 | 顯示名稱 |
_launch= | Alt+Print | Alt+Print | ScreenGrab |
FullScreenScreenShot= | Print | Print | Capture Entire Desktop |
ActiveWindowScreenShot= | Meta+Print | Meta+Print | Capture Active Window |
RectangularRegionScreenShot= | Ctrl+Print | Ctrl+Print | Capture Rectangular Region |
關於「kwin-addons」
上面有提到,因為我們會使用到一些「Kwin Plugin」,所以安裝了「kwin-addons」。
在還沒有安裝「kwin-addons」之前,
當啟動了「KDE System Settings」後,
在「Window Management / Task Switcher」這個頁面,
有兩個頁籤「Main」和「Alternative」,
在「Visualization」有一個下拉選單,選項如下
- 「Breeze」
在安裝「kwin-addons」之後,下拉選單,選項會變成如下
- 「Breeze」
- 「Compact」
- 「Cover Switch」
- 「Flip Switch」
- 「Grid」
- 「Informative」
- 「Large Icons」
- 「Small Icons」
- 「Text Only」
- 「Thumbnail Grid」
- 「Thumbnails」
可以執行「grep '"Name"' /usr/share/kwin/tabbox/*/*.json
」找到上面列出的「Name」。
- Ubuntu Package / kwin-addons / filelist
執行
dpkg -L kwin-addons
顯示
/.
/usr
/usr/share
/usr/share/doc
/usr/share/doc/kwin-addons
/usr/share/doc/kwin-addons/changelog.Debian.gz
/usr/share/doc/kwin-addons/copyright
/usr/share/kwin
/usr/share/kwin/desktoptabbox
/usr/share/kwin/desktoptabbox/previews
/usr/share/kwin/desktoptabbox/previews/contents
/usr/share/kwin/desktoptabbox/previews/contents/ui
/usr/share/kwin/desktoptabbox/previews/contents/ui/main.qml
/usr/share/kwin/desktoptabbox/previews/metadata.json
/usr/share/kwin/tabbox
/usr/share/kwin/tabbox/big_icons
/usr/share/kwin/tabbox/big_icons/contents
/usr/share/kwin/tabbox/big_icons/contents/ui
/usr/share/kwin/tabbox/big_icons/contents/ui/IconTabBox.qml
/usr/share/kwin/tabbox/big_icons/contents/ui/main.qml
/usr/share/kwin/tabbox/big_icons/metadata.json
/usr/share/kwin/tabbox/compact
/usr/share/kwin/tabbox/compact/contents
/usr/share/kwin/tabbox/compact/contents/ui
/usr/share/kwin/tabbox/compact/contents/ui/main.qml
/usr/share/kwin/tabbox/compact/metadata.json
/usr/share/kwin/tabbox/coverswitch
/usr/share/kwin/tabbox/coverswitch/contents
/usr/share/kwin/tabbox/coverswitch/contents/ui
/usr/share/kwin/tabbox/coverswitch/contents/ui/main.qml
/usr/share/kwin/tabbox/coverswitch/metadata.json
/usr/share/kwin/tabbox/flipswitch
/usr/share/kwin/tabbox/flipswitch/contents
/usr/share/kwin/tabbox/flipswitch/contents/ui
/usr/share/kwin/tabbox/flipswitch/contents/ui/main.qml
/usr/share/kwin/tabbox/flipswitch/metadata.json
/usr/share/kwin/tabbox/informative
/usr/share/kwin/tabbox/informative/contents
/usr/share/kwin/tabbox/informative/contents/ui
/usr/share/kwin/tabbox/informative/contents/ui/main.qml
/usr/share/kwin/tabbox/informative/metadata.json
/usr/share/kwin/tabbox/present_windows
/usr/share/kwin/tabbox/present_windows/contents
/usr/share/kwin/tabbox/present_windows/contents/ui
/usr/share/kwin/tabbox/present_windows/contents/ui/main.qml
/usr/share/kwin/tabbox/present_windows/metadata.json
/usr/share/kwin/tabbox/small_icons
/usr/share/kwin/tabbox/small_icons/contents
/usr/share/kwin/tabbox/small_icons/contents/ui
/usr/share/kwin/tabbox/small_icons/contents/ui/IconTabBox.qml
/usr/share/kwin/tabbox/small_icons/contents/ui/main.qml
/usr/share/kwin/tabbox/small_icons/metadata.json
/usr/share/kwin/tabbox/text
/usr/share/kwin/tabbox/text/contents
/usr/share/kwin/tabbox/text/contents/ui
/usr/share/kwin/tabbox/text/contents/ui/main.qml
/usr/share/kwin/tabbox/text/metadata.json
/usr/share/kwin/tabbox/thumbnail_grid
/usr/share/kwin/tabbox/thumbnail_grid/contents
/usr/share/kwin/tabbox/thumbnail_grid/contents/ui
/usr/share/kwin/tabbox/thumbnail_grid/contents/ui/main.qml
/usr/share/kwin/tabbox/thumbnail_grid/metadata.json
/usr/share/kwin/tabbox/thumbnails
/usr/share/kwin/tabbox/thumbnails/contents
/usr/share/kwin/tabbox/thumbnails/contents/ui
/usr/share/kwin/tabbox/thumbnails/contents/ui/main.qml
/usr/share/kwin/tabbox/thumbnails/metadata.json
我們在「Window Management / Task Switcher / Main / Visualization」下拉選單,選的是「Large Icons」
會被紀錄在「~/.config/kwinrc」,「設定片段」如下
[TabBox]
LayoutName=big_icons
我們在「Window Management / Task Switcher / Alternative / Visualization」下拉選單,選的是「Cover Switch」
會被紀錄在「~/.config/kwinrc」,「設定片段」如下
[TabBoxAlternative]
LayoutName=coverswitch
執行「grep '"Id"' /usr/share/kwin/tabbox/*/*.json
」可以找到「Id」。
執行「grep '"Name"' /usr/share/kwin/tabbox/*/*.json
」可以找到「Name」。
Name | Id |
---|---|
Compact | compact |
Cover Switch | coverswitch |
Flip Switch | flipswitch |
Grid | present_windows |
Informative | informative |
Large Icons | big_icons |
Small Icons | small_icons |
Text Only | text |
Thumbnail Grid | thumbnail_grid |
Thumbnails | thumbnails |
我們在「Window Management / Task Switcher / Main / Shortcuts / All Windows」
- 在「Forward」設定的是「
Meta + S
」,也就是按鍵綁定「Win + s
」。 - 在「Reverse」設定的是「
Meta + A
」,也就是按鍵綁定「Win + a
」。
會被紀錄在「~/.config/kglobalshortcutsrc」,「設定片段」如下
Walk Through Windows=Meta+S,Alt+Tab,Walk Through Windows
Walk Through Windows (Reverse)=Meta+A,Alt+Shift+Backtab,Walk Through Windows (Reverse)
我們在「Window Management / Task Switcher / Alternative / Shortcuts / All Windows」
- 在「Forward」設定的是「
Meta + Esc
」,也就是按鍵綁定「Win + Esc
」。 - 在「Reverse」設定的是「
Alt + Esc
」,也就是按鍵綁定「Alt + Esc
」。
會被紀錄在「~/.config/kglobalshortcutsrc」,「設定片段」如下
Walk Through Windows Alternative=Meta+Esc,,Walk Through Windows Alternative
Walk Through Windows Alternative (Reverse)=Alt+Esc,,Walk Through Windows Alternative (Reverse)
關於「KDE System Settings / Window Management / Task Switcher」這個頁面。
執行
grep '^Exec=' /usr/share/applications/kcm_kwintabbox.desktop
顯示
Exec=systemsettings kcm_kwintabbox
所以直接執行下面指令
systemsettings kcm_kwintabbox
當啟動了「KDE System Settings」後,
就會直接切換到「Window Management / Task Switcher」這個頁面。