nixos/home/home.nix

150 lines
3.3 KiB
Nix

{ 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
# 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;
# Helix configuration
helix = {
enable = true;
defaultEditor = true;
settings = {
theme = "adwaita-dark";
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\] "
'';
};
gpg.enable = true;
zoxide = {
enable = true;
enableBashIntegration = true;
options = [ "--cmd cd" ];
};
};
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";
};
dconf.settings = {
"org/gnome/TextEditor" = {
keybindings = "vim";
};
};
}