diff --git a/.scripts/bin/calcurse-toggle.sh b/.scripts/bin/calcurse-toggle.sh new file mode 100755 index 00000000..750bb535 --- /dev/null +++ b/.scripts/bin/calcurse-toggle.sh @@ -0,0 +1,11 @@ +#!/usr/bin/env bash +if pgrep -f "foot --title floatcal" >/dev/null; then + # If a process with "foot --title floatcal" is found, kill it + pkill -f "foot --title floatcal" +else + # Otherwise, launch it via hyprctl + if ! hyprctl dispatch exec 'foot --title floatcal calcurse'; then + echo "Failed to launch calcurse in foot terminal" + exit 1 + fi +fi diff --git a/.scripts/bin/calsync.sh b/.scripts/bin/calsync.sh new file mode 100755 index 00000000..f3a6f997 --- /dev/null +++ b/.scripts/bin/calsync.sh @@ -0,0 +1,2 @@ +#!/bin/sh +hyprctl dispatch exec calcurse-caldav diff --git a/.scripts/bin/extract.sh b/.scripts/bin/extract.sh new file mode 100755 index 00000000..e54e0de6 --- /dev/null +++ b/.scripts/bin/extract.sh @@ -0,0 +1,52 @@ +#!/usr/bin/env bash + +SAVEIFS=$IFS +IFS="$(printf '\n\t')" + +function extract { + if [ $# -eq 0 ]; then + # display usage if no parameters given + echo "Usage: extract ." + echo " extract [path/file_name_2.ext] [path/file_name_3.ext]" + fi + for n in "$@"; do + if [ ! -f "$n" ]; then + echo "'$n' - file doesn't exist" + return 1 + fi + + case "''${n%,}" in + *.cbt | *.tar.bz2 | *.tar.gz | *.tar.xz | *.tbz2 | *.tgz | *.txz | *.tar) + tar zxvf "$n" + ;; + *.lzma) unlzma ./"$n" ;; + *.bz2) bunzip2 ./"$n" ;; + *.cbr | *.rar) unrar x -ad ./"$n" ;; + *.gz) gunzip ./"$n" ;; + *.cbz | *.epub | *.zip) unzip ./"$n" ;; + *.z) uncompress ./"$n" ;; + *.7z | *.apk | *.arj | *.cab | *.cb7 | *.chm | *.deb | *.iso | *.lzh | *.msi | *.pkg | *.rpm | *.udf | *.wim | *.xar | *.vhd) + 7z x ./"$n" + ;; + *.xz) unxz ./"$n" ;; + *.exe) cabextract ./"$n" ;; + *.cpio) cpio -id <./"$n" ;; + *.cba | *.ace) unace x ./"$n" ;; + *.zpaq) zpaq x ./"$n" ;; + *.arc) arc e ./"$n" ;; + *.cso) ciso 0 ./"$n" ./"$n.iso" && + extract "$n.iso" && \rm -f "$n" ;; + *.zlib) zlib-flate -uncompress <./"$n" >./"$n.tmp" && + mv ./"$n.tmp" ./"''${n%.*zlib}" && rm -f "$n" ;; + *.dmg) + hdiutil mount ./"$n" -mountpoint "./$n.mounted" + ;; + *) + echo "extract: '$n' - unknown archive method" + return 1 + ;; + esac + done +} + +IFS=$SAVEIFS diff --git a/.scripts/bin/mako-toggle.sh b/.scripts/bin/mako-toggle.sh new file mode 100755 index 00000000..7c2ed2f5 --- /dev/null +++ b/.scripts/bin/mako-toggle.sh @@ -0,0 +1,8 @@ +#!/bin/sh + +# Toggle Mako mode between "do-not-disturb" and "default" +if makoctl mode | grep -q "default"; then + makoctl set-mode do-not-disturb +else + makoctl set-mode default +fi diff --git a/.scripts/bin/mako.sh b/.scripts/bin/mako.sh new file mode 100755 index 00000000..8cad8d3f --- /dev/null +++ b/.scripts/bin/mako.sh @@ -0,0 +1,10 @@ +#!/bin/sh + +COUNT=$(makoctl list | grep -c "id") +ENABLED=󰂚 +DISABLED=󱏧 +if [ "$COUNT" != 0 ]; then DISABLED="󱅫"; fi +if [ "$( + makoctl mode | grep -q "default" + echo $? +)" -eq 0 ]; then echo $ENABLED; else echo $DISABLED; fi diff --git a/.scripts/bin/pavucontrol-toggle.sh b/.scripts/bin/pavucontrol-toggle.sh new file mode 100755 index 00000000..c2a9b46a --- /dev/null +++ b/.scripts/bin/pavucontrol-toggle.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env bash +if pgrep -f "pavucontrol" >/dev/null; then + pkill -f "pavucontrol" +else + if ! hyprctl dispatch exec pavucontrol; then + echo "Failed to launch Pavucontrol" + exit 1 + fi +fi diff --git a/.scripts/bin/rangerscript.sh b/.scripts/bin/rangerscript.sh new file mode 100755 index 00000000..eb3240fc --- /dev/null +++ b/.scripts/bin/rangerscript.sh @@ -0,0 +1,6 @@ +#!/bin/sh +if pgrep -f floatranger; then + pkill -f floatranger +else + hyprctl dispatch exec 'foot --title floatranger ranger' +fi diff --git a/.scripts/bin/tuirun-toggle.sh b/.scripts/bin/tuirun-toggle.sh new file mode 100755 index 00000000..e8b4d859 --- /dev/null +++ b/.scripts/bin/tuirun-toggle.sh @@ -0,0 +1,26 @@ +#!/usr/bin/env bash + +# Path to the tuirun executable +TUIRUN_PATH="/etc/profiles/per-user/$USER/bin/tuirun" +LOGFILE="$HOME/tuirun_debug.log" + +echo "Launching tuirun..." >>"$LOGFILE" +date >>"$LOGFILE" + +if pgrep -f "alacritty --title tuirun" >/dev/null; then + echo "Terminating existing tuirun process" >>"$LOGFILE" + pkill -f "alacritty --title tuirun" +else + echo "Starting new tuirun process" >>"$LOGFILE" + if ! hyprctl dispatch exec "alacritty --title tuirun -e sh -c '$TUIRUN_PATH'"; then + echo "Failed to launch tuirun in foot terminal" >>"$LOGFILE" + exit 1 + fi + sleep 1 # Give it a second to start + echo "Checking if tuirun process is still running..." >>"$LOGFILE" + if pgrep -f "$TUIRUN_PATH" >/dev/null; then + echo "tuirun is running" >>"$LOGFILE" + else + echo "tuirun exited prematurely" >>"$LOGFILE" + fi +fi diff --git a/.scripts/bin/volume-control.sh b/.scripts/bin/volume-control.sh new file mode 100755 index 00000000..5ffdc128 --- /dev/null +++ b/.scripts/bin/volume-control.sh @@ -0,0 +1,114 @@ +#!/usr/bin/env bash + +iDIR="$HOME/.config/mako/icons" + +# Get Volume +get_volume() { + pamixer --get-volume +} + +# Get icons +get_icon() { + current=$(get_volume) + case $current in + 0) + echo "$iDIR/vol_off.svg" + ;; + [1-9] | [1-2][0-9] | 30) + echo "$iDIR/vol_mute.svg" + ;; + [3-5][0-9] | 60) + echo "$iDIR/vol_down.svg" + ;; + *) + echo "$iDIR/vol_up.svg" + ;; + esac +} + +# Notify +notify_user() { + notify-send -h string:x-canonical-private-synchronous:sys-notify -u low -i "$(get_icon)" "Volume : $(get_volume) %" +} + +# Increase Volume +inc_volume() { + pamixer -i 5 && notify_user +} + +# Decrease Volume +dec_volume() { + pamixer -d 5 && notify_user +} + +# Toggle Mute +toggle_mute() { + if pamixer --get-mute | grep -q "false"; then + pamixer -m && notify-send -h string:x-canonical-private-synchronous:sys-notify -u low -i "$iDIR/vol_off.svg" "Volume Switched OFF" + else + pamixer -u && notify-send -h string:x-canonical-private-synchronous:sys-notify -u low -i "$(get_icon)" "Volume Switched ON" + fi +} + +# Toggle Mic +toggle_mic() { + if pamixer --default-source --get-mute | grep -q "false"; then + pamixer --default-source -m && notify-send -h string:x-canonical-private-synchronous:sys-notify -u low -i "$iDIR/mic_off.svg" "Microphone Switched OFF" + else + pamixer --default-source -u && notify-send -h string:x-canonical-private-synchronous:sys-notify -u low -i "$iDIR/mic.svg" "Microphone Switched ON" + fi +} + +# Get mic icons +get_mic_icon() { + echo "$iDIR/mic.svg" +} + +# Notify +notify_mic_user() { + notify-send -h string:x-canonical-private-synchronous:sys-notify -u low -i "$(get_mic_icon)" "Mic-Level : $(pamixer --default-source --get-volume) %" +} + +# Increase MIC Volume +inc_mic_volume() { + pamixer --default-source -i 5 && notify_mic_user +} + +# Decrease MIC Volume +dec_mic_volume() { + pamixer --default-source -d 5 && notify_mic_user +} + +# Execute accordingly +case $1 in +--get) + get_volume + ;; +--inc) + inc_volume + ;; +--dec) + dec_volume + ;; +--toggle) + toggle_mute + ;; +--toggle-mic) + toggle_mic + ;; +--get-icon) + get_icon + ;; +--get-mic-icon) + get_mic_icon + ;; +--mic-inc) + inc_mic_volume + ;; +--mic-dec) + dec_mic_volume + ;; +*) + get_volume + ;; +esac diff --git a/.scripts/cleanup-boot.sh b/.scripts/cleanup-boot.sh index 6a789d48..0680b4f6 100755 --- a/.scripts/cleanup-boot.sh +++ b/.scripts/cleanup-boot.sh @@ -1,6 +1,8 @@ #!/usr/bin/env bash # Script to clean up old initrd and kernel files in /boot/EFI/nixos +# Make sure it's added to flake.nix, then run: +# "nix build .#packages.x86_64-linux.cleanup-boot". # Exit on any error, undefined variable, or pipeline failure set -euo pipefail @@ -96,19 +98,19 @@ for file in "${efi_files[@]}"; do basename=$(basename "$file") # Pattern: -linux--bzImage.efi (kernel) - if [[ "$basename" =~ ^(.*)-linux-([0-9]+\.[0-9]+\.[0-9]+(-[a-zA-Z0-9\.\+]+)?)-bzImage\.efi$ ]]; then + if [[ "$basename" =~ ^(.*)-linux-([0-9]+\.[0-9]+(\.[0-9]+)?)\-bzImage\.efi$ ]]; then kernel_files+=("$file") # Pattern: -initrd-linux--initrd.efi (initrd) - elif [[ "$basename" =~ ^(.*)-initrd-linux-([0-9]+\.[0-9]+\.[0-9]+(-[a-zA-Z0-9\.\+]+)?)-initrd\.efi$ ]]; then + elif [[ "$basename" =~ ^(.*)-initrd-linux-([0-9]+\.[0-9]+(\.[0-9]+)?)\-initrd\.efi$ ]]; then initrd_files+=("$file") # Pattern: kernel--.efi (kernel) - elif [[ "$basename" =~ ^kernel-([0-9]+\.[0-9]+\.[0-9]+(-[a-zA-Z0-9\.\+]+)?)-([a-zA-Z0-9]+)\.efi$ ]]; then + elif [[ "$basename" =~ ^kernel-([0-9]+\.[0-9]+(\.[0-9]+)?)\-([a-zA-Z0-9\-]+)\.efi$ ]]; then kernel_files+=("$file") # Pattern: initrd--.efi (initrd) - elif [[ "$basename" =~ ^initrd-([0-9]+\.[0-9]+\.[0-9]+(-[a-zA-Z0-9\.\+]+)?)-([a-zA-Z0-9]+)\.efi$ ]]; then + elif [[ "$basename" =~ ^initrd-([0-9]+\.[0-9]+(\.[0-9]+)?)\-([a-zA-Z0-9\-]+)\.efi$ ]]; then initrd_files+=("$file") else @@ -126,10 +128,10 @@ process_files() { log "Processing $file_type files..." if [ "${#files[@]}" -gt "$keep_count" ]; then - # Sort files by modification time and keep the latest N files + # Sort files by modification time (newest first) sorted_files=$(for f in "${files[@]}"; do echo "$(stat -c '%Y' "$f"):$f"; done | sort -rn -k1,1) - # Collect files to delete + # Collect files to delete (older than the top N) mapfile -t files_to_delete < <(echo "$sorted_files" | tail -n +"$((keep_count + 1))" | cut -d: -f2) for file in "${files_to_delete[@]}"; do @@ -145,7 +147,7 @@ process_files() { fi } -# Process initrd and kernel files +# Process kernel and initrd files process_files kernel_files "$KEEP_KERNEL" "kernel" process_files initrd_files "$KEEP_INITRD" "initrd" diff --git a/.scripts/default.nix b/.scripts/default.nix new file mode 100644 index 00000000..59a7401a --- /dev/null +++ b/.scripts/default.nix @@ -0,0 +1,58 @@ +{ + config, + pkgs, + lib, + ... +}: let + inherit (lib) getExe; + inherit (builtins) readFile; +in { + home = { + # Ensure the scripts are linked in the session PATH + sessionPath = ["${config.home.homeDirectory}/.local/bin"]; + + # Link the pavucontrol script to the local PATH + file = { + ".local/bin/pavucontrol-toggle.sh" = { + source = getExe (pkgs.writeShellApplication { + name = "pavucontrol-toggle"; + runtimeInputs = with pkgs; [hyprland]; # Add any required runtime dependencies here + text = readFile ./bin/pavucontrol-toggle.sh; # Path to your pavucontrol.sh script + }); + }; + + ".local/bin/tuirun-toggle.sh" = { + source = getExe (pkgs.writeShellApplication { + name = "tuirun-toggle"; + runtimeInputs = with pkgs; [hyprland]; # Add any required runtime dependencies here + text = readFile ./bin/tuirun-toggle.sh; # Path to your tuirun-toggle.sh script + }); + }; + + ".local/bin/calcurse-toggle.sh" = { + source = getExe (pkgs.writeShellApplication { + name = "calcurse-toggle"; + runtimeInputs = with pkgs; [hyprland]; # Add any required runtime dependencies here + text = readFile ./bin/calcurse-toggle.sh; # Path to your calcurse-toggle.sh script + }); + }; + + ".local/bin/volume-control.sh" = { + source = getExe (pkgs.writeShellApplication { + name = "volume-control"; + runtimeInputs = with pkgs; [pamixer libnotify]; # Add any required runtime dependencies here + text = readFile ./bin/volume-control.sh; # Path to your volume-control.sh script + }); + }; + + ".local/bin/extract.sh" = { + # Stolen from NotAShelf + source = getExe (pkgs.writeShellApplication { + name = "extract"; + runtimeInputs = with pkgs; [zip unzip gnutar p7zip]; + text = readFile ./bin/extract.sh; + }); + }; + }; + }; +} diff --git a/flake.lock b/flake.lock index 274b86c2..cc1fe47d 100644 --- a/flake.lock +++ b/flake.lock @@ -61,11 +61,11 @@ ] }, "locked": { - "lastModified": 1725753098, - "narHash": "sha256-/NO/h/qD/eJXAQr/fHA4mdDgYsNT9thHQ+oT6KPi2ac=", + "lastModified": 1726665257, + "narHash": "sha256-rEzEZtd3iyVo5RJ1OGujOlnywNf3gsrOnjAn1NLciD4=", "owner": "hyprwm", "repo": "aquamarine", - "rev": "e4a13203112a036fc7f437d391c7810f3dd5ab52", + "rev": "752d0fbd141fabb5a1e7f865199b80e6e76f8d8e", "type": "github" }, "original": { @@ -99,12 +99,12 @@ "nixpkgs": "nixpkgs_3" }, "locked": { - "lastModified": 1726403681, - "narHash": "sha256-G922au3LygfpO+4CsAzQmtlg+KXjx8dSwehDwkCFMjQ=", - "rev": "68d822079a1b3e31db3cf1e30e32a69b46e6dfa3", - "revCount": 1410, + "lastModified": 1726859881, + "narHash": "sha256-ZSgYPiOsa0RdaHOxBq19bqUglBv02Gt/O/Wbgkj5+vU=", + "rev": "404cdbe22e3b2c24df554bf835a866a2e6e41f83", + "revCount": 1418, "type": "tarball", - "url": "https://api.flakehub.com/f/pinned/chaotic-cx/nyx/0.1.1410%2Brev-68d822079a1b3e31db3cf1e30e32a69b46e6dfa3/0191f5b2-5f56-7a06-812a-494b53bfb812/source.tar.gz?rev=68d822079a1b3e31db3cf1e30e32a69b46e6dfa3&revCount=1410" + "url": "https://api.flakehub.com/f/pinned/chaotic-cx/nyx/0.1.1418%2Brev-404cdbe22e3b2c24df554bf835a866a2e6e41f83/019210e3-5112-74cb-9c12-5f42d274a50f/source.tar.gz?rev=404cdbe22e3b2c24df554bf835a866a2e6e41f83&revCount=1418" }, "original": { "type": "tarball", @@ -205,11 +205,11 @@ "rust-analyzer-src": "rust-analyzer-src" }, "locked": { - "lastModified": 1726230467, - "narHash": "sha256-YyMNF7IFyysZ2KeqEO6AmV3nQeaDSxyNXLdHp1ghO60=", + "lastModified": 1726468443, + "narHash": "sha256-O1VcbVBrqIf58U05yFXl9+J7XM2qh0I+7vqMbNwZPq0=", "owner": "nix-community", "repo": "fenix", - "rev": "43efa7a3a97f290441bd75b18defcd4f7b8df220", + "rev": "effac20e9560aab202e82b6d833f685163a9c138", "type": "github" }, "original": { @@ -226,11 +226,11 @@ "rust-analyzer-src": "rust-analyzer-src_2" }, "locked": { - "lastModified": 1726381916, - "narHash": "sha256-/ybEGP0EyalM6UNe8hnx/SqcGtey+UMtKKOy1sCpX7I=", + "lastModified": 1726900127, + "narHash": "sha256-v3r7yJY8YE4HAzD5DXOxLkzj8YZKQ0xuccp9yppGW1U=", "owner": "nix-community", "repo": "fenix", - "rev": "3ade5be29c0ed4f5aeb93d9293a2b5bad62f1d1c", + "rev": "18eefba7fd0bf03e115785948758a44125a9fd68", "type": "github" }, "original": { @@ -239,29 +239,6 @@ "type": "github" } }, - "firefox-addons": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "dir": "pkgs/firefox-addons", - "lastModified": 1726372998, - "narHash": "sha256-JPFENJ3kiEm06AhXLM6lZGQ1EJSwVwJQcdM/6PFqMRs=", - "owner": "rycee", - "repo": "nur-expressions", - "rev": "e8d764f10084bb5ba96300adbb9b3e82550347e9", - "type": "gitlab" - }, - "original": { - "dir": "pkgs/firefox-addons", - "owner": "rycee", - "repo": "nur-expressions", - "type": "gitlab" - } - }, "firefox-nightly": { "inputs": { "cachix": "cachix", @@ -273,11 +250,11 @@ ] }, "locked": { - "lastModified": 1726362895, - "narHash": "sha256-I4fEe6Qx+BTcc202zAy0R07a02vTV328UQXOIWLUjwY=", + "lastModified": 1726921930, + "narHash": "sha256-ZkWbcsOlZYjTzgUjL5ac5qXidgb/s2hk++p1UsZUpSc=", "owner": "nix-community", "repo": "flake-firefox-nightly", - "rev": "e2196acad3e466b26cb1bb03b9c93513ee5397b8", + "rev": "c193460a0cc5ccee98a5d1e09b869ad3fd201bb9", "type": "github" }, "original": { @@ -397,7 +374,7 @@ "flake-parts_4": { "inputs": { "nixpkgs-lib": [ - "runix", + "tuirun", "nixpkgs" ] }, @@ -430,12 +407,15 @@ } }, "flake-utils": { + "inputs": { + "systems": "systems_3" + }, "locked": { - "lastModified": 1629284811, - "narHash": "sha256-JHgasjPR0/J1J3DRm4KxM4zTyAj4IOJY8vIl75v/kPI=", + "lastModified": 1726560853, + "narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=", "owner": "numtide", "repo": "flake-utils", - "rev": "c5d161cc0af116a2e17f54316f0bf43f0819785c", + "rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a", "type": "github" }, "original": { @@ -446,14 +426,16 @@ }, "flake-utils_2": { "inputs": { - "systems": "systems_3" + "systems": [ + "systems" + ] }, "locked": { - "lastModified": 1710146030, - "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", + "lastModified": 1726560853, + "narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=", "owner": "numtide", "repo": "flake-utils", - "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", + "rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a", "type": "github" }, "original": { @@ -463,26 +445,6 @@ } }, "flake-utils_3": { - "inputs": { - "systems": [ - "systems" - ] - }, - "locked": { - "lastModified": 1710146030, - "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "flake-utils_4": { "inputs": { "systems": "systems_4" }, @@ -500,7 +462,7 @@ "type": "github" } }, - "flake-utils_5": { + "flake-utils_4": { "inputs": { "systems": "systems_5" }, @@ -518,7 +480,7 @@ "type": "github" } }, - "flake-utils_6": { + "flake-utils_5": { "inputs": { "systems": "systems_9" }, @@ -577,11 +539,11 @@ }, "hardware": { "locked": { - "lastModified": 1725885300, - "narHash": "sha256-5RLEnou1/GJQl+Wd+Bxaj7QY7FFQ9wjnFq1VNEaxTmc=", + "lastModified": 1726905744, + "narHash": "sha256-xyNtG5C+xvfsnOVEamFe9zCCnuNwk93K/TlFC/4DmCI=", "owner": "nixos", "repo": "nixos-hardware", - "rev": "166dee4f88a7e3ba1b7a243edb1aca822f00680e", + "rev": "b493dfd4a8cf9552932179e56ff3b5819a9b8381", "type": "github" }, "original": { @@ -610,7 +572,7 @@ "helix": { "inputs": { "crane": "crane", - "flake-utils": "flake-utils_4", + "flake-utils": "flake-utils_3", "nixpkgs": "nixpkgs_4", "rust-overlay": "rust-overlay" }, @@ -632,16 +594,16 @@ "helix-flake": { "inputs": { "crane": "crane_2", - "flake-utils": "flake-utils_5", + "flake-utils": "flake-utils_4", "nixpkgs": "nixpkgs_5", "rust-overlay": "rust-overlay_2" }, "locked": { - "lastModified": 1726394915, - "narHash": "sha256-guDSphIBbkUGI9LQDAls4PUDDJFl9URC0EAUKb+sjks=", + "lastModified": 1726939561, + "narHash": "sha256-C422Sr2hjzHDRBAtDZNte1mJ6723KTQUOVfvtDsKMp0=", "owner": "helix-editor", "repo": "helix", - "rev": "5ce77de0dc7106c6f1460d80a3c5a51eaea3108c", + "rev": "d6eb10d9f907139597ededa38a2cab44b26f5da6", "type": "github" }, "original": { @@ -682,11 +644,11 @@ ] }, "locked": { - "lastModified": 1726357542, - "narHash": "sha256-p4OrJL2weh0TRtaeu1fmNYP6+TOp/W2qdaIJxxQay4c=", + "lastModified": 1726902823, + "narHash": "sha256-Gkc7pwTVLKj4HSvRt8tXNvosl8RS9hrBAEhOjAE0Tt4=", "owner": "nix-community", "repo": "home-manager", - "rev": "e524c57b1fa55d6ca9d8354c6ce1e538d2a1f47f", + "rev": "14929f7089268481d86b83ed31ffd88713dcd415", "type": "github" }, "original": { @@ -724,11 +686,11 @@ ] }, "locked": { - "lastModified": 1726222338, - "narHash": "sha256-KuA8ciNR8qCF3dQaCaeh0JWyQUgEwkwDHr/f49Q5/e8=", + "lastModified": 1726440980, + "narHash": "sha256-ChhIrjtdu5d83W+YDRH+Ec5g1MmM0xk6hJnkz15Ot7M=", "owner": "nix-community", "repo": "home-manager", - "rev": "503af483e1b328691ea3a434d331995595fb2e3d", + "rev": "a9c9cc6e50f7cbd2d58ccb1cd46a1e06e9e445ff", "type": "github" }, "original": { @@ -811,11 +773,11 @@ "xdph": "xdph" }, "locked": { - "lastModified": 1726353438, - "narHash": "sha256-DLSpQXNt6LLkhREYrnhU+/XrfDNiSN41iD575ua9+yA=", + "lastModified": 1726918033, + "narHash": "sha256-I0U4OLssUlNd6/KXHwErmgmYZURTJYJNHbeoKaMH4iI=", "ref": "refs/heads/main", - "rev": "e74efd87e5aa38f9cf84cb3848ee1ab26e5e4bcb", - "revCount": 5221, + "rev": "8579066c7a1ceb745499ea4e11d5d420b1387ec0", + "revCount": 5246, "submodules": true, "type": "git", "url": "https://github.com/hyprwm/Hyprland" @@ -982,11 +944,11 @@ ] }, "locked": { - "lastModified": 1724966483, - "narHash": "sha256-WXDgKIbzjYKczxSZOsJplCS1i1yrTUpsDPuJV/xpYLo=", + "lastModified": 1726874949, + "narHash": "sha256-PNnIpwGqpTvMU3N2r0wMQwK1E+t4Bb5fbJwblQvr+80=", "owner": "hyprwm", "repo": "hyprutils", - "rev": "8976e3f6a5357da953a09511d0c7f6a890fb6ec2", + "rev": "d97af4f6bd068c03a518b597675e598f57ea2291", "type": "github" }, "original": { @@ -1007,11 +969,11 @@ ] }, "locked": { - "lastModified": 1721324119, - "narHash": "sha256-SOOqIT27/X792+vsLSeFdrNTF+OSRp5qXv6Te+fb2Qg=", + "lastModified": 1726840673, + "narHash": "sha256-HIPEXyRRVZoqD6U+lFS1B0tsIU7p83FaB9m7KT/x6mQ=", "owner": "hyprwm", "repo": "hyprwayland-scanner", - "rev": "a048a6cb015340bd82f97c1f40a4b595ca85cc30", + "rev": "b68dab23fc922eae99306988133ee80a40b39ca5", "type": "github" }, "original": { @@ -1092,15 +1054,15 @@ }, "lib-aggregate": { "inputs": { - "flake-utils": "flake-utils_2", + "flake-utils": "flake-utils", "nixpkgs-lib": "nixpkgs-lib" }, "locked": { - "lastModified": 1725797487, - "narHash": "sha256-1NqTS6PePeoLVH8UY6poIoxlNq1Hhgn7RZs+OT8b2wQ=", + "lastModified": 1726600542, + "narHash": "sha256-4ZP8rYtad1Z0LY3vZ1eYSRUzqPd3x7K0j7SpP3vReWc=", "owner": "nix-community", "repo": "lib-aggregate", - "rev": "3c180ce6583583285ef1b105cbc1667ba00c3e8d", + "rev": "e0cc0b05b0296fdc52fa683d47a3470dfe4f79ea", "type": "github" }, "original": { @@ -1171,11 +1133,11 @@ "umu": "umu" }, "locked": { - "lastModified": 1726364380, - "narHash": "sha256-hICWlRKF1lOzRwTepJORe9hWYGkUVXJxKjTe5P5CSg0=", + "lastModified": 1726853411, + "narHash": "sha256-+R8HmKGNV2PKUTmCyLKQeDCCpUqur23ucKR63M2SWAQ=", "owner": "fufexan", "repo": "nix-gaming", - "rev": "3e51c9884bca93625ff1deca440e30c8d2f2e522", + "rev": "7ea77f2f1cd535c4d952128b349eca0b8a16d196", "type": "github" }, "original": { @@ -1218,11 +1180,11 @@ ] }, "locked": { - "lastModified": 1726108208, - "narHash": "sha256-kMjJvLNMtjxlBP2NooPSuhGzp3Q+xPeFwzrknOsdl9k=", + "lastModified": 1726712596, + "narHash": "sha256-tNTWTSTA5wcvr6omoJD1aIaLltGGFoxlAbX5+ODh7vA=", "owner": "nixpak", "repo": "nixpak", - "rev": "2e2d0b7e0fb18c49b585f8ad77c3a64fa819bf93", + "rev": "63f92325d2bcf40c57ce70f9621cd33b3eb2c9c5", "type": "github" }, "original": { @@ -1249,11 +1211,11 @@ }, "nixpkgs-lib": { "locked": { - "lastModified": 1725757153, - "narHash": "sha256-c1a6iLmCVPFI9EUVMrBN8xdmFxFXEjcVwiTSVmqajOs=", + "lastModified": 1726362065, + "narHash": "sha256-4h15WKdrs9zf6DGaeeV7ntU/pHHGkH6geYt1QBW0CP4=", "owner": "nix-community", "repo": "nixpkgs.lib", - "rev": "68584f89dd0eb16fea5d80ae127f3f681f6a5df7", + "rev": "9db4db09d82e4b2207bfa7f1e747a4f49d214555", "type": "github" }, "original": { @@ -1264,11 +1226,11 @@ }, "nixpkgs-small": { "locked": { - "lastModified": 1726392453, - "narHash": "sha256-7jEyfAC/Osn5XOkicbL5Xzng71qYb+u1hc1GrNs86Mo=", + "lastModified": 1726929174, + "narHash": "sha256-MbKM2df9xF9USr9uuOaB6p1s1ZzFzLZGIIifD3BTTWg=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "1f3227d4dd63a5307830bd521b24a05ca741531a", + "rev": "eca2693230fe59318102f3726d2da305312c04a4", "type": "github" }, "original": { @@ -1296,11 +1258,11 @@ }, "nixpkgs_10": { "locked": { - "lastModified": 1726062873, - "narHash": "sha256-IiA3jfbR7K/B5+9byVi9BZGWTD4VSbWe8VLpp9B/iYk=", + "lastModified": 1726755586, + "narHash": "sha256-PmUr/2GQGvFTIJ6/Tvsins7Q43KTMvMFhvG6oaYK+Wk=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "4f807e8940284ad7925ebd0a0993d2a1791acb2f", + "rev": "c04d5652cfa9742b1d519688f65d1bbccea9eb7e", "type": "github" }, "original": { @@ -1328,11 +1290,11 @@ }, "nixpkgs_3": { "locked": { - "lastModified": 1726062873, - "narHash": "sha256-IiA3jfbR7K/B5+9byVi9BZGWTD4VSbWe8VLpp9B/iYk=", + "lastModified": 1726755586, + "narHash": "sha256-PmUr/2GQGvFTIJ6/Tvsins7Q43KTMvMFhvG6oaYK+Wk=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "4f807e8940284ad7925ebd0a0993d2a1791acb2f", + "rev": "c04d5652cfa9742b1d519688f65d1bbccea9eb7e", "type": "github" }, "original": { @@ -1376,11 +1338,11 @@ }, "nixpkgs_6": { "locked": { - "lastModified": 1725983898, - "narHash": "sha256-4b3A9zPpxAxLnkF9MawJNHDtOOl6ruL0r6Og1TEDGCE=", + "lastModified": 1726755586, + "narHash": "sha256-PmUr/2GQGvFTIJ6/Tvsins7Q43KTMvMFhvG6oaYK+Wk=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "1355a0cbfeac61d785b7183c0caaec1f97361b43", + "rev": "c04d5652cfa9742b1d519688f65d1bbccea9eb7e", "type": "github" }, "original": { @@ -1423,11 +1385,11 @@ }, "nixpkgs_9": { "locked": { - "lastModified": 1726243404, - "narHash": "sha256-sjiGsMh+1cWXb53Tecsm4skyFNag33GPbVgCdfj3n9I=", + "lastModified": 1726755586, + "narHash": "sha256-PmUr/2GQGvFTIJ6/Tvsins7Q43KTMvMFhvG6oaYK+Wk=", "owner": "nixos", "repo": "nixpkgs", - "rev": "345c263f2f53a3710abe117f28a5cb86d0ba4059", + "rev": "c04d5652cfa9742b1d519688f65d1bbccea9eb7e", "type": "github" }, "original": { @@ -1437,6 +1399,21 @@ "type": "github" } }, + "nur": { + "locked": { + "lastModified": 1726950640, + "narHash": "sha256-VpU1v3QSxzwYLIQ9a9nRvSB1h3FlZzX7PYkgbQIacV0=", + "owner": "nix-community", + "repo": "NUR", + "rev": "e0592ed4327a65f23f3d9ab73a08417ae5853747", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "NUR", + "type": "github" + } + }, "pre-commit-hooks-nix": { "inputs": { "flake-compat": [ @@ -1470,11 +1447,10 @@ "anyrun": "anyrun", "chaotic": "chaotic", "fenix": "fenix_2", - "firefox-addons": "firefox-addons", "firefox-nightly": "firefox-nightly", "flake-compat": "flake-compat_2", "flake-parts": "flake-parts_2", - "flake-utils": "flake-utils_3", + "flake-utils": "flake-utils_2", "hardware": "hardware", "helix": "helix", "helix-flake": "helix-flake", @@ -1490,39 +1466,20 @@ "nixpak": "nixpak", "nixpkgs": "nixpkgs_9", "nixpkgs-small": "nixpkgs-small", - "runix": "runix", - "systems": "systems_8", + "nur": "nur", + "systems": "systems_7", + "tuirun": "tuirun", "wezterm": "wezterm" } }, - "runix": { - "inputs": { - "flake-parts": "flake-parts_4", - "nixpkgs": "nixpkgs_10", - "systems": "systems_7" - }, - "locked": { - "lastModified": 1726413442, - "narHash": "sha256-vnuV8eKEO2/MgcxR1G8D3iIEa83SKlbrQpsEAKUYRpc=", - "ref": "refs/heads/main", - "rev": "ac4002abb28571f367264b176cf13b11e7aa406a", - "revCount": 5, - "type": "git", - "url": "https://git.sr.ht/~canasta/runix" - }, - "original": { - "type": "git", - "url": "https://git.sr.ht/~canasta/runix" - } - }, "rust-analyzer-src": { "flake": false, "locked": { - "lastModified": 1725985110, - "narHash": "sha256-0HKj+JI6rtxaE6Kzcd6HyFNbEFJRsLy5DoNgVF1pyRM=", + "lastModified": 1726443025, + "narHash": "sha256-nCmG4NJpwI0IoIlYlwtDwVA49yuspA2E6OhfCOmiArQ=", "owner": "rust-lang", "repo": "rust-analyzer", - "rev": "bcc708992104c2059f310fbc3ac00bfc377f9ea8", + "rev": "94b526fc86eaa0e90fb4d54a5ba6313aa1e9b269", "type": "github" }, "original": { @@ -1535,11 +1492,11 @@ "rust-analyzer-src_2": { "flake": false, "locked": { - "lastModified": 1726220668, - "narHash": "sha256-0Cb2bK2eyZ1njSX3593USMlcrj94VZprNN1/HllIfgw=", + "lastModified": 1726443025, + "narHash": "sha256-nCmG4NJpwI0IoIlYlwtDwVA49yuspA2E6OhfCOmiArQ=", "owner": "rust-lang", "repo": "rust-analyzer", - "rev": "4221354a8fe90ea8218d3757d14735eac08d3e81", + "rev": "94b526fc86eaa0e90fb4d54a5ba6313aa1e9b269", "type": "github" }, "original": { @@ -1776,6 +1733,26 @@ "type": "github" } }, + "tuirun": { + "inputs": { + "flake-parts": "flake-parts_4", + "nixpkgs": "nixpkgs_10", + "systems": "systems_8" + }, + "locked": { + "lastModified": 1726953225, + "narHash": "sha256-Q9vQ+sEup4QbyoMYkz1hQ8Yti0nKZVPn+vVX0EpLoH0=", + "ref": "refs/heads/main", + "rev": "b283f82663e4a25d40da102481be7b1c9c88e354", + "revCount": 20, + "type": "git", + "url": "https://git.sr.ht/~canasta/tuirun" + }, + "original": { + "type": "git", + "url": "https://git.sr.ht/~canasta/tuirun" + } + }, "umu": { "inputs": { "nixpkgs": [ @@ -1785,11 +1762,11 @@ }, "locked": { "dir": "packaging/nix", - "lastModified": 1726301236, - "narHash": "sha256-0JQH9RYdGL1NUaQE5syA/SmbxuZ6NTLn3FduapSXUXA=", + "lastModified": 1726768365, + "narHash": "sha256-5yQJ3krsZioC+Nim4/oaOjKp3CXFWolTFMpXnUBcYtE=", "ref": "refs/heads/main", - "rev": "e06443981e3bf09cbc70aaffe245e4a03f1a6df7", - "revCount": 715, + "rev": "e42043a26639cfb69d14c6945ecdebe2bb3c42fc", + "revCount": 727, "submodules": true, "type": "git", "url": "https://github.com/Open-Wine-Components/umu-launcher/" @@ -1803,7 +1780,7 @@ }, "wezterm": { "inputs": { - "flake-utils": "flake-utils_6", + "flake-utils": "flake-utils_5", "freetype2": "freetype2", "harfbuzz": "harfbuzz", "libpng": "libpng", @@ -1815,11 +1792,11 @@ }, "locked": { "dir": "nix", - "lastModified": 1726405016, - "narHash": "sha256-U0hJ4RqzyIi8EqTTA7twkvnyXVgoKnvpIfBoIAdH0FE=", + "lastModified": 1726951933, + "narHash": "sha256-YM4u7EPmcps3ObGTj7Qcfa6SNIGK7W3dFIBBtPMJ6SY=", "owner": "wez", "repo": "wezterm", - "rev": "09ac8c53777ac6de61b757292f5dc4da80322bbd", + "rev": "9d4a145303fe44d4ee49a330bdd053bf3fc1197d", "type": "github" }, "original": { @@ -1837,6 +1814,14 @@ "hyprland", "hyprlang" ], + "hyprutils": [ + "hyprland", + "hyprutils" + ], + "hyprwayland-scanner": [ + "hyprland", + "hyprwayland-scanner" + ], "nixpkgs": [ "hyprland", "nixpkgs" @@ -1847,11 +1832,11 @@ ] }, "locked": { - "lastModified": 1726046979, - "narHash": "sha256-6SEsjurq9cdTkITA6d49ncAJe4O/8CgRG5/F//s6Xh8=", + "lastModified": 1726851729, + "narHash": "sha256-1z0esr5lBeUMlrPZ9gZmqZT8oTQekxJi53HAW4cH0Ms=", "owner": "hyprwm", "repo": "xdg-desktop-portal-hyprland", - "rev": "e695669fd8e1d1be9eaae40f35e00f8bd8b64c18", + "rev": "73b8c4f1150040644cf678aa8bbf2cec48a433cf", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 437c65b3..88c03100 100644 --- a/flake.nix +++ b/flake.nix @@ -111,10 +111,7 @@ inputs.nixpkgs.follows = "nixpkgs"; }; - firefox-addons = { - url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons"; - inputs.nixpkgs.follows = "nixpkgs"; - }; + nur.url = "github:nix-community/NUR"; anyrun.url = "github:anyrun-org/anyrun"; microfetch.url = "github:NotAShelf/microfetch"; @@ -132,6 +129,6 @@ }; # Custom apps - runix.url = "git+https://git.sr.ht/~canasta/runix"; + tuirun.url = "git+https://git.sr.ht/~canasta/tuirun"; }; } diff --git a/home/default.nix b/home/default.nix index 2642ed0f..f527cd07 100644 --- a/home/default.nix +++ b/home/default.nix @@ -10,6 +10,7 @@ sharedImports = [ ./modules ./etc + "${self}/.scripts" ]; # Define homeImports for each user, including sharedImports diff --git a/home/modules/browsers/firefox/default.nix b/home/modules/browsers/firefox/default.nix index a64e07d3..fe49fc4f 100644 --- a/home/modules/browsers/firefox/default.nix +++ b/home/modules/browsers/firefox/default.nix @@ -8,6 +8,9 @@ inherit (lib) mkIf mkEnableOption; cfg = config.modules.browsers.firefox; in { + imports = [ + inputs.nur.hmModules.nur + ]; options = { modules.browsers.firefox.enable = mkEnableOption "Enables firefox"; }; @@ -24,10 +27,12 @@ in { order = ["DuckDuckGo" "Google"]; }; bookmarks = {}; - extensions = with inputs.firefox-addons.packages.${pkgs.system}; [ + extensions = with config.nur.repos.rycee.firefox-addons; [ ublock-origin sponsorblock clearurls + swedish-dictionary + reddit-enhancement-suite return-youtube-dislikes # enhancer-for-youtube # unfree ]; diff --git a/home/modules/default.nix b/home/modules/default.nix index 95fdfda2..43e6cd4f 100644 --- a/home/modules/default.nix +++ b/home/modules/default.nix @@ -22,7 +22,8 @@ "${userModules}/utils/waybar" "${userModules}/utils/yazi" "${userModules}/utils/zathura" - "${userModules}/utils/runix" + "${userModules}/utils/tuirun" + "${userModules}/utils/eza" "${userModules}/wm/hyprland" "${userModules}/wm/utils/hypridle" "${userModules}/wm/utils/hyprlock" diff --git a/home/modules/devtools/neovim/default.nix b/home/modules/devtools/neovim/default.nix index f5e80b89..7797af13 100644 --- a/home/modules/devtools/neovim/default.nix +++ b/home/modules/devtools/neovim/default.nix @@ -90,14 +90,6 @@ in { group = "fix_size", }) - -- Optionally, set up a command or auto-command to format on save - vim.api.nvim_create_autocmd("BufWritePre", { - pattern = "*", - callback = function() - require("conform").format() - end, - }) - -- Highlight when yanking (copying) text vim.api.nvim_create_autocmd("TextYankPost", { desc = "Highlight when yanking (copying) text", diff --git a/home/modules/devtools/neovim/plugins/conform.nix b/home/modules/devtools/neovim/plugins/conform.nix index c68c8af8..d8fb6af6 100644 --- a/home/modules/devtools/neovim/plugins/conform.nix +++ b/home/modules/devtools/neovim/plugins/conform.nix @@ -11,9 +11,9 @@ require("conform").setup({ default_format_opts = { timeout_ms = 3000, - async = false, - quiet = false, - lsp_format = "fallback", + async = false, -- not recommended to change + quiet = false, -- not recommended to change + lsp_format = "fallback", -- not recommended to change }, formatters_by_ft = { bash = { "shfmt" }, @@ -23,7 +23,7 @@ json = { "fixjson" }, lua = { "stylua" }, nix = { "alejandra" }, - php = { "php_cs_fixer" }, + php = { "php_cs_fixer" }, python = { "black" }, rust = { "rustfmt" }, sh = { "shfmt" }, @@ -33,6 +33,14 @@ ["*"] = { "injected" }, }, }) + + -- Optionally, set up a command or auto-command to format on save + vim.api.nvim_create_autocmd("BufWritePre", { + pattern = "*", + callback = function() + require("conform").format() + end, + }) ''; } ]; diff --git a/home/modules/terminal/alacritty/default.nix b/home/modules/terminal/alacritty/default.nix index b0b011fc..692aef1f 100644 --- a/home/modules/terminal/alacritty/default.nix +++ b/home/modules/terminal/alacritty/default.nix @@ -43,7 +43,7 @@ in { }; }; font = { - size = 10; + size = 12; normal = { family = "Input Mono Compressed"; style = "Light"; diff --git a/home/modules/utils/eza/default.nix b/home/modules/utils/eza/default.nix new file mode 100644 index 00000000..2a22dd6b --- /dev/null +++ b/home/modules/utils/eza/default.nix @@ -0,0 +1,24 @@ +{ + config, + lib, + ... +}: let + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.utils.eza; +in { + options = { + modules.utils.eza.enable = mkEnableOption "Enables eza"; + }; + config = mkIf cfg.enable { + programs.eza = { + enable = true; + icons = true; + git = true; + enableZshIntegration = false; + extraOptions = [ + "--group-directories-first" + "--header" + ]; + }; + }; +} diff --git a/home/modules/utils/misc/default.nix b/home/modules/utils/misc/default.nix index eaac001f..5f9bc6f7 100644 --- a/home/modules/utils/misc/default.nix +++ b/home/modules/utils/misc/default.nix @@ -43,6 +43,7 @@ in { pavucontrol # GUI sound control qbittorrent usbimager # write bootable usb images! + slurp # select region for screenshot # misc.tui ranger xcur2png @@ -52,7 +53,11 @@ in { hyprpicker # Color picker libnotify pamixer # TUI sound control - slurp # select region for screenshot + ripgrep + file + fd + gnused + nix-tree # misc.system adwaita-icon-theme qt5.qtwayland @@ -62,6 +67,10 @@ in { wpa_supplicant xfce.thunar-archive-plugin xfce.thunar-volman + unzip + zip + gnutar + p7zip ]; }; } diff --git a/home/modules/utils/runix/default.nix b/home/modules/utils/runix/default.nix deleted file mode 100644 index 3509bbed..00000000 --- a/home/modules/utils/runix/default.nix +++ /dev/null @@ -1,21 +0,0 @@ -{ - inputs, - config, - lib, - ... -}: let - inherit (lib) mkIf mkEnableOption; - cfg = config.modules.utils.runix; -in { - imports = [ - inputs.runix.homeManagerModules.default - ]; - options = { - modules.utils.runix.enable = mkEnableOption "Enables runix"; - }; - config = mkIf cfg.enable { - programs.runix = { - enable = true; - }; - }; -} diff --git a/home/modules/utils/tuirun/default.nix b/home/modules/utils/tuirun/default.nix new file mode 100644 index 00000000..b939f886 --- /dev/null +++ b/home/modules/utils/tuirun/default.nix @@ -0,0 +1,38 @@ +{ + inputs, + config, + lib, + pkgs, + ... +}: let + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.utils.tuirun; +in { + imports = [ + inputs.tuirun.homeManagerModules.default + ]; + options = { + modules.utils.tuirun.enable = mkEnableOption "Enables tuirun"; + }; + config = mkIf cfg.enable { + programs.tuirun = { + enable = true; + config = { + plugins = with inputs.tuirun.packages.${pkgs.system}; [ + runner + ]; + closeOnClick = true; + cursor = "Underscore"; + }; + extraConfigFiles = { + "runner.ron".text = '' + Config( + desktop_actions: false, + terminal: Some("foot"), + max_entries: 5, + ) + ''; + }; + }; + }; +} diff --git a/home/modules/wm/hyprland/cnst/keybinds.nix b/home/modules/wm/hyprland/cnst/keybinds.nix index e1c61c1f..fccc1be1 100644 --- a/home/modules/wm/hyprland/cnst/keybinds.nix +++ b/home/modules/wm/hyprland/cnst/keybinds.nix @@ -13,7 +13,7 @@ term = if osConfig.networking.hostName == "cnixpad" then "alacritty" - else "wezterm"; + else "alacritty"; cfg = config.modules.wm.hyprland.cnst.keybinds; in { options = { @@ -29,7 +29,7 @@ in { "$browser" = "firefox"; "$browserinc" = "firefox --private-window"; "$yazi" = "wezterm -e yazi"; - "$runix" = "runix.sh"; + "$tuirun" = "tuirun-toggle.sh"; # See https://wiki.hyprland.org/Configuring/Keywords/ for more "$mod" = modKey; @@ -52,7 +52,7 @@ in { #bind = $mod, M, exec, hyprctl dispatch exit #bind = $mod, E, exec, $fileManager "$mod, E, exec, $fileManager" - "$mod, r, exec, $runix" + "$mod, r, exec, $tuirun" "$mod SHIFT, E, exec, $yazi" "$mod, F, fullscreen," "$mod SHIFT, F, togglefloating," diff --git a/home/modules/wm/hyprland/cnst/rules.nix b/home/modules/wm/hyprland/cnst/rules.nix index f2a45c44..9d173d40 100644 --- a/home/modules/wm/hyprland/cnst/rules.nix +++ b/home/modules/wm/hyprland/cnst/rules.nix @@ -16,10 +16,11 @@ in { "float,initialTitle:(floatcal)" "size 843 650,initialTitle:(floatcal)" "move 100%-w-20 40,initialTitle:(floatcal)" - "float,initialTitle:(runix)" - "size 600 400,initialTitle:(runix)" - "center,initialTitle:(runix)" - "workspace special:runix,initialTitle:(runix)" + "float,initialTitle:(tuirun)" + "size 600 300,initialTitle:(tuirun)" + "center,initialTitle:(tuirun)" + # "workspace special:tuirun,initialTitle:(tuirun)" + "noborder,initialTitle:(tuirun)" #windowrulev2 = move 1708 32,class:(floatcal) "float,class:(org.keepassxc.KeePassXC)" "size 843 500,class:(org.keepassxc.KeePassXC)" diff --git a/home/modules/wm/hyprland/toothpick/keybinds.nix b/home/modules/wm/hyprland/toothpick/keybinds.nix index c63f7ed8..0727c1c7 100644 --- a/home/modules/wm/hyprland/toothpick/keybinds.nix +++ b/home/modules/wm/hyprland/toothpick/keybinds.nix @@ -15,7 +15,7 @@ in { "$terminal" = "foot"; "$fileManager" = "thunar"; "$passwordManager" = "keepassxc"; - "$runix" = "runix.sh"; + "$tuirun" = "tuirun-toggle.sh"; "$menu" = "pkill anyrun || anyrun | xargs hyprctl dispatch exec --"; "$menuw" = "pkill anyrun || anyrun | xargs hyprctl dispatch exec --"; "$browser" = "firefox"; @@ -46,7 +46,7 @@ in { "$mod SHIFT, E, exec, $ranger" "$mod, F, fullscreen," "$mod SHIFT, F, togglefloating," - "$mod, SPACE, exec, $runix" + "$mod, SPACE, exec, $tuirun" "$mod, P, pseudo," # dwindle "$mod, J, togglesplit," # dwindle "$mod, C, exec, hyprctl dispatch exec copyq toggle" diff --git a/home/modules/wm/hyprland/toothpick/rules.nix b/home/modules/wm/hyprland/toothpick/rules.nix index 8258b7db..3270cd5c 100644 --- a/home/modules/wm/hyprland/toothpick/rules.nix +++ b/home/modules/wm/hyprland/toothpick/rules.nix @@ -16,11 +16,12 @@ in { "float,initialTitle:(floatcal)" "size 843 650,initialTitle:(floatcal)" "move 100%-w-20 40,initialTitle:(floatcal)" + "float,initialTitle:(tuirun)" + "size 600 300,initialTitle:(tuirun)" + "center,initialTitle:(tuirun)" + # "workspace special:tuirun,initialTitle:(tuirun)" + "noborder,initialTitle:(tuirun)" #windowrulev2 = move 1708 32,class:(floatcal) - "float,initialTitle:(runix)" - "size 600 400,initialTitle:(runix)" - "center,initialTitle:(runix)" - "workspace special:runix,initialTitle:(runix)" "float,class:(org.keepassxc.KeePassXC)" "size 843 500,class:(org.keepassxc.KeePassXC)" "move 100%-w-20 40,class:(org.keepassxc.KeePassXC)" diff --git a/home/users/cnst/default.nix b/home/users/cnst/default.nix index f953d3e4..d3b8f45f 100644 --- a/home/users/cnst/default.nix +++ b/home/users/cnst/default.nix @@ -5,13 +5,14 @@ ... }: let isCnixpad = osConfig.networking.hostName == "cnixpad"; - in { - imports = [ +in { + imports = + [ ./modules.nix ./git.nix ./shell.nix ] - ++ lib.optionals isCnixpad [ ./cpmodules.nix ]; + ++ lib.optionals isCnixpad [./cpmodules.nix]; home = { username = "cnst"; homeDirectory = "/home/cnst"; @@ -21,6 +22,7 @@ # misc.system bun ]; + sessionVariables = { BROWSER = "firefox"; EDITOR = "hx"; diff --git a/home/users/cnst/modules.nix b/home/users/cnst/modules.nix index 2b179ccf..6997e5e6 100644 --- a/home/users/cnst/modules.nix +++ b/home/users/cnst/modules.nix @@ -43,7 +43,7 @@ enable = true; }; wezterm = { - enable = true; + enable = false; }; zellij = { enable = false; @@ -76,12 +76,15 @@ zathura = { enable = true; }; - runix = { + tuirun = { enable = true; }; misc = { enable = true; }; + eza = { + enable = true; + }; }; wm = { hyprland = { diff --git a/home/users/cnst/shell.nix b/home/users/cnst/shell.nix index d7821ccf..301049a7 100644 --- a/home/users/cnst/shell.nix +++ b/home/users/cnst/shell.nix @@ -1,4 +1,12 @@ -{config, ...}: { +{ + config, + pkgs, + lib, + ... +}: let + inherit (lib.meta) getExe; + inherit (pkgs) eza bat; +in { programs.zsh = { enable = true; dotDir = ".config/zsh"; @@ -7,11 +15,17 @@ syntaxHighlighting.enable = true; shellAliases = { + cat = "${getExe bat} --style=plain"; + ls = "${getExe eza} -h --git --icons --color=auto --group-directories-first -s extension"; + la = "${getExe eza} -lah --tree"; + tree = "${getExe eza} --tree --icons=always"; + extract = "extract.sh"; usermodules = "$EDITOR /home/$USER/.nix-config/home/users/$USER/modules.nix"; umod = "$EDITOR /home/$USER/.nix-config/home/users/$USER/modules.nix"; systemmodules = "$EDITOR /home/$USER/.nix-config/hosts/$HOST/modules.nix"; smod = "$EDITOR /home/$USER/.nix-config/hosts/$HOST/modules.nix"; - nixclean = "sudo nix run /home/$USER/.nix-config#cleanup-boot"; + nixcleanboot = "sudo nix run /home/$USER/.nix-config#cleanup-boot"; + nixclean = "sudo nix-collect-garbage --delete-older-than 3d && nix-collect-garbage -d"; nixdev = "nix develop ~/.nix-config -c $SHELL"; nixconfig = "cd /home/$USER/.nix-config/"; ll = "ls -l"; @@ -19,6 +33,11 @@ nixup = "nh os switch -H $HOST && sudo nix run /home/$USER/.nix-config#cleanup-boot"; flakeupdate = "nh os switch -u -v -H $HOST && sudo nix run /home/$USER/.nix-config#cleanup-boot"; flakeup = "nh os switch -u -H $HOST && sudo nix run /home/$USER/.nix-config#cleanup-boot"; + ".." = "cd .."; + "..." = "cd ../../"; + "...." = "cd ../../../"; + "....." = "cd ../../../../"; + "......" = "cd ../../../../../"; }; history = { size = 1000; diff --git a/home/users/toothpick/modules.nix b/home/users/toothpick/modules.nix index 6997d7a7..2f9db081 100644 --- a/home/users/toothpick/modules.nix +++ b/home/users/toothpick/modules.nix @@ -67,12 +67,15 @@ yazi = { enable = true; }; - runix = { + tuirun = { enable = true; }; misc = { enable = true; }; + eza = { + enable = true; + }; }; wm = { hyprland = { diff --git a/home/users/toothpick/shell.nix b/home/users/toothpick/shell.nix index bdaa7ba7..eb0d47a0 100644 --- a/home/users/toothpick/shell.nix +++ b/home/users/toothpick/shell.nix @@ -1,4 +1,12 @@ -{config, ...}: { +{ + config, + pkgs, + lib, + ... +}: let + inherit (lib.meta) getExe; + inherit (pkgs) eza bat; +in { programs.zsh = { enable = true; dotDir = ".config/zsh"; @@ -7,11 +15,17 @@ syntaxHighlighting.enable = true; shellAliases = { + cat = "${getExe bat} --style=plain"; + ls = "${getExe eza} -h --git --icons --color=auto --group-directories-first -s extension"; + la = "${getExe eza} -lah --tree"; + tree = "${getExe eza} --tree --icons=always"; + extract = "extract.sh"; usermodules = "$EDITOR /home/$USER/.nix-config/home/users/$USER/modules.nix"; umod = "$EDITOR /home/$USER/.nix-config/home/users/$USER/modules.nix"; systemmodules = "$EDITOR /home/$USER/.nix-config/hosts/$HOST/modules.nix"; smod = "$EDITOR /home/$USER/.nix-config/hosts/$HOST/modules.nix"; - nixclean = "sudo nix run /home/$USER/.nix-config#cleanup-boot"; + nixcleanboot = "sudo nix run /home/$USER/.nix-config#cleanup-boot"; + nixclean = "sudo nix-collect-garbage --delete-older-than 3d && nix-collect-garbage -d"; nixdev = "nix develop ~/.nix-config -c $SHELL"; nixconfig = "cd /home/$USER/.nix-config/"; ll = "ls -l"; @@ -19,6 +33,11 @@ nixup = "nh os switch -H $HOST && sudo nix run /home/$USER/.nix-config#cleanup-boot"; flakeupdate = "nh os switch -u -v -H $HOST && sudo nix run /home/$USER/.nix-config#cleanup-boot"; flakeup = "nh os switch -u -H $HOST && sudo nix run /home/$USER/.nix-config#cleanup-boot"; + ".." = "cd .."; + "..." = "cd ../../"; + "...." = "cd ../../../"; + "....." = "cd ../../../../"; + "......" = "cd ../../../../../"; }; history = { size = 1000; diff --git a/hosts/cnix/modules.nix b/hosts/cnix/modules.nix index 3170780c..7eccf160 100644 --- a/hosts/cnix/modules.nix +++ b/hosts/cnix/modules.nix @@ -64,10 +64,10 @@ enable = true; }; beekeeper = { - enable = true; + enable = false; }; mysql-workbench = { - enable = true; + enable = false; }; }; sysd = { diff --git a/hosts/default.nix b/hosts/default.nix index eb5edfe8..ec85b940 100644 --- a/hosts/default.nix +++ b/hosts/default.nix @@ -3,6 +3,7 @@ inputs, homeImports, self, + pkgs, ... }: { flake.nixosConfigurations = let diff --git a/system/modules/utils/misc/default.nix b/system/modules/utils/misc/default.nix index 3590bc4a..5be662f4 100644 --- a/system/modules/utils/misc/default.nix +++ b/system/modules/utils/misc/default.nix @@ -22,9 +22,6 @@ in { environment.systemPackages = mkMerge [ [ pkgs.nodejs_22 - pkgs.ripgrep - pkgs.fd - pkgs.gnused pkgs.tree ] (mkIf cfg.desktop.enable [ diff --git a/system/nix/shell/default.nix b/system/nix/shell/default.nix index 5da32dd3..842a0f35 100644 --- a/system/nix/shell/default.nix +++ b/system/nix/shell/default.nix @@ -38,6 +38,7 @@ egl-wayland # EGLStream-based Wayland platform wayland # Wayland client library wayland-protocols # Wayland protocols for Wayland applications + gtk3 # Cryptography openssl # TLS/SSL library for networking and encryption