1
0
Fork 0

feat(nix): add hanni host

This commit is contained in:
Lucas Sta Maria 2025-11-20 17:25:43 -06:00
parent f482f4c14e
commit 2517bb8d6a
Signed by: lucas
GPG key ID: F07FB16A826E3B47
5 changed files with 604 additions and 1 deletions

335
nix/hosts/hanni/home.nix Normal file
View file

@ -0,0 +1,335 @@
{ inputs, configDir, config, pkgs, lib, ... }: {
imports = [ ../common/home.nix ];
# This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions
# on your system were taken. Its perfectly fine and recommended to leave
# this value at the release version of the first install of this system.
# Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
home.stateVersion = "23.11"; # Did you read the comment?
home.packages = let
packages = with pkgs; [
pavucontrol
pamixer
picom
rofi
notify-desktop
pass
just
zathura
libvterm
texliveFull
flameshot
brightnessctl
pinentry-gtk2
bluez5-experimental
bluez-tools
blueman
dmenu
pipewire
dconf
mu
isync
openssl
meson
glib
stow
syncthing
nitrogen
networkmanager
nixfmt-classic
hurl
gh
libnotify
tokei
eza
typst
typst-live
gdb
ccls
clang-tools
valgrind
fzf
rofi
rofi-bluetooth
docker
awscli
bear
direnv
wasmtime
wabt
gleam
erlang
zip
framework-system-tools
ffmpeg
claude-code
prr
niri
fuzzel
waybar
swaybg
swaylock
xwayland
xwayland-satellite
gammastep
nemo
xdg-desktop-portal
xdg-desktop-portal-wlr
wpaperd
swaynotificationcenter
steam
obs-studio
vlc
easyeffects
thunderbird
signal-desktop
(prismlauncher.override { jdks = [ jdk23 jdk17 jdk8 ]; })
tidal-hifi
zotero
mullvad-browser
networkmanagerapplet
pasystray
arandr
inkscape
zoom-us
gimp
libreoffice
peek
rofimoji
playerctl
protonmail-desktop
protonvpn-cli
protonvpn-gui
proton-pass
lutris
qbittorrent
davinci-resolve-studio
handbrake
zulip
protonmail-bridge
protonmail-bridge-gui
kdePackages.kdenlive
jan
vesktop
networkmanagerapplet
keymapp
# Required by DVR
kitty
mesa-demos
vulkan-tools
clinfo
aspell
aspellDicts.en
nil
emacs30-pgtk
alacritty
alacritty-theme
emacs-lsp-booster
code-cursor
mu
msmtp
semgrep
ruff
irony-server
typescript-language-server
prettierd
jdk23
ocaml
ocamlPackages.ocaml-lsp
dune_3
opam
ocamlformat
noto-fonts
fira-code
open-sans
inter
roboto-mono
jetbrains-mono
noto-fonts-cjk-sans
libertine
roboto
font-awesome
adwaita-icon-theme
ihaskell
];
emacsPackages = with pkgs.emacsPackages; [ mu4e ];
pythonPackages = with pkgs.python312Packages; [ python-lsp-server ];
in packages ++ emacsPackages ++ pythonPackages;
home.sessionPath = [
"$HOME/.local/share/racket/8.14/bin/" # This has to be updated every time Racket updates :(
];
home.pointerCursor = {
gtk.enable = true;
x11.enable = true;
name = "Adwaita";
package = pkgs.adwaita-icon-theme;
size = 16;
};
xresources.properties = {
"Xft.antialias" = true;
"Xft.rgba" = "rgb"; # type of anti-aliasing
"Xft.hinting" = 1; # font hinting
"Xft.hintstyle" = "hintslight";
};
### Services
services.pasystray.enable = true;
services.easyeffects.enable = true;
services.wpaperd = {
enable = true;
settings.eDP-2.path = "/home/priime/.wallpaper/mountain.jpg";
};
services.emacs = {
enable = true;
defaultEditor = true;
package = pkgs.emacs30-pgtk;
};
services.gammastep = {
enable = true;
dawnTime = "6:00-7:00";
duskTime = "20:00-21:00";
temperature = {
day = 6500;
night = 2500;
};
};
### Programs
programs.home-manager.enable = true;
programs.mu.enable = true;
programs.git = {
enable = true;
userName = "Lucas Sta Maria";
userEmail = "lucas@priime.dev";
signing = {
key = "2EAF5BA156A36810B057BF61F07FB16A826E3B47";
signByDefault = true;
};
extraConfig = {
pull.rebase = true;
github.user = "priime0";
credential.helper = "store";
merge.conflictstyle = "zdiff3";
diff.algorithm = "histogram";
};
};
programs.direnv = {
enable = true;
enableFishIntegration = true;
nix-direnv.enable = true;
};
programs.alacritty = {
enable = true;
settings = {
terminal.shell = "fish";
font.size = 10;
font.normal = {
family = "JetBrains Mono";
style = "SemiBold";
};
font.bold = {
family = "JetBrains Mono";
style = "Bold";
};
font.italic = {
family = "JetBrains Mono";
style = "Italic";
};
font.bold_italic = {
family = "JetBrains Mono";
style = "Bold Italic";
};
};
};
programs.gh = {
enable = true;
settings.editor = "emacsclient";
};
programs.firefox = {
enable = true;
policies = {
ExtensionSettings = {
"uBlock0@raymondhill.net" = {
install_url =
"https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi";
installation_mode = "force_installed";
allowed_in_private_browsing = true;
};
"search@kagi.com" = {
install_url =
"https://addons.mozilla.org/firefox/downloads/latest/kagi-search-for-firefox/latest.xpi";
installation_mode = "force_installed";
allowed_in_private_browsing = true;
};
"78272b6fa58f4a1abaac99321d503a20@proton.me" = {
install_url =
"https://addons.mozilla.org/firefox/downloads/latest/proton-pass/latest.xpi";
installation_mode = "force_installed";
allowed_in_private_browsing = true;
};
};
WebsiteFilter = { Block = [ "*://*.facebook.com/" ]; };
FirefoxHome = {
Search = true;
TopSites = false;
SponsoredTopSites = false;
Highlights = false;
Pocket = false;
SponsoredPocket = false;
Snippets = false;
Locked = true;
};
SearchEngines = {
Default = "Kagi";
Add = [{
Name = "Kagi";
URLTemplate = "https://kagi.com/search?q={searchTerms}";
Method = "GET";
IconURL = "https://kagi.com/favicon.ico";
Alias = "k";
Description = "Kagi Search";
}];
};
PromptForDownloadLocation = true;
PasswordManagerEnabled = false;
};
};
programs.swaylock = {
enable = true;
settings = { color = "000000"; };
};
programs.waybar = { enable = true; };
}