diff --git a/common/users/cameron/home-manager/alacritty.nix b/common/users/cameron/home-manager/alacritty.nix new file mode 100644 index 0000000..e5f7ddb --- /dev/null +++ b/common/users/cameron/home-manager/alacritty.nix @@ -0,0 +1,31 @@ +{ pkgs, lib, inputs, config, osConfig, ... }: + +{ + programs.alacritty = { + enable = config.term == "alacritty"; + + settings = { + window = { + opacity = 0.95; + dynamic_padding = true; + }; + + "colors.primary" = { + foreground = "#cccccc"; + background = "#333333"; + }; + + cursor = { + "style.blinking" = "On"; + blink_interval = 500; + blink_timeout = 15; + }; + + mouse = { + hide_when_typing = true; + }; + }; + }; + + runInTerm = if (config.term == "alacritty") then "${pkgs.alacritty}/bin/alacritty -e" else lib.mkDefault ""; +} diff --git a/common/users/cameron/home-manager/hyprland.nix b/common/users/cameron/home-manager/hyprland.nix index ffd25f0..ee03e7c 100644 --- a/common/users/cameron/home-manager/hyprland.nix +++ b/common/users/cameron/home-manager/hyprland.nix @@ -1,4 +1,4 @@ -{ pkgs, lib, osConfig, ... }: +{ pkgs, lib, config, osConfig, ... }: { config = lib.mkIf (builtins.elem "hyprland" osConfig.desktop) ( @@ -18,7 +18,7 @@ settings = { "$mod" = "SUPER"; - "$term" = "kitty"; + "$term" = "${config.term}"; "$browser" = "firefox"; "$menu" = "dmenu_path | wmenu -p 'Run:' -l 10 | xargs hyprctl dispatch exec"; @@ -121,7 +121,7 @@ ]; bind = [ - "$mod, Return, exec, $term" + "$mod, Return, exec, ${config.runInTerm} ${pkgs.tmux}" "$mod, B, exec, $browser" "$mod, E, killactive," "$mod, Q, exec, hyprctl kill" diff --git a/common/users/cameron/home-manager/kitty.nix b/common/users/cameron/home-manager/kitty.nix index 56ba4f5..fdd8044 100644 --- a/common/users/cameron/home-manager/kitty.nix +++ b/common/users/cameron/home-manager/kitty.nix @@ -1,8 +1,8 @@ -{ pkgs, lib, osConfig, ... }: +{ pkgs, lib, config, osConfig, ... }: { programs.kitty = { - enable = (builtins.length osConfig.desktop) != 0; + enable = config.term == "kitty"; settings = { background = "#333333"; @@ -14,4 +14,6 @@ update_check_interval = 0; }; }; + + runInTerm = if (config.term == "kitty") then "${pkgs.kitty}/bin/kitty" else lib.mkDefault ""; } diff --git a/common/users/cameron/home-manager/options.nix b/common/users/cameron/home-manager/options.nix index 1f2a1e1..8bf3a6b 100644 --- a/common/users/cameron/home-manager/options.nix +++ b/common/users/cameron/home-manager/options.nix @@ -2,14 +2,14 @@ with lib; { options = { - defaultTerminal = mkOption { - default = "kitty"; - type = types.str; + term = mkOption { + default = ""; + type = types.enum [ "" "kitty" "alacritty" ]; }; - terminal = mkOption { - default = "${pkgs.kitty}/bin/kitty"; - type = types.path; + runInTerm = mkOption { + default = ""; + type = types.str; }; }; } diff --git a/common/users/cameron/home-manager/sway.nix b/common/users/cameron/home-manager/sway.nix index 7e5aa81..e2af940 100644 --- a/common/users/cameron/home-manager/sway.nix +++ b/common/users/cameron/home-manager/sway.nix @@ -8,7 +8,7 @@ enable = true; config = { modifier = "Mod4"; - terminal = "${pkgs.kitty}/bin/kitty"; + terminal = "${config.term}"; menu = "${pkgs.dmenu}/bin/dmenu_path | ${pkgs.wmenu}/bin/wmenu -p 'Run:' -l 10 | ${pkgs.findutils}/bin/xargs swaymsg exec --"; @@ -53,7 +53,7 @@ menu = config.wayland.windowManager.sway.config.menu; in lib.mkOptionDefault { "${mod}+c" = "mark --toggle caffeine"; - "${mod}+Return" = "exec ${pkgs.kitty}/bin/kitty"; + "${mod}+Return" = "exec ${config.runInTerm} ${pkgs.tmux}"; "${mod}+n" = "exec ${pkgs.firefox}/bin/firefox"; "${mod}+d" = "exec pkill wmenu || ${menu}"; "${mod}+Shift+q" = "kill"; diff --git a/common/users/cameron/home-manager/swaylock.nix b/common/users/cameron/home-manager/swaylock.nix index 84f9fdf..bbd6171 100644 --- a/common/users/cameron/home-manager/swaylock.nix +++ b/common/users/cameron/home-manager/swaylock.nix @@ -1,14 +1,12 @@ { pkgs, lib, osConfig, ... }: { - config = lib.mkIf (builtins.elem "hyprland" osConfig.desktop || builtins.elem "sway" osConfig.desktop) - { programs.swaylock = { - enable = true; + programs.swaylock = { + enable = builtins.elem "hyprland" osConfig.desktop || builtins.elem "sway" osConfig.desktop; settings = { ignore-empty-password = true; color = "333333"; image = "${./other-files/wallpapers/lake.jpg}"; }; }; - }; } diff --git a/common/users/cameron/home-manager/tmux.nix b/common/users/cameron/home-manager/tmux.nix new file mode 100644 index 0000000..b914499 --- /dev/null +++ b/common/users/cameron/home-manager/tmux.nix @@ -0,0 +1,25 @@ +{ pkgs, lib, inputs, config, osConfig, ... }: + +{ + programs.tmux = { + enable = true; + + terminal = "tmux-256color"; + keyMode = "vi"; + mouse = true; + + extraConfig = '' +set -g prefix C-a +set -g prefix2 C-k + + +set -g status-right '"#T"' +set -g status-style 'bg=#262626 fg=#cccccc' +set-hook -g window-linked 'set -F status "#{?#{==:#{session_windows},1},off,on}"' +set-hook -g window-unlinked 'set -F status "#{?#{==:#{session_windows},1},off,on}"' + + +set -ga terminal-overrides ",*:Tc" + ''; + }; +} diff --git a/common/users/cameron/home-manager/waybar.nix b/common/users/cameron/home-manager/waybar.nix index aee47e2..d19ef6f 100644 --- a/common/users/cameron/home-manager/waybar.nix +++ b/common/users/cameron/home-manager/waybar.nix @@ -129,7 +129,7 @@ car = ""; default = ["" "" ""]; }; - on-click = "${config.terminal} pulsemixer"; + on-click = "${config.runInTerm} ${pkgs.pulsemixer}"; }; }; diff --git a/common/users/cameron/home.nix b/common/users/cameron/home.nix index db708df..6879680 100644 --- a/common/users/cameron/home.nix +++ b/common/users/cameron/home.nix @@ -13,8 +13,11 @@ ./home-manager/swaylock.nix ./home-manager/waybar.nix + ./home-manager/alacritty.nix + ./home-manager/kitty.nix ./home-manager/zsh.nix ./home-manager/nvim.nix + ./home-manager/tmux.nix ./home-manager/lf.nix ];