Files
nixos/hosts/nb/modules/sway/sway.conf

368 lines
13 KiB
Plaintext

# Oxide theme
#
# Author: Diki Ananta <diki1aap@gmail.com> Repository: https://github.com/dikiaap/dotfiles
# License: MIT
# i3 config file (v4)
# font for window titles and bar
font pango:Source Sans Pro 12
seat * xcursor_theme Adwaita 24
# use win key
set $mod Mod4
# use these keys for focus, movement, and resize directions
set $left j
set $down h
set $up l
set $right k
# define names for workspaces
set $ws1 "1: "
set $ws2 "2: "
set $ws3 "3: "
set $ws4 "4: "
set $ws5 "5: "
set $ws6 "6: "
set $ws7 "7: "
set $ws8 "8: "
set $ws9 "9: "
set $ws10 "10: "
# assign workspaces to primary monitor
workspace $ws1 output primary
workspace $ws2 output primary
workspace $ws3 output primary
workspace $ws4 output primary
workspace $ws5 output primary
workspace $ws6 output primary
workspace $ws7 output primary
workspace $ws8 output primary
workspace $ws9 output primary
# use $mod+Mouse to drag floating windows to their wanted position
floating_modifier $mod
# control focused window when follows the mouse movements
focus_follows_mouse no
# window border settings
default_border none
default_floating_border none
# hiding borders adjacent to the screen edges
hide_edge_borders none
# set popups during fullscreen mode
popup_during_fullscreen smart
# start a terminal
#bindsym $mod+Return workspace $ws1; exec --no-startup-id alacritty
# bindsym $mod+Return workspace $ws1; exec alacritty -t alacritty-sway
bindsym $mod+Return workspace $ws1; exec foot -c /etc/xdg/foot/foot.ini -T terminal-sway
# start a program launcher
# bindsym $mod+d exec --no-startup-id wofi -s /etc/wofi/style.css --show drun --lines 5 --columns 1 -t alacritty
# bindsym $mod+d exec alacritty --class=launcher -e env TERMINAL_COMMAND="alacritty -e" sway-launcher-desktop
bindsym $mod+d exec foot -a launcher -e env TERMINAL_COMMAND="foot -c /etc/xdg/foot/foot.ini -e" sway-launcher-desktop
#bindsym $mod+d exec --no-startup-id bemenu
#bindsym $mod+d exec --no-startup-id i3-dmenu-desktop --dmenu="dmenu -i -fn 'Source Sans Pro-10' -nb '#212121' -sb '#2b83a6' -sf '#ffffff'
#bindsym $mod+d exec --no-startup-id bemenu --dmenu="dmenu -i -fn 'Source Sans Pro-10' -nb '#212121' -sb '#2b83a6' -sf '#ffffff'
# start an explorer
bindsym $mod+e exec --no-startup-id nautilus
# switching window with win+tab
bindsym $mod+Tab exec --no-startup-id wofi -show window
# kill focused window
bindsym $mod+Shift+q kill
# change keyboard layout
bindsym $mod+i swaymsg input "*" us
bindsym $mod+Shift+i swaymsg input "*" de
# change focus
bindsym $mod+$left focus left
bindsym $mod+$down focus down
bindsym $mod+$up focus up
bindsym $mod+$right focus right
# alternatively, you can use the cursor keys:
bindsym $mod+Left focus left
bindsym $mod+Down focus down
bindsym $mod+Up focus up
bindsym $mod+Right focus right
# move focused window
bindsym $mod+Shift+$left move left
bindsym $mod+Shift+$down move down
bindsym $mod+Shift+$up move up
bindsym $mod+Shift+$right move right
# alternatively, you can use the cursor 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
# split in horizontal orientation
bindsym $mod+c split h
# split in vertical orientation
bindsym $mod+v split v
# enter fullscreen mode for the focused container
bindsym $mod+f fullscreen toggle
# change container layout
bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+p layout toggle split
# toggle tiling / floating
# bindsym $mod+Shift+space floating toggle
# change focus between tiling / floating windows
# bindsym $mod+space focus mode_toggle
# focus the parent container
bindsym $mod+a focus parent
# focus the child container
bindsym $mod+Shift+a focus child
# 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
bindsym $mod+minus scratchpad show
# move focused floating window to the current position of the cursor
bindsym $mod+Shift+m move position mouse
# set a window to stick to the glass
bindsym $mod+Shift+s sticky toggle
# sticky preview for media
bindsym $mod+Shift+p fullscreen disable; floating enable; resize set 350 px 197 px; sticky enable; move window to position 1006 px 537 px
# shortcut to change window border
bindsym $mod+t border normal 0
bindsym $mod+y border pixel 1
bindsym $mod+u border none
# switch to workspace
bindcode $mod+10 workspace $ws1
bindcode $mod+11 workspace $ws2
bindcode $mod+12 workspace $ws3
bindcode $mod+13 workspace $ws4
bindcode $mod+14 workspace $ws5
bindcode $mod+15 workspace $ws6
bindcode $mod+16 workspace $ws7
bindcode $mod+17 workspace $ws8
bindcode $mod+18 workspace $ws9
bindcode $mod+19 workspace $ws10
# move focused container to workspace
bindcode $mod+Shift+10 move container to workspace $ws1
bindcode $mod+Shift+11 move container to workspace $ws2
bindcode $mod+Shift+12 move container to workspace $ws3
bindcode $mod+Shift+13 move container to workspace $ws4
bindcode $mod+Shift+14 move container to workspace $ws5
bindcode $mod+Shift+15 move container to workspace $ws6
bindcode $mod+Shift+16 move container to workspace $ws7
bindcode $mod+Shift+17 move container to workspace $ws8
bindcode $mod+Shift+18 move container to workspace $ws9
bindcode $mod+Shift+19 move container to workspace $ws10
# shortcut applications
bindsym $mod+F1 exec gkamus
bindsym $mod+F2 workspace $ws2; exec subl
bindsym $mod+F3 workspace $ws3; exec chromium-browser
bindsym $mod+F4 workspace $ws4; exec pcmanfm
bindsym $mod+F5 workspace $ws5; exec evince
bindsym $mod+F6 workspace $ws6; exec audacious
bindsym $mod+F7 workspace $ws7; exec gcolor2
bindsym $mod+F8 workspace $ws8; exec telegram
bindsym $mod+F9 workspace $ws9; exec go-for-it
bindsym Print exec --no-startup-id gnome-screenshot
bindcode $mod+9 exec swaylock -c 252525 -s center -i ~/.wallpaper.png
bindsym Ctrl+Shift+Space exec 1password --quick-access
bindsym $mod+Space exec rofi-rbw --menu-keybindings ctrl+p:copy:password
# volume
bindsym XF86AudioLowerVolume exec amixer -q sset Master 5%- unmute
bindsym XF86AudioRaiseVolume exec amixer -q sset Master 5%+ unmute
bindsym XF86AudioMute exec amixer -q sset Master toggle
# touchpad
# bindsym XF86NotificationCenter exec swaymsg input type:touchpad events toggle enabled disabled
# set brightness logarithmically by factor 1.4
# .72 is just slightly bigger than 1 / 1.4
bindsym --locked XF86MonBrightnessUp exec light -S "$(light -G | awk '{ print int(($1 + .72) * 1.4) }')"
bindsym --locked XF86MonBrightnessDown exec light -S "$(light -G | awk '{ print int($1 / 1.4) }')"
# reload the configuration file
bindsym $mod+Shift+c reload
# restart i3 inplace
bindsym $mod+Shift+r restart
# manage i3 session
bindsym $mod+Shift+e exec swaynag --background f1fa8c --border ffb86c --border-bottom-size 0 --button-background ffb86c --button-text 282a36 -t warning -f "pango:Hack 9" -m "Do you really want to exit?" -B "  Auto Suspend Off " "pkill swayidle" -B "  Exit " "swaymsg exit" -B "  Lock " "pkill swaynag && swaylock -c 252525 -s center -i ~/.wallpaper.png" -B "  Reboot " "pkill swaynag && reboot" -B "  Shutdown " "pkill swaynag && shutdown -h now" -B " Suspend " "pkill swaynag && systemctl suspend"
# resize window
bindsym $mod+r mode "  "
mode "  " {
# pressing left and up will shrink the window's width and height
# pressing right and down will grow the window's width and height
bindsym $left resize shrink width 10 px or 10 ppt
bindsym $down resize grow height 10 px or 10 ppt
bindsym $up resize shrink height 10 px or 10 ppt
bindsym $right resize grow width 10 px or 10 ppt
# same bindings, but for the arrow keys
bindsym Left resize shrink width 10 px or 10 ppt
bindsym Down resize grow height 10 px or 10 ppt
bindsym Up resize shrink height 10 px or 10 ppt
bindsym Right resize grow width 10 px or 10 ppt
# back to normal: Enter or win+r
bindsym Return mode "default"
bindsym $mod+r mode "default"
}
# set specific windows to floating mode
for_window [window_role="app"] floating enable
#for_window [window_role="pop-up"] floating enable
for_window [window_role="task_dialog"] floating enable
for_window [title="Preferences$"] floating enable
for_window [class="Gkamus"] floating enable
for_window [class="Go-for-it"] floating enable
for_window [class="Lightdm-gtk-greeter-settings"] floating enable
for_window [class="Lxappearance"] floating enable
for_window [class="Menu"] floating enable
for_window [class="Nm-connection-editor"] floating enable
for_window [class="Software-properties-gtk"] floating enable
for_window [app_id="launcher"] floating enable
# set specific windows to tabbed mode
#for_window [class="Rambox"]tabbed
#for_window [class="Signal"]tabbed
# assign program to workspace
assign [title="terminal-sway"] → $ws1
# assign [app_id="Alacritty" title="^(?!alacritty-sway)$"] → $ws2
assign [app_id="foot" title="^(?!terminal-sway)$"] → $ws2
assign [app_id="chromium"] → $ws3
assign [app_id="firefox"] → $ws3
assign [app_id="librewolf"] → $ws3
assign [app_id="nautilus"] → $ws4
assign [app_id="libreoffice-calc"] → $ws5
assign [app_id="libreoffice-writer"] → $ws5
assign [class="vlc"] → $ws6
assign [class="Gimp"] → $ws7
assign [class="Signal"] → $ws8
assign [app_id="social"] → $ws8
assign [app_id="thunderbird"] → $ws8
assign [class="Lightdm-gtk-greeter-settings"] → $ws10
assign [class="Software-properties-gtk"] → $ws10
# class border backgr. text indicator child_border
client.focused #252525 #252525 #8be9fd #dddddd #252525
client.focused_inactive #282a36 #282a36 #86888c #282a36 #5a5a5a
client.unfocused #282a36 #282a36 #86888c #292d2e #5a5a5a
client.urgent #282a36 #282a36 #ffb86c #282a36 #5a5a5a
client.placeholder #282a36 #282a36 #ffffff #282a36 #262626
client.background #282a36
bar {
swaybar_command waybar
}
# gaps
smart_gaps on
gaps inner 12
gaps outer 0
# startup applications
exec /run/wrappers/bin/gnome-keyring-daemon --start --daemonize
exec dbus-sway-environment
exec configure-gtk
exec nm-applet --indicator
exec foot -c /etc/xdg/foot/foot.ini -T terminal-sway
exec firefox --name=social -p social
exec thunderbird
exec firefox
exec nextcloud
exec cryptomator
exec swayidle \
before-sleep 'loginctl lock-session $XDG_SESSION_ID' \
lock 'swaylock -c 252525 -s center -i ~/.wallpaper.png' \
timeout 180 'swaylock -c 252525 -s center -i ~/.wallpaper.png' \
timeout 1800 'systemctl suspend'
exec dunst
#exec --no-startup-id swaybg -c "#000000" -m fill -i ~/.config/wallpaper/wot.jpg
# exec --no-startup-id gnome-keyring-daemon --start --components=pkcs11,secrets,ssh
exec 'sleep 2; swaymsg workspace "$ws8"; swaymsg layout tabbed'
exec mako --default-timeout=5000
# Battery low warning every minute
exec_always sh -c 'while :; do battery-alert-swaynag; sleep 60; done' &
# wallpaper
# output eDP-1 scale 2 scale_filter linear
output eDP-1 mode 2880x1920 scale 2 scale_filter linear
output eDP-1 bg #282a36 solid_color
output eDP-1 bg ~/.wallpaper.png center
output DP-2 position 0 0
output DP-2 bg #282a36 solid_color
output DP-2 bg ~/.wallpaper.png center
output DP-4 position 0 0
output DP-4 bg #282a36 solid_color
output DP-4 bg ~/.wallpaper.png center
output DP-5 position 0 0
output DP-5 bg #282a36 solid_color
output DP-5 bg ~/.wallpaper.png center
input * xkb_layout "de
input * xkb_options "grp:win_space_toggle"
input "MANUFACTURER1 Keyboard" xkb_model "pc101"
# notebook
set $laptop eDP-1
# bindswitch --reload --locked lid:on output $laptop disable
# bindswitch --reload lid:off output $laptop enable
# A lock command used in several places
set $lock_script swaylock
# A sleep command used in several places.
# We leave a bit of time for locking to happen before putting the system to sleep
set $sleep $lock_script && sleep 3 && systemctl suspend
# Triggers a short notification
set $notify dunstify --timeout 1500
# Set your laptop screen name
set $laptop_screen 'eDP-1'
# Clamshell mode or lock & sleep
# This is a if/else statement: [ outputs_count == 1 ] && true || false
# bindswitch --locked lid:on exec '[ $(swaymsg -t get_outputs | grep name | wc -l) == 1 ] && ($sleep) || swaymsg output $laptop_screen disable'
bindswitch --locked lid:on exec 'swaymsg output $laptop_screen disable'
bindswitch --locked lid:off output $laptop_screen enable
# disable xwayland
#xwayland disable
# Touchpad
input type:touchpad {
tap enabled
natural_scroll enabled
}