aboutsummaryrefslogtreecommitdiff
path: root/modules/terminal
diff options
context:
space:
mode:
authorCollin Williams <96917990+bluedragon1221@users.noreply.github.com>2025-07-08 14:55:31 +0000
committerCollin Williams <96917990+bluedragon1221@users.noreply.github.com>2025-07-08 14:55:31 +0000
commitfabc1603e42673afddde37ef121e0b8935559086 (patch)
treee09834122fb348d6253d9ab48549bf559c043dfd /modules/terminal
parentc31425298f3de9fff78d38a36ccc2d8e14c580ee (diff)
move stuff to their own files; system update
Diffstat (limited to 'modules/terminal')
-rw-r--r--modules/terminal/options.nix4
-rw-r--r--modules/terminal/system/default.nix19
-rw-r--r--modules/terminal/system/programs/bat.nix18
-rw-r--r--modules/terminal/system/programs/broot.nix4
-rw-r--r--modules/terminal/system/programs/eza.nix18
-rw-r--r--modules/terminal/system/programs/fish.nix18
-rw-r--r--modules/terminal/system/programs/fzf.nix18
-rw-r--r--modules/terminal/system/programs/nh.nix14
-rw-r--r--modules/terminal/system/programs/starship.nix8
-rw-r--r--modules/terminal/system/programs/tmux.nix34
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];
};