Compare commits

..

26 Commits

Author SHA1 Message Date
Peter Selby dee8b51814 Did this actually commit? 2023-11-06 19:45:07 -08:00
Peter Selby d6a1438d99 Are these the problem? 2023-11-06 19:44:26 -08:00
Peter Selby 1288e89929 Oops, comments are # in nix 2023-11-06 19:43:11 -08:00
Peter Selby e76f0aa5d3 Not this again... 2023-11-06 19:42:07 -08:00
Peter Selby 37aa66a33b btrfs-progs is Linux-only 2023-11-06 19:36:12 -08:00
Peter Selby 835d0a2724 atop is Linux-only 2023-11-06 19:35:27 -08:00
Peter Selby 1205261a7b telnet -> inetutils 2023-11-06 19:34:49 -08:00
Peter Selby f22f5f4a74 opencv-java is linux-only 2023-11-06 19:33:56 -08:00
Peter Selby 1b2195b156 Start to split out linux-only 2023-11-06 19:32:42 -08:00
Peter Selby df25e8751e But it's not released yet... 2023-11-06 19:12:40 -08:00
Peter Selby b0701743eb Switch to 23.11 2023-11-06 19:11:58 -08:00
Peter Selby 9a890b643f tmpfiles doesn't exist outside linux 2023-11-06 19:10:45 -08:00
Peter Selby 08a4c5c9ea Only run services in linux 2023-11-06 19:10:02 -08:00
Peter Selby a01d25c0bf For real? Did I lose something? 2023-11-06 19:05:49 -08:00
Peter Selby fb8e35e081 Define username? 2023-11-06 19:05:08 -08:00
Peter Selby 3df188e5d5 Don't need pkgs anymore 2023-11-06 16:24:19 -08:00
Peter Selby f2bebedd63 Remove extra close brace 2023-11-06 16:23:23 -08:00
Peter Selby 45161926a6 Make a module instead 2023-11-06 15:59:26 -08:00
Peter Selby d7a279a2f2 Extra semicolon... 2023-11-06 15:46:27 -08:00
Peter Selby 1593539fea No...make it a module 2023-11-06 15:45:46 -08:00
Peter Selby 4fe890b0a3 Missing semicolon 2023-11-06 15:40:59 -08:00
Peter Selby 8907181209 Actually make home manager config 2023-11-06 15:39:37 -08:00
Peter Selby b0bd0f05a0 Switch how this works again 2023-11-06 15:34:48 -08:00
Peter Selby bcdafb7994 Update nixpkgs 2023-11-06 15:11:34 -08:00
Peter Selby 7fbdb29e10 Add config builder 2023-11-06 13:59:39 -08:00
niten e0bffa4095 Update home-manager flake 2021-10-15 16:30:54 -07:00
6 changed files with 115 additions and 204 deletions

View File

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

View File

@ -2,9 +2,9 @@
description = "Fudo Home Manager Configuration";
inputs = {
nixpkgs.url = "nixpkgs/nixos-21.05";
nixpkgs.url = "nixpkgs/nixos-23.05";
home-manager = {
url = "github:nix-community/home-manager/release-21.05";
url = "github:nix-community/home-manager/release-23.05";
inputs.nixpkgs.follows = "nixpkgs";
};
doom-emacs.url = "github:vlaci/nix-doom-emacs";
@ -24,5 +24,9 @@
(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 = ./root.nix;
root = ./niten.nix;
viator = ./niten.nix;
xiaoxuan = ./xiaoxuan.nix;
};
@ -14,11 +14,19 @@ 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-configs;
user-config-map;
in {
config.home-manager = {
@ -30,30 +38,15 @@ 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;
});
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";
};
};
enable-gui
}) { inherit pkgs; });
in mapAttrs generate-config local-users;
};
}

132
niten.nix
View File

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

107
root.nix
View File

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