From 06677aa82d13cdbef93a420c2f3222fdf8b809b4 Mon Sep 17 00:00:00 2001 From: Leonhard Kost Date: Sun, 8 Jun 2025 19:48:47 +0200 Subject: [PATCH] Use fish shell --- flake.nix | 4 ++-- home-manager/home.nix | 15 --------------- modules/home-manager/default.nix | 3 ++- modules/home-manager/fish.nix | 22 ++++++++++++++++++++++ modules/nixos/default.nix | 7 +++---- modules/nixos/fish.nix | 4 ++++ 6 files changed, 33 insertions(+), 22 deletions(-) create mode 100644 modules/home-manager/fish.nix create mode 100644 modules/nixos/fish.nix diff --git a/flake.nix b/flake.nix index c8fc933..21aa9de 100644 --- a/flake.nix +++ b/flake.nix @@ -51,8 +51,8 @@ desktop = nixpkgs.lib.nixosSystem { specialArgs = {inherit inputs outputs;}; modules = [ - # > Our main nixos configuration file < ./nixos/configuration.nix + ./modules/nixos ]; }; }; @@ -64,8 +64,8 @@ pkgs = nixpkgs.legacyPackages.x86_64-linux; # Home-manager requires 'pkgs' instance extraSpecialArgs = {inherit inputs outputs;}; modules = [ - # > Our main home-manager configuration file < ./home-manager/home.nix + ./modules/home-manager ]; }; }; diff --git a/home-manager/home.nix b/home-manager/home.nix index 79b2c5b..9cbe3f1 100644 --- a/home-manager/home.nix +++ b/home-manager/home.nix @@ -17,30 +17,15 @@ # You can also split up your configuration and import pieces of it here: # ./nvim.nix - ../modules/home-manager ]; nixpkgs = { - # You can add overlays here overlays = [ - # Add overlays your own flake exports (from overlays and pkgs dir): outputs.overlays.additions outputs.overlays.modifications outputs.overlays.unstable-packages - - # You can also add overlays exported from other flakes: - # neovim-nightly-overlay.overlays.default - - # Or define it inline, for example: - # (final: prev: { - # hi = final.hello.overrideAttrs (oldAttrs: { - # patches = [ ./change-hello-to-hi.patch ]; - # }); - # }) ]; - # Configure your nixpkgs instance config = { - # Disable if you don't want unfree packages allowUnfree = true; }; }; diff --git a/modules/home-manager/default.nix b/modules/home-manager/default.nix index 0ea69c2..ac9b405 100644 --- a/modules/home-manager/default.nix +++ b/modules/home-manager/default.nix @@ -1,5 +1,6 @@ -{ ... }: { +{ imports = [ ./git.nix + ./fish.nix ]; } diff --git a/modules/home-manager/fish.nix b/modules/home-manager/fish.nix new file mode 100644 index 0000000..1ec1e34 --- /dev/null +++ b/modules/home-manager/fish.nix @@ -0,0 +1,22 @@ +{ pkgs, ... }: { + home.packages = with pkgs; [ + fishPlugins.tide + ]; + + programs.fish = { + enable = true; + interactiveShellInit = '' + # no greeting + set fish_greeting + # vi key binds + set -g fish_key_bindings fish_vi_key_bindings + # accept completion with ctrl-y + bind --mode insert \cy forward-char + # initialize prompt + tide configure --auto --style=Lean --prompt_colors='16 colors' --show_time=No --lean_prompt_height='Two lines' --prompt_connection=Disconnected --prompt_spacing=Compact --icons='Few icons' --transient=Yes + ''; + shellAbbrs = { + la = "ls -lahH"; + }; + }; +} diff --git a/modules/nixos/default.nix b/modules/nixos/default.nix index 8605069..56cb916 100644 --- a/modules/nixos/default.nix +++ b/modules/nixos/default.nix @@ -1,6 +1,5 @@ -# Add your reusable NixOS modules to this directory, on their own file (https://nixos.wiki/wiki/Module). -# These should be stuff you would like to share with others, not your personal configurations. { - # List your module files here - # my-module = import ./my-module.nix; + imports = [ + ./fish.nix + ]; } diff --git a/modules/nixos/fish.nix b/modules/nixos/fish.nix new file mode 100644 index 0000000..8607554 --- /dev/null +++ b/modules/nixos/fish.nix @@ -0,0 +1,4 @@ +{ pkgs, ... }: { + programs.fish.enable = true; + users.defaultUserShell = pkgs.fish; +}