dotfiles/.config/sway/config.d/30_output

76 lines
2.8 KiB
Text
Raw Normal View History

# Configures output devices.
# (This file is rather device-specific; it was made for roxy but can be used as a base for other devices.)
# OUTPUT VARIABLES
# ~~~~~~~~~~~~~~~~
# Define short names for screens.
set $OUTPUT_INTERNAL eDP-1
set $OUTPUT_OFFICE_PRIMARY "LG Electronics LG ULTRAWIDE 0x0008F23D"
set $OUTPUT_OFFICE_SECONDARY "Dell Inc. DELL U2422HE 5KTPNM3"
# Define which outputs are the primary, secondary and tertiary screens. Used to assign workspaces.
# Can be a list of output names, in which case the first valid (connected) output in the list will be used.
# (Don't specify internal display as fallback, otherwise workspaces might be assigned to it while in docked mode.)
set $OUTPUT_PRIMARY $OUTPUT_OFFICE_PRIMARY
set $OUTPUT_SECONDARY $OUTPUT_OFFICE_SECONDARY
set $OUTPUT_TERTIARY $OUTPUT_INTERNAL
# Define spatial orientation of screens.
# Used for keybindings to switch between outputs (comma, period, slash).
# (Only single names allowed, "focus output" sadly doesn't work with fallback output names.)
set $OUTPUT_LEFT $OUTPUT_OFFICE_PRIMARY
set $OUTPUT_CENTER $OUTPUT_OFFICE_SECONDARY
set $OUTPUT_RIGHT $OUTPUT_INTERNAL
# OUTPUT SETTINGS
# ~~~~~~~~~~~~~~~
# Set the wallpaper for all outputs
output "*" background ~/.wallpapers/desktop fill #000000
# Office: Primary screen (LG ultra-wide, 2560x1080)
output $OUTPUT_OFFICE_PRIMARY {
# Place left-most
position 0 0
scale 1
}
# Office: Secondary screen (Dell, 1920x1080)
output $OUTPUT_OFFICE_SECONDARY {
# Place right of primary screen
position 2560 0
scale 1
}
# Internal laptop screen (1920x1080)
# (Standalone if not docked, or tertiary screen when docked in office)
output $OUTPUT_INTERNAL {
scale 1.25
}
# Switch focus to primary screen on start
# (Note: "focus output" sadly doesn't work with fallback outputs (like the workspace assignment),
# but that's okay: If we're docked, this works. Otherwise, there's only one screen anyway.)
exec swaymsg focus output $OUTPUT_OFFICE_PRIMARY
# OUTPUT KEYBINDINGS
# ~~~~~~~~~~~~~~~~~~
# Keybindings to switch focus between screens
bindsym $mod+comma focus output $OUTPUT_LEFT
bindsym $mod+period focus output $OUTPUT_CENTER
bindsym $mod+slash focus output $OUTPUT_RIGHT
# Keybindings to move focused window/container between screens
bindsym $mod+Shift+comma move container to output $OUTPUT_LEFT; focus output $OUTPUT_LEFT
bindsym $mod+Shift+period move container to output $OUTPUT_CENTER; focus output $OUTPUT_CENTER
bindsym $mod+Shift+slash move container to output $OUTPUT_RIGHT; focus output $OUTPUT_RIGHT
# Keybindings to move entire workspace between screens
bindsym $mod+Control+comma move workspace to output $OUTPUT_LEFT
bindsym $mod+Control+period move workspace to output $OUTPUT_CENTER
bindsym $mod+Control+slash move workspace to output $OUTPUT_RIGHT