aboutsummaryrefslogtreecommitdiff
path: root/modules/terminal/system/programs/fish.nix
blob: 204a04846b5f70ba044364b0137d7b4caeabbb84 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
{
  pkgs,
  config,
  lib,
  ...
}: let
  cfg = config.collinux.terminal.shells.fish;

  init = ''
    set fish_greeting

    if status is-interactive
      alias cat bat
      set -x BAT_THEME "base16"

      alias ls "${pkgs.eza}/bin/eza -A -w 80 --group-directories-first -I '.git*'"
      alias tree "${pkgs.eza}/bin/eza -T"

      ${pkgs.fzf}/bin/fzf --fish | source
      set -x FZF_DEFAULT_OPTS "--color bg:#1E1E2E,bg+:#313244,border:#313244,fg:#CDD6F4,fg+:#CDD6F4,header:#F38BA8,hl:#F38BA8,hl+:#F38BA8,info:#CBA6F7,label:#CDD6F4,marker:#B4BEFE,pointer:#F5E0DC,prompt:#CBA6F7,selected-bg:#45475A,spinner:#F5E0DC"

      ${pkgs.pay-respects}/bin/pay-respects fish --alias | source

      set -x NH_FLAKE "$HOME/nixos"
    end
  '';
in
  lib.mkIf cfg.enable {
    hjem.users."${config.collinux.user.name}" = {
      files = {
        ".config/fish/config.fish".text = init;
      };

      packages = with pkgs; [
        fish
        bat
        eza
        fzf
        ripgrep
        fd
        moreutils
        zip
        unzip
        btop
        jq
        pay-respects
      ];
    };
  }