如何在 14.04 中使用键盘快捷键将 3 个窗口并排放置?

如何在 14.04 中使用键盘快捷键将 3 个窗口并排放置?

工作给了我一个新显示器 - 这是一个 21:9 的屏幕,所以我希望能够并排放置 3 个窗口,但是ctrl++快捷方式只能用于放置 2 个,而这个显示器上的那些窗口几乎太宽了。altkeypad

答案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

相关内容