Shift 키를 사용하여 가로 스크롤 에뮬레이션 것 같습니다 . 또한 초당

내 (수직) 스크롤 휠을 사용하고을 누르면 가로 스크롤을 에뮬레이션하고 싶습니다 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



답변

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

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+ 마우스 오른쪽 버튼 으로 스크롤 휠 방향을 전환 합니다.


답변

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

최신 우분투 패키지여기

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


답변

여기 에 암시 된 것처럼 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 년 이후) 시험판 버전에 머물러있었습니다.