major refactor

This commit is contained in:
Henri Dohmen 2025-12-23 23:05:32 +01:00
parent 20472f8d1b
commit d778875a1b
Signed by: hd
GPG key ID: AB79213B044674AE
32 changed files with 495 additions and 428 deletions

View file

@ -0,0 +1,143 @@
{
config,
lib,
pkgs,
...
}:
let
cfg = config.hd.desktop.software;
inherit (lib) mkEnableOption mkIf;
in
{
imports = [ ./development.nix ];
config = mkIf cfg.enable {
hd.desktop.software.development.enable = true;
environment.systemPackages = with pkgs; [
bitwarden-desktop
calibre
file
fuzzel
gh
nil
pciutils
signal-desktop
spotify-player
tor-browser
usbutils
vlc
wireguard-tools
wl-clipboard
yt-dlp
zotero
zulip
];
virtualisation = {
podman = {
enable = true;
dockerCompat = true;
defaultNetwork.settings.dns_enabled = true;
};
};
programs.kdeconnect.enable = true;
home = {
programs.fish = {
enable = true;
interactiveShellInit = ''
set -U fish_greeting
starship init fish | source
'';
};
programs.starship = {
enable = true;
enableFishIntegration = true;
settings = {
format = "[$username](green)@[$hostname](red)[\\[$directory\\]](cyan bold) $all";
username = {
show_always = true;
format = "$user";
};
hostname = {
ssh_only = false;
format = "$hostname";
};
directory.format = "$path";
character = {
format = "$symbol ";
success_symbol = "\\\$";
error_symbol = "[\\\$](red)";
};
git_branch.format = "[$symbol$branch(:$remote_branch)]($style)";
};
};
programs.librewolf = {
enable = true;
settings = {
"identity.fxaccounts.enabled" = true;
"identity.sync.tokenserver.uri" = "https://firefox-syncserver.roam.hdohmen.de/1.0/sync/1.5";
"privacy.resistFingerprinting" = true;
"signon.rememberSignons" = false;
"signon.autofillForms" = false;
"privacy.spoof_english" = 2;
"privacy.resistFingerprinting.block_mozAddonManager" = true;
"network.http.sendRefererHeader" = 1;
"intl.accept_languages" = "en,en-us";
"privacy.resistFingerprinting.letterboxing" = true;
};
};
programs.thunderbird = {
enable = true;
package = pkgs.thunderbird-latest;
profiles.default = {
isDefault = true;
withExternalGnupg = true;
settings = {
"intl.date_time.pattern_override.date_short" = "yyyy-MM-dd";
"mail.html_compose" = false;
"mail.identity.default.compose_html" = false;
};
};
};
programs.git = {
enable = true;
signing = {
signByDefault = true;
signer = "openpgp";
key = "AB79213B044674AE";
};
settings = {
user.name = "Henri Dohmen";
user.email = "henridohmen@posteo.com";
color.ui = "auto";
column.ui = "auto";
branch.sort = "-committerdate";
alias = {
staash = "stash --all";
};
core = {
editor = "nvim";
autocrlf = "input";
};
init.defaultBranch = "main";
credential.helper = "libsecret";
};
};
programs.foot = {
enable = true;
server.enable = true;
settings = {
main = {
"font" = "monospace:size=11";
};
};
};
};
# Some excludes
services.xserver.excludePackages = [ pkgs.xterm ];
};
}

View file

@ -0,0 +1,112 @@
{
config,
pkgs,
lib,
...
}:
let
cfg = config.hd.desktop.software.development;
inherit (lib) mkEnableOption mkIf;
in
{
config = mkIf cfg.enable {
documentation.dev.enable = true;
environment.systemPackages = with pkgs; [
(agda.withPackages (p: [ p.standard-library ]))
binutils
clang
elan
gcc
gdb
gnumake
man-pages
man-pages-posix
nixfmt-rfc-style
python313
python313Packages.mypy
rustup
# jetbrains.gateway
# jetbrains.rust-rover
];
home = {
xdg.configFile = {
"agda/libraries".text = ''
${pkgs.agdaPackages.standard-library}/standard-library.agda-lib
'';
};
programs.emacs = {
enable = true;
extraPackages =
epkgs: with epkgs; [
ace-window
agda2-mode
better-defaults
cmake-mode
company
consult
delight
doom-themes
editorconfig
exec-path-from-shell
fish-mode
haskell-mode
hl-todo
lsp-mode
magit
marginalia
markdown-mode
multiple-cursors
orderless
proof-general
pyvenv
rainbow-delimiters
restart-emacs
rust-mode
undo-tree
use-package
vertico
which-key
yaml-mode
];
extraConfig = builtins.readFile ../../../dotfiles/emacs/init.el;
};
programs.vscode = {
enable = true;
package = pkgs.vscodium;
mutableExtensionsDir = true;
profiles.default = {
enableExtensionUpdateCheck = true;
enableUpdateCheck = false;
extensions = with pkgs.vscode-marketplace; [
banacorn.agda-mode
dnut.rewrap-revived
editorconfig.editorconfig
james-yu.latex-workshop
jnoortheen.nix-ide
leanprover.lean4
ltex-plus.vscode-ltex-plus
maximedenes.vscoq
mkhl.direnv
ms-python.python
ms-toolsai.jupyter
ocamllabs.ocaml-platform
rust-lang.rust-analyzer
# ms-vscode-remote.remote-ssh
];
userSettings = {
"editor.rulers" = [ 80 ];
"editor.formatOnPaste" = false;
"editor.formatOnSave" = false;
"editor.formatOnType" = false;
# https://github.com/nix-community/nix-vscode-extensions/issues/123
"ltex.ltex-ls.path" = "${pkgs.ltex-ls-plus}";
"direnv.path.executable" = "${pkgs.direnv}/bin/direnv";
"latex-workshop.latex.autoBuild.run" = "never";
};
};
};
};
};
}