diff options
| author | Collin Williams <96917990+bluedragon1221@users.noreply.github.com> | 2025-07-08 14:55:31 +0000 |
|---|---|---|
| committer | Collin Williams <96917990+bluedragon1221@users.noreply.github.com> | 2025-07-08 14:55:31 +0000 |
| commit | fabc1603e42673afddde37ef121e0b8935559086 (patch) | |
| tree | e09834122fb348d6253d9ab48549bf559c043dfd /modules/terminal | |
| parent | c31425298f3de9fff78d38a36ccc2d8e14c580ee (diff) | |
move stuff to their own files; system update
Diffstat (limited to 'modules/terminal')
| -rw-r--r-- | modules/terminal/options.nix | 4 | ||||
| -rw-r--r-- | modules/terminal/system/default.nix | 19 | ||||
| -rw-r--r-- | modules/terminal/system/programs/bat.nix | 18 | ||||
| -rw-r--r-- | modules/terminal/system/programs/broot.nix | 4 | ||||
| -rw-r--r-- | modules/terminal/system/programs/eza.nix | 18 | ||||
| -rw-r--r-- | modules/terminal/system/programs/fish.nix | 18 | ||||
| -rw-r--r-- | modules/terminal/system/programs/fzf.nix | 18 | ||||
| -rw-r--r-- | modules/terminal/system/programs/nh.nix | 14 | ||||
| -rw-r--r-- | modules/terminal/system/programs/starship.nix | 8 | ||||
| -rw-r--r-- | modules/terminal/system/programs/tmux.nix | 34 |
10 files changed, 110 insertions, 45 deletions
diff --git a/modules/terminal/options.nix b/modules/terminal/options.nix index 9bfcc58..f7510d0 100644 --- a/modules/terminal/options.nix +++ b/modules/terminal/options.nix @@ -39,6 +39,7 @@ in { lazygit.enable = mkEnableOption "lazygit"; cmus = mkProgramOption "cmus"; + nh.enable = mkEnableOption "nh nix helper"; git = { enable = mkEnableOption "git"; @@ -60,6 +61,9 @@ in { }; tmux = mkProgramOption "tmux terminal multiplexer"; + fzf = mkProgramOption "fzf fuzzy finder"; + bat = mkProgramOption "bat cat replacement"; + eza = mkProgramOption "eza ls replacement"; }; }; }; diff --git a/modules/terminal/system/default.nix b/modules/terminal/system/default.nix index 9268a1a..d113944 100644 --- a/modules/terminal/system/default.nix +++ b/modules/terminal/system/default.nix @@ -1,19 +1,19 @@ -{ - config, - pkgs, - ... -}: let +{config, ...}: let cfg = config.collinux.terminal.shells; in { imports = [ - ./programs/cmus.nix - ./programs/fish.nix - ./programs/git.nix - ./programs/helix.nix + ./programs/fzf.nix + ./programs/bat.nix + ./programs/nh.nix ./programs/lazygit.nix + ./programs/eza.nix ./programs/starship.nix + ./programs/git.nix ./programs/tmux.nix ./programs/broot.nix + ./programs/cmus.nix + ./programs/helix.nix + ./programs/fish.nix ]; programs.command-not-found.enable = false; # broken without nix-channels @@ -21,6 +21,5 @@ in { users.users."${config.collinux.user.name}" = { shell = cfg.defaultShell; ignoreShellProgramCheck = true; - packages = [pkgs.nh]; # Couldn't figure out where else to put this }; } diff --git a/modules/terminal/system/programs/bat.nix b/modules/terminal/system/programs/bat.nix new file mode 100644 index 0000000..6f53dd7 --- /dev/null +++ b/modules/terminal/system/programs/bat.nix @@ -0,0 +1,18 @@ +{ + 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/broot.nix b/modules/terminal/system/programs/broot.nix index 4a15063..585e07a 100644 --- a/modules/terminal/system/programs/broot.nix +++ b/modules/terminal/system/programs/broot.nix @@ -25,9 +25,7 @@ in ".config/broot/conf.toml".source = conf; ".config/fish/conf.d/broot.fish".text = lib.mkIf config.collinux.terminal.shells.fish.enable '' - if status is-interactive - ${pkgs.broot}/bin/broot --print-shell-function fish | source - end + ${pkgs.broot}/bin/broot --print-shell-function fish | source ''; }; diff --git a/modules/terminal/system/programs/eza.nix b/modules/terminal/system/programs/eza.nix new file mode 100644 index 0000000..52c290d --- /dev/null +++ b/modules/terminal/system/programs/eza.nix @@ -0,0 +1,18 @@ +{ + 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 index 204a048..55e15a0 100644 --- a/modules/terminal/system/programs/fish.nix +++ b/modules/terminal/system/programs/fish.nix @@ -9,20 +9,7 @@ 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 + pay-respects fish --alias | source ''; in lib.mkIf cfg.enable { @@ -33,9 +20,6 @@ in packages = with pkgs; [ fish - bat - eza - fzf ripgrep fd moreutils diff --git a/modules/terminal/system/programs/fzf.nix b/modules/terminal/system/programs/fzf.nix new file mode 100644 index 0000000..486d4e2 --- /dev/null +++ b/modules/terminal/system/programs/fzf.nix @@ -0,0 +1,18 @@ +{ + 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]; + }; + } diff --git a/modules/terminal/system/programs/nh.nix b/modules/terminal/system/programs/nh.nix new file mode 100644 index 0000000..2fcd674 --- /dev/null +++ b/modules/terminal/system/programs/nh.nix @@ -0,0 +1,14 @@ +{ + config, + lib, + ... +}: let + cfg = config.collinux.terminal.programs.nh; +in + lib.mkIf cfg.enable { + programs.nh = { + enable = true; + flake = "/home/collin/nixos"; + clean.enable = true; + }; + } diff --git a/modules/terminal/system/programs/starship.nix b/modules/terminal/system/programs/starship.nix index fdd7965..748c94e 100644 --- a/modules/terminal/system/programs/starship.nix +++ b/modules/terminal/system/programs/starship.nix @@ -41,13 +41,11 @@ in ".config/starship.toml".source = settings; ".config/fish/conf.d/starship.fish".text = lib.mkIf config.collinux.terminal.shells.fish.enable '' function starship_transient_prompt_func - ${pkgs.starship}/bin/starship module character + starship module character end - if status is-interactive - ${pkgs.starship}/bin/starship init fish | source - enable_transience - end + starship init fish | source + enable_transience ''; }; diff --git a/modules/terminal/system/programs/tmux.nix b/modules/terminal/system/programs/tmux.nix index fc68450..63b9296 100644 --- a/modules/terminal/system/programs/tmux.nix +++ b/modules/terminal/system/programs/tmux.nix @@ -6,14 +6,16 @@ }: let cfg = config.collinux.terminal.programs.tmux; - scripts.bat = pkgs.writeShellScriptBin "battery.sh" '' + scriptsDir = "~/.config/tmux/scripts"; + + scripts.battery = '' energy_now=$(cat /sys/class/power_supply/BAT0/energy_now) energy_full=$(cat /sys/class/power_supply/BAT0/energy_full) percentage=$((energy_now * 100 / energy_full)) printf "%.0f%%" "$percentage" ''; - scripts.primeProjects = pkgs.writeShellScriptBin "projects.sh" '' + scripts.sessionizer = '' 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" projects=" @@ -42,7 +44,7 @@ fi ''; - scripts.cleanSessions = pkgs.writeShellScriptBin "clean-sessions.sh" '' + scripts.cleanSessions = '' current="$(tmux display-message -p '#S')" tmux list-sessions -F '#S' | while read -r line; do @@ -52,7 +54,7 @@ done ''; - scripts.bar = pkgs.writeShellScriptBin "bar.sh" '' + scripts.bar = '' text="#c6d0f5" text_dark="#7F849C" blue="#b3befe" @@ -81,7 +83,7 @@ tset window-status-separator " " tset status-right-style fg=$red - tset status-right "#(${scripts.bat}/bin/battery.sh)" + tset status-right "#(${scriptsDir}/battery.sh)" ## pane borders tset pane-border-style fg=$bg_dark,bg=$bg_dark @@ -130,20 +132,32 @@ set-hook -g window-linked 'if -F "#{==:#{session_windows},1}" { set status off } { set status on }' set-hook -g window-unlinked 'if -F "#{==:#{session_windows},1}" { set status off } { set status on }' - run-shell "${scripts.bar}/bin/bar.sh" + run-shell "${scriptsDir}/bar.sh" # Sessions - set-hook -ag client-detached 'run-shell ${scripts.cleanSessions}/bin/clean-sessions.sh' - set-hook -ag client-session-changed 'run-shell ${scripts.cleanSessions}/bin/clean-sessions.sh' + set-hook -ag client-detached 'run-shell ${scriptsDir}/clean-sessions.sh' + set-hook -ag client-session-changed 'run-shell ${scriptsDir}/clean-sessions.sh' - bind-key -n C-f run-shell "${scripts.primeProjects}/bin/projects.sh" + bind-key -n C-f run-shell "${scriptsDir}/sessionizer.sh" bind-key -n C-g display-popup -E -w 80% -h 80% -x C -y C -d "#{pane_current_path}" "${pkgs.lazygit}/bin/lazygit" ''; in lib.mkIf cfg.enable { hjem.users."${config.collinux.user.name}" = { - files.".config/tmux/tmux.conf".text = tmux-conf; + files = let + e = text: { + inherit text; + executable = true; + }; + in { + ".config/tmux/scripts/battery.sh" = e scripts.battery; + ".config/tmux/scripts/sessionizer.sh" = e scripts.sessionizer; + ".config/tmux/scripts/clean-sessions.sh" = e scripts.cleanSessions; + ".config/tmux/scripts/bar.sh" = e scripts.bar; + + ".config/tmux/tmux.conf".text = tmux-conf; + }; packages = [pkgs.tmux]; }; |
