From 7cf3a3dd60f49cfcc3f66889d14bd3d85ad17064 Mon Sep 17 00:00:00 2001 From: Joakim Repomaa Date: Sat, 14 Mar 2026 21:36:35 +0200 Subject: [PATCH] refactor home.packages and add scrot, tree_hugger packages --- home/common/default.nix | 183 +++++++++++++++++++--------------------- 1 file changed, 88 insertions(+), 95 deletions(-) diff --git a/home/common/default.nix b/home/common/default.nix index 58e4dbf..7d24ce3 100644 --- a/home/common/default.nix +++ b/home/common/default.nix @@ -30,103 +30,96 @@ # release notes. home.stateVersion = "23.11"; # Please read the comment before changing. - home.packages = - with pkgs; - [ - htop - gnupg - pkgs-unstable.yubioath-flutter - pkgs-unstable.yubikey-manager - gcc - sqlite - noto-fonts - noto-fonts-cjk-sans - noto-fonts-color-emoji - source-sans-pro - mosh - docker-compose - (signal-desktop.override { - commandLineArgs = "--password-store=gnome-libsecret"; - }) - cargo - blanket - wl-clipboard - gnumeric - gh - neovim-remote - pkgs-unstable.gradia - crystal - shards - moreutils - keymapp - gnumake - tig - jq - yt-dlp - ffmpeg - otp - manix - (writeShellScriptBin "fd" '' - ${fd}/bin/fd -H "$@" - '') - pkgs-unstable.rpi-imager - picocom - imagemagick - ghostscript - inkscape - jless - scribus - dnscontrol - protonmail-bridge - hydroxide - imapsync - nixfmt-rfc-style - tree - virt-manager - pkgs-unstable.ncspot - pkgs-unstable.devbox - pkgs-unstable.feishin - openscad - pkgs-unstable.shairport-sync-airplay2 - (writeShellScriptBin "pw" '' - ${lib.getExe rbw} ls --fields 'id,folder,name' | \ - ${lib.getExe gawk} -F '\t' '{print $1 "\t" ($2 == "" ? "" : $2 "/") $3}' | \ - ${lib.getExe config.services.walker.package} -d -l 2 | \ - xargs ${lib.getExe rbw} get "$@" | ${lib.getExe' wl-clipboard "wl-copy"} - '') - (google-fonts.override { fonts = [ "Tajawal" ]; }) - pkgs-unstable.opencode - (writeShellScriptBin "nr" '' - ${lib.getExe nix} run "nixpkgs#''${1}" "$@" - '') - pkgs-unstable.tidal-hifi - inputs.tonearm.packages.${pkgs.stdenv.hostPlatform.system}.tonearm - blueman - pavucontrol - (writeShellScriptBin "voxtoggle" '' - status=$(${lib.getExe config.programs.voxtype.package} status) - pid=$(cat ''${XDG_RUNTIME_DIR}/voxtype/pid) + home.packages = with pkgs; [ + htop + gnupg + pkgs-unstable.yubioath-flutter + pkgs-unstable.yubikey-manager + gcc + sqlite + noto-fonts + noto-fonts-cjk-sans + noto-fonts-color-emoji + source-sans-pro + mosh + docker-compose + (signal-desktop.override { + commandLineArgs = "--password-store=gnome-libsecret"; + }) + cargo + blanket + wl-clipboard + gnumeric + gh + neovim-remote + pkgs-unstable.gradia + crystal + shards + moreutils + keymapp + gnumake + tig + jq + yt-dlp + ffmpeg + otp + manix + (writeShellScriptBin "fd" '' + ${fd}/bin/fd -H "$@" + '') + pkgs-unstable.rpi-imager + picocom + imagemagick + ghostscript + inkscape + jless + scribus + dnscontrol + protonmail-bridge + hydroxide + imapsync + nixfmt-rfc-style + tree + virt-manager + pkgs-unstable.ncspot + pkgs-unstable.devbox + pkgs-unstable.feishin + openscad + pkgs-unstable.shairport-sync-airplay2 + (writeShellScriptBin "pw" '' + ${lib.getExe rbw} ls --fields 'id,folder,name' | \ + ${lib.getExe gawk} -F '\t' '{print $1 "\t" ($2 == "" ? "" : $2 "/") $3}' | \ + ${lib.getExe config.services.walker.package} -d -l 2 | \ + xargs ${lib.getExe rbw} get "$@" | ${lib.getExe' wl-clipboard "wl-copy"} + '') + (google-fonts.override { fonts = [ "Tajawal" ]; }) + pkgs-unstable.opencode + (writeShellScriptBin "nr" '' + ${lib.getExe nix} run "nixpkgs#''${1}" "$@" + '') + pkgs-unstable.tidal-hifi + inputs.tonearm.packages.${stdenv.hostPlatform.system}.tonearm + blueman + pavucontrol + (writeShellScriptBin "voxtoggle" '' + status=$(${lib.getExe config.programs.voxtype.package} status) + pid=$(cat ''${XDG_RUNTIME_DIR}/voxtype/pid) - if [[ "$status" == "stopped" ]]; then - exit 1 - elif [[ "$status" == "recording" ]]; then - kill -SIGUSR2 "$pid" - else - kill -SIGUSR1 "$pid" - fi - '') - ] - ++ lib.optional osConfig.programs.niri.enable ( - pkgs.writeShellScriptBin "handle-lid-close" '' - alias niri=${lib.getExe osConfig.programs.niri.package} + if [[ "$status" == "stopped" ]]; then + exit 1 + elif [[ "$status" == "recording" ]]; then + kill -SIGUSR2 "$pid" + else + kill -SIGUSR1 "$pid" + fi + '') + (writeShellScriptBin "scrot" '' + set -eo pipefail - output_count=$(niri outputs | ${lib.getExe jq} -r 'length') - if [ "$output_count" -eq 1 ]; then - niri msg action spawn hyprlock - systemctl suspend - fi - '' - ); + ${lib.getExe grim} -t ppm -g "$(${lib.getExe slurp} -o -d -F monospace)" - | ${lib.getExe gradia} + '') + inputs.tree_hugger.packages.${stdenv.hostPlatform.system}.default + ]; programs = { ashell = {