Programming

A collection of 8 posts

Linux

You Window Manager #3

在 X window 下要有半透明視窗效果,會需要至少 XComposite extension XDamange extension XFixes extension 用這些 extension 做半透明視窗功能的程式,就叫 Composite Manager (也是 X window client)。在如 metacity, mutter, compiz, kwin 中都有實現。 上面的 extension 中,一定要有 XComposite。它可以告訴 X window server 說:嘿,請把這個 window 的內容給我。那 X window

Linux

You Window Manager #2

在 Xlib 中,看 document 都會跟你說這個 function 有錯誤發生時候丟出如 BadAlloc 這樣的 error。但看 function prototype 又不一定有直接的 return value(因為動作的發生是 async 的,所以在 function return 時 error 可能還未發生),那,到底 error 是怎麼去接的?不接又會如何? 原來,在 Xlib 中提供了 XSetErrorHandler() function 可供設定 error callback。如果沒有設定這個 error callback,那

Programming

git + ssh 連線問題解法

在使用 git + ssh + key pair 認證時, 如果認證失敗只有簡單的 permission denied, 問題會很不好找. 這時候, 如果能傳入參數給 ssh, 如 -v, 至少就有更詳細的記錄印在畫面上. 好在, git 會去看 GIT_SSH 環境變數, 指向一 shell script 後, 一些額外的參數都可以放在其中. 例如 $ echo 'exec ssh -v "[email protected]"' > /tmp/ssh-wrap $ chmod +x /tmp/ssh-wrap 接著執行 git

Programming

WindowsEmbedded::Touch panel driver

在 windows CE 6.0,GWES 從 .exe 改成了 .dll,並且被放進了 kernel 中。主要的考量點是效能的問題,如此每當使用 GWES 提供的 servier 時 context switch 的次數會減少一次,在 kernel 中只要直接執行一次 function call 即可,不需要再將 request 轉出至另一個 service procee 了。 不過,相對應的,GWES 用到的 driver 也就必須要一起被放進 kernel space 中,例如: