.dotfiles/sway/behaviours

85 lines
3.4 KiB
Bash

# vim: ft=sh
################################################################################
# Default workspaces
################################################################################
# ` - Grave
assign [class="UXTerm"] grave
# 0 - HUD
assign [app_id="chrome-papillon.john.me.tz*"] 0 # Dedicated Chromium window for HUD
# 1 - Chat
assign [class="Mattermost"] 1
assign [app_id="Mattermost"] 1
assign [class="Rocket.Chat"] 1
assign [app_id="Rocket.Chat"] 1
# 2 - Mail
assign [class="Thunderbird"] 2
assign [class="thunderbird-default"] 2
assign [app_id="thunderbird"] 2
# 3 - Secondary Browser
assign [class="Chromium"] 3
# 4 - Git
assign [app_id="com.github.gittyup.Gittyup"] 4
# 5 - Phone (TODO: pick something more useful)
assign [class="linphone"] 5
# 6 - Terminals (not auto-assigned since they are needed elsewhere)
# 7 - Browser
assign [class="firefox"] 7
assign [app_id="firefox"] 7
# 8 - IDE
assign [app_id="neovide"] 8
assign [app_id="code-oss-url-handler"] 8
# 9 - Music
assign [app_id="argos"] 9
# Don't use VNC viewer anymore. I've defaulted to running virt-manager on this workspace because it's similar
#assign [class="Vncviewer"] 9
################################################################################
# Floating windows
################################################################################
for_window [app_id="org.gnome.Software"] floating enable # Gnome software doesn't get correct dimensions
for_window [title="SSH Passphrase"] floating enable # SSH auth dialog
for_window [title="^Picture-in-Picture$"] floating enable # Picture-in-picture firefox
# Also make Picture-in-picture windows stick to active workspace
for_window [title="Picture-in-Picture"] sticky enable
for_window [shell="xdg_shell"] sticky enable # Picture-in-picture firefox
for_window [instance="Download"] floating enable
for_window [window_role="plugin_ui"] floating enable
for_window [title="Menu Update"] floating enable
for_window [title="___"] floating enable
for_window [class="UXTerm"] floating enable, resize set height 600px, resize set width 800px, move position 990px 400px
for_window [class="Tlpui"] floating enable
for_window [title="XTerm"] floating enable
for_window [class="Gvim"] floating enable
for_window [class="Orage"] floating enable
for_window [class="Claws-mail"] layout stacking
for_window [class="Vncviewer"] fullscreen enable
################################################################################
# Window titles
################################################################################
# Mark legacy windows running in Xwayland
for_window [shell="."] title_format "%title (%app_id)"
for_window [shell="xwayland"] title_format "%title [XWayland]"
################################################################################
# Misc behaviour
################################################################################
# Maintain 'urgency' for 1 second
force_display_urgency_hint 1000 ms
# Move cursor to center of container when switching
mouse_warping container
# Restore display configuration on reload
bindswitch --reload lid:on /home/jpm/scripts/sway/displays.pl detached
# Rotate screen and toggle OSK on tablet mode change
bindswitch --reload tablet:on busctl call --user sm.puri.OSK0 /sm/puri/OSK0 sm.puri.OSK0 SetVisible b true; swaymsg output eDP-1 rotate 270
bindswitch --reload tablet:off busctl call --user sm.puri.OSK0 /sm/puri/OSK0 sm.puri.OSK0 SetVisible b false; swaymsg output eDP-1 rotate 0