180 lines
3.5 KiB
Nix
180 lines
3.5 KiB
Nix
{ inputs, config, pkgs, lib, osConfig, ... }:
|
|
let
|
|
unstable = import inputs.nixpkgs-unstable {
|
|
system = "x86_64-linux";
|
|
config.allowUnfree = true;
|
|
};
|
|
in
|
|
{
|
|
imports = [
|
|
../../../../shared/modules/home-manager/base-home.nix
|
|
];
|
|
|
|
baseHome = {
|
|
enable = true;
|
|
userName = "nate";
|
|
fullName = "Nathan Anderson";
|
|
email = "n8r@tuta.io";
|
|
stateVersion = "23.11";
|
|
hostDir = "nate";
|
|
};
|
|
|
|
# Zsh — add direnv hook + yt-audio function
|
|
programs.zsh.initContent = ''
|
|
eval "$(direnv hook zsh)"
|
|
|
|
yt-audio() {
|
|
nix-shell -p yt-dlp --run "yt-dlp -x $1 --audio-format mp3"
|
|
}
|
|
'';
|
|
|
|
# Additional programs
|
|
programs.direnv = {
|
|
enable = true;
|
|
enableZshIntegration = true;
|
|
nix-direnv.enable = true;
|
|
};
|
|
programs.delta = {
|
|
enable = true;
|
|
enableGitIntegration = true;
|
|
options = {
|
|
side-by-side = true;
|
|
hyperlinks = true;
|
|
};
|
|
};
|
|
|
|
# Git — SSH rewrite for GitHub
|
|
programs.git.settings.url = {
|
|
"git@github.com:" = {
|
|
insteadOf = "https://github.com/";
|
|
};
|
|
};
|
|
|
|
# KDEConnect (HM-level indicator)
|
|
services.kdeconnect = {
|
|
enable = true;
|
|
indicator = true;
|
|
};
|
|
|
|
# Git autosync for star-command
|
|
services.git-autosync = {
|
|
enable = true;
|
|
repos.star-command = {
|
|
path = "/home/nate/source/star-command";
|
|
gitName = "Nathan Anderson";
|
|
gitEmail = "n8r@tuta.io";
|
|
};
|
|
};
|
|
|
|
# Enable Noctalia shell (replaces Waybar, SwayNC, SwayOSD, wlsunset)
|
|
noctaliaShell = {
|
|
enable = true;
|
|
settings = {
|
|
bar.position = "top";
|
|
colorSchemes = {
|
|
darkMode = true;
|
|
useWallpaperColors = true;
|
|
};
|
|
location.name = "Denver";
|
|
general.avatarImage = "/home/nate/.face";
|
|
};
|
|
};
|
|
|
|
# Additional user packages
|
|
home.packages = with pkgs; [
|
|
#
|
|
# Dev Tools
|
|
#
|
|
docker
|
|
unstable.godot
|
|
jq
|
|
python3
|
|
unstable.claude-code
|
|
usbutils
|
|
openscad
|
|
### LSP's
|
|
nil
|
|
nodePackages_latest.bash-language-server
|
|
vscode-langservers-extracted
|
|
python313Packages.python-lsp-server
|
|
|
|
#
|
|
# Gaming
|
|
#
|
|
mumble
|
|
mangohud
|
|
wine-wayland
|
|
|
|
#
|
|
# Unix tools
|
|
#
|
|
duf
|
|
dust
|
|
fd
|
|
ripgrep
|
|
gtop
|
|
|
|
#
|
|
# Photo / Video
|
|
#
|
|
unstable.davinci-resolve-studio
|
|
obs-studio
|
|
imv
|
|
ffmpeg
|
|
|
|
#
|
|
# Other
|
|
#
|
|
kdePackages.filelight
|
|
simple-scan
|
|
tailscale-systray
|
|
|
|
#
|
|
# Additional fonts
|
|
#
|
|
unstable.nerd-fonts.hurmit
|
|
unstable.nerd-fonts.overpass
|
|
recursive
|
|
];
|
|
|
|
# Local dotfiles (host-specific, override shared)
|
|
home.file = lib.mkMerge [
|
|
(
|
|
let
|
|
localDotfilesPath = ../../dotfiles;
|
|
in
|
|
if builtins.pathExists localDotfilesPath && builtins.readDir localDotfilesPath != { } then
|
|
builtins.listToAttrs (
|
|
map (name: {
|
|
name = "${config.xdg.configHome}/${name}";
|
|
value = {
|
|
source = localDotfilesPath + "/${name}";
|
|
};
|
|
}) (builtins.attrNames (builtins.readDir localDotfilesPath))
|
|
)
|
|
else
|
|
{ }
|
|
)
|
|
];
|
|
|
|
# Configure default applications for opening links
|
|
xdg.mimeApps = {
|
|
enable = true;
|
|
defaultApplications = {
|
|
"text/html" = "firefox.desktop";
|
|
"x-scheme-handler/http" = "firefox.desktop";
|
|
"x-scheme-handler/https" = "firefox.desktop";
|
|
"x-scheme-handler/about" = "firefox.desktop";
|
|
"x-scheme-handler/unknown" = "firefox.desktop";
|
|
};
|
|
};
|
|
|
|
# Cava audio visualizer
|
|
programs.cava = {
|
|
enable = true;
|
|
settings = {
|
|
smoothing.noise_reduction = 55;
|
|
};
|
|
};
|
|
}
|