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
Generated
+16 -16
View File
@@ -23,11 +23,11 @@
"rotate-text": "rotate-text" "rotate-text": "rotate-text"
}, },
"locked": { "locked": {
"lastModified": 1666806097, "lastModified": 1627398156,
"narHash": "sha256-4/QpDoyf2I7RvhbmK15PB+qPuLYU3Lm0woUChA1fn+k=", "narHash": "sha256-Ru1aV3NuIFXAsvUE3de8KR7xDZOo1GCBJdsWKJn+Ebw=",
"owner": "vlaci", "owner": "vlaci",
"repo": "nix-doom-emacs", "repo": "nix-doom-emacs",
"rev": "cc495913aeb4212349392e1c68a62b8e63248123", "rev": "fee14d217b7a911aad507679dafbeaa8c1ebf5ff",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -187,16 +187,16 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1695108154, "lastModified": 1637019201,
"narHash": "sha256-gSg7UTVtls2yO9lKtP0yb66XBHT1Fx5qZSZbGMpSn2c=", "narHash": "sha256-lq4gz51fx4m5FXfx1SCB444aEBeaYtLMVm3P18Wi9ls=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "07682fff75d41f18327a871088d20af2710d4744", "rev": "bcf03fa16a1f06b8a0abb27bf49afa8d6fffe8f1",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nix-community", "owner": "nix-community",
"ref": "release-23.05", "ref": "release-21.05",
"repo": "home-manager", "repo": "home-manager",
"type": "github" "type": "github"
} }
@@ -204,11 +204,11 @@
"niten-doom-config": { "niten-doom-config": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1684432992, "lastModified": 1633712607,
"narHash": "sha256-ex/H6we7BLjidBxo0n5EZ9YUflLr03sLWdf5YGsF6jU=", "narHash": "sha256-6PAw7Xvoj4JROeTqK1nhT2zv7bPpiQlm9t7H5HQ0f2k=",
"ref": "refs/heads/master", "ref": "master",
"rev": "47773717b06d21004db3dea96f2329f912ef8dd3", "rev": "0a4f8ce4121ba3d64d29b0d52733c08febfb83d8",
"revCount": 64, "revCount": 35,
"type": "git", "type": "git",
"url": "https://git.fudo.org/niten/doom-emacs.git" "url": "https://git.fudo.org/niten/doom-emacs.git"
}, },
@@ -251,16 +251,16 @@
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1699169573, "lastModified": 1636944046,
"narHash": "sha256-cvUb1xZkvOp3W2SzylStrTirhVd9zCeo5utJl9nSIhw=", "narHash": "sha256-74KLDsiWSBsYXKj/ql9EGbw1TbIJRE7clFkhl30HV/c=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "aeefe2054617cae501809b82b44a8e8f7be7cc4b", "rev": "46251a79f752ae1d46ef733e8e9760b6d3429da4",
"type": "github" "type": "github"
}, },
"original": { "original": {
"id": "nixpkgs", "id": "nixpkgs",
"ref": "nixos-23.05", "ref": "nixos-21.05",
"type": "indirect" "type": "indirect"
} }
}, },
+2 -6
View File
@@ -2,9 +2,9 @@
description = "Fudo Home Manager Configuration"; description = "Fudo Home Manager Configuration";
inputs = { inputs = {
nixpkgs.url = "nixpkgs/nixos-23.05"; nixpkgs.url = "nixpkgs/nixos-21.05";
home-manager = { home-manager = {
url = "github:nix-community/home-manager/release-23.05"; url = "github:nix-community/home-manager/release-21.05";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
doom-emacs.url = "github:vlaci/nix-doom-emacs"; doom-emacs.url = "github:vlaci/nix-doom-emacs";
@@ -24,9 +24,5 @@
(import ./module.nix { inherit doom-emacs niten-doom-config; }) (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;
};
}; };
} }
+21 -14
View File
@@ -6,7 +6,7 @@ with lib;
let let
user-configs = { user-configs = {
niten = ./niten.nix; niten = ./niten.nix;
root = ./niten.nix; root = ./root.nix;
viator = ./niten.nix; viator = ./niten.nix;
xiaoxuan = ./xiaoxuan.nix; xiaoxuan = ./xiaoxuan.nix;
}; };
@@ -14,19 +14,11 @@ let
hostname = config.instance.hostname; hostname = config.instance.hostname;
enable-gui = config.fudo.hosts.${hostname}.enable-gui; 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-users = let
local-usernames = attrNames config.instance.local-users; local-usernames = attrNames config.instance.local-users;
in filterAttrs in filterAttrs
(username: userOpts: elem username local-usernames) (username: userOpts: elem username local-usernames)
user-config-map; user-configs;
in { in {
config.home-manager = { config.home-manager = {
@@ -38,15 +30,30 @@ in {
user-email = if (user-cfg.email != null) then user-email = if (user-cfg.email != null) then
user-cfg.email else "${username}@${config.instance.local-domain}"; user-cfg.email else "${username}@${config.instance.local-domain}";
home-dir = config.users.users.${username}.home; home-dir = config.users.users.${username}.home;
in ((import user-configs.${username} { in (import user-configs.${username} {
inherit inherit
config
lib
pkgs
doom-emacs doom-emacs
niten-doom-config niten-doom-config
username username
user-email user-email
home-dir home-dir
enable-gui enable-gui;
}) { inherit pkgs; }); });
in mapAttrs generate-config local-users; 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";
};
};
}; };
} }
+56 -76
View File
@@ -1,6 +1,9 @@
{ {
doom-emacs, doom-emacs,
niten-doom-config, niten-doom-config,
config,
lib,
pkgs,
username, username,
user-email, user-email,
home-dir, home-dir,
@@ -8,67 +11,64 @@
... ...
}: }:
{ pkgs, ... }: with lib;
with pkgs.lib;
let let
inherit (pkgs.stdenv) isLinux;
doom-emacs-package = pkgs.callPackage doom-emacs { doom-emacs-package = pkgs.callPackage doom-emacs {
doomPrivateDir = niten-doom-config; doomPrivateDir = niten-doom-config;
extraPackages = with pkgs.emacsPackages; [ extraPackages = with pkgs.emacsPackages; [
elpher elpher
use-package use-package
]; ];
# emacsPackagesOverlay = final: prev: { emacsPackagesOverlay = final: prev: {
# irony = prev.irony.overrideAttrs (esuper: { irony = prev.irony.overrideAttrs (esuper: {
# buildInputs = with pkgs; buildInputs = with pkgs;
# esuper.buildInputs ++ esuper.buildInputs ++ [ clang libclang ];
# [ cmake libclang clang ]; });
# }); };
# };
}; };
gui-packages = with pkgs; [ gui-packages = with pkgs; [
exodus element-desktop
firefox exodus
imagemagick faudio
jq gnome.gnome-tweaks
minecraft google-chrome
nyxt imagemagick
openttd jq
pv minecraft
signal-desktop mplayer
spotify nyxt
] ++ (optionals isLinux [ openttd
gnome.gnome-tweaks pv
google-chrome redshift
mplayer signal-desktop
redshift spotify
xclip xclip
]); ];
common-packages = with pkgs; [ common-packages = with pkgs; [
ant ant
asdf asdf
atop
binutils binutils
btrfs-progs
bundix bundix
byobu byobu
cdrtools cdrtools
cargo cargo
clojure clojure
clj2nix
cmake cmake
curl curl
doom-emacs-package
enca enca
file file
fortune fortune
doom-emacs-package
git git
gnutls gnutls
gnupg gnupg
guile guile
inetutils
ipfs ipfs
iptables iptables
jdk jdk
@@ -77,12 +77,14 @@ let
lispPackages.quicklisp lispPackages.quicklisp
lsof lsof
lshw lshw
manix
mkpasswd mkpasswd
mtr mtr
nixfmt nixfmt
nix-index nix-index
nix-prefetch-git nix-prefetch-git
nmap nmap
opencv-java
openldap openldap
openssl openssl
pciutils pciutils
@@ -92,9 +94,11 @@ let
rustc rustc
sbcl sbcl
stdenv stdenv
telnet
texlive.combined.scheme-basic texlive.combined.scheme-basic
tmux tmux
unzip unzip
winetricks
yubikey-manager yubikey-manager
yubikey-personalization yubikey-personalization
youtube-dl youtube-dl
@@ -106,19 +110,18 @@ let
asuka asuka
kristall kristall
castor castor
] ++ (optionals isLinux [ ];
atop
btrfs-progs
clj2nix
opencv-java
]);
ensure-directories = [ ".emacs.d/.local/etc/eshell" ]; ensure-directories = [ ".emacs.d/.local/etc/eshell" ];
in { in {
programs = { programs = {
bash.enable = true; bash = {
enable = true;
enableVteIntegration = true;
};
git = { git = {
enable = true; enable = true;
userName = username; userName = username;
@@ -126,6 +129,16 @@ in {
ignores = [ "*~" ]; ignores = [ "*~" ];
extraConfig.pull.rebase = false; extraConfig.pull.rebase = false;
}; };
firefox = {
enable = enable-gui;
## Some perm change error?
# package = (pkgs.firefox.override {
# cfg = {
# enableGnomeExtensions = true;
# };
# });
};
}; };
xresources.properties = mkIf enable-gui { xresources.properties = mkIf enable-gui {
@@ -137,7 +150,7 @@ in {
"Xft.lcdfilter" = "lcddefault"; "Xft.lcdfilter" = "lcddefault";
}; };
services = mkIf isLinux { services = {
emacs = { emacs = {
enable = true; enable = true;
package = doom-emacs-package; package = doom-emacs-package;
@@ -148,49 +161,16 @@ in {
gpg-agent.enable = true; gpg-agent.enable = true;
gnome-keyring.enable = true; gnome-keyring.enable = enable-gui;
redshift = { gammastep = {
enable = true; enable = true;
latitude = "47"; latitude = "47";
longitude = "122"; 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 = { home = {
inherit username;
homeDirectory = home-dir;
packages = if enable-gui then (common-packages ++ gui-packages) packages = if enable-gui then (common-packages ++ gui-packages)
else else
common-packages; common-packages;
@@ -233,6 +213,6 @@ in {
}; };
}; };
systemd.user.tmpfiles.rules = optionals isLinux systemd.user.tmpfiles.rules =
(map (dir: "d ${home-dir}/${dir} 700 niten - - -") ensure-directories); map (dir: "d ${home-dir}/${dir} 700 ${username} - - -") ensure-directories;
} }
+107
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;
}
+2 -3
View File
@@ -1,7 +1,6 @@
{ username, user-email, home-dir, enable-gui, ... }: { config, lib, pkgs, username, user-email, home-dir, enable-gui, ... }:
{ pkgs, ... }:
with pkgs.lib; if !enable-gui then {} else { with lib; if !enable-gui then {} else {
home = { home = {
packages = with pkgs; [ packages = with pkgs; [
fcitx5-configtool fcitx5-configtool