diff --git a/.gitignore b/.gitignore
index 4a8bba0..db66ad3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -40,8 +40,5 @@ home/user/.tmux/*
home/user/.config/git/local
-home/user/.config/i3/config.d/*
-!home/user/.config/i3/config.d/.gitkeep
-
home/user/.config/sway/config.d/*
!home/user/.config/sway/config.d/.gitkeep
diff --git a/README.md b/README.md
index 19eb7d4..20d3cbc 100644
--- a/README.md
+++ b/README.md
@@ -26,7 +26,7 @@ Config files for:
* ssh
* git
* ranger
-* i3
+* sway
* vim
* nvim
@@ -65,4 +65,4 @@ Per-user dotfiles "package" manager
5. Does not overwrite your configs
-
\ No newline at end of file
+
diff --git a/TARGETS.sh b/TARGETS.sh
index 2cc6552..cc438f7 100644
--- a/TARGETS.sh
+++ b/TARGETS.sh
@@ -12,8 +12,7 @@ ssh:
git:.config/git .local/bin/ga
ranger:.config/ranger
gpg:
-i3:.xinitrc .xprofile .Xresources .config/i3 .config/i3blocks .config/rofi .config/picom .local/bin/slm .local/bin/slm_rofi.sh .local/bin/power_rofi.sh .local/bin/i3_switch_workspace.sh .config/mimeapps.list .local/bin/screenshot .local/bin/i3_swap_workspaces .local/bin/i3blocks_helper .local/bin/switch-layout %pomodoro
-sway:.config/sway .config/i3blocks .config/mako .config/mimeapps.list .config/rofi .local/bin/screenshot .local/bin/i3blocks_helper .local/bin/layout_change_handler .config/swaylock .Xresources %pomodoro
+sway:.config/sway .config/i3blocks .config/mako .config/mimeapps.list .config/rofi .local/bin/screenshot .local/bin/i3blocks_helper .local/bin/layout_change_handler .config/swaylock .Xresources .local/bin/sway_swap_workspaces %pomodoro
pomodoro:
bat:.config/bat
font:
diff --git a/home/user/.config/i3/config b/home/user/.config/i3/config
deleted file mode 100644
index a1d20d3..0000000
--- a/home/user/.config/i3/config
+++ /dev/null
@@ -1,266 +0,0 @@
-# Screen layout
-exec --no-startup-id ~/.screenlayout/default
-
-for_window [tiling] border pixel 3
-smart_borders on
-
-set $mod Mod4
-
-
-# Screensaver
-set $i3lock_cmd "i3lock -enf -c 1e1e1e"
-exec --no-startup-id xset s off
-exec --no-startup-id xset +dpms dpms 600 600 600
-exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock -enf -c 1e1e1e
-exec --no-startup-id pomodoro daemon
-
-
-# Notifications
-#systemctl --user enable --now dbus.service
-exec --no-startup-id dunst
-
-
-# Hide cursor
-exec --no-startup-id unclutter -idle 0.3 -root
-
-
-exec_always --no-startup-id xset r rate 250 100
-exec_always --no-startup-id setxkbmap -model pc105 -layout us,ru -option grp:win_space_toggle -option ctrl:nocaps
-
-
-# Wallpapers
-exec --no-startup-id nitrogen --restore; sleep 1; picom -b --config ~/.config/picom/picom.conf
-exec --no-startup-id hsetroot
-exec --no-startup-id feh --randomize --no-fehbg --bg-scale $HOME/.wallpaper/*
-
-set $font_size 11
-font xft:FiraCode $font_size
-
-# use pactl to adjust volume in PulseAudio.
-set $refresh_i3blocks exec pkill -SIGRTMIN+10 i3blocks
-set $refresh_i3blocks_language exec pkill -SIGRTMIN+11 i3blocks
-
-# bindsym $mod+space exec --no-startup-id switch-layout && $refresh_i3blocks_language
-
-bindsym XF86AudioRaiseVolume exec pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3blocks
-bindsym XF86AudioLowerVolume exec pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3blocks
-bindsym XF86AudioMute exec pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3blocks
-
-bindsym XF86AudioPlay exec playerctl play-pause
-bindsym XF86AudioPause exec playerctl play-pause
-bindsym XF86AudioNext exec playerctl next
-bindsym XF86AudioPrev exec playerctl previous
-
-bindsym XF86MonBrightnessUp exec xbacklight -inc 20
-bindsym XF86MonBrightnessDown exec xbacklight -dec 20
-
-
-bindsym $mod+p exec pomodoro toggle && $refresh_i3blocks
-
-bindsym $mod+z exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ 0 ## Hold to talk
-bindsym --release $mod+z exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ 1 ## Release to mute
-
-bindsym $mod+Shift+z exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3blocks
-bindsym XF86AudioMicMute exec pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3blocks
-
-bindsym XF86PickupPhone exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ 0 ## Hold to talk
-bindsym --release XF86PickupPhone exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ 1 ## Release to mute
-
-bindsym XF86Go exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ 0 ## Hold to talk, x1carb11
-bindsym --release XF86Go exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ 1 ## Release to mute, x1carb11
-
-
-bindsym $mod+XF86AudioMicMute exec --no-startup-id pactl list short sources | awk '/input.*RUNNING/ {system("pactl set-source-mute " $1 " toggle")}' ## Find and mute mics
-
-
-bindsym $mod+m exec i3-input -F 'mark %s' -l 1 -P 'Mark: '
-bindsym $mod+g exec i3-input -F '[con_mark="%s"] focus' -l 1 -P 'Goto: '
-
-focus_follows_mouse no
-mouse_warping none
-popup_during_fullscreen smart
-
-# kill focused window
-bindsym $mod+Shift+q kill
-
-bindsym $mod+d exec --no-startup-id rofi -show drun -m -1
-bindsym $mod+i exec --no-startup-id i3_switch_workspace.sh
-bindsym $mod+o exec --no-startup-id slm_rofi.sh
-
-# change focus
-bindsym $mod+h focus left
-bindsym $mod+j focus down
-bindsym $mod+k focus up
-bindsym $mod+l 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+h move left
-bindsym $mod+Shift+j move down
-bindsym $mod+Shift+k move up
-bindsym $mod+Shift+l move right
-
-bindsym $mod+Ctrl+Shift+l move workspace to output right
-bindsym $mod+Ctrl+Shift+h move workspace to output left
-bindsym $mod+Ctrl+Shift+k move workspace to output up
-bindsym $mod+Ctrl+Shift+j move workspace to output down
-
-# 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
-
-
-# enter fullscreen mode for the focused container
-bindsym $mod+f fullscreen toggle
-
-# change container layout (tabbed, toggle split)
-bindsym $mod+t layout tabbed
-bindsym $mod+v layout toggle split
-bindsym $mod+a focus parent
-
-# toggle tiling / floating
-bindsym $mod+Shift+slash floating toggle
-bindsym $mod+Shift+comma sticky toggle
-
-for_window [title="Picture-in-Picture"] sticky enable
-for_window [title="Picture-in-Picture"] border pixel 0
-
-# change focus between tiling / floating windows
-bindsym $mod+slash focus mode_toggle
-
-# Use Mouse+$mod to drag floating windows to their wanted position
-floating_modifier $mod
-
-# Define names for default workspaces for which we configure key bindings later on.
-# We use variables to avoid repeating the names in multiple places.
-set $ws1 "1 Browser"
-set $ws2 "2 Code"
-set $ws3 "3 Code"
-set $ws4 "4"
-set $ws5 "5"
-set $ws6 "6"
-set $ws7 "7"
-set $ws8 "8💬Social"
-set $ws9 "9🎵Music"
-set $ws10 "10🍿Media"
-
-# switch to workspace
-bindsym $mod+1 workspace number $ws1
-bindsym $mod+2 workspace number $ws2
-bindsym $mod+3 workspace number $ws3
-bindsym $mod+4 workspace number $ws4
-bindsym $mod+5 workspace number $ws5
-bindsym $mod+6 workspace number $ws6
-bindsym $mod+7 workspace number $ws7
-bindsym $mod+8 workspace number $ws8
-bindsym $mod+9 workspace number $ws9
-bindsym $mod+0 workspace number $ws10
-
-# move focused container to workspace
-bindsym $mod+Shift+1 move container to workspace number $ws1
-bindsym $mod+Shift+2 move container to workspace number $ws2
-bindsym $mod+Shift+3 move container to workspace number $ws3
-bindsym $mod+Shift+4 move container to workspace number $ws4
-bindsym $mod+Shift+5 move container to workspace number $ws5
-bindsym $mod+Shift+6 move container to workspace number $ws6
-bindsym $mod+Shift+7 move container to workspace number $ws7
-bindsym $mod+Shift+8 move container to workspace number $ws8
-bindsym $mod+Shift+9 move container to workspace number $ws9
-bindsym $mod+Shift+0 move container to workspace number $ws10
-
-bindsym $mod+u workspace prev
-bindsym $mod+Shift+u workspace next
-
-workspace_auto_back_and_forth no
-bindsym $mod+Tab workspace back_and_forth
-
-# resize window (you can also use the mouse for that)
-bindsym $mod+r mode "resize"
-mode "resize" {
- bindsym h resize shrink width 10 px or 10 ppt
- bindsym j resize grow height 10 px or 10 ppt
- bindsym k resize shrink height 10 px or 10 ppt
- bindsym l resize grow width 10 px or 10 ppt
-
- bindsym $mod+r mode "default"
- bindsym p mode "resize_precise"
-
- bindsym Return mode "default"
- bindsym Escape mode "default"
-}
-mode "resize_precise" {
- bindsym h resize shrink width 1 px or 1 ppt
- bindsym j resize grow height 1 px or 1 ppt
- bindsym k resize shrink height 1 px or 1 ppt
- bindsym l resize grow width 1 px or 1 ppt
-
- bindsym $mod+r mode "default"
- bindsym p mode "resize"
-
- bindsym Return mode "default"
- bindsym Escape mode "default"
-}
-
-set $exitmode "Power: [e]xit, [r]eboot, [s]hutdown, s[u]spend, [l]ock, [b]lack"
-mode $exitmode {
- bindsym e exit
- bindsym r exec reboot
- bindsym s exec shutdown -h now
- bindsym u exec systemctl suspend; mode "default"
- bindsym l exec $i3lock_cmd; mode "default"
- bindsym b exec magick canvas:none PNG:- | feh -YFx -; mode "default"
-
- bindsym Escape mode "default"
- bindsym Return mode "default"
-}
-bindsym $mod+x mode $exitmode
-
-
-# reload the configuration file
-bindsym $mod+Shift+c reload
-# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
-bindsym $mod+Shift+r restart
-
-bar {
- output primary
- output nonprimary
- tray_output primary
-
- # disable scroll
- bindsym button4 nop
- bindsym button5 nop
- status_command i3blocks
-}
-
-bindsym Print exec --no-startup-id screenshot select copy
-bindsym $mod+Print exec --no-startup-id screenshot window copy
-bindsym Ctrl+Print exec --no-startup-id screenshot entire copy
-
-bindsym Shift+Print exec --no-startup-id screenshot select save
-bindsym Shift+$mod+Print exec --no-startup-id screenshot window save
-bindsym Shift+Ctrl+Print exec --no-startup-id screenshot entire save
-
-bindsym $mod+s exec --no-startup-id i3_swap_workspaces
-
-# default workspaces for monitors in setup
-workspace $ws1 output primary
-workspace $ws2 output primary
-workspace $ws3 output primary
-workspace $ws9 output nonprimary
-workspace $ws10 output nonprimary
-
-workspace hide1 output primary
-workspace hide2 output nonprimary
-bindsym $mod+q exec --no-startup-id i3-msg workspace hide1; workspace hide2
-
-no_focus [title="^Peek preview$"]
-no_focus [class="feh"]
-
-include ~/.config/i3/config.d/*.conf
diff --git a/home/user/.config/i3/config.d/.gitkeep b/home/user/.config/i3/config.d/.gitkeep
deleted file mode 100644
index e69de29..0000000
diff --git a/home/user/.config/sway/bindings.conf b/home/user/.config/sway/bindings.conf
index 460257a..819fef1 100644
--- a/home/user/.config/sway/bindings.conf
+++ b/home/user/.config/sway/bindings.conf
@@ -33,12 +33,13 @@ bindsym $mod+XF86AudioMicMute exec --no-startup-id pactl list short sources | aw
bindsym $mod+Return exec alacritty
+bindsym --to-code $mod+s exec sway_swap_workspaces
+
bindsym --to-code $mod+Shift+q kill
bindsym --to-code $mod+Shift+r reload
set $menu rofi -show drun -m -1
bindsym --to-code $mod+d exec $menu
-# bindsym $mod+i exec --no-startup-id i3_switch_workspace.sh
# bindsym $mod+o exec --no-startup-id slm_rofi.sh
# Change focus
diff --git a/home/user/.local/bin/i3_swap_workspaces b/home/user/.local/bin/i3_swap_workspaces
deleted file mode 100755
index 252d229..0000000
--- a/home/user/.local/bin/i3_swap_workspaces
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/bin/bash
-
-
-set -eu
-
-
-current_monitor=$(i3-msg -t get_workspaces | jq '.[] | select(.focused).output' | tr -d '"')
-other_monitor=$(i3-msg -t get_outputs | jq -r ".[] | select(.active and .name != \"${current_monitor}\").name" | head -n 1)
-
-if [ -z "${other_monitor}" ]; then
- echo "No other active monitor found."
- exit 1
-fi
-
-current_workspace=$(i3-msg -t get_workspaces | jq '.[] | select(.focused).name' | tr -d '"')
-other_workspace=$(i3-msg -t get_workspaces | jq -r ".[] | select(.visible and .output == \"${other_monitor}\").name" | head -n 1)
-
-if [ -n "${other_workspace}" ]; then
- # Swap workspaces
- i3-msg "workspace ${other_workspace}; move workspace to output ${current_monitor}"
- i3-msg "workspace ${current_workspace}; move workspace to output ${other_monitor}"
- i3-msg "workspace ${other_workspace}"
-else
- # Just move current workspace if target is empty
- i3-msg "move workspace to output ${other_monitor}"
-fi
diff --git a/home/user/.local/bin/i3_switch_workspace.sh b/home/user/.local/bin/i3_switch_workspace.sh
deleted file mode 100755
index 8eeae96..0000000
--- a/home/user/.local/bin/i3_switch_workspace.sh
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/bin/sh
-
-gen_workspaces()
-{
- i3-msg -t get_workspaces | tr ',' '\n' | grep "name" | sed 's/"name":"\(.*\)"/\1/g'
-}
-
-choosed_workspace=$(gen_workspaces | rofi -dmenu -m -1 -i -p "Select workspace")
-
-if [ -n "${choosed_workspace}" ]
-then
- i3-msg workspace "${choosed_workspace}"
-fi
\ No newline at end of file
diff --git a/home/user/.local/bin/sway_swap_workspaces b/home/user/.local/bin/sway_swap_workspaces
new file mode 100755
index 0000000..e63cdc7
--- /dev/null
+++ b/home/user/.local/bin/sway_swap_workspaces
@@ -0,0 +1,26 @@
+#!/bin/bash
+
+
+set -eu
+
+
+current_monitor=$(swaymsg -r -t get_workspaces | jq '.[] | select(.focused).output' | tr -d '"')
+other_monitor=$(swaymsg -r -t get_outputs | jq -r ".[] | select(.active and .name != \"${current_monitor}\").name" | head -n 1)
+
+if [ -z "${other_monitor}" ]; then
+ echo "No other active monitor found."
+ exit 1
+fi
+
+current_workspace=$(swaymsg -r -t get_workspaces | jq '.[] | select(.focused).name' | tr -d '"')
+other_workspace=$(swaymsg -r -t get_workspaces | jq -r ".[] | select(.visible and .output == \"${other_monitor}\").name" | head -n 1)
+
+if [ -n "${other_workspace}" ]; then
+ # Swap workspaces
+ swaymsg "workspace ${other_workspace}; move workspace to output ${current_monitor}"
+ swaymsg "workspace ${current_workspace}; move workspace to output ${other_monitor}"
+ swaymsg "workspace ${other_workspace}"
+else
+ # Just move current workspace if target is empty
+ swaymsg "move workspace to output ${other_monitor}"
+fi
diff --git a/home/user/.xinitrc b/home/user/.xinitrc
deleted file mode 100644
index 3f766b2..0000000
--- a/home/user/.xinitrc
+++ /dev/null
@@ -1,11 +0,0 @@
-[[ -r ~/.Xresources ]] && xrdb -merge -I$HOME ~/.Xresources
-[[ -r ~/.xprofile ]] && source ~/.xprofile
-
-session=${1:-i3}
-
-case $session in
- i3|i3wm ) exec i3;;
- kde ) exec startplasma-x11;;
- xfce|xfce4 ) exec startxfce4;;
- * ) exec $1;;
-esac
diff --git a/install-hooks/i3/pre-install b/install-hooks/i3/pre-install
deleted file mode 100755
index 1644717..0000000
--- a/install-hooks/i3/pre-install
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-
-echo "sudo pacman -S nitrogen picom compton ttf-font-awesome xdotool xclip maim playerctl rofi unclutter"