Vscode: Tata letak keyboard Neo: Beberapa Tombol berhenti bekerja

Dibuat pada 6 Apr 2017  ·  28Komentar  ·  Sumber: microsoft/vscode

  • Versi VSCode: Kode 1.11.0 (9122ec4b1068bd391e41974f46a4b54c1b9c90f9, 2017-04-05T21: 13: 24.700Z)
  • Versi OS: Linux x64 4.4.0-72-generik

Langkah-langkah untuk Mereproduksi:

  1. Instal dan aktifkan tata letak keyboard Neo
  2. Buka file sumber apa pun dalam kode VS.
  3. Letakkan kursor di suatu tempat di file
  4. Tekan tombol M4 dan tahan. Tekan tombol s (lihat gambar)
  5. Alih-alih kursor bergerak ke kiri, tidak ada yang terjadi

Dalam versi VSCode sebelumnya (1.10.2 8076a19fdcab7e1fc1707952d652f0bb6c6db331) ini bekerja dengan baik.

tastatur_e4b png

bug help wanted keyboard-layout linux

Komentar yang paling membantu

Saya perlu waktu untuk memahami tata letak keyboard ini. Saya akan mem-ping Anda dalam beberapa hari mendatang jika Anda berbaik hati membantu saya. Ini tidak seperti yang pernah saya lihat.

Solusi untuk mengalihkan VS Code ke pengiriman berdasarkan kode kunci lagi. Tambahkan pengaturan berikut:
"keyboard.dispatch": "keyCode" dan mulai ulang VS Code

Semua 28 komentar

Masalah yang sama bagi saya. Masalah kata kunci karena saya tidak menemukan masalah ini pada awalnya: tombol panah lapisan 4 tata letak keyboard jerman neo2.

Berfungsi dengan baik di 1,10, tidak berfungsi di 1,11.

Editor pintasan di VSCode tampaknya mengidentifikasi kombinasi yang disorot di keyboard di atas sebagai [IntlBackslash] i

Itu tidak rusak di windows dan VSCode 1.11.0.
Bagaimanapun, keymapping di sana dilakukan oleh autohotkey yang memotong penekanan tombol dan mengeluarkannya sendiri - AFAIK ini ditangani secara berbeda di linux.

Saya baru saja kehabisan git bisect . Komitmen buruk pertama tampaknya https://github.com/Microsoft/vscode/commit/d10239639bf9beaa6ea34125319103de3dce43cd ( @alexandrudima )

# bad: [9122ec4b1068bd391e41974f46a4b54c1b9c90f9] Fix styling of release notes (fixes #23948)
# good: [8076a19fdcab7e1fc1707952d652f0bb6c6db331] debug: save all untitled non dirty files before debug start
git bisect start '1.11.0' '1.10.2'
# good: [40fecfaa77f01672e8a147be71f6f7ccb9cf8a12] fix mixin
git bisect good 40fecfaa77f01672e8a147be71f6f7ccb9cf8a12
# good: [9d2e0611f7f7750f02ec72c4d18a20b69c5bf8cf] #18095 :lipstick:
git bisect good 9d2e0611f7f7750f02ec72c4d18a20b69c5bf8cf
# bad: [7c223972367b8ade5362d738606f3b910d0fbb42] Fixes #19235: Wording in tasks warning message
git bisect bad 7c223972367b8ade5362d738606f3b910d0fbb42
# good: [378231183e815c8e8e6a73ad04fc40ec5058fdc5] Promise cancellation is slow. Use a timer instead since this may run many times.
git bisect good 378231183e815c8e8e6a73ad04fc40ec5058fdc5
# good: [f70b0b3ecb7f276c811b0f18c7a0bec3b03c11a6] Fixes #22069: Define extension story for tasks
git bisect good f70b0b3ecb7f276c811b0f18c7a0bec3b03c11a6
# bad: [4ad4bd0d8011a5db5e2bea4543b7efb03d482aad] :bug: add commit box message
git bisect bad 4ad4bd0d8011a5db5e2bea4543b7efb03d482aad
# bad: [9003dbc3f5f2b87cb3cc4a3418030dbdc45ac0a3] Add IKeybindingService.resolveUserBinding
git bisect bad 9003dbc3f5f2b87cb3cc4a3418030dbdc45ac0a3
# bad: [968da131589845b43c0d00141b41b2bb366a84e8] Improve the ScanCode -> KeyCode guessing strategy
git bisect bad 968da131589845b43c0d00141b41b2bb366a84e8
# bad: [969cbdfea05beda1a38d4082698b87f239fc2384] Renames
git bisect bad 969cbdfea05beda1a38d4082698b87f239fc2384
# bad: [8a33db65efdd3ed4c76d01cb76c3ef658caf16db] Add Inspect Key Mapppings action
git bisect bad 8a33db65efdd3ed4c76d01cb76c3ef658caf16db
# bad: [0ebecd5ca915ed33ea747cafe2c99572c52904b5] Merge branch 'master' into alex/keybinding
git bisect bad 0ebecd5ca915ed33ea747cafe2c99572c52904b5
# bad: [d10239639bf9beaa6ea34125319103de3dce43cd] First cut at integrating keyboard mappers
git bisect bad d10239639bf9beaa6ea34125319103de3dce43cd
# first bad commit: [d10239639bf9beaa6ea34125319103de3dce43cd] First cut at integrating keyboard mappers

Saya perlu waktu untuk memahami tata letak keyboard ini. Saya akan mem-ping Anda dalam beberapa hari mendatang jika Anda berbaik hati membantu saya. Ini tidak seperti yang pernah saya lihat.

Solusi untuk mengalihkan VS Code ke pengiriman berdasarkan kode kunci lagi. Tambahkan pengaturan berikut:
"keyboard.dispatch": "keyCode" dan mulai ulang VS Code

Saya memiliki masalah yang sama di Debian / Jessie.

https://github.com/Microsoft/vscode/issues/25797

Saya memiliki masalah dengan backspace.

Hai, saya punya masalah yang sama. Kemarin solusi tersebut berhasil untuk saya, tetapi hari ini solusi tersebut tidak berfungsi lagi. Ini berfungsi sekitar 2 detik setelah editor memulai, kemudian kunci dasar saya (huruf) tidak berfungsi lagi. :berpikir:
Saya tidak yakin apakah saya melakukan sesuatu yang bodoh sejak kemarin, tetapi apakah saya tahu mengapa ini bisa terjadi?

@zommerfelds Hal pertama yang akan saya periksa adalah settings.json . Apakah "keyboard.dispatch" digandakan di sana, apakah pengaturan ditimpa oleh pengaturan ruang kerja saat membuka folder, dll.

Hal berikutnya yang harus dilihat adalah membuka editor dan menjalankan F1 > Developer: Inspect key mappings . Apakah itu mencetak "FallbackKeyboardMapper dispatching on keyCode" (indikator bahwa pengaturan telah diterapkan).

Jika ini bukan masalah dengan pengaturan, yaitu konfirmasi bahwa pengiriman telah dilakukan pada keyCode ada, maka saya akan mencoba mencari apa yang dikirim oleh Electron / Chromium / OS saat Anda menekan tombol tertentu : Harap arahkan kursor ke kotak masukan dan ambil tangkapan layar:
keyboard-input

Hai @alexandrudima , terima kasih atas jawaban terperinci.

cat ~/.config/Code/User/settings.json :

// Place your settings in this file to overwrite the default settings
{
    "keyboard.dispatch": "keyCode"
}

Jika saya membuka editor dan pergi ke _File => Preferences => Settings_, saya melihat konten yang sama untuk _USER SETTINGS_ seperti di atas, dan {} untuk _WORKSPACE SETTINGS_, jadi itu akan baik-baik saja.

_F1> Pengembang: Periksa pemetaan kunci_ memberi saya:

Layout info:
{
    "model": "pc105",
    "layout": "de,ch",
    "variant": "neo,",
    "options": "grp:menu_toggle",
    "rules": "evdev"
}
FallbackKeyboardMapper dispatching on keyCode

Raw mapping:
...

Untuk keybindings yang saya dapatkan:

Jika saya ingin mengetik "a":
image

Jika saya ingin mengetik "(":
image

Huruf a dicetak dengan baik di munculan itu, tetapi tidak di editor utama.

Di Neo, A adalah tempat kunci D berada di QWERTY, dan ( adalah CapsLock+J dalam QUERTY.
Saya dapat menggunakan tombol panah di lapisan ke-4 di Neo dengan baik, tetapi tidak untuk misalnya angka. Backspace bekerja. Enter tidak berfungsi. Ctrl+Z berfungsi untuk membatalkan (di Neo).

Juga, seperti yang saya katakan sebelumnya, semuanya bekerja untuk beberapa detik pertama saat Vscode mulai, kemudian berhenti bekerja.

Beri tahu saya jika saya dapat membantu dengan cara lain. Akan luar biasa jika saya bisa mulai menggunakan Vscode lagi :)

EDIT: untuk klarifikasi saya pikir saya mungkin tidak memiliki masalah yang sama dengan OP. Tombol panah saya di lapisan ke-4 berfungsi tetapi bukan tombol huruf biasa dan sederhana.

EDIT2: _Bantuan => Tentang_:

Version 1.12.2
Commit 19222cdc84ce72202478ba1cec5cb557b71163de
Date 2017-05-10T13:16:25.899Z
Shell 1.6.6
Renderer 56.0.2924.87
Node 7.4.0

Terima kasih @alexandrudima ! Mengubah "keyboard.dispatch": "code" menjadi "keyboard.dispatch": "keyCode" di File->Preferences->Settings membantu saya mendapatkan kunci lapisan m4 (tombol escape, tombol navigasi, spasi mundur, hapus, angka) berfungsi.

Masih tidak berhasil untuk saya dengan 1.19.0 .
Saya juga memperhatikan bahwa pengaturan keyboard.dispatch tidak membuat perbedaan. Di salah satu pengaturan, tombol navigasi dan spasi mundur misalnya berfungsi, tetapi bukan angka dan huruf normal.
Apakah ada cara bagi saya untuk memverifikasi bahwa vscode benar-benar memuatnya sebagai keyCode dan entah bagaimana tidak kembali ke code ?

Sebenarnya saya baru saja membuatnya bekerja! Ekstensi NeoX mengacaukan pengaturan saya. Menonaktifkannya memperbaiki masalah. Saya tidak tahu lagi mengapa saya memasang ekstensi ini atau apa fungsinya. Saya masih harus menyetel keyboard.dispatch menjadi keyCode agar dapat berfungsi.
Maaf tentang itu dan terima kasih atas dukungannya. Yay saya bisa menggunakan vscode sekarang! :)

Saya kira kita bisa menutup masalah ini?

Masalah masih ada dalam Kode VS saat ini:

  • Versi VS Code: Code 1.20.0 (c63189deaa8e620f650cc28792b8f5f3363f2c5b, 2018-02-07T17: 10: 15.949Z)
  • Versi OS: Linux x64 4.13.0-32-generik

Saya juga mengalami masalah saat menggunakan Neo-Layout dengan VS Code 1.201 di Ubuntu 17.10 (Linux 4.13.0-36-generic). Tanpa tombol "keyboad.dispatch": keyCode - saya dapat mengetik dengan Neo2 tetapi bahkan tidak dapat menggunakan CTRL + C dan CTRL + V karena akan memetakan kembali ke tata letak default (masing-masing memicu CTRL + R dan CTRL + W ).

Saya baru saja mencoba "keyboard.dispatch" dan saya diberi tahu "pengaturan konfigurasi yang tidak diketahui". Tapi masalah saya sedikit berbeda.

Tombol panah berfungsi dengan baik, tetapi misalnya tombol urungkan tidak berfungsi. Ketika saya menekan M4+z kode studio visual hanya mengenali z . Dan ketika saya ingin mengikat sesuatu ke tombol seperti äöü, vscode menerjemahkan tombol tersebut jika itu adalah keyboard AS. Jadi Ctrl+ü diakui sebagai Ctrl+z . Ini mengerikan.

Saya memetakan keyboard saya dengan program XKB untuk menggunakan keyboard dvorak yang dimodifikasi.

Saya menggunakan opsi ralt_switch, yang digunakan untuk mengganti tombol alt kanan untuk berfungsi sebagai kunci meta atau pengubah ekstra.
Saya mengaktifkan pengaturan keyCode di VSCode Insider.
Di bawah ini adalah contoh penyiapan XKB saya

image

RAlt (aka Meta key) + s dikenali oleh VS sebagai End kunci. + Bagus
tetapi ketika saya harus melakukan ctrl+End kunci dengan Ctrl+RAlt (Meta)+s itu dikenali sebagai Ctrl+s yang akan menyimpan dokumen. -Buruk
Tebak apa yang terjadi ketika saya mencoba melompati beberapa kata dengan menekan Ctrl+Right alias Ctrl+RAlt (Meta)+n beberapa kali.

Saya kira pengubah Ctrl tidak bermain bagus dengan pengubah tambahan (atau pengubah keyCode-ed) seperti kunci meta atau Mod4.
Bahkan Ctrl+Shift+RAlt (Meta)+s juga hemat.
Tapi Shift+Ralt (Meta)+s menyukai Shift+End yang mana +Good
Bisakah Anda membuat ctrl berperilaku seperti shift, dalam istilah menggabungkan pengubah?


Saya kira ini masalah terkait, tetapi dengan kasus yang berbeda.
_ judul menyebutkan tata letak neo, yang ini khusus_

apakah ini terkait dengan komentar yang diselesaikan ini?
dengan menggunakan 'kode' keyboard.dispatch, tetapi hanya untuk OSX. Dan saya baru saja mencobanya tidak berhasil di Linux Mint / Ubuntu
https://github.com/Microsoft/vscode/issues/12393#issuecomment -288994081

Saya menggunakan Linux.

Versi 1.21.1.1
Komit 79b44aa704ce542d8ca4a3cc44cfca566e7720f1
Datum 2018-03-14T14: 46: 30.761Z
Kulit 1.7.9
Perender 58.0.3029.110
Node 7.9.0
Architektur x64

Sayangnya solusi keyboard.dispatch tampaknya tidak berhasil untuk saya juga - setidaknya tidak cukup baik. Saya dapat menggunakan tujuan ulang CapsLock (Mod3) untuk menyisipkan simbol pemrogram seperti /,\,[,] dan seterusnya di dalam editor, tetapi tidak di Pintasan seperti shift+/ yang berarti menekan tombol tombol fisik shift+capslock+s

Mencoba menetapkan ulang pintasan dengan Mod3 menunjukkan unknown

unknown_key

Sepertinya @sakasistem disebutkan, sepertinya ada masalah dengan urutan tombol pengubah tertentu.

jalan pintas seperti shift+/ adalah BS total dan seharusnya tidak ada.

Ini harus berupa ? dan biarkan tata letak memutuskan pengubah apa yang diperlukan untuk mengetik karakter itu, atau tata letak independen shift + scancode_slash . Pada opsi pertama saya hanya akan mengetik? (tidak peduli di mana saya meletakkannya di tata letak saya dan pengubah apa yang perlu saya tekan), dan yang kedua saya hanya akan mengetikkan modal J dalam tata letak saya, karena saya memiliki J di posisi keyboard di mana Qwerty AS memiliki / .

Sama seperti krux02, saya harus mengetik 'Ctrl + ü' dan 'Ctrl + k' masing-masing untuk membatalkan dan mengulang, tetapi saya dapat menemukan pengaturan "keyboard.dispatch" yang sesuai dan tampaknya telah menyelesaikan masalah.

OS: Ubuntu 18.04 LTS

VSCode:

Versi 1.23.1
Komit d0182c3417d225529c6d5ad24b7572815d0de9ac
Tanggal 2018-05-10T16: 04: 33.747Z
Kulit 1.7.12
Perender 58.0.3029.110
Node 7.9.0
Arsitektur x64

Ya ampun, saya menggunakan vscode insider hanya untuk menunggu masalah ini diperbaiki.
Sama seperti @sakasistem
Saya menggunakan thinkpad dengan keyboard qwerty fisik, memodifikasi keymap saya ke dvorak khusus dengan file xkb di linux mint sonya

Berikut adalah file keymap https://pastebin.com/cUAxDtAM
Ini untuk OS berbasis debian, Linux Mint tepatnya.
Taruh di /usr/share/X11/xkb/symbols/us tepat sebelum definisi dvorak-intl
partial alphanumeric_keys xkb_symbols "dvorak-intl" {

Itu menambahkan sihir navigasi ke tata letak dvorak, itu akan berperilaku up , left , down , right dengan RAlt+c,RAlt+h,RAlt+t,RAlt+n (seharusnya i, j, k, l pada qwerty daripada c, h, t, n ), ini benar-benar berfungsi pada sebagian besar aplikasi dengan ctrl , shift dan alt pengubah, tetapi vscode. Ctrl+RAlt+n harus melompati kata berikutnya tetapi berperilaku seperti Ctrl + n dan membuka tab baru.

Pengubah Shift berfungsi, yang membuat Shift+RAlt+s akan memilih hingga akhir baris, hanya Ctrl pengubah yang memicu pintasan untuk tempat pertama.

Nah, berikut adalah konten pastebinnya:

partial alphanumeric_keys
xkb_symbols "dvorak-shy" {

    name[Group1]= "English (Dvorak) by Shy";

    key <TLDE> { [       grave, asciitilde, dead_grave, dead_tilde  ] };

    key <AE01> { [      1,  exclam      ]   };
    key <AE02> { [      2,  at      ]   };
    key <AE03> { [      3,  numbersign  ]   };
    key <AE04> { [      4,  dollar      ]   };
    key <AE05> { [      5,  percent     ]   };
    key <AE06> { [      6,  asciicircum, dead_circumflex, dead_circumflex ] };
    key <AE07> { [      7,  ampersand   ]   };
    key <AE08> { [      8,  asterisk    ]   };
    key <AE09> { [      9,  parenleft,  dead_grave] };
    key <AE10> { [      0,  parenright  ]   };
    key <AE11> { [ bracketleft, braceleft   ]   };
    key <AE12> { [ bracketright, braceright,  dead_tilde] };

    key <AD01> { [  apostrophe, quotedbl, dead_acute, dead_diaeresis    ] };
    key <AD02> { [  comma,  less,   dead_cedilla, dead_caron    ] };
    key <AD03> { [      period, greater, dead_abovedot, periodcentered  ] };
    key <AD04> { [      p,  P       ]   };
    key <AD05> { [      y,  Y       ]   };
    key <AD06> { [      f,  F       ]   };
    key <AD07> { [      g,  G, Page_Up, Page_Up     ]   };
    key <AD08> { [      c,  C, Up, Up       ]   };
    key <AD09> { [      r,  R, dead_tilde, dead_tilde       ]   };
    key <AD10> { [      l,  L       ]   };
    key <AD11> { [  slash,  question    ]   };
    key <AD12> { [  equal,  plus        ]   };

    key <AC01> { [      a,  A       ]   };
    key <AC02> { [      o,  O       ]   };
    key <AC03> { [      e,  E       ]   };
    key <AC04> { [      u,  U       ]   };
    key <AC05> { [      i,  I       ]   };
    key <AC06> { [      d,  D, Home, Home       ]   };
    key <AC07> { [      h,  H, Left, Left       ]   };
    key <AC08> { [      t,  T, Down, Down       ]   };
    key <AC09> { [      n,  N, Right, Right     ]   };
    key <AC10> { [      s,  S, End, End     ]   };
    key <AC11> { [  minus,  underscore  ]   };

    key <AB01> { [   semicolon, colon, dead_ogonek, dead_doubleacute ] };
    key <AB02> { [      q,  Q       ]   };
    key <AB03> { [      j,  J       ]   };
    key <AB04> { [      k,  K       ]   };
    key <AB05> { [      x,  X       ]   };
    key <AB06> { [      b,  B       ]   };
    key <AB07> { [      m,  M, Page_Down, Page_Down     ]   };
    key <AB08> { [      w,  W       ]   };
    key <AB09> { [      v,  V       ]   };
    key <AB10> { [      z,  Z       ]   };

    key <BKSL> { [  backslash,  bar             ]       };


    key <CAPS> { [    BackSpace,    BackSpace,       BackSpace,        BackSpace ] };

    include "level3(ralt_switch)"
};

perhatikan kode magis include "level3(ralt_switch)" yang membuat RAlt seperti mod3 tetapi membuat vscode mengenalinya sebagai unknown .

Linux di sini, tidak menggunakan tata letak keyboard yang tidak biasa, saya hanya memetakan ulang Caps Lock ke Backspace melalui XkbOptions , dan itu juga tidak berhasil. Beralih ke keyCode membuatnya berhasil. Saya kira ini mempengaruhi segala jenis pemetaan kunci.

Bagi saya titik dua : secara spontan berhenti bekerja di Visual Studio Code 1.32.3 di macOS 10.14.3. Kombinasi kunci di Neo2 adalah caps lock + ; (di qwerty). Menyetel keyboard.dispatch menjadi keyCode membantu.

Pengguna neo2 lain di sini;) Tersandung masalah backspace-tidak berfungsi dalam beberapa menit pertama menggunakan VSCode. Untungnya sejauh ini solusi tersebut berfungsi seperti pesona!
Namun demikian, akan sangat bagus jika bug ini diperbaiki suatu hari nanti;)

Solusi dari https://github.com/microsoft/vscode/issues/24043#issuecomment -292334048 berfungsi untuk fungsi backspace (: +1:) tetapi memindahkan satu kata maju / mundur dan menghapus satu kata di depan atau di belakang kursor masih tidak berfungsi: bingung:, yaitu Ctrl + Alt Gr + w (dalam tata letak qwerty / tombol pada keyboard) harus menghapus satu kata di kiri kursor tetapi hanya menempel clipboard, yang akan menjadi Ctrl + w (dalam tata letak qwerty / tombol pada keyboard) yaitu Ctrl + v .
Sepertinya Alt Gr tekan tombol hanya diabaikan ketika menekan Ctrl key.

Saya menggunakan Arch Linux dengan pembaruan terkini.

Bagaimana saya bisa memberikan info lebih lanjut untuk membantu mengatasi masalah ini?

Saya baru mengenal VS Code dan saya menggunakan tata letak KOY (dengan beberapa adaptasi) di Linux ( setxkbmap de koy ). Masalah yang sama seperti dengan Neo2: Saya dapat mengetik tanda hubung dengan menekan CapsLock+L di editor. Tetapi pintasan yang berisi CapsLock tidak berfungsi (seperti memperkecil tampilan dengan Ctrl+- = Ctrl-CapsLock-L ).

Halaman masalah keybindings merekomendasikan menjalankan F1 > Developer: Inspect key mappings jika tidak ada yang membantu.

Dengan tata letak Jerman standar ( setxkbmap de ), saya mendapatkan ini untuk kunci L :

    "KeyL": {
        "value": "l",
        "withShift": "L",
        "withAltGr": "ł",
        "withShiftAltGr": "Ł"
    }

Dengan KOY ( setxkbmap de koy ), saya mendapatkan:

    "KeyL": {
        "value": "n",
        "withShift": "N",
        "withAltGr": "n",
        "withShiftAltGr": "N"
    },

Rupanya, VS Code tidak mendapatkan level tata letak yang lebih tinggi dengan benar!

Beberapa informasi teknis tambahan tentang keluarga tata letak keyboard ini (neo, adnw, koy, bone):

Dalam tata letak default Jerman, AltGr dipetakan ke ISO_Level3_Shift (di Linux). Di Neo2 (dan sejenisnya), AltGr dipetakan ke ISO_Level5_Shift dan CapsLock dipetakan ke ISO_Level3_Shift .

Jadi saya pikir, kita harus melihat output > Developer: Inspect key mappings juga

    "KeyL": {
        "value": "n",
        "withShift": "N",
        "withAltGr": "-",

(karena CapsLock menggantikan AltGr di Neo2 dalam hal menjadi kunci ISO_Level3_Shift )

atau

    "KeyL": {
        "value": "n",
        "withShift": "N",
        "withAltGr": "6",

(karena Anda mendapatkan "6" ketika Anda menekan tombol AltGr fisik ditambah tombol L seperti yang Anda lihat di screenshot OP).

Saya harap, ini membantu Anda para pengembang VS Code untuk lebih memahami masalah kita.

Saya sadar bahwa saya (dan lainnya) mencampurkan beberapa masalah terkait Neo di sini. Tapi mereka mungkin berhubungan.

Diuji di Ubuntu 18.04 dengan versi VS Code / Codium ini:

Version: 1.44.0
Commit: 2aae1f26c72891c399f860409176fe435a154b13
Date: 2020-04-09T10:44:46.342Z
Electron: 7.1.11
Chrome: 78.0.3904.130
Node.js: 12.8.1
V8: 7.8.279.23-electron.0
OS: Linux x64 4.15.0-96-generic

Sepertinya penekanan tombol Alt Gr diabaikan begitu saja saat menekan tombol Ctrl .

Saya mempunyai masalah yang sama. Menandai satu huruf melalui Shift + RightArrow berfungsi ketika saya memasukkan RightArrow melalui AltGr + E , Tetapi menggunakan Ctrl + Shift + RightArrow dengan tata letak Neo mengirimkan Ctrl + Shift + E sebagai gantinya .
Saya telah menggunakan fungsi perekaman kunci dan mendapatkan metode pengiriman code :

  • Menekan Shift + AltGr + E pertama-tama akan menampilkan shift + alt , lalu berubah menjadi shift + right .
  • Menekan Ctrl + Shift + AltGr + E pertama menampilkan ctrl + shift + alt , kemudian berubah menjadi ctrl + shift + e

dan dengan metode keyCode :

  • Menekan Shift + AltGr + E pertama-tama akan menampilkan shift + oem_8 , kemudian berubah menjadi shift + right .
  • Menekan Ctrl + Shift + AltGr + E menampilkan ctrl + shift + oem_8 ctrl+shift+e

Hal yang sama terjadi ketika hanya menggunakan Ctrl + AltGr +E yang menjadi ctrl + e bukan ctrl + right .

Untuk masalah khusus ini, mungkinkah solusi yang layak untuk hanya menandai kunci tertentu sebagai mati? Tata letak seperti Neo tidak memerlukan VSCode untuk mendengarkan AltGr sama sekali, ini hanya akan memproses kode kunci yang dikirim saat ditekan dalam kombinasi. Selain itu, ketika lapisan itu "dikunci" dengan menggunakan kedua tombol Mod4, menekan Ctrl + Shift + e dengan benar dikenali sebagai ctrl + shift + right .

Info tata letak saya:

"layout": {
        "model": "pc105",
        "layout": "de,de,gb",
        "variant": "neo,,",
        "options": "grp_led:scroll,altwin:alt_super_win",
        "rules": "evdev"
    }

Saya mengalami masalah yang sama seperti yang dijelaskan di sini beberapa kali, di mana menahan control atau kunci serupa membuat kunci tertentu di level 4 dari tata letak neo tidak dapat digunakan dan mengeksekusi pintasan yang tidak diinginkan.

Perbaikan / solusi saya

Apa yang berhasil bagi saya di Ubuntu 18.04 dan memperbaiki semua masalah ini, adalah menjalankan setxkbmap -layout de -variant neo setelah startup dan setiap bangun. Tampaknya berfungsi dengan salah satu setelan untuk keyboard.dispatch ( keyCode atau code ).

Memulai

Dalam "Startup Application Preferences"->Add masukkan setxkbmap -layout de -variant neo seperti ini dan simpanScreenshot

Bangun

Dengan sudoedit /lib/systemd/system-sleep/setxkbmap add

#!/bin/bash
case $1 in
  post)
    DISPLAY=:1 ; export DISPLAY
    su $USER -c "sleep 1; setxkbmap -layout de -variant neo"
  ;;
esac

dan berikan izin yang dapat dieksekusi dengan sudo chmod 755 /lib/systemd/system-sleep/setxkbmap .

  • Alih-alih $USER tambahkan pengguna Anda.
  • Di tempat lain saya telah menemukan saran DISPLAY=:0 , tetapi itu tidak berhasil untuk saya. Kemudian saya mencoba nilai yang saya dapat dari echo $DISPLAY ( :1 ), yang berhasil.
  • Jika tidak berhasil, coba dengan penundaan yang lebih lama (mis. Daripada sleep 1; , gunakan sleep 3; )

Saya harap ini membantu orang lain!

Apakah halaman ini membantu?
0 / 5 - 0 peringkat