aboutsummaryrefslogtreecommitdiff
path: root/modules/terminal/system/programs/fish.nix
blob: 89d26efe542b719db5bbc5f9ea6f1f12d3935e26 (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
50
51
52
53
54
55
56
57
{
  pkgs,
  config,
  lib,
  ...
}: let
  cfg = config.collinux.terminal.shells.fish;

  init = pkgs.writeText "config.fish" ''
    set fish_greeting

    function starship_transient_prompt_func
      ${pkgs.starship}/bin/starship module character
    end

    if status is-interactive
      alias cat bat

      alias eza "eza -A -w 80 --group-directories-first -I '.git*'"
      alias ls eza
      alias tree "ls -T"

      ${pkgs.fzf}/bin/fzf --fish | source
      ${pkgs.starship}/bin/starship init fish | source

      enable_transience

      # env vars
      set -x EDITOR hx
      set -x NH_FLAKE "$HOME/nixos"

      set -x BAT_THEME "base16"
      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"
    end
  '';
in
  lib.mkIf cfg.enable {
    hjem.users."${config.collinux.user.name}" = {
      files = {
        ".config/fish/config.fish".source = init;
      };

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