From 9e70f144dde840fed8d8b485f9396638139ec310 Mon Sep 17 00:00:00 2001 From: Ryan Schanzenbacher Date: Sun, 14 Jun 2026 23:39:10 -0400 Subject: Initial Commit for mac testing --- users/ryan/home.nix | 126 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 126 insertions(+) create mode 100644 users/ryan/home.nix (limited to 'users/ryan/home.nix') diff --git a/users/ryan/home.nix b/users/ryan/home.nix new file mode 100644 index 0000000..9154066 --- /dev/null +++ b/users/ryan/home.nix @@ -0,0 +1,126 @@ +{ config, pkgs, ... }: + +{ + # This value determines the Home Manager release that your configuration is + # compatible with. This helps avoid breakage when a new Home Manager release + # introduces backwards incompatible changes. + # + # You should not change this value, even if you update Home Manager. If you do + # want to update the value, then make sure to first check the Home Manager + # release notes. + home.stateVersion = "26.05"; # Please read the comment before changing. + + news.display = "silent"; + + programs.starship = { + enable = true; + settings = { + add_newline = false; + character = { + success_symbol = "[➜](bold green)"; + error_symbol = "[➜](bold red)"; + }; + time = { + disabled = false; + format = "\[ $time \]($style)"; + time_format = "%T"; + }; + }; + }; + + programs.zen-browser = { + enable = true; + package = null; # managed via homebrew + darwinDefaultsId = "app.zen-browser.zen"; + policies = import ./zen/zenPolicies.nix; + profiles.default = import ./zen/zenProfile.nix; + }; + + programs.eza = { + enable = true; + enableZshIntegration = true; + }; + + programs.gpg.enable = true; + + programs.git = { + enable = true; + signing.signByDefault = true; + settings = { + user = { + name = "Ryan Schanzenbacher"; + email = "ryan@rschanz.org"; + }; + core.pager = "${pkgs.delta}/bin/delta"; + init.defaultBranch = "main"; + merge.conflictStyle = "zdiff3"; + interactive.diffFilter = "${pkgs.delta}/bin/delta --color-only"; + delta = { + navigate = true; + side-by-side = true; + }; + }; + }; + + services.gpg-agent = { + enable = true; + enableSshSupport = true; + }; + + programs.zsh = { + enable = true; + initContent = '' + export GPG_TTY="$(tty)" + export SSH_AUTH_SOCK="$(gpgconf --list-dirs agent-ssh-socket)" + gpgconf --launch gpg-agent + gpg-connect-agent updatestartuptty /bye > /dev/null + ''; + shellAliases = { + cat = "bat --paging=never"; + diff = "delta"; + }; + }; + + # The home.packages option allows you to install Nix packages into your + # environment. + home.packages = with pkgs; [ + neovim + git + yt-dlp + aerc + gdu + mpv + taskwarrior3 + delta + bat + pass + pandoc + ]; + + # Home Manager is pretty good at managing dotfiles. The primary way to manage + # plain files is through 'home.file'. + home.file = { + # # 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; + + # # You can also set the file content immediately. + # ".gradle/gradle.properties".text = '' + # org.gradle.console=verbose + # org.gradle.daemon.idletimeout=3600000 + # ''; + }; + + xdg.configFile."aerc" = { + source = ./aerc; + recursive = true; + }; + + home.sessionVariables = { + XDG_CONFIG_HOME = "${config.home.homeDirectory}/.config"; + }; + + # Let Home Manager install and manage itself. + programs.home-manager.enable = true; +} -- cgit v1.3