{ config, lib, pkgs, username, user-email, home-dir, enable-gui, ... }: with lib; let doom-emacs-packages = pkgs.callPackage ./doom-emacs-package.nix {}; gui-packages = with pkgs; let # steam-with-pipewire = # (steam.override { extraLibraries = pkgs: [ pkgs.pipewire ]; }); in [ exodus firefox gnome.gnome-tweaks google-chrome imagemagick jq minecraft mplayer nyxt openttd pv redshift signal-desktop spotify # steam-with-pipewire # steam-with-pipewire.run # steamPackages.steamcmd # steamPackages.steam-fonts # steamPackages.steam-runtime xclip ]; common-packages = with pkgs; [ ant asdf atop binutils btrfs-progs bundix byobu cdrtools cargo clojure clj2nix cmake curl enca file fortune doom-emacs-packages.doom-emacs-package git gnutls gnupg guile ipfs iptables jdk leiningen libisofs lispPackages.quicklisp lsof lshw mkpasswd mtr nixfmt nix-index nixops nix-prefetch-git nmap opencv-java openldap openssl pciutils pwgen python ruby rustc sbcl stdenv telnet texlive.combined.scheme-basic tmux unzip yubikey-manager yubikey-personalization youtube-dl # Check and pick a favorite molly-brown ncgopher amfora asuka kristall castor ]; ensure-directories = [ ".emacs.d/.local/etc/eshell" ]; in { programs = { bash.enable = true; git = { enable = true; userName = username; userEmail = user-email; ignores = [ "*~" ]; extraConfig.pull.rebase = false; }; }; xresources.properties = mkIf enable-gui { "Xft.antialias" = 1; "Xft.autohint" = 0; # "Xft.dpi" = 192; "Xft.hinting" = 1; "Xft.hintstyle" = "hintfull"; "Xft.lcdfilter" = "lcddefault"; }; services = { emacs = { enable = true; package = doom-emacs-packages.doom-emacs-package; client = { enable = true; }; }; gpg-agent.enable = true; gnome-keyring.enable = true; redshift = { enable = true; latitude = "47"; longitude = "122"; }; }; accounts.email.accounts = { Fudo = { primary = true; address = "niten@fudo.org"; aliases = [ "peter@selby.ca" ]; userName = "niten"; realName = "Niten"; imap = { host = "mail.fudo.org"; port = 993; tls.enable = true; }; smtp = { host = "mail.fudo.org"; port = 587; tls = { enable = true; useStartTls = true; }; }; }; GMail = { address = "pselby@gmail.com"; flavor = "gmail.com"; realName = "Peter Selby"; }; }; home = { packages = if enable-gui then (common-packages ++ gui-packages) else common-packages; file = { ".local/share/openttd/baseset" = mkIf enable-gui { source = "${pkgs.openttd-data}/data"; }; # For nixified emacs ".emacs.d/init.el".text = '' (load "default.el") (setq package-archives nil) ;; (add-to-list 'package-directory-list "~/.nix-profile/share/emacs/site-lisp/elpa") (package-initialize) ''; ".xsessions" = mkIf enable-gui { executable = true; text = '' # -*-bash-*- gdmauth=$XAUTHORITY unset XAUTHORITY export XAUTHORITY xauth merge "$gdmauth" if [ -f $HOME/.xinitrc ]; then bash --login -i $HOME/.xinitrc fi ''; }; }; sessionVariables = { # EDITOR = "${doom-emacs}/bin/emacsclient -t"; ALTERNATE_EDITOR = ""; DOOM_EMACS_SITE_PATH = "${doom-emacs-packages.doom-emacs-config}/site.d"; HISTCONTROL = "ignoredups:ignorespace"; }; }; systemd.user.tmpfiles.rules = map (dir: "d ${home-dir}/${dir} 700 niten - - -") ensure-directories; }