Xephyr의 키보드 매핑을 어떻게 정렬 할 수 있습니까?


7

Xephyr을 X의 내부에서 시작할 때, 키보드 맵은 대부분 비 인쇄 문자에 대해서 불안해합니다. 나는 화살표 키를 사용할 수 없다. xev에 따르면, 아래쪽 화살표는 Super_R에 매핑됩니다. 위쪽 화살표는 Print Screen입니다. PgDown은 "메뉴"에 매핑됩니다. 내 키보드는 원래 X 디스플레이 (: 0)에서 제대로 작동하지만 Xephyr 서브 디스플레이 (: 1)에서는 아무 것도 제대로 작동하지 않습니다.

내가 알고있는 나의 메인 X 디스플레이에서 진행되는 펑키 한 xmodmap 일이 없다. 내가 정말로하는 모든 것은 setxkbmap -option ctrl:swapcaps.


SSH를 사용하고 있지 않습니까? 다른 말로하면 Xephyr과 동일한 키보드와 X 서버를 사용하고 있습니다. 이전 버전을 사용하면 더 좋은 결과를 얻을 수 있습니다. Xnest? 나는 그 지식이 당신을 어떻게 도울 지 모르지만 어쩌면 그렇게 할 것입니다. ;-)
Arjan

네. 아니 ssh. 동일한 키보드와 서버. 나는 Xnest를 시도 할 것이다.
qedi

Xnest도 똑같은 일을했지만 적어도 해결책을 찾았습니다.
qedi

답변:


5

찾았다. 버그 19365 내 문제를 해결 :

-kb로 Xnest / Xephyr 시작하기.


그리고 더 이상 xmodmap 둘 중 하나? 좋은 발견!
Arjan

(48 시간 후에도 자신의 답변을 수락 할 수 있다고 생각하십니까? 다시 참여해주십시오. 감사합니다.)
Arjan

2

-kb 옵션은 Ubuntu 10.04에서 작동하지 않습니다. 여기 나를 위해 일한 것이있다.

Xephyr -keybd ephyr,,,xkbmodel=evdev -ac -screen 800x600 -br -reset -terminate :1


모든 빈 쉼표가 필요하지 않으며 필요에 따라 키보드 옵션을 나열하십시오. 내 경우 엔 -keybd ephyr,xkbmodel=evdev,xkblayout='de(nodeadkeys)'
Olaf Dietsche

1

너는 또한 달릴 수 있는다. xkbcomp $DISPLAY :1 Xephyr가 시작된 X 세션. 이 명령은 현재 서버의 키보드 맵을 새로 생성 된 것으로 복사합니다. 나는 이것을 다음과 같이 사용한다 :

Xephyr -screen 800x600 :1 > /dev/null &
sleep 2 && xkbcomp $DISPLAY :1
DISPLAY=":1" ./runcommand

1
setxkbmap -model evdev -print | xkbcomp :100 :200    

Xephyr을 xpra와 함께 사용하고 잘못된 키보드 맵이있는 경우. 이상한 상황이 생겼을 때 : 아래쪽 화살표가 입력 (아래쪽 화살표는 중단 선)으로 작동하고 위쪽 화살표가 작동하지 않는 경우 - 해당 명령을 사용하여 true xkb map을 설정하십시오.

: 100 - xpra를 제어하는 ​​번호 표시

: 200 - Xephyr의 디스플레이 번호 제어

x2go를 사용하고 데스크탑 환경 (x2go 설정 키보드가 꺼져있는 경우)을 사용하면 해당 명령 도움말이 될 수 있습니다.


2
이 코드의 기능에 대해 설명해주십시오. 이것이 그다지 도움이되지는 않습니다.
bwDraco

0

SSH를 사용하지 않는 것 같습니다. 그럼에도 불구하고 다음과 같이하면 시작할 수 있습니다. 키보드를 사용할 때 키보드 문제를 해결하기 위해 무언가를 적었습니다. ssh -Y:

Xephyr을 실행하지 않을 때 현재 키보드 매핑을 저장할 수 있습니다 :

xmodmap -pke > ~/my_xmodmap

그런 다음 Xephyr에서 명시 적으로로드하려고 시도 할 수 있습니다.

xmodmap ~/my_xmodmap

그리고 xev 키보드 이벤트를 모니터 할 수 있습니다. 아마도 그 자체로는별로 도움이되지 않지만 그 기사에서 종종 언급되는 명령과 같이 더 유용한 기사를 검색하는 데 도움이 될 수 있습니다.


그러면 다른 키가 작동하지만 전부는 아닙니다. xev는 키패드 슬래시가 XF86_Ungrab이며 KP_Divide가 아니라고 덤핑하고 사용한 xmodmap 파일에 정의되어 있다고 주장합니다.
qedi

0

나를 위해 (독일어 키보드 사용), 그것은 단지 이전 솔루션의 조합으로 작동합니다 아르 한 에 의해 지적 된 해결책과 함께 판지 ...에서 Xephyr 자판 배열 , 그건:

Xephyr 시작 :

Xephyr -keybd ephyr,,,xkbmodel=evdev,xkblayout=de -ac -reset -screen 800x600 -retro :1 &

현재 키보드 매핑을 저장하고 매핑을로드하는 xterm을 시작하십시오 :

xmodmap -pke > /tmp/my_modmap ; xterm -display :1 -ls -e "xmodmap /tmp/my_modmap; bash" &

Xephyr 서버 : xserver-xephyr 2:1.9.5-1

원래 포스터 덕분에!


더 나은 해결책을 찾았습니다. 다른 대답 이 질문에.
Alberto

0

더 성공적이지 않은 검색 후, man setxkbmap 마침내 더 쉬운 해결책으로 나를 지적했다.

xkbcomp와 함께 사용

다른 컴퓨터에서 실행중인 Xserver와 클라이언트 셸이 있고 해당 컴퓨터의 XKB 구성 파일이 다른 경우 모델, 레이아웃, 옵션 이름별로 키보드 맵을 지정하는 데 문제가 발생할 수 있습니다. [...]이 문제는 다음을 실행하여 해결할 수 있습니다. 클라이언트 쪽에서 xkbcomp도. [..]   예를 들어, 명령

우리에게 setxkbmap -print | xkbcomp - $ DISPLAY

두 단계를 동일한 (클라이언트) 시스템에서 실행하고 키보드 맵을 서버에로드합니다.

그건,

  • Xephyr 출시 :

    Xephyr -ac -reset -screen 800x600 -retro :50 &
    

    (키보드 정보를 제공 할 필요가 없음)

  • 새 xsession을 구성하십시오.

    setxkbmap de -print | xkbcomp - :50
    

    (키보드 레이아웃을 알아야합니다)

노트 : setxkbmap 너의 친구 야. 버전 1.2.0 유용한 -query 키보드의 문제 해결에 도움이되는 옵션이 있습니다 ( 해당 패치 로그 ).


에서 이 대답 Xephyr을 제대로 실행시키기 위해 Xephyr을 실행하는 방법을 알려줍니다.
Alberto
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.