diff --git a/home.nix b/home.nix index 67c4272..a92adcc 100644 --- a/home.nix +++ b/home.nix @@ -1,4 +1,6 @@ -{ config, pkgs, ... }: +{ config, pkgs, lib, ... }: + +with import {}; { # Home Manager needs a bit of information about you and the paths it should @@ -35,9 +37,31 @@ # echo "Hello, ${config.home.username}!" # '') + pkgs.element-desktop + pkgs.emacs-all-the-icons-fonts + pkgs.fd + pkgs.fontconfig + pkgs.graphviz pkgs.htop + pkgs.less + pkgs.isort + pkgs.ncdu + pkgs.nerdfonts + pkgs.nixfmt-rfc-style + pkgs.pandoc + pkgs.pinentry-qt + pkgs.pipenv + pkgs.poetry + pkgs.python3 + #pkgs.pytest + pkgs.ripgrep + pkgs.shellcheck + pkgs.tmux + pkgs.vlc ]; + fonts.fontconfig.enable = true; + # Home Manager is pretty good at managing dotfiles. The primary way to manage # plain files is through 'home.file'. home.file = { @@ -51,8 +75,23 @@ # org.gradle.console=verbose # org.gradle.daemon.idletimeout=3600000 # ''; + + #".config/emacs" = { + #source = fetchGit { + #url = "https://github.com/doomemacs/doomemacs.git"; + #rev = "1eaa1aef2ccbb2efbf71bc10b0526a63b8d6121f"; + #}; + #recursive = true; + #onChange = "bash -c \"doom sync -u -j $((`nproc`/4*3))\""; + #}; }; + /*home.activation = { + syncDoom = lib.hm.dag.entryAfter ["writeBoundary"] '' + run bash -c "doom sync -u -j $((`nproc`/4*3))" + ''; + };*/ + # Home Manager can also manage your environment variables through # 'home.sessionVariables'. These will be explicitly sourced when using a # shell provided by Home Manager. If you don't want to manage your shell @@ -70,20 +109,34 @@ # /etc/profiles/per-user/johno/etc/profile.d/hm-session-vars.sh # home.sessionVariables = { + #DOOMLOCALDIR = "${config.xdg.dataHome}/doom"; }; home.sessionPath = [ - "\${xdg.configHome}/emacs/bin" + "${config.xdg.configHome}/emacs/bin" ]; + programs.bash.enable = true; + + nix = { + gc = { + automatic = true; + }; + }; + # Let Home Manager install and manage itself. programs.home-manager.enable = true; programs.command-not-found.enable = true; - programs.emacs.enable = true; + programs.emacs = { + enable = true; + package = pkgs.emacs; + }; - programs.firefox.enable = true; + programs.firefox = { + enable = true; + }; programs.git = { enable = true; @@ -91,6 +144,15 @@ userEmail = "john@ogle.fyi"; }; + programs.gpg.enable = true; + + services.gpg-agent = { + enable = true; + enableSshSupport = true; + defaultCacheTtl = 1800; + pinentryPackage = pkgs.pinentry-qt; + }; + programs.jq.enable = true; programs.k9s.enable = true; @@ -158,8 +220,17 @@ }; }; + services.syncthing = { + enable = true; + tray = { + enable = true; + package = pkgs.qsyncthingtray; + command = "qsyncthingtray --wait"; + }; + }; + xdg = { enable = true; - + configFile."doom".source = ./doom; }; }