WIP: Nixifyed Floorp Plugins, WIP: Created Custom Theme for Vaultwarden

This commit is contained in:
2026-05-31 09:04:57 +02:00
parent 289cc5f423
commit c335f105a5
16 changed files with 585 additions and 39 deletions
Generated
+74 -30
View File
@@ -57,11 +57,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1779446167, "lastModified": 1780154910,
"narHash": "sha256-95gfnivOKw+zleITz2OptawwTeSs36Y9u+qeU0xdqT8=", "narHash": "sha256-aaGjVFEAJQWB69kok/AthcXpT/9yA5Ag2uYDwdbbj5c=",
"owner": "catppuccin", "owner": "catppuccin",
"repo": "nix", "repo": "nix",
"rev": "229ede9cec873986144e222b2c61c2f239c16125", "rev": "cf8ccac24e24a2a78fe6f36de9c5d5e9860299a4",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -159,6 +159,27 @@
"type": "github" "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"
}
},
"gitignore": { "gitignore": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@@ -188,11 +209,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1779592288, "lastModified": 1780099287,
"narHash": "sha256-pVZwRFVFdHS3D3G07MiZQcSPENnv1xlYCJtfabkqd3Q=", "narHash": "sha256-efIPwVGtIWIjWcznhaop6XN6HxnOL8800hF6CBNvlqQ=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "23703a32ef3d7803a2f1bb9909a3f46fc5185e37", "rev": "7d8127d308c3fb9664f7e643eec944be74ebb37d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -299,11 +320,11 @@
"xdph": "xdph" "xdph": "xdph"
}, },
"locked": { "locked": {
"lastModified": 1779565977, "lastModified": 1780142732,
"narHash": "sha256-OCzhgY7kXuFLczKPf7KjMFS04CPXMAdaiQ+M1kFJVT8=", "narHash": "sha256-7sBe6ujnxspLeX7zMSKpGpOuOXGeUmvDV/78CSsY+PQ=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "Hyprland", "repo": "Hyprland",
"rev": "abd4abb5e654707edba6f527058292333149f90f", "rev": "34fddc949042e45d22bed6cbe72f9a9c838914fa",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -654,11 +675,11 @@
"nixpkgs-nixcord": "nixpkgs-nixcord" "nixpkgs-nixcord": "nixpkgs-nixcord"
}, },
"locked": { "locked": {
"lastModified": 1779498537, "lastModified": 1780158792,
"narHash": "sha256-6LQjFDS69JufrN4sVsMNsXxeSF6BbDzMSbN7sVApsaA=", "narHash": "sha256-tAGrRIQOi11zwl7UOLKkNsy3owVTE+/lDU1MJT9K2Qw=",
"owner": "kaylorben", "owner": "kaylorben",
"repo": "nixcord", "repo": "nixcord",
"rev": "45a98c17b0d9e695bdee92ab00c76657eddf47e7", "rev": "d0a08d06b3a00b1038b1780366180068af7c1489",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -705,11 +726,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1779560665, "lastModified": 1779357205,
"narHash": "sha256-tpyBcxPpcQb8ukyNF7DoCwfSY3VPsxHoYwj00Cayv5o=", "narHash": "sha256-cCO8aTqss5x9Ky8GWkpY0Hy5fyTZEbtifSUV8QjSzic=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "64c08a7ca051951c8eae34e3e3cb1e202fe36786", "rev": "f83fc3c307e74bc5fd5adb7eb6b8b13ffd2a36e1",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -752,11 +773,11 @@
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1779508470, "lastModified": 1779560665,
"narHash": "sha256-Ap9KJX+5xHIn3bPIpfNgT6MEXdAECECwo4/rmlQD74M=", "narHash": "sha256-tpyBcxPpcQb8ukyNF7DoCwfSY3VPsxHoYwj00Cayv5o=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "29916453413845e54a65b8a1cf996842300cd299", "rev": "64c08a7ca051951c8eae34e3e3cb1e202fe36786",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -768,11 +789,11 @@
}, },
"nixpkgs_3": { "nixpkgs_3": {
"locked": { "locked": {
"lastModified": 1779259093, "lastModified": 1779877693,
"narHash": "sha256-7DKWmH23hL2eYdkxCKeqj2i+yljTKuU+3Nk1UPHOnxc=", "narHash": "sha256-NOF9NAREhxr50bbBfVcVOq+ArCMSoe8dP79Pk2uyARk=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "d99b013d5d1931ad77fe3912ed218170dec5d9a4", "rev": "4100e830e085863741bc69b156ec4ccd53ab5be0",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -789,11 +810,11 @@
"systems": "systems_3" "systems": "systems_3"
}, },
"locked": { "locked": {
"lastModified": 1779601302, "lastModified": 1780161591,
"narHash": "sha256-ACtB1llc5ZOJM+lxfbIudM2i/c5dFxRJVXVvhOLpjqA=", "narHash": "sha256-eOiIbCMsYMP9JgZXzuT/m41djqDOEHTKjMFrm5NeVHM=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nixvim", "repo": "nixvim",
"rev": "cb0107f6e18cdf7bf79a025fad154a4414c04383", "rev": "57e5355a843618a717a19d43b2a726a8f27f0bd1",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -802,6 +823,27 @@
"type": "github" "type": "github"
} }
}, },
"nur": {
"inputs": {
"flake-parts": "flake-parts_3",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1780200883,
"narHash": "sha256-Fj+H8TNlWYGsLjrCQRWjcpZDcWp97i/mny9FgPS1W3E=",
"owner": "nix-community",
"repo": "NUR",
"rev": "b8cdbdd02e4ce7a9fb7c8806fb1bc8d160c7433b",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "NUR",
"type": "github"
}
},
"pre-commit-hooks": { "pre-commit-hooks": {
"inputs": { "inputs": {
"flake-compat": "flake-compat", "flake-compat": "flake-compat",
@@ -838,6 +880,7 @@
"nixos-generators": "nixos-generators", "nixos-generators": "nixos-generators",
"nixpkgs": "nixpkgs_2", "nixpkgs": "nixpkgs_2",
"nixvim": "nixvim", "nixvim": "nixvim",
"nur": "nur",
"sops-nix": "sops-nix", "sops-nix": "sops-nix",
"spicetify-nix": "spicetify-nix" "spicetify-nix": "spicetify-nix"
} }
@@ -870,11 +913,11 @@
"systems": "systems_4" "systems": "systems_4"
}, },
"locked": { "locked": {
"lastModified": 1779607677, "lastModified": 1779824049,
"narHash": "sha256-Ang2de6zfcFF8v7LWqSDD1n6bgYj0vN1PY5hi7lOLsM=", "narHash": "sha256-dWHVUjP03KSVG1PaLKA6j9EdxWSxSQvipMUIcSyuA/U=",
"owner": "Gerg-L", "owner": "Gerg-L",
"repo": "spicetify-nix", "repo": "spicetify-nix",
"rev": "e69b824f3c4f4db836f47193723b6d37f93e0dc0", "rev": "1362178e5f5f7a848c49fe9dee004ef8824f100a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -915,15 +958,16 @@
}, },
"systems_3": { "systems_3": {
"locked": { "locked": {
"lastModified": 1681028828, "lastModified": 1774449309,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", "narHash": "sha256-brhZ8DmuGtzkCYHJg4HEd602amKm89Y9ytsFZ5uWD1w=",
"owner": "nix-systems", "owner": "nix-systems",
"repo": "default", "repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", "rev": "c29398b59d2048c4ab79345812849c9bd15e9150",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nix-systems", "owner": "nix-systems",
"ref": "future-26.11",
"repo": "default", "repo": "default",
"type": "github" "type": "github"
} }
+7
View File
@@ -16,6 +16,12 @@
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
# NIX User Repositorys
nur = {
url = "github:nix-community/NUR";
inputs.nixpkgs.follows = "nixpkgs";
};
# declarative Hyprland # declarative Hyprland
hyprland = { hyprland = {
url = "github:hyprwm/Hyprland"; url = "github:hyprwm/Hyprland";
@@ -83,6 +89,7 @@
hyprland, hyprland,
sops-nix, sops-nix,
nixos-generators, nixos-generators,
nur,
... ...
}@inputs: }@inputs:
let let
+2 -1
View File
@@ -8,7 +8,8 @@
imports = [ inputs.catppuccin.homeModules.catppuccin ]; imports = [ inputs.catppuccin.homeModules.catppuccin ];
catppuccin = { catppuccin = {
enable = false; enable = true;
autoEnable = false;
accent = "sky"; accent = "sky";
flavor = "mocha"; flavor = "mocha";
eza.enable = true; eza.enable = true;
+2 -1
View File
@@ -30,12 +30,13 @@
++ lib.optionals (!isServer) [ ++ lib.optionals (!isServer) [
./nixcord.nix ./nixcord.nix
./spicetify.nix ./spicetify.nix
./floorp.nix ./floorp
./obsidian.nix ./obsidian.nix
]; ];
home = { home = {
username = primaryUser; username = primaryUser;
enableNixpkgsReleaseCheck = false;
stateVersion = "26.05"; stateVersion = "26.05";
sessionVariables = lib.mkIf (!isDarwin && !isServer) { sessionVariables = lib.mkIf (!isDarwin && !isServer) {
GROQ_API_KEY = config.sops.secrets.GROQ_API_KEY.path; GROQ_API_KEY = config.sops.secrets.GROQ_API_KEY.path;
-5
View File
@@ -1,5 +0,0 @@
_: {
programs.floorp = {
enable = true;
};
}
+107
View File
@@ -0,0 +1,107 @@
{ pkgs, ... }:
let
addons = pkgs.nur.repos.rycee.firefox-addons;
readJson = path: builtins.readFile path;
buildXpi =
{
name,
addonId,
version,
url,
sha256,
}:
pkgs.nur.repos.rycee.firefox-addons.buildFirefoxXpiAddon {
pname = name;
inherit
addonId
version
url
sha256
;
meta = { };
};
in
{
programs.floorp = {
enable = true;
profiles.default = {
isDefault = true;
settings = {
# Startup
"browser.startup.homepage" = "https://www.cyperpunk.de";
# UI
"browser.ctrlTab.sortByRecentlyUsed" = true;
"browser.tabs.closeWindowWithLastTab" = false;
"browser.toolbars.bookmarks.visibility" = "never";
"browser.toolbars.bookmarks.showOtherBookmarks" = false;
"browser.download.useDownloadDir" = false;
"general.autoScroll" = true;
"intl.locale.requested" = "en";
"browser.search.region" = "DE";
# New tab
"browser.newtabpage.activity-stream.feeds.topsites" = false;
"browser.newtabpage.activity-stream.showSponsoredTopSites" = false;
"browser.newtabpage.activity-stream.showSponsoredCheckboxes" = false;
"browser.newtab.extensionControlled" = true;
# Privacy
"signon.rememberSignons" = false;
"privacy.clearOnShutdown_v2.formdata" = true;
"dom.disable_open_during_load" = false;
# Devtools
"devtools.cache.disabled" = true;
# Media
"media.eme.enabled" = true;
# Font
"font.name.serif.x-western" = "FiraMono Nerd Font";
# URL bar
"browser.urlbar.shortcuts.actions" = false;
"browser.urlbar.shortcuts.bookmarks" = false;
"browser.urlbar.shortcuts.history" = false;
"browser.urlbar.suggest.bookmark" = false;
# Floorp specific
"floorp.browser.tabs.openNewTabPosition" = -1;
"floorp.commandPalette.enabled" = true;
"floorp.mousegesture.enabled" = false;
"floorp.panelSidebar.enabled" = true;
"floorp.workspaces.enabled" = true;
"floorp.zenmode.enabled" = false;
"floorp.design.configs" = readJson ./design.json;
"floorp.panelSidebar.config" = readJson ./panel-sidebar.json;
"floorp.panelSidebar.data" = readJson ./panel-sidebar-data.json;
"floorp.tabs.sleep.exclusion" = readJson ./tabs-sleep-exclusion.json;
};
extensions.packages = [
addons.bitwarden
addons.sidebery
addons.tampermonkey
addons.stylus
addons.new-tab-override
(buildXpi {
name = "adguard-adblocker";
addonId = "adguardadblocker@adguard.com";
version = "5.4.3.1";
url = "https://addons.mozilla.org/firefox/downloads/file/4805625/adguard_adblocker-5.4.3.1.xpi";
sha256 = "1rqp8qcc0p6qgqfgpshiqnll5mrl9jyfnks4zygzim436k0k781l";
})
(buildXpi {
name = "catppuccin-mocha";
addonId = "{7aa7c68a-141f-45c9-a1c6-6e7382debbe1}";
version = "1.0";
url = "https://addons.mozilla.org/firefox/downloads/file/4147586/catppuccin_mocha-1.0.xpi";
sha256 = "04lw5dirdv5636i52gfgyd5l0mkd74qjs2p23mimga3xv8hk1dzl";
})
];
};
};
}
+1
View File
@@ -0,0 +1 @@
{"globalConfigs":{"userInterface":"fluerial","faviconColor":true,"appliedUserJs":""},"tabbar":{"tabbarStyle":"horizontal","tabbarPosition":"optimise-to-vertical-tabbar","multiRowTabBar":{"maxRowEnabled":false,"maxRow":3}},"tab":{"tabScroll":{"enabled":false,"reverse":false,"wrap":false},"tabMinHeight":30,"tabMinWidth":76,"tabPinTitle":false,"tabDubleClickToClose":false,"tabOpenPosition":-1},"uiCustomization":{"navbar":{"position":"top","searchBarTop":false},"display":{"disableFullscreenNotification":false,"deleteBrowserBorder":false},"special":{"optimizeForTreeStyleTab":false,"hideForwardBackwardButton":false,"stgLikeWorkspaces":false},"multirowTab":{"newtabInsideEnabled":false},"bookmarkBar":{"focusExpand":false,"position":"bottom"},"qrCode":{"disableButton":false},"disableFloorpStart":true}}
+1
View File
@@ -0,0 +1 @@
{"data":[{"id":"default-panel-history","url":"floorp//history","width":0,"type":"static"},{"id":"default-panel-downloads","url":"floorp//downloads","width":0,"type":"static"},{"id":"default-panel-notes","url":"floorp//notes","width":0,"type":"static"},{"type":"web","id":"18849706-ce97-41ce-b6c0-007436e81dad","width":450,"url":"https://cinny.cyperpunk.de/home/","userContextId":0,"userAgent":false}]}
+1
View File
@@ -0,0 +1 @@
{"autoUnload":false,"position_start":true,"globalWidth":400,"displayed":true,"webExtensionRunningEnabled":false}
+1
View File
@@ -0,0 +1 @@
{"sidebarCSS":"#root.root {--nav-btn-width: 32px;}\n#root.root {--nav-btn-height: 32px;}\n#root.root {--nav-btn-margin: 4px;}\n#root.root {--nav-btn-len-margin: 0px;}\n#root.root {--nav-btn-border-radius: 5px;}\n#root.root {--toolbar-scrollbar-color: #cdd6f4;}\n#root.root {--general-margin: 4px;}\n#root.root {--general-border-radius: 5px;}","ver":"5.5.2","keybindings":{"_execute_sidebar_action":"Ctrl+E","activate":"Alt+Space","reset_selection":"Alt+R","next_panel":"Alt+Period","prev_panel":"Alt+Comma","new_tab_on_panel":"Ctrl+Space","new_tab_in_group":"Ctrl+Shift+Space","up":"Alt+Up","down":"Alt+Down","up_shift":"Alt+Shift+Up","down_shift":"Alt+Shift+Down"}}
+1
View File
@@ -0,0 +1 @@
{"enabled":true,"patterns":["cyperpunk.de"]}
+1
View File
@@ -4,6 +4,7 @@
catppuccin = { catppuccin = {
enable = true; enable = true;
autoEnable = false;
accent = "sky"; accent = "sky";
flavor = "mocha"; flavor = "mocha";
cache.enable = true; cache.enable = true;
+2 -1
View File
@@ -80,6 +80,7 @@
networkConfig = { networkConfig = {
Address = "10.0.2.15/24"; Address = "10.0.2.15/24";
Gateway = "10.0.2.2"; Gateway = "10.0.2.2";
DNS = "8.8.8.8"; DNS = "8.8.8.8";
DHCP = "no"; DHCP = "no";
}; };
@@ -95,7 +96,7 @@
}; };
nixpkgs = { nixpkgs = {
overlays = [ (import ./packages/overlays.nix) ]; overlays = [ (import ./packages/overlays.nix { inherit (inputs) nur; }) ];
config.allowUnfree = true; config.allowUnfree = true;
}; };
+4 -1
View File
@@ -1,4 +1,7 @@
final: prev: { { nur }:
final: prev:
(nur.overlays.default final prev)
// {
gs1200-exporter = final.callPackage ./gs1200-exporter.nix { }; gs1200-exporter = final.callPackage ./gs1200-exporter.nix { };
oidcwarden = final.callPackage ./oidcwarden.nix { inherit (prev) vaultwarden; }; oidcwarden = final.callPackage ./oidcwarden.nix { inherit (prev) vaultwarden; };
} }
+374
View File
@@ -0,0 +1,374 @@
/* ===== Catppuccin for Vaultwarden ===== */
/* Light: Latte | Dark: Mocha */
:root {
/* ---------- Palette ---------- */
--ctp-rosewater: #dc8a78;
--ctp-flamingo: #dd7878;
--ctp-pink: #ea76cb;
--ctp-mauve: #8839ef;
--ctp-red: #d20f39;
--ctp-maroon: #e64553;
--ctp-peach: #fe640b;
--ctp-yellow: #df8e1d;
--ctp-green: #40a02b;
--ctp-teal: #179299;
--ctp-sky: #04a5e5;
--ctp-sapphire: #209fb5;
--ctp-blue: #1e66f5;
--ctp-lavender: #7287fd;
--ctp-text: #4c4f69;
--ctp-subtext1: #5c5f77;
--ctp-subtext0: #6c6f85;
--ctp-overlay2: #7c7f93;
--ctp-overlay1: #8c8fa1;
--ctp-overlay0: #9ca0b0;
--ctp-surface2: #acb0be;
--ctp-surface1: #bcc0cc;
--ctp-surface0: #ccd0da;
--ctp-base: #eff1f5;
--ctp-mantle: #e6e9ef;
--ctp-crust: #dce0e8;
/* ---------- Semantic mappings ---------- */
--color-white: #ffffff;
--color-black: #000000;
--color-white-rgb: 255, 255, 255;
--color-black-rgb: 0, 0, 0;
/* Grays (using Catppuccin surface hierarchy) */
--color-gray-050: var(--ctp-base);
--color-gray-100: var(--ctp-mantle);
--color-gray-200: var(--ctp-crust);
--color-gray-300: var(--ctp-surface0);
--color-gray-400: var(--ctp-surface1);
--color-gray-400-rgb: 188, 192, 204; /* approx surface1 */
--color-gray-500: var(--ctp-surface2);
--color-gray-600: var(--ctp-overlay0);
--color-gray-700: var(--ctp-overlay1);
--color-gray-800: var(--ctp-overlay2);
--color-gray-900: var(--ctp-text);
--color-gray-950: var(--ctp-subtext0);
--color-gray-950-rgb: 108, 111, 133; /* subtext0 */
/* Brand / Primary (using Blue) */
--color-brand-050: #eef6ff; /* keep similar, but well use surface tints? We'll just leave as is or tint */
--color-brand-100: var(--ctp-surface0);
--color-brand-200: var(--ctp-surface1);
--color-brand-300: #8ec5ff;
--color-brand-400: #6baefa;
--color-brand-500: var(--ctp-blue);
--color-brand-600: var(--ctp-blue);
--color-brand-700: var(--ctp-blue);
--color-brand-800: #0d43af; /* keep a dark blue for contrast */
--color-brand-900: #0c3276;
--color-brand-950: #162455;
--color-brand-950-rgb: 22, 36, 85;
/* Red */
--color-red-050: var(--ctp-surface0);
--color-red-100: var(--ctp-mantle);
--color-red-200: var(--ctp-crust);
--color-red-300: var(--ctp-red);
--color-red-400: var(--ctp-red);
--color-red-500: var(--ctp-red);
--color-red-600: var(--ctp-red);
--color-red-700: var(--ctp-red);
--color-red-800: var(--ctp-maroon);
--color-red-900: var(--ctp-maroon);
--color-red-950: var(--ctp-maroon);
/* Orange / Warning */
--color-orange-050: var(--ctp-surface0);
--color-orange-100: var(--ctp-mantle);
--color-orange-200: var(--ctp-crust);
--color-orange-300: var(--ctp-peach);
--color-orange-400: var(--ctp-peach);
--color-orange-500: var(--ctp-peach);
--color-orange-600: var(--ctp-peach);
--color-orange-700: var(--ctp-peach);
--color-orange-800: var(--ctp-yellow);
--color-orange-900: var(--ctp-yellow);
--color-orange-950: var(--ctp-yellow);
/* Yellow */
--color-yellow-050: var(--ctp-surface0);
--color-yellow-100: var(--ctp-mantle);
--color-yellow-200: var(--ctp-crust);
--color-yellow-300: var(--ctp-yellow);
--color-yellow-400: var(--ctp-yellow);
--color-yellow-500: var(--ctp-yellow);
--color-yellow-600: var(--ctp-yellow);
--color-yellow-700: var(--ctp-yellow);
--color-yellow-800: var(--ctp-yellow);
--color-yellow-900: var(--ctp-yellow);
--color-yellow-950: var(--ctp-yellow);
/* Green / Success */
--color-green-050: var(--ctp-surface0);
--color-green-100: var(--ctp-mantle);
--color-green-200: var(--ctp-crust);
--color-green-300: var(--ctp-green);
--color-green-400: var(--ctp-green);
--color-green-500: var(--ctp-green);
--color-green-600: var(--ctp-green);
--color-green-700: var(--ctp-green);
--color-green-800: var(--ctp-teal);
--color-green-900: var(--ctp-teal);
--color-green-950: var(--ctp-teal);
/* Pink */
--color-pink-050: var(--ctp-surface0);
--color-pink-100: var(--ctp-mantle);
--color-pink-200: var(--ctp-crust);
--color-pink-300: var(--ctp-pink);
--color-pink-400: var(--ctp-pink);
--color-pink-500: var(--ctp-pink);
--color-pink-600: var(--ctp-pink);
--color-pink-700: var(--ctp-mauve);
--color-pink-800: var(--ctp-mauve);
--color-pink-900: var(--ctp-mauve);
--color-pink-950: var(--ctp-mauve);
/* Coral (use Peach) */
--color-coral-050: var(--ctp-surface0);
--color-coral-100: var(--ctp-mantle);
--color-coral-200: var(--ctp-crust);
--color-coral-300: var(--ctp-peach);
--color-coral-400: var(--ctp-peach);
--color-coral-500: var(--ctp-peach);
--color-coral-600: var(--ctp-peach);
--color-coral-700: var(--ctp-peach);
--color-coral-800: var(--ctp-peach);
--color-coral-900: var(--ctp-peach);
--color-coral-950: var(--ctp-peach);
/* Teal */
--color-teal-050: var(--ctp-surface0);
--color-teal-100: var(--ctp-mantle);
--color-teal-200: var(--ctp-crust);
--color-teal-300: var(--ctp-teal);
--color-teal-400: var(--ctp-teal);
--color-teal-500: var(--ctp-teal);
--color-teal-600: var(--ctp-teal);
--color-teal-700: var(--ctp-teal);
--color-teal-800: var(--ctp-sky);
--color-teal-900: var(--ctp-sky);
--color-teal-950: var(--ctp-sky);
/* Purple (use Mauve) */
--color-purple-050: var(--ctp-surface0);
--color-purple-100: var(--ctp-mantle);
--color-purple-200: var(--ctp-crust);
--color-purple-300: var(--ctp-mauve);
--color-purple-400: var(--ctp-mauve);
--color-purple-500: var(--ctp-mauve);
--color-purple-600: var(--ctp-mauve);
--color-purple-700: var(--ctp-mauve);
--color-purple-800: var(--ctp-mauve);
--color-purple-900: var(--ctp-mauve);
--color-purple-950: var(--ctp-mauve);
/* Semantic foreground / background aliases */
--color-fg-heading: var(--ctp-text);
--color-fg-body: var(--ctp-text);
--color-fg-body-subtle: var(--ctp-subtext1);
--color-fg-disabled: var(--ctp-overlay0);
--color-fg-brand: var(--ctp-blue);
--color-fg-success: var(--ctp-green);
--color-fg-danger: var(--ctp-red);
--color-fg-warning: var(--ctp-peach);
--color-fg-sensitive: var(--ctp-pink);
--color-bg-primary: var(--ctp-base);
--color-bg-secondary: var(--ctp-mantle);
--color-bg-tertiary: var(--ctp-crust);
--color-bg-quaternary: var(--ctp-surface0);
--color-bg-disabled: var(--ctp-surface0);
--color-bg-gray: var(--ctp-surface1);
--color-bg-gray-strong: var(--ctp-surface2);
--color-bg-contrast-soft: var(--ctp-overlay1);
--color-bg-contrast: var(--ctp-overlay2);
--color-bg-contrast-strong: var(--ctp-text);
--color-border-muted: var(--ctp-mantle);
--color-border-light: var(--ctp-crust);
--color-border-base: var(--ctp-surface0);
--color-border-strong: var(--ctp-surface1);
--color-border-stronger: var(--ctp-overlay0);
--color-bg-hover: rgba(var(--color-gray-950-rgb), 0.05);
--color-bg-hover-contrast: rgba(255, 255, 255, 0.05);
--color-bg-overlay: rgba(2, 6, 24, 0.3); /* keep dark overlay */
/* Navigation (primary sidebar) */
--color-nav-fg-primary: var(--ctp-text);
--color-nav-bg-primary: var(--ctp-mantle);
--color-nav-bg-primary-strong: var(--ctp-crust);
--color-nav-bg-primary-hover: rgba(0,0,0,0.05);
--color-nav-bg-primary-hover-strong: rgba(0,0,0,0.1);
--color-nav-border-primary: var(--ctp-blue);
--color-nav-border-primary-focus: var(--ctp-text);
/* Misc */
--color-transparent-hover: rgb(0 0 0 / 0.02);
--color-shadow: 108 111 133; /* subtext0 */
--color-background: 239 241 245; /* base */
--color-background-alt: 230 233 239; /* mantle */
--color-background-alt2: 23 92 219; /* keep as original? We'll set to blue */
--color-background-alt3: 33 37 41; /* we map to crust rgb */
--color-background-alt4: 16 18 21;
--color-primary-100: 219 229 246; /* we map to surface0 */
--color-primary-300: 108 117 125;
--color-primary-600: 30 102 245; /* blue */
--color-primary-700: 13 60 119;
--color-secondary-100: 188 192 204;
--color-secondary-300: 156 160 176;
--color-secondary-500: 124 127 147;
--color-secondary-600: 108 111 133;
--color-secondary-700: 92 95 119;
--color-info-100: 219 229 246;
--color-info-600: 30 102 245;
--color-info-700: 13 36 123;
--color-warning-100: 255 244 212;
--color-warning-600: 254 100 11; /* peach */
--color-warning-700: 223 142 29; /* yellow */
--color-danger-100: 255 236 239;
--color-danger-600: 210 15 57; /* red */
--color-danger-700: 149 27 42;
--color-success-100: 213 243 216;
--color-success-600: 64 160 43; /* green */
--color-success-700: 8 81 15;
--color-notification-100: 255 225 247;
--color-notification-600: 192 17 118;
--color-text-main: 27 32 41; /* will be overridden by CT-Text */
--color-text-muted: 108 111 133;
--color-text-contrast: 255 255 255;
--color-text-alt2: 255 255 255;
--color-text-code: 234 118 203; /* pink */
--color-hover-default: rgba(30 102 245 / 0.1);
--color-hover-contrast: rgba(255 255 255 / 0.15);
}
/* ===== Dark Theme (Mocha) ===== */
[data-theme="dark"] {
--ctp-rosewater: #f5e0dc;
--ctp-flamingo: #f2cdcd;
--ctp-pink: #f5c2e7;
--ctp-mauve: #cba6f7;
--ctp-red: #f38ba8;
--ctp-maroon: #eba0ac;
--ctp-peach: #fab387;
--ctp-yellow: #f9e2af;
--ctp-green: #a6e3a1;
--ctp-teal: #94e2d5;
--ctp-sky: #89dceb;
--ctp-sapphire: #74c7ec;
--ctp-blue: #89b4fa;
--ctp-lavender: #b4befe;
--ctp-text: #cdd6f4;
--ctp-subtext1: #bac2de;
--ctp-subtext0: #a6adc8;
--ctp-overlay2: #9399b2;
--ctp-overlay1: #7f849c;
--ctp-overlay0: #6c7086;
--ctp-surface2: #585b70;
--ctp-surface1: #45475a;
--ctp-surface0: #313244;
--ctp-base: #1e1e2e;
--ctp-mantle: #181825;
--ctp-crust: #11111b;
/* Grays */
--color-gray-050: var(--ctp-base);
--color-gray-100: var(--ctp-mantle);
--color-gray-200: var(--ctp-crust);
--color-gray-300: var(--ctp-surface0);
--color-gray-400: var(--ctp-surface1);
--color-gray-500: var(--ctp-surface2);
--color-gray-600: var(--ctp-overlay0);
--color-gray-700: var(--ctp-overlay1);
--color-gray-800: var(--ctp-overlay2);
--color-gray-900: var(--ctp-text);
--color-gray-950: var(--ctp-subtext0);
--color-gray-400-rgb: 69, 71, 90; /* surface1 */
--color-gray-950-rgb: 166, 173, 200; /* subtext0 */
/* Adjust semantic mappings for dark */
--color-fg-heading: var(--ctp-text);
--color-fg-body: var(--ctp-text);
--color-fg-body-subtle: var(--ctp-subtext1);
--color-fg-disabled: var(--ctp-overlay0);
--color-fg-brand: var(--ctp-blue);
--color-fg-success: var(--ctp-green);
--color-fg-danger: var(--ctp-red);
--color-fg-warning: var(--ctp-peach);
--color-fg-sensitive: var(--ctp-pink);
--color-bg-primary: var(--ctp-base);
--color-bg-secondary: var(--ctp-mantle);
--color-bg-tertiary: var(--ctp-crust);
--color-bg-quaternary: var(--ctp-surface0);
--color-bg-disabled: var(--ctp-surface0);
--color-bg-gray: var(--ctp-surface1);
--color-bg-gray-strong: var(--ctp-surface2);
--color-bg-contrast-soft: var(--ctp-overlay1);
--color-bg-contrast: var(--ctp-overlay2);
--color-bg-contrast-strong: var(--ctp-text);
--color-border-muted: var(--ctp-mantle);
--color-border-light: var(--ctp-crust);
--color-border-base: var(--ctp-surface0);
--color-border-strong: var(--ctp-surface1);
--color-border-stronger: var(--ctp-overlay0);
--color-bg-hover: rgba(166, 173, 200, 0.1);
--color-bg-hover-contrast: rgba(255, 255, 255, 0.05);
--color-bg-overlay: rgba(17, 17, 27, 0.7); /* crust with opacity */
--color-nav-fg-primary: var(--ctp-text);
--color-nav-bg-primary: var(--ctp-mantle);
--color-nav-bg-primary-strong: var(--ctp-crust);
--color-nav-bg-primary-hover: rgba(255,255,255,0.05);
--color-nav-bg-primary-hover-strong: rgba(255,255,255,0.1);
--color-nav-border-primary: var(--ctp-blue);
--color-nav-border-primary-focus: var(--ctp-text);
/* Misc rgb values */
--color-shadow: 166 173 200;
--color-background: 30 30 46; /* base */
--color-background-alt: 24 24 37; /* mantle */
--color-background-alt2: 137 180 250; /* blue */
--color-background-alt3: 17 17 27; /* crust */
--color-background-alt4: 17 17 27;
--color-primary-100: 49 50 68;
--color-primary-300: 69 71 90;
--color-primary-600: 137 180 250; /* blue */
--color-primary-700: 137 180 250;
--color-secondary-100: 69 71 90;
--color-secondary-300: 88 91 112;
--color-secondary-500: 108 112 134;
--color-secondary-600: 124 128 150;
--color-secondary-700: 147 153 178;
--color-info-100: 49 50 68;
--color-info-600: 137 180 250;
--color-info-700: 137 180 250;
--color-warning-100: 49 50 68;
--color-warning-600: 250 179 135; /* peach */
--color-warning-700: 249 226 175; /* yellow */
--color-danger-100: 49 50 68;
--color-danger-600: 243 139 168; /* red */
--color-danger-700: 235 160 172; /* maroon */
--color-success-100: 49 50 68;
--color-success-600: 166 227 161; /* green */
--color-success-700: 148 226 213; /* teal */
--color-notification-100: 49 50 68;
--color-notification-600: 245 194 231; /* pink */
--color-text-main: 205 214 244; /* text */
--color-text-muted: 166 173 200;
--color-text-contrast: 30 30 46;
--color-text-alt2: 30 30 46;
--color-text-code: 245 194 231;
--color-hover-default: rgba(137 180 250 / 0.1);
--color-hover-contrast: rgba(30 30 46 / 0.15);
}
+7
View File
@@ -5,6 +5,7 @@
}: }:
let let
port = 8222; port = 8222;
userScss = builtins.readFile ./user.vaultwarden.scss.hbs;
in in
{ {
sops.secrets.vaultwarden_env = { sops.secrets.vaultwarden_env = {
@@ -39,6 +40,7 @@ in
ExecStart = "${pkgs.findutils}/bin/find /var/lib/vaultwarden/backup -mtime +30 -delete"; ExecStart = "${pkgs.findutils}/bin/find /var/lib/vaultwarden/backup -mtime +30 -delete";
}; };
}; };
timers.vaultwarden-backup-rotate = { timers.vaultwarden-backup-rotate = {
wantedBy = [ "timers.target" ]; wantedBy = [ "timers.target" ];
timerConfig = { timerConfig = {
@@ -46,5 +48,10 @@ in
Persistent = true; Persistent = true;
}; };
}; };
tmpfiles.rules = [
"d /var/lib/vaultwarden/templates/scss 0750 vaultwarden vaultwarden -"
"C /var/lib/vaultwarden/templates/scss/user.vaultwarden.scss.hbs 0640 vaultwarden vaultwarden - ${pkgs.writeText "user.vaultwarden.scss.hbs" userScss}"
];
}; };
} }