2024-01-15 20:11:17 -07:00
{ inputs , outputs , lib , config , pkgs , . . . }:
let
userName = " n a t e " ;
fullName = " N a t h a n A n d e r s o n " ;
email = " n 8 r @ t u t a . i o " ;
in
2023-12-14 17:23:01 -07:00
{
2023-12-18 20:12:41 -07:00
# nixpkgs.overlays = [
# inputs.nur.overlay
# ];
2023-12-15 11:43:28 -07:00
# nixpkgs.config.allowUnfree = true;
2023-12-15 09:24:13 -07:00
# inputs.nixpkgs-stable.config.allowUnfree = true;
2023-12-18 20:12:41 -07:00
imports = [
../apps/firefox/firefox.nix
] ;
2023-12-14 17:23:01 -07:00
home . username = userName ;
home . homeDirectory = " / h o m e / ${ userName } " ;
programs . home-manager . enable = true ;
home . stateVersion = " 2 3 . 1 1 " ; # Please read the comment before changing.
# The home.packages option allows you to install Nix packages into your
# environment.
2023-12-18 20:12:41 -07:00
firefoxApp . enable = true ;
2024-01-07 22:18:36 -07:00
2023-12-14 17:23:01 -07:00
fonts . fontconfig . enable = true ;
home . packages = with pkgs ; [
2023-12-18 20:12:41 -07:00
# nur.repos.crazazy.js.eslint
# inputs.nixpkgs-stable.legacyPackages.x86_64-linux.corectrl
2024-02-15 11:22:47 -07:00
chromium
2024-01-12 16:18:45 -07:00
#
# Dev Tools
#
dbeaver
cargo
2024-03-17 22:13:28 -06:00
helix
# kakoune
2024-02-15 14:10:57 -07:00
# flutter316
2024-01-12 16:18:45 -07:00
docker
docker-compose
2024-02-15 11:22:47 -07:00
jq
2024-01-12 16:18:45 -07:00
python310
nodejs_21
zig
### LSP's
2024-03-17 22:13:28 -06:00
nil # Nix LSP
2024-01-12 16:18:45 -07:00
openscad-lsp
nodePackages . typescript-language-server
vscode-langservers-extracted # provides eslint, markdown, json, css, and html lsp
rubyPackages . solargraph
python310Packages . python-lsp-server
zls
### Misc
# android-udev-rules
# android-tools
# sdkmanager
openscad
#
# Gaming
#
2024-01-22 14:25:27 -07:00
amdgpu_top
2024-02-15 11:22:47 -07:00
mangohud
2024-01-12 16:18:45 -07:00
wine-wayland
webcord
#
# Better Unix
#
bat
duf
fd
fzf
lsd
ripgrep
2024-01-15 22:07:47 -07:00
tre-command
2024-01-12 16:18:45 -07:00
gtop
2024-02-15 11:22:47 -07:00
htop
neofetch
2024-01-20 11:52:14 -07:00
# Normies
unzip
2024-01-12 16:18:45 -07:00
#
# Photo / Video
#
davinci-resolve-studio
imv
mpv
gimp
2024-01-22 14:25:27 -07:00
ffmpeg
2024-01-12 16:18:45 -07:00
#
# Communication
#
mumble
slack
signal-desktop
#
# Other
#
2023-12-14 17:23:01 -07:00
keepassxc
2023-12-14 21:58:29 -07:00
obs-studio
2024-01-12 16:18:45 -07:00
2024-03-18 19:45:31 -06:00
#
# Style
#
catppuccin-kvantum
libsForQt5 . qtstyleplugin-kvantum
libsForQt5 . qt5ct
2023-12-14 17:23:01 -07:00
# Install fonts
2023-12-16 16:36:03 -07:00
( nerdfonts . override { fonts = [ " H e r m i t " " O v e r p a s s " ] ; } )
2024-03-20 15:00:06 -06:00
recursive
2023-12-14 17:23:01 -07:00
] ;
# Home Manager is pretty good at managing dotfiles. The primary way to manage
# plain files is through 'home.file'.
home . file . " ${ config . xdg . configHome } " = {
# # Building this configuration will create a copy of 'dotfiles/screenrc' in
# # the Nix store. Activating the configuration will then make '~/.screenrc' a
# # symlink to the Nix store copy.
# ".screenrc".source = dotfiles/screenrc;
2024-01-15 20:11:17 -07:00
source = ../../dotfiles ;
2023-12-14 17:23:01 -07:00
recursive = true ;
# # You can also set the file content immediately.
# ".gradle/gradle.properties".text = ''
# org.gradle.console=verbose
# org.gradle.daemon.idletimeout=3600000
# '';
} ;
home . sessionVariables = {
2024-03-20 15:00:06 -06:00
# MANPAGER="sh -c 'col -bx | bat -l man -p'";
BAT_THEME = " C a t p p u c c i n M a c c h i a t o " ;
2024-03-17 22:13:28 -06:00
EDITOR = " h x " ;
2023-12-18 20:12:41 -07:00
XDG_CURRENT_DESKTOP = " s w a y " ;
2023-12-14 17:23:01 -07:00
} ;
# Git setup
programs . git = {
2023-12-14 21:58:29 -07:00
enable = true ;
2023-12-16 16:36:03 -07:00
userEmail = email ;
userName = fullName ;
2024-03-20 10:15:11 -06:00
extraConfig = {
2024-03-20 15:00:06 -06:00
include = { path = " ${ config . xdg . configHome } / m a c c h i a t o . g i t c o n f i g " ; } ;
2024-03-20 10:15:11 -06:00
init = { defaultBranch = " m a i n " ; } ;
pull = { ff = " o n l y " ; } ;
merge = { conflictStyle = " z d i f f 3 " ; } ;
push = { autoSetupRemote = " t r u e " ; } ;
2024-03-20 15:00:06 -06:00
delta = { features = " C a t p p u c c i n M a c c h i a t o " ; } ;
2024-03-20 10:15:11 -06:00
} ;
delta . enable = true ;
2023-12-14 17:23:01 -07:00
} ;
2024-03-17 16:39:06 -06:00
programs = {
direnv = {
enable = true ;
enableZshIntegration = true ; # see note on other shells below
nix-direnv . enable = true ;
} ;
bash . enable = true ; # see note on other shells below
} ;
2024-03-18 19:45:31 -06:00
2023-12-14 17:23:01 -07:00
# Zsh setup
programs . zsh = {
enable = true ;
oh-my-zsh = {
enable = true ;
plugins = [ " g i t " ] ;
theme = " h a l f - l i f e " ;
} ;
2023-12-18 20:12:41 -07:00
initExtra = ''
2024-03-17 16:39:06 -06:00
eval " $ ( d i r e n v h o o k z s h ) "
2024-03-20 15:00:06 -06:00
export SSH_AUTH_SOCK = $ XDG_RUNTIME_DIR/ssh-agent
# fzf_projects() {
# DIR=`
# fd .git --search-path="$HOME/source/" -H --ignore-file ~/.config/fd-ignore -tdirectory | \
# xargs dirname | \
# sed 's|$HOME||g' | \
# sort | \
# uniq | \
# fzf --preview 'ls $HOME/{}/README.md 2>/dev/null && bat $HOME/{}/README.md || printf "No README.md file found in this directory\n%s" {}' --preview-window=top | \
# xargs printf "$HOME/%s/"
# `
# cd $DIR
# }
# alias p="fzf_projects ~/source/"
# Better Unix Aliases
2023-12-18 20:12:41 -07:00
alias ask = " n i x - s h e l l - p p y t h o n 3 1 0 P a c k a g e s . o p e n a i - - r u n ' p y t h o n ~ / s o u r c e / p y t h o n / c h a t . p y ' "
2024-01-20 13:34:45 -07:00
alias ls = " l s d "
alias l = " l s d - - a l m o s t - a l l - - l o n g "
alias llm = " l s d - - t i m e s o r t - - l o n g "
alias lS = " l s d - - o n e l i n e - - c l a s s i c "
alias lt = " l s d - - t r e e - - d e p t h = 2 "
2024-03-17 22:13:28 -06:00
alias grep = " r g "
2024-03-20 15:00:06 -06:00
alias cat = " b a t - - p a g i n g = n e v e r "
2024-03-19 12:16:02 -06:00
alias rm = " r m - i "
2023-12-18 20:12:41 -07:00
'' ;
2023-12-14 17:23:01 -07:00
} ;
2024-03-18 19:45:31 -06:00
qt = {
enable = true ;
platformTheme = " q t c t " ;
style . name = " k v a n t u m " ;
} ;
gtk = {
enable = true ;
2024-03-19 11:13:58 -06:00
cursorTheme = {
package = pkgs . catppuccin-cursors . macchiatoLavender ;
name = " C a t p p u c c i n - M a c c h i a t o - L a v e n d e r - C u r s o r s " ;
} ;
2024-03-18 19:45:31 -06:00
iconTheme = {
package = pkgs . catppuccin-papirus-folders ;
name = " P a p i r u s - D a r k " ;
2024-01-15 22:07:47 -07:00
} ;
2024-03-18 19:45:31 -06:00
theme = {
name = " C a t p p u c c i n - M a c c h i a t o - C o m p a c t - L a v e n d e r - D a r k " ;
package = pkgs . catppuccin-gtk . override {
accents = [ " l a v e n d e r " ] ;
size = " c o m p a c t " ;
tweaks = [ " r i m l e s s " ] ;
variant = " m a c c h i a t o " ;
} ;
2024-01-15 22:07:47 -07:00
} ;
2024-03-18 19:45:31 -06:00
} ;
2024-03-19 11:40:28 -06:00
# Symlink in gtk and kvantum theme to ~/.config
2024-03-18 19:45:31 -06:00
xdg . configFile = {
" g t k - 4 . 0 / a s s e t s " . source = " ${ config . gtk . theme . package } / s h a r e / t h e m e s / ${ config . gtk . theme . name } / g t k - 4 . 0 / a s s e t s " ;
" g t k - 4 . 0 / g t k . c s s " . source = " ${ config . gtk . theme . package } / s h a r e / t h e m e s / ${ config . gtk . theme . name } / g t k - 4 . 0 / g t k . c s s " ;
" g t k - 4 . 0 / g t k - d a r k . c s s " . source = " ${ config . gtk . theme . package } / s h a r e / t h e m e s / ${ config . gtk . theme . name } / g t k - 4 . 0 / g t k - d a r k . c s s " ;
" K v a n t u m / k v a n t u m . k v c o n f i g " . text = ''
[ General ]
theme = Catppuccin-Frappe-Blue
'' ;
" K v a n t u m / C a t p p u c c i n - F r a p p e - B l u e " . source = " ${ pkgs . catppuccin-kvantum } / s h a r e / K v a n t u m / C a t p p u c c i n - F r a p p e - B l u e " ;
} ;
2024-03-19 11:40:28 -06:00
home . file . " . i c o n s / d e f a u l t / i n d e x . t h e m e " . text = ''
[ icon theme ]
Inherits = Catppuccin-Macchiato-Lavender-Cursors
'' ;
2023-12-14 17:23:01 -07:00
}