123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374 |
- # 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 2880x1800@90Hz
- output HEADLESS-1 scale 2
- exec swaymsg create_output HEADLESS-2
- output HEADLESS-2 resolution 1366x768
- exec swaymsg create_output HEADLESS-3
- output HEADLESS-3 resolution 2880x1800@90Hz
- output HEADLESS-3 scale 2
- ### 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 /home/oleg/.local/share/chezmoi/dot_local/bin/executable_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.
- #
- # 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 alsa_output.pci-0000_30_00.6.analog-stereo +5%
- bindsym XF86AudioLowerVolume exec pactl set-sink-volume alsa_output.pci-0000_30_00.6.analog-stereo -5%
- bindsym XF86AudioMute exec pactl set-sink-mute alsa_output.pci-0000_30_00.6.analog-stereo 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-1
- bindsym XF86AudioNext exec sudo /home/oleg/.nix-profile/bin/ddcutil setvcp xF4 x00d0 --i2c-source-addr=x50 --noverify
- #
- # Switch DP-1 on and off:
- #
- bindsym XF86Tools exec swaymsg "output DP-1 dpms on"
- bindsym XF86AudioStop exec swaymsg "output DP-1 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 $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+o mode "obs"
- #
- # Status Bar:
- #
- # Read `man 5 sway-bar` for more information about this section.
- bar {
- # Show bar only when mode key is pressed.
- mode hide
- position bottom
- output DP-1
- output HEADLESS-1
- # 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.py
- colors {
- statusline #000000
- background #ffffff
- focused_workspace #66cdaa #2e8b57 #ffffff
- # active_workspace #333333 #333333 #888888
- inactive_workspace #ffffff #ffffff #000000
- urgent_workspace #eb709b #eb709b #000000
- }
- }
- 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 #66cdaa #2e8b57 #ffffff #00ff00 #2e8b57
- client.focused_inactive #696969 #a9a9a9 #000000 #484e50 #5f676a
- client.unfocused #a9a9a9 #ffffff #000000 #292d2e #222222
- client.urgent #bebebe #900000 #000000 #900000 #900000
- client.placeholder #ffffff #0c0c0c #000000 #ffffff #0c0c0c
- client.background #ffffff
- # 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="xterm"] resize set width 1920 px
- for_window [title="Picture-in-Picture"] border none
- for_window [title="Picture-in-Picture"] resize set height 360 px
- for_window [title="Picture-in-Picture"] floating enable
- for_window [instance="vncviewer"] border none
- for_window [instance="vncviewer"] resize set width 1920 px
- for_window [title="Windowed Projector"] border none
- for_window [title="Chatterino"] border none
- for_window [title="Usercard"] move position cursor
|