diff options
author | Leonardo Santiago <[email protected]> | 2025-06-24 13:16:36 -0300 |
---|---|---|
committer | Leonardo Santiago <[email protected]> | 2025-06-24 13:16:36 -0300 |
commit | 86c10fcefc6f91fa1960a626715a7d04e7013ba0 (patch) | |
tree | 5d2a582070b38784073a33a7a2aedf3368310694 /modules | |
parent | dc7c7ab3f38eb3fe10b6e16f38a27d80952789d6 (diff) |
fix: update a ton of things
Diffstat (limited to 'modules')
-rw-r--r-- | modules/basic.nix | 32 | ||||
-rw-r--r-- | modules/default-user.nix | 1 | ||||
-rw-r--r-- | modules/desktop-environment.nix | 1 | ||||
-rw-r--r-- | modules/emacs/README.org | 14 | ||||
-rw-r--r-- | modules/emacs/package.nix | 1 | ||||
-rw-r--r-- | modules/home/default.nix | 14 | ||||
-rw-r--r-- | modules/home/nushell.nix | 50 |
7 files changed, 69 insertions, 44 deletions
diff --git a/modules/basic.nix b/modules/basic.nix index e78e606..e1b351c 100644 --- a/modules/basic.nix +++ b/modules/basic.nix @@ -37,38 +37,6 @@ config.allowUnfreePredicate = _: true; }; - programs.bash = { - vteIntegration = true; - enableLsColors = true; - completion.enable = true; - promptInit = - '' - if [[ "$TERM" == "dumb" ]] then - export PS1="> " - else - PS1="\[\033[1;95m\][\h]\[\033[0m\] \[\033[0;32m\]\w\[\033[0m\] :: " - vterm_printf() { - if [ -n "$TMUX" ] && ([ "$${TERM%%-*}" = "tmux" ] || [ "$${TERM%%-*}" = "screen" ]); then - # Tell tmux to pass the escape sequences through - printf "\ePtmux;\e\e]%s\007\e\\" "$1" - elif [ "$${TERM%%-*}" = "screen" ]; then - # GNU screen (screen, screen-256color, screen-256color-bce) - printf "\eP\e]%s\007\e\\" "$1" - else - printf "\e]%s\e\\" "$1" - fi - } - vterm_prompt_end(){ - vterm_printf "51;A$(whoami)@$(hostname):$(pwd)" - } - PS1=$PS1'\[$(vterm_prompt_end)\]' - fi - ''; - }; - programs.direnv = { - enable = true; - nix-direnv.enable = true; - }; time.timeZone = "America/Sao_Paulo"; i18n.defaultLocale = "en_US.UTF-8"; i18n.extraLocaleSettings = { diff --git a/modules/default-user.nix b/modules/default-user.nix index 75eda22..5ab512d 100644 --- a/modules/default-user.nix +++ b/modules/default-user.nix @@ -18,7 +18,6 @@ in { isNormalUser = true; description = "leonardo"; extraGroups = [ "networkmanager" "wheel" ]; - shell = pkgs.bashInteractive; }; programs.ssh.startAgent = true; services.openssh = { diff --git a/modules/desktop-environment.nix b/modules/desktop-environment.nix index 1313ea2..fca6b5a 100644 --- a/modules/desktop-environment.nix +++ b/modules/desktop-environment.nix @@ -10,6 +10,7 @@ default-user.enable = true; basic.enable = true; zen-browser.enable = true; + nushell.enable = true; }; services.printing.enable = false; # disabled until CUPS CVE is fixed diff --git a/modules/emacs/README.org b/modules/emacs/README.org index a8c2572..d18d109 100644 --- a/modules/emacs/README.org +++ b/modules/emacs/README.org @@ -246,7 +246,8 @@ Completion popup system #+end_src ** Vterm #+begin_src emacs-lisp :tangle yes -(use-package vterm) +(use-package vterm + :custom (vterm-shell "/run/current-system/sw/bin/nu")) #+end_src ** Compilation Add support for ansi escape codes in compilation @@ -308,6 +309,17 @@ Try to use the package. (use-package markdown-mode :mode "\\.md\\'") #+end_src + +** OCaml +#+begin_src emacs-lisp :tangle yes +(use-package tuareg) +#+end_src + +** Haskell +#+begin_src emacs-lisp :tangle yes +(use-package haskell-ts-mode) +#+end_src + ** Coq #+begin_src emacs-lisp :tangle yes (use-package proof-general diff --git a/modules/emacs/package.nix b/modules/emacs/package.nix index 2b1a67c..d142cff 100644 --- a/modules/emacs/package.nix +++ b/modules/emacs/package.nix @@ -31,6 +31,7 @@ in tree-sitter-rust tree-sitter-python tree-sitter-nix + tree-sitter-haskell ])) ] ++ outside-emacs; } diff --git a/modules/home/default.nix b/modules/home/default.nix index bb2c753..743615a 100644 --- a/modules/home/default.nix +++ b/modules/home/default.nix @@ -5,6 +5,7 @@ in { inputs.home-manager.nixosModules.home-manager ./mu.nix ./zen.nix + ./nushell.nix ]; config = mkIf cfg.default-user.enable { home-manager = { @@ -13,6 +14,7 @@ in { useUserPackages = true; users.leonardo = { home = { + shell.enableNushellIntegration = true; stateVersion = "23.05"; homeDirectory = "/home/leonardo"; packages = lib.optionals cfg.desktop-environment.enable (with pkgs; [ @@ -23,17 +25,9 @@ in { ]); }; programs = { - bash = { + direnv = { enable = true; - enableCompletion = true; - initExtra = '' - shopt -s -q autocd - shopt -s no_empty_cmd_completion - ''; - }; - fzf = { - enable = true; - enableBashIntegration = true; + nix-direnv.enable = true; }; git = { enable = true; diff --git a/modules/home/nushell.nix b/modules/home/nushell.nix new file mode 100644 index 0000000..771ab8e --- /dev/null +++ b/modules/home/nushell.nix @@ -0,0 +1,50 @@ +{ config, lib, pkgs, ...}: with lib; let + cfg = config.santi-modules; +in { + options.santi-modules.nushell.enable = mkEnableOption "Enable nushell as the default shell"; + config = mkIf cfg.nushell.enable { + users.users.leonardo.shell = pkgs.nushell; + home-manager = { + users.leonardo = { + programs.direnv.enableNushellIntegration = true; + programs.nushell = { + enable = true; + settings = { + show_banner = false; + }; + extraConfig = '' + module vprompt { + # Complete escape sequence based on environment + def complete-escape-by-env [ + arg: string # argument to send + ] { + let tmux: string = (if ($env.TMUX? | is-empty) { '''''' } else { $env.TMUX }) + let term: string = (if ($env.TERM? | is-empty) { '''''' } else { $env.TERM }) + if $tmux =~ "screen|tmux" { + # tell tmux to pass the escape sequences through + $"\ePtmux;\e\e]($arg)\a\e\\" + } else if $term =~ "screen.*" { + # GNU screen (screen, screen-256color, screen-256color-bce) + $"\eP\e]($arg)\a\e\\" + } else { + $"\e]($arg)\e\\" + } + } + def create_left_prompt [] { + ${pkgs.starship}/bin/starship prompt --cmd-duration $env.CMD_DURATION_MS $'--status=($env.LAST_EXIT_CODE)' + } + # Output text prompt that vterm can use to track current directory + export def left-prompt-track-cwd [] { + $"(create_left_prompt)(complete-escape-by-env $'51;A(whoami)@(hostname):(pwd)')" + } + } + use vprompt + $env.PROMPT_COMMAND = {|| vprompt left-prompt-track-cwd } + $env.PROMPT_COMMAND_RIGHT = "" + $env.PROMPT_INDICATOR = "" + ''; + }; + }; + }; + }; +} |