Ильдар Низамов (niya3) wrote,
Ильдар Низамов
niya3

Category:

Суета вокруг

There's more than one way to do it. Проявление в линуксе этого перлового принципа в сочетании с недостаточной самокритичностью пользователей форумов не дают найти единственно правильное решение таких проблем, которые в винде просто не существуют. Три дня я осваивал утилиты setxkbmap, xmodmap, xev, чтобы достичь состояния: ctrl переехал на caps_lock, caps_lock на ctrl, caps_lock : включает раскладку us, shift + caps_lock : включает раскладку ru.
Решение в лоб setxkbmap -layout 'us,ru' -option '' - option 'grp:shift_caps_switch, ctrl:swapcaps'. Последние две опции работают по очереди, но не вместе.

в файле ~/.profile
setxkbmap -layout 'us,ru' -option'' # сбросить предустановленные опции
xmodmap ~/.xmodmaprc

в файле ~/.xmodmaprc
keycode 37 = ISO_First_Group ISO_Last_Group
keycode 66 = Control_L
add Control = Control_L
clear Lock

А после того, как пришёл к ответу, легко найти решение в сети: https://www.linux.org.ru/forum/desktop/11908514?cid=11908565
Для решения смежных проблем пользователи форумов предлагают: пользоваться гуишными переключалками, ставить внешние утилиты и даже править из под рута файлы в /etc/X11/xorg.conf.d и в /usr/share/X11/xkb. Порой в кучу мешаются конелюди, и в коментах начинается полный треш: http://archlinux.org.ru/forum/topic/9084/
Существует продвинутый способ - сформировать свой файл с опциями и прогнать его через xcomp, но я его не освоил: https://habrahabr.ru/post/222285/#comment_7586289 + http://unixforum.org/index.php?showtopic=49203

Ещё я поменял в dwm modkey с atl на win, а для симметрии забиндил неиспользуемое menu -> win:
в файле ~/.xmodmaprc
keycode 135 = Super_L NoSymbol Super_L

После перехода с Mate на dwm отвалились некоторые вещи, которые я пока не знаю как полечить. Мне не хватает предупреждения о разряженной батарее, курю acpi, acpid. Отвалилось управление уровнем звука с клавиатуры. xev говорит о том, что Fn+стрелки генерируют положенные кейсимы, но никто их не обрабатывает. Добавил
в файле ~/.profile
xkeybind -f ~/.xkeybind

в файле ~/.xkeybindrc
"amixer -q sset PCM 5+ unmute"
XF86AudioRaiseVolume

"amixer -q sset PCM 5- unmute"
XF86AudioLowerVolume

PS
Знающие, насколько адекватно моё решение с xmodmap?
PPS
Хорошо было бы забиндить переключение раскладки на одиночное\двойное нажатие того же капса, но как?

Tags: linux, rc, xkb
Subscribe

Recent Posts from This Journal

  • GolangConf в Москве

    Организаторы разыгрывают билет на конференцию, правила в репозитории: https://github.com/GolangKazan/golangconf2019-challenge…

  • Мои клавиатуры

    Часть вводно-теоретическая Слепой десятипальцевый набор - необходимый навык для любого, кто зарабатывает на жизнь с помощью клавиатуры компьютера…

  • firefox

    Однажды я понял, что переход на линукс пройдёт безболезненно т.к. большую часть времени за домашним компьютером я провожу в браузере. Кроме того, я…

  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 3 comments