如何更改視窗標題(由 wmctrl 使用)

如何更改視窗標題(由 wmctrl 使用)

我在用控制面板在啟動應用程式後移動應用程序,這樣我就不必為多個文字編輯器、網頁瀏覽器、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

請注意,我知道有兩種解決此問題的方法,但是,我不喜歡其中任何一種,因為如果作業系統在後台啟動程序,它們可能會導致問題。

  1. 不使用標題,而是透過-i指令使用數字視窗 ID。
  2. 使用字串: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
}

相關內容