From a2014ed3d7fd1b3f53e4330e57338d42d7d9fe59 Mon Sep 17 00:00:00 2001 From: BardofSprites Date: Sat, 4 Oct 2025 15:09:35 -0400 Subject: modernized i3 --- bin/.local/bin/scripts/generic-theme-switch | 66 ++++++++++++++++++++++ .../bin/scripts/image-editing/center-image-bg | 8 +++ i3/.config/i3/config | 4 ++ i3/.config/i3/keybinds | 6 +- i3/.config/i3/winsettings | 7 ++- i3/.config/i3status/config | 27 +++++---- xorg/.Xresources | 1 + 7 files changed, 106 insertions(+), 13 deletions(-) create mode 100755 bin/.local/bin/scripts/generic-theme-switch create mode 100755 bin/.local/bin/scripts/image-editing/center-image-bg diff --git a/bin/.local/bin/scripts/generic-theme-switch b/bin/.local/bin/scripts/generic-theme-switch new file mode 100755 index 0000000..9374153 --- /dev/null +++ b/bin/.local/bin/scripts/generic-theme-switch @@ -0,0 +1,66 @@ +#!/usr/bin/env bash + +WALLPAPER_DIR="$HOME/Pictures/wallpaper/Landscape" +IMAGE="vertical-your-name-cafe.jpg" + +if [[ ! -e "$WALLPAPER_DIR/$IMAGE" ]]; then + echo $WALLPAPER_DIR/$IMAGE + echo "Wallpaper file doesn't exist" + exit 1 +fi + + +themes=("Gruber Darker" + "Modus Vivendi" + "Modus Operandi Tinted") + +if [ $# -eq 0 ]; then + selected_theme=$(printf "%s\n" "${themes[@]}" | dmenu -i -p "Select a theme:") +else + selected_theme=$1 +fi + +# Exit if no theme is selected +if [ -z "$selected_theme" ]; then + exit 1 +fi + +apply_emacs_theme() { + emacsclient -e "(bard/select-theme '$1)" +} + +apply_generic_theme() { + case $selected_theme in + "Gruber Darker") + BG_COLOR="#181818" + FG_COLOR="#e4e4e4" + IMAGE_BG="#282828" + apply_emacs_theme "gruber-darker" + xrdb -merge ~/.Xresources.d/Xresources.gruber + ;; + "Modus Vivendi" | "dark") + BG_COLOR="#000000" + FG_COLOR="#ffffff" + IMAGE_BG="#535353" + apply_emacs_theme "modus-vivendi" + xrdb -merge ~/.Xresources.d/Xresources.vivendi + ;; + "Modus Operandi Tinted" | "light") + BG_COLOR="#fbf7f0" + FG_COLOR="#000000" + IMAGE_BG="#efe9dd" + apply_emacs_theme "modus-operandi-tinted" + xrdb -merge ~/.Xresources.d/Xresources.operandi-tinted + ;; + + esac +} + +create_set_wallpaper () { + magick $WALLPAPER_DIR/$IMAGE -gravity center -resize x900 -background $IMAGE_BG -extent 1920x1080 $HOME/.cache/$IMAGE-edit.png + feh --no-fehbg --bg-fill "$HOME/.cache/$IMAGE-edit.png" + echo "feh --no-fehbg --bg-fill '$HOME/.cache/$IMAGE-edit.png'" >> ~/.cache/wallpaper +} + +apply_generic_theme +create_set_wallpaper diff --git a/bin/.local/bin/scripts/image-editing/center-image-bg b/bin/.local/bin/scripts/image-editing/center-image-bg new file mode 100755 index 0000000..3d379c0 --- /dev/null +++ b/bin/.local/bin/scripts/image-editing/center-image-bg @@ -0,0 +1,8 @@ +#!/usr/bin/env bash + +if [ -z "$1" ]; then + echo "Required input (image file) not found. Try again." + exit 1 +fi + +magick $1 -gravity center -background "#282828" -extent 1920x1080 $1-edit.png diff --git a/i3/.config/i3/config b/i3/.config/i3/config index ce349be..91f1417 100644 --- a/i3/.config/i3/config +++ b/i3/.config/i3/config @@ -47,6 +47,10 @@ no_focus [window_role="pop-up"] bar { position bottom status_command i3status + colors { + focused_workspace #285577 #285577 #FFFFFF + inactive_workspace #333333 #333333 #888888 + } # status_command SCRIPT_DIR=~/.local/bin/scripts/status/ i3blocks # colors { # # switch these when switching between dark and light mode diff --git a/i3/.config/i3/keybinds b/i3/.config/i3/keybinds index b86dabf..c32564b 100644 --- a/i3/.config/i3/keybinds +++ b/i3/.config/i3/keybinds @@ -10,8 +10,8 @@ bindsym $mod+Shift+Return exec $term2 bindsym $mod+Shift+x exec sysact # browser -bindsym $mod+w exec librewolf-bin -bindsym $mod+Shift+w exec firefox-bin +bindsym $mod+w exec zen +bindsym $mod+Shift+w exec librewolf # Scratchpad bindsym $mod+minus move scratchpad @@ -62,6 +62,8 @@ bindsym $mod+d exec "dmenu_run -p 'Run: '" # boomer zooming application bindsym $mod+b exec boomer +# change xresources and emacs theme and wallpaper +bindsym $mod+Shift+m exec $HOME/.local/bin/scripts/generic-theme-switch # Reloads i3 configuration bindsym $mod+Shift+c reload diff --git a/i3/.config/i3/winsettings b/i3/.config/i3/winsettings index 85d2aa2..a029804 100644 --- a/i3/.config/i3/winsettings +++ b/i3/.config/i3/winsettings @@ -1,7 +1,12 @@ # Window Manipulation Seetings +gaps top 5 +gaps left 5 +gaps right 5 +gaps bottom 5 +gaps inner 10 + # borders -for_window [class="^.*"] border pixel 3 # specific window settings for_window [class="floatterm"] floating enable default_border pixel 3 diff --git a/i3/.config/i3status/config b/i3/.config/i3status/config index 968ad50..56a5f63 100644 --- a/i3/.config/i3status/config +++ b/i3/.config/i3status/config @@ -3,7 +3,7 @@ general { interval = 5 } -order += "ipv6" +# order += "ipv6" order += "cpu_temperature 0" order += "disk /" order += "wireless _first_" @@ -13,36 +13,43 @@ order += "load" order += "tztime local" cpu_temperature 0 { - format = "Tea: %degrees °C" + # format = "Tea: %degrees °C" + format = " 󰶞 %degrees °C" } wireless _first_ { # format_up = "W: (%quality at %essid) %ip" - format_up = "W: (%quality) Leaked IP: %ip" - format_down = "W: down" + format_up = "  (%quality) [%ip] " + format_down = "󰖪 " } ethernet _first_ { # if you use %speed, i3status requires root privileges # format_up = "E: %ip (%speed)" - format_up = "E: Leaked IP: %ip (%speed)" - format_down = "E: down" + format_up = " E: Leaked IP: %ip (%speed) " + format_down = " E: down " } battery all { - format = "Fairy Dust: %percentage %status %remaining" + # format = "Fairy Dust: %percentage %status %remaining" + format = " %status %percentage (%remaining) " + status_bat = "  " + status_chr = "  " + status_full = "  " } tztime local { - format = "%Y-%m-%d (%a) %H:%M:%S" + format = "  %Y-%m-%d (%a) 󰥔 %H:%M:%S " } load { - format = "CPU Loads: %1min" + # format = "CPU Loads: %1min" + format = "  %1min " } disk "/" { - format = "Folder: %avail" + # format = "Folder: %avail" + format = "  %avail " } ipv6 { diff --git a/xorg/.Xresources b/xorg/.Xresources index 12cd13b..02ea4f4 100644 --- a/xorg/.Xresources +++ b/xorg/.Xresources @@ -20,6 +20,7 @@ URxvt.italicFont: xft:Iosevka Comfy:style=Italic:size=14 URxvt.boldItalicFont: xft:Iosevka Comfy:style=Bold Italic:size=14 st.font: Iosevka Comfy-14 +st.borderpx: 30 Nsxiv.bar.font: Iosevka Comfy-14 dmenu.font: Iosevka Comfy-14 st.alpha: 0.95 -- cgit v1.2.3