커맨드 라인을 사용하여 모든 Unity 키보드 단축키 비활성화


8

터미널을 통해 모든 키보드 단축키를 비활성화하는 방법을 알고 싶습니다. 다음으로 이동하여 사용 중지 할 수 있음을 알고 있습니다.

시스템 설정> 키보드> 바로 가기

하지만 터미널을 통해 비활성화하고 싶습니다. 누구나 이것이 어떻게 이루어질 수 있는지 알고 있습니까?


어떤 키보드 단축키를 사용하고 있습니까? 매우 많은 다른 세트가 있습니다. 커맨드 라인에서 작동하는 것도 있고 GUI 등을 활성화하는 것도 있습니다. 완전히 분리되어 있습니다.
terdon

시스템 설정> 키보드> 바로 가기로 이동하면 우분투에 모든 단축키가 있으며 모든 기능을 비활성화하고 싶습니다.
user278551

그래, 당신은 단지 GUI 단축키를 의미합니다. 기본 Ubuntu를 사용하고 있으므로 데스크탑 환경이 Unity라고 가정합니다. 그 맞습니까?
terdon

네 맞습니다.
user278551

답변:


11

나는 왜 당신이 이것을하고 싶어하는지 모른다. 그리고 나는 지름길을 되 찾는 것이 복잡 할 수 있다고 경고해야한다. 이것이 실제로 원하는 경우 아래 명령은 모든 키보드 단축키를 비활성화합니다. Unity의 GUI를 통해 설정된 것들과ccsm

A. Unity 키인 딩 비활성화

  1. 먼저 현재 바인딩을 백업하여 나중에 다시 활성화 할 수 있도록하십시오.

    gsettings list-recursively org.gnome.desktop.wm.keybindings | 
       perl -pe 's/(.*)\s*(\[.*?\])\s*$/$1\t$2\n/' | 
        while IFS=$'\t' read -r key val; do echo -e "$key\t$val"; done > old_settings
    

    old_settings다음 형식으로 불리는 파일이 생성 됩니다.

    schema key <TAB> value
    

    예를 들면 다음과 같습니다.

    org.gnome.desktop.wm.keybindings unmaximize <TAB> ['<Control><Super>Down']
    
  2. 이제 바로 가기를 비활성화하십시오

    gsettings list-recursively org.gnome.desktop.wm.keybindings | 
        perl -pe 's/(.*)\s*(\[.*?\])\s*$/$1\t$2\n/' | 
            while IFS=$'\t' read -r key val; do gsettings set $key ['']; done
    

    설명

    • gsettings list-recursively org.gnome.desktop.wm.keybindings : 이것은 모든 키 바인딩과 현재 값을 나열합니다
    • perl -pe 's/(.*)\s*(\[.*?\])\s*$/$1\t$2\n/': 단순히 \t키에서 값을 분리 하는 TAB 문자 ( ) 를 추가합니다 . 이 단계는 다음 단계에서 올바르게 읽을 수 있어야합니다.
    • while IFS=$'\t' read -r key val: 각 행을 살펴보고 키 $k와 값을 읽 습니다 $val. 키와 값을 올바르게 읽을 수 있도록 탭에서 분할을$IFS=$'\t' 의미 합니다.
    • gsettings set $key [''] : 실제로 값을 공백으로 설정하여 바로 가기를 효과적으로 비활성화합니다.

    이를 적용하려면 로그 아웃했다가 다시 로그인해야 할 수도 있습니다.

  3. 바로 가기 가져 오기 (일부)

    while IFS=$'\t' read -r key val; do 
        gsettings set "$key" "$val"
    done < old_settings 
    

    경고 : 일부 설정 @as에는 키 이름에 추가 매개 변수가있는 것으로 보이며 해당 설정 을 처리하는 방법을 모르기 때문에 모든 설정에서 작동 하지 않을 수 있습니다. 내가 말했듯이, 이것은 모두 좋은 생각은 아닙니다.

B. 사용자 정의 바로 가기 설정 비활성화 ccsm

gsettings set org.gnome.settings-daemon.plugins.media-keys active false

이번에는 쉽게 돌려받을 수 있습니다. 당신이해야 할 모든 실행

gsettings set org.gnome.settings-daemon.plugins.media-keys active true

감사합니다. Compiz 단축키가 여전히 없다고 생각하십니까?
user.dz

@Sneetsher part B.는 사용자 정의 compiz 단축키를 처리해야합니다. 기본 설정이 확실하지 않습니다. 내가 체크해 볼게.
terdon

: 스크립트를 추가하는 것은 더 가능한 프런트 엔드의 조금 위의 할 일하는 github.com/fatso83/dotfiles/blob/master/utils/scripts/...
oligofren

"당신이 왜 이것을하고 싶은지 모르겠다"와 관련하여, 나의 개발팀의 모든 사람들을위한 유스 케이스는 기본 단축키가 대중적인 프로그램에서 알려진 키 바인딩과 겹치는 것입니다. 우리의 경우 대부분의 IntelliJ 단축키가 작동하지 않았으며 Alt-Tab 및 창 크기 조정과 같은 Gnome 단축키가 필요합니다.
oligofren 2016 년

@oligofren,하지만 왜 터미널에서 모든 단축키 를 비활성화해야 합니까? 그게 내가 이상하게 찾은 것입니다. 그러나 어쨌든, 각자 자신에게 :)
terdon

3

나는 @terdon의 답변을 바탕으로 동일한 작업을 수행하는 스크립트를 만들었지 만 다소 사용자 친화적 인 방식 으로 스크립트를 작성했습니다 .

다음과 같이 사용할 수 있습니다.

gnome-key-bindings --unset-all --except 'close|switch-applications'

기본 키 바인딩 Alt-F4 및 Alt-Tab (및 shift 키를 사용하여 그 반대로)을 사용하는 것이 좋으므로 이것들을 제외한 모든 키 바인딩이 제거됩니다.

멋진 도움말 메뉴도 있습니다.

List/disable/enable/set gnome-key-bindings

gnome-key-bindings [-h | option] [value]

Options
   --list              Lists all the current keybindings
   --set=key           Set a specific keybinding
   --unset=key         Unsets a specific keybinding
   --unset-all         Unsets all keybindings
   --except=REGEX      Filter out keys matching REGEX from being unset
   --print-default     Prints the default shortcuts per Ubuntu 18.04

Examples:

     Clearing all keys except a few:
       gnome-key-bindings --unset-all --except "close|switch-applications|switch-input-source|show-desktop"

     Setting a shortcut
       gnome-key-bindings --set=maximize "<Super>Up"    

자신의 컴퓨터에서 사용하려면

curl -s https://raw.githubusercontent.com/fatso83/dotfiles/master/utils/scripts/gnome-key-bindings -o gnome-key-bindings
curl -s https://raw.githubusercontent.com/fatso83/dotfiles/master/utils/scripts/easyoptions.sh -o easyoptions.sh
curl -s https://raw.githubusercontent.com/fatso83/dotfiles/master/utils/scripts/easyoptions.rb -o easyoptions.rb
chmod +x ./gnome-key-bindings
sudo mv ./gnome-key-bindings easyoptions.* /usr/local/bin/

0

Ubuntu 18.04의 gnome에 대해서는 다음과 같이 작동합니다.

gsettings list-keys org.gnome.shell.keybindings | xargs -I@ gsettings set org.gnome.shell.keybindings @ ['']
gsettings list-keys org.gnome.mutter.keybindings | xargs -I@ gsettings set org.gnome.mutter.keybindings @ ['']
gsettings list-keys org.gnome.settings-daemon.plugins.media-keys | xargs -I@ gsettings set org.gnome.settings-daemon.plugins.media-keys @ ['']
gsettings set org.gnome.mutter overlay-key ''

이것이 바로 가기 키인지 확실하지 않지만 대부분의 키인 것 같습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.