Это общее название программ для переназначения клавиш софтверным методом. Они более высокоуровневые чем клавиатурный firmware (QMK) и являются прослойкой между драйвером клавиатуры и GUI окном. За другие ОС не скажу, в Linux штатный клавиатурный компонент X.org (XKB) сам умеет переназначать клавиши без помощи стороннего софта, хотя можно и поставить сторонний ремаппер. Именно благодаря XKB нажатие Z печатает или Z или Я - сканкод один и тот же, состояние XKB (активный язык) разное.
Пользоваться примерно так (для простоты делаю ремап только английской раскладки):
PS: Пока копался в конфигах Xorg нашёл там некую русскую раскладку под названием "unipunct" (/usr/share/X11/xkb/symbols/ru) - похоже всё-таки кто-то придумал конфиг с совпадающей пунктуацией ru/en, можете попробовать.
Не понимаю при чём здесь коды клавиш. Ремаперы позволяют задавать печать любого заданного символа для любой тройки <язык, состояние модификаторов, сканкод>. Хотите чтобы у вас в англ. раскладке по Shift+3 печатался № а не # - без проблем, сконфигурируйте в ремапере. Проблема как я уже сказал в том что вы не сможете написать консистентный конфиг, если хотите остаться только в пределах 2 слоёв, основного и Shift, и чтобы позиции всех не буквенных знаков совпадали.
Новый слой как раз эту задачу решит. Сделайте новый модификатор, активирующий этот слой, скажем на Alt+Alt. И в этом новом слое на клавишу 3 ставьте например №, в обеих раскладках. Т.е. в любой раскладке нажать Alt+Alt+3 напечатает №.
чтобы вне зависимости от раскладки клавиатуры можно было вводить, например, № и #
Создайте собственный слой в русской и английской раскладке (один и тот же для обеих раскладок), кладите туда какие хотите символы. Красивого решения (модификация QWERTY и ЙЦУКЕН так, чтобы было 100% совпадение по знакам препинания и не буквенно-цифровым символам на основном и Shift слое) имхо не существует - в QWERTY и ЙЦУКЕН отличаются позиции знаков препинания в буквенной части клавиатуры, таких как точка и запятая, и мне не известно никаких авторитетных раскладок, решающих эту проблему.
Мизинец (точнее, его мясистая обвязка в предплечье) это же просто мышца, её можно накачать и тогда не будет болеть
Если бы всё было так просто, все разработчики и в особенности любители Emacs были бы монстрами с перекачанными запястьями (как у айкидошников) и сильными мизинцами. На деле же имеем RSI, Carpal tunnel syndrome и Emacs pinky syndrome как профзаболевание.
В эргораскладках мизинец для частых действий, повторяющихся действий или зажимания клавиши - это строгое НЕТ.
Так сделал, например, мой приятель: одновременно перешел на раскладку Halmak и добавил два новых слоя, которые назвал RED и BLUE. Вот его проект с ремаппингами для Линукс RedBlue.
Зовите приятеля на хабр тоже писать статьи по эргораскладкам :) По ссылке одна из лучших кастомных модальных раскладок что я видел. Продумана частотность команд, типичные цепочки команд (чтобы они не занимали конфликтующие пальцы), взаимодействие с DE и инструментарием.
Главная проблема - модификаторы не симметричны и по большей части расположены неудобно. Например зелёный модификатор есть только под правую руку - как вы вводите зелёные символы с правой части клавиатуры? "нажатии right cmd стрелочками становились hjkl" - та же проблема, держать модификатор справа от пробела например большим пальцем одноимённой руки и остальными пальцами дотягиваться до hjkl - очень быстро заноет рука
Может уже модальное редактирование? :) Без модальности у вас все действия кроме печатания символов будут делаться в 2 нажатия (модификатор + клавиша).
Что такое синяя команда Vi?
Стрелки жёлтого слоя не согласуются со стрелками красного (или у вас опечатка)
На жёлтом слое нет нуля
Не вижу команд прокрутки (PgUp/PgDn в удобной позиции)
Сила перла не в том что на нём что-то короче, а в том что он использует более-менее идиоматичный C-подобный синтаксис и синтаксис регекспов, и код на нём понятнее чем экзотический синтаксис Awk, который забывается через день после последнего использования. Плюс бесконечное расширение плагинами.
Ну и не сильно длиннее, например взятие 2 столбцов из примера выше:
while (<>) {
chomp;
my @fields = split(/ /);
printf("%s %s\n", $fields[1], $fields[3]);
}
С того, что автору нужен был тип, не владеющий ссылкой, а лишь использующий её для вывода типов? Я показал как сделать вспомогательный тип для этого. Это может быть тип с другим именем, не WakerSlot.
Как всегда 90% времени занимает эпическая битва с борроучекером))
Ох, дофига всего комментировать, но то, что сходу бросается в глаза:
Если вы представите, что WakerSlot содержит ссылку на WakerList, то никогда не сможете создать &mut WakerList где-либо ещё, поскольку основное правило времени жизни в Rust гласит, что у вас может быть либо одна мутабельная ссылка, либо множество иммутабельных, но не то и другое одновременно.
Надеюсь, что такое всё же возможно, и кто-нибудь напишет об этом в комментариях.
А у вас сборка проекта на индивидуальных машинах всегда полная? Каждый пересобирает себе все 27 тыс файлов? Не думали зашарить например на команду дневные бинарные билды и пусть разработчики качают их себе и пересобирают локально только свои компоненты?
Эм я правильно понимаю что эта VM способна выполнять только свои опкоды и не может вызвать например библиотечную ф-ю через POSIX ABI, тк для этого придётся потерять контроль над регистрами и стеком?
Кстати, а в каких современных языках, кроме фортрана, он реально используется
Внезапно, в C и C++ для выхода из вложенных циклов. Насколько мне известно, это последнее оставшееся в живых "легальное" использование goto в высокоуровневом коде на C/C++.:)
Ещё он есть в Rust для тех же целей, под именем labelled break.
Я вот тоже не политик, но я почему-то осознаю, что стоило ему минимально потрудиться над облеканием этого решения в политкорректную форму - и формально к нему с моральной точки зрения было бы уже не подкопаться. Кто-то посмеет обвинить в политическом/расистском решении? "Да что вы, я им thank you for what you have done сказал, и распинался, что мне жаль, что так вышло, но сами понимаете, юридические требования и всё такое. (Слова в интернете вообще постятся за бесплатно, какая разница что я там наплету в анонсе, "токсичные" разработчики из коллектива выкинуты, главная цель достигнута.)"
Но до такой простой мысли он не допёр, а вместо этого ему приспичило поговорить про фабрику троллей и путинское вторжение. Ну штош.
Бред какой-то если честно. Во-первых LLM очень любят забывать и игнорировать детали промптов, так что не знаю откуда он взял это "помнит каждую деталь", а во-вторых периодически выдают бессмысленный / логически некорректный ответ, за перепощивание которого появляется шанс уже самому быть раскатанным.
Где-то в недрах кода o3:
Это общее название программ для переназначения клавиш софтверным методом. Они более высокоуровневые чем клавиатурный firmware (QMK) и являются прослойкой между драйвером клавиатуры и GUI окном. За другие ОС не скажу, в Linux штатный клавиатурный компонент X.org (XKB) сам умеет переназначать клавиши без помощи стороннего софта, хотя можно и поставить сторонний ремаппер. Именно благодаря XKB нажатие Z печатает или Z или Я - сканкод один и тот же, состояние XKB (активный язык) разное.
Пользоваться примерно так (для простоты делаю ремап только английской раскладки):
После этого:
-Как перезабить в английской раскладке Shift+3 с # на №:
-Как создать в англ. раскладке третий слой на Alt+Alt и привязать символ № к клавише "3" на этом слое:
И так далее.
PS: Пока копался в конфигах Xorg нашёл там некую русскую раскладку под названием "unipunct" (/usr/share/X11/xkb/symbols/ru) - похоже всё-таки кто-то придумал конфиг с совпадающей пунктуацией ru/en, можете попробовать.
Не понимаю при чём здесь коды клавиш. Ремаперы позволяют задавать печать любого заданного символа для любой тройки <язык, состояние модификаторов, сканкод>. Хотите чтобы у вас в англ. раскладке по Shift+3 печатался № а не # - без проблем, сконфигурируйте в ремапере. Проблема как я уже сказал в том что вы не сможете написать консистентный конфиг, если хотите остаться только в пределах 2 слоёв, основного и Shift, и чтобы позиции всех не буквенных знаков совпадали.
Новый слой как раз эту задачу решит. Сделайте новый модификатор, активирующий этот слой, скажем на Alt+Alt. И в этом новом слое на клавишу 3 ставьте например №, в обеих раскладках. Т.е. в любой раскладке нажать Alt+Alt+3 напечатает №.
Создайте собственный слой в русской и английской раскладке (один и тот же для обеих раскладок), кладите туда какие хотите символы.
Красивого решения (модификация QWERTY и ЙЦУКЕН так, чтобы было 100% совпадение по знакам препинания и не буквенно-цифровым символам на основном и Shift слое) имхо не существует - в QWERTY и ЙЦУКЕН отличаются позиции знаков препинания в буквенной части клавиатуры, таких как точка и запятая, и мне не известно никаких авторитетных раскладок, решающих эту проблему.
В целом да, положение cmd более эргономично чем ctrl, тк она нажимается большим пальцем а не мизинцем.
Если бы всё было так просто, все разработчики и в особенности любители Emacs были бы монстрами с перекачанными запястьями (как у айкидошников) и сильными мизинцами. На деле же имеем RSI, Carpal tunnel syndrome и Emacs pinky syndrome как профзаболевание.
В эргораскладках мизинец для частых действий, повторяющихся действий или зажимания клавиши - это строгое НЕТ.
Зовите приятеля на хабр тоже писать статьи по эргораскладкам :) По ссылке одна из лучших кастомных модальных раскладок что я видел. Продумана частотность команд, типичные цепочки команд (чтобы они не занимали конфликтующие пальцы), взаимодействие с DE и инструментарием.
Неплохо, но есть куда расти:
Главная проблема - модификаторы не симметричны и по большей части расположены неудобно. Например зелёный модификатор есть только под правую руку - как вы вводите зелёные символы с правой части клавиатуры? "нажатии right cmd стрелочками становились hjkl" - та же проблема, держать модификатор справа от пробела например большим пальцем одноимённой руки и остальными пальцами дотягиваться до hjkl - очень быстро заноет рука
Может уже модальное редактирование? :) Без модальности у вас все действия кроме печатания символов будут делаться в 2 нажатия (модификатор + клавиша).
Что такое синяя команда Vi?
Стрелки жёлтого слоя не согласуются со стрелками красного (или у вас опечатка)
На жёлтом слое нет нуля
Не вижу команд прокрутки (PgUp/PgDn в удобной позиции)
Ящетаю надо также отменить некое известное аниме, где глава титульного государства именуется не много не мало "Fuhrer".
Сила перла не в том что на нём что-то короче, а в том что он использует более-менее идиоматичный C-подобный синтаксис и синтаксис регекспов, и код на нём понятнее чем экзотический синтаксис Awk, который забывается через день после последнего использования. Плюс бесконечное расширение плагинами.
Ну и не сильно длиннее, например взятие 2 столбцов из примера выше:
Я слышал прогрессивная молодёжь нынче на модный аналог sed/awk перешла, называется Perl!
С того, что автору нужен был тип, не владеющий ссылкой, а лишь использующий её для вывода типов? Я показал как сделать вспомогательный тип для этого. Это может быть тип с другим именем, не WakerSlot.
Как всегда 90% времени занимает эпическая битва с борроучекером))
Ох, дофига всего комментировать, но то, что сходу бросается в глаза:
Это же в точности std::marker::PhantomData?
https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=0275d214fee10f4c7b3bf1077d89c143
А у вас сборка проекта на индивидуальных машинах всегда полная? Каждый пересобирает себе все 27 тыс файлов? Не думали зашарить например на команду дневные бинарные билды и пусть разработчики качают их себе и пересобирают локально только свои компоненты?
Эм я правильно понимаю что эта VM способна выполнять только свои опкоды и не может вызвать например библиотечную ф-ю через POSIX ABI, тк для этого придётся потерять контроль над регистрами и стеком?
Внезапно, в C и C++ для выхода из вложенных циклов. Насколько мне известно, это последнее оставшееся в живых "легальное" использование goto в высокоуровневом коде на C/C++.:)
Ещё он есть в Rust для тех же целей, под именем labelled break.
.file "test.c"
- речь шла про сишный ассемблер.Ответ для C - думаю потому что компилятор решил сгенерировать вызов
memset
и все SIMD оптимизации идут уже в нём.Я вот тоже не политик, но я почему-то осознаю, что стоило ему минимально потрудиться над облеканием этого решения в политкорректную форму - и формально к нему с моральной точки зрения было бы уже не подкопаться. Кто-то посмеет обвинить в политическом/расистском решении? "Да что вы, я им thank you for what you have done сказал, и распинался, что мне жаль, что так вышло, но сами понимаете, юридические требования и всё такое. (Слова в интернете вообще постятся за бесплатно, какая разница что я там наплету в анонсе, "токсичные" разработчики из коллектива выкинуты, главная цель достигнута.)"
Но до такой простой мысли он не допёр, а вместо этого ему приспичило поговорить про фабрику троллей и путинское вторжение. Ну штош.
Бред какой-то если честно. Во-первых LLM очень любят забывать и игнорировать детали промптов, так что не знаю откуда он взял это "помнит каждую деталь", а во-вторых периодически выдают бессмысленный / логически некорректный ответ, за перепощивание которого появляется шанс уже самому быть раскатанным.
Вопрос разработчикам: обязан ли игрок, выигравший матч, доиграть до 12-го месяца игры, чтобы сдать годовую отчётность?