nixos-config/configs/home-manager/foo-dogsquared/modules/programs/terminal-emulator.nix
Gabriel Arazas f62ca9bdc8
Some checks failed
Build devcontainers / build-devcontainers (push) Waiting to run
Cache outputs / build-custom-packages (push) Waiting to run
Check flake outputs / check-outputs (push) Waiting to run
Publish every Git push to master to FlakeHub / flakehub-publish (push) Waiting to run
Build personalized bootstrap ISO / build-iso (x86_64-linux) (push) Waiting to run
Build project site / build (push) Waiting to run
Build project site / deploy (push) Blocked by required conditions
Update Firefox addons / update-firefox-addons (push) Has been cancelled
users/foo-dogsquared: add XDG autostart entries and update several setups config
2025-03-22 16:48:05 +08:00

62 lines
2.0 KiB
Nix

{ config, lib, pkgs, foodogsquaredLib, ... }@attrs:
let
inherit (foodogsquaredLib.xdg) getXdgDesktop;
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
'';
hasNixosModuleEnable = attrs.nixosConfig.programs.wezterm.enable or false;
weztermUserDefaultDesktop = pkgs.makeDesktopItem {
name = "org.wezfurlong.wezterm";
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" ];
};
weztermTypicalDesktop = pkgs.makeDesktopItem {
name = "wezterm-start";
desktopName = "WezTerm";
comment = "Wez's Terminal Emulator";
keywords = [ "shell" "prompt" "command" "commandline" "cmd" ];
icon = "org.wezfurlong.wezterm";
startupWMClass = "org.wezfurlong.wezterm";
tryExec = "wezterm";
exec = "wezterm start --cwd .";
type = "Application";
categories = [ "System" "TerminalEmulator" "Utility" ];
};
in {
options.users.foo-dogsquared.programs.terminal-emulator.enable =
lib.mkEnableOption "foo-dogsquared's terminal emulator setup";
config = lib.mkIf cfg.enable (lib.mkMerge [
{
# We're just making a version of Wezterm with the default arguments if
# the user has them.
home.packages = let
inherit (pkgs) wezterm hiPrio;
in [ wezterm (hiPrio weztermUserDefaultDesktop) weztermTypicalDesktop ];
xdg.autostart.entries =
lib.singleton (getXdgDesktop weztermUserDefaultDesktop "org.wezfurlong.wezterm");
}
(lib.mkIf (!hasNixosModuleEnable) {
programs.bash.initExtra = shellIntegrationFragment;
programs.zsh.initExtra = shellIntegrationFragment;
})
]);
}