사전 정의된 목록에서 다음 또는 이전 해상도로 전환하도록 xrandr 스케일링 기능을 어떻게 스크립팅할 수 있습니까?

사전 정의된 목록에서 다음 또는 이전 해상도로 전환하도록 xrandr 스케일링 기능을 어떻게 스크립팅할 수 있습니까?

xrandr가상 해상도가 실제 해상도보다 크거나 작도록 전체 화면의 크기를 조정할 수 있는 훌륭한 기능이 있습니다. 1280x750 해상도 작업 공간에서 작업하기 위해 넷북의 1024x600 해상도 화면에서 사용합니다. 현재 사용 중인 배율을 늘리거나 줄이거나 재설정하기 위해 키보드 단축키를 설정할 수 있나요? 일부 앱은 추가 공간을 잘 활용하는 반면 다른 앱은 읽기 어렵습니다. 배포판에서 키보드 단축키를 설정하는 방법을 이미 알고 있지만 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번 출구

이 스크립트에서는 기본 해상도가 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.125map to CtrlAlt+, xrandr-scale-tool - 0.125map to CtrlAlt-, xrandr-scale-tool resetmap to 입니다 CtrlAlt0. xrandr-scale-tool이전에 사용한 척도가 다음에 로그인할 때 사용되도록 매개변수 없이 로그인 시 실행합니다.

관련 정보