更新於 2024/04/28閱讀時間約 13 分鐘

Steam Deck OLED 小主機調教記錄

本文同時發佈於 Hashnode

看了國外一些用 Steam Deck 拿來當小主機用的影片感覺很心動,去年底 OLED 版推出時想把他拿來代替我的 Macbook Pro,原本是用 MBP 外接螢幕上下看,但除了前端開發外,其實很少用到 mac 螢幕,加上換了比較大的主螢幕後需求更低了,而且同時使用也會佔桌面前後空間

當然我知道一般人都是筆電蓋起來放旁邊當個小主機用,我以前有接雙螢幕時會這樣做,但因為雙螢幕需要時常轉頭傷到脖子後就放棄了


想想我也沒在玩什麼 3A 大作,更沒有在訓練 AI(被時代拋棄)

所以 M 系列晶片對我來說應該算是資源過剩,加上原本的 Linux PC 壞掉後就有在考慮改用 Linux 小主機,但一直沒有特別滿意的,也沒什麼動力;然而這次出的 OLED 有打中我,目前從下單入手到現在一個多月逐漸習慣了,所以把遇過的坑記錄一下

本文章需要對 ArchLinux 或衍生的發行版有操作經驗或基本瞭解


系統設定

在開始前先在 Konsole 裡面輸入 passwd 設好 root 密碼


優化

🛠️ CryoUtilities

https://github.com/CryoByte33/steam-deck-utilities

CryoUtilities 算是當小主機用之前必須先弄的優化方案,安裝好後打開輸入密碼,直接點 Recommended 就行

VRAM 的部分需要進到 BIOS 裡設定,原本建議是 4GB,但想說我沒有玩什麼很吃資源的遊戲所以設 2GB,不過平常使用時還是會有意無意的卡一下,所以重灌後就照建議設 4GB 了,再觀察

參考來源


🛠️ Decky Loader

https://github.com/SteamDeckHomebrew/decky-loader

目前不急著試,先坑起來放著


套件管理

📦 Pacman

不建議直接用 pacman 安裝套件,官方說法是在系統更新時可能會洗掉安裝的東西,但其實有比可能會被洗掉更大的問題存在

一是官方維護的套件版本大多偏舊,而 Steam 除了 Arch 之外還有另外維護自己的專屬套件與 library,所以換 mirrorlist 不是個明智的選擇

二是系統的硬碟分割很吃緊,可能裝沒幾個就沒空間了,主要還是看該套件對應到哪些系統資料夾就是

三是官方有對已安裝的套件刪掉部分檔案,比如附圖的 stdio.h 是包在 glibc 裡;雖然該套件已安裝,但大部分的檔案都刪掉了,若你裝的套件(比如 AUR)或是專案是需要編譯的話則會遇到很大的麻煩,當然你也可以選擇超暴力解,把所有東西重裝一遍,或是改用 brew 安裝,但大部分的問題似乎只要重裝 glibclinux-api-headers 就能解決

如果決定要裝的話,先輸入以下兩行指令解鎖系統讀寫跟初始化,我還是有裝一些 KDE 相關以及不需要最新版的套件

sudo steamos-readonly disable
sudo pacman-key --init && sudo pacman-key --populate

📦 Yay

https://github.com/Jguer/yay

AUR 的套件管理器,照著 Binary 的方案安裝即可,但鑑於上述的風險,安裝 AUR 套件時建議選擇 -bin 結尾或是 AppImage 的套件

📦 Homebrew

https://docs.brew.sh/Homebrew-on-Linux

非 GUI 相關套件的最佳選擇,會安裝在 home 資料夾底下,所以重灌後不用擔心會洗掉,缺點是套件相依性會照 brew 的設定走,所以有可能會因為一個套件而連帶裝了大量相依的東西

📦 Flatpak

官方建議的安裝方案,直接用 KDE 的 Discover 軟體中心安裝即可,但我發現少數的套件並非最新版也沒法抓到更新,後來我在設定裡直接按新增來源,再把 Flathub 的軟體庫重新加入一次之後就正常了

📦 Nix

https://github.com/NixOS/nix

Steam Deck 在去年增加了 /nix 資料夾,重灌後也可以保留安裝的東西(其實就是連到 /home/.steamos/offload/nix),以後 GUI 套件就用 Flatpak,CLI 就用 Nix

不過 Steam Deck 預設還沒有安裝 nix 指令,看了一下安裝跟操作似乎都比 Homebrew 還要麻煩,不過既然都要變預設了,有空的時候再研究一下把 Homebrew 安裝的改到 Nix 上去


輸入法

之前在 Mac 是使用威注音輸入法,對 Dvorak 佈局有很完整的支援,十分推薦。遷移到 Steam Deck 之後原本是用 Fcitx 的新酷音,但他對該佈局的支援不包含標點符號的位置,逗號、句號那些都跟 Dvorak 一樣在鍵盤左半邊,而且頓號打不出來

後來改用 RIME 的中州韻輸入法,除了自訂成 Dvorak 對應外,標點符號也有做對應的變動

將檔案存成 bopomofo_tw.custom.yaml 放到 ~/.var/app/org.fcitx.Fcitx5/data/fcitx5/rime下,也可以照下面的設定點開使用者資料夾,放好後重新啟動輸入法即可

另外由於 Fcitx 也是以 Flatpak 的形式安裝,所以以前原生的輸入法設定不再管用,若你需要用 Bottles、Lutris 等 Wine 方案來跑 Windows 的軟體,則必須在權限下新增這三個環境變數才能正常打字

不過這樣繼續讓輸入法跟鍵盤佈局爭鬥也不是辦法,可能真的要考慮考慮行列輸入法也說不定,另外威注音長期計劃也打算跨平臺支援,算是我的 Mac 生涯中最好用的輸入法,值得期待

參考來源


開發環境

Terminal

Yakuake 讚,每次用 Linux 必裝

另外還有 WezTerm 作為 Helix 編輯器載體


Shell

雖然 Fish 在這幾年關注度有提高,但我個人比較喜歡 Nushell,不過 Nu 目前尚未 1.0,許多 config 語法會因為版本更新而必須調整,加上 Steam Deck 提供的版本並非最新版,所以無法直接套用從 Mac 備份過來的設定檔,只能用 brew 裝

原本用的美化方案 Oh My Posh 改成比較輕量的 Starship,而 Starship 本身也有提示功能,所以不想折騰的直接用 Zsh 也行

另外像 Konsole、Yakuake 等預設要用哪個 shell 不是用 chsh 調整,而是要去設定重新指定路徑,WezTerm 也一樣


IDE

VSCode 目前還是首選,雖然他是用 Electron,但我在沒有跑優化前打開來還是能正常使用,反倒是另一個主打 Rust 開發的 Lapce 我一打開來就當機,開了五次當了四次

不過大概是因為 Flatpak 的影響,VSCode 的 terminal 抓到的 shell 不是外部的,所以現在用 Yakuake 代替

另一個 Rust 寫的 Zed 在最近也開源了,雖然目前只有 Mac 版就是,加減期待一下吧


編輯器

NeovimHelix 等需要在 terminal 執行的編輯器,會因為 Flatpak 的關係導致無法直接用指令開啟,另外因為環境封閉的關係,還需要另外安裝 org.freedesktop.Sdk.XXX才能用 LSP 做語法檢查、highlight 等功能,完全是本末倒置

更別說個別的版本還得等官方更新了,有些甚至沒有對應的資源,如果要照著弄,還會導致一些語言或 framework 的支援還得特地連到 Flatpak 之外的環境才行,對於 Vue、React 等前端開發只是自找麻煩

另外對於編輯器的選擇,比起 Neovim,我對 Helix 的興趣要大一些,雖然 plugin 之類的功能尚未實作,但目前拿來開發一些小專案也是綽綽有餘


版本控制

直接用 pacman 裝 docker 跟 docker-compose 掛 volumes 把專案打包就好,頂多就是編輯器需要接 LSP 所以用 brew 裝一下

不想用 docker 的方案也可以考慮用 asdf 來做版本控制


設計

網頁設計

想要讓 Flatpak 版本的 Figma 抓到系統字型的話,記得把 /usr/share/fonts/usr/local/share/fonts再加一次才能讀到字型,重灌後記得重新加一次

平面列印

好幾年前因為有做海報、名片等設計需求所以有買 Affinity 三兄弟,雖然我的功力跟需求並沒有到非常需要專業軟體,但當時 Inkscape 很不穩定,Scribus 很過時,也是不爽 Adobe 開始推訂閱制所以買了 Affinity 來支持

然而 Affinity 的產品用 Wine 跑不起來,現在也只剩名片有在更新內容,所以就先在 Affinity 把他匯出成 svg 轉到 Inkscape 處理,本來是想讓 Scribus 接手,但 Scribus 用起來感受實在是太糟糕了,而 Inkscape 如今也變得很穩定了,Scribus 只要負責匯出就好,加上現在有不少網路服務,所以先這樣撐著


圖片管理

Eagle 目前還可以用 Wine 啟動,瀏覽器附加元件可以正常保存圖片;用 Lutris 跑比用 Bottles 正常,在 Bottles 底下有些圖會跑不出來,但 Lutris 會讓桌面 icon 無法點擊,我很懷疑接下來要出的 4.0 是否也能正常運行

前陣子有看到 Allusion 這個 app,但還沒實際試過,先裝起來放著


其他

瀏覽器

當初沒優化時用 Brave 瀏覽器一天當機兩三次,用 Edge 兩三天才會當一次

不過 Edge 在開 Youtube 時界面都會卡很久才載入,跟前陣子的 AdBlock 事件無關,就是單純超卡。後來發現 Floorp 這個 Firefox 改的瀏覽器,Youtube 載入很正常,目前體驗下來各方面都很不錯,現在是我的預設瀏覽器,而 Edge 頂多在網站開發時才會用到

更重要的是,Chrome 為基礎的瀏覽器在使用 Picture in Picture 功能時視窗大小有限制,如果把視窗拉到 Steam Deck 裡就會變得很小,而 Firefox 則沒有這個限制,不僅能顯示字幕還能全螢幕,讓我的 Steam Deck 在桌面環境下外接螢幕時有額外用途

Edge

Floorp

你可能會在 Discover 裡發現他叫 Floorp Lightning,這是停止更新的版本,遇到的話照上面套件管理的地方把 Flathub 來源重新加一次應該就正常了

另外記得打開瀏覽器的使用者目錄讀寫權限,否則可能沒法拖拉檔案上傳

對有觀看直播的需求但又不是很常互動的人,把直播改到 VLC 上觀看可以讓瀏覽器少吃點資源,Youtube 可以直接把網址貼上就行,Twitch 的話可以用 Chrome Video m3u8 Sniffer 附加元件把 m3u8 網址複製下來即可


聊天軟體

Line 用 Bottles 跑比較正常,執行器用 sys-wine,也能正常打字,只是不想看到視窗的話記得縮小或關掉,不然會有殘影在上面


一些推薦套件

📦 Pacman

  • kdegraphics-thumbnailers:讓 Dolphin 檔案瀏覽器有圖片縮圖預覽功能
  • qt5-imageformats:同上,讓縮圖增加 webp 支援
  • ffmpegthumbs:同上,增加影片格式支援

📦 Yay

  • Shutter:截圖工具,內建的 Spectacle 不太好用,在螢幕有設定等比例放大的狀況下視窗截圖有機會跑掉;但 Shutter 正常,只是沒有 Flatpak 版本

📦 Flatpak


結尾

目前使用下來大致穩定,但每週還是有機會當機一次,不確定到底是我太操還是抽到機王。另外由於 Flatpak 的方案,遇到問題時還得多考慮是不是跟權限設定有關

一般玩家當然不推薦,但對於有在把 Linux 當成個人電腦來用的人來說,算是很有趣的經驗,我不確定我這決定能撐多久,但就現階段來說是滿意的

分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.