diff --git a/flake.lock b/flake.lock index f430093..ecf2941 100644 --- a/flake.lock +++ b/flake.lock @@ -168,6 +168,27 @@ "type": "github" } }, + "flake-parts_3": { + "inputs": { + "nixpkgs-lib": [ + "nur", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1733312601, + "narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, "flake-utils": { "locked": { "lastModified": 1652776076, @@ -318,11 +339,11 @@ ] }, "locked": { - "lastModified": 1733484277, - "narHash": "sha256-i5ay20XsvpW91N4URET/nOc0VQWOAd4c4vbqYtcH8Rc=", + "lastModified": 1733873195, + "narHash": "sha256-dTosiZ3sZ/NKoLKQ++v8nZdEHya0eTNEsaizNp+MUPM=", "owner": "nix-community", "repo": "home-manager", - "rev": "d00c6f6d0ad16d598bf7e2956f52c1d9d5de3c3a", + "rev": "f26aa4b76fb7606127032d33ac73d7d507d82758", "type": "github" }, "original": { @@ -431,11 +452,11 @@ }, "nix-flatpak": { "locked": { - "lastModified": 1733345341, - "narHash": "sha256-8S58zrdpzGhax6tmn1i+R3AA0N9DJMu5FQI8JkA0NNU=", + "lastModified": 1733863840, + "narHash": "sha256-OO/yx700wpyKjFmsNlxep57pUIVCA1OlfEN1qUrxgCY=", "owner": "gmodena", "repo": "nix-flatpak", - "rev": "ebb0be49fc381112ff37726c6dd6df4df2ef5a1b", + "rev": "eb6f90693f91a7ce082c0c2c78627049265bc599", "type": "github" }, "original": { @@ -494,11 +515,11 @@ "nixpkgs": "nixpkgs_2" }, "locked": { - "lastModified": 1733623412, - "narHash": "sha256-Dc7xuCu6XaSTYbfRxQDHl0nW8mgIXWr8YRBOEmm9GMk=", + "lastModified": 1733882180, + "narHash": "sha256-KiI6gRWYgV4x5le9ETHWVMH5LBX2vGwamELJG/joiC0=", "owner": "nix-community", "repo": "nix-vscode-extensions", - "rev": "094ded90ffc925bca8a44ef47f03f229c9fc68f2", + "rev": "b5aa69a2b8c0c31e4e8a23f3dd41b474eeabf4fc", "type": "github" }, "original": { @@ -557,11 +578,11 @@ }, "nixpkgs_3": { "locked": { - "lastModified": 1733581040, - "narHash": "sha256-Qn3nPMSopRQJgmvHzVqPcE3I03zJyl8cSbgnnltfFDY=", + "lastModified": 1733759999, + "narHash": "sha256-463SNPWmz46iLzJKRzO3Q2b0Aurff3U1n0nYItxq7jU=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "22c3f2cf41a0e70184334a958e6b124fb0ce3e01", + "rev": "a73246e2eef4c6ed172979932bc80e1404ba2d56", "type": "github" }, "original": { @@ -573,11 +594,11 @@ }, "nixpkgs_4": { "locked": { - "lastModified": 1732521221, - "narHash": "sha256-2ThgXBUXAE1oFsVATK1ZX9IjPcS4nKFOAjhPNKuiMn0=", + "lastModified": 1733759999, + "narHash": "sha256-463SNPWmz46iLzJKRzO3Q2b0Aurff3U1n0nYItxq7jU=", "owner": "nixos", "repo": "nixpkgs", - "rev": "4633a7c72337ea8fd23a4f2ba3972865e3ec685d", + "rev": "a73246e2eef4c6ed172979932bc80e1404ba2d56", "type": "github" }, "original": { @@ -602,11 +623,11 @@ "treefmt-nix": "treefmt-nix" }, "locked": { - "lastModified": 1733667809, - "narHash": "sha256-RajfsaKZIc3bk75wiaw+ZYVDSMljdLWW69VCT90f05w=", + "lastModified": 1733847310, + "narHash": "sha256-VHzWuZYK/m5OFXzAczrjnI7vH6knj0sfLnziRVDqgFE=", "owner": "nix-community", "repo": "nixvim", - "rev": "e2f81c8e8e8baa28b100e0e43b721f16de6299d8", + "rev": "b752606681ded3f69e99ed568c7075b3578dce48", "type": "github" }, "original": { @@ -615,6 +636,28 @@ "type": "github" } }, + "nur": { + "inputs": { + "flake-parts": "flake-parts_3", + "nixpkgs": [ + "nixpkgs" + ], + "treefmt-nix": "treefmt-nix_2" + }, + "locked": { + "lastModified": 1733925096, + "narHash": "sha256-RRSyDAuzhL8fTF3pDoiBezQ/7ZQM+c61eYktPksVznE=", + "owner": "nix-community", + "repo": "NUR", + "rev": "cebaa5601eca31b9d7eb4bf65aee90da9696821c", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "NUR", + "type": "github" + } + }, "nuschtosSearch": { "inputs": { "flake-utils": "flake-utils_4", @@ -670,11 +713,11 @@ ] }, "locked": { - "lastModified": 1733578387, - "narHash": "sha256-XkMZGeqg0GCRoSXvMcaHP7bdvWPRZxCK1sw1ASsc16E=", + "lastModified": 1733858086, + "narHash": "sha256-h2BDIDKiqgMpA6E+mu0RgMGy3FeM6k+EuJ9xgOQ1+zw=", "owner": "nix-community", "repo": "plasma-manager", - "rev": "2a64e173f1effdcc86e25cba0601e8feedf89115", + "rev": "7e2010249529931a3848054d5ff0dbf24675ab68", "type": "github" }, "original": { @@ -721,6 +764,7 @@ "nix-vscode-extensions": "nix-vscode-extensions", "nixpkgs": "nixpkgs_3", "nixvim": "nixvim", + "nur": "nur", "plasma-manager": "plasma-manager", "sops-nix": "sops-nix", "zen-browser": "zen-browser" @@ -758,11 +802,11 @@ ] }, "locked": { - "lastModified": 1733128155, - "narHash": "sha256-m6/qwJAJYcidGMEdLqjKzRIjapK4nUfMq7rDCTmZajc=", + "lastModified": 1733785344, + "narHash": "sha256-pm4cfEcPXripE36PYCl0A2Tu5ruwHEvTee+HzNk+SQE=", "owner": "Mic92", "repo": "sops-nix", - "rev": "c6134b6fff6bda95a1ac872a2a9d5f32e3c37856", + "rev": "a80af8929781b5fe92ddb8ae52e9027fae780d2a", "type": "github" }, "original": { @@ -837,16 +881,37 @@ "type": "github" } }, + "treefmt-nix_2": { + "inputs": { + "nixpkgs": [ + "nur", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1733222881, + "narHash": "sha256-JIPcz1PrpXUCbaccEnrcUS8jjEb/1vJbZz5KkobyFdM=", + "owner": "numtide", + "repo": "treefmt-nix", + "rev": "49717b5af6f80172275d47a418c9719a31a78b53", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "treefmt-nix", + "type": "github" + } + }, "zen-browser": { "inputs": { "nixpkgs": "nixpkgs_4" }, "locked": { - "lastModified": 1732933979, - "narHash": "sha256-Z7X++lKZMNBu67BJl2LP23e7RBadp2C/RuRrygLehaE=", + "lastModified": 1733840403, + "narHash": "sha256-j5hmZ/Oudzr4/HB383uUvY86PxB4c94+7QRV109kOpE=", "owner": "0xc000022070", "repo": "zen-browser-flake", - "rev": "5a765451af1db68acceae07b98e5c768f238210c", + "rev": "ddbfcd69583724e6d142af98010411ac26c2029d", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 6a9db84..0d6f9ca 100644 --- a/flake.nix +++ b/flake.nix @@ -6,6 +6,10 @@ url = "github:nix-community/home-manager/master"; inputs.nixpkgs.follows = "nixpkgs"; }; + nur = { + url = "github:nix-community/NUR"; + inputs.nixpkgs.follows = "nixpkgs"; + }; plasma-manager = { url = "github:nix-community/plasma-manager"; inputs.nixpkgs.follows = "nixpkgs"; @@ -32,7 +36,6 @@ url = "github:aksiksi/compose2nix"; inputs.nixpkgs.follows = "nixpkgs"; }; - zen-browser.url = "github:0xc000022070/zen-browser-flake"; nix-vscode-extensions.url = "github:nix-community/nix-vscode-extensions"; catppuccin-vsc.url = "https://flakehub.com/f/catppuccin/vscode/*.tar.gz"; }; @@ -48,7 +51,10 @@ system = "x86_64-linux"; pkgs = import nixpkgs { inherit system; - overlays = [ inputs.catppuccin-vsc.overlays.default ]; + overlays = [ + inputs.catppuccin-vsc.overlays.default + inputs.nur.overlays.default + ]; config.allowUnfree = true; }; in @@ -91,6 +97,7 @@ inputs.sops-nix.nixosModules.sops inputs.nixvim.nixosModules.nixvim + inputs.nur.modules.nixos.default inputs.nix-flatpak.nixosModules.nix-flatpak inputs.lanzaboote.nixosModules.lanzaboote @@ -114,7 +121,10 @@ home-manager = { useGlobalPkgs = true; useUserPackages = true; - sharedModules = [ inputs.plasma-manager.homeManagerModules.plasma-manager ]; + sharedModules = [ + inputs.nur.modules.homeManager.default + inputs.plasma-manager.homeManagerModules.plasma-manager + ]; backupFileExtension = "bak"; extraSpecialArgs = { inherit inputs; @@ -125,6 +135,7 @@ }; users.${user} = { imports = [ + ./home-manager/browser.nix ./home-manager/plasma.nix ./home-manager/tpm.nix ./home-manager/user.nix diff --git a/home-manager/browser.nix b/home-manager/browser.nix new file mode 100644 index 0000000..02fd72d --- /dev/null +++ b/home-manager/browser.nix @@ -0,0 +1,121 @@ +{ pkgs, ... }: +let + extensions-repo = pkgs.nur.repos.rycee.firefox-addons; + extensions = with extensions-repo; [ + augmented-steam # improve the Steam store experience + bitwarden # password manager + dearrow # crowdsourced YouTube thumbnails and titles with the goal of being less sensationalist + docsafterdark # dark mode for Google Workspace + fastforwardteam # bypass url shorteners + honey # automatically find and try coupon codes on digital stores + indie-wiki-buddy # automatically redirect from Fandom to standalone wikis or Breezewiki + modrinthify # add Modrinth links to Curseforge and Spigot projects that are also on Modrinth + plasma-integration # NOTE - replace with gnome-browser-integration if you use gnome, remove if you don't use either plasma or gnome + privacy-badger # block invisible trackers + prometheus-formatter # format Prometheus endpoints + protondb-for-steam # add ProtonDB information to Steam game store pages + #pwas-for-firefox # a tool to install, manage, and use Progressive Web Apps (PWAs) in Firefox, not necessary with Floorp + return-youtube-dislikes # re-add the dislike counter to YouTube + #sidebery # vertical tabs in Firefox, not necessary with Floorp + sponsorblock # block YouTube video sponsored segments + stylus # user stylesheet editor and manager + tampermonkey # userscript manager + ublock-origin # the best adblocker ❤️ + wayback-machine # access the Wayback Machine / Internet Archive from any page, also supports automatically saving a page to the Wayback Machine + web-scrobbler # last.fm scrobbling + youtube-nonstop # removes the "Video paused. Continue watching?" confirmation prompt from YouTube + youtube-shorts-block # remove YouTube shorts from the homepage and video suggestions + ]; +in +{ + programs.floorp = { + enable = true; + policies = { + "DisableAppUpdate" = true; # updates should be handled by NixOS + "DisplayBookmarksToolbar" = "always"; + "DisableTelemetry" = true; + # For extensions that aren't in NUR + "ExtensionSettings" = { + # Catppuccin Selector + "catppuccin@federicoscodelaro.com" = { + install_url = "https://addons.mozilla.org/firefox/downloads/latest/catppuccin-selector/latest.xpi"; + installation_mode = "force_installed"; + }; + }; + }; + profiles = { + "cswimr (personal)" = { + id = 0; + isDefault = true; + extensions = extensions; + search = { + default = "DuckDuckGo"; + force = true; + engines = { + "Nix Packages" = { + urls = [ + { + template = "https://search.nixos.org/packages"; + params = [ + { + "name" = "query"; + "value" = "{searchTerms}"; + } + { + "name" = "channel"; + "value" = "unstable"; + } + ]; + } + ]; + icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; + definedAliases = [ + "@np" + "pkgs" + "pkg" + ]; + }; + "Nix Options" = { + urls = [ + { + template = "https://search.nixos.org/options"; + params = [ + { + "name" = "query"; + "value" = "{searchTerms}"; + } + { + "name" = "channel"; + "value" = "unstable"; + } + ]; + } + ]; + icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; + definedAliases = [ + "@no" + "opts" + "opt" + ]; + }; + "NixOS Wiki" = { + urls = [ { template = "https://wiki.nixos.org/w/index.php?search={searchTerms}"; } ]; + icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; + definedAliases = [ + "@nw" + "nix" + ]; + }; + }; + }; + settings = { + "extensions.autoDisableScopes" = 0; + "floorp.browser.sidebar.enable" = false; + "floorp.browser.sidebar.useIconProvider" = "duckduckgo"; + "floorp.browser.sidebar2.hide.to.unload.panel.enabled" = true; + "floorp.extensions.allowPrivateBrowsingByDefault.is.enabled" = true; + }; + }; + }; + }; +} diff --git a/home-manager/plasma.nix b/home-manager/plasma.nix index b34ba15..f49e8cc 100644 --- a/home-manager/plasma.nix +++ b/home-manager/plasma.nix @@ -48,7 +48,7 @@ { iconTasks = { launchers = [ - "applications:zen.desktop" + "applications:floorp.desktop" "applications:vesktop.desktop" "applications:steam.desktop" "applications:org.prismlauncher.PrismLauncher.desktop" diff --git a/nixos/gui-pkgs.nix b/nixos/gui-pkgs.nix index 1aa2d80..d58558b 100644 --- a/nixos/gui-pkgs.nix +++ b/nixos/gui-pkgs.nix @@ -1,7 +1,5 @@ { pkgs, - inputs, - system, lib, ... }: @@ -22,10 +20,9 @@ let libnotify hoppscotch ]; - flakePackages = with inputs; [ zen-browser.packages.${system}.specific ]; in { - environment.systemPackages = lib.lists.unique (kdePackages ++ packages ++ flakePackages); + environment.systemPackages = lib.lists.unique (kdePackages ++ packages); # Enable the X11 windowing system. # You can leave this disabled if you're only using the Wayland session.