Вот, скажем, 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
# Жесты тачпада. 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
}