ฉันต้องการทราบวิธีปิดใช้งานแป้นพิมพ์ลัดทั้งหมดผ่านเทอร์มินัล ฉันรู้ว่าคุณสามารถปิดการใช้งานได้โดยไปที่:
การตั้งค่าระบบ> คีย์บอร์ด> ทางลัด
แต่ฉันต้องการปิดการใช้งานผ่านทางสถานี ไม่มีใครรู้ว่าสิ่งนี้สามารถทำได้?
ฉันต้องการทราบวิธีปิดใช้งานแป้นพิมพ์ลัดทั้งหมดผ่านเทอร์มินัล ฉันรู้ว่าคุณสามารถปิดการใช้งานได้โดยไปที่:
การตั้งค่าระบบ> คีย์บอร์ด> ทางลัด
แต่ฉันต้องการปิดการใช้งานผ่านทางสถานี ไม่มีใครรู้ว่าสิ่งนี้สามารถทำได้?
คำตอบ:
ฉันไม่รู้ว่าทำไมคุณถึงต้องการทำเช่นนี้และฉันควรเตือนคุณว่ามันอาจซับซ้อนในการเรียกใช้ทางลัดกลับมา หากนี่คือสิ่งที่คุณต้องการจริงๆคำสั่งด้านล่างจะปิดใช้งานแป้นพิมพ์ลัดทั้งหมด ทั้งที่ตั้งค่าผ่าน 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/'
: เพียงเพิ่มอักขระ TAB ( \t
) เพื่อแยกค่าออกจากคีย์ ขั้นตอนนี้จำเป็นเพื่อให้สามารถอ่านได้อย่างถูกต้องในขั้นตอนถัดไป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 (และการย้อนกลับโดยใช้กะ) นี่จะเป็นการลบปุ่มลัดทั้งหมดยกเว้นปุ่มเหล่านี้
นอกจากนี้ยังมีเมนูช่วยเหลือที่ดี:
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/
สำหรับ gnome บน Ubuntu 18.04 ฉันพบว่าใช้งานได้:
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 ''
ฉันไม่แน่ใจว่าเป็นปุ่มลัดทั้งหมดหรือไม่ แต่ดูเหมือนว่าจะเป็นปุ่มลัดจำนวนมาก