summaryrefslogtreecommitdiff
path: root/.config/sway
diff options
context:
space:
mode:
Diffstat (limited to '.config/sway')
-rwxr-xr-x.config/sway/config35
-rw-r--r--.config/sway/config.d/gestures4
-rw-r--r--.config/sway/config.d/idle5
-rw-r--r--.config/sway/config.d/input20
-rw-r--r--.config/sway/config.d/keybinds58
-rw-r--r--.config/sway/config.d/project6
-rw-r--r--.config/sway/config.d/scratch14
-rw-r--r--.config/sway/config.d/theme32
-rw-r--r--.config/sway/config.d/workspaces68
-rw-r--r--.config/sway/logout.d/power/img/lock-hover.pngbin0 -> 6421 bytes
-rw-r--r--.config/sway/logout.d/power/img/lock.pngbin0 -> 6692 bytes
-rw-r--r--.config/sway/logout.d/power/img/logout-hover.pngbin0 -> 6076 bytes
-rw-r--r--.config/sway/logout.d/power/img/logout.pngbin0 -> 6612 bytes
-rw-r--r--.config/sway/logout.d/power/img/power-hover.pngbin0 -> 6995 bytes
-rw-r--r--.config/sway/logout.d/power/img/power.pngbin0 -> 6996 bytes
-rw-r--r--.config/sway/logout.d/power/img/restart-hover.pngbin0 -> 6846 bytes
-rw-r--r--.config/sway/logout.d/power/img/restart.pngbin0 -> 7355 bytes
-rw-r--r--.config/sway/logout.d/power/img/sleep-hover.pngbin0 -> 6094 bytes
-rw-r--r--.config/sway/logout.d/power/img/sleep.pngbin0 -> 6683 bytes
-rw-r--r--.config/sway/logout.d/power/layout30
-rw-r--r--.config/sway/logout.d/power/style.css76
-rwxr-xr-x.config/sway/scripts.d/auto.sh19
-rwxr-xr-x.config/sway/scripts.d/project.sh119
-rwxr-xr-x.config/sway/scripts.d/scratchpads.sh4
-rwxr-xr-x.config/sway/wallpapers/blue.jpgbin0 -> 1539393 bytes
-rw-r--r--.config/sway/wallpapers/nya0.pngbin0 -> 46891955 bytes
26 files changed, 490 insertions, 0 deletions
diff --git a/.config/sway/config b/.config/sway/config
new file mode 100755
index 0000000..effb3cd
--- /dev/null
+++ b/.config/sway/config
@@ -0,0 +1,35 @@
+# xdg desktop portal fix
+exec systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
+
+# Set super key
+set $mod Mod4
+
+# Set terminal
+set $term alacritty
+
+# Set app launcher
+set $menu wofi --allow-images --show=drun --prompt "Search Program"
+
+# Set scale
+set $scale 1.25
+
+# Set background
+set $bg ~/.config/sway/wallpapers/blue.jpg
+
+# Set Efects
+set $gaps 10
+set $radius 0
+set $shadows on
+set $shadow_blur 15
+set $blur enable
+set $blur_radius 10
+set $blur_passes 3
+
+# Set browser
+set $browser firefox
+
+# Autostart apps
+exec $HOME/.config/sway/scripts.d/auto.sh
+
+# Local configs
+include $HOME/.config/sway/config.d/*
diff --git a/.config/sway/config.d/gestures b/.config/sway/config.d/gestures
new file mode 100644
index 0000000..4bdb136
--- /dev/null
+++ b/.config/sway/config.d/gestures
@@ -0,0 +1,4 @@
+### Gestures
+
+bindgesture swipe:right workspace prev
+bindgesture swipe:left workspace next
diff --git a/.config/sway/config.d/idle b/.config/sway/config.d/idle
new file mode 100644
index 0000000..fb13083
--- /dev/null
+++ b/.config/sway/config.d/idle
@@ -0,0 +1,5 @@
+# Turn off display after tiemout
+exec swayidle -w \
+ timeout 300 'swaylock -f -c 14171d' \
+ timeout 300 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on"' \
+ before-sleep 'swaylock -f -c 14171d'
diff --git a/.config/sway/config.d/input b/.config/sway/config.d/input
new file mode 100644
index 0000000..8ee6ba7
--- /dev/null
+++ b/.config/sway/config.d/input
@@ -0,0 +1,20 @@
+### Input configuration
+
+# Enable numlock on startup
+input * xkb_numlock enable
+
+# Keyboard layout, change as you wish
+input * {
+ xkb_layout "us"
+ xkb_options compose:ralt
+}
+
+# Touchpad input settings
+input type:touchpad {
+ tap enabled
+ natural_scroll enabled
+ middle_emulation enabled
+}
+
+# Screen settings
+output eDP-1 resolution 3072x1920 scale $scale
diff --git a/.config/sway/config.d/keybinds b/.config/sway/config.d/keybinds
new file mode 100644
index 0000000..0543339
--- /dev/null
+++ b/.config/sway/config.d/keybinds
@@ -0,0 +1,58 @@
+### Key bindings
+
+# Start a terminal
+bindsym $mod+Return exec $term
+
+# Kill focused window
+bindsym $mod+Shift+q kill
+
+# Start your launcher
+bindsym $mod+d exec $menu
+
+# Start your browesr
+bindsym $mod+w exec $browser
+
+# Lock screen
+bindsym $mod+Shift+l exec $lock
+
+# Exit sway
+bindsym Ctrl+Alt+Delete exec killall sway
+
+# Power menu
+bindsym $mod+L exec killall wlogout || wlogout --css ~/.config/sway/logout.d/power/style.css -l ~/.config/sway/logout.d/power/layout
+
+# 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+F5 reload
+
+# Audio keybinds
+bindsym XF86AudioRaiseVolume exec pactl set-sink-volume @DEFAULT_SINK@ +5%
+bindsym XF86AudioLowerVolume exec pactl set-sink-volume @DEFAULT_SINK@ -5%
+bindsym Shift+XF86AudioRaiseVolume exec pactl set-sink-volume @DEFAULT_SINK@ 10000%
+bindsym Shift+XF86AudioLowerVolume exec pactl set-sink-volume @DEFAULT_SINK@ 0%
+bindsym XF86AudioMute exec pactl set-sink-mute @DEFAULT_SINK@ toggle
+bindsym XF86AudioMicMute exec pactl set-source-mute @DEFAULT_SOURCE@ toggle
+
+# Brightness keybinds
+bindsym XF86MonBrightnessDown exec brightnessctl set 5%-
+bindsym XF86MonBrightnessUp exec brightnessctl set 5%+
+
+# Player keybinds
+bindsym XF86AudioPlay exec playerctl play-pause
+bindsym XF86AudioNext exec playerctl next
+bindsym XF86AudioPrev exec playerctl previous
+
+# Screenshot
+bindsym $mod+Shift+s exec grim -g "$(slurp)" - | wl-copy && notify-send -t 1000 "Screenshot copied to clipboard"
+bindsym Print exec grim - | wl-copy && notify-send -t 1000 "Screenshot copied to clipboard"
+bindsym Shift+Print exec slurp -p | grim -g - - | convert - txt:- | tail -n 1 | awk '{print $3}' | wl-copy
+
+# Michelsoft Binbows
+bindsym Ctrl+$mod+Shift+L exec firefox "https://linkedin.com"
+bindsym Ctrl+$mod+Shift+S exec alacritty -e sl
diff --git a/.config/sway/config.d/project b/.config/sway/config.d/project
new file mode 100644
index 0000000..3cb1049
--- /dev/null
+++ b/.config/sway/config.d/project
@@ -0,0 +1,6 @@
+### Project
+
+bindsym $mod+Alt+Left exec ~/.config/sway/scripts.d/project.sh LEFT
+bindsym $mod+Alt+Right exec ~/.config/sway/scripts.d/project.sh RIGHT
+bindsym $mod+Alt+Up exec ~/.config/sway/scripts.d/project.sh EXTERNAL_ONLY
+bindsym $mod+Alt+Down exec ~/.config/sway/scripts.d/project.sh PRIMARY_ONLY
diff --git a/.config/sway/config.d/scratch b/.config/sway/config.d/scratch
new file mode 100644
index 0000000..0337319
--- /dev/null
+++ b/.config/sway/config.d/scratch
@@ -0,0 +1,14 @@
+### Scratchpad:
+
+# 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
+
+for_window [app_id="scratch_term"] move scratchpad, resize set 960 640
+for_window [app_id="scratch_htop"] move scratchpad, resize set 960 640
+
+bindsym $mod+y exec ~/.config/sway/scripts.d/scratchpads.sh scratch_term zsh
+bindsym $mod+h exec ~/.config/sway/scripts.d/scratchpads.sh scratch_htop htop
diff --git a/.config/sway/config.d/theme b/.config/sway/config.d/theme
new file mode 100644
index 0000000..e8d2822
--- /dev/null
+++ b/.config/sway/config.d/theme
@@ -0,0 +1,32 @@
+### Set borders
+gaps inner $gaps
+for_window [class="^.*"] border pixel 2
+default_border pixel 2
+default_floating_border pixel 2
+
+### Colors
+
+# class border backgr. text indicator child_border
+client.background #14171d
+client.focused #4d4754 #14171d #ffffff #4d4754 #4d4754
+client.focused_inactive #4d4754 #14171d #ffffff #14171d #14171d
+client.focused_tab_title #4d4754 #14171d #ffffff
+client.unfocused #14171d #14171d #ffffff #14171d #14171d
+client.urgent #cc5c5c #a63a3a #ffffff #a63a3a #a63a3a
+
+### SwayFX
+
+corner_radius $radius
+smart_corner_radius $radius
+shadows $shadows
+shadows_on_csd $shadows
+shadow_blur_radius $shadow_blur
+shadow_color #14171dff
+blur $blur
+blur_radius $blur_radius
+blur_passes $blur_passes
+layer_effects "waybar" blur enable; shadows enable
+layer_effects "wofi" blur enable; shadows enable
+
+### Output configuration
+output * bg $bg fill
diff --git a/.config/sway/config.d/workspaces b/.config/sway/config.d/workspaces
new file mode 100644
index 0000000..2d5b378
--- /dev/null
+++ b/.config/sway/config.d/workspaces
@@ -0,0 +1,68 @@
+
+# Move your focus around
+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
+
+# 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
+
+# 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
+
+# Layout stuff:
+
+# Set the new window positioning mode
+bindsym $mod+Shift+b layout splith
+bindsym $mod+Shift+v layout splitv
+bindsym $mod+Shift+c layout tabbed
+
+# 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
+
+# Resize windows
+mode "resize" {
+ # 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 $mod+r mode "resize"
diff --git a/.config/sway/logout.d/power/img/lock-hover.png b/.config/sway/logout.d/power/img/lock-hover.png
new file mode 100644
index 0000000..46c51b0
--- /dev/null
+++ b/.config/sway/logout.d/power/img/lock-hover.png
Binary files differ
diff --git a/.config/sway/logout.d/power/img/lock.png b/.config/sway/logout.d/power/img/lock.png
new file mode 100644
index 0000000..f1ec4a2
--- /dev/null
+++ b/.config/sway/logout.d/power/img/lock.png
Binary files differ
diff --git a/.config/sway/logout.d/power/img/logout-hover.png b/.config/sway/logout.d/power/img/logout-hover.png
new file mode 100644
index 0000000..b34a150
--- /dev/null
+++ b/.config/sway/logout.d/power/img/logout-hover.png
Binary files differ
diff --git a/.config/sway/logout.d/power/img/logout.png b/.config/sway/logout.d/power/img/logout.png
new file mode 100644
index 0000000..59a5aeb
--- /dev/null
+++ b/.config/sway/logout.d/power/img/logout.png
Binary files differ
diff --git a/.config/sway/logout.d/power/img/power-hover.png b/.config/sway/logout.d/power/img/power-hover.png
new file mode 100644
index 0000000..a65e429
--- /dev/null
+++ b/.config/sway/logout.d/power/img/power-hover.png
Binary files differ
diff --git a/.config/sway/logout.d/power/img/power.png b/.config/sway/logout.d/power/img/power.png
new file mode 100644
index 0000000..6aac455
--- /dev/null
+++ b/.config/sway/logout.d/power/img/power.png
Binary files differ
diff --git a/.config/sway/logout.d/power/img/restart-hover.png b/.config/sway/logout.d/power/img/restart-hover.png
new file mode 100644
index 0000000..7921398
--- /dev/null
+++ b/.config/sway/logout.d/power/img/restart-hover.png
Binary files differ
diff --git a/.config/sway/logout.d/power/img/restart.png b/.config/sway/logout.d/power/img/restart.png
new file mode 100644
index 0000000..5851243
--- /dev/null
+++ b/.config/sway/logout.d/power/img/restart.png
Binary files differ
diff --git a/.config/sway/logout.d/power/img/sleep-hover.png b/.config/sway/logout.d/power/img/sleep-hover.png
new file mode 100644
index 0000000..7c9b6b3
--- /dev/null
+++ b/.config/sway/logout.d/power/img/sleep-hover.png
Binary files differ
diff --git a/.config/sway/logout.d/power/img/sleep.png b/.config/sway/logout.d/power/img/sleep.png
new file mode 100644
index 0000000..164f5fb
--- /dev/null
+++ b/.config/sway/logout.d/power/img/sleep.png
Binary files differ
diff --git a/.config/sway/logout.d/power/layout b/.config/sway/logout.d/power/layout
new file mode 100644
index 0000000..2b53986
--- /dev/null
+++ b/.config/sway/logout.d/power/layout
@@ -0,0 +1,30 @@
+{
+ "label" : "lock",
+ "action" : "swaylock -f -c 14171d",
+ "text" : "Lock",
+ "keybind" : "l"
+}
+{
+ "label" : "logout",
+ "action" : "loginctl terminate-user $USER",
+ "text" : "Logout",
+ "keybind" : "e"
+}
+{
+ "label" : "shutdown",
+ "action" : "loginctl poweroff",
+ "text" : "Shutdown",
+ "keybind" : "s"
+}
+{
+ "label" : "suspend",
+ "action" : "loginctl suspend",
+ "text" : "Suspend",
+ "keybind" : "u"
+}
+{
+ "label" : "reboot",
+ "action" : "reboot",
+ "text" : "Reboot",
+ "keybind" : "r"
+}
diff --git a/.config/sway/logout.d/power/style.css b/.config/sway/logout.d/power/style.css
new file mode 100644
index 0000000..e80dd33
--- /dev/null
+++ b/.config/sway/logout.d/power/style.css
@@ -0,0 +1,76 @@
+nk* {
+ font-family: "Fira Mono", "Font Awesome 6 Pro", monospace;
+ font-size: 16px;
+ font-weight: bold;
+}
+
+window {
+ background-color: rgba(0, 0, 0, 0);
+}
+
+button {
+ background-color: #242434;
+ background-image: none;
+ color: #89ADF8;
+ border: 1px solid rgba(0, 0, 0, 0);
+ margin: 5px;
+ border-radius: 10px;
+ background-repeat: no-repeat;
+ background-position: center;
+ background-size: 35%;
+}
+
+button:focus, button:active {
+ background-color: #89B4FA;
+ color: #242434;
+ font-weight: 500;
+ outline-style: none;
+}
+
+#lock {
+ background-image: image(url("img/lock.png"));
+}
+
+#logout {
+ background-image: image(url("img/logout.png"));
+}
+
+#suspend {
+ background-image: image(url("img/sleep.png"));
+}
+
+#hibernate {
+ background-image: image(url("img/hibernate.png"));
+}
+
+#shutdown {
+ background-image: image(url("img/power.png"));
+}
+
+#reboot {
+ background-image: image(url("img/restart.png"));
+}
+
+#lock:focus {
+ background-image: image(url("img/lock-hover.png"));
+}
+
+#logout:focus {
+ background-image: image(url("img/logout-hover.png"));
+}
+
+#suspend:focus {
+ background-image: image(url("img/sleep-hover.png"));
+}
+
+#hibernate:focus {
+ background-image: image(url("img/hibernate-hover.png"));
+}
+
+#shutdown:focus {
+ background-image: image(url("img/power-hover.png"));
+}
+
+#reboot:focus {
+ background-image: image(url("img/restart-hover.png"));
+}
diff --git a/.config/sway/scripts.d/auto.sh b/.config/sway/scripts.d/auto.sh
new file mode 100755
index 0000000..c149f79
--- /dev/null
+++ b/.config/sway/scripts.d/auto.sh
@@ -0,0 +1,19 @@
+#!/usr/bin/env bash
+
+/usr/lib/xdg-desktop-portal -r &
+/usr/lib/xdg-desktop-portal-wlr -r &
+
+mako &
+
+GTK_THEME="Lavanda-Sea-Dark" nm-applet --indicator &
+
+autotiling &
+
+/usr/bin/gnome-keyring-daemon --foreground &
+
+GTK_THEME="Adwaita-dark" waybar &
+
+discord &
+element-desktop &
+#thunderbird &
+
diff --git a/.config/sway/scripts.d/project.sh b/.config/sway/scripts.d/project.sh
new file mode 100755
index 0000000..f7353e1
--- /dev/null
+++ b/.config/sway/scripts.d/project.sh
@@ -0,0 +1,119 @@
+#!/usr/bin/env bash
+
+PID=$$
+
+get_mode() {
+ swaymsg -t get_outputs -r | jq ".[$1].modes[0]"
+}
+
+get_name() {
+ swaymsg -t get_outputs -r | jq -r ".[$1].name"
+}
+
+get_width() {
+ get_mode "$1" | jq ".width"
+}
+
+get_height() {
+ get_mode "$1" | jq ".width"
+}
+
+get_refresh() {
+ get_mode "$1" | jq ".refresh" | rev | cut -c 4- | rev
+}
+
+get_placement() {
+ # $1 - monitor placement
+ # $2 - monitor index compared
+ # $3 - monitor compared scale
+ WIDTH="$(jq -n "$(get_width $2)/$3" | awk -F. '{print $1}')"
+ case $1 in
+ "NONE")
+ echo "0 0"
+ ;;
+ "RIGHT")
+ echo "$WIDTH 0"
+ ;;
+ *)
+ echo "0 0"
+ ;;
+ esac
+}
+
+update() {
+ # $1 - monitor index
+ # $2 - monitor scale
+ # $3 - monitor placement
+ # $4 - monitor index compared
+ # $5 - monitor compared scale
+ swaymsg output "$(get_name $1)" "enable"
+ swaymsg output "$(get_name $1)" resolution "$(get_width $1)x$(get_height $1)@$(get_refresh $1)hz" scale $2 position "$(get_placement $3 $4 $5)"
+}
+
+off() {
+ swaymsg output "$(get_name $1)" "disable"
+}
+
+get_id() {
+ i=0
+ while true; do
+ NAME="$(get_name $i)"
+ if [ "$NAME" == "$1" ]; then
+ echo "$i"
+ exit 0
+ elif [ "$NAME" == "null" ]; then
+ notify-send -u critical -t 3000 "Sway" "Failed to get display"
+ kill $PID
+ exit 1
+ fi
+ ((i=i+1))
+ done
+}
+
+PRIMARY=$(get_id "eDP-1")
+EXTERNAL=$(get_id "DP-1" || get_id "HDMI-1" || get_id "HDMI-A-1")
+
+PRIMARY_SCALE=1.5
+EXTERNAL_SCALE=1
+
+set_monitors() {
+ update $EXTERNAL $EXTERNAL_SCALE $1 $PRIMARY $PRIMARY_SCALE
+ update $PRIMARY $PRIMARY_SCALE $2 $EXTERNAL $EXTERNAL_SCALE
+}
+
+set_left() {
+ set_monitors "NONE" "RIGHT"
+}
+
+set_right() {
+ set_monitors "RIGHT" "NONE"
+}
+
+set_primary_only() {
+ set_monitors "NONE" "NONE"
+ off $EXTERNAL
+}
+
+set_external_only() {
+ set_monitors "NONE" "NONE"
+ off $PRIMARY
+}
+
+case $1 in
+ "LEFT")
+ set_left
+ notify-send -t 3000 "Sway" "External display set to left aligned"
+ ;;
+ "RIGHT")
+ set_right
+ notify-send -t 3000 "Sway" "External display set to right aligned"
+ ;;
+ "PRIMARY_ONLY")
+ set_primary_only
+ notify-send -t 3000 "Sway" "Set to primary display only"
+ ;;
+ "EXTERNAL_ONLY")
+ set_external_only
+ notify-send -t 3000 "Sway" "Set to external display only"
+ ;;
+esac
diff --git a/.config/sway/scripts.d/scratchpads.sh b/.config/sway/scripts.d/scratchpads.sh
new file mode 100755
index 0000000..bb8e361
--- /dev/null
+++ b/.config/sway/scripts.d/scratchpads.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+( swaymsg -t get_tree | /bin/grep '"app_id": "'$1'"' ) || ( ( $TERMINAL --class=$1 -e $2 & ) && sleep 0.2 )
+swaymsg "[app_id=\"$1\"]" scratchpad show
diff --git a/.config/sway/wallpapers/blue.jpg b/.config/sway/wallpapers/blue.jpg
new file mode 100755
index 0000000..acd376b
--- /dev/null
+++ b/.config/sway/wallpapers/blue.jpg
Binary files differ
diff --git a/.config/sway/wallpapers/nya0.png b/.config/sway/wallpapers/nya0.png
new file mode 100644
index 0000000..e9da5d5
--- /dev/null
+++ b/.config/sway/wallpapers/nya0.png
Binary files differ