From 6b04af46896bcac65dd3a04341e504129bb81f45 Mon Sep 17 00:00:00 2001 From: niten Date: Mon, 15 Nov 2021 16:23:33 -0800 Subject: [PATCH] Add custom config for root. --- module.nix | 3 +- niten.nix | 44 ++++++++++----------- root.nix | 109 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 129 insertions(+), 27 deletions(-) create mode 100644 root.nix diff --git a/module.nix b/module.nix index 63c9e24..8f9c355 100644 --- a/module.nix +++ b/module.nix @@ -17,7 +17,7 @@ let user-config-map = { niten = ./niten.nix; # FIXME: Root shouldn't have all this stuff installed! - root = ./niten.nix; + root = ./root.nix; viator = ./niten.nix; xiaoxuan = ./xiaoxuan.nix; }; @@ -60,7 +60,6 @@ in { niten-doom-config; username = "root"; user-email = "root@${config.instance.local-domain}"; - enable-gui = false; home-dir = "/root"; }; }; diff --git a/niten.nix b/niten.nix index 6dabd69..858a45d 100644 --- a/niten.nix +++ b/niten.nix @@ -30,21 +30,23 @@ let }; gui-packages = with pkgs; [ - exodus - gnome.gnome-tweaks - google-chrome - imagemagick - jq - minecraft - mplayer - nyxt - openttd - pv - redshift - signal-desktop - spotify - xclip - ]; + element-desktop + exodus + faudio + gnome.gnome-tweaks + google-chrome + imagemagick + jq + minecraft + mplayer + nyxt + openttd + pv + redshift + signal-desktop + spotify + xclip + ]; common-packages = with pkgs; [ ant @@ -61,9 +63,7 @@ let cmake curl doom-emacs-package - element-desktop enca - faudio file fortune git @@ -131,7 +131,7 @@ in { }; firefox = { - enable = true; + enable = enable-gui; ## Some perm change error? # package = (pkgs.firefox.override { # cfg = { @@ -161,13 +161,7 @@ in { gpg-agent.enable = true; - gnome-keyring.enable = true; - - # redshift = { - # enable = true; - # latitude = "47"; - # longitude = "122"; - # }; + gnome-keyring.enable = enable-gui; gammastep = { enable = true; diff --git a/root.nix b/root.nix new file mode 100644 index 0000000..04c3524 --- /dev/null +++ b/root.nix @@ -0,0 +1,109 @@ +{ + doom-emacs, + niten-doom-config, + config, + lib, + pkgs, + username, + user-email, + home-dir, + ... +}: + +with lib; +let + doom-emacs-package = pkgs.callPackage doom-emacs { + doomPrivateDir = niten-doom-config; + extraPackages = with pkgs.emacsPackages; [ + elpher + use-package + ]; + emacsPackagesOverlay = final: prev: { + irony = prev.irony.overrideAttrs (esuper: { + buildInputs = with pkgs; + esuper.buildInputs ++ + [ cmake libclang clang ]; + }); + }; + }; + + common-packages = with pkgs; [ + atop + btrfs-progs + cdrtools + curl + doom-emacs-package + file + git + gnutls + gnupg + guile + iptables + lsof + lshw + mtr + nix-prefetch-git + nmap + pciutils + pwgen + tmux + unzip + ]; + + ensure-directories = [ ".emacs.d/.local/etc/eshell" ]; + +in { + + programs = { + bash = { + enable = true; + enableVteIntegration = true; + }; + + git = { + enable = true; + userName = username; + userEmail = user-email; + ignores = [ "*~" ]; + extraConfig.pull.rebase = false; + }; + }; + + services = { + emacs = { + enable = true; + package = doom-emacs-package; + client = { + enable = true; + }; + }; + }; + + home = { + packages = if enable-gui then (common-packages ++ gui-packages) + else + common-packages; + + file = { + # For nixified emacs + ".emacs.d/init.el".text = '' + (load "default.el") + + (setq package-archives nil) + (package-initialize) + ''; + }; + + sessionVariables = { + # EDITOR = "${doom-emacs}/bin/emacsclient -t"; + ALTERNATE_EDITOR = ""; + + DOOM_EMACS_SITE_PATH = "${niten-doom-config}/site.d"; + + HISTCONTROL = "ignoredups:ignorespace"; + }; + }; + + systemd.user.tmpfiles.rules = + map (dir: "d ${home-dir}/${dir} 700 root - - -") ensure-directories; +}