2 заметки с тегом

техника

Как должно работать переключение раскладок на клавиатуре

Клавиатура компьютера «Львов ПК-01». Фото © xlat.livejournal.com

Все нижеследующее может показаться вам мелочью, недостойной обсуждения. Не переживайте, с вами все в порядке — просто у вас Другое Мнение. На всякий случай выпейте стакан воды, это никогда не повредит.


Вот такое действие

При работе на компьютере я люблю эффективные микродействия. Удалить слово «гудрон» в ворде однократным нажатием комбинации Ctrl+Backspace лучше, чем нажимать Backspace шесть раз. И уж точно лучше, чем убирать руку с клавиатуры, брать мышку, выделять текст курсором и жать Delete. Так же удобно с помощью Ctrl+стрелок прыгать курсором между словами, а с помощью Ctrl+Home/End попадать сразу в начало/конец документа.

Но есть одно важное действие, которое плохо поддается микро-оптимизации. Это переключение между языками ввода.

Аче всмысле 🐱

Олды помнят: после переустановки винды нужно поменять комбинацию с Alt+Shift на Ctrl+Shift

Во-первых, раскладка переключается комбинацией из двух клавиш. В Windows стандартное сочетание — Alt+Shift. При быстром наборе текста переключение срабатывает не с первой попытки — как коробка передач на старой «копейке». Печатаешь-печатаешь на русском, разогнался, надо напечатать пару слов на английском, без остановки жмешь альтшифт, печатаешь дальше — комп издает противный звук, один из пунктов меню открытой программы вылезает чорт знает зачем. Олды тоже знают: однократное нажатие на альт переводит фокус программы на верхнее меню с выпадающими списками, дальнейшее нажатие клавиши вызывает подменю.

Логика же подсказывает, что нажатие альт-шифт происходит так: большой палец нажимает альт, вслед за ним мизинец или безымянный нажимает шифт. В случае быстрой печати и фокусе на тексте, а не на контроле переключения языка, большой палец может уйти с альта раньше, чем мизинец коснется шифта, и произойдет вышеописанное. Еще можно промахнуться по шифту и нажать капслок.
Олды умеют менять раскладку на шифт-контрол, ошибок становится поменьше, но это компромисс. Дело же не в сочетании клавиш, дело в убогом микросценарии.

По шагам:

  1. Печатаем на русском. Нужно переключиться на английский.
  2. Нажимаем на нужную комбинацию клавиш для переключения.
  3. Печатаем дальше.

Ок, три шага. Вроде немного. Но это идеальный сценарий, когда все сработало. Если не сработало и вы хотели напечатать слово на английском, а получилось на русском — придется стереть ошибочно напечатанное и снова запускать сценарий с шага 2. Это дорого с т.з. упущенного времени, поэтому придется ввести проверку.

Получается так:

  1. Печатаем на русском. Нужно переключиться на английский.
  2. Нажимаем на нужную комбинацию клавиш для переключения.
  3. Смотрим на крошечный значок языка в углу экрана (проверка)
  4. Печатаем дальше.

Чуете подвох? Если проверка на третьем шагу не даст нужного результата, придется вернуться на шаг «два». Возможно, не раз. Концентрация сбилась, придется потратить драгоценные секунды на возврат в русло потока. Если вы быстро печатаете — хотя бы 200 символов в минуту — для вас это катастрофа. Ну, микро.

А ведь это не худший сценарий. Смотрите:

  1. Сидим в браузере и читаем. Решаем что-то записать в ворд
  2. Открываем ворд
  3. Определяем, какая включена раскладка — смотрим на крошечный значок языка в углу экрана (тут условная развилка)
  4. Переключаем в случае необходимости
  5. Начинаем печатать.

Тут тоже возможна проблема: если начали печатать и раскладка все-таки не та, то возврат с пятого на третий шаг, снова цикл.

Убираем этот плохо предсказуемый цикл:

  1. Сидим в браузере и опять читаем. Решаем что-то записать в ворд
  2. Открываем ворд
  3. Смотрим на крошечный значок языка в углу экрана (определение режима)
  4. Переключаем в случае необходимости
  5. Смотрим на крошечный значок языка в углу экрана ещё разок (проверка)
  6. Начинаем печатать.

Тут все-таки есть цикл (5→4), но он более предсказуемый и с переключением контекста. Из потока вылетели, но находитесь в режиме выполнения сценария «переключение раскладки» явным образом.

Ну что же, шесть чертовых шагов. Целая микро-жизнь.

Как исправить

Дело, конечно, в модальности. Есть два режима — «русская раскладка» и «английская раскладка», одновременно они работать не могут, переключаются комбинацией клавиш. Какой включен режим — сигнализируется крошечной иконкой в углу экрана.
Чтобы включить нужную раскладку, необходимо понять, в каком режиме мы находимся (1), переключить режим, если он неправильный (2), убедиться, что переключение сработало (3, опционально). В сценарии, где мы уже печатаем и надо переключиться, меньше энтропия — мы знаем, какой режим включен.
Избавиться от модальности легко. Нужно заменить логику переключателя режимов на логику включателей для каждого режима.

Как поменяется наше чтение браузера?

  1. Сидим в браузере и снова что-то читаем. Решаем что-то записать в ворд
  2. Открываем ворд
  3. Адресно включаем нужную нам раскладку
  4. Начинаем печатать.

Нам не нужно ничего проверять: требуемая раскладка всегда включается одной и той же комбинацией. Если мы уже в нужном режиме — ничего страшного не произойдет.
Конечно, есть риск цикла 4→3, когда что-то не сработало, можно ввести проверку и т. п. Но в случае корректного срабатывания адресное включение убирает целый шаг и необходимость смотреть на значок перед включением.

Есть, конечно, и тут проблемки. Для корректного срабатывания нужно, чтобы включение раскладки было с помощью одной глобально работающей клавиши — это идеальный вариант. Стандартными средствами винды можно назначить комбинацию (например, контрол + 1) на каждую раскладку, но они просто не работают. Нажимаешь — ничего не происходит. Поэтому решить проблему можно с помощью пунто свитчера (отключаем все, кроме этого, и особенно в первую очередь выключаем автоматическое переключение) или даже лучше — с помощью SimpleSwitcher (старая, уже не поддерживается, но работает). Я ставлю левый контрол на включение русского языка, правый — английского.

Есть ощущение, что можно этот же сценарий реализовать с помощью скрипта Autohotkey, но я пока с этим не разбирался.
Еще есть проблема, когда указанный способ (L/R Control для разных языков) в винде просто не срабатывает. Тыкаешь в этот несчастный правый контрол, пялишься на значок языка, а он не меняется. Сдаешься, переключаешь стандартным для винды способом — все срабатывает, и контрол тоже начинает работать. Позорная капитуляция из-за каких-то проблем на уровне то ли операционки, то ли программы переключения.
Посмотрите еще раз на фото из заголовка — там выделенные клавиши для адресного включения русского и латиницы.

© xlat.livejournal.com

Закруглим выводом, следующим из названия.

Переключение раскладки должно включаться на уровне системы двумя способами: прямым включением нужной раскладки (нямка 🍧) или циклическим перебором всех вариантов. Оба способа должны активироваться глобальными хоткеями.

Почему я оставил шанс классическому способу? Потому что я за разнообразие.

Альтернативные школы мысли

Когда-то давно Артём Горбунов предлагал другое решение: красить текстовый курсор в разные цвета в зависимости от выбранной раскладки. Это облегчает нам шаги, связанные с определением режима при старте печати или проверке того, что переключение сработало при печати-в-процессе. Минусов два: во-первых, это не поможет людям, которые смотрят при печати не в экран, а на клавиатуру (почти все); во-вторых, хороших приложений, реализующих этот принцип, я не встречал.

Ну и отдельно отмечу пунто свитчер и практику автоматического переключения раскладок. За десять с лишним лет периодического использования пунто (и его более симпатичного клона Caramba Switcher) автопереключения успели меня задрать почище, чем альтшифт. Лучше уж я сам буду контролировать поведение системы. Предложение создавать новое правило каждый раз после ошибки автокоррекции (руками забивать в настройках 🤮) — это садизм высшей пробы.
Пунто мне нужен был только для назначения отдельных включателей для каждой раскладки, все остальное я безжалостно, будто акула, выключал. После обнаружения SimpleSwitcher и эта надобность отпала — он меньше, проще и не сует яндекс-браузер в инсталлер.
Если вам нравится автопереключение, посмотрите Caramba Switcher. Ее сделал и регулярно развивает автор пунто свитчера Сергей Москалев.

Фото в начале — из поста https://xlat.livejournal.com/654025.html

P.S. Уже после написания и вычитки поста я пошел гуглить на тему. И нагуглил прекрасный пост: https://habr.com/ru/post/156779/. В мире есть (или был) еще один такой же.

 Нет комментариев    31   6 дн   бесит   техника

Переход на макбук и связанные с этим неурядицы

TL;DR: На работе выдали макбук. Я настроил его за вечер и привык еще за два дня, но победил пока не все проблемы. Пока что мне нравится больше, чем ноут на Windows.

Трек поста


Теперь к деталям. Я не буду писать про плюсы-минусы и прочее, этого добра в инете полно. Я напишу про конкретные НЕУРЯДИЦЫ, с которыми столкнулся сам, и как я их решал.

Нет нормальных USB-портов

У меня тринадцатидюймовый Macbook Air 2020-го года. У него два порта Type-C слева и аудиовыход справа. Все. Один порт почти всегда занят зарядкой. Остается один свободный. А подключить нужно: мышку беспроводную (USB-A), клавиатуру (тоже USB-A), наушники-гарнитуру (опять USB-A). Ну и монитор по HDMI хорошо бы подключить. И на крайний случай нужно иметь возможность подключить переходник Ethernet-USB, если вдруг вайфай плохой.





Макбук: «Зачм ты вставл переходник?»

Выхода два:

  1. Долой провода. Мышку и клавиатуру купить фирменные эппловские, они по блютусу работают и стоят по сто тыщ. Наушники использовать с аудиоразъемом или беспроводные. Для эзернета купить переходник и занять им свободный порт.
  2. Привет провода. Купить переходник с кучей разъемов — пара-тройка USB-A, HDMI, Ethernet. Занять им один порт и зажить счастливо. Тут есть нюанс: некоторые дешевые переходники нарушают работу вайфая, когда лежат рядом с ноутом. Ох.

Склоняюсь ко второму варианту.

Установка обновлений хуже, чем на винде

Это для меня прямо удивительный факт. Во время обновления макбук сильно греется, периодически выдает ошибки с отказом от обновления и надо все запускать заново, а после апдейта ещё и сбрасывает настройки vpn. На форумах народ жалуется на похожие проблемы, т. е. это не особенность моего экземпляра. На винде давно такого нет.

Другая раскладка клавиатуры

Точка и запятая на «шифт + 6/7»; «Ё» слева от энтера. Лечится галочкой в настройках «сделать как в винде».

Фото «Код Дурова»

Сама клавиатура удобная.

Мышка работает по-идиотски

Скролл мыши (обычной, не эпловской) почему-то наследует настройки тачпада. На практике это означает, что при правильной настройке тачпада мышь скроллит неправильно — крутишь колесико на себя, а страница едет вниз. Настраиваешь наоборот — тачпад начинает работать неправильно. Постоянно лазать в настройки и переключать туда-сюда — такое себе. Пришлось скачать приложение Smooze, там все это лечится настройками.

Мышка все равно работает по-идиотски

Скролл скроллит в нужном направлении, но с каким-то непонятным и трудноугадываемым ускорением. Smooze лечит и это.

Переключение раскладки

Тут я негодую сильнее обычного. Нельзя настроить включение конкретной раскладки (например — русской) на комбинацию клавиш. Это при том, что в макос можно почти на любое действие любого приложения повесить комбинацию! Невероятно.

← Вообще, это тема для отдельного поста, конечно

В Windows тоже нельзя штатными средствами, но можно с помощью приложений.

Навигация по тексту

Шорткаты для перемещения по тексту работают на маке иначе.
Для перемещения курсора сразу на целое слово вправо-влево вместо «Ctrl+→/←» надо нажимать «Option +→/←». Ну то есть возможность есть, просто надо мизинец научить нажимать не контрол, а опшн. Расположен он очень неудобно — между Ctrl и Command.
Выделенных Home/End на клавиатуре нет, даже на Fn-слое. Вместо них надо использовать «Command + →/←». PgUp/PgDown мне не нужны, да и никому не нужны.
Еще на маке есть какие-то малопонятные и неочевидные шорткаты вроде «Ctrl + A» (прыгает на слово назад, работает не везде) и «Ctrl + D» (стирает слово перед курсором, тоже не везде). Надо почитать мануалы.

Функциональные клавиши вынесены на FN-слой

На клавиатуре макбука функциональные клавиши совмещены с управлением воспроизведением и подсветкой, обычное дело на ноутбуках. Системной настройкой можно определить, что работает по дефолту — F1-F12 или дополнительные функции. Я выбрал второй вариант. На Ergodox EZ функциональные клавиши у меня тоже висят на Fn-слое, я привык.

Работа Ergodox EZ

Фото geekboards

Перенастроил в раскладке всего пару клавиш. Все ок, работает отлично. Занимает целый порт через переходник, но любишь кататься — люби и санки без лифта таскать.

Не все можно скачать в аппсторе

Я привык к маркетам приложений и был уверен, что на мак все ставится из апстора. Нет — большую часть приложений искал через Гугл и качал с их сайтов. Не то чтобы неурядица, скорее неверные ожидания.

А плюсы есть?

Автономность, клавиатура, экран (я не скучаю по большому монитору), операционная система, гениальный трекпад. Можно отключить капслок системными средствами. Подсветка клавиатуры и экрана автоматически регулируются в зависимости от условий освещения, экран еще и меняет цветовую температуру (на винде тоже такое появилось недавно, хотя там я использовал f.lux).
Мне нравится больше, чем ноут на винде.
Мой вывод: в качестве мобильного компьютера для менеджера — идеален. В качестве стационарного — немного лучше, чем на винде.