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.