aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNatasha Moongrave <natasha@256phi.eu>2026-04-29 15:14:21 +0200
committerNatasha Moongrave <natasha@256phi.eu>2026-04-29 15:14:21 +0200
commit8f1dd62736fcb672fe2c0c2eff7de9df7692e77b (patch)
tree7700ee5ac7ef6873ab3c6081ada5d1f45be26a4e
parent0aa9c299facc6e784354077c5d8890e923c97472 (diff)
parentcdab6b5748e60e424f3a81e91ce38034adb6867c (diff)
Merge branch 'main' of cgit:/srv/git/NixOS-config
-rw-r--r--home/mun/default.nix5
-rw-r--r--home/mun/programs/browser.nix287
-rw-r--r--home/rices/cinnamon/system.nix9
-rw-r--r--hosts/herra/audio.nix58
-rw-r--r--hosts/herra/drivers.nix50
-rw-r--r--system/programs.nix48
6 files changed, 397 insertions, 60 deletions
diff --git a/home/mun/default.nix b/home/mun/default.nix
index 0263f13..872bb07 100644
--- a/home/mun/default.nix
+++ b/home/mun/default.nix
@@ -9,6 +9,7 @@
./programs/git.nix
./programs/nvim.nix
./programs/nixcord.nix
+ ./programs/browser.nix
];
home = {
@@ -36,6 +37,7 @@
kicad
evolution
signal-desktop
+ famistudio
# Utilities
pay-respects
@@ -50,6 +52,7 @@
syncthing
sshfs
alacritty
+ protonup-qt
# CLI Tools
bat
@@ -98,7 +101,7 @@
inherit (texlive) scheme-full;
notestex = texlivePackages.notestex;
screenplay = texlivePackages.screenplay;
- scpzine = pkgs.scpzine-texlive;
+ #scpzine = pkgs.scpzine-texlive;
})
# RetroArch
diff --git a/home/mun/programs/browser.nix b/home/mun/programs/browser.nix
new file mode 100644
index 0000000..1e702ad
--- /dev/null
+++ b/home/mun/programs/browser.nix
@@ -0,0 +1,287 @@
+{pkgs, ...}: {
+ programs.firefox = {
+ enable = true;
+
+ profiles.mun = {
+ search = {
+ force = true;
+ default = "duckduckbleh";
+ engines = {
+ "duckduckbleh" = {
+ urls = [
+ {
+ template = "https://noai.duckduckgo.com/";
+ params = [
+ {
+ name = "q";
+ value = "{searchTerms}";
+ }
+ ];
+ }
+ ];
+ definedAliases = [
+ "duck"
+ "d"
+ "ddg"
+ ];
+ };
+ "Nix Packages" = {
+ urls = [
+ {
+ template = "https://search.nixos.org/packages";
+ params = [
+ {
+ name = "query";
+ value = "{searchTerms}";
+ }
+ ];
+ }
+ ];
+ icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
+ definedAliases = ["pkgs"];
+ };
+ "Nix Options" = {
+ urls = [
+ {
+ template = "https://search.nixos.org/options";
+ params = [
+ {
+ name = "query";
+ value = "{searchTerms}";
+ }
+ ];
+ }
+ ];
+ icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
+ definedAliases = ["opts"];
+ };
+ "Home manager Options" = {
+ urls = [
+ {
+ template = "https://home-manager-options.extranix.com/";
+ params = [
+ {
+ name = "query";
+ value = "{searchTerms}";
+ }
+ {
+ name = "release";
+ value = "master";
+ }
+ ];
+ }
+ ];
+ icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
+ definedAliases = ["hm"];
+ };
+ "NixOS Wiki" = {
+ urls = [
+ {
+ template = "https://nixos.wiki/index.php";
+ params = [
+ {
+ name = "search";
+ value = "{searchTerms}";
+ }
+ ];
+ }
+ ];
+ icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
+ definedAliases = ["nxwk"];
+ };
+ "rust docs" = {
+ urls = [
+ {
+ template = "https://docs.rs/releases/search";
+ params = [
+ {
+ name = "query";
+ value = "{searchTerms}";
+ }
+ ];
+ }
+ ];
+ icon = "https://docs.rs/-/static/favicon.ico";
+ definedAliases = ["docs"];
+ };
+ "rust std docs" = {
+ urls = [
+ {
+ template = "https://docs.rust-lang.org/std/index.html";
+ params = [
+ {
+ name = "search";
+ value = "{searchTerms}";
+ }
+ ];
+ }
+ ];
+ icon = "https://doc.rust-lang.org/favicon.ico";
+ definedAliases = ["std"];
+ };
+ "bing".metaData.hidden = true;
+ "google".metaData.hidden = true;
+ "Amazon.de".metaData.hidden = true;
+ };
+ };
+ settings = {
+ "devtools.editor.keymap" = "vim";
+ "devtools.toolbox.host" = "right";
+ "devtools.theme" = "dark";
+ "webgl.disabled" = false;
+ "browser.urlbar.decodeURLsOnCopy" = true;
+ "browser.urlbar.unitConversion.enabled" = true;
+ "browser.urlbar.suggest.calculator" = true;
+ "browser.compactmode.show" = true;
+ "browser.uidensity" = 1;
+ "screenshots.browser.component.enabled" = true;
+ "browser.aboutConfig.showWarning" = false;
+ "browser.aboutwelcome.showModal" = false;
+ "browser.aboutwelcome.enabled" = false;
+ "browser.preferences.moreFromMozilla" = false;
+ "browser.menu.showViewImageInfo" = true;
+ "browser.shopping.experience2023.active" = false;
+ "browser.shopping.experience2023.survey.enabled" = false;
+
+ "identity.fxaccounts.enabled" = true;
+ "browser.tabs.firefox-view" = true;
+ "browser.tabs.firefox-view-next" = true;
+ "browser.newtabpage.activity-stream.showSponsored" = false;
+ "browser.newtabpage.activity-stream.showSponsoredTopSites" = false;
+ "browser.newtabpage.activity-stream.improvesearch.topSiteSearchShortcuts" = false;
+ "privacy.trackingprotection.emailtracking.enabled" = true;
+ "privacy.trackingprotection.enabled" = true;
+ "privacy.trackingprotection.socialtracking.enabled" = true;
+
+ "browser.startup.homepage" = "about:blank";
+ "browser.newtabpage.enabled" = false;
+ "browser.ml.chat.enabled" = false;
+ "browser.ml.chat.hideLocalhost" = false;
+ "browser.ml.chat.prompt.prefix" = "";
+ "browser.ml.chat.prompts.0" = "";
+ "browser.ml.chat.prompts.1" = "";
+ "browser.ml.chat.prompts.2" = "";
+ "browser.ml.chat.prompts.3" = "";
+ "browser.ml.chat.provider" = "";
+ "browser.ml.chat.shortcuts" = false;
+ "browser.ml.chat.shortcuts.custom" = false;
+ "browser.ml.chat.shortcuts.longPress" = "";
+ "browser.ml.chat.sidebar" = false;
+
+ "geo.provider.network.logging.enabled" = true;
+ "extensions.getAddons.showPane" = false;
+ "extensions.htmlaboutaddons.recommendations.enabled" = false;
+ "browser.discovery.enabled" = false;
+ "browser.shopping.experience2023.enabled" = false;
+ "datareporting.policy.dataSubmissionEnabled" = false;
+ "datareporting.healthreport.uploadEnabled" = false;
+ "toolkit.telemetry.unified" = false;
+ "toolkit.telemetry.enabled" = false;
+ "toolkit.telemetry.server" = "data:,";
+ "toolkit.telemetry.archive.enabled" = false;
+ "toolkit.telemetry.newProfilePing.enabled" = false;
+ "toolkit.telemetry.shutdownPingSender.enabled" = false;
+ "toolkit.telemetry.updatePing.enabled" = false;
+ "toolkit.telemetry.bhrPing.enabled" = false;
+ "toolkit.telemetry.firstShutdownPing.enabled" = false;
+ "toolkit.telemetry.coverage.opt-out" = true;
+ "toolkit.coverage.opt-out" = true;
+ "toolkit.coverage.endpoint.base" = "";
+ "toolkit.legacyUserProfileCustomizations.stylesheets" = true;
+ "browser.ping-centre.telemetry" = false;
+ "browser.newtabpage.activity-stream.feeds.telemetry" = false;
+ "browser.newtabpage.activity-stream.telemetry" = false;
+ "app.shield.optoutstudies.enabled" = false;
+ "app.normandy.enabled" = false;
+ "app.normandy.api_url" = "";
+ "dom.private-attribution.submission.enabled" = false;
+ "browser.newtabpage.activity-stream.feeds.showWeather" = false;
+ "browser.newtabpage.activity-stream.feeds.weatherfeed" = false;
+
+ "browser.safebrowsing.malware.enabled" = false;
+ "browser.safebrowsing.phishing.enabled" = false;
+ "browser.safebrowsing.downloads.enabled" = false;
+ "browser.safebrowsing.downloads.remote.enabled" = false;
+ "browser.safebrowsing.downloads.remote.url" = "";
+ "browser.safebrowsing.downloads.remote.block_potentially_unwanted" = false;
+ "browser.safebrowsing.downloads.remote.block_uncommon" = false;
+ "browser.safebrowsing.allowOverride" = false;
+
+ "network.prefetch-next" = false;
+ "network.dns.disablePrefetch" = true;
+ "network.dns.disablePrefetchFromHTTPS" = true;
+ "network.predictor.enabled" = false;
+ "network.predictor.enable-prefetch" = false;
+ "network.http.speculative-parallel-limit" = 0;
+ "browser.places.speculativeConnect.enabled" = false;
+ "browser.send_pings" = false;
+
+ "browser.urlbar.pocket.featureGate" = false;
+ "browser.urlbar.weather.featureGate" = false;
+ "browser.urlbar.speculativeConnect.enabled" = false;
+ "browser.urlbar.suggest.quicksuggest.nonsponsored" = false;
+ "browser.urlbar.suggest.quicksuggest.sponsored" = false;
+ "browser.search.suggest.enabled" = false;
+ "browser.urlbar.suggest.searches" = false;
+ "browser.urlbar.trending.featureGate" = false;
+
+ "security.ssl.require_safe_negotiation" = true;
+ "security.remote_settings.crlite_filters.enabled" = true;
+ "security.pki.crlite_mode" = 2;
+
+ "dom.security.https_only_mode" = true;
+ "dom.security.https_only_mode_pbm" = true;
+ "security.ssl.treat_unsafe_negotiation_as_broken" = true;
+ "browser.xul.error_pages.expert_bad_cert" = true;
+ "network.http.referer.XOriginTrimmingPolicy" = 2;
+
+ "privacy.userContext.enabled" = true;
+ "privacy.userContext.ui.enabled" = true;
+ "privacy.userContext.newTabContainerOnLeftClick.enabled" = true;
+
+ "dom.disable_window_move_resize" = true;
+
+ "browser.uitour.enabled" = false;
+
+ "browser.uitour.url" = "";
+ "permissions.manager.defaultsUrl" = "";
+ "webchannel.allowObject.urlWhitelist" = "";
+
+ "network.IDN_show_punycode" = true;
+ "pdfjs.disabled" = false;
+ "pdfjs.enableScripting" = false;
+ "browser.tabs.searchclipboardfor.middleclick" = false;
+ "browser.download.useDownloadDir" = false;
+ "browser.download.alwaysOpenPanel" = false;
+
+ "browser.download.manager.addToRecentDocs" = false;
+
+ "browser.download.always_ask_before_handling_new_types" = true;
+ "privacy.resistFingerprinting" = true;
+ "privacy.window.maxInnerWidth" = 1600;
+ "privacy.window.maxInnerHeight" = 900;
+ "privacy.resistFingerprinting.block_mozAddonManager" = true;
+ "privacy.resistFingerprinting.letterboxing" = false;
+ "widget.non-native-theme.enabled" = true;
+ "browser.link.open_newwindow" = 3;
+ "browser.link.open_newwindow.restriction" = 0;
+ "signon.rememberSignons" = false;
+ "dom.popup_allowed_events" = "click dblclick mousedown pointerdown";
+ "browser.pagethumbnails.capturing_disabled" = true;
+
+ "geo.enabled" = false;
+ "full-screen-api.enabled" = false;
+ "permissions.default.geo" = 0;
+ "permissions.default.camera" = 0;
+ "permissions.default.microphone" = 0;
+ "permissions.default.desktop-notification" = 0;
+ "permissions.default.xr" = 0;
+ };
+ userChrome = ''
+ #TabsToolbar { display: none !important; }
+ #sidebar-box #sidebar-header { display: none !important; }
+ * { border-radius: 0px; }
+ '';
+ };
+ };
+}
diff --git a/home/rices/cinnamon/system.nix b/home/rices/cinnamon/system.nix
index 5800da1..96aa1f1 100644
--- a/home/rices/cinnamon/system.nix
+++ b/home/rices/cinnamon/system.nix
@@ -13,6 +13,7 @@ in {
environment.systemPackages = with pkgs; [
xorg.xrandr
xclip
+ gnome-screenshot
];
stylix = {
@@ -44,14 +45,6 @@ in {
desktop = 11;
};
};
-
- cursor = {
- package = pkgs.bibata-cursors;
- name = "Bibata-Modern-Classic";
- size = 24;
- };
-
polarity = "dark";
- targets.nixos-icons.enable = false;
};
}
diff --git a/hosts/herra/audio.nix b/hosts/herra/audio.nix
index 17bdcbc..2805547 100644
--- a/hosts/herra/audio.nix
+++ b/hosts/herra/audio.nix
@@ -10,34 +10,34 @@
# Lower audio latency
# TODO: Every setup is different, and a lot of factors determine your final latency, like CPU speed, RT/PREEMPTIVE kernels and soundcards supporting different audio formats. That's why 32/48000 isn't always a value that's going to work for everyone. The best way to get everything working is to keep increasing the quant value until you get no crackles (underruns) or until you get audio again (in case there wasn't any). This won't guarantee the lowest possible latency, but will provide a decent one paired with stable audio.
- extraConfig = {
- pipewire."92-low-latency" = {
- "context.properties" = {
- "default.clock.rate" = 48000;
- "default.clock.quantum" = 32;
- "default.clock.min-quantum" = 32;
- "default.clock.max-quantum" = 32; # Maybe set this to a max of 128 or 256 (as advised by Jade)
- };
- };
-
- pipewire-pulse."92-low-latency" = {
- context.modules = [
- {
- name = "libpipewire-module-protocol-pulse";
- args = {
- pulse.min.req = "32/48000";
- pulse.default.req = "32/48000";
- pulse.max.req = "32/48000";
- pulse.min.quantum = "32/48000";
- pulse.max.quantum = "32/48000"; # Maybe set this to a max of 128 or 256 (as advised by Jade)
- };
- }
- ];
- stream.properties = {
- node.latency = "32/48000";
- resample.quality = 1;
- };
- };
- };
+ # extraConfig = {
+ # pipewire."92-low-latency" = {
+ # "context.properties" = {
+ # "default.clock.rate" = 48000;
+ # "default.clock.quantum" = 128;
+ # "default.clock.min-quantum" = 32;
+ # "default.clock.max-quantum" = 256; # Maybe set this to a max of 128 or 256 (as advised by Jade)
+ # };
+ # };
+ #
+ # pipewire-pulse."92-low-latency" = {
+ # context.modules = [
+ # {
+ # name = "libpipewire-module-protocol-pulse";
+ # args = {
+ # pulse.min.req = "32/48000";
+ # pulse.default.req = "32/48000";
+ # pulse.max.req = "32/48000";
+ # pulse.min.quantum = "32/48000";
+ # pulse.max.quantum = "256/48000"; # Maybe set this to a max of 128 or 256 (as advised by Jade)
+ # };
+ # }
+ # ];
+ # stream.properties = {
+ # node.latency = "32/48000";
+ # resample.quality = 1;
+ # };
+ # };
+ # };
};
}
diff --git a/hosts/herra/drivers.nix b/hosts/herra/drivers.nix
index e731695..27b75ae 100644
--- a/hosts/herra/drivers.nix
+++ b/hosts/herra/drivers.nix
@@ -2,27 +2,37 @@
services.xserver.videoDrivers = ["amdgpu"]; # AMD GPU drivers
boot.kernel.sysctl."kernel.sched_rt_runtime_us" = -1; # Realtime audio
- hardware = {
+ hardware = {
graphics = {
- enable = true;
- enable32Bit = true; # CRITICAL for Steam/Proton
- extraPackages = with pkgs; [
- rocmPackages.clr.icd # OpenCL
- ];
- extraPackages32 = with pkgs; [
- ];
-};
+ enable = true;
+ enable32Bit = true; # CRITICAL for Steam/Proton
+ extraPackages = with pkgs; [
+ rocmPackages.clr.icd # OpenCL
+ ];
+ extraPackages32 = with pkgs; [
+ ];
+ };
+
+ cpu.intel.updateMicrocode = true;
-cpu.intel.updateMicrocode = true;
+ enableRedistributableFirmware = true;
+ };
+ #TODO: FIX
+ #boot.extraModulePackages = with boot.kernelPackages; [
+ # v4l2loopback
+ #];
+ boot.kernelModules = ["v4l2loopback"];
+ boot.extraModprobeConfig = ''
+ options v4l2loopback devices=1 video_nr=1 card_label="OBS Virtual Camera" exclusive_caps=1
+ '';
+
+ systemd.tmpfiles.rules = [
+ "w /sys/class/drm/card1/device/power_dpm_force_performance_level - - - - manual"
+ "w /sys/class/drm/card1/device/pp_dpm_sclk - - - - 7"
+ "w /sys/class/drm/card1/device/pp_dpm_mclk - - - - 1"
+ ];
-enableRedistributableFirmware = true;
-};
-#TODO: FIX
-#boot.extraModulePackages = with boot.kernelPackages; [
-# v4l2loopback
-#];
-boot.kernelModules = [ "v4l2loopback" ];
-boot.extraModprobeConfig = ''
- options v4l2loopback devices=1 video_nr=1 card_label="OBS Virtual Camera" exclusive_caps=1
-'';
+ services.udev.extraRules = ''
+ SUBSYSTEM=="hwmon", ATTRS{name}=="amdgpu", ATTR{power1_cap}="75000000"
+ '';
}
diff --git a/system/programs.nix b/system/programs.nix
index 4fdffc3..483b49a 100644
--- a/system/programs.nix
+++ b/system/programs.nix
@@ -1,5 +1,49 @@
-{...}: {
- programs.firefox.enable = true;
+{pkgs, ...}: {
+ programs.firefox = {
+ enable = true;
+ languagePacks = ["en-GB" "cs" "sk" "de"];
+ policies = {
+ DefaultDownloadDirectory = "\${home}/Downloads";
+ Extensions.Install = map (name: "https://addons.mozilla.org/firefox/downloads/latest/${name}") [
+ # Privacy
+ "ublock-origin"
+ "privacy-badger17"
+ "torproject-snowflake"
+ "clearurls"
+ "flagfox"
+ "user-agent-string-switcher"
+ "facebook-container"
+
+ # QoL
+ "sidebery"
+ "onetab"
+ "bitwarden-password-manager"
+
+ # YouTube
+ "return-youtube-dislikes"
+ "sponsorblock"
+ "youtube-recommended-videos"
+ "hide-members-only-videos"
+
+ # Theming
+ "styl-us"
+ "firefox-color"
+ "darkreader"
+ ];
+ Extensions.Uninstall = [
+ "ddg@search.mozilla.org"
+ "google@search.mozilla.org"
+ "bing@search.mozilla.org"
+ "amazondotcom@search.mozilla.org"
+ "ebay@search.mozilla.org"
+ "twitter@search.mozilla.org"
+ ];
+ DisableFirefoxStudies = true;
+ DisableTelemetry = true;
+ DisableFeedbackCommands = true;
+ DisablePocket = true;
+ };
+ };
programs.zsh.enable = true;
programs.steam = {