Compare commits

..

No commits in common. "fe1f5bb6a23c985cd6f3ba4cf9a44d51392e9ca6" and "db7d968f49da7b4bdf3ea7b849980bab98bb5e7d" have entirely different histories.

14 changed files with 284 additions and 289 deletions

View file

@ -1,213 +1,202 @@
{ config, pkgs, ... }: { pkgs, ... }:
{ {
stylix.targets.firefox.profileNames = [ "default" ]; stylix.targets.firefox.profileNames = [ "default" ];
programs = { programs.firefox = {
browserpass = { enable = true;
enable = true; policies = {
browsers = [ "firefox" ]; BlockAboutProfiles = true;
}; Cookies = {
firefox = { Behavior = "reject-tracker-and-partition-foreign";
enable = true; BehaviorPrivateBrowsing = "reject";
policies = { Locked = true;
BlockAboutProfiles = true;
Cookies = {
Behavior = "reject-tracker-and-partition-foreign";
BehaviorPrivateBrowsing = "reject";
Locked = true;
};
DefaultDownloadDirectory = config.xdg.userDirs.download;
DisableAppUpdate = true;
DisableFirefoxAccounts = true;
DisableFirefoxScreenshots = true;
DisableFirefoxStudies = true;
DisableFormHistory = true;
DisablePocket = true;
DisableProfileImport = true;
DisableSetDesktopBackground = true;
DisableSystemAddonUpdate = true;
DisableTelemetry = true;
DisplayMenuBar = "default-off";
DontCheckDefaultBrowser = true;
EnableTrackingProtection = {
Value = true;
Locked = true;
Cryptomining = true;
Fingerprinting = true;
};
ExtensionSettings = {
"queryamoid@kaply.com" = {
installation_mode = "force_installed";
install_url = "https://github.com/mkaply/queryamoid/releases/download/v0.1/query_amo_addon_id-0.1-fx.xpi";
};
# uBlock Origin
"uBlock0@raymondhill.net" = {
installation_mode = "force_installed";
install_url = "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi";
};
# Browserpass
"browserpass@maximbaz.com" = {
installation_mode = "force_installed";
install_url = "https://addons.mozilla.org/firefox/downloads/latest/browserpass-ce/latest.xpi";
};
# SimpleLogin
"addon@simplelogin" = {
installation_mode = "force_installed";
install_url = "https://addons.mozilla.org/firefox/downloads/latest/simplelogin/latest.xpi";
};
# Consent-O-Matic
"gdpr@cavi.au.dk" = {
installation_mode = "force_installed";
install_url = "https://addons.mozilla.org/firefox/downloads/latest/consent-o-matic/latest.xpi";
};
# ClearURLs
"{74145f27-f039-47ce-a470-a662b129930a}" = {
installation_mode = "force_installed";
install_url = "https://addons.mozilla.org/firefox/downloads/latest/clearurls/latest.xpi";
};
};
FirefoxHome = {
Search = true;
TopSites = false;
SponsoredTopSites = false;
Highlights = false;
Pocket = false;
SponsoredPocket = false;
Snippets = false;
Locked = true;
};
FirefoxSuggest = {
WebSuggestions = false;
SponsoredSuggestions = false;
ImproveSuggest = false;
Locked = true;
};
HardwareAcceleration = true;
Homepage = {
Locked = true;
StartPage = "homepage-locked";
};
NewTabPage = true;
NoDefaultBookmarks = false;
OfferToSaveLogins = false;
PasswordManagerEnabled = false;
PDFjs = {
Enabled = false;
};
Permissions = {
Autoplay = {
Default = "block-audio-video";
};
};
PictureInPicture = {
Enabled = true;
};
PopupBlocking = {
Default = true;
};
RequestedLocales = [ "en-GB" ];
SearchBar = "unified";
ShowHomeButton = true;
StartDownloadsInTempDirectory = true;
}; };
profiles.default = { DefaultDownloadDirectory = "\${home}/Downloads";
bookmarks = builtins.fromJSON (builtins.readFile ./bookmarks.json); DisableAppUpdate = true;
settings = { DisableFirefoxAccounts = true;
"app.shield.optoutstudies.enabled" = false; DisableFirefoxScreenshots = true;
"browser.tabs.inTitlebar" = 0; DisableFirefoxStudies = true;
"browser.bookmarks.addedImportButton" = false; DisableFormHistory = true;
"browser.bookmarks.showMobileBookmarks" = false; DisablePocket = true;
"browser.toolbars.bookmarks.visibility" = "never"; DisableProfileImport = true;
"browser.contentblocking.category" = "strict"; DisableSetDesktopBackground = true;
"browser.search.region" = "GB"; DisableSystemAddonUpdate = true;
"browser.search.isUS" = false; DisableTelemetry = true;
"browser.warnOnQuitShortcut" = false; DisplayMenuBar = "default-off";
"browser.zoom.siteSpecific" = false; DontCheckDefaultBrowser = true;
"distribution.searchplugins.defaultLocale" = "en-GB"; EnableTrackingProtection = {
"doh-rollout.home-region" = "GB"; Value = true;
"dom.private-attribution.submission.enabled" = false; Locked = true;
"extensions.activeThemeID" = "default-theme@mozilla.org"; Cryptomining = true;
"extensions.formautofill.creditCards.enabled" = false; Fingerprinting = true;
"general.useragent.locale" = "en-GB"; };
"intl.accept_languages" = "en-gb,en"; ExtensionSettings = {
"intl.locale.requested" = "en-gb,en"; "queryamoid@kaply.com" = {
"intl.regional_prefs.use_os_locales" = true; installation_mode = "force_installed";
"media.eme.enabled" = true; install_url = "https://github.com/mkaply/queryamoid/releases/download/v0.1/query_amo_addon_id-0.1-fx.xpi";
"privacy.webrtc.legacyGlobalIndicator" = false;
"signon.management.page.breach-alerts.enabled" = false;
"signon.rememberSignons" = false;
"widget.use-xdg-desktop-portal.file-picker" = 1;
"widget.use-xdg-desktop-portal.mime-handler" = 1;
"widget.use-xdg-desktop-portal.open-uri" = 1;
"browser.newtabpage.pinned" = [
{
title = "NixOS Wiki";
url = "https://wiki.nixos.org";
}
{
title = "Arch Wiki";
url = "https://wiki.archlinux.org";
}
];
}; };
search = rec { # uBlock Origin
default = "DuckDuckGo"; "uBlock0@raymondhill.net" = {
privateDefault = default; installation_mode = "force_installed";
force = true; install_url = "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi";
order = [ };
"DuckDuckGo" # Proton Pass
"Atlas SearXNG" "78272b6fa58f4a1abaac99321d503a20@proton.me" = {
]; installation_mode = "force_installed";
engines = { install_url = "https://addons.mozilla.org/firefox/downloads/latest/proton-pass/latest.xpi";
"Atlas SearXNG" = { };
urls = [ { template = "https://search.atlas.engineer/searxng/search?q={searchTerms}"; } ]; # Consent-O-Matic
definedAliases = [ "@atlas" ]; "gdpr@cavi.au.dk" = {
}; installation_mode = "force_installed";
"NixOS Wiki" = { install_url = "https://addons.mozilla.org/firefox/downloads/latest/consent-o-matic/latest.xpi";
urls = [ { template = "https://wiki.nixos.org/w/index.php?search={searchTerms}"; } ]; };
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; # ClearURLs
definedAliases = [ "{74145f27-f039-47ce-a470-a662b129930a}" = {
"@nix" installation_mode = "force_installed";
"@nixos" install_url = "https://addons.mozilla.org/firefox/downloads/latest/clearurls/latest.xpi";
"@nixoswiki" };
]; };
}; FirefoxHome = {
"Arch Wiki" = { Search = true;
urls = [ { template = "https://wiki.archlinux.org/index.php?search={searchTerms}"; } ]; TopSites = false;
definedAliases = [ SponsoredTopSites = false;
"@aw" Highlights = false;
"@arch" Pocket = false;
"@archwiki" SponsoredPocket = false;
]; Snippets = false;
}; Locked = true;
"GitHub" = { };
urls = [ { template = "https://github.com/search?q={searchTerms}"; } ]; FirefoxSuggest = {
definedAliases = [ WebSuggestions = false;
"@gh" SponsoredSuggestions = false;
"@git" ImproveSuggest = false;
"@github" Locked = true;
]; };
}; HardwareAcceleration = true;
"FlatHub" = { Homepage = {
url = [ { template = "https://flathub.org/apps/search?q={searchTerms}"; } ]; Locked = true;
definedAliases = [ StartPage = "homepage-locked";
"@flat" };
"@fthub" NewTabPage = true;
"@flathub" NoDefaultBookmarks = false;
]; OfferToSaveLogins = false;
}; PasswordManagerEnabled = false;
"NixOS Packages" = { PDFjs = {
urls = [ Enabled = false;
{ };
template = "http://search.nixos.org/packages?channel=unstable&size=50&sort=relevance&type=packages&query={searchTerms}"; Permissions = {
} Autoplay = {
]; Default = "block-audio-video";
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; };
definedAliases = [ "@nixpkgs" ]; };
}; PictureInPicture = {
"PyPI packages" = { Enabled = true;
urls = [ { template = "https://pypi.org/search/?q={searchTerms}"; } ]; };
definedAliases = [ "@pypi" ]; PopupBlocking = {
}; Default = true;
};
RequestedLocales = [ "en-GB" ];
SearchBar = "unified";
ShowHomeButton = true;
StartDownloadsInTempDirectory = true;
};
profiles.default = {
bookmarks = builtins.fromJSON (builtins.readFile ./bookmarks.json);
settings = {
"app.shield.optoutstudies.enabled" = false;
"browser.tabs.inTitlebar" = 0;
"browser.bookmarks.addedImportButton" = false;
"browser.bookmarks.showMobileBookmarks" = false;
"browser.toolbars.bookmarks.visibility" = "never";
"browser.contentblocking.category" = "strict";
"browser.search.region" = "GB";
"browser.search.isUS" = false;
"browser.warnOnQuitShortcut" = false;
"browser.zoom.siteSpecific" = false;
"distribution.searchplugins.defaultLocale" = "en-GB";
"doh-rollout.home-region" = "GB";
"dom.private-attribution.submission.enabled" = false;
"extensions.activeThemeID" = "default-theme@mozilla.org";
"extensions.formautofill.creditCards.enabled" = false;
"general.useragent.locale" = "en-GB";
"intl.accept_languages" = "en-gb,en";
"intl.locale.requested" = "en-gb,en";
"intl.regional_prefs.use_os_locales" = true;
"media.eme.enabled" = true;
"privacy.webrtc.legacyGlobalIndicator" = false;
"signon.management.page.breach-alerts.enabled" = false;
"signon.rememberSignons" = false;
"widget.use-xdg-desktop-portal.file-picker" = 1;
"widget.use-xdg-desktop-portal.mime-handler" = 1;
"widget.use-xdg-desktop-portal.open-uri" = 1;
"browser.newtabpage.pinned" = [
{
title = "NixOS Wiki";
url = "https://wiki.nixos.org";
}
{
title = "Arch Wiki";
url = "https://wiki.archlinux.org";
}
];
};
search = rec {
default = "DuckDuckGo";
privateDefault = default;
force = true;
order = [
"DuckDuckGo"
"Atlas SearXNG"
];
engines = {
"Atlas SearXNG" = {
urls = [ { template = "https://search.atlas.engineer/searxng/search?q={searchTerms}"; } ];
definedAliases = [ "@atlas" ];
};
"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 = [
"@nix"
"@nixos"
"@nixoswiki"
];
};
"Arch Wiki" = {
urls = [ { template = "https://wiki.archlinux.org/index.php?search={searchTerms}"; } ];
definedAliases = [
"@aw"
"@arch"
"@archwiki"
];
};
"GitHub" = {
urls = [ { template = "https://github.com/search?q={searchTerms}"; } ];
definedAliases = [
"@gh"
"@git"
"@github"
];
};
"FlatHub" = {
url = [ { template = "https://flathub.org/apps/search?q={searchTerms}"; } ];
definedAliases = [
"@flat"
"@fthub"
"@flathub"
];
};
"NixOS Packages" = {
urls = [
{
template = "http://search.nixos.org/packages?channel=unstable&size=50&sort=relevance&type=packages&query={searchTerms}";
}
];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = [ "@nixpkgs" ];
};
"PyPI packages" = {
urls = [ { template = "https://pypi.org/search/?q={searchTerms}"; } ];
definedAliases = [ "@pypi" ];
}; };
}; };
}; };

View file

@ -4,7 +4,7 @@
inputs.nix-index-database.hmModules.nix-index inputs.nix-index-database.hmModules.nix-index
./shell/default.nix ./shell/default.nix
./scripts/default.nix ./scripts/default.nix
./password-store/default.nix ./services/password-store/default.nix
]; ];
programs.home-manager.enable = true; programs.home-manager.enable = true;
} }

View file

@ -2,11 +2,11 @@
{ {
imports = [ imports = [
./plasma/default.nix ./plasma/default.nix
./email/default.nix
./calendar/default.nix
./terminal/default.nix
./emacs/default.nix ./emacs/default.nix
./terminal/default.nix
./browser/default.nix ./browser/default.nix
./services/email/default.nix
./services/calendar/default.nix
]; ];
home = { home = {
packages = with pkgs; [ packages = with pkgs; [

View file

@ -1,12 +1,17 @@
{ config, pkgs, ... }:
{ {
imports = [ config,
../shell/default.nix lib,
../shell/git.nix pkgs,
../gpg/default.nix ...
]; }:
{
imports = [ ../shell/default.nix ];
stylix.targets.emacs.enable = false; stylix.targets.emacs.enable = false;
services = { services = {
gpg-agent = {
enable = true;
pinentryPackage = lib.mkDefault pkgs.pinentry-all;
};
git-sync.repositories = { git-sync.repositories = {
org = { org = {
path = "${config.xdg.userDirs.documents}/org"; path = "${config.xdg.userDirs.documents}/org";
@ -26,52 +31,55 @@
startWithUserSession = false; startWithUserSession = false;
}; };
}; };
programs.emacs = { programs = {
# Clone emacs config from https://git.xenia.me.uk/pixelifytica/emacs.git gpg.enable = true;
enable = true; emacs = {
package = pkgs.emacs29-pgtk; # Clone emacs config from https://git.xenia.me.uk/pixelifytica/emacs.git
extraConfig = enable = true;
let package = pkgs.emacs29-pgtk;
fixed-font-family = "${config.stylix.fonts.monospace.name}"; extraConfig =
variable-font-family = "${config.stylix.fonts.sansSerif.name}"; let
font-height = builtins.toString ( fixed-font-family = "${config.stylix.fonts.monospace.name}";
builtins.floor (builtins.mul config.stylix.fonts.sizes.applications 10) variable-font-family = "${config.stylix.fonts.sansSerif.name}";
); font-height = builtins.toString (
custom-theme-name = "nix"; builtins.floor (builtins.mul config.stylix.fonts.sizes.applications 10)
custom-theme = pkgs.writeTextFile { );
name = "custom-emacs-theme"; custom-theme-name = "nix";
destination = "/${custom-theme-name}-theme.el"; custom-theme = pkgs.writeTextFile {
text = '' name = "custom-emacs-theme";
(deftheme ${custom-theme-name} destination = "/${custom-theme-name}-theme.el";
"Use Nix customised fonts for main faces") text = ''
(deftheme ${custom-theme-name}
"Use Nix customised fonts for main faces")
(custom-theme-set-variables (custom-theme-set-variables
'${custom-theme-name} '${custom-theme-name}
'(menu-bar-mode nil)) '(menu-bar-mode nil))
(custom-theme-set-faces (custom-theme-set-faces
'${custom-theme-name} '${custom-theme-name}
'(default ((t (:family "${fixed-font-family}" :height ${font-height})))) '(default ((t (:family "${fixed-font-family}" :height ${font-height}))))
'(fixed-pitch ((t (:family "${fixed-font-family}")))) '(fixed-pitch ((t (:family "${fixed-font-family}"))))
'(fixed-pitch-serif ((t (:family "${fixed-font-family}")))) '(fixed-pitch-serif ((t (:family "${fixed-font-family}"))))
'(variable-pitch ((t (:family "${variable-font-family}"))))) '(variable-pitch ((t (:family "${variable-font-family}")))))
(provide-theme '${custom-theme-name}) (provide-theme '${custom-theme-name})
''; '';
}; };
custom-theme-hash = builtins.hashFile "sha256" "${custom-theme}/${custom-theme-name}-theme.el"; custom-theme-hash = builtins.hashFile "sha256" "${custom-theme}/${custom-theme-name}-theme.el";
in in
'' ''
(add-to-list 'custom-theme-load-path "${custom-theme}") (add-to-list 'custom-theme-load-path "${custom-theme}")
(add-to-list 'custom-safe-themes "${custom-theme-hash}") (add-to-list 'custom-safe-themes "${custom-theme-hash}")
(load-theme '${custom-theme-name}) (load-theme '${custom-theme-name})
''; '';
extraPackages = extraPackages =
epkgs: with epkgs; [ epkgs: with epkgs; [
treesit-grammars.with-all-grammars treesit-grammars.with-all-grammars
mu4e mu4e
emacsql-sqlite emacsql-sqlite
]; ];
};
}; };
home.packages = with pkgs; [ home.packages = with pkgs; [
# Emacs requirements # Emacs requirements

View file

@ -1,8 +0,0 @@
{ lib, pkgs, ... }:
{
programs.gpg.enable = true;
services.gpg-agent = {
enable = true;
pinentryPackage = lib.mkDefault pkgs.pinentry-all;
};
}

View file

@ -1,22 +0,0 @@
{ config, pkgs, ... }:
{
imports = [
../gpg/default.nix
../shell/git.nix
];
services.git-sync.repositories.password-store = {
path = config.programs.password-store.settings.PASSWORD_STORE_DIR;
uri = "git+https://git.xenia.me.uk/pixelifytica/pass.git";
};
programs = {
gpg.enable = true;
password-store = {
enable = true;
package = pkgs.pass-nodmenu.withExtensions (exts: with exts; [ pass-update ]);
settings = {
PASSWORD_STORE_DIR = "${config.home.homeDirectory}/.password-store";
PASSWORD_STORE_ENABLE_EXTENSIONS = "true";
};
};
};
}

View file

@ -0,0 +1,28 @@
{
config,
lib,
pkgs,
...
}:
{
programs = {
gpg.enable = true;
password-store = {
enable = true;
package = pkgs.pass-nodmenu.withExtensions (
exts: with exts; [
pass-update
pass-import
]
); # pass-audit
settings = {
PASSWORD_STORE_DIR = "${config.home.homeDirectory}/.password-store";
PASSWORD_STORE_ENABLE_EXTENSIONS = "true";
};
};
};
services.gpg-agent = {
enable = true;
pinentryPackage = lib.mkDefault pkgs.pinentry-all;
};
}