123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540 |
- # Default config for sway
- #
- # Copy this to ~/.config/sway/config and edit it to your liking.
- #
- # Read `man 5 sway` for a complete reference.
- ### Variables
- #
- # Logo key. Use Mod1 for Alt.
- set $mod Mod4
- # Home row direction keys, like vim
- set $left h
- set $down j
- set $up k
- set $right l
- # Your preferred terminal emulator
- set $term alacritty
- # Your preferred web browser
- set $browser firefox
- # Your preferred application launcher
- # Note: it's recommended that you pass the final command to sway
- set $menu dmenu_path | bemenu-run --fb '#000000' --ab '#000000' --tb '#000000' --nb '#000000' --tf '#ffffff' --hf '#ffffff' --hb '#2e8b57' --border 1 --bdr '#333333' --line-height 25 --hp 10 --fn 'DejaVu Sans Mono 10' --list 20 --center --no-spacing | xargs swaymsg exec
- ### Output configuration
- #
- # Default wallpaper (more resolutions are available in /gnu/store/npk7022f0c2i9cjidh7133pklh27hqv3-sway-1.0/share/backgrounds/sway/)
- # output * bg fill
- #
- # Example configuration:
- #
- # output HDMI-A-1 resolution 1920x1080 position 1920,0
- #
- # You can get the names of your outputs by running: swaymsg -t get_outputs
- output * bg #000000 solid_color
- exec swaymsg create_output HEADLESS-1
- output HEADLESS-1 resolution 1920x1080@240.084Hz
- exec swaymsg create_output HEADLESS-2
- output HEADLESS-2 resolution 3840x2160@240.084Hz
- exec swaymsg create_output HEADLESS-3
- output HEADLESS-3 resolution 3840x2160@240.084Hz
- exec swaymsg create_output HEADLESS-4
- output HEADLESS-4 resolution 640x1080@240.084Hz
- exec swaymsg create_output HEADLESS-5
- output HEADLESS-5 resolution 3840x2160@240.084Hz
- exec swaymsg create_output HEADLESS-6
- output HEADLESS-6 resolution 3840x2160@240.084Hz
- exec swaymsg create_output HEADLESS-7
- output HEADLESS-7 resolution 3840x2160@240.084Hz
- output HDMI-A-3 position 0 0
- output DP-3 position 2560 0
- output HEADLESS-1 position 6400 0
- # When yes, repeating a workspace switch command will switch back to the prior
- # workspace. For example, if you are currently on workspace 1, switch to
- # workspace 2, then invoke the workspace 2 command again, you will be returned
- # to workspace 1. Default is no.
- workspace_auto_back_and_forth yes
- workspace 11 output HDMI-A-2
- workspace 21 output HEADLESS-1
- workspace 31 output HEADLESS-2
- workspace 41 output HEADLESS-3
- workspace 51 output HEADLESS-4
- workspace 61 output HEADLESS-5
- workspace 71 output HEADLESS-6
- workspace 81 output HEADLESS-7
- ### Idle configuration
- #
- # Example configuration:
- #
- # exec swayidle -w \
- # timeout 300 'swaylock -f -c 000000' \
- # timeout 600 'swaymsg "output * dpms off"' \
- # resume 'swaymsg "output * dpms on"' \
- # before-sleep 'swaylock -f -c 000000'
- #
- # This will lock your screen after 300 seconds of inactivity, then turn off
- # your displays after another 300 seconds, and turn your screens back on when
- # resumed. It will also lock your screen before your computer goes to sleep.
- # exec swayidle -w \
- # timeout 600 'swaymsg "output * dpms off"' \
- # resume 'swaymsg "output * dpms on"'
- #
- # Clipboard
- #
- # https://github.com/yory8/clipman
- exec wl-paste -t text --watch clipman store
- exec wl-paste -p -t text --watch clipman store -P --histpath="~/.local/share/clipman-primary.json"
- bindsym $mod+y exec clipman pick -t wofi
- ### Input configuration
- #
- # Example configuration:
- #
- # input "2:14:SynPS/2_Synaptics_TouchPad" {
- # dwt enabled
- # tap enabled
- # natural_scroll enabled
- # middle_emulation enabled
- # }
- #
- # You can get the names of your inputs by running: swaymsg -t get_inputs
- # Read `man 5 sway-input` for more information about this section.
- ### Key bindings
- #
- # Basics:
- #
- # start a terminal
- bindsym $mod+Return exec $term
- # start a web browser
- bindsym $mod+Shift+w exec $browser
- bindsym $mod+Shift+m exec looking-glass-client-wrapper
- bindsym $mod+Shift+s exec bemenu-passmenu
- bindsym $mod+Shift+v exec virt-manager
- # kill focused window
- bindsym $mod+Shift+q kill
- # start your launcher
- bindsym $mod+d exec $menu
- # Drag floating windows by holding down $mod and left mouse button.
- # Resize them with right mouse button + $mod.
- # Despite the name, also works for non-floating windows.
- # Change normal to inverse to use left mouse button for resizing and right
- # mouse button for dragging.
- floating_modifier $mod normal
- bindsym button3 kill
- # reload the configuration file
- bindsym $mod+Shift+c reload
- # exit sway (logs you out of your Wayland session)
- bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -b 'Yes, exit sway' 'swaymsg exit'
- #
- # Moving around:
- #
- # Move your focus around
- bindsym $mod+$left focus left
- bindsym $mod+$down focus down
- bindsym $mod+$up focus up
- bindsym $mod+$right focus right
- # or use $mod+[up|down|left|right]
- bindsym $mod+Left focus left
- bindsym $mod+Down focus down
- bindsym $mod+Up focus up
- bindsym $mod+Right focus right
- # _move_ the focused window with the same, but add Shift
- bindsym $mod+Shift+$left move left
- bindsym $mod+Shift+$down move down
- bindsym $mod+Shift+$up move up
- bindsym $mod+Shift+$right move right
- # ditto, with arrow keys
- bindsym $mod+Shift+Left move left
- bindsym $mod+Shift+Down move down
- bindsym $mod+Shift+Up move up
- bindsym $mod+Shift+Right move right
- #
- # Workspaces:
- #
- # switch to workspace
- bindsym $mod+1 workspace 1
- bindsym $mod+2 workspace 2
- bindsym $mod+3 workspace 3
- bindsym $mod+4 workspace 4
- bindsym $mod+5 workspace 5
- bindsym $mod+6 workspace 6
- bindsym $mod+7 workspace 7
- bindsym $mod+8 workspace 8
- bindsym $mod+9 workspace 9
- bindsym $mod+0 workspace 10
- # move focused container to workspace
- bindsym $mod+Shift+1 move container to workspace 1
- bindsym $mod+Shift+2 move container to workspace 2
- bindsym $mod+Shift+3 move container to workspace 3
- bindsym $mod+Shift+4 move container to workspace 4
- bindsym $mod+Shift+5 move container to workspace 5
- bindsym $mod+Shift+6 move container to workspace 6
- bindsym $mod+Shift+7 move container to workspace 7
- bindsym $mod+Shift+8 move container to workspace 8
- bindsym $mod+Shift+9 move container to workspace 9
- bindsym $mod+Shift+0 move container to workspace 10
- # Note: workspaces can have any name you want, not just numbers.
- # We just use 1-10 as the default.
- bindsym $mod+Mod1+Right workspace next
- bindsym $mod+Mod1+Left workspace prev
- bindsym $mod+control+Right workspace next_on_output
- bindsym $mod+control+Left workspace prev_on_output
- # Kill all containers on a focused workspace.
- bindsym Control+$mod+Delete [workspace="__focused__"] kill
- bindsym $mod+o workspace back_and_forth
- #
- # Layout stuff:
- #
- # You can "split" the current object of your focus with
- # $mod+b or $mod+v, for horizontal and vertical splits
- # respectively.
- bindsym $mod+b splith
- bindsym $mod+v splitv
- # Switch the current container between different layout styles
- bindsym $mod+s layout stacking
- bindsym $mod+w layout tabbed
- bindsym $mod+e layout toggle split
- # Make the current focus fullscreen
- bindsym $mod+f fullscreen
- # Toggle the current focus between tiling and floating mode
- bindsym $mod+Shift+t floating toggle
- bindsym $mod+Shift+a sticky toggle
- # Swap focus between the tiling area and the floating area
- # bindsym $mod+space focus mode_toggle
- # move focus to the parent container
- bindsym $mod+a focus parent
- #
- # Scratchpad:
- #
- # Sway has a "scratchpad", which is a bag of holding for windows.
- # You can send windows there and get them back later.
- # Move the currently focused window to the scratchpad
- bindsym $mod+Shift+minus move scratchpad
- # Show the next scratchpad window or hide the focused scratchpad window.
- # If there are multiple scratchpad windows, this command cycles through them.
- bindsym $mod+minus scratchpad show
- #
- # Volume:
- #
- bindsym XF86AudioRaiseVolume exec pactl set-sink-volume @DEFAULT_SINK@ +5%
- bindsym XF86AudioLowerVolume exec pactl set-sink-volume @DEFAULT_SINK@ -5%
- bindsym XF86AudioMute exec pactl set-sink-mute @DEFAULT_SINK@ toggle
- #
- # Brightness:
- #
- bindsym XF86Calculator exec brightness increase 5
- bindsym XF86HomePage exec brightness decrease 5
- bindsym XF86Mail exec brightness toggle
- #
- # Inputs:
- #
- # HDMI-1
- bindsym XF86AudioPrev exec sudo /home/oleg/.nix-profile/bin/ddcutil setvcp xF4 x0090 --i2c-source-addr=x50 --noverify
- # HDMI-2
- bindsym XF86AudioPlay exec sudo /home/oleg/.nix-profile/bin/ddcutil setvcp xF4 x0091 --i2c-source-addr=x50 --noverify
- # DP-3
- bindsym XF86AudioNext exec sudo /home/oleg/.nix-profile/bin/ddcutil setvcp xF4 x00d0 --i2c-source-addr=x50 --noverify
- #
- # Switch DP-3 on and off:
- #
- bindsym XF86Tools exec swaymsg "output DP-3 dpms on"
- bindsym XF86AudioStop exec swaymsg "output DP-3 dpms off"
- #
- # Screenshots:
- #
- # capture all screens
- bindsym Print exec grim -t png
- # capture the specified screen area
- bindsym Ctrl+Print exec grim -g "$(slurp -d)" -t png
- #
- # Notifications
- #
- bindsym $mod+n exec makoctl dismiss
- bindsym $mod+Shift+n exec makoctl dismiss --all
- #
- # Resizing containers:
- #
- mode "resize" {
- # left will shrink the containers width
- # right will grow the containers width
- # up will shrink the containers height
- # down will grow the containers height
- bindsym $left resize shrink width 10px
- bindsym $down resize grow height 10px
- bindsym $up resize shrink height 10px
- bindsym $right resize grow width 10px
- # ditto, with arrow keys
- bindsym Left resize shrink width 10px
- bindsym Down resize grow height 10px
- bindsym Up resize shrink height 10px
- bindsym Right resize grow width 10px
- # return to default mode
- bindsym Return mode "default"
- bindsym Escape mode "default"
- bindsym y resize set width 1920 px
- bindsym 2 exec /bin/sh -c 'swaymsg resize set width 320px; swaymsg resize set height 180px'
- bindsym 3 exec /bin/sh -c 'swaymsg resize set width 256px; swaymsg resize set height 144px'
- bindsym 4 exec /bin/sh -c 'swaymsg resize set width 640px; swaymsg resize set height 360px'
- bindsym 5 exec /bin/sh -c 'swaymsg resize set width 1280px; swaymsg resize set height 720px'
- bindsym 6 exec /bin/sh -c 'swaymsg resize set width 1920px; swaymsg resize set height 1080px'
- }
- bindsym $mod+r mode "resize"
- #
- # OBS:
- #
- mode "obs" {
- # switch to scene
- bindsym 0 exec /home/oleg/.local/share/chezmoi/dot_local/bin/executable_obs-websocket-http.sh edit scene scene-0
- bindsym 1 exec /home/oleg/.local/share/chezmoi/dot_local/bin/executable_obs-websocket-http.sh edit scene scene-1
- # return to default mode
- bindsym Return mode "default"
- bindsym Escape mode "default"
- }
- bindsym $mod+Shift+o mode "obs"
- bindsym $mod+u workspace 61
- bindsym $mod+i workspace 62
- #
- # Status Bar:
- #
- # Read `man 5 sway-bar` for more information about this section.
- #
- # big monitor: everything
- bar {
- output DP-3
- # Show bar only when mode key is pressed.
- mode hide
- position top
- colors {
- statusline #ffffff
- background #000000
- focused_workspace #66cdaa #2e8b57 #000000
- # active_workspace #333333 #333333 #888888
- inactive_workspace #000000 #000000 #ffffff
- urgent_workspace #eb709b #eb709b #ffffff
- }
- }
- # headless-1: can be viewed by wl-mirror
- bar {
- output HEADLESS-1
- # Show bar only when mode key is pressed.
- mode hide
- position bottom
- colors {
- statusline #ffffff
- background #000000
- focused_workspace #66cdaa #2e8b57 #000000
- # active_workspace #333333 #333333 #888888
- inactive_workspace #000000 #000000 #ffffff
- urgent_workspace #eb709b #eb709b #ffffff
- }
- }
- # headless-2: can be viewed by wl-mirror
- bar {
- output HEADLESS-2
- # Never show bar.
- mode invisible
- position bottom
- colors {
- statusline #ffffff
- background #000000
- focused_workspace #66cdaa #2e8b57 #000000
- # active_workspace #333333 #333333 #888888
- inactive_workspace #000000 #000000 #ffffff
- urgent_workspace #eb709b #eb709b #ffffff
- }
- }
- # headless-3: can be viewed by wl-mirror
- bar {
- output HEADLESS-3
- # Show bar only when mode key is pressed.
- mode hide
- position bottom
- colors {
- statusline #ffffff
- background #000000
- focused_workspace #66cdaa #2e8b57 #000000
- # active_workspace #333333 #333333 #888888
- inactive_workspace #000000 #000000 #ffffff
- urgent_workspace #eb709b #eb709b #ffffff
- }
- }
- # headless-4: can be viewed by wl-mirror
- bar {
- output HEADLESS-4
- # Show bar only when mode key is pressed.
- mode dock
- position bottom
- colors {
- statusline #ffffff
- background #000000
- focused_workspace #66cdaa #2e8b57 #000000
- # active_workspace #333333 #333333 #888888
- inactive_workspace #000000 #000000 #ffffff
- urgent_workspace #eb709b #eb709b #ffffff
- }
- }
- # headless-5: can be viewed by wl-mirror
- bar {
- output HEADLESS-5
- # Show bar only when mode key is pressed.
- mode dock
- position bottom
- # When the status_command prints a new line to stdout, swaybar updates.
- # The default just shows the current date and time.
- status_command exec /home/oleg/.local/bin/sensors-pc0.py
- colors {
- statusline #ffffff
- background #000000
- focused_workspace #66cdaa #2e8b57 #000000
- # active_workspace #333333 #333333 #888888
- inactive_workspace #000000 #000000 #ffffff
- urgent_workspace #eb709b #eb709b #ffffff
- }
- }
- # headless-7: can be viewed by wl-mirror
- bar {
- output HEADLESS-7
- # Show bar only when mode key is pressed.
- mode hide
- position bottom
- colors {
- statusline #ffffff
- background #000000
- focused_workspace #66cdaa #2e8b57 #000000
- # active_workspace #333333 #333333 #888888
- inactive_workspace #000000 #000000 #ffffff
- urgent_workspace #eb709b #eb709b #ffffff
- }
- }
- input * {
- xkb_layout custom,ru
- xkb_options grp:win_space_toggle,grp_led:scroll
- }
- input "2385:5860:Kingston_HyperX_Pulsefire_Raid" {
- accel_profile flat
- pointer_accel -0.5
- }
- # class border backgr. text indicator child_border
- client.focused #000000 #2e8b57 #000000 #000000 #000000
- client.focused_inactive #000000 #000000 #ffffff #000000 #000000
- client.unfocused #000000 #000000 #ffffff #000000 #000000
- client.urgent #bebebe #900000 #ffffff #900000 #900000
- client.placeholder #000000 #0c0c0c #ffffff #000000 #0c0c0c
- client.background #000000
- # List windows properties:
- #
- # $ swaymsg -t get_tree
- for_window [title="Looking Glass"] border none
- for_window [title="Looking Glass"] resize set width 1920 px
- for_window [title="Wayland Output Mirror for HEADLESS-1"] border none
- for_window [title="Wayland Output Mirror for HEADLESS-2"] border normal
- for_window [title="Wayland Output Mirror for HEADLESS-3"] border normal
- for_window [title="Wayland Output Mirror for HEADLESS-4"] border none
- for_window [title="Wayland Output Mirror for HEADLESS-5"] border none
- for_window [title="Wayland Output Mirror for HEADLESS-6"] border none
- for_window [title="Wayland Output Mirror for HEADLESS-7"] border none
- for_window [title="xterm"] resize set width 1920 px
- for_window [title="Picture-in-Picture"] border none
- for_window [title="Picture-in-Picture"] floating enable
- for_window [instance="vncviewer"] border none
- for_window [title="Windowed Projector"] border none
- # for_window [title="Chatterino"] border none
- for_window [title="Usercard"] move position cursor
|