工作给了我一个新显示器 - 这是一个 21:9 的屏幕,所以我希望能够并排放置 3 个窗口,但是ctrl
++快捷方式只能用于放置 2 个,而这个显示器上的那些窗口几乎太宽了。alt
keypad
答案1
介绍
下面的脚本用于将窗口大小调整为屏幕宽度的 1/3,并将它们放置在左侧、中间或右侧位置。有数字选项,0 表示左侧,1 表示中间,2 表示右侧。
该脚本依赖于,xdotool
因此请确保使用 进行安装sudo apt-get install xdotool
。
在 Unity 中,脚本必须运行于未最大化窗口。原因是 Unity 在最大化窗口时会将其锁定在原处,使其无法响应任何命令xdotool
问题。
笔记:此脚本将随着时间的推移不断更新和完善。我可能会将其添加到我的个人 GitHub 存储库中,但目前它作为要旨
设置快捷方式
转到System Settings -> Keyboard-> Shortcuts->Custom并单击+左下角的按钮以创建新条目。提供脚本的自定义名称和完整路径(或bash /path/to/script ARG
),如我的示例所示。
保存,点击右边的 ,系统会提示你按下你想要对应这个快捷键的键,我设置为Ctrl Super 1。
现在您有了将窗口放在左侧的快捷方式。对中间和右侧快捷方式重复相同步骤。
脚本源
#!/bin/bash
# run script like so: bash thirds.sh NUMBER
# where NUMBER is 0,1 or 2
# 0 is left, 1 is center, 2 is right
get_screen_geometry()
{
# determine size of the desktop
xwininfo -root | \
awk -F ':' '/Width/{printf "%d",$2/3}/Height/{print $2}'
}
xdotool getactivewindow windowsize $(get_screen_geometry )
xdotool getactivewindow windowmove \
$(get_screen_geometry | awk -v POS=$1 '{ printf "%d ", POS*$1 }' ) 0
答案2
下面的脚本是修改的答案版本谢尔盖·科洛佳日内将窗口大小调整为屏幕宽度的 1/3,并将其放置在左侧、中间或右侧位置只需一个快捷键,在最大化的窗口上也能使用。
该脚本依赖于,xdotool
因此请确保使用 进行安装sudo apt-get install xdotool
。
为命令添加键盘快捷键bash thirds.sh
(无参数)。
这是要旨也一样。
#!/bin/bash
# assign keyboard shortcut to bash thirds.sh
# run shortcut on the window to resize
# it auto cycles to the position (0)left, (1)middle, (2)right
# create a counter file to store positions
counter="thirds-counter.txt"
if [[ -f $counter ]]; then
count=$(<$counter)
else
echo "0" > $counter
fi
# determine size of the desktop
get_screen_geometry()
{
xwininfo -root | awk -F ':' '/Width/{printf "%d",$2/3}/Height/{print $2}'
}
# unmaximize the window
xdotool key 'Ctrl+Super+Down'
sleep 1
# set size of the window to one third of total to the position 0,1,2
xdotool getactivewindow windowsize $(get_screen_geometry)
xdotool getactivewindow windowmove $(get_screen_geometry | awk -v POS=$count '{printf "%d", POS*$count}') 0
# store next position to the file
count=$(((($count+1))%3))
echo "$count" > $counter