寬銀幕之下應用WMCTRL控制視窗

寬銀幕之下應用WMCTRL控制視窗

最近入手了21:9高解析寬銀幕整體不錯但是,有個痛點,就是太寬。

視窗放大之後無寬,大部份狀況不習慣阿,自己調整之後,視窗layout最好是:

  • 常用的左邊,比例約70%
  • 不常用但需要注意的右邊,比例約30%

Linux Mint 指令 有快捷鍵,ALT+up/down/left/right ,但是比例一般都是50%。

搜尋一下之後,看到 WMCTRL 不錯用,可以參考這兩篇用法(控制窗口應用範例[Linux] 使用 wmctrl 指令,列出現有的視窗並關閉),或是 WMCTRL MAN PAGE

share 一下我的腳本:

two-thirds-app.sh:

#!/bin/bash
current_active_window=$(xprop -id $(xprop -root 32x '\t$0' _NET_ACTIVE_WINDOW | cut -f 2) _NET_WM_NAME|sed s/.*=\ //g|sed s/\"//g)
wmctrl -r $current_active_window  -e "0,0,0,2200,1440"

one-thirds-app.sh

#!/bin/bash
current_active_window=$(xprop -id $(xprop -root 32x '\t$0' _NET_ACTIVE_WINDOW | cut -f 2) _NET_WM_NAME|sed s/.*=\ //g|sed s/\"//g)
wmctrl -r $current_active_window  -e "0,2200,0,1240,1440"

上述可以將 active 視窗,依指令上的數字調整大小。這邊寫死,懶得寫成自動。

再用 mint 介面增加 custom shortcuts

然後,就可以愉快的讓視窗layout符合習慣使用!

最後,又寫了一個自動調整所以常用視窗的layout如下:

#!/bin/bash
### help to get current app, location and size
## wmctrl -Gl |awk '{print $8,$2,$3,$4,$5,$6}'|sed -e "s/ /,/g"
## wmctrl -Gl |awk '{printf "wmctrl -r \"%s\" -e \"%s,%s,%s,%s,%s\"\n",$8,$2,$3,$4,$5,$6;}'

## setting current app, location and size
wmctrl -r "LINE" -e "0,2465,0,984,1300"
wmctrl -r "Skype" -e "0,2394,100,1055,1334"
wmctrl -r "Messenger" -e "0,2297,110,1152,1250"
wmctrl -r "Caprine" -e "0,2297,110,1152,1250"
wmctrl -r "Telegram" -e "0,2212,200,1237,1235"
wmctrl -r "Mattermost" -e "0,2127,250,1322,1181"
wmctrl -r "Slack" -e "0,2021,300,1428,1125"

wmctrl -a "Mattermost"
wmctrl -a "Telegram"
wmctrl -a "Slack"
wmctrl -a "Messenger"
wmctrl -a "Caprine"
wmctrl -a "Skype"
wmctrl -a "LINE"

這樣可以把指定的應用程式排列整齊。

歐 之前其實有用過 xtile 之類的工具,但是,總是找錯視窗,大小搞亂之類的,有點可惜。