Apa itu <Primary> untuk suatu kunci?

18

Saya baru saja melihat jalan pintas aneh di dconf-editor:

<Primary><Alt>KP_End

Apa <Primary>?

Saya juga melihat Above-Tabkunci. Saya benar-benar mengerti apa yang dimaksud, tetapi apakah nama-nama kunci itu didefinisikan?

Robert Siemer
sumber

Jawaban:

16

<Primary>adalah suatu gtk+hal.
gtk+ 2.24.7& gtk+ 3.2.1memperkenalkan konsep pengubah akselerator platform-agnostik <Primary>,, yang dapat digunakan sebagai ganti <Control>:

fasilitas baru disediakan di Gtk + (saat tulisan ini dibuat, Git untuk Gtk + -2.24, dan dirilis dalam Gtk + -3.2.0) untuk menggunakan <Primary> deskriptor sebagai pengganti <Control>akselerator dan binding. Ini akan memetakan akselerator ke Perintah pada OSX dan untuk Kontrol untuk hal lain. 1

Sesuai komit ini :

gtk: memungkinkan untuk menentukan akselerator dengan cara yang bebas platform. Memperkenalkan <Primary>string akselerator, yang memutuskan ke GDK_CONTROL_MASK pada X11 / Win23, dan ke GDK_META_MASK di kuarsa.

itu didefinisikan (bersama dengan akselerator lainnya) di gtkaccelgroup.c

gtk_accelerator_name (guint accelerator_key,
                     GdkModifierType accelerator_mods)
{
  static const gchar text_release[] = "<Release>";
  static const gchar text_primary[] = "<Primary>";
  static const gchar text_shift[] = "<Shift>";
  static const gchar text_control[] = "<Control>";
  static const gchar text_mod1[] = "<Alt>";
  static const gchar text_mod2[] = "<Mod2>";
  static const gchar text_mod3[] = "<Mod3>";
  static const gchar text_mod4[] = "<Mod4>";
  static const gchar text_mod5[] = "<Mod5>";
  static const gchar text_meta[] = "<Meta>";
  static const gchar text_super[] = "<Super>";
  static const gchar text_hyper[] = "<Hyper>";

<Above_tab>adalah hal manajer jendela.
Sesuai komitmen ini dalam metacity:

Kami ingin beralih di antara jendela aplikasi menjadi operasi yang mudah diakses. Pengikat tombol yang nyaman dan mudah diingat adalah tombol di atas tombol tab - tetapi kunci tombol untuk tombol itu tidak konsisten di seluruh tata letak keyboard yang berbeda. Tambahkan kode yang menggambarkan kunci dari geometri XKB dan nama kunci tombol ajaib "Above_Tab" yang merujuk ke kunci ini dan alihkan pengikatan default untuk cycle_group ke Above_Tab

Lihat juga ini berkomitmen dalam mutterdan sumber file meta-accel-parse.cdanmeta-accel-parse.h

don_crissti
sumber
Astaga, betapa membingungkannya. Apakah maksud Anda biasanya itu adalah hal GNOME, kecuali bahwa Above-Tab dan Primary hanya bergumam ?? (Yaitu hanya bergumam yang bisa memahami uraian jalan pintas yang mengandung itu?)
Robert Siemer
5

<Primary>biasanya berarti (alias tombol Windows), tetapi dapat didefinisikan ulang (saya telah melihatnya dipetakan di beberapa tempat). The GNOME wiki mengatakan :Ctrl SuperCtrlShift

Kunci pengubah sistem utama adalah (Super / Windows / Command key).

Argh. Ada beberapa kebingungan di sini. Meskipun Wiki GNOME mengatakan "kunci pengubah sistem primer", ini mungkin sebenarnya berbeda dari "kunci utama". Dua posting forum mencatat bahwa Primary adalah , seperti yang saya pikirkan. Ada bug (tetap) berusia dua tahun tentang kebingungan dan Primer diajukan di Ubuntu, yang mengatakan:CtrlCtrlcompiz

Sebelumnya kami biasa memanggil tombol kontrol <Control>tetapi ini sekarang telah diubah di GNOME sehingga ketika tombol kontrol ditekan <primary>dikembalikan. Dalam compiz, kami menetapkan pintasan keyboard sebagai (misalnya) <Control><Alt><Left>.

Saya pergi dengan coba-coba: coba Ctrldulu, lalu Super.

muru
sumber
2
<Primary>tidak Super, seperti yang Anda sadari; itu sayangnya kata-kata yang ambigu. Namun, itu sangat tidak didefinisikan sebagai Ctrl- yaitu tidak pada OS X. Tujuannya adalah untuk memetakan kunci pengubah utama sistem host, yang pada OS X adalah Command. Ini memungkinkan aplikasi menggunakan GTK + secara otomatis mendapatkan pintasan yang cocok dengan aplikasi OS X asli (mis. Command+ ZUntuk membatalkan) dan bukan hal yang aneh / menggelegar (seperti Ctrlyang digunakan untuk hal-hal yang berbeda di sana).
underscore_d
Jawaban ini sangat kacau! <Primary>tentu saja berarti <Control>( Ctrl) dalam konteks Gtk pada non-Mac dan Command( ) pada mesin Mac. Misalnya keluar Ctrl+qsekarang secara otomatis dipetakan ke ⌘+q. Juga halaman wiki yang Anda kutip hanya berbicara tentang <Super>tidak ada hubungannya <Primary>.
Cas
@Baiklah, senang tahu mereka memperbarui wiki.
muru
Apakah mungkin untuk memetakan kembali Primer ke Super pada non-kuarsa (tanpa membangun kembali)?
Edoardo Vacchi