我在用控制面板在啟動應用程式後移動應用程序,這樣我就不必為多個文字編輯器、網頁瀏覽器、pdf 檢視器和終端手動執行此操作。我發出以下 wmctrl 命令來移動應用程式
wmctrl -r <title> -e <x>,<y>,0,-1,-1
其中 < x > 和 < y > 是水平和垂直目標座標,< title > 是傳回的應用程式名稱wmctrl -l
。如果我透過以下命令啟動谷歌瀏覽器的兩個副本,
google-chrome &
google-chrome &
然後發出命令
wmctrl -l
傳回的視窗名稱是
0x03c06fd9 0 main New Tab - Google Chrome
0x03c0703d 0 main New Tab - Google Chrome
現在,如果我嘗試使用以下命令將其中一個移動到任意座標,例如 100,100
wmctrl -r "Google Chrome" -e 100,100,0,-1,-1
如果你還沒猜到的話,它會移動我目前正在輸入的這個 google chrome 窗口,因為我在其他兩個視窗之前打開了它。
從命令列啟動時是否有某種方法可以分配這些視窗標題,或者稍後重置它們。我需要將名稱更改為類似的名稱
Google Chrome 1
Google Chrome 2
Google Chrome 3
請注意,我知道有兩種解決此問題的方法,但是,我不喜歡其中任何一種,因為如果作業系統在後台啟動程序,它們可能會導致問題。
- 不使用標題,而是透過
-i
指令使用數字視窗 ID。 - 使用字串
:ACTIVE:
來使用活動窗口
答案1
使用包xttitle
中的程式xttitle
。注意 x 中的兩個“t”TT伊萊。嗯,實際上,有 3 個“t”……但我只是輸錯了前兩個。
這是 my 的一個範例~/.bashrc
,其中我覆蓋了cd
內建函數,並用於xttitle
將當前目錄放入我的視窗標題中:
# from the "xttitle(1)" man page - put info in window title
update_title()
{
[[ $TERM = xterm ]] || [[ $TERM = xterm-color ]] && xttitle "[$$] ${USER}@${HOSTNAME}:$PWD"
}
cd()
{
[[ -z "$*" ]] && builtin cd $HOME
[[ -n "$*" ]] && builtin cd "$*"
update_title
}