
터미널을 통해 모든 키보드 단축키를 비활성화하는 방법을 알고 싶습니다. 다음으로 이동하여 비활성화할 수 있다는 것을 알고 있습니다.
시스템 설정>키보드>단축키
하지만 터미널을 통해 비활성화하고 싶습니다. 이거 어떻게 할 수 있는지 아는 사람 있어?
답변1
나는 당신이 왜 이 작업을 하려는지 전혀 모르겠고, 바로가기를 다시 찾는 것이 복잡할 수도 있다는 점을 경고해야 합니다. 이것이 정말로 원하는 일이라면 아래 명령을 사용하면 모든 키보드 단축키가 비활성화됩니다. 둘 다 Unity의 GUI를 통해 설정되었으며 사용자가 다음을 사용하여 설정할 수도 있습니다.ccsm
A. Unity 키인딩 비활성화
나중에 다시 활성화할 수 있도록 먼저 현재 바인딩을 백업하세요.
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
에서는 키 이름에 추가 매개변수가 있는 것 같고 이를 처리하는 방법을 모르기 때문에 이 방법은 모든 설정에서 작동하지 않을 수 있습니다. 내가 말했듯이, 이것은 모두 그다지 좋은 생각이 아닙니다.
B. 다음에 설정된 사용자 정의 바로가기를 비활성화합니다.ccsm
gsettings set org.gnome.settings-daemon.plugins.media-keys active false
이번에는 다시 돌려받는 것이 쉽습니다. 당신이해야 할 일은 실행하는 것뿐입니다.
gsettings set org.gnome.settings-daemon.plugins.media-keys active true
답변2
나는 @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/
답변3
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 ''
단축키가 전부인지는 모르겠지만 대부분인 것 같습니다.