# 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 # Your preferred terminal emulator set $term foot # Your preferred application launcher # Note: pass the final command to swaymsg so that the resulting window can be opened # on the original workspace that the command was run on. set $menu exec wofi -G --show run,drun exec swayrd 1>/dev/null 2>/dev/null #this think doesnt stop when sway dies #general preferences focus_follows_mouse no seat * hide_cursor when-typing enable input type:keyboard { repeat_delay 210 repeat_rate 35 # xkb_file ~/.xkb/symbols/tmucustom.xkb xkb_options compose:ralt } input type:touchpad { dwt enabled tap enabled drag disabled drag_lock disabled middle_emulation disabled tap_button_map lrm } #specfically the little red one #input "1739:52619:SYNA8006:00_06CB:CD8B_Mouse" { # pointer_accel -1 # accel_profile flat # scroll_factor 0.25 #} #start language switcher exec fcitx5 -d #handle monitors properly exec_always bash -c 'if $(swaymsg -t get_outputs | grep -q -F "HDMI"); then swaymsg output eDP-1 disable; swaymsg output HDMI-A-1 enable; swaymsg output DP-2 enable; else swaymsg output eDP-1 enable; swaymsg output HDMI-A-1 disable; swaymsg output DP-2 disable; fi' #get me a background #exec_always bash -c 'sleep 0.5s ;systemctl --user start background.service' exec_always bash -c 'setwallpaper ~/Pictures/capture/aesthetic/turquoiseCity.jpg' output HDMI-A-1 { # background ~/Pictures/tree.jpg fill pos 0 0 mode 1920x1080@60Hz } output eDP-1 { # background ~/Pictures/tree.jpg fill pos 0 0 mode 1920x1080@60Hz } output DP-2 { # background ~/Pictures/tree.jpg fill pos 1920 0 mode 1920x1080@60Hz } #theming stuff #titlebar_border_thickness 2 #no extra padding titlebar_padding 2 #hide_edge_borders both #smart_borders on default_border none font monospace 10 workspace_layout stacking focus_wrapping no show_marks on ### I want to be able to open a bunch of stuff quickly on startup and have it go the right place for_window [app_id="foot" title="terminal"] { move container to workspace T mark "t" fullscreen } exec foot -T "terminal" #bindsym $mod+Shift+s exec vivaldi-stable; exec brave; exec foot -T "terminal" # things I want to toggle #bindsym $mod+m [title="Messages for web"] scratchpad show #bindsym $mod+n [class="Spotify"] scratchpad show ### dedicated terminal # I want a permanent terminal that is fullscreened bindsym $mod+Return exec ~/.config/sway/switch.sh ### marking # using sway-marker bindsym $mod+bracketright exec sway-marker mark bindsym $mod+bracketleft exec sway-marker goto ### Key bindings # # Basics: # # Start a terminal bindsym $mod+Shift+Return exec $term # Kill focused window bindsym $mod+Shift+q kill # Start your launcher bindsym $mod+d exec $menu # get me to emacs bindsym $mod+p exec ~/.config/sway/toEmacs.sh # make a new emacs frame here bindsym $mod+Shift+p exec emacsclient -c # start throwaway browser bindsym $mod+e exec MOZ_ENABLE_WAYLAND=1 BDK_BACKEND=wayland firefox # start quick-open menu #bindsym $mod+o exec $term --title quicklauncher -e bash -c 'read line; eval $line | less -r' #for_window [title="quicklauncher"] floating enable, resize set 30 ppt 35 ppt, border pixel 2 #other window swap bindsym $mod+o exec swaymsg [con_id=$(~/.config/sway/otherwindow f)] focus # 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 # Reload the configuration file bindsym $mod+Shift+c reload # Exit sway (logs you out of your Wayland session) bindsym $mod+Shift+e exit # media keys bindsym XF86AudioRaiseVolume exec pactl set-sink-volume @DEFAULT_SINK@ +5% && $refresh_i3status bindsym XF86AudioLowerVolume exec pactl set-sink-volume @DEFAULT_SINK@ -5% && $refresh_i3status bindsym XF86AudioMute exec pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status bindsym XF86AudioMicMute exec pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status bindsym XF86MonBrightnessDown exec brightnessctl -e s 10%- bindsym XF86MonBrightnessUp exec brightnessctl -e s +10% # other bindings bindsym $mod+grave exec systemctl suspend bindsym $mod+Escape exec sh -c 'swaylock -i /home/tmu/Pictures/capture/installsource.png -l -e -t --indicator-radius 100 & systemctl suspend' # # Moving around: # # 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 # # Workspaces: # # Switch to workspace bindsym $mod+1 workspace number 1 bindsym $mod+2 workspace number 2 bindsym $mod+3 workspace number 3 bindsym $mod+4 workspace number 4 bindsym $mod+5 workspace number 5 bindsym $mod+6 workspace number 6 bindsym $mod+7 workspace number 7 bindsym $mod+8 workspace number 8 bindsym $mod+9 workspace number 9 bindsym $mod+0 workspace number 10 # Move focused container to workspace bindsym $mod+Shift+1 move container to workspace number 1 bindsym $mod+Shift+2 move container to workspace number 2 bindsym $mod+Shift+3 move container to workspace number 3 bindsym $mod+Shift+4 move container to workspace number 4 bindsym $mod+Shift+5 move container to workspace number 5 bindsym $mod+Shift+6 move container to workspace number 6 bindsym $mod+Shift+7 move container to workspace number 7 bindsym $mod+Shift+8 move container to workspace number 8 bindsym $mod+Shift+9 move container to workspace number 9 bindsym $mod+Shift+0 move container to workspace number 10 # move workspaces between monitors bindsym $mod+Prior focus output left bindsym $mod+Next focus output right bindsym $mod+Shift+Prior move workspace output left bindsym $mod+Shift+Next move workspace output right # 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 #not sure I need, I'll leave it bindsym $mod+w exec swayr switch-window #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+space floating 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 # # 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 # Return to default mode bindsym Return mode "default" bindsym Escape mode "default" } bindsym $mod+r mode "resize" # # Status Bar: # # Read `man 5 sway-bar` for more information about this section. bar { swaybar_command waybar # position bottom # height 20 # # When the status_command prints a new line to stdout, swaybar updates. # # The default just shows the current date and time. # # status_command while date +'%Y-%m-%d %I:%M:%S %p'; do sleep 1; done # # colors { # # statusline #ffffff # # background #323232 # # inactive_workspace #32323200 #32323200 #d0d0d0 # # } } include /etc/sway/config.d/*