iT邦幫忙

鐵人檔案

2026 iThome 鐵人賽
回列表
Software Development

用python做一個X11 WM 系列

用python的xlib,ewmhlib做x11 WM

參賽天數 14 天 | 共 14 篇文章 | 1 人訂閱 訂閱系列文 RSS系列文
DAY 1

Day 1|簡單開頭

之前我有稍微做一點(repo在這裡),看一下tinywm,文檔,api參考跟問ai,沒有系統開發經驗的我還是看不懂那些東西所以就放棄了,但每天都在用i3WM心中...

2026-09-03 ‧ 由 zixgggg 分享
DAY 2

Day 2|環境配置

python 選擇用python是因為語法簡單,套件多,正因為比較簡單所以可以注重在學習框架本身,不需要分心處理指針,記憶體那些的我是用uv管理python依賴...

2026-09-04 ‧ 由 zixgggg 分享
DAY 3

Day 3|基本Xlib結構(?

這是我原本repo裡的main.py import subprocess from Xlib.display import Display from Xlib...

2026-09-05 ‧ 由 zixgggg 分享
DAY 4

Day 4|顯示鼠標(我要瘋了

為什麼光是一個顯示鼠標就發文呢?因為沒有api參考 我直接翻python-xlib的原碼(.venv/lib/python3.13/site-packages/...

2026-09-06 ‧ 由 zixgggg 分享
DAY 5

Day 5|還沒開始寫就在debug

昨天太早發文章,這裡其實有一個粗略的api參考, 我都不知道xlib有這麼多鼠標我猜全世界只有我跟xlib開發者知道,但他們大概也忘了所以全世界只有我知道XD...

2026-09-07 ‧ 由 zixgggg 分享
DAY 6

Day 6|今天沒時間

每個禮拜二放學要補習所以今天來不及做東西,昨天後來我找到問題了,就是可惡的num lock害我debug超過三小時,因為xlib會把他算進去,比如super+q...

2026-09-08 ‧ 由 zixgggg 分享
DAY 7

Day 7|試著移動和調整視窗大小

configure()可以移動和調整視窗大小,但是你看文檔他寫configure ( onerror = None, **keys ),好像寫跟沒寫一樣。 翻到...

2026-09-09 ‧ 由 zixgggg 分享
DAY 8

Day 8|試著聚焦視窗

set_input_focus()聚焦視窗,他的參數我還不太懂 from Xlib import display,X,XK,xobject,Xcursorfon...

2026-09-10 ‧ 由 zixgggg 分享
DAY 9

Day 9|試著用滑鼠移動視窗

其實跟tinywm.py差不多 我移動邏輯的旁邊有寫注釋 from Xlib import display,X,XK,xobject,Xcursorfont d...

2026-09-11 ‧ 由 zixgggg 分享
DAY 10

Day 10|用滑鼠右鍵調整視窗大小

調大小的原理跟移動差不多,視窗原本的大小加上滑鼠移動的距離,下面註解我都有寫到(那些註解是我寫的,不要以為很詳細就是AI。 XD) from Xlib impo...

2026-09-12 ‧ 由 zixgggg 分享