193 lines
3.7 KiB
Nix
193 lines
3.7 KiB
Nix
{ config, lib, pkgs, ... }:
|
|
|
|
with lib;
|
|
let
|
|
name = "Niten";
|
|
email = "niten@fudo.org";
|
|
|
|
hostname = config.instance.hostname;
|
|
host-config = config.fudo.hosts.${hostname};
|
|
|
|
enable-gui = host-config.enable-gui;
|
|
|
|
doom-emacs-config = pkgs.fetchgit {
|
|
url = "https://git.fudo.org/niten/doom-emacs.git";
|
|
rev = "272271650db3abd911923a12442f5e8ce4c6eb6c";
|
|
sha256 = "1iw2layh7gh7r5zshdznnnpxwhik2nl7432s7m66yb33prg78h9w";
|
|
};
|
|
|
|
doom-emacs = pkgs.callPackage (pkgs.fetchgit {
|
|
url = "https://github.com/vlaci/nix-doom-emacs.git";
|
|
rev = "3893c50877a9d2d5d4aeee524ba1539f22115f1f";
|
|
sha256 = "1jz8mxh143a4470mq303ng6dh3bxi6mcppqli4z0m13qhqssh4fx";
|
|
}) {
|
|
doomPrivateDir = "${doom-emacs-config}/";
|
|
emacsPackagesOverlay = self: super: {
|
|
irony = super.irony.overrideAttrs (esuper: {
|
|
buildInputs = esuper.buildInputs
|
|
++ [ pkgs.cmake pkgs.libclang pkgs.clang ];
|
|
});
|
|
spinner = super.spinner.overrideAttrs (esuper: { version = "1.7.4"; });
|
|
};
|
|
};
|
|
|
|
gui-packages = with pkgs;
|
|
let
|
|
steam-with-pipewire =
|
|
(steam.override { extraLibraries = pkgs: [ pkgs.pipewire ]; });
|
|
in [
|
|
exodus
|
|
firefox
|
|
jq
|
|
nyxt
|
|
openttd
|
|
redshift
|
|
signal-desktop
|
|
spotify
|
|
# steam-with-pipewire
|
|
# steam-with-pipewire.run
|
|
xclip
|
|
];
|
|
|
|
common-packages = with pkgs; [
|
|
ant
|
|
asdf
|
|
atop
|
|
binutils
|
|
btrfs-progs
|
|
bundix
|
|
byobu
|
|
cdrtools
|
|
cargo
|
|
clojure
|
|
cmake
|
|
curl
|
|
# doom-emacs
|
|
doom-emacs-config
|
|
doomEmacsInit
|
|
enca
|
|
file
|
|
fortune
|
|
git
|
|
gnome.gnome-tweaks
|
|
gnutls
|
|
gnupg
|
|
google-chrome
|
|
guile
|
|
imagemagick
|
|
ipfs
|
|
iptables
|
|
jdk
|
|
leiningen
|
|
libisofs
|
|
lispPackages.quicklisp
|
|
lsof
|
|
lshw
|
|
minecraft
|
|
mkpasswd
|
|
mplayer
|
|
mtr
|
|
nixfmt
|
|
nix-index
|
|
nixops
|
|
nix-prefetch-git
|
|
nyxt
|
|
nmap
|
|
opencv-java
|
|
openldap
|
|
openssl
|
|
pciutils
|
|
pipewire
|
|
pv
|
|
pwgen
|
|
python
|
|
ruby
|
|
rustc
|
|
sbcl
|
|
stdenv
|
|
telnet
|
|
texlive.combined.scheme-basic
|
|
tmux
|
|
unzip
|
|
youtube-dl
|
|
yubikey-manager
|
|
yubikey-personalization
|
|
|
|
# Check and pick a favorite
|
|
molly-brown
|
|
ncgopher
|
|
amfora
|
|
asuka
|
|
kristall
|
|
castor
|
|
];
|
|
|
|
in {
|
|
programs = {
|
|
bash = { enable = true; };
|
|
|
|
git = {
|
|
enable = true;
|
|
userName = name;
|
|
userEmail = 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.gpg-agent.enable = true;
|
|
|
|
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"; };
|
|
|
|
".doom.d" = {
|
|
source = pkgs.doom-emacs-config;
|
|
onChange = "${pkgs.doomEmacsInit}/bin/doom-emacs-init.sh";
|
|
};
|
|
|
|
# For nixified emacs
|
|
# ".emacs.d/init.el".text = ''
|
|
# (load "default.el")
|
|
# '';
|
|
|
|
".xsessions" = {
|
|
executable = true;
|
|
text = ''
|
|
# -*-bash-*-
|
|
gdmauth=$XAUTHORITY
|
|
unset XAUTHORITY
|
|
export XAUTHORITY
|
|
xauth merge "$gdmauth"
|
|
|
|
if [ -f $HOME/.xinitrc ]; then
|
|
bash --login -i $HOME/.xinitrc
|
|
fi
|
|
'';
|
|
};
|
|
|
|
".fonts.conf" = { source = ../static/fonts.conf; };
|
|
};
|
|
|
|
sessionVariables = {
|
|
EDITOR = "emacsclient -t";
|
|
ALTERNATE_EDITOR = "";
|
|
|
|
HISTCONTROL = "ignoredups:ignorespace";
|
|
};
|
|
};
|
|
}
|