diff options
| author | quentin@aristote.fr <quentin@aristote.fr> | 2026-10-10 14:23:09 +0200 |
|---|---|---|
| committer | quentin@aristote.fr <quentin@aristote.fr> | 2026-10-10 15:32:10 +0200 |
| commit | 8ead1c7131f6d0187ee45107e903ee0e3e0cb147 (patch) | |
| tree | 99db6d079886d646a798b0004c9272b455744690 /modules/home-manager | |
| parent | 76fa24022b2031f815f03e1004b340365aaed8bf (diff) | |
| download | my-nixpkgs-8ead1c7131f6d0187ee45107e903ee0e3e0cb147.tar.gz my-nixpkgs-8ead1c7131f6d0187ee45107e903ee0e3e0cb147.tar.bz2 my-nixpkgs-8ead1c7131f6d0187ee45107e903ee0e3e0cb147.tar.xz | |
home: firefox: use stylix colors, remove useless profiles
Diffstat (limited to 'modules/home-manager')
4 files changed, 65 insertions, 268 deletions
diff --git a/modules/home-manager/personal/profiles.nix b/modules/home-manager/personal/profiles.nix index 8baca50..3a6c639 100644 --- a/modules/home-manager/personal/profiles.nix +++ b/modules/home-manager/personal/profiles.nix @@ -37,48 +37,7 @@ in transmission_4-gtk vlc ]; - personal = { - gui.enable = lib.mkForce true; - firefox.webapps = [ - { - name = "Netflix"; - genericName = "Streaming service"; - icon = "${pkgs.personal.static.icons.netflix}"; - comment = "Unlimited movies, TV shows, and more."; - url = "https://www.netflix.com/fr-en/login"; - categories = [ - "AudioVideo" - "Video" - "Player" - ]; - } - { - name = "MUBI"; - genericName = "Streaming service"; - icon = "${pkgs.personal.static.icons.mubi}"; - comment = "Watch hand-picked cinema."; - url = "https://mubi.com"; - categories = [ - "AudioVideo" - "Video" - "Player" - ]; - } - { - name = "Deezer"; - genericName = "Streaming service"; - icon = "${pkgs.personal.static.icons.deezer}"; - comment = "Listen to music online"; - url = "https://deezer.com/login"; - categories = [ - "AudioVideo" - "Audio" - "Player" - "Music" - ]; - } - ]; - }; + personal.gui.enable = lib.mkForce true; }) (lib.mkIf cfg.social { diff --git a/modules/home-manager/personal/programs/firefox/default.nix b/modules/home-manager/personal/programs/firefox/default.nix index 885b22a..46aaca1 100644 --- a/modules/home-manager/personal/programs/firefox/default.nix +++ b/modules/home-manager/personal/programs/firefox/default.nix @@ -6,224 +6,85 @@ }: with lib; let - cfg = config.personal.firefox; userjs = pkgs.callPackage ./userjs.nix { inherit (pkgs.personal.static.userjs) arkenfox; inherit (pkgs.lib.personal) toUserJS; }; engines = import ./engines.nix { inherit lib pkgs; }; - webappsWithIds = - (builtins.foldl' - ( - { - counter, - value, - }: - { name, ... }@next: - { - counter = counter + 1; - value = value ++ [ - ( - next - // { - id = counter; - profileName = lib.toLower name; - } - ) - ]; - } - ) - { - counter = 0; - value = [ ]; - } - cfg.webapps - ).value; in { - options.personal.firefox = { - webapps = lib.mkOption { - type = - with lib.types; - listOf (submodule { - options = - let - mkTypedOption = type: lib.mkOption { inherit type; }; - in - { - name = mkTypedOption str; - genericName = mkTypedOption str // { - default = ""; - }; - url = mkTypedOption str; - comment = mkTypedOption str // { - default = ""; - }; - extraUserJS = mkTypedOption lines // { - default = ""; - }; - categories = mkTypedOption (listOf str) // { - default = [ ]; - }; - icon = mkTypedOption path; - }; - }); - default = [ ]; - }; - }; - config = lib.mkMerge [ { - stylix.targets.firefox.profileNames = [ - "default" - "videoconferencing" - ]; - programs.firefox.profiles = - builtins.foldl' - ( - prev: - { - id, - profileName, - extraUserJS, - ... - }: - prev - // { - "${profileName}" = { - id = id + 2; - extensions.packages = with pkgs.personal.firefoxAddons; [ - clearurls - neat-url - redirector - smart-referer - ublock-origin - unpaywall - url-in-title - ]; - search = { - force = true; - engines = with engines; disableDefault // { inherit Searx; }; - default = "Searx"; - privateDefault = "Searx"; + stylix.targets.firefox = { + colorTheme.enable = true; + profileNames = [ + "default" + ]; + }; + programs.firefox = { + configPath = "${config.xdg.configHome}/mozilla/firefox"; + profiles.default = { + id = 0; # isDefault = true + extensions = { + packages = with pkgs.personal.firefoxAddons; [ + canvasblocker + clearurls + darkreader + neat-url + redirector + smart-referer + temporary-containers + ublock-origin + unpaywall + url-in-title + ]; + settings."FirefoxColor@mozilla.com" = { + force = true; + settings.theme.colors = + let + mkBgColor = lib.mkForce ( + with config.lib.stylix.colors; + { + r = base00-rgb-r; + g = base00-rgb-g; + b = base00-rgb-b; + } + ); + in + { + frame = mkBgColor; + sidebar_border = mkBgColor; + popup_border = mkBgColor; + tab_baground_separator = mkBgColor; + tab_line = mkBgColor; + toolbar_field_border_focus = mkBgColor; }; - extraConfig = userjs.streaming + extraUserJS; - }; - } - ) - { - default = { - id = 0; # isDefault = true - - extensions.packages = with pkgs.personal.firefoxAddons; [ - canvasblocker - clearurls - darkreader - neat-url - redirector - smart-referer - temporary-containers - tree-style-tab - ublock-origin - unpaywall - url-in-title - ]; - search = { - force = lib.mkDefault true; - engines = - with engines; - disableDefault - // { - inherit Searx; - } - // lib.optionalAttrs config.personal.identities.personal personal - // lib.optionalAttrs config.personal.identities.work work - // lib.optionalAttrs config.personal.profiles.dev dev; - default = "Searx"; - order = [ - "Searx" - "Wikipedia" - ]; - }; - extraConfig = userjs.default; - userChrome = ./userchrome/treestyletabs-outer.css; }; + }; + search = { + force = lib.mkDefault true; + engines = + with engines; + disableDefault + // { + inherit Searx; + } + // lib.optionalAttrs config.personal.identities.personal personal + // lib.optionalAttrs config.personal.identities.work work + // lib.optionalAttrs config.personal.profiles.dev dev; + default = "Searx"; + order = [ + "Searx" + "Wikipedia" + ]; + }; + extraConfig = userjs.default; + }; - videoconferencing = { - id = 1; - extensions.packages = with pkgs.personal.firefoxAddons; [ - clearurls - darkreader - neat-url - redirector - smart-referer - multi-account-containers - tree-style-tab - ublock-origin - unpaywall - url-in-title - ]; - search = { - force = true; - engines = with engines; disableDefault // { inherit Searx; }; - default = "Searx"; - }; - extraConfig = userjs.videoconferencing; - userChrome = ./userchrome/treestyletabs-outer.css; - }; - } - webappsWithIds; + }; } (lib.mkIf config.programs.firefox.enable { - xdg.desktopEntries = - let - firefoxProfilesDir = "${config.home.homeDirectory}/.mozilla/firefox"; - firefoxInProfile = - profile: - ''${config.programs.firefox.package}/bin/firefox --profile "${firefoxProfilesDir}/${profile}"''; - in - builtins.foldl' - ( - prev: - { - name, - profileName, - url, - genericName, - icon, - comment, - categories, - ... - }: - prev - // { - "${profileName}" = { - inherit - name - genericName - icon - comment - categories - ; - exec = "${firefoxInProfile profileName} ${url}"; - }; - } - ) - { - videoconferences = { - name = "Video Conferences"; - genericName = "Video conference"; - comment = "Use video conferencing software in a browser."; - exec = "${firefoxInProfile "videoconferencing"}"; - categories = [ - "Network" - "VideoConference" - ]; - }; - } - webappsWithIds; - home.shellAliases.fftmp = "firefox --profile $(mktemp -d)"; home.sessionVariables.BROWSER = "firefox"; }) diff --git a/modules/home-manager/personal/programs/firefox/userchrome/treestyletabs-inner.css b/modules/home-manager/personal/programs/firefox/userchrome/treestyletabs-inner.css deleted file mode 100644 index f6fca37..0000000 --- a/modules/home-manager/personal/programs/firefox/userchrome/treestyletabs-inner.css +++ /dev/null @@ -1,6 +0,0 @@ -/* Not working. Paste this inside TST's extra CSS rules. */ -@-moz-document regexp("moz-extension://.+/sidebar/sidebar.html.*") { - :root.sidebar #background { - background: #{{base00-hex}}; - } -} diff --git a/modules/home-manager/personal/programs/firefox/userchrome/treestyletabs-outer.css b/modules/home-manager/personal/programs/firefox/userchrome/treestyletabs-outer.css deleted file mode 100644 index bee1acf..0000000 --- a/modules/home-manager/personal/programs/firefox/userchrome/treestyletabs-outer.css +++ /dev/null @@ -1,17 +0,0 @@ -@-moz-document url(chrome://browser/content/browser.xul), url(chrome://browser/content/browser.xhtml) { - /* Hide main tabs toolbar */ - #TabsToolbar { - visibility: collapse; - } - - /* Sidebar min and max width removal */ - #sidebar { - max-width: none !important; - min-width: 0px !important; - } - - /* Hide sidebar header, when using Tree Style Tab. */ - #sidebar-box[sidebarcommand="treestyletab_piro_sakura_ne_jp-sidebar-action"] #sidebar-header { - visibility: collapse; - } -} |
