diff --git a/sway/config b/sway/config new file mode 100644 index 0000000..9229af9 --- /dev/null +++ b/sway/config @@ -0,0 +1,135 @@ +# Variables +set $mod Mod4 +set $left h +set $down j +set $up k +set $right l +set $term alacritty +set $menu wmenu-run + +# 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 + +# exec swayidle -w \ +# timeout 300 'swaylock -f -c 000000' \ +# timeout 600 'swaymsg "output * power off"' resume 'swaymsg "output * power on"' \ +# before-sleep 'swaylock -f -c 000000' +# +# This will lock your screen after 300 seconds of inactivity, then turn off +# your displays after another 300 seconds, and turn your screens back on when +# resumed. It will also lock your screen before your computer goes to sleep. + +# 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' + +# 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 +} + +include /etc/sway/config.d/* diff --git a/sway/config.i3 b/sway/config.i3 new file mode 100755 index 0000000..0a4fcc6 --- /dev/null +++ b/sway/config.i3 @@ -0,0 +1,178 @@ +set $mod Mod4 + +#font pango:monospace 8 +#font pango:DejaVu Sans Mono 8 +#font pango:JetBrains Mono 8 +font pango:MesloLGL Nerd Font Mono 8 + + +exec --no-startup-id dex --autostart --environment i3 +exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork +exec --no-startup-id nm-applet + +# Keyboard quick buttons +set $refresh_i3status killall -SIGUSR1 i3status +bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status +bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status +bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status +bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status +bindsym --release $mod+Shift+S exec --no-startup-id sh -c '/home/agres/.config/i3/scripts/focused-monitor.sh | xclip -selection clipboard -t image/png' +bindsym --release $mod+Shift+Ctrl+S exec --no-startup-id sh -c '/home/agres/.config/i3/scripts/focused-monitor.sh ~/pictures/$(date +%Y-%m-%d_%H-%M-%S).png' + + + +floating_modifier $mod +tiling_drag modifier titlebar + +bindsym $mod+Return exec alacritty + +bindsym $mod+Shift+q kill + +bindsym $mod+d exec --no-startup-id rofi -show run -theme solarized + +# change focus +bindsym $mod+j focus left +bindsym $mod+k focus down +bindsym $mod+l focus up +bindsym $mod+semicolon focus right + +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+j move left +bindsym $mod+Shift+k move down +bindsym $mod+Shift+l move up +bindsym $mod+Shift+semicolon 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 + +# split in horizontal orientation +bindsym $mod+h 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 (stacked, tabbed, toggle split) +bindsym $mod+s layout stacking +bindsym $mod+w layout tabbed +bindsym $mod+e 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+d focus child + +# 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" +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" + +# 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 + +# 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 +# exit i3 (logs you out of your X session) +bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'" +# Locking the screen with i3lock +bindsym $mod+q exec --no-startup-id "i3lock --show-failed-attempts --color 00b5af" + +# resize window (you can also use the mouse for that) +mode "resize" { + + bindsym j resize shrink width 10 px or 10 ppt + bindsym k resize grow height 10 px or 10 ppt + bindsym l resize shrink height 10 px or 10 ppt + bindsym semicolon 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 Escape or $mod+r + bindsym Return mode "default" + bindsym Escape mode "default" + bindsym $mod+r mode "default" +} + +bindsym $mod+r mode "resize" + +gaps inner 5 +#gaps outer 2 + +# Start i3bar to display a workspace bar (plus the system information i3status +# finds out, if available) +bar { + status_command i3blocks + position top +} + +# Load Xresources file +exec --no-startup-id xrdb -merge ~/.Xresources +# Keyboard to German +exec --no-startup-id setxkbmap -layout de +# Set the screens correctly +exec --no-startup-id xrandr --output HDMI-A-0 --primary --auto --output DisplayPort-0 --auto --left-of HDMI-A-0 +# Scale 4K screen bigger +exec --no-startup-id xrandr --output DisplayPort-0 --scale 0.8x0.8 +# Set wallpaper +exec --no-startup-id feh --bg-scale /home/agres/.config/i3/wallpaper/wallpaper.jpg +# Disable screen from going black after 10 mins to 3 hours +exec --no-startup-id xset s 7200 7200 +exec --no-startup-id xset dpms 7200 7200 7200 + +# Window overlay theme +client.focused #00b5af #00b5af #fdf6e3 #073642 +client.focused_inactive #073642 #073642 #fdf6e3 #073642 +client.unfocused #073642 #073642 #fdf6e3 #073642 + + diff --git a/sway/scripts/status.sh b/sway/scripts/status.sh new file mode 100755 index 0000000..9abc528 --- /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 "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