diff --git a/homes/x86_64-linux/julian@aspi/default.nix b/homes/x86_64-linux/julian@aspi/default.nix index be4d9f3..a76ce2a 100644 --- a/homes/x86_64-linux/julian@aspi/default.nix +++ b/homes/x86_64-linux/julian@aspi/default.nix @@ -47,6 +47,7 @@ config, ... }: { # Rust setup rustc + rustfmt cargo clippy rust-analyzer @@ -63,6 +64,7 @@ config, ... }: { ## My scripts pkgs.frajul.deploy-to-pianopi + pkgs.frajul.edit-config ]; home.file = { @@ -94,6 +96,7 @@ config, ... }: { ls = "ls --color"; la = "ls -Alh --color"; grep = "grep --color"; + conf = "edit-config"; }; home.sessionVariables = { diff --git a/packages/edit-config/default.nix b/packages/edit-config/default.nix new file mode 100644 index 0000000..12ef9f1 --- /dev/null +++ b/packages/edit-config/default.nix @@ -0,0 +1,31 @@ +{ +# Snowfall Lib provides a customized `lib` instance with access to your flake's library +# as well as the libraries available from your flake's inputs. +lib, +# You also have access to your flake's inputs. +inputs, + +# All other arguments come from NixPkgs. You can use `pkgs` to pull packages or helpers +# programmatically or you may add the named attributes as arguments here. +pkgs, stdenv, ... }: + +pkgs.writeShellApplication { + name = "edit-config"; + + runtimeInputs = with pkgs; [ fd fzf ]; + + text = '' + FILE=$(fd -H -t f . ~/.dotfiles | fzf --query "$1") + if [[ "$FILE" != "" ]]; then + $EDITOR "$FILE" + else + exit 1 + fi + + read -rp 'Run "home-manager switch"? [Yn]: ' yn + case $yn in + Y | y | Yes | yes | "" ) home-manager switch;; + * ) echo "Not switching home-manager configuration";; + esac + ''; +}