diff --git a/flake.lock b/flake.lock index 071f3ed..7af3410 100755 --- a/flake.lock +++ b/flake.lock @@ -107,11 +107,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1771523612, - "narHash": "sha256-ScRqXJaqDTonQ1cs7VKxPw5pO0TQ/OnErfjOKCHX4Ps=", + "lastModified": 1771834427, + "narHash": "sha256-B1j0ahVuxyZtpbFfy34gk2DjacimPIuzyzCPvDhvxI4=", "owner": "9001", "repo": "copyparty", - "rev": "6f1d6647546832c6640cbad88817e28fb63ea3ec", + "rev": "ab8bd0178b26a0b6c6406f7bae835d13b16ef188", "type": "github" }, "original": { @@ -125,11 +125,11 @@ "nixpkgs": "nixpkgs_2" }, "locked": { - "lastModified": 1771469470, - "narHash": "sha256-GnqdqhrguKNN3HtVfl6z+zbV9R9jhHFm3Z8nu7R6ml0=", + "lastModified": 1771881364, + "narHash": "sha256-A5uE/hMium5of/QGC6JwF5TGoDAfpNtW00T0s9u/PN8=", "owner": "nix-community", "repo": "disko", - "rev": "4707eec8d1d2db5182ea06ed48c820a86a42dc13", + "rev": "a4cb7bf73f264d40560ba527f9280469f1f081c6", "type": "github" }, "original": { @@ -144,11 +144,11 @@ "nixpkgs": "nixpkgs_3" }, "locked": { - "lastModified": 1771568980, - "narHash": "sha256-/qbVs2dZVibeg9mDfeKIapmJ3glHgCOYxUuOf8pRKcQ=", + "lastModified": 1771897953, + "narHash": "sha256-43d9HLWOASfHYxG3JSNpMUAFQA114y00VpGRGanPdaM=", "owner": "km-clay", "repo": "fern", - "rev": "9b8c8d704b5e1485e15e29d7340cf8a62aa8fb52", + "rev": "05f731b8c517fc19d65c8da5977b68fd04cf4346", "type": "github" }, "original": { @@ -328,11 +328,11 @@ ] }, "locked": { - "lastModified": 1771531206, - "narHash": "sha256-1R3Wx6KUkMb4x4E5UOhW9p6rqiexzSGGWxZqSHqW5n0=", + "lastModified": 1771851181, + "narHash": "sha256-gFgE6mGUftwseV3DUENMb0k0EiHd739lZexPo5O/sdQ=", "owner": "nix-community", "repo": "home-manager", - "rev": "91be7cce763fa4022c7cf025a71b0c366d1b6e77", + "rev": "9a4b494b1aa1b93d8edf167f46dc8e0c0011280c", "type": "github" }, "original": { @@ -434,11 +434,11 @@ "xdph": "xdph" }, "locked": { - "lastModified": 1771522877, - "narHash": "sha256-dqnkEwXPWuI8MW38kKjs880qaVA+WEWziz5liznzLYA=", + "lastModified": 1771865886, + "narHash": "sha256-hqoGotv4iNiYmIzQtBQziDANCEQ1L1vtsGODtJGlBgM=", "ref": "refs/heads/main", - "rev": "9ea6d0e15fddccf321c035e83b007a55d6829dd9", - "revCount": 6902, + "rev": "bc09504ea50901bedf945859bf7bd4c739e1ed38", + "revCount": 6916, "submodules": true, "type": "git", "url": "https://github.com/hyprwm/Hyprland" @@ -985,11 +985,11 @@ "systems": "systems_5" }, "locked": { - "lastModified": 1771268051, - "narHash": "sha256-nGqPcngnezoT+/xAvw3UDjwdKP2MC4fO315A/Otb9eE=", + "lastModified": 1771737804, + "narHash": "sha256-7wn9qbzIQQgH8tnq4VwzuWEqEWpekuymlLyhY3vM/j8=", "owner": "gerg-l", "repo": "spicetify-nix", - "rev": "b930de84c561f62a0c39a6a57c2ab553a97e8495", + "rev": "6dd43010ac2458cc56a6ac5250349b9217a7a2ae", "type": "github" }, "original": { @@ -1017,11 +1017,11 @@ "tinted-zed": "tinted-zed" }, "locked": { - "lastModified": 1771541829, - "narHash": "sha256-jtrIUcFoZuS6R4P18907H0pPyHaGoF5Tomez7j3KIHs=", + "lastModified": 1771787992, + "narHash": "sha256-Vg4bGwwenNYI8p3nJTl9FRyeIyrjATeZrZr+GyUSDrw=", "owner": "danth", "repo": "stylix", - "rev": "cb73f89d3ecef7e790c42f828e2228ff82975de5", + "rev": "30054cca073b49b42a71289edec858f535b27fe9", "type": "github" }, "original": { diff --git a/modules/home/environment/fern/aliases.nix b/modules/home/environment/fern/aliases.nix index 7ad9d9f..dfc4835 100644 --- a/modules/home/environment/fern/aliases.nix +++ b/modules/home/environment/fern/aliases.nix @@ -1,11 +1,12 @@ -{ lib, config, self, ... }: +{ lib, config, pkgs, self, ... }: { programs.fern = { aliases = { mv = "mv -v"; cp = "cp -vr"; gt = "gtrash"; - gtp = "playshellsound ${self}/assets/sound/rm.wav"; + gtp = "${pkgs.myScripts.playshellsound}/bin/playshellsound ${self}/assets/sound/rm.wav && gtrash put"; + diff = "diff --color=auto"; sr = "source ~/.fernrc"; psg = "ps aux | grep -v grep | grep -i -e VSZ -e"; mkdir = "mkdir -p"; diff --git a/modules/home/environment/fern/env.nix b/modules/home/environment/fern/env.nix index 72e2296..e5c0ba9 100644 --- a/modules/home/environment/fern/env.nix +++ b/modules/home/environment/fern/env.nix @@ -13,6 +13,8 @@ FZF_DEFAULT_COMMAND = "fd"; FZF_DEFAULT_OPTS = "--height 40% --layout=reverse --border"; + + LESS = "-R"; # pager uses alt buffer }; }; } diff --git a/modules/home/environment/fern/extraconfig.nix b/modules/home/environment/fern/extraconfig.nix index ac5838c..c2c340e 100644 --- a/modules/home/environment/fern/extraconfig.nix +++ b/modules/home/environment/fern/extraconfig.nix @@ -8,13 +8,15 @@ in programs.fern = { settings.extraPreConfig = '' prompt_topline() { + local last_cmd_status + local last_cmd_runtime if [ "$?" -eq "0" ]; then last_cmd_status="\e[1;32m\e[0m" else last_cmd_status="\e[1;31m\e[0m" fi - user_and_host="\e[1m$USER\e[1;36m@\e[1;31m$HOST\e[0m" - last_runtime_raw="$(echo -p "\t")" + local user_and_host="\e[1m$USER\e[1;36m@\e[1;31m$HOST\e[0m" + local last_runtime_raw="$(echo -p "\t")" if [ -z "$last_runtime_raw" ]; then last_cmd_runtime="" last_cmd_status="" @@ -27,19 +29,19 @@ in prompt_midline() { git rev-parse --is-inside-work-tree > /dev/null 2>&1 || return - status="$(git status --porcelain 2>/dev/null)" - gitsigns="" + local gitsigns + local status="$(git status --porcelain 2>/dev/null)" [ -n "$status" ] && echo "$status" | command grep -q '^ [MADR]' && gitsigns="$gitsigns!" [ -n "$status" ] && echo "$status" | command grep -q '^??' && gitsigns="$gitsigns?" [ -n "$status" ] && echo "$status" | command grep -q '^[MADR]' && gitsigns="$gitsigns+" - ahead="$(git rev-list --count @{upstream}..HEAD 2>/dev/null)" - behind="$(git rev-list --count HEAD..@{upstream} 2>/dev/null)" + local ahead="$(git rev-list --count @{upstream}..HEAD 2>/dev/null)" + local behind="$(git rev-list --count HEAD..@{upstream} 2>/dev/null)" [ $ahead -gt 0 ] && gitsigns="$gitsigns↑" [ $behind -gt 0 ] && gitsigns="$gitsigns↓" - branch="$(git branch --show-current 2>/dev/null)" + local branch="$(git branch --show-current 2>/dev/null)" if [ -n "$gitsigns" ] || [ -n "$branch" ]; then if [ -n "$gitsigns" ]; then @@ -54,12 +56,14 @@ in } prompt() { - top="$(prompt_topline)" - mid="$(prompt_midline)" - bot="$(prompt_botline)" - dollar="$(echo -p "\$ ")" - dollar="$(echo -e "\e[1;32m$dollar\e[0m")" - echo -en "$top$mid$bot\n$dollar" + local top="$(prompt_topline)" + local mid="$(prompt_midline)" + local bot="$(prompt_botline)" + local dollar="$(echo -p "\$ ")" + local dollar="$(echo -e "\e[1;32m$dollar\e[0m")" + local prompt="$top$mid$bot\n$dollar" + + echo -en "$prompt" } export PS1="\n\!prompt " @@ -125,7 +129,7 @@ in fi } gitcommit_sfx() { - output="$(git commit "$@")" + local output="$(git commit "$@")" if [ "$?" -eq "0" ]; then ${shellsound} ${sndpath}/gitcommit.wav echo "$output" | ${color-commit} @@ -166,6 +170,13 @@ in ${shellsound} ${sndpath}/cd.wav } + vipe() { + local tmp=$(mktemp) + $EDITOR "$tmp" >/dev/tty > $(git rev-parse --git-dir)/DRAFT_MSG; else exit 1; fi #"; + }; core.pager = "delta"; interactive.diffFilter = "delta --color-only"; delta.navigate = "true"; diff --git a/overlay/scripts/nix/rebuild.nix b/overlay/scripts/nix/rebuild.nix index 6357d0d..1e61297 100755 --- a/overlay/scripts/nix/rebuild.nix +++ b/overlay/scripts/nix/rebuild.nix @@ -16,6 +16,7 @@ pkgs.writeShellApplication { "a") if checkbools; then all=true; else echo -e "$usage" && exit 1; fi ;; "s") if checkbools; then system=true; else echo -e "$usage" && exit 1; fi ;; "h") if checkbools; then home=true; else echo -e "$usage" && exit 1; fi ;; + "U") if [ "$update" = false ]; then update=true; else echo -e "$usage" && exit 1; fi ;; "n") if [ "$dry" = false ]; then dry=true; else echo -e "$usage" && exit 1; fi ;; *) echo -e "$usage" && exit 1 ;; esac @@ -26,10 +27,14 @@ pkgs.writeShellApplication { home=false all=false dry=false + update=false + + played_start=false hooray() { playshellsound "${self}/assets/sound/update.wav"; } damn() { playshellsound "${self}/assets/sound/error.wav"; } - start() { playshellsound "${self}/assets/sound/nixswitch-start.wav"; } + start() { [ "$played_start" = false ] && playshellsound "${self}/assets/sound/nixswitch-start.wav" && played_start=true || true; } + update_done() { playshellsound "${self}/assets/sound/update_alt.wav"; } usage="\033[1;4;38;2;243;139;168mUsage\033[0m: rebuild -h for home config, rebuild -s for sys config, rebuild -a for both. Including 'n' with the flag does a dry run, i.e. rebuild -nh" @@ -43,6 +48,8 @@ pkgs.writeShellApplication { dry_flag="" [ "$dry" = true ] && dry_flag="-n" + [ "$update" = true ] && start && (cd "$FLAKEPATH" && nix flake update) && update_done + [ "$all" = true ] && if sudo sleep 0.1 && start && nh os switch $dry_flag -H "${host}" "$FLAKEPATH" && nh home switch $dry_flag -c "${host}Home" "$FLAKEPATH"; then hooray; else damn; fi [ "$system" = true ] && start && if nh os switch $dry_flag -H "${host}" "$FLAKEPATH"; then hooray; else damn; fi [ "$home" = true ] && start && if nh home switch $dry_flag -c "${host}Home" "$FLAKEPATH"; then hooray; else damn; fi