знак решетки


Давно полюбил формат Markdown за простоту и легкость его использования при документировании исходного кода и за возможность его применения при оформлении статей для Хабра. Потом добавился Obsidian для ведения заметок. И формат Markdown стал по сути основным способом форматирования набираемого текста.


Единственной, но весьма большой ложкой дегтя, оставалась проблема ввода символа решетки «#» при использовании русской клавиатуры. А так как знак решётки (октото́рп, хеш, знак номера, дие́з, sharp), в русской раскладке клавиатуры отсутствует, то каждый раз переключаться на английскую раскладку, меня немного утомляло. И «немного утомляло» еще мягко сказано, так как символ решетки, кроме указания заголовков в Markdown и тегов в Obsidian, еще часто используется как начало комментария до конца строки (в Bash, Python, NewLang).


А так как предлагаемые на просторах интернета способы ввода символа решетки в русской раскладке клавиатуры меня совсем не вдохновляли (и если Alt+35 на Numpad под виндой еще сойдет, но этот способ не работает под Linux, а занимать буфер обмена ради вставки одного символа, вообще не вариант), то пришлось потратить некоторое время на эксперименты, результатами которых я и хочу поделиться.


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


И по результатам тестирования нескольких способов, остановился на изменении раскладки клавиатуры при нажатии на одну клавишу, выбрав в качестве таковой правый Alt. (Одна кнопка Alt для удержания удобнее, чем комбинация клавиш. Кнопка Shift нужна для изменения регистра символов, а Ctrl часто использую для перемещения курсора по словам и абзацам).


image


Эта настройка делается установкой единственного чекбокса в gnome-tweaks и решает все проблемы с вводом символа решетки при русской раскладке клавиатуры (правый Alt+Shift+3).


Самое удивительное, что этот способ ввода оказался удобен и не только для символов, отсутствующих в русской раскладке (разные варианты скобок []{}<>, да и ":" с ";" можно набирать одной рукой), но и для ввода отдельных слов в раскладке, отличной от используемой. А такое, как оказалось, бывает довольно часто. Особенно, когда набираешь статью и по ходу дела требуется ввести англоязычное название приложения или английскую аббревиатуру. Просто раньше на подобные мелочи я не обращал внимания и необходимость переключения раскладки клавиатуры на другой язык воспринималась как само собой разумеющееся.


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

Комментарии (44)


  1. bozman
    00.00.0000 00:00
    +1

    Как вариант, можно в Compose добавить.


    1. petropavel
      00.00.0000 00:00
      +1

      уже там:

      $ grep '"#"' /usr/share/X11/locale/en_US.UTF-8/Compose
      <Multi_key> <plus> <plus>               : "#"   numbersign # NUMBER SIGN


    1. rsashka Автор
      00.00.0000 00:00

      Можно, и это один из самых часты советов. Но очень не нравится править конфигурационный файлы, так как через 2-3 года уже не вспомнишь, что и где изменял, если потребуется повторить эти настройки.


      1. edo1h
        00.00.0000 00:00
        +3

        по-моему как раз наоборот, текстовые конфиги положил в гит и раскатываешь в пару команд всю привычную среду на новом компьютере.


        1. rsashka Автор
          00.00.0000 00:00

          Мне же это не для команды. И всю среду хранить в гит тоже так себе вариант, а лишних телодвижений очень не хотелось (хотелось по KISS, сделать как можно проще :-) )


          1. edo1h
            00.00.0000 00:00
            +1

            а причём тут команда? у вас одно устройство?
            у меня минимум три более-менее регулярно используемых (рабочий комп, домашний комп, личный ноутбук), плюс периодически список меняется


            1. rsashka Автор
              00.00.0000 00:00

              Устройство не одно, но версии операционок на них разные, как и установленные приложения. Поэтому хранить единые конфиги для всех рабочих мест мне не подходит.


              1. oficsu
                00.00.0000 00:00

                А в чём проблема? Если операционки — это линуксы, а даты их релизов не отличаются на года, то держать под системой контроля версий единый набор конфигов для них — это обычно не проблема. Ну, допустим, будет ли вам невыносимо плохо от осознания того факта, что у вас среди конфигов лежит что-то под неустановленную программу?

                Другое дело, что я не выбрал VCS по одной простой причине. Переезжая, я не люблю тащить за собой всё окружение, включая дефолты, которые могут отличаться между версиями софта или разными дистрибутивами. Интереснее переносить лишь тот его сабсет конфигов, который настраивался сознательно и здесь автоматизация выглядит намного удобнее


                1. rsashka Автор
                  00.00.0000 00:00
                  +2

                  Дело не в сложности решения, а в том, что в подобном решении нет ни необходимости, ни потребности.


                1. alexkuzko
                  00.00.0000 00:00
                  +1

                  Возможно тут лучше будет держать патч файл, который можно накатить на готовую папку (ту же etc).

                  Он и сам по себе документация и небольшой.

                  Дополнив это полным бекапом конфигураций каждый из систем переезжать будет довольно легко и просто.


                  1. petropavel
                    00.00.0000 00:00

                    Хотя я так и делаю, ещё проще не менять системные файлы, а держать все в $HOME: ~/.Xmodmap, ~/.XCompose, и.т.д. К сожалению, не всё так можно менять, кое-что приходится патчить


      1. nihi1ist
        00.00.0000 00:00

        Для такого дела есть notion ему им подобные.


        1. rsashka Автор
          00.00.0000 00:00

          Как вариант, но мне кажется это будет как из пушки по воробьям.


      1. petropavel
        00.00.0000 00:00
        +2

        так не надо же ничего править, это уже есть из коробки


      1. oficsu
        00.00.0000 00:00

        Поэтому я не правлю конфигурационные файлы, а автоматизирую их правку. Переезд на другую систему сокращается с нескольких дней адаптации до минут настройки скриптом, даже если это переезд между дистрибутивами


  1. edo1h
    00.00.0000 00:00
    +2

    у меня всё проще: я обнаружил, что совершенно не помню ряд 123… в русской раскладке, плюс меня раздражала запятая на цифровом блоке.
    прописал в xkb keymap:


            include "pc+us+ru:2+inet(evdev)"
    
            # на цифровом блоке всегда точка, никакой запятой!
            key <KPDL> { symbols[group2]=[ KP_Delete, KP_Decimal ] };
    
            # на верхнем ряду цифр используем то же самые символы, что и в us
            key <AE02> { symbols[group2]=[ 2, at ] };
            key <AE03> { symbols[group2]=[ 3, numbersign ] };
            key <AE04> { symbols[group2]=[ 4, dollar ] };
            key <AE06> { symbols[group2]=[ 6, asciicircum ] };
            key <AE07> { symbols[group2]=[ 7, ampersand ] };
    
            # на немногочисленных кнопках без русских букв тоже
            key <AB10> { symbols[group2]=[ slash, question ] };
            key <BKSL> { symbols[group2]=[ backslash, bar ] };

    и теперь при наборе # и прочих символов не надо задумываться на какой ты сейчас раскладке.


    И по результатам тестирования нескольких способов, остановился на изменении раскладки клавиатуры при нажатии на одну клавишу, выбрав качестве таковой правый Alt.

    это я тоже у себя сделал, использую в основном для ввода знаков на буквах БЮЖЭХЪ. опять же работает независимо от текущей раскладки.


    но и для ввода отдельных слов в раскладке, отличной от используемой

    это технически у меня работает, но оказалось невостребванным, так как я сделал переключение раскладок ненапряжным (на правом shift у меня висит включение русской раскладки, на правом alt — английской).


    1. rsashka Автор
      00.00.0000 00:00

      Я тоже пробовал задействовать правый Shift, но как оказалось привык использовать их оба, потому и выбрал Alt.


      1. edo1h
        00.00.0000 00:00

        так правый шифт совместно с кнопкой у меня работает как шифт тоже. а вот короткое отдельное нажатие — как переключение на русскую раскладку.
        пришлось ради этого xcape поставить, штатными средствами иксов, похоже, этого не добиться.


        1. rsashka Автор
          00.00.0000 00:00

          пришлось ради этого xcape поставить, штатными средствами иксов, похоже, этого не добиться.

          Так в этом и засада, что xcape нужно настраивать отнюдь не щелчком мышки. А лишних телодвижений очень не хотелось (хотелось по KISS, сделать как можно проще :-) )


          1. edo1h
            00.00.0000 00:00

            так у меня цель была сделать ациклическое переключение раскладок так, как я это посчитал удобным. и я считаю, что оно того стоило.


            P. S. у нас разное представление о KISS, для меня KISS — это в первую очередь то, в устройстве чего просто разобраться.


            1. rsashka Автор
              00.00.0000 00:00

              так у меня цель была сделать ациклическое переключение раскладок

              Возможно в этом случае ваше решение действительно более удобное.


  1. falconandy
    00.00.0000 00:00
    +1

    В Kubuntu/KDE тоже достаточно галочки в настройках. Сначала я использовал CapsLock/Shift+CapsLock чтобы переключаться между русской/английской раскладкой, но всё равно было не удобно, т.к. в основном мне нужен один язык (как правило, английский). Я выбрал Left Win, т.к. никогда этой клавишей не пользовался, но пока ещё не совсем привык и иногда промахиваюсь по Left Alt.


    1. rsashka Автор
      00.00.0000 00:00

      Я тоже пробовал использовать Left Win, но Win+Пробел настроен как переключатель раскладок, поэтому и пришлось искать другой вариант.


    1. Nasreddin_Hodja
      00.00.0000 00:00
      +2

      А я просто CapsLock использую, без сочетаний. А режим капслока при этом включается сочетанием Shift+CapsLock, но этим не пользуюсь почти никогда.


      1. rsashka Автор
        00.00.0000 00:00

        Я тоже пробовал CapsLock для переключения раскладки, но мне это не очень понравилось, так как его нажимать можно только левой рукой (и ставить пальцы в раскоряку для нажатия на CapsLock + Shift + 3).

        А Alt можно нажимать как угодно: Alt + (Shift + 3) или (Alt + Shift) + 3.


        1. Nasreddin_Hodja
          00.00.0000 00:00

          так как его нажимать можно только левой рукой

          Ну это не особо проблема, большинство клавиш по задумке нажимаются только левой или только правой рукой в десятипальцевой слепой печати, а CapsLock всегда рядом с мизинцем, так что для его нажатия получается меньше телодвижений и ближе чем тянуть палец к Shift, например.

          и ставить пальцы в раскоряку для нажатия на CapsLock + Shift + 3

          А что это за комбинация?


          1. rsashka Автор
            00.00.0000 00:00

            Так изначально весь сыр бор из-за того, что в русской раскладке нет символа # (который на Shift + 3 в английской раскладке), но и постоянно переключаться между двумя раскладками из-за ввода одного символа тоже не хочется.


      1. falconandy
        00.00.0000 00:00
        +1

        Сначала я тоже использовал только CapsLock для постоянного переключения между раскладками. Потом перешел на CapsLock/Shift+CapsLock, чтобы не задумываться о текущей раскладке. Потом пытался (пытаюсь) приобщиться к neovim и для этого перебиндил CapsLock на Esc (галочка Make Caps Lock an additional Esc). Стал выбирать, на что заменить CapsLock для переключения раскладки и решил попробовать временное переключение на другую раскладку по Left Win. Пока на этом варианте и остановился.


        1. rsashka Автор
          00.00.0000 00:00

          В любом случае будет, сколько людей, столько и мнений, а на вкус и цвет фломастеры разные ;-)

          О, кстати, оказывается и смайлики проще стало набирать :-)


        1. edo1h
          00.00.0000 00:00
          +1

          left win у меня задействован в управлении wm, тут как раз важно, чтобы было удобно пользоваться комбинациями кнопок и когда правая рука на мышке.
          а переключение раскладки требуется когда обе руки на клавиатуре, тут и правые кнопки вполне удобны (даже удобнее, чем левые; речь про правшей, разумеется)


  1. delvin-fil
    00.00.0000 00:00
    +2

    Ну не знаю, не знаю, такие замороки...
    Почти не пользуюсь символом "№"

    cat .Xmodmap
    keysym 0x6b0 = 0x23

    В автозагрузке(я загружаюсь через startx и поэтому сия команда прописана в $USER/.xinitrc)

    xmodmap .Xmodmap

    Там что угодно на что угодно назначить можно. Теперь Shift+


  1. delvin-fil
    00.00.0000 00:00
    +1

    Но лучше так не делать. Мне уже написали, что в некоторых системах keysym 0x6b0 = 0x23 замещает и простую тройку.
    Альтернатива, которая не будет косячить нигде:
    cat $USER/.XCompose
    <Multi_key> <3> <3> : "#" numbersign # NUMBER SIGN


  1. roqin
    00.00.0000 00:00
    +1

    Странно, а я уже много лет так делаю (на левый Alt другую раскладку установил)


  1. vtb_k
    00.00.0000 00:00
    +1

    После возникновения болей в запястье я решил радикально поменять свое окружение и больше не пользоваться клавиатурой ноута. Долго искал разные варианты, пока не наткнулся на реддите на раздел механических клавиатур. И тогда мне захотелось собрать полностью кастомную разделенную клавиатуру.
    Теперь у меня нету проблем с разными символами, ведь они у меня на отдельном слое не зависимо от раскладки, которую я использую. Также перешел на колмак для инглиша, пальцы перестали болеть вообще. Единственная проблема - переучиваться придеться около месяца, но оно того стоит.

    Мой новый сетап: corne/rev1 + Kensington Expert
    Hidden text


  1. Nasreddin_Hodja
    00.00.0000 00:00

    и если Alt+35 на Numpad под виндой еще сойдет

    Я тогда не вижу проблем с переключением раскладки, тем более она у меня переключается капслоком (без сочетаний с другими клавишами).


  1. andi123
    00.00.0000 00:00
    +1

    Отличный совет!

    Добавил переключение раскладки для обоих альтов. Красота!


  1. Dancer76
    00.00.0000 00:00
    +1

    Спасибо :) !!


    1. rsashka Автор
      00.00.0000 00:00

      Пожалуйста!


  1. mondzucker
    00.00.0000 00:00

    Описанный способ скорее не для Linux, а для Gnome. Кстати, в Gnome не добавили возможность переключения раскладки caps lock?


    1. rsashka Автор
      00.00.0000 00:00

      Кстати, в Gnome не добавили возможность переключения раскладки caps lock?

      Не знаю, если честно


  1. nonameforme
    00.00.0000 00:00

    Что то у меня не выходит. Клавишу назначил, но решетка не вводится. Что я делаю не так?


    1. rsashka Автор
      00.00.0000 00:00

      А какой символ вводится вместо него?

      Раскладка на другой язык переключается во время нажатия на Alt?


      1. nonameforme
        00.00.0000 00:00

        цифра 3

        нет


        1. rsashka Автор
          00.00.0000 00:00

          Нужно еще Shift удерживать, т.е. Alt + Shift + 3.

          Тогда и будет решетка, а без шифта вводятся естественно цифры.