From f62ca9bdc8f44762e1e19a47dc1eda9167541c1b Mon Sep 17 00:00:00 2001 From: Gabriel Arazas Date: Sat, 22 Mar 2025 10:35:40 +0800 Subject: [PATCH] users/foo-dogsquared: add XDG autostart entries and update several setups config --- .../home-manager/foo-dogsquared/default.nix | 3 + .../modules/programs/browsers.nix | 16 ++++-- .../modules/programs/nushell.nix | 1 - .../modules/programs/terminal-emulator.nix | 56 ++++++++++--------- .../modules/programs/vs-code.nix | 2 +- .../modules/setups/music/default.nix | 3 + .../modules/setups/research.nix | 5 +- 7 files changed, 52 insertions(+), 34 deletions(-) diff --git a/configs/home-manager/foo-dogsquared/default.nix b/configs/home-manager/foo-dogsquared/default.nix index adc43aaa..6930a368 100644 --- a/configs/home-manager/foo-dogsquared/default.nix +++ b/configs/home-manager/foo-dogsquared/default.nix @@ -113,6 +113,9 @@ in { xdg.userDirs.extraConfig.XDG_PROJECTS_DIR = "${config.home.homeDirectory}/Projects"; + # Only enable autostart inside of NixOS systems. + xdg.autostart.enable = attrs ? nixosConfig; + # Set nixpkgs config both outside and inside of home-manager. nixpkgs.config = import ./config/nixpkgs/config.nix; xdg.configFile."nixpkgs/config.nix".source = ./config/nixpkgs/config.nix; diff --git a/configs/home-manager/foo-dogsquared/modules/programs/browsers.nix b/configs/home-manager/foo-dogsquared/modules/programs/browsers.nix index 6d3394c9..f358ded4 100644 --- a/configs/home-manager/foo-dogsquared/modules/programs/browsers.nix +++ b/configs/home-manager/foo-dogsquared/modules/programs/browsers.nix @@ -1,7 +1,8 @@ # WHOA! Even browsers with extensions can be declarative! -{ config, lib, pkgs, ... }@attrs: +{ config, lib, pkgs, foodogsquaredLib, ... }@attrs: let + inherit (foodogsquaredLib.xdg) getXdgDesktop; userCfg = config.users.foo-dogsquared; cfg = userCfg.programs.browsers; @@ -95,7 +96,7 @@ in { { isDefault = true; - extensions = with pkgs.nur.repos.rycee.firefox-addons; + extensions.packages = with pkgs.nur.repos.rycee.firefox-addons; [ aw-watcher-web bitwarden @@ -206,9 +207,9 @@ in { definedAliases = [ "@np" ]; }; - "Bing".metaData.hidden = true; - "Duckduckgo".metaData.hidden = true; - "Google".metaData.alias = "@g"; + "bing".metaData.hidden = true; + "duckduckgo".metaData.hidden = true; + "google".metaData.alias = "@g"; }; }; } @@ -263,6 +264,9 @@ in { ]; }; + xdg.autostart.entries = + lib.singleton (getXdgDesktop config.programs.firefox.package "firefox"); + # Configuring Bleachbit for Firefox cleaning. services.bleachbit.cleaners = [ "firefox.backup" @@ -306,7 +310,7 @@ in { [{ id = "egpjdkipkomnmjhjmdamaniclmdlobbo"; }]; }; in lib.foldl' enableSupportedBrowser { } supportedBrowsers // { - programs.firefox.profiles.personal.extensions = + programs.firefox.profiles.personal.extensions.packages = with pkgs.nur.repos.rycee.firefox-addons; [ firenvim ]; })) diff --git a/configs/home-manager/foo-dogsquared/modules/programs/nushell.nix b/configs/home-manager/foo-dogsquared/modules/programs/nushell.nix index 3e8e5da2..806aa844 100644 --- a/configs/home-manager/foo-dogsquared/modules/programs/nushell.nix +++ b/configs/home-manager/foo-dogsquared/modules/programs/nushell.nix @@ -17,7 +17,6 @@ in { query polars formats - highlight ]; extraConfig = '' $env.config = $env.config | merge deep --strategy=append { diff --git a/configs/home-manager/foo-dogsquared/modules/programs/terminal-emulator.nix b/configs/home-manager/foo-dogsquared/modules/programs/terminal-emulator.nix index d530c3b1..580ce04c 100644 --- a/configs/home-manager/foo-dogsquared/modules/programs/terminal-emulator.nix +++ b/configs/home-manager/foo-dogsquared/modules/programs/terminal-emulator.nix @@ -1,6 +1,8 @@ -{ config, lib, pkgs, ... }@attrs: +{ config, lib, pkgs, foodogsquaredLib, ... }@attrs: let + inherit (foodogsquaredLib.xdg) getXdgDesktop; + userCfg = config.users.foo-dogsquared; cfg = userCfg.programs.terminal-emulator; @@ -10,6 +12,31 @@ let ''; 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"; @@ -20,31 +47,10 @@ in { # the user has them. home.packages = let inherit (pkgs) wezterm hiPrio; - 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 [ wezterm (hiPrio weztermUserDefaultDesktop) weztermTypicalDesktop ]; + + xdg.autostart.entries = + lib.singleton (getXdgDesktop weztermUserDefaultDesktop "org.wezfurlong.wezterm"); } (lib.mkIf (!hasNixosModuleEnable) { diff --git a/configs/home-manager/foo-dogsquared/modules/programs/vs-code.nix b/configs/home-manager/foo-dogsquared/modules/programs/vs-code.nix index 3d6e1888..e9677b8e 100644 --- a/configs/home-manager/foo-dogsquared/modules/programs/vs-code.nix +++ b/configs/home-manager/foo-dogsquared/modules/programs/vs-code.nix @@ -9,7 +9,7 @@ in { config = lib.mkIf cfg.enable { suites.editors.vscode.enable = true; - programs.vscode = { + programs.vscode.profiles.default = { extensions = with pkgs.vscode-extensions; [ # Additional language support. diff --git a/configs/home-manager/foo-dogsquared/modules/setups/music/default.nix b/configs/home-manager/foo-dogsquared/modules/setups/music/default.nix index e028a52f..d39cee3f 100644 --- a/configs/home-manager/foo-dogsquared/modules/setups/music/default.nix +++ b/configs/home-manager/foo-dogsquared/modules/setups/music/default.nix @@ -120,6 +120,9 @@ in { (lib.mkIf cfg.spotify.enable { home.packages = with pkgs; [ spotify ]; + xdg.autostart.entries = + lib.singleton (foodogsquaredLib.xdg.getXdgDesktop pkgs.spotify "spotify"); + sops.secrets."spotify_env" = foodogsquaredLib.sops-nix.getAsOneSecret ./secrets.bin; state.ports.spotifyd.value = diff --git a/configs/home-manager/foo-dogsquared/modules/setups/research.nix b/configs/home-manager/foo-dogsquared/modules/setups/research.nix index 73945136..2adc92a0 100644 --- a/configs/home-manager/foo-dogsquared/modules/setups/research.nix +++ b/configs/home-manager/foo-dogsquared/modules/setups/research.nix @@ -1,4 +1,4 @@ -{ config, lib, pkgs, ... }: +{ config, lib, pkgs, foodogsquaredLib, ... }: let userCfg = config.users.foo-dogsquared; @@ -80,6 +80,9 @@ in { "application/vnd.anki" = [ "anki.desktop" ]; }; + xdg.autostart.entries = + lib.singleton (foodogsquaredLib.xdg.getXdgDesktop pkgs.zotero "zotero"); + users.foo-dogsquared.programs.custom-homepage.sections.services.links = lib.singleton { url = "http://localhost:${