{ config, pkgs, ... }: { imports = [ ./packages/helix ]; home = { username = "hms"; homeDirectory = "/home/hms"; # Packages packages = with pkgs; [ xz zip unzip ripgrep tealdeer zoxide just xclip ]; # Bash configuration shell.enableBashIntegration = true; shellAliases = { ":q" = "exit"; "h" = "hx"; "o" = "xdg-open"; "update" = "sudo nixos-rebuild switch --flake ~/dev/nixos"; "rm" = "rm -i"; }; stateVersion = "25.11"; }; programs.home-manager.enable = true; programs.taskwarrior = { enable = true; dataLocation = "${config.home.homeDirectory}/.local/share/task"; colorTheme = "light-256"; config.editor = "hx"; }; programs.jujutsu = { enable = true; settings.user.name = "Henri Saudubray"; settings.user.email = "henri.saudubray@proton.me"; settings.ui.default-command = "log"; settings.ui.diff-editor = ":builtin"; settings.signing.behavior = "own"; settings.signing.backend = "gpg"; }; programs.bat.enable = true; programs.git = { enable = true; settings = { user = { email = "henri.saudubray@proton.me"; name = "Henri Saudubray"; }; init.defaultBranch = "main"; merge.conflictstyle = "diff3"; }; signing = { format = "openpgp"; signByDefault = true; key = "0x7065F57ED8856128"; }; ignores = [ ".direnv" ]; }; programs.bash = { enable = true; bashrcExtra = '' export PS1=" \W \[\e[33m\]λ\[\e[0m\] " task ls if [ "$(ls -A ~/dwn)" ]; then echo "TODO: organize downloads."; fi ''; }; programs.gpg.enable = true; programs.zoxide = { enable = true; enableBashIntegration = true; options = [ "--cmd cd" ]; }; programs.direnv = { enable = true; enableBashIntegration = true; nix-direnv.enable = true; }; xdg.userDirs = { enable = 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"; }; ## FIXME: Find an alternative. # 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" '' # 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" '' # gsettings monitor org.gnome.desktop.interface color-scheme \ # | xargs -L1 bash -c "source ${update-script}" # ''}"; # }; # }; }