Vscode: تخطيط لوحة المفاتيح الجديدة: توقفت بعض المفاتيح عن العمل

تم إنشاؤها على ٦ أبريل ٢٠١٧  ·  28تعليقات  ·  مصدر: microsoft/vscode

  • إصدار VSCode: الكود 1.11.0 (9122ec4b1068bd391e41974f46a4b54c1b9c90f9، 2017-04-05 T21: 13: 24.700Z)
  • إصدار نظام التشغيل: Linux x64 4.4.0-72-generic

خطوات الاستنساخ:

  1. قم بتثبيت وتنشيط تخطيط لوحة المفاتيح Neo
  2. افتح أي ملف مصدر في كود VS
  3. ضع المؤشر في مكان ما في الملف
  4. اضغط على مفتاح M4 مع الاستمرار. اضغط على مفتاح s (انظر الصورة)
  5. بدلاً من تحريك المؤشر إلى اليسار ، لا يحدث شيء

في الإصدار السابق من VSCode (1.10.2 8076a19fdcab7e1fc1707952d652f0bb6c6db331) كان هذا يعمل بشكل جيد.

tastatur_e4b png

bug help wanted keyboard-layout linux

التعليق الأكثر فائدة

أحتاج إلى بعض الوقت لفهم تخطيط لوحة المفاتيح هذا. سوف أتواصل معك في الأيام القادمة إذا كنت من اللطيف بما يكفي لمساعدتي. إنه لا يشبه أي شيء رأيته.

الحل البديل لتبديل VS Code للإرسال استنادًا إلى رمز المفتاح مرة أخرى. أضف الإعداد التالي:
"keyboard.dispatch": "keyCode" وأعد تشغيل VS Code

ال 28 كومينتر

نفس المشكلة بالنسبة لي. قم بإصدار الكلمات الأساسية لأنني لم أجد هذه المشكلة في البداية: تخطيط لوحة المفاتيح الألمانية من الطبقة 4 neo2.

عملت بشكل جيد في 1.10 ، لا تعمل في 1.11.

يبدو أن محرر الاختصارات في VSCode يحدد المجموعة المميزة في لوحة المفاتيح أعلاه على أنها [IntlBackslash] i

لم يتم كسره على النوافذ و VSCode 1.11.0.
ومع ذلك ، يتم إجراء تعيين المفاتيح عن طريق autohotkey الذي يعترض ضغطات المفاتيح وينبعث من تلقاء نفسه - AFAIK يتم التعامل مع هذا بشكل مختلف في Linux.

لقد قمت للتو بتشغيل git bisect . يبدو أن أول التزام خاطئ هو 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

أحتاج إلى بعض الوقت لفهم تخطيط لوحة المفاتيح هذا. سوف أتواصل معك في الأيام القادمة إذا كنت من اللطيف بما يكفي لمساعدتي. إنه لا يشبه أي شيء رأيته.

الحل البديل لتبديل VS Code للإرسال استنادًا إلى رمز المفتاح مرة أخرى. أضف الإعداد التالي:
"keyboard.dispatch": "keyCode" وأعد تشغيل VS Code

لدي نفس المشكلة على Debian / Jessie.

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

لدي مشاكل مع Backspace.

مرحبا، انا عندي نفس المشكلة. بالأمس نجح الحل البديل بالنسبة لي ، لكنه لم يعد يعمل اليوم. إنه يعمل لمدة ثانيتين تقريبًا بعد بدء تشغيل المحرر ، ثم لم تعد المفاتيح الأساسية (الحروف) تعمل. : التفكير:
لست متأكدًا مما إذا كنت قد فعلت شيئًا غبيًا منذ الأمس ، لكن هل لدي أي فكرة عن سبب حدوث ذلك؟

zommerfelds أول شيء أود التحقق منه هو settings.json . هل "keyboard.dispatch" مكرر هناك ، هو الإعداد الذي تم استبداله بواسطة إعداد مساحة العمل عند فتح مجلد ، وما إلى ذلك.

الشيء التالي الذي يجب النظر إليه هو فتح محرر وتشغيل F1 > Developer: Inspect key mappings . هل تقوم بطباعة "إرسال FallbackKeyboardMapper على keyCode" (مؤشر على تطبيق الإعداد).

إذا لم تكن هذه مشكلة في الإعدادات ، أي التأكيد على أن الإرسال يتم على keyCode موجود ، فحينئذٍ سأحاول البحث في ما يرسله Electron / Chromium / OS في طريقنا عندما تضغط على مفتاح معين : يرجى تمرير مؤشر الماوس فوق مربع الإدخال والتقاط لقطة شاشة:
keyboard-input

مرحبًا alexandrudima ، شكرًا على الإجابة التفصيلية.

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

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

إذا فتحت المحرر وانتقلت إلى _File => التفضيلات => الإعدادات_ ، أرى نفس محتويات _USER SETTINGS_ كما هو مذكور أعلاه ، و {} لـ _WORKSPACE SETTINGS_ ، لذلك يجب أن يكون ذلك جيدًا.

_F1> المطور: فحص تعيينات المفاتيح_ يعطيني:

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

Raw mapping:
...

بالنسبة إلى روابط المفاتيح التي أحصل عليها:

إذا أردت كتابة "أ":
image

إذا أردت كتابة "(":
image

المطبوع على ما يرام في تلك النافذة المنبثقة ، ولكن ليس في المحرر الرئيسي.

في Neo ، يكون A هو المكان الذي سيكون فيه المفتاح D في QWERTY ، و ( هو CapsLock+J في QUERTY.
يمكنني استخدام مفاتيح الأسهم في الطبقة الرابعة في Neo على ما يرام ، ولكن ليس على سبيل المثال الأرقام. يعمل Backspace. إدخال لا يعمل. Ctrl+Z يعمل للتراجع (في Neo).

أيضًا ، كما قلت سابقًا ، يعمل كل شيء في الثواني القليلة الأولى أثناء بدء تشغيل Vscode ، ثم يتوقف عن العمل.

اسمحوا لي أن أعرف إذا كان بإمكاني المساعدة بطريقة أخرى. سيكون من الرائع أن أبدأ في استخدام Vscode مرة أخرى :)

تحرير: للتوضيح أعتقد أنني قد لا أواجه نفس المشكلة مثل OP. تعمل مفاتيح الأسهم الخاصة بي في الطبقة الرابعة ولكن ليس مفاتيح الأحرف البسيطة والبسيطة.

EDIT2: _Help => About_:

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

alexandrudima شكرا! ساعدني تغيير "keyboard.dispatch": "code" إلى "keyboard.dispatch": "keyCode" في File->Preferences->Settings في الحصول على مفاتيح طبقة m4 (مفتاح الهروب ، مفاتيح التنقل ، مسافة للخلف ، حذف ، أرقام).

ما زلت لا تعمل بالنسبة لي على 1.19.0 .
لقد لاحظت أيضًا أن إعداد keyboard.dispatch لا يُحدث فرقًا. في أي من الإعدادين ، تعمل مفاتيح التنقل و backspace على سبيل المثال ، ولكن ليس الأرقام والحروف العادية.
هل هناك طريقة يمكنني من خلالها التحقق من أن vscode يقوم بالفعل بتحميله كـ keyCode ولا يعود إلى code بطريقة ما؟

في الواقع لقد حصلت للتو على العمل! كان امتداد NeoX يفسد إعداداتي. تعطيله حل المشكلة. ليس لدي أي فكرة بعد الآن عن سبب تثبيت هذا الامتداد ولا ما يفعله. لا يزال يتعين علي تعيين keyboard.dispatch على keyCode حتى يعمل.
آسف لذلك وشكرا على الدعم. Yay يمكنني استخدام vscode الآن! :)

أعتقد أنه يمكننا إغلاق هذه المشكلة بعد ذلك؟

لا تزال المشكلة موجودة في رمز VS الحالي:

  • إصدار كود VS: الكود 1.20.0 (c63189deaa8e620f650cc28792b8f5f3363f2c5b، 2018-02-07T17: 10: 15.949Z)
  • إصدار نظام التشغيل: Linux x64 4.13.0-32-generic

لقد واجهت أيضًا مشكلة في استخدام Neo-Layout مع VS Code 1.201 ضمن Ubuntu 17.10 (Linux 4.13.0-36-generic). بدون المفتاح "keyboad.dispatch": keyCode - تمكنت من الكتابة باستخدام Neo2 ولكن لم أتمكن حتى من استخدام CTRL + C و CTRL + V لأنه سيعود إلى التخطيط الافتراضي (يؤدي إلى تشغيل CTRL + R و CTRL + W ، على التوالي ).

حسنًا ، لقد حاولت للتو "keyboard.dispatch" ويخبرني "إعداد تكوين غير معروف". لكن مشاكلي مختلفة بعض الشيء.

تعمل مفاتيح الأسهم بشكل جيد ، ولكن على سبيل المثال ، لا يعمل مفتاح التراجع. عندما أضغط على M4+z يتعرف كود الاستوديو المرئي على z . وعندما أريد ربط شيء ما بمفاتيح مثل äöü ، يترجم vscode هذه المفاتيح إذا كانت لوحة مفاتيح أمريكية. لذلك يتم التعرف على Ctrl+ü كـ Ctrl+z . هذا مروع.

أقوم بتعيين لوحة المفاتيح الخاصة بي باستخدام برنامج XKB لاستخدام لوحة مفاتيح dvorak المعدلة.

أستخدم خيار ralt_switch ، والذي يستخدم لتبديل مفتاح alt الأيمن ليعمل كمفتاح تعريف أو معدل إضافي.
أقوم بتمكين إعداد keyCode في VSCode Insider.
فيما يلي نموذج إعداد XKB الخاص بي

image

تم التعرف على RAlt (aka Meta key) + s بواسطة VS كمفتاح End . + جيد
ولكن عندما كان من المفترض أن أقوم بعمل مفتاح ctrl+End باستخدام Ctrl+RAlt (Meta)+s ، تم التعرف عليه على أنه Ctrl+s والذي سيحفظ المستند. -سيئة
خمن ماذا يحدث عندما حاولت القفز على بعض الكلمات بالضغط على Ctrl+Right ويعرف أيضًا باسم Ctrl+RAlt (Meta)+n عدة مرات.

أفترض أن معدل Ctrl لا يعمل بشكل جيد مع المُعدِّل الإضافي (أو مُعدِّل keyCode-ed) مثل meta key أو Mod4.
حتى Ctrl+Shift+RAlt (Meta)+s يحفظ أيضًا.
لكن Shift+Ralt (Meta)+s يشبه Shift+End وهو +Good
هل يمكنك فقط جعل ctrl يتصرف مثل shift ، من حيث الجمع بين المُعدِّلات؟


أعتقد أنها قضية ذات صلة ، ولكن مع حالة مختلفة.
_ العنوان يذكر التخطيط الجديد ، هذا مخصص_

هل هذا متعلق بهذا التعليق المحلول؟
باستخدام keyboard.dispatch 'code' ، ولكن فقط لـ OSX. وقد حاولت للتو أنها لم تنجح في Linux Mint / Ubuntu
https://github.com/Microsoft/vscode/issues/12393#issuecomment -288994081

أنا على لينكس.

الإصدار 1.21.1
قم بتنفيذ 79b44aa704ce542d8ca4a3cc44cfca566e7720f1
المسند 2018-03-14T14: 46: 30.761Z
شل 1.7.9
العارض 58.0.3029.110
العقدة 7.9.0
Architektur إلى x64

لسوء الحظ ، يبدو أن الحل البديل keyboard.dispatch لا يعمل معي أيضًا - على الأقل ليس جيدًا بما يكفي. يمكنني استخدام CapsLock (Mod3) المعاد تصميمه لإدراج رموز المبرمجين مثل /,\,[,] وما إلى ذلك داخل المحرر ، ولكن ليس في الاختصارات مثل shift+/ والتي تترجم إلى الضغط على الأزرار المادية shift+capslock+s

تظهر محاولة إعادة تعيين الاختصارات باستخدام Mod3 unknown

unknown_key

يبدو أنه تم ذكر

الاختصارات مثل shift+/ هي إجمالي BS ويجب ألا تكون موجودة.

يجب أن يكون إما ? والسماح للتخطيط بتحديد المعدلات المطلوبة لكتابة هذا الحرف ، أو تنسيق مستقل عن shift + scancode_slash . في الخيار الأول سأكتب ببساطة؟ (بغض النظر عن المكان الذي أضع فيه ذلك في التخطيط الخاص بي وما هي المُعدِّلات التي أحتاج إلى الضغط عليها) ، وفي الثانية ، سأكتب فقط رأس المال J في تخطيطي ، لأن لدي حرف J في موضع لوحة المفاتيح حيث لدى qwerty الأمريكية / .

كما هو الحال مع krux02 ، اضطررت إلى كتابة 'Ctrl + ü' و 'Ctrl + k' للتراجع والإعادة ، على التوالي ، لكنني تمكنت من العثور على إعداد "keyboard.dispatch" المناسب ويبدو أن هذا حل المشكلة.

نظام التشغيل: Ubuntu 18.04 LTS

كود VSC:

الإصدار 1.23.1
التزام d0182c3417d225529c6d5ad24b7572815d0de9ac
التاريخ 2018-05-10T16: 04: 33.747Z
شل 1.7.12
العارض 58.0.3029.110
العقدة 7.9.0
العمارة x64

يا إلهي ، أنا أستخدم vscode insider فقط لانتظار حل هذه المشكلة.
تمامًا مثلsakasistem
أستخدم Thinkpad مع لوحة مفاتيح qwerty الفعلية ، وقم بتعديل خريطة المفاتيح الخاصة بي إلى dvorak المخصص مع ملف xkb على linux mint sonya

هذا هو ملف خريطة المفاتيح https://pastebin.com/cUAxDtAM
إنه مخصص لنظام التشغيل المستند إلى دبيان ، Linux Mint على وجه الدقة.
ضعه في /usr/share/X11/xkb/symbols/us قبل تعريف dvorak-intl
partial alphanumeric_keys xkb_symbols "dvorak-intl" {

يضيف سحر التنقل إلى تخطيط dvorak ، وسوف يتصرف up ، left ، down ، right مع RAlt+c,RAlt+h,RAlt+t,RAlt+n (يجب أن يكون i, j, k, l على qwerty بدلاً من c, h, t, n ) ، إنه يعمل بالفعل على معظم التطبيقات باستخدام مُعدِّل ctrl و shift و alt ، لكن vscode. يجب أن يقفز Ctrl+RAlt+n الكلمة التالية ولكن بدلاً من ذلك يتصرف مثل Ctrl + n ويفتح علامة تبويب جديدة.

يعمل معدِّل Shift ، مما يجعل Shift+RAlt+s سيختار حتى نهاية السطر ، إنه فقط مفتاح Ctrl الذي يطلق الاختصار في المقام الأول.

حسنًا ، هذا هو محتوى Pastebin:

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)"
};

انتبه إلى الكود السحري include "level3(ralt_switch)" الذي يجعل RAlt مثل mod3 ولكنه يجعل vscode يتعرف عليه كـ unknown .

Linux هنا ، بدون استخدام تخطيط لوحة مفاتيح غير عادي ، قمت فقط بإعادة تعيين Caps Lock إلى Backspace عبر XkbOptions ، ولم ينجح ذلك أيضًا. التبديل إلى keyCode جعله يعمل. أعتقد أن هذا يؤثر على أي نوع من تعيين المفاتيح.

بالنسبة لي ، توقف القولون : تلقائيًا عن العمل في Visual Studio Code 1.32.3 على macOS 10.14.3. تركيبة المفاتيح في Neo2 هي caps lock + ; (على qwerty). ساعد تعيين keyboard.dispatch إلى keyCode .

مستخدم آخر لـ neo2 هنا ؛) تعثرت في مشكلة عدم عمل مسافة للخلف خلال الدقائق القليلة الأولى من استخدام VSCode. لحسن الحظ ، يعمل الحل البديل مثل السحر حتى الآن!
ومع ذلك ، سيكون رائعًا إذا تم إصلاح هذا الخطأ يومًا ما ؛)

الحل البديل من https://github.com/microsoft/vscode/issues/24043#issuecomment -292334048 يعمل مع وظيفة backspace (: +1 :) ولكن نقل كلمة واحدة للأمام / للخلف وحذف كلمة واحدة أمام المؤشر أو خلفه لا يزال لا يعمل: مرتبك: أي Ctrl + Alt Gr + w (في تخطيط qwerty / المفاتيح على لوحة المفاتيح) يجب حذف كلمة واحدة على اليسار من المؤشر ولكن لصقها فقط الحافظة ، والتي ستكون Ctrl + w (بتنسيق qwerty / المفاتيح على لوحة المفاتيح) وهي Ctrl + v .
يبدو أن الضغط على المفتاح Alt Gr يتم تجاهله فقط عند الضغط على المفتاح Ctrl .

أنا أستخدم Arch Linux مع آخر التحديثات.

كيف يمكنني تقديم مزيد من المعلومات للمساعدة في حل هذه المشكلة؟

أنا جديد على VS Code وأستخدم تنسيق KOY (مع بعض التعديلات) على Linux ( setxkbmap de koy ). نفس المشكلة مع Neo2: يمكنني كتابة واصلة بالضغط على CapsLock+L في المحرر. لكن الاختصارات التي تحتوي على CapsLock لا تعمل (مثل التصغير باستخدام Ctrl+- = Ctrl-CapsLock-L ).

توصي صفحة مشكلات ربط المفاتيح بتشغيل F1 > Developer: Inspect key mappings إذا لم يساعدك شيء آخر.

باستخدام التخطيط الألماني القياسي ( setxkbmap de ) ، أحصل على هذا للمفتاح L :

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

مع KOY ( setxkbmap de koy ) ، أحصل على:

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

على ما يبدو ، لا تحصل VS Code على المستويات الأعلى من التخطيط بشكل صحيح!

بعض المعلومات الفنية الإضافية حول عائلة تخطيط لوحة المفاتيح هذه (neo، adnw، koy، bone):

في التخطيط الافتراضي الألماني ، تم تعيين AltGr إلى ISO_Level3_Shift (في Linux). في Neo2 (وعلى حد سواء) ، تم تعيين AltGr إلى ISO_Level5_Shift وتم تعيين CapsLock إلى ISO_Level3_Shift .

لذا أعتقد أننا يجب أن نرى في الناتج > Developer: Inspect key mappings أيضًا

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

(لأن CapsLock يستبدل AltGr في Neo2 من حيث كونه المفتاح الجديد ISO_Level3_Shift )

أو

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

(لأنك تحصل على "6" عند الضغط على مفتاح AltGr الفعلي بالإضافة إلى المفتاح L كما ترون في لقطة شاشة OP).

آمل أن يساعدك هذا مطوري VS Code على فهم مشكلتنا بشكل أفضل.

أدرك أنني (وآخرين) أخلط هنا بعض المشكلات المتعلقة بـ Neo. لكن قد تكون مرتبطة.

تم الاختبار على Ubuntu 18.04 باستخدام هذا الإصدار من VS Code / Codium:

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

يبدو أن الضغط على المفتاح Alt Gr يتم تجاهله فقط عند الضغط على المفتاح Ctrl .

انا لدى نفس المشكله. يعمل وضع علامة على الأحرف المفردة عبر Shift + RightArrow عند إدخال RightArrow عبر AltGr + E ، لكن باستخدام Ctrl + Shift + RightArrow مع تخطيطات Neo Ctrl + Shift + E بدلاً من ذلك .
لقد استخدمت وظيفة التسجيل الرئيسية وحصلت على طريقة الإرسال code :

  • سيؤدي الضغط على Shift + AltGr + E إلى عرض shift + alt ، ثم يتحول إلى shift + right .
  • يؤدي الضغط على Ctrl + Shift + AltGr + E أولاً إلى عرض ctrl + shift + alt ، ثم يتحول إلى ctrl + shift + e

وباستخدام الطريقة keyCode :

  • يؤدي الضغط على Shift + AltGr + E إلى عرض shift + oem_8 ، ثم يتحول إلى shift + right .
  • يؤدي الضغط على Ctrl + Shift + AltGr + E عرض ctrl + shift + oem_8 ctrl+shift+e

يحدث نفس الشيء عند استخدام Ctrl + AltGr +E الذي يصبح ctrl + e بدلاً من ctrl + right .

بالنسبة لهذه المشكلة المحددة ، هل من الممكن أن يكون حلًا عمليًا مجرد وضع علامة على مفتاح معين على أنه ميت؟ لا تحتاج التخطيطات مثل Neo إلى VSCode للاستماع إلى AltGr على الإطلاق ، يجب فقط معالجة رمز المفتاح الذي يتم إرساله عند الضغط عليه معًا. علاوة على ذلك ، عندما تكون هذه الطبقة "مقفلة" باستخدام مفتاحي Mod4 ، فإن الضغط على Ctrl + Shift + e يتم التعرف عليه بشكل صحيح على أنه ctrl + shift + right .

معلومات التخطيط الخاص بي:

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

لقد واجهت نفس المشكلة كما هو موضح هنا عدة مرات ، حيث يؤدي الاحتفاظ بمفاتيح control أو مفاتيح مماثلة إلى جعل مفاتيح معينة في المستوى 4 من التخطيط الجديد غير قابلة للاستخدام وتنفيذ اختصارات غير مرغوب فيها.

الإصلاح / الحل الخاص بي

ما نجح معي في Ubuntu 18.04 وأصلح كل هذه المشاكل ، هو تشغيل setxkbmap -layout de -variant neo بعد بدء التشغيل وكل تنبيه. يبدو أنه يعمل مع أي من الإعداد keyboard.dispatch ( keyCode أو code ).

بدء

في "Startup Application Preferences"->Add أدخل setxkbmap -layout de -variant neo مثل هذا واحفظهScreenshot

استيقظ

بإضافة sudoedit /lib/systemd/system-sleep/setxkbmap

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

ومنح أذونات قابلة للتنفيذ sudo chmod 755 /lib/systemd/system-sleep/setxkbmap .

  • بدلاً من $USER أضف المستخدم الخاص بك.
  • في كل مكان آخر وجدت اقتراحًا DISPLAY=:0 ، لكن هذا لم ينجح معي. ثم جربت القيمة التي حصلت عليها من echo $DISPLAY ( :1 ) ، والتي نجحت.
  • إذا لم ينجح الأمر ، فحاول مع تأخير أطول (على سبيل المثال ، بدلاً من sleep 1; ، استخدم sleep 3; )

آمل أن يكون هذا يساعد الآخرين!

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات