refactor(tazjin/nixos): First step to extracting shared config
There's some configuration shared betwene my physical machines which is just duplicated all over the place right now. What's the point of having Nix if you don't use it fully? Change-Id: Ic7e89f918d2517637b3d49617b4dc1a2cc6023b9 Reviewed-on: https://cl.tvl.fyi/c/depot/+/5536 Tested-by: BuildkiteCI Autosubmit: tazjin <tazjin@tvl.su> Reviewed-by: tazjin <tazjin@tvl.su>
This commit is contained in:
parent
fe78a53bc9
commit
988ac68100
3 changed files with 97 additions and 88 deletions
|
@ -1,5 +1,5 @@
|
||||||
# //users/tazjin-specific CI configuration.
|
# //users/tazjin-specific CI configuration.
|
||||||
{ pkgs, ... }:
|
{ depot, pkgs, ... }:
|
||||||
|
|
||||||
let
|
let
|
||||||
rustfmt = pkgs.writeShellScript "rustfmt-tazjin" ''
|
rustfmt = pkgs.writeShellScript "rustfmt-tazjin" ''
|
||||||
|
@ -9,11 +9,22 @@ let
|
||||||
'';
|
'';
|
||||||
|
|
||||||
in
|
in
|
||||||
rustfmt.overrideAttrs (_: {
|
depot.nix.readTree.drvTargets {
|
||||||
# rustfmt not respecting config atm, disable
|
rustfmt = rustfmt.overrideAttrs (_: {
|
||||||
meta.ci.skip = true;
|
# rustfmt not respecting config atm, disable
|
||||||
|
meta.ci.skip = true;
|
||||||
|
|
||||||
meta.ci.extraSteps.rustfmt = {
|
meta.ci.extraSteps.rustfmt = {
|
||||||
command = rustfmt;
|
command = rustfmt;
|
||||||
};
|
};
|
||||||
})
|
});
|
||||||
|
|
||||||
|
# Use a screen lock command that resets the keyboard layout
|
||||||
|
# before locking, to avoid locking me out when the layout is
|
||||||
|
# in Russian.
|
||||||
|
screenLock = pkgs.writeShellScriptBin "tazjin-screen-lock" ''
|
||||||
|
${pkgs.xorg.setxkbmap}/bin/setxkbmap us
|
||||||
|
${pkgs.xorg.setxkbmap}/bin/setxkbmap -option caps:super
|
||||||
|
exec ${pkgs.xsecurelock}/bin/xsecurelock
|
||||||
|
'';
|
||||||
|
}
|
||||||
|
|
75
users/tazjin/nixos/modules/physical.nix
Normal file
75
users/tazjin/nixos/modules/physical.nix
Normal file
|
@ -0,0 +1,75 @@
|
||||||
|
# Default configuration settings for physical machines that I use.
|
||||||
|
{ pkgs, depot, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
# Install all the default software.
|
||||||
|
environment.systemPackages =
|
||||||
|
# programs from the depot
|
||||||
|
(with depot; [
|
||||||
|
users.tazjin.screenLock
|
||||||
|
users.tazjin.emacs
|
||||||
|
third_party.agenix.cli
|
||||||
|
]) ++
|
||||||
|
|
||||||
|
# programs from nixpkgs
|
||||||
|
(with pkgs; [
|
||||||
|
amber
|
||||||
|
audacity
|
||||||
|
bat
|
||||||
|
curl
|
||||||
|
ddcutil
|
||||||
|
direnv
|
||||||
|
dmd
|
||||||
|
dnsutils
|
||||||
|
electrum
|
||||||
|
emacsNativeComp # emacsclient
|
||||||
|
exa
|
||||||
|
fd
|
||||||
|
file
|
||||||
|
firefox
|
||||||
|
fractal
|
||||||
|
gdb
|
||||||
|
gh
|
||||||
|
git
|
||||||
|
gnupg
|
||||||
|
google-chrome
|
||||||
|
gtk3 # for gtk-launch
|
||||||
|
htop
|
||||||
|
hyperfine
|
||||||
|
iftop
|
||||||
|
imagemagick
|
||||||
|
jq
|
||||||
|
lieer
|
||||||
|
man-pages
|
||||||
|
mosh
|
||||||
|
msmtp
|
||||||
|
mullvad-vpn
|
||||||
|
networkmanagerapplet
|
||||||
|
nix-prefetch-github
|
||||||
|
nmap
|
||||||
|
notmuch
|
||||||
|
openssh
|
||||||
|
openssl
|
||||||
|
paperlike-go
|
||||||
|
pass
|
||||||
|
pavucontrol
|
||||||
|
pinentry
|
||||||
|
pinentry-emacs
|
||||||
|
pulseaudio # for pactl
|
||||||
|
pwgen
|
||||||
|
quasselClient
|
||||||
|
rink
|
||||||
|
ripgrep
|
||||||
|
rustup
|
||||||
|
screen
|
||||||
|
scrot
|
||||||
|
tig
|
||||||
|
tokei
|
||||||
|
tree
|
||||||
|
unzip
|
||||||
|
vlc
|
||||||
|
whois
|
||||||
|
xsecurelock
|
||||||
|
zoxide
|
||||||
|
]);
|
||||||
|
}
|
|
@ -8,19 +8,13 @@ let
|
||||||
monolithic = false;
|
monolithic = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
# Use a screen lock command that resets the keyboard layout
|
|
||||||
# before locking, to avoid locking me out when the layout is
|
|
||||||
# in Russian.
|
|
||||||
screenLock = pkgs.writeShellScriptBin "tazjin-screen-lock" ''
|
|
||||||
${pkgs.xorg.setxkbmap}/bin/setxkbmap us
|
|
||||||
${pkgs.xorg.setxkbmap}/bin/setxkbmap -option caps:super
|
|
||||||
exec ${pkgs.xsecurelock}/bin/xsecurelock
|
|
||||||
'';
|
|
||||||
mod = name: depot.path + ("/ops/modules/" + name);
|
mod = name: depot.path + ("/ops/modules/" + name);
|
||||||
|
usermod = name: depot.path + ("/users/tazjin/nixos/modules/" + name);
|
||||||
in
|
in
|
||||||
lib.fix (self: {
|
lib.fix (self: {
|
||||||
imports = [
|
imports = [
|
||||||
(mod "open_eid.nix")
|
(mod "open_eid.nix")
|
||||||
|
(usermod "physical.nix")
|
||||||
"${depot.third_party.impermanence}/nixos.nix"
|
"${depot.third_party.impermanence}/nixos.nix"
|
||||||
"${pkgs.home-manager.src}/nixos"
|
"${pkgs.home-manager.src}/nixos"
|
||||||
] ++ lib.optional (builtins.pathExists ./local-config.nix) ./local-config.nix;
|
] ++ lib.optional (builtins.pathExists ./local-config.nix) ./local-config.nix;
|
||||||
|
@ -262,77 +256,6 @@ lib.fix (self: {
|
||||||
fuse.userAllowOther = true;
|
fuse.userAllowOther = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
environment.systemPackages =
|
|
||||||
# programs from the depot
|
|
||||||
(with depot; [
|
|
||||||
screenLock
|
|
||||||
tools.nsfv-setup
|
|
||||||
users.tazjin.emacs
|
|
||||||
third_party.agenix.cli
|
|
||||||
]) ++
|
|
||||||
|
|
||||||
# programs from nixpkgs
|
|
||||||
(with pkgs; [
|
|
||||||
amber
|
|
||||||
audacity
|
|
||||||
bat
|
|
||||||
curl
|
|
||||||
ddcutil
|
|
||||||
direnv
|
|
||||||
dmd
|
|
||||||
dnsutils
|
|
||||||
electrum
|
|
||||||
emacsNativeComp # emacsclient
|
|
||||||
exa
|
|
||||||
fd
|
|
||||||
file
|
|
||||||
firefox
|
|
||||||
fractal
|
|
||||||
gdb
|
|
||||||
gh
|
|
||||||
git
|
|
||||||
gnupg
|
|
||||||
google-chrome
|
|
||||||
gtk3 # for gtk-launch
|
|
||||||
htop
|
|
||||||
hyperfine
|
|
||||||
iftop
|
|
||||||
imagemagick
|
|
||||||
jq
|
|
||||||
lieer
|
|
||||||
man-pages
|
|
||||||
mosh
|
|
||||||
msmtp
|
|
||||||
mullvad-vpn
|
|
||||||
networkmanagerapplet
|
|
||||||
nix-prefetch-github
|
|
||||||
nmap
|
|
||||||
notmuch
|
|
||||||
openssh
|
|
||||||
openssl
|
|
||||||
paperlike-go
|
|
||||||
pass
|
|
||||||
pavucontrol
|
|
||||||
pinentry
|
|
||||||
pinentry-emacs
|
|
||||||
pulseaudio # for pactl
|
|
||||||
pwgen
|
|
||||||
quasselClient
|
|
||||||
rink
|
|
||||||
ripgrep
|
|
||||||
rustup
|
|
||||||
screen
|
|
||||||
scrot
|
|
||||||
tig
|
|
||||||
tokei
|
|
||||||
tree
|
|
||||||
unzip
|
|
||||||
vlc
|
|
||||||
whois
|
|
||||||
xsecurelock
|
|
||||||
zoxide
|
|
||||||
]);
|
|
||||||
|
|
||||||
systemd.user.services.lieer-tazjin = {
|
systemd.user.services.lieer-tazjin = {
|
||||||
description = "Synchronise mail@tazj.in via lieer";
|
description = "Synchronise mail@tazj.in via lieer";
|
||||||
script = "${pkgs.lieer}/bin/gmi sync";
|
script = "${pkgs.lieer}/bin/gmi sync";
|
||||||
|
@ -416,7 +339,7 @@ lib.fix (self: {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableDetectSleep = true;
|
enableDetectSleep = true;
|
||||||
inactiveInterval = 10; # minutes
|
inactiveInterval = 10; # minutes
|
||||||
lockCmd = "${screenLock}/bin/tazjin-screen-lock";
|
lockCmd = "${depot.users.tazjin.screenLock}/bin/tazjin-screen-lock";
|
||||||
};
|
};
|
||||||
|
|
||||||
services.picom = {
|
services.picom = {
|
||||||
|
|
Loading…
Reference in a new issue