如何编写 xrandr 缩放函数的脚本以切换到预定义列表中的下一个或上一个分辨率?

如何编写 xrandr 缩放函数的脚本以切换到预定义列表中的下一个或上一个分辨率?

xrandr有一个很棒的功能,可以让您缩放整个屏幕,使虚拟分辨率大于或小于实际分辨率。我在上网本的 1024x600 分辨率屏幕上使用它,以在 1280x750 分辨率工作区中工作。我可以设置键盘快捷键来增加/减少/重置我当前使用的比例因子吗?有些应用程序可以很好地利用额外的空间,而有些应用程序则难以阅读。我已经知道如何在我的发行版中设置键盘快捷键,但我不知道如何使 xrandr 接受这种差异输入

答案1

我编写了以下脚本,以便可以使用 Dell Mini 10v 上网本上的键盘快捷键动态更改比例因子:

#!/bin/bash
#/usr/local/bin/xrandr-scale-tool

#首先,我们读取配置文件
如果 [ -r ~/.config/xrandr-scale-tool/xscale ]
  然后
    xscale=$(~/.config/xrandr-scale-tool/xscale
如果 [ ! -e ~/.config/xrandr-scale-tool/output ]
  然后
    输出=LVDS1
    回声 $output>~/.config/xrandr-scale-tool/output
如果 [ ! -e ~/.config/xrandr-scale-tool/baseresx ]
  然后
    基础资源x=1024
    回声 $baseresx>~/.config/xrandr-scale-tool/baseresx
如果 [ ! -e ~/.config/xrandr-scale-tool/baseresy ]
  然后
    基础雷斯=600
    echo $baseresy>~/.config/xrandr-scale-tool/baseresy

#如果它们不可读,则以状态 1 退出
如果 [ ! -r ~/.config/xrandr-scale-tool/xscale ] || [! -r ~/.config/xrandr-scale-tool/baseresx ] || [! -r ~/.config/xrandr-scale-tool/baseresy ] || [! -r ~/.config/xrandr-scale-tool/output ]
  然后
    echo 无法读取配置文件
    1号出口

#现在,我们检查第一个参数来看看该怎么做
如果[-z“$1”]
  然后
    #从设置中恢复
    xrandr --输出 $输出 --scale ${xscale}x${xscale} --平移 0x0+0+0
    xrandr --output $output --scale ${xscale}x${xscale} --平移`xrandr -q | awk -F'当前' -F',' 'NR==1 {gsub("( |当前)","");print $2}'`

如果 [“$1”==“+”]
  然后
    #递增并应用
    金额=$2
    xscale=`回显$xscale+$amt|bc`
    xrandr --输出 $输出 --scale ${xscale}x${xscale} --平移 0x0+0+0
    xrandr --output $output --scale ${xscale}x${xscale} --平移`xrandr -q | awk -F'当前' -F',' 'NR==1 {gsub("( |当前)","");print $2}'`
    睡觉2
    通知发送“比例因子:$xscale”--icon=display

如果 [“$1”==“-”]
  然后
    #递减并应用
    金额=$2
    xscale=`回显 $xscale-$amt|bc`
    xrandr --输出 $输出 --scale ${xscale}x${xscale} --平移 0x0+0+0
    xrandr --output $output --scale ${xscale}x${xscale} --平移`xrandr -q | awk -F'当前' -F',' 'NR==1 {gsub("( |当前)","");print $2}'`
    睡觉2
    通知发送“比例因子:$xscale”--icon=display

如果 [“$1”==“重置”]
  然后
    #重置
    x比例=1
    xrandr --output $output --scale ${xscale}x${xscale} --平移 `echo $xscale*$baseresx|bc`x`echo $xscale*$baseresy|bc`
    睡觉2
    通知发送“比例因子:$xscale”--icon=display

#退出前将比例变化记录到文件中
echo $xscale>~/.config/xrandr-scale-tool/xscale
出口0

此脚本假设您的默认分辨率为 1024x600,并且您使用的是 LVDS1 上的显示器。如果不是这种情况,请编辑文件~/.config/xrandr-scale-tool以反映这一点(配置文件在首次运行后生成)。

该脚本可以通过四种方式运行:
xrandr-scale-tool从配置文件中恢复比例设置,该文件在每次运行时保存,
xrandr-scale-tool + 0.1比例增量增加 0.1。您可以在此处使用任意数字,
xrandr-scale-tool - 0.1将比例减小 0.1。同样,任何数字都会
xrandr-scale-tool reset将比例重置为 1。
每次更改比例时,notify-send都会运行,通过通知向您显示当前的比例因子。

我设置的方式是xrandr-scale-tool + 0.125映射到CtrlAlt+xrandr-scale-tool - 0.125映射到CtrlAlt-xrandr-scale-tool reset映射到CtrlAlt0xrandr-scale-tool在登录时运行,不带任何参数,以便我之前使用的任何比例在下次登录时使用。

相关内容