Ubuntu는 키보드 단축키 구성을 어디에 저장합니까?


34

"Ubuntu"에 어떤 키 / 콤비네이션 / 바로 가기에 대한 전체 목록을 저장하는 장소가 있습니까?

Unity의 키보드 및 마우스 단축키는 무엇입니까? Dash, Launcher 등에 대한 "Unity"단축키 를 나열하고 사용중인 Compiz 키 바인딩을 나열하는 방법은 무엇입니까? 는 compiz 바인딩을 나열하는 방법을 보여 주지만, 시작이지만, 그보다 더 많은 것을 찾고 있습니다 (단지 키 바인딩 중 Unity 또는 Compiz로만 제한됨).

Ubuntu의 어딘가에 저장되어 있거나 키를 컴파일하고 나열하는 방법이있는 키 바인딩 / 키 조합 / 키보드 단축키의 전체 목록이 있습니까? 우분투와 그 안에서 실행되는 것들 (Unity, Compiz, Shortcuts to Programs 등)에 적용되는 것.

키보드에서 누른 키 조합이 연결된 대상으로 지정되도록하려면 Ubuntu에이 위치를 저장해야합니까? 우분투에 그러한 장소가 없다면 대답으로 게시하십시오. 따라서 미래의 사용자는 그 검색을 알 수 있습니다.


1
내가 제목을 붙했습니다 확인 덜 중복-Y가 되실
호르헤 카스트로

지금까지 두 가지 답변이 충돌하는 두 가지 이벤트 시퀀스를 가져 왔습니다. Lakritsbollar는 창 관리자가 먼저 제어권을 얻은 다음이를 응용 프로그램으로 전달하고, nfirvine은 응용 프로그램이 먼저 균열을 일으켜 창 관리자에게 전달한다고 언급했습니다. 어떤 방법입니까?
James

답변:


10

창 관리자는 응용 프로그램이 수행하기 전에 모든 주요 이벤트를 가져 오므로 해당 이벤트를 사용하려는 경우 그렇게하므로 응용 프로그램이 해당 이벤트를받지 않습니다. 창 관리자가 주요 이벤트 자체에 반응하지 않으려면 응용 프로그램에 전달합니다.

다음과 같은 방법으로 직접 확인할 수 있습니다.

  1. 터미널을 시작하십시오.
  2. xev | grep KeyPressX 이벤트 뷰어 인 시작하십시오 .
  3. 를 누르면 터미널 창에 키 이벤트가 Alt있음을 xev알 수 있습니다.
  4. Ctrl다시 누르면 xev이벤트가 발생합니다. 터미널 창의 모양을 지금 확인하십시오.
  5. Left arrow다른 작업 공간으로 이동하려면 누릅니다 . (창 관리자 단축키로 사용한다고 가정합니다.)
  6. 을 눌러 Right arrow실행중인 위치로 돌아갑니다 xev. 왼쪽 및 오른쪽 화살표 키를 통해 작업 공간을 전환 할 수있는 주요 이벤트는 수신되지 않았습니다. 결과는 4 단계와 동일합니다.

따라서 실제로 창 관리자는 모든 주요 이벤트를 가져오고 캡처하지 않으려는 경우 응용 프로그램으로 전달합니다. 그런 다음 응용 프로그램은 자체 위젯에 대해 동일한 작업을 수행합니다 ( Enter웹 브라우저에서 하루 종일 누르는 방법과 같이 주소 표시 줄이나 텍스트를 입력 할 수있는 필드에 커서를 놓기 전까지는 아무 것도 수행하지 않음) .

고유 한 바로 가기를 설정하는 것은 응용 프로그램의 책임이며 응용 프로그램은 서로 독립적으로 구성됩니다.

KDE 3.x에서 올바르게 기억 Ctrl-s하면 KDE 제어 센터에서 기본 바로 가기 (예 : 저장)를 설정할 수 있으며 Qt 툴킷으로 작성된 모든 응용 프로그램에 적용되지만 여전히 가능한지 모르겠습니다. KDE 4로 전환 한 이후


100 % 답은 아니지만 가깝습니다. 기본적으로 키보드 바인딩 / 바로 가기가 저장되는 중앙 위치는 없습니다. 창 관리자는 먼저 키를 누른 다음 활성 응용 프로그램에서 균열을 일으 킵니다. 초점도 역할을합니다.
제임스

20

우분투 17.10부터

이 경로에서 :

dconf dump /org/gnome/desktop/wm/keybindings/
dconf dump /org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/  # Custom

dconf-editor(GUI) 또는 gsettings(CLI)를 사용할 수도 있습니다 .

우분투 12.10-17.04부터

~/.config/dconf/user(dconf-editor에서 : org.gnome.settings-daemon.plugins.media-keys.custom-keybindings(사용자 정의 단축키)

~/.config/compiz-1/compizconfig

우분투 12.04까지

바로 가기는 사용중인 마녀 데스크탑 (gnome / unity, kde, xfce, lxde 등)에 따라 다르게 배치됩니다.

그놈의 경우
~/.gconf/desktop/gnome/keybindings(사용자 정의 바로 가기) 아래에 있습니다.

아래에
~/.gconf/apps/metacity있습니다.


11.10은 그놈 또는 메타 시티를 사용하지 않습니다.
nfirvine

그러나 내가 사용하는 바로 가기 경로는 여전히 작동합니다.
desgua

맥북 프로에서 아주 신선한 우분투 11.10 설치를 보았을 때, 첫 번째 위치에는 키 바인딩 파일이 없었지만 두 번째 위치에는 다음이있었습니다.general/ global_keybindings/ window_keybindings/
Victor S

1
첫 번째 위치는 사용자 정의 단축키입니다.
desgua

1
@AnonymousPlatypus 지침을 보려면 여기 를 참조 하십시오gsettings
wjandrea

4

아니요, 모든 바로 가기가 저장된 단일 장소는 없습니다. 응용 프로그램은 원하는 위치에 구성을 저장하도록 선택할 수 있습니다.

즉, 대부분 응용 프로그램 수준 (Firefox의 경우 복사 Ctrl-C)과 창 관리자 수준 (데스크톱을 표시하는 Win + D)의 두 가지 수준으로보고 있습니다. Compiz는 gconf를 사용하여 구성을 저장합니다 .

응용 프로그램의 경우 툴킷별로 대략적으로 나눌 수 있습니다. 즉, GTK 앱도 gconf를 사용합니다.

키보드에서 누른 키 조합이 연결된 대상으로 지정되도록하려면 Ubuntu에이 위치를 저장해야합니까?

좀 빠지는. 초점을 맞춘 응용 프로그램은 X 키보드 이벤트에서 처음 시작되지만 그렇지 않은 경우 다른 응용 프로그램, 즉 창 관리자로 버블 링됩니다. 따라서 Alt + F4를 캡처하고 창을 닫지 않는 게임을 할 수 있습니다 (제임스 타운을 막으십시오!). 중앙 이벤트 라우터로 이동 한 다음 일부 데이터베이스와 일치하여 대상으로 라우팅한다고 생각합니다. 그것은 병을 마주 치는 것과 비슷합니다. 통과, 원한다면 미어를 가져 가거나 나머지를 통과하거나 모든 것을 가지고 탐욕하십시오.

Linux / FOSS 환경 (당신은 눈치 채 셨을 것이다)은 꽤 민주적이며, 모든 애플리케이션이 단일 중앙 키보드 구성 저장소에 동의하도록하는 것은 바보의 일이다. 우선, 오래 전에 작성되었지만 알지 못하는 유지 관리되지 않은 응용 프로그램이 있습니다.

업데이트 : 주제에 대한 Xlib 문서에 따르면 :

소스 창부터 X 서버는 이러한 이벤트에 관심이있는 것으로 클라이언트가 지정한 첫 번째 창을 찾을 때까지 창 계층 구조를 검색합니다. 개입하는 창 중 하나에 이벤트 유형의 생성을 금지하도록 전파 금지 마스크가 설정되어 있으면 해당 유형의 이벤트가 억제됩니다.

또한,

KeyPress, KeyRelease, ButtonPress 및 ButtonRelease 이벤트를 수신하려면 창의 이벤트 마스크 속성에서 KeyPressMask, KeyReleaseMask, ButtonPressMask 및 ButtonReleaseMask 비트를 설정하십시오.

그리고 당신은 비활성화 전파에 속성을 설정할 수 있습니다 .

문제는 X에게 어떤 키를 수신 할지 알려주지 않기 때문에 응용 프로그램이 어떤 키를 수신하는지 (실제로 할 수 있음) 또는 실제로 키를 전파 할 것인지 여부를 선험적으로 말할 수는 없습니다. 듣고 있어요 따라서 X 레벨에서는 중앙 레지스트리가 불가능하므로 툴킷 레벨에서 수행해야합니다. 실제로는 불가능합니다. :디


나는 거의 같은 결론에 도달했습니다. 그 초점은 입력을 처리하는 것을 결정합니다. 브라우저 창을 연 다음 현재 활성 창이되는 터미널 창을 열면 이러한 상황을 확인할 수 있습니다. 브라우저 창 위에 마우스를 놓고 스크롤 휠을 사용하면 터미널 창이 활성 창이더라도 브라우저 창을 스크롤합니다.
제임스

내 질문에 대한 쉬운 대답이나 바로 가기를 컴파일하고 나열하는 쉬운 방법을 원했지만 키 누름이 정의 된 위치에 도달하는 방식을 고려할 때 불가능한 것처럼 보입니다. 키보드 단축키 / 키 바인딩이 널리 퍼져있는 것으로 보이며 사용중인 기능과 현재 포커스가있는 위치에 따라 사용되는 경향이 있습니다.
제임스

1
그러나 응용 프로그램에서 창 관리자 전에 주요 이벤트를 얻는 것은 아닙니다. 창 관리자가 먼저 이벤트를 시작한 다음 응용 프로그램을 활성화했다고 생각합니다.
제임스

1

응용 프로그램은 바로 가기를 독립적으로 저장하므로 중앙 위치가 저장되어 있지 않습니다.

상호 작용 키보드 --OS-- 커널 --X11-- 창 관리자-데스크톱 환경-응용 프로그램의 전체 프로세스를 이해하지 못하지만 Gedit와 같은 특정 창에 키보드 포커스가 있으면 처리 할 수 ​​있습니다. 자체적으로 입력하고 그렇게합니다.


-1

11.10의 시스템 구성-> 키보드-> 바로 가기에서 꽤 큰 목록을 얻습니다. 당신이 찾고있는 것입니까?


그는 목록뿐만 아니라 모든 단축키를 포함하는 파일을 찾고 있습니다.
Mark O'Sullivan
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.