From f21a92d87a8d097e22d0c3d19bd689e47d188c60 Mon Sep 17 00:00:00 2001 From: ahwx Date: Thu, 26 Feb 2026 00:27:23 +0100 Subject: [PATCH 01/13] chore: adds macos-terminal-launcher --- modules/home/scripts/scripts/macos-terminal-launcher.sh | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 modules/home/scripts/scripts/macos-terminal-launcher.sh diff --git a/modules/home/scripts/scripts/macos-terminal-launcher.sh b/modules/home/scripts/scripts/macos-terminal-launcher.sh new file mode 100644 index 0000000..0ef4bee --- /dev/null +++ b/modules/home/scripts/scripts/macos-terminal-launcher.sh @@ -0,0 +1,3 @@ +#!/usr/bin/env bash + +kitty -e "$@" From a8918765fdb922c29100de1fecf492dc3bdcdbc2 Mon Sep 17 00:00:00 2001 From: ahwx Date: Thu, 26 Feb 2026 00:27:41 +0100 Subject: [PATCH 02/13] chore: adds more packages for darwin usage --- modules/home/scripts/scripts.nix | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/modules/home/scripts/scripts.nix b/modules/home/scripts/scripts.nix index 3767e57..c169abb 100644 --- a/modules/home/scripts/scripts.nix +++ b/modules/home/scripts/scripts.nix @@ -16,6 +16,16 @@ let builtins.readFile ./scripts/dock-on-all-monitors.sh ); caffeine = pkgs.writeScriptBin "caffeine" (builtins.readFile ./scripts/caffeine); + image-preview = pkgs.writeScriptBin "image-preview" (builtins.readFile ./scripts/image-preview.sh); + focus-kitty-picker = pkgs.writeScriptBin "focus-kitty-picker" ( + builtins.readFile ./scripts/focus-kitty-picker.sh + ); + change-wallpaper = pkgs.writeScriptBin "change-wallpaper" ( + builtins.readFile ./scripts/change-wallpaper.sh + ); + macos-terminal-launcher = pkgs.writeShellScriptBin "macos-terminal-launcher" ( + builtins.readFile ./scripts/macos-terminal-launcher.sh + ); in { home.packages = with pkgs; [ @@ -31,5 +41,9 @@ in ascii dock-on-all-monitors caffeine + change-wallpaper + focus-kitty-picker + image-preview + macos-terminal-launcher ]; } From 0bf64479470a2c871c83d7e6523cdd7e506485b7 Mon Sep 17 00:00:00 2001 From: ahwx Date: Thu, 26 Feb 2026 00:28:04 +0100 Subject: [PATCH 03/13] chore: makes notes script compatible with devices that do not have bemenu (darwin) --- modules/home/scripts/scripts/notes.sh | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/modules/home/scripts/scripts/notes.sh b/modules/home/scripts/scripts/notes.sh index 1644df1..004fbbf 100644 --- a/modules/home/scripts/scripts/notes.sh +++ b/modules/home/scripts/scripts/notes.sh @@ -7,15 +7,30 @@ NOTEDIR="$HOME/Notes" -CHOSEN=$(find "$HOME/Notes" -follow | grep -E '.md$' | bemenu -l 10 --ignorecase) +if [ $(command -v bemenu) ]; then + MENUCMD="bemenu -l 10 --ignorecase" +elif [ $(command -v fzf) ]; then + MENUCMD="fzf" +else + exit 1 +fi + +if [ $(command -v notify-send) ]; then + NOTICMD="notify-send \"Pulling from Git...\"" +elif [ $(command -v fzf) ]; then + NOTICMD="osascript -e \'display notification \"Pulling from Git...\"\'" +else + exit 1 +fi + +CHOSEN=$(find "$HOME/Notes" -follow | grep -E '.md$' | $MENUCMD) cd "$NOTEDIR" || mkdir -p "$NOTEDIR" && cd "$NOTEDIR" || echo 'Error with moving into directory, is "$NOTEDIR" set?' # Change dir to notes dir, if it doesn't exist, create it and try again. Otherwise it should just die, I guess? echo "Check if connected to internet and pull changes from Git" -ping -c1 github.com >/dev/null && notify-send "$(git pull)" # Pull most recent changes, be sure to not create conficts... +ping -c1 github.com >/dev/null && $NOTICMD # Pull most recent changes, be sure to not create conficts... if [ "$CHOSEN" ]; then kitty -e nvim "$CHOSEN" # Finally open chosen note - git add "$CHOSEN" && git commit -m "chore: updates (auto)" && git push && notify-send "Changes pushed" else exit 1 From e7424588866daf9341249c8753b1127d92dcede5 Mon Sep 17 00:00:00 2001 From: ahwx Date: Thu, 26 Feb 2026 00:28:24 +0100 Subject: [PATCH 04/13] feat: import uptime to sketchybar --- modules/home/sketchybar/sketchybarrc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/modules/home/sketchybar/sketchybarrc b/modules/home/sketchybar/sketchybarrc index 87f929a..f18a2d4 100755 --- a/modules/home/sketchybar/sketchybarrc +++ b/modules/home/sketchybar/sketchybarrc @@ -91,6 +91,9 @@ sketchybar --add item clock right \ --add item memory right \ --set memory script="$PLUGIN_DIR/memory.sh" \ --set memory update_freq=120 \ + --add item uptime right \ + --set uptime script="$PLUGIN_DIR/uptime.sh" \ + --set uptime update_freq=60 ##### Force all scripts to run the first time (never do this in a script) ##### sketchybar --update From 4eb98175c021f0e1d15520f6cfb7831e14333ee0 Mon Sep 17 00:00:00 2001 From: ahwx Date: Thu, 26 Feb 2026 00:28:33 +0100 Subject: [PATCH 05/13] feat: adds uptime plugin to sketchybar --- modules/home/sketchybar/plugins/uptime.sh | 26 +++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 modules/home/sketchybar/plugins/uptime.sh diff --git a/modules/home/sketchybar/plugins/uptime.sh b/modules/home/sketchybar/plugins/uptime.sh new file mode 100644 index 0000000..bb059c0 --- /dev/null +++ b/modules/home/sketchybar/plugins/uptime.sh @@ -0,0 +1,26 @@ +#!/bin/bash + +boot=$(sysctl -n kern.boottime) +boot=${boot/\{ sec = /} +boot=${boot/,*/} +now=$(date +%s) +seconds=$((now - boot)) +d="$((seconds / 60 / 60 / 24)) days" +h="$((seconds / 60 / 60 % 24)) hours" +m="$((seconds / 60 % 60)) minutes" + +# Remove plural if < 2. +((${d/ */} == 1)) && d=${d/s/} +((${h/ */} == 1)) && h=${h/s/} +((${m/ */} == 1)) && m=${m/s/} + +# Hide empty fields. +((${d/ */} == 0)) && unset d +((${h/ */} == 0)) && unset h +((${m/ */} == 0)) && unset m + +uptime=${d:+$d, }${h:+$h, }$m +uptime=${uptime%', '} +uptime=${uptime:-$seconds seconds} + +sketchybar --set "$NAME" label="up $uptime" From b502d43ce95c06a2ee3f4f2ee51d838fe22ef199 Mon Sep 17 00:00:00 2001 From: ahwx Date: Thu, 26 Feb 2026 00:29:45 +0100 Subject: [PATCH 06/13] fix: make alt-shift-f open firefox instead of toggle native fullscreen, also set native fullscreen to alt-shift-ctrl-f --- modules/home/skhd.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/home/skhd.nix b/modules/home/skhd.nix index 5a34fa6..c587a76 100644 --- a/modules/home/skhd.nix +++ b/modules/home/skhd.nix @@ -50,10 +50,12 @@ alt - e : open -a Finder /Users/${username} alt + shift - c : open -na Chromium # open new instance alt + shift - e : open -a Element # move to existing instance + alt + shift - f : open -a Firefox -n # open new firefox window + alt + shift - n : macos-terminal-launcher notes # open notes window alt - f : yabai -m window --toggle zoom-fullscreen - alt + shift -f : yabai -m window --toggle native-fullscreen + alt + ctrl + shift -f : yabai -m window --toggle native-fullscreen # # Linux-style word navigation and deletion From 76c1fb138a12d8469ca268d238063303b7aca090 Mon Sep 17 00:00:00 2001 From: ahwx Date: Thu, 26 Feb 2026 00:29:54 +0100 Subject: [PATCH 07/13] flake: adds iamb --- flake.lock | 249 +++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 194 insertions(+), 55 deletions(-) diff --git a/flake.lock b/flake.lock index 1df54d9..847ba1a 100644 --- a/flake.lock +++ b/flake.lock @@ -83,7 +83,7 @@ "nam-shub-of-enki", "pre-commit-hooks" ], - "systems": "systems_3", + "systems": "systems_5", "treefmt-nix": [ "nixocaine", "nam-shub-of-enki", @@ -257,7 +257,43 @@ }, "flake-utils": { "inputs": { - "systems": "systems_5" + "systems": "systems_2" + }, + "locked": { + "lastModified": 1709126324, + "narHash": "sha256-q6EQdSeUZOG26WelxqkmR7kArjgWCdw5sfJVHPH/7j8=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "d465f4819400de7c8d874d50b982301f28a84605", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_2": { + "inputs": { + "systems": "systems_3" + }, + "locked": { + "lastModified": 1705309234, + "narHash": "sha256-uNRRNRKmJyCRC/8y1RqBkqWBLM034y4qN7EprSdmgyA=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "1ef2e671c3b0c19053962c07dbda38332dcebf26", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_3": { + "inputs": { + "systems": "systems_7" }, "locked": { "lastModified": 1731533236, @@ -755,6 +791,27 @@ "type": "github" } }, + "iamb": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": "nixpkgs_4", + "rust-overlay": "rust-overlay" + }, + "locked": { + "lastModified": 1724218012, + "narHash": "sha256-cjBSWUBgfwdLnpneJ5XW2TdOFkNc+Rc/wyUp9arZzwg=", + "owner": "ulyssa", + "repo": "iamb", + "rev": "2e6376ff866a17eb4727af039b6a8e801da252e2", + "type": "github" + }, + "original": { + "owner": "ulyssa", + "ref": "latest", + "repo": "iamb", + "type": "github" + } + }, "iocaine-stable": { "inputs": { "nixpkgs": [ @@ -765,7 +822,7 @@ "nixocaine", "pre-commit-hooks" ], - "systems": "systems_2", + "systems": "systems_4", "treefmt-nix": [ "nixocaine", "treefmt-nix" @@ -888,9 +945,9 @@ "inputs": { "iocaine-stable": "iocaine-stable", "nam-shub-of-enki": "nam-shub-of-enki", - "nixpkgs": "nixpkgs_4", + "nixpkgs": "nixpkgs_6", "pre-commit-hooks": "pre-commit-hooks_2", - "systems": "systems_4", + "systems": "systems_6", "treefmt-nix": "treefmt-nix" }, "locked": { @@ -968,6 +1025,38 @@ } }, "nixpkgs_10": { + "locked": { + "lastModified": 1771369470, + "narHash": "sha256-0NBlEBKkN3lufyvFegY4TYv5mCNHbi5OmBDrzihbBMQ=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "0182a361324364ae3f436a63005877674cf45efb", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_11": { + "locked": { + "lastModified": 1769433173, + "narHash": "sha256-Gf1dFYgD344WZ3q0LPlRoWaNdNQq8kSBDLEWulRQSEs=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "13b0f9e6ac78abbbb736c635d87845c4f4bee51b", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_12": { "locked": { "lastModified": 1770843696, "narHash": "sha256-LovWTGDwXhkfCOmbgLVA10bvsi/P8eDDpRudgk68HA8=", @@ -983,7 +1072,7 @@ "type": "github" } }, - "nixpkgs_11": { + "nixpkgs_13": { "locked": { "lastModified": 1770197578, "narHash": "sha256-AYqlWrX09+HvGs8zM6ebZ1pwUqjkfpnv8mewYwAo+iM=", @@ -1032,6 +1121,38 @@ } }, "nixpkgs_4": { + "locked": { + "lastModified": 1709703039, + "narHash": "sha256-6hqgQ8OK6gsMu1VtcGKBxKQInRLHtzulDo9Z5jxHEFY=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "9df3e30ce24fd28c7b3e2de0d986769db5d6225d", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_5": { + "locked": { + "lastModified": 1706487304, + "narHash": "sha256-LE8lVX28MV2jWJsidW13D2qrHU/RUUONendL2Q/WlJg=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "90f456026d284c22b3e3497be980b2e47d0b28ac", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_6": { "locked": { "lastModified": 1766201043, "narHash": "sha256-eplAP+rorKKd0gNjV3rA6+0WMzb1X1i16F5m5pASnjA=", @@ -1047,7 +1168,7 @@ "type": "github" } }, - "nixpkgs_5": { + "nixpkgs_7": { "locked": { "lastModified": 1771419570, "narHash": "sha256-bxAlQgre3pcQcaRUm/8A0v/X8d2nhfraWSFqVmMcBcU=", @@ -1063,7 +1184,7 @@ "type": "github" } }, - "nixpkgs_6": { + "nixpkgs_8": { "locked": { "lastModified": 1743315132, "narHash": "sha256-6hl6L/tRnwubHcA4pfUUtk542wn2Om+D4UnDhlDW9BE=", @@ -1079,7 +1200,7 @@ "type": "github" } }, - "nixpkgs_7": { + "nixpkgs_9": { "locked": { "lastModified": 1742800061, "narHash": "sha256-oDJGK1UMArK52vcW9S5S2apeec4rbfNELgc50LqiPNs=", @@ -1095,42 +1216,10 @@ "type": "github" } }, - "nixpkgs_8": { - "locked": { - "lastModified": 1771369470, - "narHash": "sha256-0NBlEBKkN3lufyvFegY4TYv5mCNHbi5OmBDrzihbBMQ=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "0182a361324364ae3f436a63005877674cf45efb", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_9": { - "locked": { - "lastModified": 1769433173, - "narHash": "sha256-Gf1dFYgD344WZ3q0LPlRoWaNdNQq8kSBDLEWulRQSEs=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "13b0f9e6ac78abbbb736c635d87845c4f4bee51b", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, "nixvim": { "inputs": { "flake-parts": "flake-parts", - "nixpkgs": "nixpkgs_6", + "nixpkgs": "nixpkgs_8", "nixvim": "nixvim_2" }, "locked": { @@ -1150,7 +1239,7 @@ "nixvim_2": { "inputs": { "flake-parts": "flake-parts_2", - "nixpkgs": "nixpkgs_7", + "nixpkgs": "nixpkgs_9", "nuschtosSearch": "nuschtosSearch" }, "locked": { @@ -1170,7 +1259,7 @@ "nur": { "inputs": { "flake-parts": "flake-parts_3", - "nixpkgs": "nixpkgs_8" + "nixpkgs": "nixpkgs_10" }, "locked": { "lastModified": 1771581385, @@ -1188,7 +1277,7 @@ }, "nuschtosSearch": { "inputs": { - "flake-utils": "flake-utils", + "flake-utils": "flake-utils_3", "ixx": "ixx", "nixpkgs": [ "nixvim", @@ -1279,11 +1368,12 @@ "hypr-contrib": "hypr-contrib", "hyprland": "hyprland", "hyprland-plugins": "hyprland-plugins", + "iamb": "iamb", "nix-darwin": "nix-darwin", "nix-homebrew": "nix-homebrew", "nixocaine": "nixocaine", "nixos-hardware": "nixos-hardware", - "nixpkgs": "nixpkgs_5", + "nixpkgs": "nixpkgs_7", "nixvim": "nixvim", "nur": "nur", "oisd": "oisd", @@ -1309,9 +1399,28 @@ "type": "github" } }, + "rust-overlay": { + "inputs": { + "flake-utils": "flake-utils_2", + "nixpkgs": "nixpkgs_5" + }, + "locked": { + "lastModified": 1709863839, + "narHash": "sha256-QpEL5FmZNi2By3sKZY55wGniFXc4wEn9PQczlE8TG0o=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "e5ab9ee98f479081ad971473d2bc13c59e9fbc0a", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" + } + }, "skhd-zig": { "inputs": { - "nixpkgs": "nixpkgs_9" + "nixpkgs": "nixpkgs_11" }, "locked": { "lastModified": 1769555538, @@ -1329,7 +1438,7 @@ }, "sops-nix": { "inputs": { - "nixpkgs": "nixpkgs_10" + "nixpkgs": "nixpkgs_12" }, "locked": { "lastModified": 1771524872, @@ -1347,8 +1456,8 @@ }, "spicetify-nix": { "inputs": { - "nixpkgs": "nixpkgs_11", - "systems": "systems_6" + "nixpkgs": "nixpkgs_13", + "systems": "systems_8" }, "locked": { "lastModified": 1771268051, @@ -1389,8 +1498,9 @@ "type": "github" }, "original": { - "id": "systems", - "type": "indirect" + "owner": "nix-systems", + "repo": "default", + "type": "github" } }, "systems_3": { @@ -1403,8 +1513,9 @@ "type": "github" }, "original": { - "id": "systems", - "type": "indirect" + "owner": "nix-systems", + "repo": "default", + "type": "github" } }, "systems_4": { @@ -1422,6 +1533,34 @@ } }, "systems_5": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "id": "systems", + "type": "indirect" + } + }, + "systems_6": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "id": "systems", + "type": "indirect" + } + }, + "systems_7": { "locked": { "lastModified": 1681028828, "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", @@ -1436,7 +1575,7 @@ "type": "github" } }, - "systems_6": { + "systems_8": { "locked": { "lastModified": 1681028828, "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", From 508bfc76179bc33c0f9c9ea078d0dd3543b65559 Mon Sep 17 00:00:00 2001 From: ahwx Date: Thu, 26 Feb 2026 00:30:09 +0100 Subject: [PATCH 08/13] flake: adds iamb --- flake.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/flake.nix b/flake.nix index 1f7818b..e3d1371 100644 --- a/flake.nix +++ b/flake.nix @@ -26,6 +26,7 @@ nix-darwin.inputs.nixpkgs.follows = "nixpkgs"; nix-homebrew.url = "github:zhaofengli/nix-homebrew"; skhd-zig.url = "github:sebb3/skhd-zig.nix"; + iamb.url = "github:ulyssa/iamb/latest"; homebrew-core = { url = "github:homebrew/homebrew-core"; From 7e1f4f4f895293be41abc43f0aa46ebb3a595f71 Mon Sep 17 00:00:00 2001 From: ahwx Date: Thu, 26 Feb 2026 00:30:29 +0100 Subject: [PATCH 09/13] feat: write iamb configuration further --- modules/home/iamb.nix | 39 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 37 insertions(+), 2 deletions(-) diff --git a/modules/home/iamb.nix b/modules/home/iamb.nix index 6ba508e..531db2c 100644 --- a/modules/home/iamb.nix +++ b/modules/home/iamb.nix @@ -1,9 +1,45 @@ +{ pkgs, inputs, ... }: { programs.iamb = { enable = true; + package = inputs.iamb.packages.${pkgs.stdenv.hostPlatform.system}.default; settings = { - profiles.user.user_id = "@liv:liv.town"; + profiles.user = { + user_id = "@liv:liv.town"; + layout.style = "restore"; + }; + typing_notice_send = false; + typing_notice_display = true; + reaction_display = true; + read_receipt_send = false; + read_receipt_display = false; + sort = { + chats = [ + "favorite" + "recent" + "unread" + "name" + ]; + members = [ + "power" + "id" + ]; + }; + macros.normal = { + ";" = ":"; + gc = ":chats"; + gr = ":rooms"; + gs = ":spaces"; + gu = ":unreads"; + uc = ":unreads clear"; + r = ":reply"; + mq = ":cancely"; + me = ":editor"; + J = ":tabpreviousy"; + K = ":tabnext"; + }; notifications.enabled = false; + username_display = "displayname"; image_preview = { protocol.type = "kitty"; protocol.size = { @@ -11,7 +47,6 @@ width = 66; }; }; - username_display = "displayname"; }; }; } From 9934c9d02afaae63627fb696503763cdfcab9de8 Mon Sep 17 00:00:00 2001 From: ahwx Date: Thu, 26 Feb 2026 00:30:49 +0100 Subject: [PATCH 10/13] feat: import uptime plugin for sketchybar through nix too :p --- modules/home/sketchybar/default.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/modules/home/sketchybar/default.nix b/modules/home/sketchybar/default.nix index c1fd3bf..7b4b8ff 100644 --- a/modules/home/sketchybar/default.nix +++ b/modules/home/sketchybar/default.nix @@ -41,6 +41,10 @@ executable = true; text = builtins.readFile ./plugins/space.sh; }; + ".config/sketchybar/plugins/uptime.sh" = { + executable = true; + text = builtins.readFile ./plugins/uptime.sh; + }; ".config/sketchybar/plugins/volume.sh" = { executable = true; text = builtins.readFile ./plugins/volume.sh; From 25fbd43f5d7cb097fa2673961ddfd50f3d203692 Mon Sep 17 00:00:00 2001 From: ahwx Date: Thu, 26 Feb 2026 00:31:12 +0100 Subject: [PATCH 11/13] feat: adds darwin-specific scripts --- .../home/scripts/scripts/change-wallpaper.sh | 18 ++++++++++++++++++ .../home/scripts/scripts/focus-kitty-picker.sh | 11 +++++++++++ modules/home/scripts/scripts/image-preview.sh | 10 ++++++++++ 3 files changed, 39 insertions(+) create mode 100644 modules/home/scripts/scripts/change-wallpaper.sh create mode 100644 modules/home/scripts/scripts/focus-kitty-picker.sh create mode 100644 modules/home/scripts/scripts/image-preview.sh diff --git a/modules/home/scripts/scripts/change-wallpaper.sh b/modules/home/scripts/scripts/change-wallpaper.sh new file mode 100644 index 0000000..633f1d7 --- /dev/null +++ b/modules/home/scripts/scripts/change-wallpaper.sh @@ -0,0 +1,18 @@ +#!/usr/bin/env bash + +# focus-kitty-picker $1 + +selected_wallpaper=$( + eza -1 -X --no-quotes --absolute ~/Pictures/wallpapers/ | fzf --preview="wallpaper-preview {}" \ + --color=fg+:#b8bb26 \ + --color=hl:#fb4934,hl+:#fb4934,info:#83a598,marker:#fe8019 \ + --color=prompt:#fb4934,spinner:#fb4934,pointer:#fe8019,header:#b8bb26 \ + --color=border:#fe8019,scrollbar:#fabd2f,label:#fe8019 \ + --color=query:#b8bb26 \ + --color=preview-border:#fe8019 \ + --border="rounded" --border-label-pos="0" --preview-window="border-rounded" +) + +if [ ! -z "${selected_wallpaper}" ]; then + osascript -e "tell application \"System Events\" to tell every desktop to set picture to POSIX file \"$selected_wallpaper\"" +fi diff --git a/modules/home/scripts/scripts/focus-kitty-picker.sh b/modules/home/scripts/scripts/focus-kitty-picker.sh new file mode 100644 index 0000000..7b0eeb8 --- /dev/null +++ b/modules/home/scripts/scripts/focus-kitty-picker.sh @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +if [ "$1" = "kitty-picker" ]; then + while :; do + window_id=$(aerospace list-windows --all --format %{window-id}%{app-name} --json | jq ".[] | select(.\"app-name\" == \"kitty\") | .\"window-id\"") + if [ ! -z "${window_id}" ]; then + $(aerospace focus --window-id "${window_id}") + break + fi + done +fi diff --git a/modules/home/scripts/scripts/image-preview.sh b/modules/home/scripts/scripts/image-preview.sh new file mode 100644 index 0000000..9aa6ee4 --- /dev/null +++ b/modules/home/scripts/scripts/image-preview.sh @@ -0,0 +1,10 @@ +#!/usr/bin/env bash + +dim=${FZF_PREVIEW_COLUMNS}x${FZF_PREVIEW_LINES} + +if [[ $KITTY_WINDOW_ID ]] || [[ $GHOSTTY_RESOURCES_DIR ]] && command -v kitten >/dev/null; then + kitten icat --clear --transfer-mode=memory --unicode-placeholder --stdin=no --place="$dim@0x0" "$1" | sed '$d' | sed $'$s/$/\e[m/' +else + chafa -s "$dim" "$1" + echo +fi From 74c42e98986087c3accfcd7164a3426363ae1b0e Mon Sep 17 00:00:00 2001 From: ahwx Date: Thu, 26 Feb 2026 00:31:28 +0100 Subject: [PATCH 12/13] feat: install supertuxkart on azalea --- hosts/azalea/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/hosts/azalea/default.nix b/hosts/azalea/default.nix index 59fc7b1..ed3d33f 100644 --- a/hosts/azalea/default.nix +++ b/hosts/azalea/default.nix @@ -66,6 +66,7 @@ "lua" ]; casks = [ + "supertuxkart" "vial" "thunderbird" "sf-symbols" From 159ab77ef4b40a0c58a5097980a317076ce504cc Mon Sep 17 00:00:00 2001 From: ahwx Date: Thu, 26 Feb 2026 00:40:48 +0100 Subject: [PATCH 13/13] feat: import some settings from old iamb install --- modules/home/iamb.nix | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/modules/home/iamb.nix b/modules/home/iamb.nix index 531db2c..720e3f9 100644 --- a/modules/home/iamb.nix +++ b/modules/home/iamb.nix @@ -19,6 +19,7 @@ "recent" "unread" "name" + "lowpriority" ]; members = [ "power" @@ -31,13 +32,21 @@ gr = ":rooms"; gs = ":spaces"; gu = ":unreads"; + gf = ":open"; uc = ":unreads clear"; r = ":reply"; + e = ":edit"; mq = ":cancely"; me = ":editor"; J = ":tabpreviousy"; K = ":tabnext"; }; + macros.normal = { + asdf = ""; + sadf = ""; + fasd = ""; + sdaf = ""; + }; notifications.enabled = false; username_display = "displayname"; image_preview = {