Openbox는 xmodmap 구성을 덮어 씁니다


9

Linux Mint 13을 실행하는 랩톱에서 openbox를 설정하고 있습니다. Caps Lock 키가 추가 제어 키로 작동하기를 원합니다. 필요한 설정을 ~/.Xmodmap파일 에 넣고 실행하여 확인했습니다.

xmodmap ~/.Xmodmap

제대로 작동합니다.

그러나 Openbox 세션에 다시 로그인하면 이러한 주요 변경 사항이 없습니다. 위의 xmodmap명령을 실행하면 다시 작동하지만 시작시 자동으로 발생하기를 원합니다.

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

zenity --info --text=Hello

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

이제 Openbox 세션에 다시 로그인 하면 zenity 대화 상자가 닫힐 때까지 Caps Lock이 Ctrl 키 역할을합니다 . 해당 대화 상자가 닫히면 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파일 에서 하나의 항목 만 찾습니다.이 항목은 my을 실행하는 항목입니다 ~/.Xmodmap. 따라서 xmodmap변경 사항을 덮어 쓰는 것이 아닙니다 .

다음으로, 약간의 인터넷 검색으로 저에게 setxkbmap명령 을 소개했습니다 . 위의 xmodmap과 비슷한 실행 파일도 교체했습니다. 그리고 범인 명령을 받았습니다!

setxkbmap -option terminate:ctrl_alt_bksp

나는 그것이 무엇을하는지 전혀 모릅니다. 그러나 xmodmap ~/.Xmodmap(설정을 올바르게 적용한) 실행 후 위의 명령을 실행하면 변경 사항이 재설정됩니다! 편집 : 이것은 정말 재미있다. 그냥 setxkbmap인수없이 명령은 행복하게하여 내 변경 덮어 xmodmap ~/.Xmodmap명령을 사용합니다.

이제 두 가지를 알아낼 수 있습니다. 이것은 어디 setxkbmap에서 실행되고 있으며 왜 그리고 어떻게 고쳐야 합니까 ? 나는 여전히 조사 중이지만 진지하게 도움을 줄 수 있습니다 :)

업데이트 2

지옥에 xmodmap. 어디에서 setxkbmap호출 되는지 알 수 없지만 setxkbmapCaps Lock이 Ctrl로 작동 하도록 명령을 사용하는 방법을 찾았습니다 .

setxkbmap -option ctrl:nocaps

openbox를 시작하기 직전에. 훌륭하게 작동합니다. 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

당신은 아마도 어떤 종류의 키보드 구성을 사용하고있을 것입니다. 예를 들어 키보드 레이아웃이나 적용된 변경 사항을 되 돌리는 비슷한 것을 선택하십시오
Ulrich Dangel

키보드 구성을 사용하는 다른 장소는 GUI 키보드 레이아웃 환경 설정 창입니다. 그것은 계피 DE에서 잘 작동합니다. 내 캡 잠금은 다시 로그인 한 후에도 Ctrl 역할을합니다. 구성은 계피 전용이라고 생각하지만 확실하지 않습니다.
Shrikant Sharat

자동 시작 스크립트에서 명령을 어떻게 추가합니까?
pedrosaurio

autostart파일 을 게시 할 수 있습니까 ?
pedrosaurio

답변:


1

비슷한 문제가 발생했습니다. 그것은 ibus에 의한 것으로 밝혀졌습니다. 서비스가 필요하지 않기 때문에 간단히 제거했습니다.

setxkbmap을 스크립트로 바꾸는 트릭을 사용하여 범인을 찾았지만 setxkbmap ps -AF --forest의 호출자를 식별하기 위해 추가 했습니다.


0

자동 시작 스크립트를 알지 못하면 내 앰퍼샌드 ( &)를 사용하여 백그라운드에서 명령을 실행하여 올바른 구문을 사용하지 않는 것이 좋습니다 .

.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 : 자동 시작


자동 시작 파일이 비어 있습니다. 내가 xmodmap ~/.Xmodmap그 파일에 가지고있는 시점 에서 (없이 &, 필요하지 않은 것 같았습니다). 내가 전화 한 xmodmap(지금은 setxkbmap내 OPENBOX 세션을 시작 스크립트에서). 를 실행하기 직전 exec openbox-sessionsetxkbmap명령을 실행합니다 .
Shrikant Sharat

또한 대부분의 경우 작동하지만 다른 모든로드 후에 변경 사항 sleep 1xmodmap적용 하도록 지연을 추가 하면 솔루션에 대해 너무 자신감을 느끼지 못합니다. 대안이 있다면 그렇게하지 않는 것이 좋습니다.
Shrikant Sharat

sleep그럼에도 불구하고 모든 주석과 명령을 피할 수는 있지만 , &각 항목마다 필요합니다. 그렇지 않으면 첫 번째 항목 이후의 모든 프로그램이 전혀 실행되지 않습니다.
pedrosaurio

예, 오래 실행되는 앱 / 프로세스 인 경우 추가하지 않으면 &차단됩니다. 이 동작을 zenity명령 과 함께 사용하여 완료 xmodmap 변경 사항을 덮어 쓰는 것을 발견했습니다 . 내 자동 시작이 이제 크기가 커지고 잠시 후에 질문에 붙여 넣을 것입니다. 그러나 키보드와는 아무런 관련이 없습니다. autostart
Shrikant Sharat

또한 sleep 명령이 없으면 xmodmap자동 시작 파일이 완료 되 자마자 변경 사항 을 덮어 씁니다.
Shrikant Sharat
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.