diff options
Diffstat (limited to 'modules/terminal')
19 files changed, 259 insertions, 218 deletions
diff --git a/modules/terminal/system/default.nix b/modules/terminal/hjem/default.nix index 120e967..7915319 100644 --- a/modules/terminal/system/default.nix +++ b/modules/terminal/hjem/default.nix @@ -1,6 +1,4 @@ -{config, ...}: let - cfg = config.collinux.terminal.shells; -in { +{ imports = [ ./programs/fzf.nix ./programs/bat.nix @@ -14,11 +12,4 @@ in { ./programs/helix.nix ./programs/fish.nix ]; - - programs.command-not-found.enable = false; # broken without nix-channels - - users.users."${config.collinux.user.name}" = { - shell = cfg.defaultShell; - ignoreShellProgramCheck = true; - }; } diff --git a/modules/terminal/hjem/programs/bash.nix b/modules/terminal/hjem/programs/bash.nix new file mode 100644 index 0000000..646cbf8 --- /dev/null +++ b/modules/terminal/hjem/programs/bash.nix @@ -0,0 +1,29 @@ +{ + pkgs, + config, + lib, + ... +}: let + cfg = config.collinux.terminal.shells.bash; +in + lib.mkIf cfg.enable { + files = { + ".bashrc".text = '' + eval "$(direnv hook bash)" + + for file in ~/.config/bash/conf.d/*; do source "$file"; done + ''; + + packages = with pkgs; [ + fish + ripgrep + fd + moreutils + zip + unzip + btop + jq + direnv + ]; + }; + } diff --git a/modules/terminal/hjem/programs/bat.nix b/modules/terminal/hjem/programs/bat.nix new file mode 100644 index 0000000..3d605cc --- /dev/null +++ b/modules/terminal/hjem/programs/bat.nix @@ -0,0 +1,25 @@ +{ + pkgs, + config, + lib, + ... +}: let + cfg = config.collinux.terminal.programs.bat; +in + lib.mkIf cfg.enable { + files = + (lib.optionalAttrs config.collinux.terminal.shells.fish.enable { + ".config/fish/conf.d/bat.fish".text = '' + alias cat bat + set -gx BAT_THEME "base16" + ''; + }) + // (lib.optionalAttrs config.collinux.terminal.shells.bash.enable { + ".config/fish/conf.d/bat.bash".text = '' + alias cat="bat" + export BAT_THEME="base16" + ''; + }); + + packages = [pkgs.bat]; + } diff --git a/modules/terminal/system/programs/broot.nix b/modules/terminal/hjem/programs/broot.nix index fdb480a..2907a85 100644 --- a/modules/terminal/system/programs/broot.nix +++ b/modules/terminal/hjem/programs/broot.nix @@ -115,18 +115,23 @@ }; in lib.mkIf cfg.enable { - hjem.users."${config.collinux.user.name}" = { - files = { + files = + { ".config/broot/conf.toml" = { generator = (pkgs.formats.toml {}).generate "conf.toml"; value = conf; }; - - ".config/fish/conf.d/broot.fish".text = lib.mkIf config.collinux.terminal.shells.fish.enable '' - ${pkgs.broot}/bin/broot --print-shell-function fish | source + } + // (lib.optionalAttrs config.collinux.terminal.shells.fish.enable { + ".config/fish/conf.d/broot.fish".text = '' + broot --print-shell-function fish | source + ''; + }) + // (lib.optionalAttrs config.collinux.terminal.shells.bash.enable { + ".config/bash/conf.d/broot.bash".text = '' + eval "$(broot --print-shell-function bash)" ''; - }; + }); - packages = [pkgs.broot]; - }; + packages = [pkgs.broot]; } diff --git a/modules/terminal/system/programs/cmus.nix b/modules/terminal/hjem/programs/cmus.nix index e5184ce..afd2350 100644 --- a/modules/terminal/system/programs/cmus.nix +++ b/modules/terminal/hjem/programs/cmus.nix @@ -78,20 +78,18 @@ else ""; in lib.mkIf cfg.enable { - hjem.users."${config.collinux.user.name}" = { - files = let - e = text: { - inherit text; - executable = true; - }; - in { - ".config/cmus/scripts/status.sh" = e scripts.statusDisplay; - - ".config/cmus/rc".text = cmus_rc; - ".config/cmus/catppuccin.theme".text = lib.mkIf (cfg.theme == "catppuccin") cmus_theme; - ".config/cava/config".text = cava_config; + files = let + e = text: { + inherit text; + executable = true; }; + in { + ".config/cmus/scripts/status.sh" = e scripts.statusDisplay; - packages = with pkgs; [cava cmus]; + ".config/cmus/rc".text = cmus_rc; + ".config/cmus/catppuccin.theme".text = lib.mkIf (cfg.theme == "catppuccin") cmus_theme; + ".config/cava/config".text = cava_config; }; + + packages = with pkgs; [cava cmus]; } diff --git a/modules/terminal/hjem/programs/eza.nix b/modules/terminal/hjem/programs/eza.nix new file mode 100644 index 0000000..b900ceb --- /dev/null +++ b/modules/terminal/hjem/programs/eza.nix @@ -0,0 +1,25 @@ +{ + pkgs, + lib, + config, + ... +}: let + cfg = config.collinux.terminal.programs.eza; +in + lib.mkIf cfg.enable { + files = + (lib.optionalAttrs config.collinux.terminal.shells.fish.enable { + ".config/fish/conf.d/eza.fish".text = '' + alias ls "eza -A -w 80 --group-directories-first -I '.git*'" + alias tree "eza -T" + ''; + }) + // (lib.optionalAttrs config.collinux.terminal.shells.fish.enable { + ".config/bash/conf.d/eza.bash".text = '' + alias ls="eza -A -w 80 --group-directories-first -I '.git*'" + alias tree="eza -T" + ''; + }); + + packages = [pkgs.eza]; + } diff --git a/modules/terminal/hjem/programs/fish.nix b/modules/terminal/hjem/programs/fish.nix new file mode 100644 index 0000000..1aa4a40 --- /dev/null +++ b/modules/terminal/hjem/programs/fish.nix @@ -0,0 +1,35 @@ +{ + pkgs, + config, + lib, + ... +}: let + cfg = config.collinux.terminal.shells.fish; +in + lib.mkIf cfg.enable { + files = { + ".config/fish/config.fish".text = '' + set fish_greeting + + function fish_title + echo fish (prompt_pwd) + end + + direnv hook fish | source + pay-respects fish --alias | source + ''; + }; + + packages = with pkgs; [ + fish + ripgrep + fd + moreutils + zip + unzip + btop + jq + direnv + pay-respects + ]; + } diff --git a/modules/terminal/hjem/programs/fzf.nix b/modules/terminal/hjem/programs/fzf.nix new file mode 100644 index 0000000..5a51739 --- /dev/null +++ b/modules/terminal/hjem/programs/fzf.nix @@ -0,0 +1,25 @@ +{ + pkgs, + config, + lib, + ... +}: let + cfg = config.collinux.terminal.programs.fzf; +in + lib.mkIf cfg.enable { + files = + (lib.optionalAttrs config.collinux.terminal.shells.fish.enable { + ".config/fish/conf.d/fzf.fish".text = '' + fzf --fish | source + set -gx 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" + ''; + }) + // (lib.optionalAttrs config.collinux.terminal.shells.bash.enable { + ".config/bash/conf.d/fzf.bash".text = '' + eval "$(fzf --bash)" + export 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" + ''; + }); + + packages = [pkgs.fzf]; + } diff --git a/modules/terminal/system/programs/git.nix b/modules/terminal/hjem/programs/git.nix index 9943e40..d196f26 100644 --- a/modules/terminal/system/programs/git.nix +++ b/modules/terminal/hjem/programs/git.nix @@ -18,14 +18,12 @@ }; }; in { - hjem.users."${config.collinux.user.name}" = { - files = { - ".config/git/config" = { - generator = lib.generators.toGitINI; - value = git_config; - }; + files = { + ".config/git/config" = { + generator = lib.generators.toGitINI; + value = git_config; }; - - packages = [pkgs.git]; }; + + packages = [pkgs.git]; } diff --git a/modules/terminal/system/programs/helix.nix b/modules/terminal/hjem/programs/helix.nix index 49389ef..e66877b 100644 --- a/modules/terminal/system/programs/helix.nix +++ b/modules/terminal/hjem/programs/helix.nix @@ -139,33 +139,27 @@ }; in lib.mkIf cfg.enable { - nixpkgs.overlays = [ - (self: super: { - # rename window to filename when editing file - helix = self.writeShellScriptBin "hx" '' - file="$1" - printf '\033]2;%s\033\\' "hx $file" - exec ${super.helix}/bin/hx "$@" - ''; - }) - ]; - - hjem.users."${config.collinux.user.name}" = { - files = let - t = value: { - generator = (pkgs.formats.toml {}).generate "toml_file"; - inherit value; - }; - in { + files = let + t = value: { + generator = (pkgs.formats.toml {}).generate "toml_file"; + inherit value; + }; + in + { ".config/helix/config.toml" = t settings; ".config/helix/languages.toml" = t languages; ".config/helix/themes/catppuccin_mocha_transparent.toml" = t theme; - - ".config/fish/conf.d/helix.fish".text = lib.mkIf config.collinux.terminal.shells.fish.enable '' + } + // (lib.optionalAttrs config.collinux.terminal.shells.fish.enable { + ".config/fish/conf.d/helix.fish".text = '' set -gx EDITOR hx ''; - }; + }) + // (lib.optionalAttrs config.collinux.terminal.shells.bash.enable { + ".config/bash/conf.d/helix.bash".text = '' + EDITOR=hx + ''; + }); - packages = [pkgs.helix]; - }; + packages = [pkgs.helix]; } diff --git a/modules/terminal/system/programs/lazygit.nix b/modules/terminal/hjem/programs/lazygit.nix index e3e2b42..a939446 100644 --- a/modules/terminal/system/programs/lazygit.nix +++ b/modules/terminal/hjem/programs/lazygit.nix @@ -28,14 +28,12 @@ }; in lib.mkIf cfg.enable { - hjem.users."${config.collinux.user.name}" = { - files = { - ".config/lazygit/config.yml" = { - generator = lib.generators.toYAML {}; - value = settings; - }; + files = { + ".config/lazygit/config.yml" = { + generator = lib.generators.toYAML {}; + value = settings; }; - - packages = [pkgs.lazygit]; }; + + packages = [pkgs.lazygit]; } diff --git a/modules/terminal/system/programs/starship.nix b/modules/terminal/hjem/programs/starship.nix index c70a132..e9d79b5 100644 --- a/modules/terminal/system/programs/starship.nix +++ b/modules/terminal/hjem/programs/starship.nix @@ -35,14 +35,15 @@ }; in lib.mkIf cfg.enable { - hjem.users."${config.collinux.user.name}" = { - files = { + files = + { ".config/starship.toml" = { generator = (pkgs.formats.toml {}).generate "starship.toml"; value = settings; }; - - ".config/fish/conf.d/starship.fish".text = lib.mkIf config.collinux.terminal.shells.fish.enable '' + } + // (lib.optionalAttrs config.collinux.terminal.shells.fish.enable { + ".config/fish/conf.d/starship.fish".text = '' function starship_transient_prompt_func starship module character end @@ -50,8 +51,12 @@ in starship init fish | source enable_transience ''; - }; + }) + // (lib.optionalAttrs config.collinux.terminal.shells.bash.enable { + ".config/bash/conf.d/starship.bash".text = '' + eval "$(starship init bash)" + ''; + }); - packages = [pkgs.starship]; - }; + packages = [pkgs.starship]; } diff --git a/modules/terminal/system/programs/tmux.nix b/modules/terminal/hjem/programs/tmux.nix index 3fb7b73..738e729 100644 --- a/modules/terminal/system/programs/tmux.nix +++ b/modules/terminal/hjem/programs/tmux.nix @@ -285,57 +285,55 @@ ''; in lib.mkIf cfg.enable { - hjem.users."${config.collinux.user.name}" = { - files = let - e = text: { - inherit text; - executable = true; - }; - in { - # helpers - ".config/tmux/scripts/minibuffer.sh" = e scripts.minibuffer; - ".config/tmux/scripts/menu.sh" = e scripts.menu; - ".config/tmux/scripts/split.sh" = e scripts.paneSplit; - - # sessionizer - ".config/tmux/scripts/sessionizer.sh" = e scripts.sessionizer; - ".config/tmux/broot/sessionizer.toml" = { - generator = (pkgs.formats.toml {}).generate "sessionizer.toml"; - value = broot_sessionizer_config; - }; - ".config/tmux/scripts/launch-sessionizer.sh" = e scripts.launchSessionizer; - ".config/tmux/scripts/clean-sessions.sh" = e scripts.cleanSessions; - ".config/tmux/scripts/new-session.sh" = e scripts.newSession; - ".config/tmux/scripts/sessions-menu.sh" = e scripts.sessionsMenu; + files = let + e = text: { + inherit text; + executable = true; + }; + in { + # helpers + ".config/tmux/scripts/minibuffer.sh" = e scripts.minibuffer; + ".config/tmux/scripts/menu.sh" = e scripts.menu; + ".config/tmux/scripts/split.sh" = e scripts.paneSplit; - # find-file - ".config/tmux/scripts/launch-find-file.sh" = e scripts.launchFindFile; - ".config/tmux/broot/file.toml" = { - generator = (pkgs.formats.toml {}).generate "file.toml"; - value = broot_file_config; - }; + # sessionizer + ".config/tmux/scripts/sessionizer.sh" = e scripts.sessionizer; + ".config/tmux/broot/sessionizer.toml" = { + generator = (pkgs.formats.toml {}).generate "sessionizer.toml"; + value = broot_sessionizer_config; + }; + ".config/tmux/scripts/launch-sessionizer.sh" = e scripts.launchSessionizer; + ".config/tmux/scripts/clean-sessions.sh" = e scripts.cleanSessions; + ".config/tmux/scripts/new-session.sh" = e scripts.newSession; + ".config/tmux/scripts/sessions-menu.sh" = e scripts.sessionsMenu; - # search buffer - ".config/tmux/scripts/search-buffer.sh" = e scripts.searchBuffer; + # find-file + ".config/tmux/scripts/launch-find-file.sh" = e scripts.launchFindFile; + ".config/tmux/broot/file.toml" = { + generator = (pkgs.formats.toml {}).generate "file.toml"; + value = broot_file_config; + }; - # pane search - ".config/tmux/scripts/pane-search.sh" = e scripts.paneSearch; + # search buffer + ".config/tmux/scripts/search-buffer.sh" = e scripts.searchBuffer; - # fzf-exec - ".config/tmux/scripts/tmux-doc.sh" = e scripts.tmuxDoc; - ".config/tmux/scripts/fzf-exec.sh" = e scripts.fzfExec; + # pane search + ".config/tmux/scripts/pane-search.sh" = e scripts.paneSearch; - # leader menu - ".config/tmux/scripts/leader-menu.sh" = e scripts.leaderMenu; + # fzf-exec + ".config/tmux/scripts/tmux-doc.sh" = e scripts.tmuxDoc; + ".config/tmux/scripts/fzf-exec.sh" = e scripts.fzfExec; - # Bar - ".config/tmux/scripts/battery.sh" = e scripts.battery; - ".config/tmux/scripts/bar.sh" = e scripts.bar; - ".config/tmux/scripts/catppuccin-borders.sh" = e scripts.catpuccinNoBorders; + # leader menu + ".config/tmux/scripts/leader-menu.sh" = e scripts.leaderMenu; - ".config/tmux/tmux.conf".text = tmux-conf; - }; + # Bar + ".config/tmux/scripts/battery.sh" = e scripts.battery; + ".config/tmux/scripts/bar.sh" = e scripts.bar; + ".config/tmux/scripts/catppuccin-borders.sh" = e scripts.catpuccinNoBorders; - packages = [pkgs.tmux]; + ".config/tmux/tmux.conf".text = tmux-conf; }; + + packages = [pkgs.tmux]; } diff --git a/modules/terminal/nixos/default.nix b/modules/terminal/nixos/default.nix new file mode 100644 index 0000000..8118c63 --- /dev/null +++ b/modules/terminal/nixos/default.nix @@ -0,0 +1,10 @@ +{config, ...}: let + cfg = config.collinux.terminal.shells; +in { + programs.command-not-found.enable = false; # broken without nix-channels + + users.users."${config.collinux.user.name}" = { + shell = cfg.defaultShell; + ignoreShellProgramCheck = true; + }; +} diff --git a/modules/terminal/options.nix b/modules/terminal/options.nix index af7f0ee..47f2057 100644 --- a/modules/terminal/options.nix +++ b/modules/terminal/options.nix @@ -25,11 +25,9 @@ in { default = let cfg = config.collinux.terminal.shells; in - if (cfg.fish.enable && !cfg.bash.enable) + if cfg.fish.enable then pkgs.fish - else if (!cfg.fish.enable && cfg.bash.enable) - then pkgs.bash - else null; + else pkgs.bash; }; }; diff --git a/modules/terminal/system/programs/bat.nix b/modules/terminal/system/programs/bat.nix deleted file mode 100644 index 6f53dd7..0000000 --- a/modules/terminal/system/programs/bat.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ - pkgs, - config, - lib, - ... -}: let - cfg = config.collinux.terminal.programs.bat; -in - lib.mkIf cfg.enable { - hjem.users."${config.collinux.user.name}" = { - files.".config/fish/conf.d/bat.fish".text = '' - alias cat bat - set -gx BAT_THEME "base16" - ''; - - packages = [pkgs.bat]; - }; - } diff --git a/modules/terminal/system/programs/eza.nix b/modules/terminal/system/programs/eza.nix deleted file mode 100644 index 52c290d..0000000 --- a/modules/terminal/system/programs/eza.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ - pkgs, - lib, - config, - ... -}: let - cfg = config.collinux.terminal.programs.eza; -in - lib.mkIf cfg.enable { - hjem.users."${config.collinux.user.name}" = { - files.".config/fish/conf.d/eza.fish".text = '' - alias ls "eza -A -w 80 --group-directories-first -I '.git*'" - alias tree "eza -T" - ''; - - packages = [pkgs.eza]; - }; - } diff --git a/modules/terminal/system/programs/fish.nix b/modules/terminal/system/programs/fish.nix deleted file mode 100644 index fe3ff88..0000000 --- a/modules/terminal/system/programs/fish.nix +++ /dev/null @@ -1,39 +0,0 @@ -{ - pkgs, - config, - lib, - ... -}: let - cfg = config.collinux.terminal.shells.fish; - - init = '' - set fish_greeting - - function fish_title - echo fish (prompt_pwd) - end - - direnv hook fish | source - pay-respects fish --alias | source - ''; -in - lib.mkIf cfg.enable { - hjem.users."${config.collinux.user.name}" = { - files = { - ".config/fish/config.fish".text = init; - }; - - packages = with pkgs; [ - fish - ripgrep - fd - moreutils - zip - unzip - btop - jq - direnv - pay-respects - ]; - }; - } diff --git a/modules/terminal/system/programs/fzf.nix b/modules/terminal/system/programs/fzf.nix deleted file mode 100644 index 486d4e2..0000000 --- a/modules/terminal/system/programs/fzf.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ - pkgs, - config, - lib, - ... -}: let - cfg = config.collinux.terminal.programs.fzf; -in - lib.mkIf cfg.enable { - hjem.users."${config.collinux.user.name}" = { - files.".config/fish/conf.d/fzf.fish".text = '' - ${pkgs.fzf}/bin/fzf --fish | source - set -gx 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" - ''; - - packages = [pkgs.fzf]; - }; - } |
