diff --git a/home/.git-templates/hooks/post-checkout b/home/.git-templates/hooks/post-checkout new file mode 100755 index 0000000..ce781e8 --- /dev/null +++ b/home/.git-templates/hooks/post-checkout @@ -0,0 +1,16 @@ +#!/bin/bash + +origin_url=$(git remote get-url origin 2>/dev/null) + +if [[ "$origin_url" == *"github.com"* ]]; then + + user_repo=$(echo "$origin_url" | sed -E 's#.*github.com[:/](.*)\.git#\1#') + gitea_url="git@192.168.0.212:${user_repo}.git" + + if git remote -v | grep -q "$gitea_url"; then + exit 0 + fi + + git remote set-url --add --push origin "$gitea_url" + git remote set-url --add --push origin "$origin_url" +fi diff --git a/sway/config b/sway/config new file mode 100644 index 0000000..bc05a26 --- /dev/null +++ b/sway/config @@ -0,0 +1,149 @@ +# Variables +set $mod Mod4 +set $left h +set $down j +set $up k +set $right l +set $term alacritty +set $menu wmenu-run -l 5 + +# Font +font pango:MesloLGL Nerd Font Mono 10 + +# Background Image +output * bg /home/agres/.config/sway/wallpaper/wallpaper.jpg fill + +# Gaps +gaps inner 2 +gaps outer 2 + +# Screen Locker +exec_always /home/agres/.config/sway/scripts/lock-sway.sh + +# Key bindings + bindsym $mod+Return exec $term + bindsym $mod+Shift+q kill + bindsym $mod+d exec $menu + floating_modifier $mod normal + bindsym $mod+Shift+r reload + bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -B 'Yes, exit sway' 'swaymsg exit' + bindsym $mod+q exec /home/agres/.config/sway/scripts/lock-sway-instant.sh + +# Moving around: + bindsym $mod+$left focus left + bindsym $mod+$down focus down + bindsym $mod+$up focus up + bindsym $mod+$right focus right + bindsym $mod+Left focus left + bindsym $mod+Down focus down + bindsym $mod+Up focus up + bindsym $mod+Right focus right + + bindsym $mod+Shift+$left move left + bindsym $mod+Shift+$down move down + bindsym $mod+Shift+$up move up + bindsym $mod+Shift+$right move right + 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: + 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 + 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 + +# Layout stuff: + bindsym $mod+b splith + bindsym $mod+v splitv + bindsym $mod+s layout stacking + bindsym $mod+w layout tabbed + bindsym $mod+e layout toggle split + bindsym $mod+f fullscreen + bindsym $mod+Shift+space floating toggle + bindsym $mod+space focus mode_toggle + bindsym $mod+a focus parent + +# Scratchpad: + bindsym $mod+Shift+minus move scratchpad + bindsym $mod+minus scratchpad show + +# Resizing containers: +mode "resize" { + bindsym $left resize shrink width 50px + bindsym $down resize grow height 50px + bindsym $up resize shrink height 50px + bindsym $right resize grow width 50px + bindsym Left resize shrink width 50px + bindsym Down resize grow height 50px + bindsym Up resize shrink height 50px + bindsym Right resize grow width 50px + bindsym Return mode "default" + bindsym Escape mode "default" +} +bindsym $mod+r mode "resize" + +# Utilities: + bindsym --locked XF86AudioMute exec pactl set-sink-mute \@DEFAULT_SINK@ toggle + bindsym --locked XF86AudioLowerVolume exec pactl set-sink-volume \@DEFAULT_SINK@ -5% + bindsym --locked XF86AudioRaiseVolume exec pactl set-sink-volume \@DEFAULT_SINK@ +5% + bindsym --locked XF86AudioMicMute exec pactl set-source-mute \@DEFAULT_SOURCE@ toggle + # Special keys to adjust brightness via brightnessctl + bindsym --locked XF86MonBrightnessDown exec brightnessctl set 5%- + bindsym --locked XF86MonBrightnessUp exec brightnessctl set 5%+ + # Special key to take a screenshot with grim + bindsym Print exec grim + +# Status Bar: +bar { + position top + status_command while /home/agres/.config/sway/scripts/status.sh; do sleep 1; done + colors { + statusline #ffffff + background #323232 + inactive_workspace #32323200 #32323200 #5c5c5c + } +} + +input * { + xkb_layout de + xkb_variant nodeadkeys +} + +input "1452:641:Apple_SPI_Trackpad" { + pointer_accel -0.1 + natural_scroll enabled + scroll_factor 0.3 +} + +output eDP-1 { + scale 1.65 + scale_filter linear +} + +# Opacity Settings +for_window [app_id="Alacritty"] opacity 0.98 + +# Border Colors +client.focused #00b5af #00b5af #fdf6e3 #073642 +client.focused_inactive #073642 #073642 #fdf6e3 #073642 +client.unfocused #073642 #073642 #fdf6e3 #073642 + +include /etc/sway/config.d/* diff --git a/sway/scripts/lock-sway-instant.sh b/sway/scripts/lock-sway-instant.sh new file mode 100755 index 0000000..0eeb804 --- /dev/null +++ b/sway/scripts/lock-sway-instant.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env bash +set -euo pipefail + +IMG_PATH="${XDG_RUNTIME_DIR:-/tmp}/lock.png" + +grim -t png "$IMG_PATH" +magick "$IMG_PATH" -blur 0x12 "$IMG_PATH" +swaylock -f -i "$IMG_PATH" + diff --git a/sway/scripts/lock-sway.sh b/sway/scripts/lock-sway.sh new file mode 100755 index 0000000..cddb0ff --- /dev/null +++ b/sway/scripts/lock-sway.sh @@ -0,0 +1,10 @@ +#!/usr/bin/env bash +set -euo pipefail + +IMG_PATH="${XDG_RUNTIME_DIR:-/tmp}/lock.png" + +exec swayidle -w \ + timeout 30 "grim -t png \"$IMG_PATH\" && magick \"$IMG_PATH\" -blur 0x12 \"$IMG_PATH\" && swaylock -f -i \"$IMG_PATH\"" \ + timeout 600 'swaymsg "output * power off"' \ + resume 'swaymsg "output * power on"' \ + before-sleep "grim -t png \"$IMG_PATH\" && magick \"$IMG_PATH\" -blur 0x12 \"$IMG_PATH\" && swaylock -f -i \"$IMG_PATH\"" diff --git a/sway/scripts/status.sh b/sway/scripts/status.sh new file mode 100755 index 0000000..6fc9596 --- /dev/null +++ b/sway/scripts/status.sh @@ -0,0 +1,8 @@ +#!/bin/bash +mem=$(free -h | awk '/Mem:/ {print $3 "/" $2}') +cpu=$(grep 'cpu ' /proc/stat | awk '{usage=($2+$4)*100/($2+$4+$5)} END {printf "%.1f%%", usage}') +bat=$(cat /sys/class/power_supply/macsmc-battery/capacity 2>/dev/null || echo "N/A") +time=$(date "+%d.%m %H:%M:%S") + +echo "$USER | CPU: $cpu | MEM: $mem | BAT: $bat% | $time" + diff --git a/sway/wallpaper/wallpaper.jpg b/sway/wallpaper/wallpaper.jpg new file mode 100755 index 0000000..e769275 Binary files /dev/null and b/sway/wallpaper/wallpaper.jpg differ