Shift 키를 사용하여 가로 스크롤 에뮬레이션


13

내 (수직) 스크롤 휠을 사용하고을 누르면 가로 스크롤을 에뮬레이션하고 싶습니다 Shift.

일부 응용 프로그램 (Chrom {e, ium})에서는 이미 작동하지만 X 응용 프로그램에 대한 일반적인 솔루션을 찾고 있습니다.

내가 지금까지 얻은 가장 가까운 것은 xbindkeys+ xdotool입니다.

# ~/.xbindkeysrc
"xdotool click 6"
  shift + b:4

"xdotool click 7"
  shift + b:5

문제는 xbindkeys일부 이벤트가 누락 된 것으로 보이며 때로는 세로 스크롤이 "가져옵니다". 이것은 매우 성가신 일입니다. xbindkeys어떤 종류의 폴링을 사용하고있는 것 같습니다 .

또한 초당 수백 개의 쉘 명령을 생성하는 것을 좋아하지 않습니다.

작은 화면이 있고 가로로 많이 스크롤해야합니다.

일반적인 가로 스크롤을 어떻게 얻을 수 있습니까?

최신 정보:

내가 함께 원하는 주로 무엇을 또 다른 방법이있다 xbindkeys하고 xmodmap.

"xmodmap -e 'pointer = 1 2 3 6 7 4 5 8 9 10'"
  c:50
"xmodmap -e 'pointer = default'"
  release + shift + c:50

Shift누르면 포인터 버튼 4와 5가 6과 7에 매핑됩니다 (버튼 4/5는 세로 스크롤이고 가로 스크롤은 6/7입니다). c:50왼쪽 Shift키입니다. 키 릴리스에서 기본 포인터 매핑이 복원됩니다.

이것은 "너무 많은 이벤트"문제를 훌륭하게 해결합니다. 그러나 Shift 키는 더 이상 일반 수정 자로 작동하지 않습니다. Shift언론 보도 자료를 다음과 xdotool같이 재발행하려고 시도했습니다 .

"xmodmap -e 'pointer = 1 2 3 6 7 4 5 8 9 10';  xdotool keydown Shift_L"
  c:50
"xmodmap -e 'pointer = default';  xdotool keyup Shift_L"
  release + shift + c:50

에 따르면 이벤트를 통해 얻을,하지만 난 그게 더 이상 수식어로 인식되지 것 같아요. 예를 들어 +를 누르면 대문자가 생성되지 않습니다 .xevShiftShiftAA


1
많은 프로그램에서 Ctrl + 화살표를 사용하여 가로 스크롤을 수행 할 수도 있습니다.
terdon

1
고맙지 만 Firefox에서는 작동하지 않습니다. 나는 모든 곳에서 작동하는 "일반적인"솔루션을 찾고 있습니다.
Paul Schyska

sudo를 사용하여 루트로 무언가를 실행하는 것이 문제가됩니까?
brm

sudo하는 것이 최적이 아닙니다. Shift를 누를 때마다 sudo-ing을 의미한다고 가정합니까? 당신이 생각하고있는 것을 정교하게 설명해 주시겠습니까?
Paul Schyska

이것은 의미가 없을 수도 있지만, 옛날에 이것은 나를 위해 일했습니다 ~/.xbindkeysrc.scm. 어느 시점에서 실패했지만 시스템에서 작동 할 수 있습니다.
Sparhawk

답변:


2

나는 나에게 맞는 해결책을 찾았다.

Shift휠 축을 누르는 동안 휠 축을 회전시키는 수정 자로서 다른 키 를 사용하는 방법을 찾지 못했습니다 .

나는 이제 .xbindkeysrc토글 버튼 으로 간단한 것을 사용하고 있습니다 :

"~/toggle.sh"
  alt + x

toggle.sh 스크립트는 다음과 같습니다.

#!/bin/sh
on()
{
  xmodmap -e 'pointer = 1 2 3 6 7 4 5 8 9 10'
}

off()
{
  xmodmap -e 'pointer = default'
}

if xmodmap -pp | grep -q '4.*6'; then
  off
else
  on
fi

이를 통해 동작을 전환 할 수 있습니다. Alt+를 누르면 X마우스 휠 축이 회전하고 다시 누르면 기본값으로 설정됩니다.

그것은 지금 작동합니다.

누군가가 Shift"수정 자"(마우스 축이 눌려있는 동안 회전)로 그것을 수행하는 방법을 찾으면 알려주십시오.

편집 : Alt+ x는 일반적으로 사용되는 핫키이므로 다음과 같이 변경했습니다.

(xbindkey '(control "b:3") "toggle-wheel.sh")

(나는 guile 구성으로 전환하여 위의 파일에 있어야합니다 .xbindkeysrc.scm)

Ctrl+ 마우스 오른쪽 버튼 으로 스크롤 휠 방향을 전환 합니다.


0

당신은 사용할 수 btnx 그것은의 GUI 구성 도구 .

최신 우분투 패키지여기

btnx-config를 사용하여 마우스에서 버튼 감지를 수행 한 후 Shift 버튼 수정 자와 함께 "Scroll Up"을 원하는 x 버튼을 누르는 것에 매핑하십시오.


고마워, 나는 페도라를 구축하는 데 문제가 있습니다.
Paul Schyska

1
btnx의 rpm 패키지를 찾았습니다. 수정자를 소스 이벤트로 매핑하는 방법을 찾지 못했습니다 (예 : Shift + WheelUp). WheelUp 에서 Shift + 다른 키로 만 매핑 할 수 있습니다 . 뭔가 빠졌습니까? 또한 처음부터 Shift + WheelUp을 "감지"하려고했지만 "버튼이 이미 매핑되었습니다"라고 말했습니다. 원시 코드는 두 경우 모두 0x02010008입니다 (Shift를 누르고 눌리지 않음). btnx가 여러 입력 장치를 전혀 처리 할 수 ​​없다고 생각합니다 (마우스 + 키보드)
Paul Schyska

0

여기 에 암시 된 것처럼 imwheel을 설치 ~/.imwheelrc하고 다음 내용으로 만들었습니다 .

".*"
Shift_L, Up, Left
Shift_L, Down, Right

그런 다음 imwheel -b 45터미널에서 달렸습니다 . 나는 테스트했으며 높은 스크롤 및 xbindkey와 관련된 대각선 문제를 발견하지 못했습니다.

NB는 위 / 아래 스크롤 만 캡처하도록 -b 45제한 imwheel하여 xbindkeys엄지 버튼의 바인딩 (예 : 바인딩 )을 방지 합니다.

문제

그러나 이와 관련된 몇 가지 문제가 있습니다.

  • 일관성이 없습니다. Firefox 및 Gwenview와 함께 작동하도록 만들 수 있었지만 Inkscape와 김프는 작동하지 않았습니다. Inkscape / GIMP와 일치하지 않는 창 일치를 사용할 수 있지만 보편적으로 작동하는 방법이 있어야합니다.
  • 더 나쁜 것은 일반적으로 줌에 사용되는 Ctrl+ 와 같은 다른 기본 이벤트를 방지 Scroll wheel합니다. 내가 좋아하는 일을 퍼팅 시도 Control_L, Up, Control_L|Up에서 ~/.imwheelrc,하지만이 작동하지 않았다.
  • imwheel가로 스크롤 휠 이벤트를 마우스 커서 아래의 창이 아닌 활성 창으로 보냅니다. 이것은 스크롤 휠의 기본 동작과 반대입니다. 이것은 또한 Ctrl위 의 해결 방법이 차선 책임을 암시합니다 .
  • imwheel더 이상 개발되지 않은 것 같습니다. 지난 10 년 동안 (2004 년 이후) 시험판 버전에 머물러있었습니다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.