# i3 config — portiert von ~/.config/sway/config

# === Monitor-Layout via xrandr (X11) ===
exec --no-startup-id xrandr \
    --output HDMI-A-1 --mode 1920x1080  --rate 50    --pos 0x1732    --rotate normal \
    --output DP-2     --mode 2560x1440  --rate 59.95 --pos 301x1080  --rotate right \
    --output DP-1     --mode 2560x1440  --rate 59.95 --pos 1741x1732 --rotate normal --primary \
    --output DP-3     --mode 2560x1440  --rate 59.95 --pos 4301x1732 --rotate normal

# === Tastatur (X11) ===
exec_always --no-startup-id setxkbmap -layout "de,us" -option "caps:XF86Launch5"

# === Touchpad (X11) ===
exec_always --no-startup-id xinput set-prop "SynPS/2 Synaptics TouchPad" "libinput Tapping Enabled" 1 2>/dev/null || true
exec_always --no-startup-id xinput set-prop "SynPS/2 Synaptics TouchPad" "libinput Scroll Method Enabled" 0 0 1 2>/dev/null || true

# === Modifier ===
set $mod Mod4
set $alt Mod1

floating_modifier $mod

# === Borders ===
bindsym $mod+t border normal
bindsym $mod+y border 1pixel
bindsym $mod+u border none

# === Terminal ===
bindsym $mod+Return exec foot

# === Fenster schließen ===
bindsym $mod+Shift+q kill
bindsym $alt+F4 kill
bindsym $mod+Shift+k exec xkill

# === App-Switcher / Launcher ===
bindsym $alt+Tab exec rofi -show window
set $menu exec wofi --show drun
bindsym $mod+d exec $menu

# === Fokus ===
bindsym $mod+Left  focus left
bindsym $mod+Down  focus down
bindsym $mod+Up    focus up
bindsym $mod+Right focus right

# === Fenster verschieben ===
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 ===
bindsym $mod+h split h
bindsym $mod+v split v

# === Fullscreen ===
bindsym $mod+z fullscreen

# === Layout ===
bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+e layout toggle split

# === Floating ===
bindsym $mod+Shift+space floating toggle
bindsym $mod+space focus mode_toggle
bindsym $mod+a focus parent

# === Workspaces ===
bindsym $mod+1 workspace 1: 1: Text
bindsym $mod+2 workspace 2: 2: Web
bindsym $mod+3 workspace 3: 3: Office
bindsym $mod+4 workspace 4: 4: KeePass
bindsym $mod+5 workspace 5: 5: Mail
bindsym $mod+6 workspace 6: 6: Chat
bindsym $mod+7 workspace 7
bindsym $mod+8 workspace 8
bindsym $mod+9 workspace 9
bindsym $mod+0 workspace 10

bindsym $mod+Shift+1 move container to workspace 1: 1: Text
bindsym $mod+Shift+2 move container to workspace 2: 2: Web
bindsym $mod+Shift+3 move container to workspace 3: 3: Office
bindsym $mod+Shift+4 move container to workspace 4: 4: KeePass
bindsym $mod+Shift+5 move container to workspace 5: 5: Mail
bindsym $mod+Shift+6 move container to workspace 6: 6: Chat
bindsym $mod+Shift+7 move container to workspace 7
bindsym $mod+Shift+8 move container to workspace 8
bindsym $mod+Shift+9 move container to workspace 9
bindsym $mod+Shift+0 move container to workspace 10

# Workspace zwischen Monitoren verschieben
bindsym $mod+Prior move workspace to output left
bindsym $mod+Next  move workspace to output right

# === Scratchpad ===
bindsym $mod+Shift+minus move scratchpad
bindsym $mod+minus scratchpad show

# === Config neu laden / i3 neu starten ===
bindsym $mod+Shift+r restart
bindsym $mod+Shift+c reload

# === Session-Ende ===
bindsym $mod+Shift+e exec i3-nagbar -t warning \
    -m "i3 beenden?" \
    -b "Ja, beenden" "i3-msg exit" \
    -b "Neu starten" "i3-msg restart"

bindsym $mod+Shift+Delete exec i3-nagbar -t default \
    -m "Systemmenü" \
    -b "i3 beenden"  "i3-msg exit" \
    -b "Neu laden"   "i3-msg reload" \
    -b "Ausschalten" "exec sudo shutdown -P now" \
    -b "Neustart"    "exec sudo shutdown -r now"

# === Bildschirm sperren ===
bindsym $mod+Shift+l exec i3lock -c 000000

# === Bildschirmsperre + Idle (X11) ===
exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock -c 000000 &

# === Screenshot ===
bindsym --release Print exec maim -s ~/library/Bilder/Screenshots/screenshot_$(date +%s).png

# === Lautstärke ===
bindsym XF86AudioRaiseVolume exec pamixer -i 5
bindsym XF86AudioLowerVolume exec pamixer -d 5
bindsym XF86AudioMute        exec pamixer -t

# === Resize-Modus ===
bindsym $mod+r mode "resize"
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 odiaeresis   resize grow   width  10 px or 10 ppt

    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

    bindsym Return mode "default"
    bindsym Escape mode "default"
}

# === Statusbar ===
bar {
    status_command i3status
}

# === Standard-Layout ===
workspace_layout tabbed

# === Floating-Regeln ===
for_window [window_role="pop-up"]    floating enable, move absolute center
for_window [class="Pinentry"]        floating enable
for_window [class="Eog"]             floating enable
for_window [class="Geary"]           floating enable
for_window [class="Gcr-prompter"]    floating enable
for_window [class="Vlc"]             floating enable
for_window [class="Synergy"]         floating enable
for_window [class="libreoffice-writer"] floating enable
for_window [class="Shotwell"]        floating enable
for_window [class="anydesk"]         floating enable
for_window [class="galculator"]      floating enable
for_window [window_type="dialog"]    floating enable
for_window [window_role="dialog"]    floating enable
for_window [title="^Preferences$"]   floating enable
for_window [title="^Minecraft .*"]   floating enable
for_window [title="Steam - Update News"] kill

# === Workspace-Zuweisungen ===
assign [class="(?i)firefox"]         2: 2: Web
assign [class="(?i)chromium"]        2: 2: Web
assign [class="(?i)chrome"]          2: 2: Web
assign [class="libreoffice"]         3: 3: Office
assign [class="Gimp"]                3: 3: Office
assign [class="keepassxc"]           4: 4: KeePass
assign [class="KeePassXC"]           4: 4: KeePass
assign [class="(?i)thunderbird"]     5: 5: Mail
assign [class="Signal"]              6: 6: Chat

# === Autostart ===
exec --no-startup-id xrdb -load ~/.Xresources
exec --no-startup-id xrdb -merge ~/.Xresources

exec firefox
exec nm-applet --indicator
exec redshift-gtk -l 48.52160730:9.05050278
exec nextcloud
exec radiotray-ng
exec signal-desktop
exec keepassxc
exec ~/.scripts/start_keyring.sh
exec dunst
# Notification-History Picker (Inhalt kopieren)
bindsym $mod+n exec ~/.config/dunst/notification-picker.sh
exec udisksvm >/dev/null &
exec systemctl --user start mako-mirror.service

# include modules
include ~/.config/i3/conf.d/*
