diff --git a/home/baseline/default.nix b/home/baseline/default.nix index 86524e2..eb9891d 100644 --- a/home/baseline/default.nix +++ b/home/baseline/default.nix @@ -6,6 +6,7 @@ ./bash.nix ./direnv.nix ./git.nix + ./nushell.nix ./ssh.nix ./vim ./xonsh.nix diff --git a/home/baseline/nushell.nix b/home/baseline/nushell.nix new file mode 100644 index 0000000..5bf9fe4 --- /dev/null +++ b/home/baseline/nushell.nix @@ -0,0 +1,39 @@ +{ + config, + lib, + ... +}: +{ + programs = { + carapace = { + enable = true; + enableNushellIntegration = true; + }; + nushell = { + enable = true; + environmentVariables = { + AWS_SHARED_CREDENTIALS_FILE = "/run/agenix/cache-credentials"; + GOPATH = "${config.home.homeDirectory}/src/go"; + GOBIN = "${config.home.homeDirectory}/src/bin"; + LIBMYSQL_ENABLE_CLEARTEXT_PLUGIN = "1"; + SWORD_PATH = "${config.home.homeDirectory}/.sword/"; + TIMEFORMAT = "%3Uu %3Ss %3lR %P%%"; + VIRTUALENV_HOME = "${config.home.homeDirectory}/venv/"; + }; + extraConfig = '' + use std/util "path add" + path add ${config.home.homeDirectory}/src/bin + path add /opt/homebrew/bin + path add /run/current-system/sw/bin + path add ${config.home.homeDirectory}/.nix-profile/bin + ''; + settings = { + buffer_editor = lib.getExe config.programs.nixvim.package; + }; + }; + starship = { + enable = true; + enableNushellIntegration = true; + }; + }; +} diff --git a/home/baseline/xonsh.nix b/home/baseline/xonsh.nix index 57166dd..dd15ea8 100644 --- a/home/baseline/xonsh.nix +++ b/home/baseline/xonsh.nix @@ -10,87 +10,95 @@ nvd ]; - programs.xonsh = { - enable = true; - - sessionVariables = { - # This is for pushing builds to my local S3 cache - AWS_SHARED_CREDENTIALS_FILE = "/run/agenix/cache-credentials"; - CLICOLOR = 1; - EDITOR = "nvim"; - # vte_new_tab_cwd causes new Terminal tabs to open in the - # same CWD as the current tab - LESS_TERMCAP_mb = "\\033[01;31m"; # begin blinking - LESS_TERMCAP_md = "\\033[01;31m"; # begin bold - LESS_TERMCAP_me = "\\033[0m"; # end mode - LESS_TERMCAP_so = "\\033[01;44;36m"; # begin standout-mode (bottom of screen) - LESS_TERMCAP_se = "\\033[0m"; # end standout-mode - LESS_TERMCAP_us = "\\033[00;36m"; # begin underline - LESS_TERMCAP_ue = "\\033[0m"; # end underline - LIBMYSQL_ENABLE_CLEARTEXT_PLUGIN = "1"; - LSCOLORS = "ExGxBxDxCxEgEdxbxgxcxd"; - MAVEN_OPTS = " -Dmaven.wagon.http.ssl.insecure=true"; - OS_CLOUD = "default"; - PROMPT = "{vte_new_tab_cwd}{env_name}{BOLD_GREEN}{user}@{hostname}{BOLD_BLUE} {short_cwd}{branch_color}{curr_branch: {}}{RESET} {BOLD_BLUE}{prompt_end}{RESET} "; - SWORD_PATH = "${config.home.homeDirectory}/.sword/"; - TIMEFORMAT = "%3Uu %3Ss %3lR %P%%"; - # Tells vox where to find virtualenvs - VIRTUALENV_HOME = "${config.home.homeDirectory}/venv/"; - XONSH_COLOR_STYLE = "default"; - - GOPATH = "${config.home.homeDirectory}/src/go"; - GOBIN = "${config.home.homeDirectory}/src/bin"; + programs = { + carapace = { + enable = true; }; - aliases = { - # Python related ones - ac = "vox activate"; - d = "vox deactivate"; - s = "nix run \".#runserver\""; + xonsh = { + enable = true; - # Nix related ones - deploy = "nixos-rebuild switch --use-remote-sudo --use-substitutes --target-host"; - gl-nging = "sudo nixos-container run gitlab -- systemctl restart nginx"; - nb = "nix build -L"; - nixdu = "sudo nix-store --gc --print-roots | egrep -v r\"^(/nix/var|/run/\\w+-system|\\{memory|/proc)\""; - nixtest = "nixpkgs-review rev HEAD"; - nixup = "nix flake lock --update-input"; - nixcopy = "nix copy --to \"s3://binary-cache/?profile=default&endpoint=nas.home%3A9000&scheme=http\""; - stable = "nix flake lock --update-input nixstable --update-input hm --update-input nixvimstable"; - unstable = "nix flake lock --update-input nixunstable --update-input hmunstable --update-input nixvimunstable --update-input nurpkgs --update-input vsext --update-input wsl"; - updateScript = "nix-shell maintainers/scripts/update.nix --argstr package"; + sessionVariables = { + # This is for pushing builds to my local S3 cache + AWS_SHARED_CREDENTIALS_FILE = "/run/agenix/cache-credentials"; + CARAPACE_BRIDGES = "zsh,bash"; + COMPLETIONS_CONFIRM = "True"; + CLICOLOR = 1; + EDITOR = "nvim"; + # vte_new_tab_cwd causes new Terminal tabs to open in the + # same CWD as the current tab + LESS_TERMCAP_mb = "\\033[01;31m"; # begin blinking + LESS_TERMCAP_md = "\\033[01;31m"; # begin bold + LESS_TERMCAP_me = "\\033[0m"; # end mode + LESS_TERMCAP_so = "\\033[01;44;36m"; # begin standout-mode (bottom of screen) + LESS_TERMCAP_se = "\\033[0m"; # end standout-mode + LESS_TERMCAP_us = "\\033[00;36m"; # begin underline + LESS_TERMCAP_ue = "\\033[0m"; # end underline + LIBMYSQL_ENABLE_CLEARTEXT_PLUGIN = "1"; + LSCOLORS = "ExGxBxDxCxEgEdxbxgxcxd"; + MAVEN_OPTS = " -Dmaven.wagon.http.ssl.insecure=true"; + OS_CLOUD = "default"; + PROMPT = "{vte_new_tab_cwd}{env_name}{BOLD_GREEN}{user}@{hostname}{BOLD_BLUE} {short_cwd}{branch_color}{curr_branch: {}}{RESET} {BOLD_BLUE}{prompt_end}{RESET} "; + SWORD_PATH = "${config.home.homeDirectory}/.sword/"; + TIMEFORMAT = "%3Uu %3Ss %3lR %P%%"; + # Tells vox where to find virtualenvs + VIRTUALENV_HOME = "${config.home.homeDirectory}/venv/"; + XONSH_COLOR_STYLE = "default"; - # General - gh-personal = "$GH_CONFIG_DIR=\"${config.home.homeDirectory}/.config/gh/personal\" gh"; - k = "kubectl"; - kn = "kubectl get nodes -o wide"; - kp = "kubectl get pods -o wide"; - ls = "ls --color"; - ll = "ls -l --color"; - win = "sudo virsh start win10"; - z = "zeditor ."; + GOPATH = "${config.home.homeDirectory}/src/go"; + GOBIN = "${config.home.homeDirectory}/src/bin"; + }; - # Tailscale related ones - tsup = "sudo tailscale up"; - tspub = "sudo tailscale up --exit-node=linode"; - tshome = "sudo tailscale up --exit-node=2maccabees"; - tsclear = "sudo tailscale up --exit-node=''"; + aliases = { + # Python related ones + ac = "vox activate"; + d = "vox deactivate"; + s = "nix run \".#runserver\""; - # Vagrant related - vdown = "vagrant destroy"; - vhalt = "vagrant halt"; - vos = "vagrant up --provision --provider openstack"; - vprov = "vagrant provision"; - vup = "vagrant up --provision --provider libvirt"; - vssh = "vagrant ssh"; + # Nix related ones + deploy = "nixos-rebuild switch --use-remote-sudo --use-substitutes --target-host"; + gl-nging = "sudo nixos-container run gitlab -- systemctl restart nginx"; + nb = "nix build -L"; + nixdu = "sudo nix-store --gc --print-roots | egrep -v r\"^(/nix/var|/run/\\w+-system|\\{memory|/proc)\""; + nixtest = "nixpkgs-review rev HEAD"; + nixup = "nix flake lock --update-input"; + nixcopy = "nix copy --to \"s3://binary-cache/?profile=default&endpoint=nas.home%3A9000&scheme=http\""; + stable = "nix flake lock --update-input nixstable --update-input hm --update-input nixvimstable"; + unstable = "nix flake lock --update-input nixunstable --update-input hmunstable --update-input nixvimunstable --update-input nurpkgs --update-input vsext --update-input wsl"; + updateScript = "nix-shell maintainers/scripts/update.nix --argstr package"; + + # General + gh-personal = "$GH_CONFIG_DIR=\"${config.home.homeDirectory}/.config/gh/personal\" gh"; + k = "kubectl"; + kn = "kubectl get nodes -o wide"; + kp = "kubectl get pods -o wide"; + ls = "ls --color"; + ll = "ls -l --color"; + win = "sudo virsh start win10"; + z = "zeditor ."; + + # Tailscale related ones + tsup = "sudo tailscale up"; + tspub = "sudo tailscale up --exit-node=linode"; + tshome = "sudo tailscale up --exit-node=2maccabees"; + tsclear = "sudo tailscale up --exit-node=''"; + + # Vagrant related + vdown = "vagrant destroy"; + vhalt = "vagrant halt"; + vos = "vagrant up --provision --provider openstack"; + vprov = "vagrant provision"; + vup = "vagrant up --provision --provider libvirt"; + vssh = "vagrant ssh"; + }; + + configHeader = builtins.readFile ./xonsh_header.xsh; + configFooter = + (builtins.readFile ./xonsh_footer.xsh) + + (builtins.concatStringsSep "\n" [ + "with open('${pkgs.stdenv.cc}/nix-support/dynamic-linker', 'r') as fp:" + " $NIX_LD = fp.read().strip()" + ]); }; - - configHeader = builtins.readFile ./xonsh_header.xsh; - configFooter = - (builtins.readFile ./xonsh_footer.xsh) - + (builtins.concatStringsSep "\n" [ - "with open('${pkgs.stdenv.cc}/nix-support/dynamic-linker', 'r') as fp:" - " $NIX_LD = fp.read().strip()" - ]); }; } diff --git a/home/baseline/xonsh_footer.xsh b/home/baseline/xonsh_footer.xsh index 0a434f0..e5246dc 100644 --- a/home/baseline/xonsh_footer.xsh +++ b/home/baseline/xonsh_footer.xsh @@ -129,3 +129,5 @@ import builtins builtins.true = True builtins.false = False builtins.null = None + +exec($(carapace _carapace xonsh))