터미널을 통해 모든 키보드 단축키를 비활성화하는 방법을 알고 싶습니다. 다음으로 이동하여 사용 중지 할 수 있음을 알고 있습니다.
시스템 설정> 키보드> 바로 가기
하지만 터미널을 통해 비활성화하고 싶습니다. 누구나 이것이 어떻게 이루어질 수 있는지 알고 있습니까?
터미널을 통해 모든 키보드 단축키를 비활성화하는 방법을 알고 싶습니다. 다음으로 이동하여 사용 중지 할 수 있음을 알고 있습니다.
시스템 설정> 키보드> 바로 가기
하지만 터미널을 통해 비활성화하고 싶습니다. 누구나 이것이 어떻게 이루어질 수 있는지 알고 있습니까?
답변:
나는 왜 당신이 이것을하고 싶어하는지 모른다. 그리고 나는 지름길을 되 찾는 것이 복잡 할 수 있다고 경고해야한다. 이것이 실제로 원하는 경우 아래 명령은 모든 키보드 단축키를 비활성화합니다. Unity의 GUI를 통해 설정된 것들과ccsm
먼저 현재 바인딩을 백업하여 나중에 다시 활성화 할 수 있도록하십시오.
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']
이제 바로 가기를 비활성화하십시오
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 ['']
: 실제로 값을 공백으로 설정하여 바로 가기를 효과적으로 비활성화합니다.이를 적용하려면 로그 아웃했다가 다시 로그인해야 할 수도 있습니다.
바로 가기 가져 오기 (일부)
while IFS=$'\t' read -r key val; do
gsettings set "$key" "$val"
done < old_settings
경고 : 일부 설정 @as
에는 키 이름에 추가 매개 변수가있는 것으로 보이며 해당 설정 을 처리하는 방법을 모르기 때문에 모든 설정에서 작동 하지 않을 수 있습니다. 내가 말했듯이, 이것은 모두 좋은 생각은 아닙니다.
ccsm
gsettings set org.gnome.settings-daemon.plugins.media-keys active false
이번에는 쉽게 돌려받을 수 있습니다. 당신이해야 할 모든 실행
gsettings set org.gnome.settings-daemon.plugins.media-keys active true
나는 @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/
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 ''
이것이 바로 가기 키인지 확실하지 않지만 대부분의 키인 것 같습니다.