Compare commits

...

14 commits

8 changed files with 213 additions and 127 deletions

90
flake.lock generated
View file

@ -28,11 +28,11 @@
"nixpkgs": "nixpkgs" "nixpkgs": "nixpkgs"
}, },
"locked": { "locked": {
"lastModified": 1741985801, "lastModified": 1743414153,
"narHash": "sha256-EnjiCpEi8p1kFgNUCVPuDUYoOSYBlr7ByMEF8qMGZws=", "narHash": "sha256-bFIXz7SvLlSNR4M3vYPYS1CpEN9vTUiH01R4iR/BDmA=",
"owner": "catppuccin", "owner": "catppuccin",
"repo": "nix", "repo": "nix",
"rev": "f833a338ff6c091c84e041ee77ce88f8b242ca79", "rev": "2f52f9ead26f80d7b391cedcbb3eb309bd83fff4",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -167,11 +167,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1741955947, "lastModified": 1743648554,
"narHash": "sha256-2lbURKclgKqBNm7hVRtWh0A7NrdsibD0EaWhahUVhhY=", "narHash": "sha256-23JFd+zd2GamTTdnGuFVeIg8x8C3hLpQJRh/PGTORzo=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "4e12151c9e014e2449e0beca2c0e9534b96a26b4", "rev": "107352dde4ff3c01cb5a0b3fe17f5beef37215bc",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -187,11 +187,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1739757849, "lastModified": 1743387206,
"narHash": "sha256-Gs076ot1YuAAsYVcyidLKUMIc4ooOaRGO0PqTY7sBzA=", "narHash": "sha256-24N3NAuZZbYqZ39NgToZgHUw6M7xHrtrAm18kv0+2Wo=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "9d3d080aec2a35e05a15cedd281c2384767c2cfe", "rev": "15c5f9d04fabd176f30286c8f52bbdb2c853a146",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -209,11 +209,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1742021951, "lastModified": 1743660830,
"narHash": "sha256-Nxrkvh353BeG6/D8yPq50VCaYnCMKviS7krw4DfzLVU=", "narHash": "sha256-ezJqPIuB25iMJeugwHKWnB1DjMvrdpkrPxE3TCULjGk=",
"owner": "Jovian-Experiments", "owner": "Jovian-Experiments",
"repo": "Jovian-NixOS", "repo": "Jovian-NixOS",
"rev": "ecaf8b6aa7d28cb7b87da334310fbe1ba31f8d64", "rev": "c7ade1c8fe2bdb70d38b3b9a97b874dcaf33b755",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -225,11 +225,11 @@
"lix": { "lix": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1741976543, "lastModified": 1743523803,
"narHash": "sha256-hSiO4cq2ub0Hs1bH+Qnne7pF8596wKZxmbWH2Kqe9UE=", "narHash": "sha256-L/8tnMbfwOmRXRrzzDJBlkRUiVOxy8cxWTdaN3n3AGI=",
"rev": "85d614538fd1e6fa8a230d5f1c4d6e5587e9e3ef", "rev": "5a7e9e17464008904403af4297823443281bef12",
"type": "tarball", "type": "tarball",
"url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/85d614538fd1e6fa8a230d5f1c4d6e5587e9e3ef.tar.gz?rev=85d614538fd1e6fa8a230d5f1c4d6e5587e9e3ef" "url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/5a7e9e17464008904403af4297823443281bef12.tar.gz?rev=5a7e9e17464008904403af4297823443281bef12"
}, },
"original": { "original": {
"type": "tarball", "type": "tarball",
@ -248,11 +248,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1741894565, "lastModified": 1742945498,
"narHash": "sha256-2FD0NDJbEjUHloVrtEIms5miJsj1tvQCc/0YK5ambyc=", "narHash": "sha256-MB/b/xcDKqaVBxJIIxwb81r8ZiGLeKEcqokATRRroo8=",
"rev": "a6da43f8193d9e329bba1795c42590c27966082e", "rev": "fa69ae26cc32dda178117b46487c2165c0e08316",
"type": "tarball", "type": "tarball",
"url": "https://git.lix.systems/api/v1/repos/lix-project/nixos-module/archive/a6da43f8193d9e329bba1795c42590c27966082e.tar.gz?rev=a6da43f8193d9e329bba1795c42590c27966082e" "url": "https://git.lix.systems/api/v1/repos/lix-project/nixos-module/archive/fa69ae26cc32dda178117b46487c2165c0e08316.tar.gz?rev=fa69ae26cc32dda178117b46487c2165c0e08316"
}, },
"original": { "original": {
"type": "tarball", "type": "tarball",
@ -271,11 +271,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1741894565, "lastModified": 1742945498,
"narHash": "sha256-2FD0NDJbEjUHloVrtEIms5miJsj1tvQCc/0YK5ambyc=", "narHash": "sha256-MB/b/xcDKqaVBxJIIxwb81r8ZiGLeKEcqokATRRroo8=",
"rev": "a6da43f8193d9e329bba1795c42590c27966082e", "rev": "fa69ae26cc32dda178117b46487c2165c0e08316",
"type": "tarball", "type": "tarball",
"url": "https://git.lix.systems/api/v1/repos/lix-project/nixos-module/archive/a6da43f8193d9e329bba1795c42590c27966082e.tar.gz?rev=a6da43f8193d9e329bba1795c42590c27966082e" "url": "https://git.lix.systems/api/v1/repos/lix-project/nixos-module/archive/fa69ae26cc32dda178117b46487c2165c0e08316.tar.gz?rev=fa69ae26cc32dda178117b46487c2165c0e08316"
}, },
"original": { "original": {
"type": "tarball", "type": "tarball",
@ -342,11 +342,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1741619381, "lastModified": 1743306489,
"narHash": "sha256-koZtlJRqi0/MD/AKd0KrXLA2NuBOVzlIyAJprjzpxZE=", "narHash": "sha256-LROaIjSLo347cwcHRfSpqzEOa2FoLSeJwU4dOrGm55E=",
"owner": "Mic92", "owner": "Mic92",
"repo": "nix-index-database", "repo": "nix-index-database",
"rev": "66537fb185462ba9b07f4e6f2d54894a1b2d04ab", "rev": "b3696bfb6c24aa61428839a99e8b40c53ac3a82d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -362,11 +362,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1741619381, "lastModified": 1743306489,
"narHash": "sha256-koZtlJRqi0/MD/AKd0KrXLA2NuBOVzlIyAJprjzpxZE=", "narHash": "sha256-LROaIjSLo347cwcHRfSpqzEOa2FoLSeJwU4dOrGm55E=",
"owner": "Mic92", "owner": "Mic92",
"repo": "nix-index-database", "repo": "nix-index-database",
"rev": "66537fb185462ba9b07f4e6f2d54894a1b2d04ab", "rev": "b3696bfb6c24aa61428839a99e8b40c53ac3a82d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -377,11 +377,11 @@
}, },
"nixos-hardware": { "nixos-hardware": {
"locked": { "locked": {
"lastModified": 1741792691, "lastModified": 1743420942,
"narHash": "sha256-f0BVt1/cvA0DQ/q3rB+HY4g4tKksd03ZkzI4xehC2Ew=", "narHash": "sha256-b/exDDQSLmENZZgbAEI3qi9yHkuXAXCPbormD8CSJXo=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixos-hardware", "repo": "nixos-hardware",
"rev": "e1f12151258b12c567f456d8248e4694e9390613", "rev": "de6fc5551121c59c01e2a3d45b277a6d05077bc4",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -393,11 +393,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1741851582, "lastModified": 1742889210,
"narHash": "sha256-cPfs8qMccim2RBgtKGF+x9IBCduRvd/N5F4nYpU0TVE=", "narHash": "sha256-hw63HnwnqU3ZQfsMclLhMvOezpM7RSB0dMAtD5/sOiw=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "6607cf789e541e7873d40d3a8f7815ea92204f32", "rev": "698214a32beb4f4c8e3942372c694f40848b360d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -409,11 +409,11 @@
}, },
"nixpkgs-raw": { "nixpkgs-raw": {
"locked": { "locked": {
"lastModified": 1741862977, "lastModified": 1743576891,
"narHash": "sha256-prZ0M8vE/ghRGGZcflvxCu40ObKaB+ikn74/xQoNrGQ=", "narHash": "sha256-vXiKURtntURybE6FMNFAVpRPr8+e8KoLPrYs9TGuAKc=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "cdd2ef009676ac92b715ff26630164bb88fec4e0", "rev": "44a69ed688786e98a101f02b712c313f1ade37ab",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -424,11 +424,11 @@
}, },
"nixpkgs-unstable-raw": { "nixpkgs-unstable-raw": {
"locked": { "locked": {
"lastModified": 1741851582, "lastModified": 1743583204,
"narHash": "sha256-cPfs8qMccim2RBgtKGF+x9IBCduRvd/N5F4nYpU0TVE=", "narHash": "sha256-F7n4+KOIfWrwoQjXrL2wD9RhFYLs2/GGe/MQY1sSdlE=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "6607cf789e541e7873d40d3a8f7815ea92204f32", "rev": "2c8d3f48d33929642c1c12cd243df4cc7d2ce434",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -459,11 +459,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1740569341, "lastModified": 1742765550,
"narHash": "sha256-WV8nY2IOfWdzBF5syVgCcgOchg/qQtpYh6LECYS9XkY=", "narHash": "sha256-2vVIh2JrL6GAGfgCeY9e6iNKrBjs0Hw3bGQEAbwVs68=",
"owner": "nix-community", "owner": "nix-community",
"repo": "plasma-manager", "repo": "plasma-manager",
"rev": "5eeb0172fb74392053b66a8149e61b5e191b2845", "rev": "b70be387276e632fe51232887f9e04e2b6ef8c16",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -105,10 +105,6 @@
name = "patched-nixpkgs"; name = "patched-nixpkgs";
src = nixpkgs-raw; src = nixpkgs-raw;
patches = [ patches = [
(nixpkgs-raw.legacyPackages.x86_64-linux.fetchpatch {
url = "https://github.com/NixOS/nixpkgs/pull/370713.patch";
hash = "sha256-gZPP99e42XdYrQz9wWHpS0ChRhK7m9Yitmy7UT5OxiM=";
})
]; ];
}; };
# https://discourse.nixos.org/t/proper-way-of-applying-patch-to-system-managed-via-flake/21073/26 # https://discourse.nixos.org/t/proper-way-of-applying-patch-to-system-managed-via-flake/21073/26

View file

@ -127,7 +127,7 @@
backupFileExtension = "hm-backup"; backupFileExtension = "hm-backup";
useGlobalPkgs = true; useGlobalPkgs = true;
verbose = true; verbose = true;
sharedModules = [flakeSelf.inputs.catppuccin.homeManagerModules.catppuccin]; sharedModules = [flakeSelf.inputs.catppuccin.homeModules.catppuccin];
users.toast = {osConfig, ...}: { users.toast = {osConfig, ...}: {
catppuccin.flavor = osConfig.catppuccin.flavor; catppuccin.flavor = osConfig.catppuccin.flavor;
catppuccin.accent = osConfig.catppuccin.accent; catppuccin.accent = osConfig.catppuccin.accent;

View file

@ -9,5 +9,6 @@
./appimage.nix ./appimage.nix
./mpv.nix ./mpv.nix
./sysdvr-qt.nix ./sysdvr-qt.nix
./spotify.nix
]; ];
} }

View file

@ -1,55 +1,123 @@
{lib, ...}: { {lib, ...}: {
# System wide firefox settings home-manager.sharedModules = [
programs.firefox = { {
enable = true; # System wide firefox settings
policies = { programs.firefox = {
"DisablePocket" = true; enable = true;
"DisableTelemetry" = true; policies = {
# You need these for Spotify DisableTelemetry = true;
"EncryptedMediaExtensions" = {"Enabled" = true;}; # You need these for Spotify
"ExtensionSettings" = { EncryptedMediaExtensions.Enabled = true;
# TODO: Install extensions the NUR instead of from AMO ExtensionSettings = {
"uBlock0@raymondhill.net" = { # TODO: Install extensions the NUR instead of from AMO
"installation_mode" = "force_installed"; "uBlock0@raymondhill.net" = {
"install_url" = "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi"; installation_mode = "force_installed";
install_url = "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi";
};
# Decentraleyes
"jid1-BoFifL9Vbdl2zQ@jetpack" = {
installation_mode = "normal_installed";
install_url = "https://addons.mozilla.org/firefox/downloads/latest/decentraleyes/latest.xpi";
};
"jid1-MnnxcxisBPnSXQ@jetpack" = {
installation_mode = "normal_installed";
install_url = "https://addons.mozilla.org/firefox/downloads/latest/privacy-badger17/latest.xpi";
};
# Uninstall undeclared extensions
"*" = {
installation_mode = "blocked";
blocked_install_message = "Extensions are managed by home-manager";
};
};
Preferences = {
# Enable video hardware acceleration
"media.ffmpeg.vaapi.enabled" = {
Value = true;
Status = "default";
};
"dom.security.https_only_mode" = {
Value = true;
Status = "locked";
};
};
PromptForDownloadLocation = true;
# I use an external password manager, so the built in one just bothers me
PasswordManagerEnabled = false;
Permissions = {
Autoplay = {
Allow = [
"https://www.youtube.com"
"https://sync-tube.de"
];
Default = "block-audio-video";
};
};
FirefoxHome.SponsoredTopSites = false;
}; };
# Decentraleyes
"jid1-BoFifL9Vbdl2zQ@jetpack" = {
"installation_mode" = "normal_installed";
"install_url" = "https://addons.mozilla.org/firefox/downloads/latest/decentraleyes/latest.xpi";
};
"jid1-MnnxcxisBPnSXQ@jetpack" = {
"installation_mode" = "normal_installed";
"install_url" = "https://addons.mozilla.org/firefox/downloads/latest/privacy-badger17/latest.xpi";
};
# Uninstall the kde plasma integration extension if KDE is not installed
"plasma-browser-integration@kde.org"."installation_mode" = lib.mkDefault "blocked";
}; };
"Preferences" = { }
# Enable video hardware acceleration ];
"media.ffmpeg.vaapi.enabled" = { # Per-user settings
"Value" = true; home-manager.users.toast = {
"Status" = "default"; programs.firefox.policies = {
DisablePocket = true;
ExtensionSettings = {
"sponsorBlocker@ajay.app" = {
installation_mode = "normal_installed";
install_url = "https://addons.mozilla.org/firefox/downloads/latest/sponsorblock/latest.xpi";
}; };
"dom.security.https_only_mode" = { "@testpilot-containers" = {
"Value" = true; installation_mode = "normal_installed";
"Status" = "locked"; install_url = "https://addons.mozilla.org/firefox/downloads/latest/multi-account-containers/latest.xpi";
}; };
};
Preferences = {
"general.smoothScroll.msdPhysics.enabled" = { "general.smoothScroll.msdPhysics.enabled" = {
"Value" = true; Value = true;
"Status" = "default"; Status = "default";
};
"browser.ctrlTab.sortByRecentlyUsed" = {
Value = true;
Status = "default";
};
# This should be set automatically, but it isn't for some reason
"extensions.webextensions.ExtensionStorageIDB.enabled" = {
Value = false;
Status = "locked";
}; };
}; };
"PromptForDownloadLocation" = true; };
# I use an external password manager, so the built in one just bothers me programs.firefox.profiles = {
"PasswordManagerEnabled" = false; personal = {
"Permissions" = { name = "Personal";
"Autoplay" = { id = 0;
"Allow" = ["https://www.youtube.com"]; isDefault = true;
"Default" = "block-audio-video"; containersForce = true;
containers = {
work = {
name = "Work";
id = 1;
icon = "briefcase";
color = "green";
};
};
extensions.force = true;
extensions.settings = {
"@testpilot-containers".settings = {
onboarding-stage = 8;
"siteContainerMap@@_teams.microsoft.com" = {
userContextId = "1";
neverAsk = false;
identityMacAddonUUID = "b50e5b1e-6f3b-4245-8eac-5654d889156e";
};
"siteContainerMap@@_outlook.office.com" = {
userContextId = "1";
neverAsk = false;
identityMacAddonUUID = "b50e5b1e-6f3b-4245-8eac-5654d889156e";
};
};
}; };
}; };
"FirefoxHome" = {"SponsoredTopSites" = false;};
}; };
}; };
} }

View file

@ -0,0 +1,5 @@
{pkgs, ...}: {
home-manager.users.toast = {
home.packages = [pkgs.spotify];
};
}

View file

@ -1,6 +1,7 @@
{lib, ...}: let {lib, pkgs, ...}: let
rootDirs = builtins.readDir ./.; rootDirs = builtins.readDir ./.;
removeFiles = lib.attrsets.filterAttrs (n: v: v == "directory") rootDirs; removeFiles = lib.attrsets.filterAttrs (n: v: v == "directory") rootDirs;
programsToPatch = builtins.attrNames removeFiles;
getPatches = name: getPatches = name:
builtins.map (value: ./${name}/${value}) (builtins.attrNames ( builtins.map (value: ./${name}/${value}) (builtins.attrNames (
@ -11,14 +12,17 @@
)); ));
bigOverlay = final: prev: bigOverlay = final: prev:
builtins.mapAttrs ( lib.attrsets.mergeAttrsList (
name: _value: lib.lists.forEach programsToPatch (
prev."${name}".overrideAttrs { program: let
version = prev."${name}".version + "-patched"; unpatchedProgram = prev."${program}";
patches = prev."${name}".patches ++ getPatches name; in {
"${program}-patched" = unpatchedProgram.overrideAttrs {
patches = unpatchedProgram.patches ++ getPatches program;
};
} }
) )
removeFiles; );
in { in {
nixpkgs.overlays = [ nixpkgs.overlays = [
( (
@ -27,4 +31,11 @@ in {
} }
) )
]; ];
system.replaceDependencies.replacements = lib.lists.forEach programsToPatch (
package: {
oldDependency = pkgs.kdePackages.${package};
newDependency = pkgs.kdePackages."${package}-patched";
}
);
} }

View file

@ -1,30 +1,35 @@
{...}: { {pkgs, ...}: {
# KDE specific firefox settings home-manager.sharedModules = [
programs.firefox = { {
policies = { # KDE specific firefox settings
"ExtensionSettings" = { programs.firefox = {
# TODO: Install extensions the NUR instead of from AMO nativeMessagingHosts = [pkgs.kdePackages.plasma-browser-integration];
"plasma-browser-integration@kde.org" = { policies = {
"installation_mode" = "normal_installed"; ExtensionSettings = {
"install_url" = "https://addons.mozilla.org/firefox/downloads/latest/plasma-integration/latest.xpi"; # TODO: Install extensions the NUR instead of from AMO
"plasma-browser-integration@kde.org" = {
installation_mode = "normal_installed";
install_url = "https://addons.mozilla.org/firefox/downloads/latest/plasma-integration/latest.xpi";
};
};
Preferences = {
# Make firefox use the kde file picker
"widget.use-xdg-desktop-portal.file-picker" = {
Value = 1;
Status = "default";
};
/*
https://wiki.archlinux.org/title/Firefox#KDE_integration tells me to enable this,
but strangely enough doing so makes firefox ask to be set as the default browser
every time you start it up, so I'll disable it
*/
"widget.use-xdg-desktop-portal.mime-handler" = {
Value = 0;
Status = "default";
};
};
}; };
}; };
"Preferences" = { }
# Make firefox use the kde file picker ];
"widget.use-xdg-desktop-portal.file-picker" = {
"Value" = 1;
"Status" = "default";
};
/*
https://wiki.archlinux.org/title/Firefox#KDE_integration tells me to enable this,
but strangely enough doing so makes firefox ask to be set as the default browser
every time you start it up, so I'll disable it
*/
"widget.use-xdg-desktop-portal.mime-handler" = {
"Value" = 0;
"Status" = "default";
};
};
};
};
} }