Sway - мелкие, но приятные твики

Стековые, фреймовые, динамические
Ответить
lnx
Сообщения: 162
Зарегистрирован: 24.08.2022

#

Коллеги, тема по переводчику переросла саму по себе тему переводчика https://archlinux.com.ru/forum/viewtopi ... 8646#p8646. В этой теме сделана попытка к публикации твиков, которые наверняка отлично прописаны в документации, но плохо восприняты мною как пользователем и вследствие незнакомства с буржуазными языками, и вследствие скудости опубликованных примеров по сравнению с моими же запросами к тонким и местами даже извращенным настройкам.

Вот, скажем, Sway из коробки содержит в себе инструменты привязки сочетаний кнопок к запуску программ. Но как-то бледно, невыпукло описаны тонкости.

Привык с линуксовых пеленок запускать терминал по Ctrl+Alt+T - это делается легко. По описанию команд думалось, что когда хочется брибить гвоздями конкретную программу к конкретному рабочему столу, надлежит в той же строке задать и указания на то, на каком рабочем столе и в каком режиме открываться. Но нет, стройная логика Sway предписывает следующий подход:

биндим запуск на клавиши -
#Запуск явно указанных программ Shift+кнопка, двойники как Shift+Ctrl+та же кнопка
bindsym  --to-code {
    $mod+Return  exec  $term #запуск основного терминала
    $mod+Shift+t exec thunar
    $mod+Shift+f exec /usr/bin/freecad 
    $mod+Shift+Ctrl+f exec /opt/FC_main/AppRun
    Shift+F1 exec ~/PDF/Distributiv/transl_a_rus.sh
    Ctrl+F1 exec ~/PDF/Distributiv/search.sh
      } 
прибиваем гвоздями желаемое к нужным рабочим столам, отдельно -
assign [title="Tilix[^.*]"] 1
    assign [title="[^.*]Moon"] 2
    assign [app_id="[^.*]volution"] 2
    #assign [title="[^.*]Thunar"]  3
    assign [title="[^.*]Geany"] 3
    assign [title="Transmission"]  4
    assign [title="[^.*]Firefox"]  4
    assign [title="FreeCAD[^.*]"]  5 
Следует отметить, что прибитое можно затем произвольно перенести на другое место. И вызванное вновь по горячей кнопке появится на прибитом месте, не затрагивая перенесенное ранее вручную.

Не всем окнам надлежит разворачиваться на все доступное место и в этой связи, если они сами со Sway не могут договориться, вручную задаем блок правил -
#Эти окна должны быть плавающими -
#когда список сильно разрастется, следует все это вынести в дополнительный файл и его прочитать -
include ~/.config/sway/floating.conf
    for_window [title = "Громкость"] floating enable
    for_window [title = "Переименовать"] floating enable
    for_window [title = "galculator"] floating enable
    for_window [app_id = "org.gnome.Evince"] floating enable
    for_window [app_id = "eog"] floating enable
    for_window [app_id = "lximage-qt"] floating enable
Отдельно про жесты тачпада. С одной стороны, они поддерживатся из коробки. С другой гибкости toutchegg по-прежнему нет в смысле разных наборов правил для разных окон. Если наши требования к реакции на жесты не требуют нажатия именно что комбинаций клавиш, то все просто. А вот если требуют, то нужен пакет wtype (и только он, никаких ydotool + libinput-gestures не требуется). Следует отметить, что wtype различает процесс "нажать" и "отпустить" и это имеет значение. Например, дав команду "нажать" и забыв "отпустить" в глазах системы кнопка остается нажатой (до поры) и реакция на жесты может быть забавной. Приведу свой пример настройки (общий же конфиг опубликован в теме https://archlinux.com.ru/forum/viewtopi ... 8858#p8858) -
# Жесты тачпада. hold, pinch or swipe up, down, left, right; pinch all above + inward, outward, clockwise, counterclockwise
bindgesture {
    swipe:3:up  exec 'wtype -M Ctrl -M Shift -k t -m Ctrl -m Shift '
    swipe:3:down exec 'wtype -M Ctrl -k w -m Ctrl '
    swipe:3:right exec 'wtype -M Ctrl -k Tab -m Ctrl '
    swipe:3:left exec 'wtype -M Ctrl -M Shift -k Tab -m Ctrl -m Shift '
    
    swipe:4:right focus right
    swipe:4:left focus left
    swipe:4:down workspace prev
    swipe:4:up workspace next
    
    #pinch:3:inward+up move up
    pinch:2:outward exec 'wtype -M Ctrl -k = -m Ctrl'
    #pinch:inward+left move left
    #pinch:inward+right move right
    }
lnx
Сообщения: 162
Зарегистрирован: 24.08.2022

#

В приведенном выше примере фрагмента конфига упоминался скрипт-переводчик, созданный уважемым Arhei - https://archlinux.com.ru/forum/viewtopi ... 8871#p8871
При желании именить его размер и переместить следует поиграть указанными в нем параметрами
Arhei
Сообщения: 6
Зарегистрирован: 04.07.2025

#

lnx: Не всем окнам надлежит разворачиваться на все доступное место и в этой связи, если они сами со Sway не могут договориться, вручную задаем блок правил -
#Эти окна должны быть плавающими -
#когда список сильно разрастется, следует все это вынести в дополнительный файл и его прочитать -
include ~/.config/sway/floating.conf
    for_window [title = "Громкость"] floating enable
    for_window [title = "Переименовать"] floating enable
    for_window [title = "galculator"] floating enable
    for_window [app_id = "org.gnome.Evince"] floating enable
    for_window [app_id = "eog"] floating enable
    for_window [app_id = "lximage-qt"] floating enable
у себя для упрощения сделал по умолчанию все окна плавающими, прописав в начале правила
for_window [class=".*"] floating enable
for_window [app_id=".*"] floating enable
...
for_window [.......] floating disable
а программам которые нужно чтобы со старта разворачивались установил floating disable, что позволяет прописывать намного меньше правил
lnx
Сообщения: 162
Зарегистрирован: 24.08.2022

#

Наверняка есть возможность прибить гвоздями -
1. только англ раскладка на окне логина после спящего-ждущего режима?
2. индивидуальная раскладка для каждого окна?

Кстати отмечу
, что выбрав первым не англ язык получаем сложности с кейбиндингом, даже с опцией --too-code, под которой, видимо, понимается таки "код по первой раскладке" а не абсолютное значение нажатой клавиши - понятно, что англоязычным и в голову не приходило над этим задуматься.
Ответить