Further setups and all-around fixes

This commit is contained in:
2025-10-23 13:49:02 +02:00
parent 490be89cb7
commit f8cc90d09b
6 changed files with 83 additions and 74 deletions
+21 -54
View File
@@ -1,68 +1,34 @@
# This file has been auto-generated by i3-config-wizard(1).
# It will not be overwritten, so edit it as you like.
#
# Should you change your keyboard layout some time, delete
# this file and re-run i3-config-wizard(1).
#
# i3 config file (v4)
#
# Please see https://i3wm.org/docs/userguide.html for a complete reference!
set $mod Mod4
# Font for window titles. Will also be used by the bar unless a different font
# is used in the bar {} block below.
#font pango:monospace 8
# This font is widely installed, provides lots of unicode glyphs, right-to-left
# text rendering and scalability on retina/hidpi displays (thanks to pango).
#font pango:DejaVu Sans Mono 8
font pango:JetBrains Mono 8
#font pango:JetBrains Mono 8
font pango:MesloLGL Nerd Font Mono 8
# Start XDG autostart .desktop files using dex. See also
# https://wiki.archlinux.org/index.php/XDG_Autostart
exec --no-startup-id dex --autostart --environment i3
# The combination of xss-lock, nm-applet and pactl is a popular choice, so
# they are included here as an example. Modify as you see fit.
# xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the
# screen before suspend. Use loginctl lock-session to lock your screen.
exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork
# NetworkManager is the most popular way to manage wireless networks on Linux,
# and nm-applet is a desktop environment-independent system tray GUI for it.
exec --no-startup-id nm-applet
# Use pactl to adjust volume in PulseAudio.
# 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'
# Use Mouse+$mod to drag floating windows to their wanted position
floating_modifier $mod
# move tiling windows via drag & drop by left-clicking into the title bar,
# or left-clicking anywhere into the window while holding the floating modifier.
tiling_drag modifier titlebar
# start a terminal
bindsym $mod+Return exec alacritty
# kill focused window
bindsym $mod+Shift+q kill
# start dmenu (a program launcher)
#bindsym $mod+d exec --no-startup-id dmenu_run
bindsym $mod+d exec --no-startup-id rofi -show run -theme theme
# A more modern dmenu replacement is rofi:
# bindcode $mod+40 exec "rofi -modi drun,run -show drun"
# There also is i3-dmenu-desktop which only displays applications shipping a
# .desktop file. It is a wrapper around dmenu, so you need that installed.
# bindcode $mod+40 exec --no-startup-id i3-dmenu-desktop
bindsym $mod+d exec --no-startup-id rofi -show run -theme solarized
# change focus
bindsym $mod+j focus left
@@ -70,7 +36,6 @@ bindsym $mod+k focus down
bindsym $mod+l focus up
bindsym $mod+semicolon focus right
# alternatively, you can use the cursor keys:
bindsym $mod+Left focus left
bindsym $mod+Down focus down
bindsym $mod+Up focus up
@@ -82,7 +47,6 @@ bindsym $mod+Shift+k move down
bindsym $mod+Shift+l move up
bindsym $mod+Shift+semicolon move right
# alternatively, you can use the cursor keys:
bindsym $mod+Shift+Left move left
bindsym $mod+Shift+Down move down
bindsym $mod+Shift+Up move up
@@ -157,15 +121,12 @@ bindsym $mod+Shift+c reload
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" {
# These bindings trigger as soon as you enter the resize mode
# Pressing left will shrink the windows width.
# Pressing right will grow the windows width.
# Pressing up will shrink the windows height.
# Pressing down will grow the windows height.
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
@@ -192,16 +153,22 @@ gaps inner 5
# finds out, if available)
bar {
status_command i3blocks
position top
}
# Set the keyboard layout to german
exec --no-startup-id setxkbmap de
# 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 --right-of HDMI-A-0
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 HDMI-1 --scale 0.9x0.9
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
+14
View File
@@ -0,0 +1,14 @@
#!/usr/bin/env bash
set -euo pipefail
# Which output contains the focused node?
output=$(i3-msg -t get_tree | jq -r '.. | select(.focused? == true) | .output')
# Get its geometry from i3 directly
geometry=$(i3-msg -t get_outputs \
| jq -r --arg out "$output" '.[] | select(.name==$out and .active)
| .rect | "\(.width)x\(.height)+\(.x)+\(.y)"')
# Shoot that output
exec maim -u -g "$geometry" "$@"