Compare commits

..

16 Commits

Author SHA1 Message Date
niten 9e5ca132cf Remove unnecessary dependency for irony 2021-11-29 16:13:42 -08:00
niten 76bd02b24e Add manix for nixos docs 2021-11-26 23:33:55 -08:00
niten 7744f675a1 Updated flakes 2021-11-18 09:12:17 -08:00
niten 887a14bfa9 Never a gui for root 2021-11-15 16:29:13 -08:00
niten 2c1edb71fe Got rid of redundant variable 2021-11-15 16:26:38 -08:00
niten 63c2fdd679 Forget email, it never worked anyway 2021-11-15 16:25:19 -08:00
niten 6b04af4689 Add custom config for root. 2021-11-15 16:23:33 -08:00
niten d1b245e42d Treat root specially 2021-11-15 16:13:28 -08:00
niten 96e9d01281 Generate config for root 2021-11-15 16:08:58 -08:00
niten 8aa670951a Added faudio 2021-11-13 10:30:16 -08:00
niten 560c16a650 Added winetricks 2021-11-07 14:53:10 -08:00
niten bb1f864d45 Switch from redshift to gammastep.
Redshift was flickering like crazy.
2021-11-05 19:33:24 -07:00
niten 7d7f95b1c2 Added element matrix client 2021-10-29 10:29:10 -07:00
niten 1ba24b9571 Apparently this build is broken 2021-10-17 13:53:32 -07:00
niten b4524c5145 Oops, move programs out of home 2021-10-17 13:50:03 -07:00
niten a9a9785f9e Enable Firefox Gnome extensions 2021-10-17 13:46:01 -07:00
6 changed files with 204 additions and 115 deletions

View File

@ -23,11 +23,11 @@
"rotate-text": "rotate-text"
},
"locked": {
"lastModified": 1666806097,
"narHash": "sha256-4/QpDoyf2I7RvhbmK15PB+qPuLYU3Lm0woUChA1fn+k=",
"lastModified": 1627398156,
"narHash": "sha256-Ru1aV3NuIFXAsvUE3de8KR7xDZOo1GCBJdsWKJn+Ebw=",
"owner": "vlaci",
"repo": "nix-doom-emacs",
"rev": "cc495913aeb4212349392e1c68a62b8e63248123",
"rev": "fee14d217b7a911aad507679dafbeaa8c1ebf5ff",
"type": "github"
},
"original": {
@ -187,16 +187,16 @@
]
},
"locked": {
"lastModified": 1695108154,
"narHash": "sha256-gSg7UTVtls2yO9lKtP0yb66XBHT1Fx5qZSZbGMpSn2c=",
"lastModified": 1637019201,
"narHash": "sha256-lq4gz51fx4m5FXfx1SCB444aEBeaYtLMVm3P18Wi9ls=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "07682fff75d41f18327a871088d20af2710d4744",
"rev": "bcf03fa16a1f06b8a0abb27bf49afa8d6fffe8f1",
"type": "github"
},
"original": {
"owner": "nix-community",
"ref": "release-23.05",
"ref": "release-21.05",
"repo": "home-manager",
"type": "github"
}
@ -204,11 +204,11 @@
"niten-doom-config": {
"flake": false,
"locked": {
"lastModified": 1684432992,
"narHash": "sha256-ex/H6we7BLjidBxo0n5EZ9YUflLr03sLWdf5YGsF6jU=",
"ref": "refs/heads/master",
"rev": "47773717b06d21004db3dea96f2329f912ef8dd3",
"revCount": 64,
"lastModified": 1633712607,
"narHash": "sha256-6PAw7Xvoj4JROeTqK1nhT2zv7bPpiQlm9t7H5HQ0f2k=",
"ref": "master",
"rev": "0a4f8ce4121ba3d64d29b0d52733c08febfb83d8",
"revCount": 35,
"type": "git",
"url": "https://git.fudo.org/niten/doom-emacs.git"
},
@ -251,16 +251,16 @@
},
"nixpkgs_2": {
"locked": {
"lastModified": 1699169573,
"narHash": "sha256-cvUb1xZkvOp3W2SzylStrTirhVd9zCeo5utJl9nSIhw=",
"lastModified": 1636944046,
"narHash": "sha256-74KLDsiWSBsYXKj/ql9EGbw1TbIJRE7clFkhl30HV/c=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "aeefe2054617cae501809b82b44a8e8f7be7cc4b",
"rev": "46251a79f752ae1d46ef733e8e9760b6d3429da4",
"type": "github"
},
"original": {
"id": "nixpkgs",
"ref": "nixos-23.05",
"ref": "nixos-21.05",
"type": "indirect"
}
},

View File

@ -2,9 +2,9 @@
description = "Fudo Home Manager Configuration";
inputs = {
nixpkgs.url = "nixpkgs/nixos-23.05";
nixpkgs.url = "nixpkgs/nixos-21.05";
home-manager = {
url = "github:nix-community/home-manager/release-23.05";
url = "github:nix-community/home-manager/release-21.05";
inputs.nixpkgs.follows = "nixpkgs";
};
doom-emacs.url = "github:vlaci/nix-doom-emacs";
@ -24,9 +24,5 @@
(import ./module.nix { inherit doom-emacs niten-doom-config; })
];
};
mkModule = { username, user-email, home-dir, enable-gui ? false, ... }:
import ./niten.nix {
inherit username user-email home-dir enable-gui doom-emacs niten-doom-config;
};
};
}

View File

@ -6,7 +6,7 @@ with lib;
let
user-configs = {
niten = ./niten.nix;
root = ./niten.nix;
root = ./root.nix;
viator = ./niten.nix;
xiaoxuan = ./xiaoxuan.nix;
};
@ -14,19 +14,11 @@ let
hostname = config.instance.hostname;
enable-gui = config.fudo.hosts.${hostname}.enable-gui;
user-config-map = {
niten = ./niten.nix;
# FIXME: Root shouldn't have all this stuff installed!
root = ./niten.nix;
viator = ./niten.nix;
xiaoxuan = ./xiaoxuan.nix;
};
local-users = let
local-usernames = attrNames config.instance.local-users;
in filterAttrs
(username: userOpts: elem username local-usernames)
user-config-map;
user-configs;
in {
config.home-manager = {
@ -38,15 +30,30 @@ in {
user-email = if (user-cfg.email != null) then
user-cfg.email else "${username}@${config.instance.local-domain}";
home-dir = config.users.users.${username}.home;
in ((import user-configs.${username} {
in (import user-configs.${username} {
inherit
config
lib
pkgs
doom-emacs
niten-doom-config
username
user-email
home-dir
enable-gui
}) { inherit pkgs; });
in mapAttrs generate-config local-users;
enable-gui;
});
in (mapAttrs generate-config local-users) // {
root = import user-configs.root {
inherit
config
lib
pkgs
doom-emacs
niten-doom-config;
username = "root";
user-email = "root@${config.instance.local-domain}";
home-dir = "/root";
};
};
};
}

112
niten.nix
View File

@ -1,6 +1,9 @@
{
doom-emacs,
niten-doom-config,
config,
lib,
pkgs,
username,
user-email,
home-dir,
@ -8,67 +11,64 @@
...
}:
{ pkgs, ... }:
with pkgs.lib;
with lib;
let
inherit (pkgs.stdenv) isLinux;
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 ];
# });
# };
emacsPackagesOverlay = final: prev: {
irony = prev.irony.overrideAttrs (esuper: {
buildInputs = with pkgs;
esuper.buildInputs ++ [ clang libclang ];
});
};
};
gui-packages = with pkgs; [
element-desktop
exodus
firefox
faudio
gnome.gnome-tweaks
google-chrome
imagemagick
jq
minecraft
mplayer
nyxt
openttd
pv
redshift
signal-desktop
spotify
] ++ (optionals isLinux [
gnome.gnome-tweaks
google-chrome
mplayer
redshift
xclip
]);
];
common-packages = with pkgs; [
ant
asdf
atop
binutils
btrfs-progs
bundix
byobu
cdrtools
cargo
clojure
clj2nix
cmake
curl
doom-emacs-package
enca
file
fortune
doom-emacs-package
git
gnutls
gnupg
guile
inetutils
ipfs
iptables
jdk
@ -77,12 +77,14 @@ let
lispPackages.quicklisp
lsof
lshw
manix
mkpasswd
mtr
nixfmt
nix-index
nix-prefetch-git
nmap
opencv-java
openldap
openssl
pciutils
@ -92,9 +94,11 @@ let
rustc
sbcl
stdenv
telnet
texlive.combined.scheme-basic
tmux
unzip
winetricks
yubikey-manager
yubikey-personalization
youtube-dl
@ -106,19 +110,18 @@ let
asuka
kristall
castor
] ++ (optionals isLinux [
atop
btrfs-progs
clj2nix
opencv-java
]);
];
ensure-directories = [ ".emacs.d/.local/etc/eshell" ];
in {
programs = {
bash.enable = true;
bash = {
enable = true;
enableVteIntegration = true;
};
git = {
enable = true;
userName = username;
@ -126,6 +129,16 @@ in {
ignores = [ "*~" ];
extraConfig.pull.rebase = false;
};
firefox = {
enable = enable-gui;
## Some perm change error?
# package = (pkgs.firefox.override {
# cfg = {
# enableGnomeExtensions = true;
# };
# });
};
};
xresources.properties = mkIf enable-gui {
@ -137,7 +150,7 @@ in {
"Xft.lcdfilter" = "lcddefault";
};
services = mkIf isLinux {
services = {
emacs = {
enable = true;
package = doom-emacs-package;
@ -148,49 +161,16 @@ in {
gpg-agent.enable = true;
gnome-keyring.enable = true;
gnome-keyring.enable = enable-gui;
redshift = {
gammastep = {
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 = {
inherit username;
homeDirectory = home-dir;
packages = if enable-gui then (common-packages ++ gui-packages)
else
common-packages;
@ -233,6 +213,6 @@ in {
};
};
systemd.user.tmpfiles.rules = optionals isLinux
(map (dir: "d ${home-dir}/${dir} 700 niten - - -") ensure-directories);
systemd.user.tmpfiles.rules =
map (dir: "d ${home-dir}/${dir} 700 ${username} - - -") ensure-directories;
}

107
root.nix Normal file
View File

@ -0,0 +1,107 @@
{
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 = 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;
}

View File

@ -1,7 +1,6 @@
{ username, user-email, home-dir, enable-gui, ... }:
{ pkgs, ... }:
{ config, lib, pkgs, username, user-email, home-dir, enable-gui, ... }:
with pkgs.lib; if !enable-gui then {} else {
with lib; if !enable-gui then {} else {
home = {
packages = with pkgs; [
fcitx5-configtool