Openbox는 xmodmap 구성을 재정의합니다.

Openbox는 xmodmap 구성을 재정의합니다.

Linux Mint 13을 실행하는 노트북에 openbox를 설정하고 있습니다. Caps Lock 키가 추가 제어 키 역할을 하도록 하고 싶습니다. 필요한 설정을 파일에 넣고 ~/.Xmodmap다음을 실행하여 확인했습니다.

xmodmap ~/.Xmodmap

잘 작동합니다.

그러나 Openbox 세션에 다시 로그인하면 이러한 중요한 변경 사항이 없습니다. 위 xmodmap명령을 실행하면 다시 작동하지만 시작 시 자동으로 발생하도록 하고 싶습니다.

흥미로운 점은 내 파일에 zenity다음 테스트 명령을 추가했다는 것입니다.~/.config/openbox/autostart

zenity --info --text=Hello

그러면 작은 대화 상자 창이 생성되고 대화 상자가 닫힌 후에만 종료됩니다.

이제 Openbox 세션에 다시 로그인하면 Caps Lock이 Ctrl 키 역할을 합니다.~까지zenity 대화 상자가 닫힙니다. 대화 상자가 닫히면 Caps Lock 키가 기본 동작으로 돌아갑니다.

Google에서 이에 대한 정보를 찾을 수 없어서 여기에 도움을 요청합니다. 무엇이 잘못될 수 있는지에 대한 아이디어가 있나요?

고쳐 쓰다:

나는 이 문제를 해결하려고 노력해 왔으며 실험에서 파일을 복사하고 /usr/bin/xmodmap다음 bash 스크립트로 /usr/bin/xmodmap_바꾸었습니다./usr/bin/xmodmap

#!/bin/bash

{
    echo '-------'
    date
    echo xmodmap "$@"
} >> ~/xmodmap-calls

exec /usr/bin/xmodmap_ "$@"

그래서 내 시스템에서 어떤 빌어먹을 스크립트를 실행할 때마다 xmodmap나는 그것에 대해 알고 있습니다.

그런 다음 다시 로그인하여 내 ~/xmodmap-calls파일 에서 ~/.Xmodmap예상했던 my 를 실행하는 항목 하나만 발견했습니다. 따라서 xmodmap내 변경 사항을 덮어쓰지 는 않을 것 같습니다 .

다음으로, 나는 구글링을 통해 이 setxkbmap명령에 대해 알게 되었는데, 분명히 동일한 일을 하는 것 같습니다. 또한 위의 xmodmap과 유사한 실행 파일을 교체했습니다. 범인으로부터 명령을 받았습니다!

setxkbmap -option terminate:ctrl_alt_bksp

나는 그것이 무엇을 하는지 전혀 모르지만 그것을 실행한 후 xmodmap ~/.Xmodmap(설정이 올바르게 적용된 상태에서) 위 명령을 실행하면 변경 사항이 재설정됩니다!편집하다: 정말 흥미롭네요. setxkbmap매개변수 없이 명령 만 수행하면 됩니다 xmodmap ~/.Xmodmap. 명령을 통해 변경 사항을 덮어쓰면 됩니다.

이제 알아내야 할 두 가지가 있습니다. 이 문제가 어디 setxkbmap에서 실행되고 있고 왜 그리고 어떻게 해결해야 하는지입니다. 아직 조사 중이지만 진지하게 도움이 필요할 수 있습니다. :)

업데이트 2

그거로 지옥에 xmodmap. setxkbmap어디서 호출해야 할지 모르겠지만 setxkbmap명령을 사용하여 Caps Lock이 Ctrl처럼 작동하도록 하는 방법을 찾았습니다.

setxkbmap -option ctrl:nocaps

오픈박스를 시작하기 직전. 잘했습니다. Caps Lock 키는 여전히 Ctrl 키 역할을 합니다. xmodmap절대로 실행되지 않습니다.

이런 내용을 아시는 분이 조금이나마 통찰력을 주실 수 있도록 질문을 여기에 남깁니다. 또한 저 이후에 이 문제에 직면한 사람들을 위해 :)

업데이트 3

이것은 .config/openbox/autostartpedrosaurio가 요청한 내 콘텐츠입니다.

#!/bin/bash

# Set the wallpaper.
feh --bg-scale /wall.png

# Set default brightness.
xbacklight -time 1 '=40'

# Compositing.
xcompmgr &

# The panel.
tint2 &

# Start a terminal too.
roxterm &

내가 아는 한 이것은 키보드와 관련이 없습니다. 또한 이것은 내 세션을 시작하는 스크립트입니다. (lightdm으로 실행)

#!/bin/bash

setxkbmap -option ctrl:nocaps

exec openbox-session

답변1

비슷한 문제가 발생했습니다. ibus에 의한 것으로 밝혀졌습니다. 해당 서비스가 필요하지 않았기 때문에 방금 제거했습니다.

setxkbmap을 스크립트로 대체하는 트릭을 이용해 범인을 찾았지만, ps -AF --forestsetxkbmap의 호출자를 식별하는 기능도 추가했습니다.

답변2

자동 시작 스크립트를 모르면 올바른 구문을 사용하지 않고 앰퍼샌드( &)를 사용하여 백그라운드에서 명령을 실행하지 않을 것입니다.

.config/openbox/autostart다음과 같이 파일을 편집해 보세요 .

# Run the system-wide support stuff
#. $GLOBALAUTOSTART
# Programs to launch at startup
# Programs that will run after Openbox has started
(sleep 1 && xmodmap ~/.Xmodmap ) &

의심스러우면 openbox wiki를 확인하고 &각 항목 뒤에 나오는 모든 예제가 무엇인지 확인하세요.

http://openbox.org/wiki/Help:자동시작

관련 정보