# man home-configuration.nix { config, pkgs, ... }: { home.username = "trude"; home.homeDirectory = "/Users/trude"; #macOS # home.homeDirectory = "/home/trude"; #Linux home.stateVersion = "23.11"; # Do NOT change. This value stays the same when updating. home.packages = with pkgs; [ # Packages to install: vscode obsidian #signal-desktop gnomeExtensions.vitals # Override nerdfont to install JetBrains only. (nerdfonts.override { fonts = [ "JetBrainsMono" ]; }) # Shel scripts: (writeShellScriptBin "extract" '' if [ -f $1 ]; then case $1 in *.tar.bz2) tar xjf $1 ;; *.tar.gz) tar xzf $1 ;; *.bz2) bunzip2 $1 ;; *.rar) unrar e $1 ;; *.gz) gunzip $1 ;; *.tar) tar xf $1 ;; *.tbz2) tar xjf $1 ;; *.tgz) tar xzf $1 ;; *.zip) unzip $1 ;; *.Z) uncompress $1 ;; *.7z) 7z x $1 ;; *) echo "'$1' cannot be extracted via extract()" ;; esac else echo "'$1' is not a valid file" fi '') (writeShellScriptBin "update" '' if [ "$(uname -s)" = "Darwin" ]; then echo "Updating macOS..." echo "THE DEVICE WILL RESTART IF NECESSARY." sudo softwareupdate -iaR else if [ "$(grep -Ei 'debian|buntu|mint' /etc/*release)" ]; then echo "Updating Debian..." sudo apt update sudo apt upgrade sudo apt dist-upgrade sudo apt autoremove sudo apt autoclean sudo journalctl --vacuum-time=7d elif [ "$(grep -Ei 'arch|manjaro|artix' /etc/*release)" ]; then echo "Updating Arch..." sudo pacman -Syu sudo pacman -Rsn $(paru -Qdtq) if p c pacman-contrib &>/dev/null; then paccache -rk1 else sudo pacman -S pacman-contrib paccache -rk1 fi sudo journalctl --vacuum-time=7d else echo "Unknown distro, skipping system update." fi fi nix-channel --update home-manager switch -b backup '') ]; home.file = { # ".screenrc".source = dotfiles/screenrc; ".config/nixpkgs/config.nix".text = '' { allowUnfree = true; } ''; # ".gradle/gradle.properties".text = '' # org.gradle.console=verbose # org.gradle.daemon.idletimeout=3600000 # ''; }; home.sessionVariables = { EDITOR = "code"; PS1 = ''\n[\[\e[37m\]\u\[\e[0m\]@\[\e[37;2m\]\h\[\e[0m\]] \[\e[1m\]\w \[\e[0;2m\]J:\[\e[0m\]\j\n\$ ''; }; # Let Home Manager install and manage itself. programs.home-manager.enable = true; gtk = { enable = true; gtk3.extraConfig = { Settings = '' gtk-application-prefer-dark-theme=1 ''; }; gtk4.extraConfig = { Settings = '' gtk-application-prefer-dark-theme=1 ''; }; }; # GNOME Settings # Help: https://hoverbear.org/blog/declarative-gnome-configuration-in-nixos/ dconf.settings = { # Use `dconf watch /` to track stateful changes you are doing, then set them here. "org/gnome/shell" = { disable-user-extensions = false; # `gnome-extensions list` for a list enabled-extensions = [ "Vitals@CoreCoding.com" ]; favorite-apps = [ "firefox.desktop" "code.desktop" "org.gnome.Terminal.desktop" "org.gnome.Nautilus.desktop" ]; }; "org/gnome/desktop/interface" = { color-scheme = "prefer-dark"; enable-hot-corners = false; }; }; programs.git = { enable = true; userName = "TrudeEH"; userEmail = "ehtrude@gmail.com"; }; programs.bash = { enable = true; enableCompletion = true; shellAliases = { ls="ls --color=auto"; grep="grep --color=auto"; }; shellOptions = [ "completion-ignore-case on" ]; }; programs.vscode = { enable = true; enableUpdateCheck = false; enableExtensionUpdateCheck = false; mutableExtensionsDir = false; # Extensions extensions = (with pkgs.vscode-extensions; [ ms-vscode-remote.remote-ssh mhutchie.git-graph pkief.material-icon-theme oderwat.indent-rainbow bierner.emojisense jnoortheen.nix-ide ritwickdey.liveserver github.vscode-pull-request-github ]); # Settings userSettings = { # General "editor.fontSize" = 12; "editor.fontFamily" = "'JetBrainsMono Nerd Font', 'monospace', monospace"; "terminal.integrated.fontSize" = 10; "terminal.integrated.fontFamily" = "'JetBrainsMono Nerd Font', 'monospace', monospace"; "window.zoomLevel" = 1; "editor.multiCursorModifier" = "ctrlCmd"; "workbench.startupEditor" = "none"; "explorer.compactFolders" = false; # Whitespace "files.trimTrailingWhitespace" = true; "files.trimFinalNewlines" = true; "files.insertFinalNewline" = true; "diffEditor.ignoreTrimWhitespace" = false; # Git "git.enableCommitSigning" = false; # Styling "window.autoDetectColorScheme" = true; "workbench.preferredDarkColorTheme" = "Default Dark Modern"; "workbench.preferredLightColorTheme" = "Default Light Modern"; "workbench.iconTheme" = "material-icon-theme"; "material-icon-theme.activeIconPack" = "none"; "material-icon-theme.folders.theme" = "classic"; "editor.fontLigatures" = true; # Other "telemetry.telemetryLevel" = "off"; "update.showReleaseNotes" = false; }; }; }