{ config, pkgs, ... }: { home = { username = "hms"; homeDirectory = "/home/hms"; # Packages packages = with pkgs; [ # Utilities xz zip unzip ripgrep tealdeer zoxide just # Applications blackbox-terminal zotero zulip discord signal-desktop gapless protonmail-bridge-gui newsflash gnome-solanum # Development ## Typst, LaTeX tinymist texliveFull ## Nix nixfmt-rfc-style nil ]; # Bash configuration shell.enableBashIntegration = true; shellAliases = { ":q" = "exit"; "h" = "hx"; "o" = "xdg-open"; "update" = "sudo nixos-rebuild switch --flake ~/dev/nixos"; }; # Custom files file = { "firefox-gnome-theme" = { target = ".mozilla/firefox/default/chrome/firefox-gnome-theme"; source = ( fetchTarball { url = "https://github.com/rafaelmardojai/firefox-gnome-theme/archive/v143.tar.gz"; sha256 = "1gkfi77n8cn5xzl3wi9mggh7adirjrsnbqygg1mcvjy0ynmd6kfh"; } ); }; }; stateVersion = "25.11"; }; programs = { home-manager.enable = true; taskwarrior = { enable = true; dataLocation = "${config.home.homeDirectory}/.local/share/task"; colorTheme = "light-256"; config.editor = "hx"; }; # Helix configuration helix = { enable = true; defaultEditor = true; settings = { theme = "adwaita-light"; editor = { lsp.display-messages = true; inline-diagnostics.cursor-line = "info"; rulers = [ 81 ]; gutters.layout = [ "diagnostics" ]; }; keys.insert.j.k = "normal_mode"; }; }; jujutsu = { enable = true; settings = { user = { name = "Henri Saudubray"; email = "henri.saudubray@proton.me"; }; ui.default-command = "log"; }; }; firefox = { enable = true; profiles.default = { name = "Default"; settings = { "toolkit.legacyUserProfileCustomizations.stylesheets" = true; "svg.context-properties.content.enabled" = true; "gnomeTheme.hideSingleTab" = true; }; userChrome = '' @import "firefox-gnome-theme/userChrome.css"; @import "firefox-gnome-theme/theme/colors/dark.css"; ''; }; }; bat.enable = true; git = { enable = true; settings = { user = { email = "henri.saudubray@proton.me"; name = "Henri Saudubray"; }; init.defaultBranch = "main"; }; signing.format = "openpgp"; }; bash = { enable = true; bashrcExtra = '' export PS1=" \W \[\e[33m\]λ\[\e[0m\] " task ls ''; }; gpg.enable = true; zoxide = { enable = true; enableBashIntegration = true; options = [ "--cmd cd" ]; }; direnv = { enable = true; enableBashIntegration = true; nix-direnv.enable = true; }; }; xdg.userDirs = { enable = true; # createDirectories = true; desktop = "${config.home.homeDirectory}/dsk"; documents = "${config.home.homeDirectory}/doc"; download = "${config.home.homeDirectory}/dwn"; music = "${config.home.homeDirectory}/aud"; pictures = "${config.home.homeDirectory}/img"; publicShare = "${config.home.homeDirectory}/pub"; templates = "${config.home.homeDirectory}/tpl"; videos = "${config.home.homeDirectory}/vid"; }; # systemd.user.services.helix-theme = { # Unit = { # Description = "Helix System Colour Scheme Synchronisation Service"; # Documentation = "https://github.com/helix-editor/helix/issues/2158"; # After = "gnome-session.target"; # }; # Install.WantedBy = [ "gnome-session.target" ]; # Service = { # Type = "simple"; # RestartSec = 5; # Restart = "always"; # ExecStart = # let # update-script = pkgs.writeShellScript "helix-theme-update" '' # #!/bin/sh # set -eu -o pipefail # if [ "$1" = "default" ]; then # sed -i 's/theme = ".*"/theme = "adwaita-light"/' \ # $HOME/.config/helix/config.toml # else # sed -i 's/theme = ".*"/theme = "adwaita-dark"/' \ # $HOME/.config/helix/config.toml # fi # killall -s SIGUSR1 hx # ''; # in # "${pkgs.writeShellScript "helix-theme-monitor" '' # #!/bin/sh # gsettings monitor org.gnome.desktop.interface color-scheme \ # | xargs -L1 bash -c "source ${update-script}" # ''}"; # }; # }; dconf.settings = { "org/gnome/TextEditor" = { keybindings = "vim"; }; }; }