Compare commits

..

3 Commits

Author SHA1 Message Date
595cabbb88 refactor(browser): create single browser module 2026-01-12 18:10:52 +01:00
27bef572c7 chore: update Nix 'work' host 2026-01-08 11:59:54 +01:00
42025be03c chore: update lockfile 2025-12-29 09:35:08 +01:00
13 changed files with 396 additions and 148 deletions

View File

@@ -42,11 +42,11 @@
}, },
"nixCats": { "nixCats": {
"locked": { "locked": {
"lastModified": 1765766809, "lastModified": 1767159145,
"narHash": "sha256-3Xp41+Sb1zIzASa1Uu1k1RMUoJ9CGyYb0GtvvpRPBqg=", "narHash": "sha256-rnx/0p6D7rKd7mjtgsdSZjpkutJMzUaVyo2mj0rmjWQ=",
"owner": "BirdeeHub", "owner": "BirdeeHub",
"repo": "nixCats-nvim", "repo": "nixCats-nvim",
"rev": "fe157e3ed69ed14b55ca81f597eac282caed58a2", "rev": "479ab18fbeabaf87564d3fb0eaf99ebebb05f2f8",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -73,16 +73,16 @@
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1766532406, "lastModified": 1767767207,
"narHash": "sha256-acLU/ag9VEoKkzOD202QASX25nG1eArXg5A0mHjKgxM=", "narHash": "sha256-Mj3d3PfwltLmukFal5i3fFt27L6NiKXdBezC1EBuZs4=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "8142186f001295e5a3239f485c8a49bf2de2695a", "rev": "5912c1772a44e31bf1c63c0390b90501e5026886",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nixos", "owner": "nixos",
"ref": "nixpkgs-unstable", "ref": "nixos-unstable",
"repo": "nixpkgs", "repo": "nixpkgs",
"type": "github" "type": "github"
} }

View File

@@ -138,7 +138,7 @@
zenbones-nvim zenbones-nvim
pkgs.neovimPlugins.crazy-node-movement pkgs.neovimPlugins.crazy-node-movement
nvim-treesitter.withAllGrammars nvim-treesitter.withAllGrammars
nvim-treesitter-textobjects # nvim-treesitter-textobjects
# nvim-treesitter-context # nvim-treesitter-context
nvim-ts-context-commentstring nvim-ts-context-commentstring
treesj treesj

36
flake.lock generated
View File

@@ -29,11 +29,11 @@
}, },
"locked": { "locked": {
"dir": "pkgs/firefox-addons", "dir": "pkgs/firefox-addons",
"lastModified": 1766046711, "lastModified": 1767585814,
"narHash": "sha256-PijxRQcvSgQae3qBdY4+IGMsMFL67N3D7sBJdZxDii4=", "narHash": "sha256-7iodv57Ppq05AHVKnS9/IdhhgBYTVpTDZmz2u2enr/E=",
"owner": "rycee", "owner": "rycee",
"repo": "nur-expressions", "repo": "nur-expressions",
"rev": "7163ab9a8e64cd29c45e8f93fbc038b12056e6fc", "rev": "66bfeb87deb83ca2f9fa2045704b72de52c6433a",
"type": "gitlab" "type": "gitlab"
}, },
"original": { "original": {
@@ -90,11 +90,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1765980955, "lastModified": 1767556355,
"narHash": "sha256-rB45jv4uwC90vM9UZ70plfvY/2Kdygs+zlQ07dGQFk4=", "narHash": "sha256-RDTUBDQBi9D4eD9iJQWtUDN/13MDLX+KmE+TwwNUp2s=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "89c9508bbe9b40d36b3dc206c2483ef176f15173", "rev": "f894bc4ffde179d178d8deb374fcf9855d1a82b7",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -142,11 +142,11 @@
}, },
"nixCats": { "nixCats": {
"locked": { "locked": {
"lastModified": 1765766809, "lastModified": 1767159145,
"narHash": "sha256-3Xp41+Sb1zIzASa1Uu1k1RMUoJ9CGyYb0GtvvpRPBqg=", "narHash": "sha256-rnx/0p6D7rKd7mjtgsdSZjpkutJMzUaVyo2mj0rmjWQ=",
"owner": "BirdeeHub", "owner": "BirdeeHub",
"repo": "nixCats-nvim", "repo": "nixCats-nvim",
"rev": "fe157e3ed69ed14b55ca81f597eac282caed58a2", "rev": "479ab18fbeabaf87564d3fb0eaf99ebebb05f2f8",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -178,11 +178,11 @@
}, },
"nixos-hardware": { "nixos-hardware": {
"locked": { "locked": {
"lastModified": 1764440730, "lastModified": 1767185284,
"narHash": "sha256-ZlJTNLUKQRANlLDomuRWLBCH5792x+6XUJ4YdFRjtO4=", "narHash": "sha256-ljDBUDpD1Cg5n3mJI81Hz5qeZAwCGxon4kQW3Ho3+6Q=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixos-hardware", "repo": "nixos-hardware",
"rev": "9154f4569b6cdfd3c595851a6ba51bfaa472d9f3", "rev": "40b1a28dce561bea34858287fbb23052c3ee63fe",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -194,11 +194,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1765779637, "lastModified": 1767379071,
"narHash": "sha256-KJ2wa/BLSrTqDjbfyNx70ov/HdgNBCBBSQP3BIzKnv4=", "narHash": "sha256-EgE0pxsrW9jp9YFMkHL9JMXxcqi/OoumPJYwf+Okucw=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "1306659b587dc277866c7b69eb97e5f07864d8c4", "rev": "fb7944c166a3b630f177938e478f0378e64ce108",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -398,11 +398,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1765836173, "lastModified": 1767499857,
"narHash": "sha256-hWRYfdH2ONI7HXbqZqW8Q1y9IRbnXWvtvt/ONZovSNY=", "narHash": "sha256-0zUU/PW09d6oBaR8x8vMHcAhg1MOvo3CwoXgHijzzNE=",
"owner": "Mic92", "owner": "Mic92",
"repo": "sops-nix", "repo": "sops-nix",
"rev": "443a7f2e7e118c4fc63b7fae05ab3080dd0e5c63", "rev": "ecc41505948ec2ab0325f14c9862a4329c2b4190",
"type": "github" "type": "github"
}, },
"original": { "original": {

View File

@@ -14,15 +14,10 @@ in
../../modules/desktop/niri ../../modules/desktop/niri
../../modules/git.nix ../../modules/git.nix
../../modules/k9s.nix ../../modules/k9s.nix
(import ../../modules/taskwarrior.nix { ../../modules/taskwarrior.nix
inherit config; ../../modules/keepassxc.nix
inherit pkgs; ../../modules/anki.nix
}) ../../modules/browser
(import ../../modules/keepassxc.nix { inherit pkgs; })
(import ../../modules/anki.nix {
inherit config;
inherit pkgs;
})
]; ];
home.stateVersion = "25.05"; home.stateVersion = "25.05";
@@ -32,6 +27,8 @@ in
xdg.userDirs.createDirectories = false; xdg.userDirs.createDirectories = false;
xdg.userDirs.download = "${config.home.homeDirectory}/dl"; xdg.userDirs.download = "${config.home.homeDirectory}/dl";
browser.primary = "librewolf";
programs = { programs = {
bash = { bash = {
enable = true; enable = true;
@@ -50,11 +47,6 @@ in
export PATH=${../../../dots/.bin}:$PATH export PATH=${../../../dots/.bin}:$PATH
''; '';
}; };
firefox = import ../../modules/firefox.nix {
inherit inputs;
inherit pkgs;
inherit config;
};
fzf = { fzf = {
enable = true; enable = true;
enableBashIntegration = true; enableBashIntegration = true;

View File

@@ -13,11 +13,9 @@ in
../../modules/desktop/niri ../../modules/desktop/niri
../../modules/git.nix ../../modules/git.nix
../../modules/k9s.nix ../../modules/k9s.nix
(import ../../modules/taskwarrior.nix { ../../modules/taskwarrior.nix
inherit config; ../../modules/keepassxc.nix
inherit pkgs; ../../modules/browser
})
(import ../../modules/keepassxc.nix { inherit pkgs; })
]; ];
home.stateVersion = "25.05"; home.stateVersion = "25.05";
@@ -27,6 +25,8 @@ in
xdg.userDirs.createDirectories = false; xdg.userDirs.createDirectories = false;
xdg.userDirs.download = "${config.home.homeDirectory}/dl"; xdg.userDirs.download = "${config.home.homeDirectory}/dl";
browser.primary = "librewolf";
programs = { programs = {
bash = { bash = {
enable = true; enable = true;
@@ -45,11 +45,6 @@ in
export PATH=${../../../dots/.bin}:$PATH export PATH=${../../../dots/.bin}:$PATH
''; '';
}; };
firefox = import ../../modules/firefox.nix {
inherit inputs;
inherit pkgs;
inherit config;
};
fzf = { fzf = {
enable = true; enable = true;
enableBashIntegration = true; enableBashIntegration = true;

View File

@@ -13,7 +13,8 @@ in
../../modules/dconf.nix ../../modules/dconf.nix
../../modules/git.nix ../../modules/git.nix
../../modules/k9s.nix ../../modules/k9s.nix
(import ../../modules/keepassxc.nix { inherit pkgs; }) ../../modules/keepassxc.nix
../../modules/browser
]; ];
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
@@ -27,13 +28,10 @@ in
defaultWrapper = "mesa"; defaultWrapper = "mesa";
}; };
browser.primary = "firefox";
browser.secondary = "chromium";
programs = { programs = {
# editorconfig.enable = true;
firefox = import ../../modules/firefox.nix {
inherit inputs;
inherit pkgs;
inherit config;
};
gh.enable = true; gh.enable = true;
kubecolor.enable = true; kubecolor.enable = true;
}; };

View File

@@ -0,0 +1,124 @@
{
inputs,
config,
pkgs,
...
}:
with pkgs;
[
(pkgs.stdenv.mkDerivation {
name = "ccline";
src = pkgs.fetchurl {
url = "https://github.com/Haleclipse/CCometixLine/releases/download/v1.0.8/ccline-linux-x64.tar.gz";
hash = "sha256-Joe3Dd6uSMGi66QT6xr2oY/Tz8rA5RuKa6ckBVJIzI0=";
};
unpackPhase = ''
tar xzf $src
'';
installPhase = ''
mkdir -p $out/bin
cp ccline $out/bin/
chmod +x $out/bin/ccline
'';
meta = with pkgs.lib; {
description = "CCometixLine Linux x64 CLI (Claude Code statusline)";
homepage = "https://github.com/Haleclipse/CCometixLine";
license = licenses.mit;
platforms = [ "x86_64-linux" ];
};
})
act
age
aider-chat
argocd
azure-cli
bat
biome
(config.lib.nixGL.wrap bruno)
chromium
clang
claude-code
(config.lib.nixGL.wrap code-cursor)
curl
dconf2nix
dive
emmet-language-server
eslint_d
flameshot
fluxcd
fzf
fzf-git-sh
git-machete
github-copilot-cli
glab
go
hadolint
hello
helm-ls
htop
input-leap
jira-cli-go
jq
k3d
(config.lib.nixGL.wrap kitty)
kubectl
kubernetes
kubernetes-helm
kustomize
lua
lua-language-server
minikube
ncspot
nil
nixd
nixfmt-rfc-style
# nodejs
nodejs_24
nvimpager
(config.lib.nixGL.wrap obsidian)
pavucontrol
# pgadmin4
prettierd
responder
ripgrep
rust-analyzer
rustlings
shellcheck
(config.lib.nixGL.wrap signal-desktop)
silver-searcher
sleuthkit
spotify
starship
stylua
taskopen
taskwarrior3
(config.lib.nixGL.wrap teams-for-linux)
opentofu
sops
tldr
tmux
tree
tree-sitter
tsx
upbound
vault-bin
(config.lib.nixGL.wrap vscode)
vscode-langservers-extracted
vtsls
yaml-language-server
xclip
xmage
yamllint
yarn
(python311.withPackages (ppkgs: [
ppkgs.plyer
ppkgs.dbus-python
]))
# flakes
inputs.nvim.packages.x86_64-linux.nvim
]

View File

@@ -0,0 +1,19 @@
{
nixos = {
name = "NixOS";
bookmarks = [
{
name = "wiki";
url = "https://wiki.nixos.org/wiki/NixOS_Wiki";
}
{
name = "packages";
url = "https://search.nixos.org/packages";
}
{
name = "options";
url = "https://search.nixos.org/options";
}
];
};
}

View File

@@ -0,0 +1,12 @@
{
config,
lib,
pkgs,
...
}:
{
config = lib.mkIf (config.browser.primary == "chromium" || config.browser.secondary == "chromium") {
home.packages = [ pkgs.chromium ];
};
}

View File

@@ -0,0 +1,33 @@
{ lib, ... }:
{
options.browser = {
primary = lib.mkOption {
type = lib.types.enum [
"firefox"
"chromium"
"librewolf"
];
default = "firefox";
description = "Primary web browser";
};
secondary = lib.mkOption {
type = lib.types.nullOr (
lib.types.enum [
"firefox"
"chromium"
"librewolf"
]
);
default = null;
description = "Optional secondary web browser";
};
};
imports = [
./firefox.nix
./librewolf.nix
./chromium.nix
];
}

View File

@@ -0,0 +1,83 @@
{ config, inputs, lib, pkgs, ... }:
let
bookmarks = import ./bookmarks.nix;
in
{
config = lib.mkIf (config.browser.primary == "firefox" || config.browser.secondary == "firefox") {
programs.firefox = {
enable = true;
nativeMessagingHosts = with pkgs; [
tridactyl-native
];
profiles = {
default = {
settings = {
"signon.rememberSignons" = false;
"findbar.highlightAll" = true;
"extensions.autoDisableScopes" = 0;
};
extensions = {
packages = with inputs.firefox-addons.packages.${pkgs.system}; [
duckduckgo-privacy-essentials
istilldontcareaboutcookies
libredirect
keepassxc-browser
react-devtools
sponsorblock
tridactyl
ublock-origin
];
};
bookmarks = {
force = true;
settings = [
{
toolbar = true;
bookmarks = [
bookmarks.nixos
];
}
];
};
};
};
policies = {
DefaultDownloadDirectory = "\${home}/dl";
ExtensionSettings = {
"jid1-ZAdIEUB7XOzOJw@jetpack" = {
default_area = "navbar";
private_browsing = true;
};
"idcac-pub@guus.ninja" = {
default_area = "navbar";
private_browsing = true;
};
"7esoorv3@alefvanoon.anonaddy.me" = {
default_area = "navbar";
};
"keepassxc-browser@keepassxc.org" = {
default_area = "navbar";
private_browsing = true;
};
"@react-devtools" = {
default_area = "navbar";
private_browsing = true;
};
"sponsorBlocker@ajay.app" = {
default_area = "navbar";
private_browsing = true;
};
"tridactyl.vim@cmcaine.co.uk".settings = {
private_browsing = true;
};
"uBlock0@raymondhill.net".settings = {
default_area = "navbar";
private_browsing = true;
};
};
};
};
};
}

View File

@@ -0,0 +1,83 @@
{ config, inputs, lib, pkgs, ... }:
let
bookmarks = import ./bookmarks.nix;
in
{
config = lib.mkIf (config.browser.primary == "librewolf" || config.browser.secondary == "librewolf") {
programs.librewolf = {
enable = true;
nativeMessagingHosts = with pkgs; [
tridactyl-native
];
profiles = {
default = {
settings = {
"signon.rememberSignons" = false;
"findbar.highlightAll" = true;
"extensions.autoDisableScopes" = 0;
};
extensions = {
packages = with inputs.firefox-addons.packages.${pkgs.system}; [
duckduckgo-privacy-essentials
istilldontcareaboutcookies
libredirect
keepassxc-browser
react-devtools
sponsorblock
tridactyl
ublock-origin
];
};
bookmarks = {
force = true;
settings = [
{
toolbar = true;
bookmarks = [
bookmarks.nixos
];
}
];
};
};
};
policies = {
DefaultDownloadDirectory = "\${home}/dl";
ExtensionSettings = {
"jid1-ZAdIEUB7XOzOJw@jetpack" = {
default_area = "navbar";
private_browsing = true;
};
"idcac-pub@guus.ninja" = {
default_area = "navbar";
private_browsing = true;
};
"7esoorv3@alefvanoon.anonaddy.me" = {
default_area = "navbar";
};
"keepassxc-browser@keepassxc.org" = {
default_area = "navbar";
private_browsing = true;
};
"@react-devtools" = {
default_area = "navbar";
private_browsing = true;
};
"sponsorBlocker@ajay.app" = {
default_area = "navbar";
private_browsing = true;
};
"tridactyl.vim@cmcaine.co.uk".settings = {
private_browsing = true;
};
"uBlock0@raymondhill.net".settings = {
default_area = "navbar";
private_browsing = true;
};
};
};
};
};
}

View File

@@ -1,91 +0,0 @@
{ inputs, pkgs, ... }:
{
enable = true;
nativeMessagingHosts = with pkgs; [
tridactyl-native
];
profiles = {
default = {
settings = {
"signon.rememberSignons" = false;
"findbar.highlightAll" = true;
"extensions.autoDisableScopes" = 0; # Enable extensions by default <https://nix-community.github.io/home-manager/options.xhtml#opt-programs.firefox.profiles._name_.extensions.packages>
};
extensions = {
packages = with inputs.firefox-addons.packages.${pkgs.system}; [
duckduckgo-privacy-essentials
istilldontcareaboutcookies
libredirect
keepassxc-browser
react-devtools
sponsorblock
tridactyl
ublock-origin
];
};
bookmarks = {
force = true;
settings = [
{
toolbar = true;
bookmarks = [
{
name = "NixOS";
bookmarks = [
{
name = "wiki";
url = "https://wiki.nixos.org/wiki/NixOS_Wiki";
}
{
name = "packages";
url = "https://search.nixos.org/packages";
}
{
name = "options";
url = "https://search.nixos.org/options";
}
];
}
];
}
];
};
};
};
policies = {
DefaultDownloadDirectory = "\${home}/dl";
ExtensionSettings = {
"jid1-ZAdIEUB7XOzOJw@jetpack" = {
default_area = "navbar";
private_browsing = true;
};
"idcac-pub@guus.ninja" = {
default_area = "navbar";
private_browsing = true;
};
"7esoorv3@alefvanoon.anonaddy.me" = {
default_area = "navbar";
};
"keepassxc-browser@keepassxc.org" = {
default_area = "navbar";
private_browsing = true;
};
"@react-devtools" = {
default_area = "navbar";
private_browsing = true;
};
"sponsorBlocker@ajay.app" = {
default_area = "navbar";
private_browsing = true;
};
"tridactyl.vim@cmcaine.co.uk".settings = {
private_browsing = true;
};
"uBlock0@raymondhill.net".settings = {
default_area = "navbar";
private_browsing = true;
};
};
};
}