事前定義されたリストから次または前の解像度に切り替えるためにxrandrスケーリング機能をどのようにスクリプト化できますか?

事前定義されたリストから次または前の解像度に切り替えるためにxrandrスケーリング機能をどのようにスクリプト化できますか?

xrandr仮想解像度が実際の解像度よりも大きくまたは小さくなるように画面全体のサイズを変更できる優れた機能があります。 1280×750解像度ワークスペースで作業するために、ネットブックの1024×600解像度画面で使用します。現在使用している倍率を増減、リセット、またはリセットするためにキーボードショートカットを設定できますか?一部のアプリは余分なスペースを活用し、他のアプリは読みにくいです。ディストリビューションでキーボードショートカットを設定する方法は既にわかっていますが、xrandrがこの差分入力を許可する方法はわかりません。

ベストアンサー1

Dell Mini 10vネットブックでキーボードショートカットを使用してスケールを動的に変更できるように、次のスクリプトを作成しました。

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

#まず、設定ファイルを読みます。
if [ -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
    エコ $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 ]
  それから
    エコーが設定ファイルを読み込めませんでした。
    1番出口
フィリピン諸島

#最初のパラメータをチェックして、何をすべきかを確認します。
if [-z "$1"]
  それから
    #設定から復元
    xrandr --output$output --scale ${xscale}x${xscale} --shift 0x0+0+0
    xrandr --output $output --scale ${xscale}x${xscale} --pan `xrandr -q | awk -F'current' -F',' 'NR==1 {gsub("( |現在) ","");$2}'` 印刷
フィリピン諸島

if["$1"=="+"]]
  それから
    #増分と適用
    金額=$2
    xscale=`エコ $xscale+$amt|bc`
    xrandr --output$output --scale ${xscale}x${xscale} --shift 0x0+0+0
    xrandr --output $output --scale ${xscale}x${xscale} --pan `xrandr -q | awk -F'current' -F',' 'NR==1 {gsub("( |現在) ","");$2}'` 印刷
    睡眠2
    通知が送信されました "スケール: $xscale" --icon=display
フィリピン諸島

if["$1"=="-"]
  それから
    #削減と適用
    金額=$2
    xscale=`エコ $xscale-$amt|bc`
    xrandr --output$output --scale ${xscale}x${xscale} --shift 0x0+0+0
    xrandr --output $output --scale ${xscale}x${xscale} --pan `xrandr -q | awk -F'current' -F',' 'NR==1 {gsub("( |現在) ","");$2}'` 印刷
    睡眠2
    通知が送信されました "スケール: $xscale" --icon=display
フィリピン諸島

if["$1"=="リセット"]
  それから
    #初期化
    比率=1
    xrandr --output $output --scale ${xscale}x${xscale} --pan `echo $xscale*$baseresx|bc`x`echo $xscale*$baseresy|bc`
    睡眠2
    通知が送信されました "スケール: $xscale" --icon=display
フィリピン諸島

#終了する前にファイルの割合の変更を記録します。
エコ $xscale>~/.config/xrandr-scale-tool/xscale
0番出口

このスクリプトでは、デフォルトの解像度が1024×600で、LVDS1でモニターを使用していると仮定します。それ以外の場合は、~/.config/xrandr-scale-toolそれを反映するようにファイルを編集します(設定ファイルは最初の実行後に作成されます)。

スクリプトは4つの方法で実行できます。
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.125map to CtrlAlt+xrandr-scale-tool - 0.125map to CtrlAlt-xrandr-scale-tool resetmap toですCtrlAlt0xrandr-scale-tool以前に使用した尺度が次回のログイン時に使用されるように、パラメータなしでログイン時に実行します。

おすすめ記事