Arch Linux 手動微調
安裝 Gnome Extensions
出現 No such native application org.gnome.chrome_gnome_shell 時,安裝:
sudo pacman -S gnome-browser-connector有時會遇到 extension 不相容的問題,可以查看 gnome-shell 的版本:
gnome-shell --versionNiri Window Manager
一個操作方式相當神奇的平鋪式視窗(tiling window)的 wayland compositor。
sudo pacman -Syu niri xwayland-satellite xdg-desktop-portal-gnome xdg-desktop-portal-gtk alacritty dms-shell-niri matugen cava qt6-multimedia-ffmpegxwayland-satellite在 wayland 裡向下相容 X11xdg-desktop-portal-gnome&xdg-desktop-portal-gtk給 wayland 的視窗隔離加入口dms-shell-niriDankMaterialShell (懶人包 😂)matugenmaterial you 的動態配色工具cavaaudio visualizer 工具 - karlstav/cava: Cross-platform Audio Visualizerqt6-multimedia-ffmpeg提供 Qt6 框架軟體的音視訊解碼能力
systemctl --user add-wants niri.service dms--user不需要 sudo 權限,屬個人帳號底下add-wants A B只要 A 程式被啟動,順便把 B 程式也一併叫醒
GTK / Qt(Widget Toolkits)
GUI 工具包主要被這兩大門派瓜分,GTK / Qt。
GTK (GIMP Toolkit)
GNOME 家族標配,像是 GNOME 桌面、Firefox、GIMP、還有 dms-shell-niri 也是
Qt
KDE 家族的標配,像是 KDE Plasma 桌面、VLC、OBS、以及上面裝的 qt6-multimedia-ffmpeg
XDG
X Desktop Group 的縮寫(現在更名為 Freedesktop.org),是一個標準制定委員會,制定了一套全 Linux 通用的標準,可以相同的 API 來控制 GUI 介面,不論是 GTK 還是 Qt。
以 wayland 使用下為例,當 Firefox 想要開啟「檔案選單」時……
- Firefox:依照 XDG 標準,我要申請開一個檔案選單
xdg-desktop-portal:收到請求,轉交xdg-desktop-portal-gnomexdg-desktop-portal-gnomegnome 的檔案選取視窗
Wayland / Xorg (Display Server or Protocol)
xorg 與 wayland 通稱都叫圖像的通訊協議(communication protocol),它標準化了應用程式和桌面環境如何跟「顯示卡」通訊,包含內顯。
嚴格來說是規定了應用程式(Client)如何跟顯示伺服器(Server / Compositor)溝通,再由伺服器整合畫面後丟給內顯/獨顯驅動。
例如說 google chrome 被開起來,就會藉由這個協議告訴顯卡「我要開啟 chrome」,裡面的內容是個網站,有個頁籤,高 10 個像素……但重點是,它只是一個協議,或是想像成一張對照表,實際上要怎麼運作還是得靠其他部份的協作才能達成。
既然是主要與顯示卡溝通,那麼溝通的方式與品質以及雙方的問題都會左右使用者的體驗。
Xorg
X 的出現比 Linux 還要早, X 基本上就是隨著 unix 的出現一起被造出來。當時計算機遠不如現在強大,硬體也只求終端機能夠顯示罷了,一個機台是多個螢幕多人共用。
為了應付這樣的需求誕生了 X 。
希望的就是顯示都交給一個共用的顯示用電腦去運算就好,所以才會有 X server / X client,但因為過於頻繁的交流與對接,導致相當高的延遲成為 X 的一大問題,多開可能因為效能下降產生時間差,也就是畫面撕裂。

現在說 X11(或稱 X11 Protocol)不是軟體名稱,也不是 Xorg 的版本號,它是這個圖像通訊協議的第 11 代規格說明書,最早由麻省理工學院(MIT)在 1984 年開發,就叫 X Window System,後來從 X1 滾動更新到了 X11,於 1987 年 9 月 X11 的核心規格定型後就再也沒大改版過……
Wayland
wayland 其實也是 x 維護者發起的,在 2010 年左右正式列入取代 x 的計畫。 在 wayland 叫 Client-Side Rendering (CSR),減少了來回溝通的流程,延遲低,且 client 各自獨立(同時也增加了安全性,但也導致 client 沒有看到其他視窗的權限)。
Client 自己用 CPU/GPU 把整個視窗的每一顆像素(buffer)在記憶體裡自己畫完,然後直接整塊給 wayland 顯示。
雖然表面上看起來 client 做的事變多了,但對於如今多數電腦都備有足夠 GPU(不論是內顯還是獨立顯卡) 的情況下,不必再如同 Xorg 在 client 和 server 間消耗 CPU 效能去複製和搬運記憶體。

也就是說,現在 wayland compositor 的工作其實相當於過去 display server + window manager + compositor 的功能。
Display Manager
早期多台機器共用一個中央伺服器,控制每個 Display(顯示終端)的帳號密碼與開啟各自的圖形視窗而稱為 Display Manager。
其實就是指圖形登入介面(Login Manager),當你開機、核心載入完畢後,DM 是第一個跳出來的圖形畫面(像是之前裝的 gdm),透過系統的 PAM 模組驗證你是不是本人。
輸入完密碼按下 Enter 後,DM 會去讀取系統裡的 /usr/share/wayland-sessions/ 資料夾,看看你這台電腦裝了哪些桌面。
NVIDIA Fix
Heap Reuse Quirk(記憶體堆積回收機制失效)問題,簡單來說, compositor 會去跟顯示卡申請一塊顯示記憶體(VRAM)來畫,照理上軟體關掉時,Niri 會把這塊 VRAM 釋放、還給顯示。
但這個 bug 是即使軟體關掉時 VRAM 繼續扣留,導致 niri 的 VRAM 用量大幅上升。對於 VRAM 較小的筆電有可能直接凍結。
如果非得使用 N 卡可參照:Nvidia - niri
Keybindings(內建)
Mod+Otoggle-overviewMod+U/Mod+Ifocus-workspace-down / upMod+Ctrl+U/Mod+Ctrl+Imove-column-to-workspace-down / upMod+BracketLeft/Mod+BracketRightconsume-or-expel-window-left / rightMod+Comma/Mod+Periodconsume-window-into-column / expel-window-from-columnMod+Fmaximize-columnMod+Shift+Ffullscrenn-windowMod+Mmaximize-window-to-edgesMod+V/Mod+Shift+Vtoggle-window-floating / switch-focus-between-floating-and-tililngMod+Minus/Mod+Equalset-column-width +-10%Mod+Shift+Minus/Mod+Shift+Equalset-window-height +-10%
Window Rule / Layer Rule
- Window Rule(普通視窗規則)即傳統意義上的應用程式視窗,像是 Firefox、Alacritty、Spotify……這些視窗是 Niri 的平鋪的主要對象。
- Layer Rule(圖層規則)Wayland 把螢幕畫面切成了好幾層特殊的高度圖層(Layer-Shell),包含可能有系統通知框、鎖定畫面、DMS……
Transparent / Blur
如果需要使用透明背景,需取消 Client-Side Decorations(CSD),避免 client 自己負責把外框等畫出來,進而把外框的渲染交給 niri, 將以下取消註解:
prefer-no-csdBlur 則參考 Window Effects - niri
DankMaterialShell
dsearch原生檔案系統搜尋工具
# Check version
dsearch version
# Build initial index
dsearch index generatedgop(Dank GO Process Status)系統監控工具
GTK Theme / Icon / Cursor
sudo pacman -S adw-gtk-theme
sudo pacman -S papirus-icon-theme- icon 可參考:somepaulo/MoreWaita: An expanded Adwaita-styled companion icon theme with extra icons for popular apps and MIME types to complement Gnome Shell’s original icons.
- cursor 可參考:ful1e5/Bibata_Cursor: Open source, compact, and material designed cursor set.
Alacritty
NerdFont
sudo pacman -S ttf-jetbrains-mono-nerd
// or
sudo pacman -S ttf-firacode-nerd確認一下:
fc-list : family | grep -i "jetbrains.*nerd"Zsh
也是 MacOS 的預設 shell,主要在客製化方面有相當多的資源。
sudo pacman -S zsh
chsh -s /bin/zsh一些熱門的插件:
sudo pacman -S zsh-syntax-highlighting zsh-autosuggestions- zsh-users/zsh-syntax-highlighting: Fish shell like syntax highlighting for Zsh.
- zsh-users/zsh-autosuggestions: Fish-like autosuggestions for zsh
Starship
一個 shell 的裝飾性工具
Tmux
Nvim
需事先裝好:
tree-sitter-cli
sudo pacman -S cargo-binstall
cargo binstall tree-sitter-cli
echo 'export PATH="$HOME/.cargo/bin:$PATH"' >> ~/.bashrc
source ~/.bashrcripgrepfdstyluaprettier
sudo pacman -S nodejs pnpm
pnpm add --save-dev --save-exact prettierGDM
paru -S gdm-settings