diff options
Diffstat (limited to '.config/sway')
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 Binary files differnew file mode 100644 index 0000000..46c51b0 --- /dev/null +++ b/.config/sway/logout.d/power/img/lock-hover.png diff --git a/.config/sway/logout.d/power/img/lock.png b/.config/sway/logout.d/power/img/lock.png Binary files differnew file mode 100644 index 0000000..f1ec4a2 --- /dev/null +++ b/.config/sway/logout.d/power/img/lock.png diff --git a/.config/sway/logout.d/power/img/logout-hover.png b/.config/sway/logout.d/power/img/logout-hover.png Binary files differnew file mode 100644 index 0000000..b34a150 --- /dev/null +++ b/.config/sway/logout.d/power/img/logout-hover.png diff --git a/.config/sway/logout.d/power/img/logout.png b/.config/sway/logout.d/power/img/logout.png Binary files differnew file mode 100644 index 0000000..59a5aeb --- /dev/null +++ b/.config/sway/logout.d/power/img/logout.png diff --git a/.config/sway/logout.d/power/img/power-hover.png b/.config/sway/logout.d/power/img/power-hover.png Binary files differnew file mode 100644 index 0000000..a65e429 --- /dev/null +++ b/.config/sway/logout.d/power/img/power-hover.png diff --git a/.config/sway/logout.d/power/img/power.png b/.config/sway/logout.d/power/img/power.png Binary files differnew file mode 100644 index 0000000..6aac455 --- /dev/null +++ b/.config/sway/logout.d/power/img/power.png diff --git a/.config/sway/logout.d/power/img/restart-hover.png b/.config/sway/logout.d/power/img/restart-hover.png Binary files differnew file mode 100644 index 0000000..7921398 --- /dev/null +++ b/.config/sway/logout.d/power/img/restart-hover.png diff --git a/.config/sway/logout.d/power/img/restart.png b/.config/sway/logout.d/power/img/restart.png Binary files differnew file mode 100644 index 0000000..5851243 --- /dev/null +++ b/.config/sway/logout.d/power/img/restart.png diff --git a/.config/sway/logout.d/power/img/sleep-hover.png b/.config/sway/logout.d/power/img/sleep-hover.png Binary files differnew file mode 100644 index 0000000..7c9b6b3 --- /dev/null +++ b/.config/sway/logout.d/power/img/sleep-hover.png diff --git a/.config/sway/logout.d/power/img/sleep.png b/.config/sway/logout.d/power/img/sleep.png Binary files differnew file mode 100644 index 0000000..164f5fb --- /dev/null +++ b/.config/sway/logout.d/power/img/sleep.png 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 Binary files differnew file mode 100755 index 0000000..acd376b --- /dev/null +++ b/.config/sway/wallpapers/blue.jpg diff --git a/.config/sway/wallpapers/nya0.png b/.config/sway/wallpapers/nya0.png Binary files differnew file mode 100644 index 0000000..e9da5d5 --- /dev/null +++ b/.config/sway/wallpapers/nya0.png |