Compare commits
16 Commits
Author | SHA1 | Date |
---|---|---|
|
9e5ca132cf | |
|
76bd02b24e | |
|
7744f675a1 | |
|
887a14bfa9 | |
|
2c1edb71fe | |
|
63c2fdd679 | |
|
6b04af4689 | |
|
d1b245e42d | |
|
96e9d01281 | |
|
8aa670951a | |
|
560c16a650 | |
|
bb1f864d45 | |
|
7d7f95b1c2 | |
|
1ba24b9571 | |
|
b4524c5145 | |
|
a9a9785f9e |
32
flake.lock
32
flake.lock
|
@ -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"
|
||||
}
|
||||
},
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
35
module.nix
35
module.nix
|
@ -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
112
niten.nix
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue