Bagaimana cara membuat daftar kunci perusahaan Compiz?

16

Selain mencari setiap plugin aktif dan secara manual mencari keybindings / keyboard-shortcut yang digunakan oleh compiz, adakah cara 'sederhana' untuk mengumpulkan informasi ini?

yaitu Beberapa panel yang menampilkan semua binding key aktif yang sedang digunakan (oleh compiz), atau beberapa perintah terminal untuk melakukan hal yang sama.

Pintasan keyboard tidak muncul untuk mencantumkan pintasan perusahaan tertentu.

Terima kasih

Jay_11
sumber

Jawaban:

12

Berikut ini satu-liner (sangat panjang) yang mengembalikan semua pintasan dari semua plugin aktif:

for i in $(gconftool-2 --get /apps/compiz-1/general/screen0/options/active_plugins|sed "s/\[\|\]//g"|sed "s/,/ /g"); do echo "# $i:"; gconftool-2 -a /apps/compiz-1/plugins/"$i"/screen0/options | grep "_key\|_button\|trigger_\|initiate\ \|panel_first_menu\|keyboard_focus\|execute_command\|show_launcher" | grep -v "Disabled\|=[[:space:]]*$" | sort; done; echo -e "\n# metacity overrides:"; gconftool-2 -a /apps/metacity/global_keybindings | grep -v "disabled\|cycle\|switch_panels" | sort; gconftool-2 -a /apps/metacity/window_keybindings | grep -v "disabled" | sort

Pembaruan :
Versi di atas sekarang mendapatkan semua binding key yang tidak kosong / dinonaktifkan (key, mouse, key + mouse) dari semua plugin yang aktif.

Namun, nilai kunci X-GNOME-WMSettingsModule di /usr/share/applications/compiz.desktop membuat Metacity menimpa beberapa kunci Compiz. Anda akan melihat label miring di ccsm- saat itulah nilai berasal dari Metacity dan bukan Compiz.

Karena saya tidak menemukan cara mudah untuk memperbaikinya, saya cukup menambahkan semua pintasan Metacity ke akhir output.

htorque
sumber
1
Tampaknya melakukan pekerjaan dengan sangat baik, terima kasih. Meskipun tidak mengembalikan show_desktop_key = <Control> <Alt> d, daripada <super> d seperti yang saya definisikan ulang.
Jay_11
Nah, itu aneh ... mengubah dinding "left_key" perubahan "/ apps / metacity / global_keybindings / switch_to_workspace_left" sebagai gantinya. Sepertinya beberapa keybindings yang Anda ubah di Compiz ditetapkan untuk metacity? Itu akan membuat tugasnya sedikit lebih sulit. : - /
htorque
Terima kasih atas pembaruannya. Sekarang menunjukkan nilai yang dimodifikasi untuk mengungkapkan desktop di bawah # metacity override: - Pekerjaan yang sangat bagus, Terima kasih lagi.
Jay_11
Perhatikan bahwa karena ada banyak perintah di sana, jika Anda ingin menyimpan output dalam file, Anda harus membungkus semuanya dalam parens dan mengarahkan output setelah par trailing.
nealmcb
1
Ini tidak lagi berfungsi pada 14.04:No value set for /apps/compiz-1/general/screen0/options/active_plugins
Jonathan Hartley
1

Anda tidak perlu membuat skrip 2 sed skrip, mereka bisa menjadi satu, dipisahkan oleh ';'. Tetapi bahkan lebih sederhana akan menyalurkan ke tr. Untuk 12,04 tanpa metacity ini seharusnya:

for i in $(gconftool-2 --get /apps/compiz-1/general/screen0/options/active_plugins|tr '[],' ' '); do echo "# $i:"; gconftool-2 -a /apps/compiz-1/plugins/"$i"/screen0/options | grep "_key\|_button\|trigger_\|initiate\ \|panel_first_menu\|keyboard_focus\|execute_command\|show_launcher" | grep -v "Disabled\|=[[:space:]]*$" | sort; done

Namun, seperti yang sudah dicatat Jay_11, keseluruhan konstruk tampaknya menunjukkan bagian dari apa yang masuk ke compiz, bukan hasilnya. Misalnya saya dapat close_window_key = <Alt>F4, tetapi saya mematikannya. Sebagai pengguna avid Emacs, saya tidak membiarkan window manager mendekati apa pun kecuali <Super>, tetapi ini tidak muncul!

Jadi pertanyaannya tetap: Apa yang sebenarnya dilakukan compiz?

Daniel
sumber