From 1e3bbe954ef5319ce3e1d096c9ce2f9fe4eb44d3 Mon Sep 17 00:00:00 2001 From: Evie Litherland-Smith Date: Sun, 1 Sep 2024 12:58:42 +0100 Subject: [PATCH] Login shell updates Fix login shell to bash, remove passthrough. Set Konsole default command to launch fish, for use as interactive shell without potential issues that come from being the login shell Move some configured shell utilities to their own files in shell directory, stop importing zsh config (replaced by fish) --- flake.nix | 5 ---- system/default.nix | 6 ++-- system/home/plasma/konsole.nix | 8 +++++- system/home/shell/bat.nix | 10 +++++++ system/home/shell/default.nix | 52 +++++----------------------------- system/home/shell/direnv.nix | 7 +++++ system/home/shell/eza.nix | 9 ++++++ system/home/shell/fish.nix | 7 +++++ system/home/shell/fzf.nix | 9 ++++++ system/home/shell/readline.nix | 20 +++++++++++++ system/home/shell/starship.nix | 3 +- 11 files changed, 80 insertions(+), 56 deletions(-) create mode 100644 system/home/shell/bat.nix create mode 100644 system/home/shell/direnv.nix create mode 100644 system/home/shell/eza.nix create mode 100644 system/home/shell/fish.nix create mode 100644 system/home/shell/fzf.nix create mode 100644 system/home/shell/readline.nix diff --git a/flake.nix b/flake.nix index 89b160f6..188c9699 100644 --- a/flake.nix +++ b/flake.nix @@ -41,7 +41,6 @@ inherit inputs; username = "pixelifytica"; hostName = "Legion"; - loginShell = "bash"; }; modules = [ ./system/default.nix ]; }; @@ -51,7 +50,6 @@ inherit inputs; username = "pixelifytica"; hostName = "Vanguard"; - loginShell = "bash"; }; modules = [ ./system/default.nix ]; }; @@ -60,7 +58,6 @@ inherit inputs; username = "pixelifytica"; hostName = "Northstar"; - loginShell = "bash"; }; modules = [ ./system/default.nix ]; }; @@ -70,7 +67,6 @@ inherit inputs; username = "elitherl"; hostName = "Tone"; - loginShell = "bash"; }; modules = [ ./system/default.nix ]; }; @@ -79,7 +75,6 @@ inherit inputs; username = "elitherl"; hostName = "Ronin"; - loginShell = "bash"; }; modules = [ ./system/default.nix ]; }; diff --git a/system/default.nix b/system/default.nix index b52a89f1..281ca8cb 100644 --- a/system/default.nix +++ b/system/default.nix @@ -5,7 +5,6 @@ inputs, username, hostName, - loginShell, ... }: { @@ -110,9 +109,8 @@ inherit authorizedKeys; }; ${username} = { - shell = pkgs.${loginShell}; - group = "users"; isNormalUser = true; + group = "users"; description = "Evie Litherland-Smith"; extraGroups = [ "networkmanager" @@ -185,9 +183,9 @@ localBinInPath = true; }; programs = { - ${loginShell} = lib.mkIf (loginShell != "bash") { enable = true; }; command-not-found.enable = false; ssh.startAgent = true; + fish.enable = true; nano = { enable = true; syntaxHighlight = true; diff --git a/system/home/plasma/konsole.nix b/system/home/plasma/konsole.nix index 75fd8935..7e5f7644 100644 --- a/system/home/plasma/konsole.nix +++ b/system/home/plasma/konsole.nix @@ -1,4 +1,9 @@ -{ pkgs, fonts, ... }: +{ + config, + pkgs, + fonts, + ... +}: { home.packages = [ pkgs.yakuake ]; programs.konsole = { @@ -8,6 +13,7 @@ profiles.onelight = { name = "One-Light"; colorScheme = "onelight"; + command = "${config.programs.fish}/bin/fish"; font = { name = fonts.monospace.name; size = fonts.sizes.terminal; diff --git a/system/home/shell/bat.nix b/system/home/shell/bat.nix new file mode 100644 index 00000000..ef4a0181 --- /dev/null +++ b/system/home/shell/bat.nix @@ -0,0 +1,10 @@ +{ ... }: +{ + programs.bat = { + enable = true; + config = { + theme = "OneHalfLight"; + style = "plain,numbers,changes"; + }; + }; +} diff --git a/system/home/shell/default.nix b/system/home/shell/default.nix index 36b07549..0345da0c 100644 --- a/system/home/shell/default.nix +++ b/system/home/shell/default.nix @@ -1,12 +1,16 @@ { pkgs, ... }: { imports = [ + ./bat.nix ./bottom.nix + ./direnv.nix + ./eza.nix ./fastfetch.nix + ./fzf.nix ./git.nix + ./readline.nix ./ssh.nix ./starship.nix - ./zsh.nix ]; home.packages = with pkgs; [ rclone @@ -14,53 +18,11 @@ du-dust ]; programs = { - bash = { - enable = true; - enableCompletion = true; - }; - bat = { - enable = true; - config = { - theme = "OneHalfLight"; - style = "plain,numbers,changes"; - }; - }; - eza = { - enable = true; - git = true; - icons = true; - extraOptions = [ "--octal-permissions" ]; - }; - direnv = { - enable = true; - nix-direnv.enable = true; - }; + bash.enable = true; + fish.enable = true; fd.enable = true; - fzf = { - enable = true; - defaultCommand = "${pkgs.fd}/bin/fd --type f"; - changeDirWidgetCommand = "${pkgs.fd}/bin/fd --type d"; - fileWidgetCommand = "${pkgs.fd}/bin/fd --type f"; - }; jq.enable = true; nix-index.enable = true; - readline = { - enable = true; - variables = { - bell-style = "visible"; - blink-matching-paren = "On"; - colored-completion-prefix = "On"; - colored-stats = "On"; - completion-ignore-case = "On"; - completion-map-case = "On"; - editing-mode = "emacs"; - expand-tilde = "On"; - horizontal-scroll-mode = "On"; - mark-directories = "On"; - mark-symlinked-directories = "On"; - visible-stats = "On"; - }; - }; ripgrep.enable = true; }; } diff --git a/system/home/shell/direnv.nix b/system/home/shell/direnv.nix new file mode 100644 index 00000000..b71ece6d --- /dev/null +++ b/system/home/shell/direnv.nix @@ -0,0 +1,7 @@ +{ ... }: +{ + programs.direnv = { + enable = true; + nix-direnv.enable = true; + }; +} diff --git a/system/home/shell/eza.nix b/system/home/shell/eza.nix new file mode 100644 index 00000000..2048a3a5 --- /dev/null +++ b/system/home/shell/eza.nix @@ -0,0 +1,9 @@ +{ ... }: +{ + programs.eza = { + enable = true; + git = true; + icons = true; + extraOptions = [ "--octal-permissions" ]; + }; +} diff --git a/system/home/shell/fish.nix b/system/home/shell/fish.nix new file mode 100644 index 00000000..8f832d12 --- /dev/null +++ b/system/home/shell/fish.nix @@ -0,0 +1,7 @@ +{ ... }: +{ + programs.fish = { + enable = true; + interactiveShellInit = "enable_transience"; + }; +} diff --git a/system/home/shell/fzf.nix b/system/home/shell/fzf.nix new file mode 100644 index 00000000..8ddf2103 --- /dev/null +++ b/system/home/shell/fzf.nix @@ -0,0 +1,9 @@ +{ pkgs, ... }: +{ + programs.fzf = { + enable = true; + defaultCommand = "${pkgs.fd}/bin/fd --type f"; + changeDirWidgetCommand = "${pkgs.fd}/bin/fd --type d"; + fileWidgetCommand = "${pkgs.fd}/bin/fd --type f"; + }; +} diff --git a/system/home/shell/readline.nix b/system/home/shell/readline.nix new file mode 100644 index 00000000..19c28418 --- /dev/null +++ b/system/home/shell/readline.nix @@ -0,0 +1,20 @@ +{ ... }: +{ + programs.readline = { + enable = true; + variables = { + bell-style = "visible"; + blink-matching-paren = "On"; + colored-completion-prefix = "On"; + colored-stats = "On"; + completion-ignore-case = "On"; + completion-map-case = "On"; + editing-mode = "emacs"; + expand-tilde = "On"; + horizontal-scroll-mode = "On"; + mark-directories = "On"; + mark-symlinked-directories = "On"; + visible-stats = "On"; + }; + }; +} diff --git a/system/home/shell/starship.nix b/system/home/shell/starship.nix index ce15bb9f..8d25118d 100644 --- a/system/home/shell/starship.nix +++ b/system/home/shell/starship.nix @@ -1,8 +1,9 @@ { ... }: { + programs.fish.interactiveShellInit = "enable_transience"; programs.starship = { enable = true; - enableTransience = false; + enableTransience = true; settings = { add_newline = true; aws.symbol = " ";