feat: Add host sydpc
My, this is a lot TwT. Much work was batched as part of the transition from guix-rebound to nixos-testbed/sydpc. - Discord/Vesktop module & config. - Syncthing setup. - Assorted Emacs changes. - Waybar config. - Niri config. - Steam config. - Some MPD. - Stylix config. - Files/Impermanence things. - Enable Ghostty. - God knows what else.
This commit is contained in:
@@ -7,6 +7,38 @@ in {
|
||||
lib.mkEnableOption "Firefox, à la crumb";
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
# We are very granular about which Firefox files are persisted. While there
|
||||
# is a lot of mutable state (e.g. search history), it is mixed with less
|
||||
# mutable configuration that we force ourselves to manage declaratively.
|
||||
#
|
||||
# For an overview of important files in the profile directory, see
|
||||
# https://support.mozilla.org/en-US/kb/recovering-important-data-from-an-old-profile.
|
||||
sydnix.impermanence =
|
||||
{ directories = [ ".mozilla/firefox/msyds" ]; };
|
||||
# let p = ".mozilla/firefox/msyds";
|
||||
# in {
|
||||
# files = [
|
||||
# # Passwords
|
||||
# "${p}/key4.db"
|
||||
# "${p}/logins.json"
|
||||
# "${p}/logins-backup.json"
|
||||
# # Site-specific permissions
|
||||
# "${p}/permissions.sqlite"
|
||||
# # Bookmarks, downloads and browsing history
|
||||
# "${p}/places.sqlite"
|
||||
# # Cached favicons for use in the history menu.
|
||||
# "${p}/favicons.sqlite"
|
||||
# # Cookies
|
||||
# "${p}/cookies.sqlite"
|
||||
# # Security certificate settings
|
||||
# "${p}/cert9.db"
|
||||
# # Form history (for completions)
|
||||
# "${p}/formhistory.sqlite"
|
||||
# ];
|
||||
# };
|
||||
|
||||
stylix.targets.firefox.profileNames = [ "msyds" ];
|
||||
|
||||
programs.firefox = {
|
||||
enable = true;
|
||||
|
||||
@@ -80,6 +112,7 @@ in {
|
||||
overlays = [ inputs.nur.overlays.default ];
|
||||
};
|
||||
in
|
||||
# https://nur.nix-community.org/repos/rycee/
|
||||
with pkgs'.nur.repos.rycee.firefox-addons; [
|
||||
ublock-origin
|
||||
darkreader
|
||||
@@ -87,12 +120,68 @@ in {
|
||||
vimium
|
||||
kagi-search
|
||||
duckduckgo-privacy-essentials
|
||||
edit-with-emacs
|
||||
textern
|
||||
copy-as-org-mode
|
||||
clearurls
|
||||
sidebery
|
||||
adaptive-tab-bar-colour
|
||||
adnauseam
|
||||
# tree-style-tab
|
||||
# tab-unload-for-tree-style-tab
|
||||
# tst-tab-search
|
||||
# tst-more-tree-commands
|
||||
# tst-lock-tree-collapsed
|
||||
# tst-fade-old-tabs
|
||||
# tst-bookmarks-subpanel
|
||||
# move-unloaded-tabs-for-tst
|
||||
tab-stash
|
||||
unpaywall
|
||||
sourcegraph
|
||||
sponsorblock
|
||||
cookies-txt
|
||||
copy-selected-tabs-to-clipboard
|
||||
copy-link-text
|
||||
df-youtube
|
||||
];
|
||||
};
|
||||
|
||||
# https://github.com/mbnuqw/sidebery/wiki/Firefox-Styles-Snippets-(via-userChrome.css)
|
||||
userChrome = ''
|
||||
/* Hide the tab bar in favour of that provided by the tree-style tabs
|
||||
* addon */
|
||||
/**
|
||||
* Dynamic Horizontal Tabs Toolbar (with animations)
|
||||
* sidebar.verticalTabs: false (with native horizontal tabs)
|
||||
*/
|
||||
#main-window #TabsToolbar > .toolbar-items {
|
||||
overflow: hidden;
|
||||
transition: height 0.3s 0.3s !important;
|
||||
}
|
||||
/* Default state: Set initial height to enable animation */
|
||||
#main-window #TabsToolbar > .toolbar-items { height: 3em !important; }
|
||||
#main-window[uidensity="touch"] #TabsToolbar > .toolbar-items { height: 3.35em !important; }
|
||||
#main-window[uidensity="compact"] #TabsToolbar > .toolbar-items { height: 2.7em !important; }
|
||||
/* Hidden state: Hide native tabs strip */
|
||||
#main-window[titlepreface*="\200b"] #TabsToolbar > .toolbar-items { height: 0 !important; }
|
||||
/* Hidden state: Fix z-index of active pinned tabs */
|
||||
#main-window[titlepreface*="\200b"] #tabbrowser-tabs { z-index: 0 !important; }
|
||||
/* Hidden state: Hide window buttons in tabs-toolbar */
|
||||
#main-window[titlepreface*="\200b"] #TabsToolbar .titlebar-spacer,
|
||||
#main-window[titlepreface*="\200b"] #TabsToolbar .titlebar-buttonbox-container {
|
||||
display: none !important;
|
||||
}
|
||||
/* [Optional] Uncomment block below to show window buttons in nav-bar
|
||||
* (maybe, I didn't test it on non-linux-i3wm env) */
|
||||
/* #main-window[titlepreface*="\200b"] #nav-bar > .titlebar-buttonbox-container,
|
||||
#main-window[titlepreface*="\200b"] #nav-bar > .titlebar-buttonbox-container > .titlebar-buttonbox {
|
||||
display: flex !important;
|
||||
} */
|
||||
/* [Optional] Uncomment one of the line below if you need space near
|
||||
* window buttons */
|
||||
/* #main-window[titlepreface*="\200b"] #nav-bar > .titlebar-spacer[type="pre-tabs"] { display: flex !important; } */
|
||||
/* #main-window[titlepreface*="\200b"] #nav-bar > .titlebar-spacer[type="post-tabs"] { display: flex !important; } */
|
||||
'';
|
||||
|
||||
search = {
|
||||
# Override non-declared settings.
|
||||
force = true;
|
||||
@@ -101,6 +190,14 @@ in {
|
||||
default = "Kagi";
|
||||
privateDefault = "DuckDuckGo";
|
||||
engines = {
|
||||
"Kagi" = {
|
||||
urls = [{
|
||||
template = "https://kagi.com/search";
|
||||
params = [
|
||||
{ name = "q"; value = "{searchTerms}"; }
|
||||
];
|
||||
}];
|
||||
};
|
||||
"Nixpkgs" = {
|
||||
urls = [{
|
||||
template = "https://search.nixos.org/packages";
|
||||
@@ -132,9 +229,13 @@ in {
|
||||
"browser.newtabpage.activity-stream.showSponsored" = false;
|
||||
"browser.urlbar.sponsoredTopSites" = false;
|
||||
"services.sync.prefs.sync.browser.newtabpage.activity-stream.showSponsored"
|
||||
= false;
|
||||
= false;
|
||||
"services.sync.prefs.sync.browser.newtabpage.activity-stream.showSponsoredTopSites"
|
||||
= false;
|
||||
= false;
|
||||
"browser.sessionstore.persist_closed_tabs_between_sessions" = true;
|
||||
"browser.download.always_ask_before_handling_new_types" = true;
|
||||
# Enable userChrome.css.
|
||||
"toolkit.legacyUserProfileCustomizations.stylesheets" = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user