From f8cc90d09b79b0b89d50c6d4b50bd52c8b9bfd01 Mon Sep 17 00:00:00 2001 From: Dominik Date: Thu, 23 Oct 2025 13:49:02 +0200 Subject: [PATCH] Further setups and all-around fixes --- etc/i3blocks.conf | 22 +++++----- home/.Xresources | 9 +++++ home/.xinitrc | 3 ++ home/.zshrc | 34 +++++++++++----- i3/config | 75 ++++++++++------------------------- i3/scripts/focused-monitor.sh | 14 +++++++ 6 files changed, 83 insertions(+), 74 deletions(-) create mode 100644 home/.Xresources create mode 100644 home/.xinitrc create mode 100755 i3/scripts/focused-monitor.sh diff --git a/etc/i3blocks.conf b/etc/i3blocks.conf index 9633fda..1ca8fe0 100644 --- a/etc/i3blocks.conf +++ b/etc/i3blocks.conf @@ -8,7 +8,7 @@ # Global properties separator=true -separator_block_width=15 +separator_block_width=20 [greetings] color=#f5af19 @@ -16,7 +16,7 @@ command=echo "$USER" interval=once [cpu] -command=top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1"%"}' +command=mpstat 1 1 | awk '/Average/ {print 100 - $NF"%"}' interval=5 label=CPU: @@ -30,18 +30,18 @@ command=free -h | awk '/^Mem/ {print $3 "/" $2}' interval=10 label=MEM: -[down] -command=vnstat -tr 2 | tail -n 3 | awk '/rx/ {print $2}' -interval=5 -label=DOWN: +#[down] +#command=vnstat -tr 2 | tail -n 3 | awk '/rx/ {print $2}' +#interval=5 +#label=DOWN: -[up] -command=vnstat -tr 2 | tail -n 3 | awk '/tx/ {print $2}' -interval=5 -label=UP: +#[up] +#command=vnstat -tr 2 | tail -n 3 | awk '/tx/ {print $2}' +#interval=5 +#label=UP: [time] -command=date '+%Y-%m-%d %H:%M:%S' +command=date '+%d.%m %H:%M:%S' interval=1 diff --git a/home/.Xresources b/home/.Xresources new file mode 100644 index 0000000..9a43f7c --- /dev/null +++ b/home/.Xresources @@ -0,0 +1,9 @@ +Xft.dpi: 144 +Xft.autohint: 0 +Xft.lcdfilter: lcddefault +Xft.hintstyle: hintslight +Xft.hinting: 1 +Xft.antialias: 1 +Xft.rgba: rgb +Xcursor.theme: Adwaita +Xcursor.size: 24 diff --git a/home/.xinitrc b/home/.xinitrc new file mode 100644 index 0000000..4b857d3 --- /dev/null +++ b/home/.xinitrc @@ -0,0 +1,3 @@ +i3 +export GTK_THEME=Adwaita-dark +export QT_QPA_PLATFORMTHEME=gtk2 diff --git a/home/.zshrc b/home/.zshrc index 54c5629..710ab0e 100644 --- a/home/.zshrc +++ b/home/.zshrc @@ -5,6 +5,14 @@ HIST_STAMPS="dd.mm.yyyy" plugins=(git sudo) source $ZSH/oh-my-zsh.sh +# -- Linux Specific -- + +if [[ -z $DISPLAY ]] && [[ $(tty) == /dev/tty1 ]]; then + startx +fi + + + # -- Local Setup --- # Preferred editor for local and remote sessions @@ -14,23 +22,31 @@ if [[ -n $SSH_CONNECTION ]]; then export EDITOR='nvim' fi + +# -- Env Paths --- + # go -export PATH=/usr/local/go/bin:$PATH +#export PATH=/usr/local/go/bin:$PATH # pyenv -export PYENV_ROOT="$HOME/.pyenv" -export PATH="$PYENV_ROOT/bin:$PATH" -eval "$(pyenv init --path)" -eval "$(pyenv init -)" +#export PYENV_ROOT="$HOME/.pyenv" +#export PATH="$PYENV_ROOT/bin:$PATH" +#eval "$(pyenv init --path)" +#eval "$(pyenv init -)" # pipx -export PATH="$PATH:/Users/agres/.local/bin" +#export PATH="$PATH:/Users/agres/.local/bin" +#export PATH="$HOME/.local/bin:$PATH" +# pipx Linux export PATH="$HOME/.local/bin:$PATH" + # bun -[ -s "/Users/agres/.bun/_bun" ] && source "/Users/agres/.bun/_bun" -export BUN_INSTALL="$HOME/.bun" -export PATH="$BUN_INSTALL/bin:$PATH" +#[ -s "/Users/agres/.bun/_bun" ] && source "/Users/agres/.bun/_bun" +#export BUN_INSTALL="$HOME/.bun" +#export PATH="$BUN_INSTALL/bin:$PATH" + +# -- Customization -- # Alais: ls to run tree (without any flags) unalias ls 2>/dev/null diff --git a/i3/config b/i3/config index 9820f7b..0a4fcc6 100755 --- a/i3/config +++ b/i3/config @@ -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 window’s width. - # Pressing right will grow the window’s width. - # Pressing up will shrink the window’s height. - # Pressing down will grow the window’s 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 diff --git a/i3/scripts/focused-monitor.sh b/i3/scripts/focused-monitor.sh new file mode 100755 index 0000000..6d962bc --- /dev/null +++ b/i3/scripts/focused-monitor.sh @@ -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" "$@" +