……這完完全全不是出於任何嚴肅性的需求,而是 100% 為了玩遊戲的緣故。由於基本上無法期待每款連線遊戲的區域網路搜尋功能,在各種不同條件下都能夠正常地運作。所以最直接的手段,就是在其中一部電腦開設遊戲伺服器後,其它電腦便在遊戲中手動輸入目標主機的 IP 位址,來進行連線(這些電腦全都是 Linux 系統)。因此在這個情境下,若能夠更快速地檢視電腦當前分配到的區網 IP 位址,就會顯得方便許多。
本文的操作環境為 Fedora 43 及 RHEL 9。熟練的 Linux 使用者應該已經知悉主機 IP 位址的查詢指令,例如「ip a」等等這些方式。然而在桌面環境下、以及特別是在玩遊戲的情境裡,若還得再另外開啟一個虛擬終端機視窗或分頁,並輸入指令做查詢,顯然並不是很方便。覺得最好的情形就是單獨一支視窗程式,點一下就能夠顯示 IP 位址出來。於是寫了一支名為 local_ip_viewer.py 的 Python 腳本程式,使用 Python 內建的 Tkinter 函式庫來呈現一個簡單的顯示視窗。雖然如果是更認真的圖形介面設計需求,DR 自己通常會傾向使用 PySide 或 PyQt 函式庫,但因為此次不過就是要顯示 IP 位址而已,所以就一切從簡即可。
在命令行下給予腳本可執行權限(chmod +x) 後,只要確認系統有安裝 Tkinter 函式庫(python3-tkinter),就應能夠順利執行,並顯示一個小視窗出來。然而由於最終的目的,是要能夠快速地點選並執行此程式,所以還是要再製作一個 Linux 桌面環境的啟動項目(desktop entry)。在「~/.local/share/applications」目錄下,新增一個 local-ip.desktop 文字檔,然後寫入例如以下內容:
[Desktop Entry]
Encoding=UTF-8
Name=Local IP Viewer
Exec=/home/<username>/local_ip/local_ip_viewer.py
Icon=/home/<username>/local_ip/icon.png
Path=/home/<username>/local_ip/
Type=Application
Categories=System
其中 Exec、Icon 及 Path 都必須設定相關目標的正確所在位置。由於無法使用波浪符號(~)或 $HOME 來指代使用者家目錄,所以都必須輸入完整的絕對路徑。至於 Icon 圖示,可以考慮上 Wikimedia Commons 網站隨意找一個圖示,並將圖檔儲存成 PNG 格式來用。至於 Categories 則可參照文件說明,來進行程式分類的指定。
完成前述編輯後,再執行「xdg-desktop-menu forceupdate」指令,新增的啟動項目便應能夠在桌面環境的應用程式清單中顯示出來。可以自行釘選到例如 GNOME 桌面環境的下方快捷列(Dash)中,藉此實現更快速的點選與執行。