This commit is contained in:
Lucy Hochkamp 2025-09-10 15:33:48 +02:00
parent c999ed6520
commit 35c8ebb56a
No known key found for this signature in database
20 changed files with 670 additions and 405 deletions

View file

@ -1,51 +0,0 @@
{
pkgs,
config,
lib,
inputs,
...
}:
let
cfg = config.xyno.alacritty;
in
{
options.xyno.alacritty.enable = lib.mkOption { default = false; };
config = lib.mkIf cfg.enable {
programs.alacritty = {
enable = true;
settings = {
font.normal.family = "JetBrainsMono NerdFont";
colors = {
primary = {
# hard contrast
background = "#1d2021";
# normal background = "#282828";
# soft contrast background = = "#32302f"
foreground = "#ebdbb2";
};
normal = {
black = "#282828";
red = "#cc241d";
green = "#98971a";
yellow = "#d79921";
blue = "#458588";
magenta = "#b16286";
cyan = "#689d6a";
white = "#a89984";
};
bright = {
black = "#928374";
red = "#fb4934";
green = "#b8bb26";
yellow = "#fabd2f";
blue = "#83a598";
magenta = "#d3869b";
cyan = "#8ec07c";
white = "#ebdbb2";
};
};
};
};
};
}

View file

@ -10,54 +10,13 @@ let
in
{
options.xyno.firefox.enable = lib.mkOption { default = false; };
options.xyno.firefox.package = lib.mkOption {
type = lib.types.package;
default = inputs.zen-browser.packages.${pkgs.system}.default;
};
config = lib.mkIf cfg.enable {
programs.firefox = {
programs.zen-browser = {
enable = true;
package = cfg.package;
languagePacks = [
"en-US"
"de"
];
preferences = {
"widget.use-xdg-desktop-portal.file-picker" = 1;
"font.default.x-western" = "sans-serif";
"font.name.sans-serif.x-western" = "Source Sans 3";
"font.name.monospace.x-western" = "JetBrainsMono Nerd Font";
"font.size.vaiable.x-western" = "14";
"network.proxy.allow_hijacking_localhost" = true;
"browser.newtabpage.pinned" = builtins.toJSON [
# won't ever see that but whatever
{
url = "https://mastodon.catgirl.cloud";
label = "fedi";
}
{
url = "https://youtube.com";
label = "YouTube";
}
{
url = "https://tagesschau.de";
label = "Tagesschau";
}
{
url = "https://heise.de";
label = "heise";
}
];
# things ripped from https://github.com/yokoffing/Betterfox/blob/main/Fastfox.js
"media.memory_cache_max_size" = 65536;
"media.cache_readahead_limit" = 7200;
"media.cache_resume_threshold" = 3600;
"network.http.max-connections" = 1000;
"network.http.max-persistent-connections-per-server" = 10;
"network.http.max-urgent-start-excessive-connections-per-host" = 5;
"network.ssl_tokens_cache_capacity" = 10240;
};
policies = {
# Updates & Background Services
AppAutoUpdate = false;
@ -97,7 +56,7 @@ in
};
"keepassxc-browser@keepassxc.org" = {
default_area = "navbar";
default_area = "menupanel";
install_url = moz "keepassxc-browser";
installation_mode = "force_installed";
private_browsing = true;
@ -122,131 +81,294 @@ in
install_url = moz "web-clipper-obsidian";
installation_mode = "force_installed";
private_browsing = true;
};
"@testpilot-containers" = {
default_area = "menupanel";
install_url = moz "multi_account_containers";
installation_mode = "force_installed";
private_browsing = true;
};
"{7a7a4a92-a2a0-41d1-9fd7-1e92480d612d}" = {
default_area = "menupanel";
install_url = moz "styl_us";
installation_mode = "force_installed";
private_browsing = true;
};
};
};
};
profiles.default = {
bookmarks.settings = [
{
name = "wikipedia";
tags = [ "wiki" ];
keyword = "wiki";
url = "https://en.wikipedia.org/wiki/Special:Search?search=%s&go=Go";
}
{
name = "mastodon.catgirl.cloud";
tags = [ "fedi" ];
keyword = "fedi";
url = "https://mastodon.catgirl.cloud";
}
{
name = "YouTube";
tags = [ "yt" ];
keyword = "yt";
url = "https://youtube.com";
}
{
name = "tagesschau.de";
tags = [ "news" ];
keyword = "tagesschau";
url = "https://tagesschau.de";
}
{
name = "heise.de";
tags = [ "news" ];
keyword = "heise";
url = "https://heise.de";
}
"seperator"
{
name = "Nix sites";
toolbar = true;
bookmarks = [
profiles.lucy = {
spacesForce = true;
spaces = {
main = {
id = "59c80d1b-ec79-4d65-a337-aa69e3af8614";
icon = "";
};
work = {
id = "7753b3d5-28e4-4575-9b8f-f9fa999bddd8";
position = 1001;
icon = "🚂";
container = 2;
};
};
containersForce = true;
containers = {
work = {
id = 2;
icon = "dollar";
color = "blue";
};
};
settings = {
"widget.use-xdg-desktop-portal.file-picker" = 1;
"font.default.x-western" = "sans-serif";
"font.name.sans-serif.x-western" = "Source Sans 3";
"font.name.monospace.x-western" = "JetBrainsMono Nerd Font";
"font.size.variable.x-western" = "14";
"browser.display.use_document_fonts" = "0";
"network.proxy.allow_hijacking_localhost" = true;
"browser.newtabpage.pinned" = builtins.toJSON [
# won't ever see that but whatever
{
name = "homepage";
url = "https://nixos.org/";
url = "https://mastodon.catgirl.cloud";
label = "fedi";
}
{
name = "wiki";
tags = [
"wiki"
"nix"
];
url = "https://wiki.nixos.org/";
url = "https://youtube.com";
label = "YouTube";
}
{
url = "https://tagesschau.de";
label = "Tagesschau";
}
{
url = "https://heise.de";
label = "heise";
}
{
url = "https://j.hailsatan.eu";
label = "Lucy+";
}
];
}
];
"privacy.trackingprotection.enabled" = true;
"privacy.trackingprotection.socialtracking.enabled" = true;
"privacy.trackingprotection.emailtracking.enabled" = true;
extensions.settings = {
"uBlock0@raymondhill.net" = {
"zen.view.use-single-toolbar" = false;
"zen.welcome-screen.seen" = true;
# things ripped from https://github.com/yokoffing/Betterfox/blob/main/Fastfox.js
"media.memory_cache_max_size" = 65536;
"media.cache_readahead_limit" = 7200;
"media.cache_resume_threshold" = 3600;
"network.http.max-connections" = 1000;
"network.http.max-persistent-connections-per-server" = 10;
"network.http.max-urgent-start-excessive-connections-per-host" = 5;
"network.ssl_tokens_cache_capacity" = 10240;
"extensions.webextensions.ExtensionStorageIDB.enabled" = false;
};
};
search = {
force = true;
default = "DuckDuckGo";
privateDefault = "DuckDuckGo";
engines = {
"Nix Packages" = {
urls = [
bookmarks.force = true;
bookmarks.settings = [
{
name = "wikipedia";
tags = [ "wiki" ];
keyword = "wiki";
url = "https://en.wikipedia.org/wiki/Special:Search?search=%s&go=Go";
}
{
name = "mastodon.catgirl.cloud";
tags = [ "fedi" ];
keyword = "fedi";
url = "https://mastodon.catgirl.cloud";
}
{
name = "YouTube";
tags = [ "video" ];
keyword = "yt";
url = "https://youtube.com";
}
{
name = "Lucy+";
tags = [ "video" ];
keyword = "j";
url = "https://j.hailsatan.eu";
}
{
name = "tagesschau.de";
tags = [ "news" ];
keyword = "tagesschau";
url = "https://tagesschau.de";
}
{
name = "heise.de";
tags = [ "news" ];
keyword = "heise";
url = "https://heise.de";
}
"separator"
{
name = "Nix sites";
toolbar = true;
bookmarks = [
{
template = "https://search.nixos.org/packages";
params = [
{
name = "channel";
value = "unstable";
}
{
name = "query";
value = "{searchTerms}";
}
name = "Nixpkgs Manual";
tags = [
"nix"
];
url = "https://ryantm.github.io/nixpkgs/";
}
{
name = "NixOS Manual";
tags = [
"nix"
];
url = "https://nixos.org/manual/nixos/stable/#sec-option-declarations";
}
{
name = "homepage";
url = "https://nixos.org/";
}
{
name = "wiki";
tags = [
"wiki"
"nix"
];
url = "https://wiki.nixos.org/";
}
];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = [ "@np" ];
}
];
extensions.force = true;
extensions.settings = {
"vimium-c@gdh1995.cn".settings = {
searchEngines = ''
g|go|gg|google|Google: https://www.google.com/search?q=%s \\
www.google.com re=/^(?:\\.[a-z]{2,4})?\\/search\\b.*?[#&?]q=([^#&]*)/i \\
blank=https://www.google.com/ Google
g.m|gm|g.map|gmap: https://www.google.com/maps?q=%s \\
blank=https://www.google.com/maps Google Maps
y|yt: https://www.youtube.com/results?search_query=%s \\
blank=https://www.youtube.com/ YouTube
w|wiki: https://www.wikipedia.org/w/index.php?search=%s Wikipedia
g.s|gs|gscholar: https://scholar.google.com/scholar?q=$s \\
scholar.google.com re=/^(?:\\.[a-z]{2,4})?\\/scholar\\b.*?[#&?]q=([^#&]*)/i \\
blank=https://scholar.google.com/ Google Scholar
a|ae|ali|alie|aliexp: https://www.aliexpress.com/wholesale?SearchText=%s \\
blank=https://www.aliexpress.com/ AliExpress
az|amazon: https://www.amazon.com/s?k=%s \\
blank=https://www.amazon.com/ Amazon
\\:i: vimium://sed/s/^//,lower\\ $S re= Lower case
v.m|math: vimium://math\\ $S re= Calculate
v.p: vimium://parse\\ $S re= Redo Search
gh|github: https://github.com/search?q=$s \\
blank=https://github.com/ GitHub Repo
ge|gitee: https://search.gitee.com/?type=repository&q=$s \\
blank=https://gitee.com/ Gitee
js\\:|Js: javascript:\\ $S; JavaScript
'';
keyLayout = 2;
scrollStepSize = 150;
searchUrl = "https://duckduckgo.com/?tq=$s DDG";
keyMappings = ''
#!no-check
unmap gs
map gs LinkHints.activateHover
map <c-i> enterInsertMode key="<c-esc>"
'';
};
"Nix Options" = {
urls = [
{
template = "https://search.nixos.org/options";
params = [
{
name = "channel";
value = "unstable";
}
{
name = "query";
value = "{searchTerms}";
}
];
}
];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = [ "@no" ];
"{7a7a4a92-a2a0-41d1-9fd7-1e92480d612d}".settings = {
dbInChromeStorage = true; # required for Stylus
};
"NixOS Wiki" = {
urls = [
{
template = "https://wiki.nixos.org/w/index.php";
params = [
{
name = "search";
value = "{searchTerms}";
}
];
}
"uBlock0@raymondhill.net".settings = {
selectedFilterLists = [
"user-filters"
"ublock-filters"
"ublock-badware"
"ublock-privacy"
"ublock-quick-fixes"
"ublock-unbreak"
"easylist"
"easyprivacy"
"urlhaus-1"
"plowe-0"
"fanboy-cookiemonster"
"ublock-cookies-easylist"
"fanboy-social"
"easylist-chat"
"easylist-newsletters"
"easylist-notifications"
"easylist-annoyances"
];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = [ "@nw" ];
"user-filters" =
''marketplace.visualstudio.com##+js(rpnt, script, /"(DisableVSCodeDownloadButtonEnabled|Microsoft\\.VisualStudio\\.Services\\.Gallery\\.DisableVSCodeDownloadButton)":true/, "$1":false)'';
};
};
search = {
force = true;
default = "ddg";
privateDefault = "ddg";
engines = {
"Nix Packages" = {
urls = [
{
template = "https://search.nixos.org/packages";
params = [
{
name = "channel";
value = "unstable";
}
{
name = "query";
value = "{searchTerms}";
}
];
}
];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = [ "@np" ];
};
"Nix Options" = {
urls = [
{
template = "https://search.nixos.org/options";
params = [
{
name = "channel";
value = "unstable";
}
{
name = "query";
value = "{searchTerms}";
}
];
}
];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = [ "@no" ];
};
"NixOS Wiki" = {
urls = [
{
template = "https://wiki.nixos.org/w/index.php";
params = [
{
name = "search";
value = "{searchTerms}";
}
];
}
];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = [ "@nw" ];
};
};
};
};

View file

@ -1,30 +1,34 @@
{ pkgs, config, lib, inputs, ... }:
with lib;
let
cfg = config.xyno.helix;
in
{
options.xyno.helix.enable = lib.mkOption { default = false; };
config = lib.mkIf cfg.enable {
options.xyno.helix.enable = mkOption { default = false; };
options.xyno.helix.withLargeLSPs = mkOption { default = false; };
config = mkIf cfg.enable {
home.packages = with pkgs; [
jsonnet-language-server
jsonnet
nixpkgs-fmt
# omnisharp-roslyn
## ts
# nodePackages_latest.prettier
typescript
dprint
nodePackages_latest.typescript-language-server
nodePackages_latest.vscode-langservers-extracted
markdown-oxide
## python
# ruff-lsp
# nodePackages_latest.pyright
# inputs.csharp-language-server.packages.${pkgs.system}.csharp-language-server
] ++ (optionals cfg.withLargeLSPs [
netcoredbg
];
nodePackages_latest.typescript-language-server
nodePackages_latest.vscode-langservers-extracted
typescript
jsonnet-language-server
jsonnet
]);
programs.helix = {
package = inputs.helix.packages.${pkgs.stdenv.hostPlatform.system}.default;
package = inputs.helix.packages.${pkgs.system}.default;
enable = true;
defaultEditor = true;
settings = {
@ -117,7 +121,7 @@ in
language-server.csharp = {
command = "csharp-language-server";
};
language = lib.flatten [
language = flatten [
(map
(x: {
name = x;

View file

@ -1,7 +1,9 @@
{ inputs, ... }:
[
./alacritty.nix
./borgmatic.nix
./dark-theme.nix
./firefox.nix
./git.nix
./helix.nix
./dark-theme.nix
./mpv.nix
]

20
hm-modules/mpv.nix Normal file
View file

@ -0,0 +1,20 @@
{
pkgs,
config,
lib,
inputs,
...
}:
let
cfg = config.xyno.mpv;
in
{
options.xyno.mpv.enable = lib.mkOption { default = false; };
config = lib.mkIf cfg.enable {
programs.mpv = {
enable = true;
scripts = with pkgs.mpvScripts; [ mpv-webm sponsorblock ];
};
};
}