diff --git a/share/common.nix b/share/common.nix index 2a9d15e..9488e08 100644 --- a/share/common.nix +++ b/share/common.nix @@ -332,7 +332,6 @@ in pkgs.kdePackages.neochat nixos-install-tools nmap - nushell nvme-cli procmail okteta @@ -499,8 +498,12 @@ in enableMail = false; }; - # add nushell and zsh to allowed shells - environment.shells = with pkgs; [ nushell zsh ]; + # use ZSH per default + programs.zsh.enable = true; + environment.shells = with pkgs; [ zsh ]; + + # needed for the ZSH completion + environment.pathsToLink = [ "/share/zsh" ]; # use micro as default terminal editor environment.variables.EDITOR = "micro"; diff --git a/share/home.nix b/share/home.nix index 6435985..6a06ef4 100644 --- a/share/home.nix +++ b/share/home.nix @@ -2,19 +2,31 @@ # initial version home.stateVersion = "22.11"; - # my nushell config - programs.nushell = { - # we use nushell + # ZSH with good config + programs.zsh = { + # ZSH on enable = true; - # shell config - extraConfig = '' - $env.config = { - table: { - mode: none - } - } - ''; + # we want completion + enableCompletion = true; + + # we want suggestions of already typed stuff + autosuggestion.enable = true; + + # we want nice command highlighting + syntaxHighlighting.enable = true; + + # better history + history = { + # save timestamps + extended = true; + + # kill dupes over full history + ignoreAllDups = true; + + # don't share history between sessions + share = false; + }; # aliases shellAliases = { @@ -42,14 +54,14 @@ neko = "ssh neko.fritz.box"; nekoroot = "ssh root@neko.fritz.box"; }; - }; + }; # nice prompt # https://starship.rs/config/ # https://draculatheme.com/starship programs.starship = { enable = true; - enableNushellIntegration = true; + enableZshIntegration = true; settings = { command_timeout = 10000; aws.style = "bold #ffb86c"; @@ -76,20 +88,37 @@ # nice cd programs.zoxide = { enable = true; - enableNushellIntegration = true; + enableZshIntegration = true; options = [ "--cmd" "cd" ]; }; + # integrate fuzzy search + programs.fzf = { + enable = true; + enableZshIntegration = true; + }; + # better completion programs.carapace = { enable = true; - enableNushellIntegration = true; + enableZshIntegration = true; }; # better ls, adds la and Co. aliases, too programs.eza = { enable = true; - enableNushellIntegration = true; + enableZshIntegration = true; + }; + + # tmux replacement + programs.zellij = { + enable = true; + enableZshIntegration = true; + settings = { + theme = "catppuccin-mocha"; + pane_frames = false; + on_force_close = "quit"; + }; }; # better cat diff --git a/share/users.nix b/share/users.nix index 6c942d4..fde40bf 100644 --- a/share/users.nix +++ b/share/users.nix @@ -14,8 +14,8 @@ in # all users and passwords are defined here mutableUsers = false; - # default shell is nushell - defaultUserShell = pkgs.nushell; + # default shell is ZSH + defaultUserShell = pkgs.zsh; # # administrator