Fedora gnome 키보드 응용 프로그램의 대안

Fedora gnome 키보드 응용 프로그램의 대안

저는 Fedora 25 Gnome을 사용하고 있습니다. 로지텍 K350 무선 키보드가 있습니다. Xubuntu와 Manjaro를 사용하면 모든 키를 쉽게 매핑할 수 있습니다.

이제 Fedora에서 일부 키는 Fedora의 키보드 단축키 응용 프로그램을 사용하여 매핑할 수 없으며 일부 키를 매핑하려고 하면 일부 키가 해당 명령을 실행합니다. 예를 들어, 키보드에 추가 닫기 버튼이 있습니다. Fedora에서는 랩탑을 절전 모드로 전환하고 이를 제거할 수 없으며 바로가기를 추가하려고 할 때 이를 누르면 컴퓨터가 버튼 코드를 표시하는 대신 절전 모드로 전환됩니다.

또한 키보드 앱이 느려집니다. XFCE용 키보드 애플리케이션으로 대체할 수 있는지 궁금합니다.

여기에 이미지 설명을 입력하세요.

모든 큰 회색 버튼을 위쪽과 왼쪽에 매핑하고 싶습니다. 하지만 가장 중요한 것은 오른쪽 상단 모서리에 있는 작은 회색 버튼으로, 종료 버튼으로 추정됩니다.

답변1

오랫동안 Fedora나 Gnome(또는 XFCE)을 사용하지 않았습니다. 그러나 키를 함수에 다시 매핑하는 작업은 여러 레이어에서 발생하며 WM 레이어에서 수행하는 것은 나에게는 번거로운 것 같습니다. 키/코드는 커널(하드웨어의 IRQ 등)에서 Xorg로 제공됩니다.모두그것들을 애플리케이션에 다시 전달했습니다(둘 중 하나).모두를 통해응용 프로그램이 또 다른 이야기인 경우).

Xorg가 중요한 코드를 제공하는 응용 프로그램에는 WM(XFCE, Gnome 또는 심지어 KDE)뿐만 아니라 이러한 응용 프로그램에서 열리는 창도 포함됩니다. Keymapping Desktop App과 같은 도구는 Xorg용 포인트 앤 클릭 키코드를 구성하도록 설계되었습니다. 새 키보드( )를 만들어 setxkbmap키( )를 수정 xmodmap하거나 코드를 창(IME)으로 다시 보내기 전에 메모리에 다시 매핑할 수도 있습니다.

Xorg 키코드를 직접 입력하면 모든 시스템(즉, Xorg를 실행하는 시스템)에 맞게 키보드를 구성할 수 있습니다. 내 키보드를 사용하겠습니다.

여기에 이미지 설명을 입력하세요.

개요에는 예시로 사용할 키 중 하나가 메모와 함께 표시됩니다. 이 키가 위쪽 화살표로 작동하도록 하겠습니다.

먼저 Xorg가 내 키보드를 어떻게 보는지 살펴보겠습니다.

$ xinput 
⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Logitech USB Optical Mouse                id=10   [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad                id=14   [slave  pointer  (2)]
⎣ Virtual core keyboard                     id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=6    [slave  keyboard (3)]
    ↳ Video Bus                                 id=7    [slave  keyboard (3)]
    ↳ Power Button                              id=8    [slave  keyboard (3)]
    ↳ Sleep Button                              id=9    [slave  keyboard (3)]
    ↳ USB 2.0 Camera                            id=11   [slave  keyboard (3)]
    ↳ Asus Laptop extra buttons                 id=12   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=13   [slave  keyboard (3)]

글쎄요, 제 생각엔 제 키(메모)가 "ASUS 노트북 추가 버튼"에 있는 것 같아요. 이는 가상 키보드 아래에 있음을 의미합니다. 좋습니다. 다음을 xev통해 키코드를 찾을 수 있다는 의미입니다.

xev -event keyboard

가상 키보드의 일부가 아닌 경우 모든 이벤트(마우스 이벤트 포함)를 반복해야 하므로 찾기가 어렵거나 불가능하지는 않지만 어렵습니다. 그런 다음 xev실행 중에 노트 키를 눌렀고 Xorg가 다음을 이해했음을 발견했습니다.

KeyPress event, serial 28, synthetic NO, window 0x1a00001,
    root 0x496, subw 0x0, time 32080036, (381,333), root:(382,352),
    state 0x0, keycode 234 (keysym 0x1008ff32, XF86AudioMedia), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

좋습니다. 키코드가 234라는 뜻입니다. 이는 또한 효과가 없는 내 WM에 매핑되었음을 보여줍니다 XF86AudioMedia(xmonad, XF86 표준을 많이 무시하므로). 하지만 어쨌든 우리에게는 다시 매핑할 열쇠가 있습니다. 이를 위해 우리는 다음을 수행합니다.

xmodmap -e 'keycode 234 = Up NoSymbol Up'

내 노트 키는 위쪽 화살표 역할을 합니다. 또한 이는 WM과 독립적입니다. 재부팅 시 작동하게 하려면 xmodmap표현식을 파일에 넣어야 합니다 ~/.Xmodmap.

keycode 234 = Up NoSymbol Up

그리고 달리다

xmodmap ~/.Xmodmap

WM 초기화 중. XFCE 초기화 중에 어떤 파일, 및 기타 파일이 실행되는지 ~/.xprofile는 또 다른 질문입니다. WM은 특히 실행할 파일에 대해 표준화되지 않았습니다. 그러나 언제든지 수동으로 실행할 수 있습니다.~/.xinitrc~/.profile

파일 .Xmodmap에는 한 줄에 하나의 매핑이 포함되어 있으므로 여러 키를 다시 매핑하는 데 사용할 수 있습니다. 이 !태그는 이 파일의 주석 표시기입니다.

어떻게 작동하나요?

Up NoSymbol Up먼저, 단순히 글을 쓰는 것이 아니라 왜 글을 써야 하는지 이해해보자 Up. 실제로는 그럴 필요는 없지만 일반적으로 키에 대해 최소 3개(때로는 4개)의 매핑을 제공합니다. 매핑은 키가 다음과 같을 때 수행되는 작업을 의미합니다.

= <key pressed> <shift+key> <ctrl+key> <ctrl+shift+key>

( Ctrl+Up일부 응용 프로그램에서는 이 방법이 제대로 작동하지 않으므로 이 예제의 품질이 떨어집니다.)

좋습니다. 키를 다시 매핑했습니다. 그러나 키를 다시 매핑하기 위한 올바른 작업을 찾는 방법은 무엇입니까? 화살표는 간단합니다. 문자를 인수로 추가하여 위쪽, 아래쪽, 왼쪽, 오른쪽으로 간단히 다시 매핑할 수도 있습니다. 하지만 XF86AudioMedia우리가 전에 가지고 있던 것은 어떻습니까? 아니면 키를 절전 또는 전원 버튼으로 만드는 방법은 무엇입니까?

현재 매핑을 얻으려면:

xmodmap -pke

XF86여러 수정자(예:,, ) 를 포함하는 긴 목록을 인쇄합니다 XF86Sleep. 위의 위쪽 화살표와 마찬가지로 모든 키에 추가할 수 있습니다. 전체 목록은 Xorg에서 확인할 수 있습니다.XF86PowerOffXF86WebCam소스 코드.

불행히도 소스 코드의 주석에는 다음과 같이 나와 있습니다.

X.Org는 XF86 키 기호 세트에 추가되지 않지만 X 키 기호 정의의 "표준" 부분으로 채택되고 간주됩니다. XFree86은 이러한 키 기호에 제대로 주석을 추가한 적이 없으므로 이러한 키의 의미를 설명하기 위해 최선을 다했습니다.

XFree86은 이 기간의 메일 아카이브를 제거하여 이러한 정의 중 일부에 대해 더 많은 정보를 제공할 수 있습니다. 우리가 기억과 사용에서 파생된 이러한 아카이브를 부활시킬 때까지/그렇지 않는 한.

각각의 정확한 목적을 찾는 것은 어려울 수 있습니다. 게다가 명확하게 정의된 표준이 없기 때문에 WM은 이러한 매핑 중 일부만 구현합니다. 그리고 다른 WM은 다른 매핑을 구현합니다. 또한 일부 WM에는 이러한 매핑 기능을 위한 구성 도구가 있지만 다른 WM에는 그렇지 않습니다. 일부 WM은 이러한 매핑을 거의 모두 무시합니다.

WM이 특정 매핑을 지원하는지 테스트하는 한 가지 방법은 시도해 보는 것입니다. 예를 들어, XF86XK_ToDoList먼저 XK정의에서 사용되지 않는 키코드를 제거하고 다시 매핑해 보겠습니다 .

xmodmap -e 'keycode 248 = XF86_ToDoList'

그리고 xdotool키를 사용하여 다음과 같은 키코드를 구성합니다.

xdotool keydown 248
xdotool keyup 248

내 WM은 아무 일도 일어나지 않기 때문에 확실히 이를 지원하지 않습니다 XF86_ToDoList(실제로 어떤 WM도 이를 지원하지 않는다고 생각합니다).

그런 다음 키에 필요한 기능을 검색하고 기능이 발견되면 다시 매핑할 수 있습니다. 물론 XFCE를 고려하면 지원됩니다.

경고하다

setxkbmap언어 간에 키보드를 변경하기 위해 배후에서 호출되는 도구를 사용하거나 사용하는 경우 매핑이 취소됩니다. setxkbmapIME는 Xorg와 독립적으로 실행되기 때문에 좋습니다.

매핑은 로그인하면 적용됩니다. "전원 켜기" 키를 만들 수 있습니다

이와 같은 것을 테스트할 때는 주의하십시오 XF86PowerOff. 실수로 하드 재부팅을 강제할 수 있습니다.

답변2

페도라 지원데스크톱 환경 전환, 전체 xfce 데스크탑을 설치하려면 다음을 수행하십시오.

yum groupinstall 'Xfce Desktop'

로그인 화면에서 xfce 데스크탑을 선택할 수 있습니다.

Gnome을 계속 사용하려면 xfce의 일부를 설치할 수 있습니다. 노력하다:

yum search xfce

키보드와 관련된 것으로 보이는 xfce 유틸리티를 찾아서 설치하십시오.

관련 정보