summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorLeonardo Santiago <[email protected]>2025-06-24 13:16:36 -0300
committerLeonardo Santiago <[email protected]>2025-06-24 13:16:36 -0300
commit86c10fcefc6f91fa1960a626715a7d04e7013ba0 (patch)
tree5d2a582070b38784073a33a7a2aedf3368310694 /modules
parentdc7c7ab3f38eb3fe10b6e16f38a27d80952789d6 (diff)
fix: update a ton of things
Diffstat (limited to 'modules')
-rw-r--r--modules/basic.nix32
-rw-r--r--modules/default-user.nix1
-rw-r--r--modules/desktop-environment.nix1
-rw-r--r--modules/emacs/README.org14
-rw-r--r--modules/emacs/package.nix1
-rw-r--r--modules/home/default.nix14
-rw-r--r--modules/home/nushell.nix50
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 = ""
+ '';
+ };
+ };
+ };
+ };
+}