From b05e18cf0c5f9ce5a0d6aed7eb6594d8bb2a1255 Mon Sep 17 00:00:00 2001 From: Gabriel Arazas Date: Wed, 4 Dec 2024 16:28:50 +0800 Subject: [PATCH] users/foo-dogsquared/programs/terminal-emulator: init --- .../foo-dogsquared/modules/default.nix | 1 + .../modules/programs/terminal-emulator.nix | 43 +++++++++++++++++++ .../modules/setups/development.nix | 1 + 3 files changed, 45 insertions(+) create mode 100644 configs/home-manager/foo-dogsquared/modules/programs/terminal-emulator.nix diff --git a/configs/home-manager/foo-dogsquared/modules/default.nix b/configs/home-manager/foo-dogsquared/modules/default.nix index 848690cb..10f420be 100644 --- a/configs/home-manager/foo-dogsquared/modules/default.nix +++ b/configs/home-manager/foo-dogsquared/modules/default.nix @@ -14,6 +14,7 @@ ./programs/custom-homepage.nix ./programs/shell.nix ./programs/terminal-multiplexer.nix + ./programs/terminal-emulator.nix ./programs/vs-code.nix ./services/backup diff --git a/configs/home-manager/foo-dogsquared/modules/programs/terminal-emulator.nix b/configs/home-manager/foo-dogsquared/modules/programs/terminal-emulator.nix new file mode 100644 index 00000000..a7fea071 --- /dev/null +++ b/configs/home-manager/foo-dogsquared/modules/programs/terminal-emulator.nix @@ -0,0 +1,43 @@ +{ config, lib, pkgs, ... }: + +let + userCfg = config.users.foo-dogsquared; + cfg = userCfg.programs.terminal-emulator; + + shellIntegrationFragment = '' + source ${pkgs.bash-preexec}/share/bash/bash-preexec.sh + source ${config.programs.wezterm.package}/etc/profile.d/wezterm.sh + ''; +in +{ + options.users.foo-dogsquared.programs.terminal-emulator.enable = + lib.mkEnableOption "foo-dogsquared's terminal emulator setup"; + + config = lib.mkIf cfg.enable { + programs.bash.initExtra = shellIntegrationFragment; + programs.zsh.initExtra = shellIntegrationFragment; + + # We're just making a version of Wezterm with the default arguments if + # the user has them. + home.packages = + let + inherit (pkgs) wezterm; + weztermUserDefaultDesktop = pkgs.makeDesktopItem { + name = "wezterm-user-default-args"; + desktopName = "WezTerm (user)"; + comment = "Wez's Terminal Emulator"; + keywords = [ "shell" "prompt" "command" "commandline" "cmd" ]; + icon = "org.wezfurlong.wezterm"; + startupWMClass = "org.wezfurlong.wezterm"; + tryExec = "wezterm"; + exec = "wezterm"; + type = "Application"; + categories = [ "System" "TerminalEmulator" "Utility" ]; + }; + in + [ + wezterm + weztermUserDefaultDesktop + ]; + }; +} diff --git a/configs/home-manager/foo-dogsquared/modules/setups/development.nix b/configs/home-manager/foo-dogsquared/modules/setups/development.nix index 2c1fb6cb..f66bd096 100644 --- a/configs/home-manager/foo-dogsquared/modules/setups/development.nix +++ b/configs/home-manager/foo-dogsquared/modules/setups/development.nix @@ -25,6 +25,7 @@ in { keys.gpg.enable = true; keys.ssh.enable = true; terminal-multiplexer.enable = lib.mkDefault true; + terminal-emulator.enable = lib.mkDefault true; }; suites.dev = {