feat: introduce treefmt and fmt all

This commit is contained in:
steveej 2024-11-15 10:17:56 +01:00
parent 80250b0179
commit 27c6c4f9fa
237 changed files with 5440 additions and 5214 deletions

View file

@ -1,10 +1,7 @@
{ pkgs, ... }:
{
pkgs,
lib,
...
}: {
# required for running blueman-applet in user sessions
services.dbus.packages = with pkgs; [blueman];
services.dbus.packages = with pkgs; [ blueman ];
hardware.bluetooth.enable = true;
services.blueman.enable = true;
}

View file

@ -1,48 +1,48 @@
{
config,
lib,
...
}: let
{ config, lib, ... }:
let
cfg = config.steveej.holo-zerotier;
in {
in
{
options.steveej.holo-zerotier = {
enable = lib.mkEnableOption "Enable holo-zerotier";
autostart = lib.mkOption {default = false;};
autostart = lib.mkOption { default = false; };
};
config = {
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) ["zerotierone"];
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [ "zerotierone" ];
services.zerotierone = {
enable = cfg.enable;
inherit (cfg) enable;
joinNetworks = [
# moved to the service below as it's now secret
];
};
systemd.services.zerotierone.wantedBy = lib.mkIf (!cfg.autostart) (lib.mkForce []);
systemd.services.zerotierone.wantedBy = lib.mkIf (!cfg.autostart) (lib.mkForce [ ]);
systemd.services.zerotieroneSecretNetworks = {
enable = cfg.enable;
requiredBy = ["zerotierone.service"];
partOf = ["zerotierone.service"];
inherit (cfg) enable;
requiredBy = [ "zerotierone.service" ];
partOf = [ "zerotierone.service" ];
serviceConfig.Type = "oneshot";
serviceConfig.RemainAfterExit = true;
script = let
secret = config.sops.secrets.zerotieroneNetworks;
in ''
# include the secret's hash to trigger a restart on change
# ${builtins.hashString "sha256" (builtins.toJSON secret)}
script =
let
secret = config.sops.secrets.zerotieroneNetworks;
in
''
# include the secret's hash to trigger a restart on change
# ${builtins.hashString "sha256" (builtins.toJSON secret)}
${config.systemd.services.zerotierone.preStart}
${config.systemd.services.zerotierone.preStart}
rm -rf /var/lib/zerotier-one/networks.d/*.conf
for network in `grep -v '#' ${secret.path}`; do
touch /var/lib/zerotier-one/networks.d/''${network}.conf
done
'';
rm -rf /var/lib/zerotier-one/networks.d/*.conf
for network in `grep -v '#' ${secret.path}`; do
touch /var/lib/zerotier-one/networks.d/''${network}.conf
done
'';
};
sops.secrets.zerotieroneNetworks = {

View file

@ -4,9 +4,9 @@
repoFlakeInputs',
packages',
pkgs,
lib,
...
}: let
}:
let
# TODO: make this configurable
homeUser = "steveej";
commonHomeImports = [
@ -14,10 +14,9 @@
../../home-manager/programs/neovim.nix
../../home-manager/programs/zsh.nix
];
in {
imports = [
nodeFlake.inputs.home-manager.nixosModules.home-manager
];
in
{
imports = [ nodeFlake.inputs.home-manager.nixosModules.home-manager ];
# TODO: investigate an issue with the "name" arg contained here, which causes problems with home-manager
# home-manager.extraSpecialArgs = specialArgs;
@ -34,15 +33,11 @@ in {
home-manager.useGlobalPkgs = false;
home-manager.useUserPackages = true;
home-manager.users.root = _: {
imports = commonHomeImports;
};
home-manager.users.root = _: { imports = commonHomeImports; };
home-manager.users."${homeUser}" = _: {
imports = commonHomeImports;
};
home-manager.users."${homeUser}" = _: { imports = commonHomeImports; };
programs.zsh.enable = true;
users.defaultUserShell = pkgs.zsh;
environment.pathsToLink = ["/share/zsh"];
environment.pathsToLink = [ "/share/zsh" ];
}

View file

@ -1,18 +1,18 @@
# experiment with k3s, nix-snapshotter, and nixos images
{
nodeFlake,
nodeFlakeInputs',
pkgs,
lib,
system,
config,
...
}: let
}:
let
cfg = config.steveej.k3s;
# TODO: make this configurable
homeUser = "steveej";
in {
in
# TODO: make this configurable
{
options.steveej.k3s = {
enable = lib.mkOption {
description = "steveej's k3s distro";
@ -22,13 +22,11 @@ in {
};
# (1) Import nixos module.
imports = [
nodeFlake.inputs.nix-snapshotter.nixosModules.default
];
imports = [ nodeFlake.inputs.nix-snapshotter.nixosModules.default ];
config = lib.mkIf cfg.enable {
# (2) Add overlay.
nixpkgs.overlays = [nodeFlake.inputs.nix-snapshotter.overlays.default];
nixpkgs.overlays = [ nodeFlake.inputs.nix-snapshotter.overlays.default ];
# (3) Enable service.
virtualisation.containerd = {

View file

@ -1,16 +1,15 @@
{
repoFlake,
nodeFlake,
nodeName,
config,
system,
lib,
...
}: let
}:
let
cfg.autostart = false;
in {
imports = [
];
in
{
imports = [ ];
sops.secrets.mycelium-key = {
format = "binary";
@ -22,14 +21,12 @@ in {
# package = nodeFlake.inputs.mycelium.packages.${system}.myceliumd;
keyFile = config.sops.secrets.mycelium-key.path;
addHostedPublicNodes = true;
peers = [
];
peers = [ ];
# tunName = "mycelium-pub";
extraArgs = [
];
extraArgs = [ ];
};
systemd.services.mycelium.wantedBy = lib.mkIf (!cfg.autostart) (lib.mkForce []);
systemd.services.mycelium.wantedBy = lib.mkIf (!cfg.autostart) (lib.mkForce [ ]);
}

View file

@ -1,4 +1,4 @@
{pkgs, ...}: {
_: {
nix.settings = {
substituters = [
"https://holochain-ci.cachix.org"

View file

@ -3,17 +3,17 @@
pkgs,
lib,
...
}: let
pkgsUnstable = import nodeFlake.inputs.nixpkgs-unstable {inherit (pkgs) system config;};
in {
}:
let
pkgsUnstable = import nodeFlake.inputs.nixpkgs-unstable { inherit (pkgs) system config; };
in
{
nix.daemonCPUSchedPolicy = "idle";
nix.daemonIOSchedClass = "idle";
nix.settings.max-jobs = lib.mkDefault "auto";
nix.settings.cores = lib.mkDefault 0;
nix.settings.sandbox = true;
nix.nixPath = [
"nixpkgs=${pkgs.path}"
];
nix.nixPath = [ "nixpkgs=${pkgs.path}" ];
nix.settings.experimental-features = [
"nix-command"
@ -32,7 +32,7 @@ in {
nix.registry.nixpkgs.to = {
type = "path";
path = nodeFlake.inputs.nixpkgs.outPath;
narHash = nodeFlake.inputs.nixpkgs.narHash;
inherit (nodeFlake.inputs.nixpkgs) narHash;
};
nix.package = pkgsUnstable.nixVersions.latest;

View file

@ -1,10 +1,10 @@
{config, ...}: let
{ config, ... }:
let
# TODO: make configurable
homeUser = "steveej";
in {
boot.extraModulePackages = [
config.boot.kernelPackages.v4l2loopback.out
];
in
{
boot.extraModulePackages = [ config.boot.kernelPackages.v4l2loopback.out ];
# Activate kernel modules (choose from built-ins and extra ones)
boot.kernelModules = [
@ -23,9 +23,5 @@ in {
security.polkit.enable = true;
home-manager.users.${homeUser} = _: {
imports = [
../../home-manager/programs/obs-studio.nix
];
};
home-manager.users.${homeUser} = _: { imports = [ ../../home-manager/programs/obs-studio.nix ]; };
}

View file

@ -1,13 +1,14 @@
{
config,
lib,
pkgs,
repoFlakeInputs',
...
}: let
}:
let
# TODO: make configurable
homeUser = "steveej";
in {
in
{
sops.secrets.radicale_htpasswd = {
sopsFile = ../../../secrets/desktop/radicale_htpasswd;
format = "binary";
@ -19,11 +20,13 @@ in {
# TODO: bump these to latest and make it work
(
args:
import ../../home-manager/programs/radicale.nix (args
// {
osConfig = config;
pkgs = repoFlakeInputs'.radicalePkgs.legacyPackages;
})
import ../../home-manager/programs/radicale.nix (
args
// {
osConfig = config;
pkgs = repoFlakeInputs'.radicalePkgs.legacyPackages;
}
)
)
];
};

View file

@ -3,10 +3,12 @@
lib,
config,
...
}: let
}:
let
# TODO: make this configurable
homeUser = "steveej";
in {
in
{
services.xserver.serverFlagsSection = ''
Option "BlankTime" "0"
Option "StandbyTime" "0"
@ -28,7 +30,7 @@ in {
# required by swaywm
security.polkit.enable = true;
security.pam.services.swaylock = {};
security.pam.services.swaylock = { };
# test these on https://mozilla.github.io/webrtc-landing/gum_test.html
xdg.portal = {
@ -44,18 +46,20 @@ in {
screencast = {
chooser_type = "dmenu";
# display the output as a list in favor of the default mouse selection
chooser_cmd = lib.getExe (pkgs.writeShellApplication {
name = "chooser_cmd";
runtimeInputs = [
pkgs.sway
pkgs.jq
pkgs.fuzzel
pkgs.gnused
];
text = ''
swaymsg -t get_outputs | jq '.[] | "\(.name)@\(.current_mode.width)x\(.current_mode.height) on \(.model)"' | sed 's/"//g' | fuzzel -d | sed 's/@.*//'
'';
});
chooser_cmd = lib.getExe (
pkgs.writeShellApplication {
name = "chooser_cmd";
runtimeInputs = [
pkgs.sway
pkgs.jq
pkgs.fuzzel
pkgs.gnused
];
text = ''
swaymsg -t get_outputs | jq '.[] | "\(.name)@\(.current_mode.width)x\(.current_mode.height) on \(.model)"' | sed 's/"//g' | fuzzel -d | sed 's/@.*//'
'';
}
);
max_fps = 30;
};
};
@ -101,8 +105,8 @@ in {
# autologin steveej on tty1
# TODO: make user configurable
systemd.services."autovt@tty1".description = "Autologin at the TTY1";
systemd.services."autovt@tty1".after = ["systemd-logind.service"]; # without it user session not started and xorg can't be run from this tty
systemd.services."autovt@tty1".wantedBy = ["multi-user.target"];
systemd.services."autovt@tty1".after = [ "systemd-logind.service" ]; # without it user session not started and xorg can't be run from this tty
systemd.services."autovt@tty1".wantedBy = [ "multi-user.target" ];
systemd.services."autovt@tty1".serviceConfig = {
ExecStart = [
"" # override upstream default with an empty ExecStart
@ -112,21 +116,21 @@ in {
Type = "idle";
};
programs = let
steveejSwayOnTty1 = ''
if test $(id --user steveej) = $(id -u) && test $(tty) = "/dev/tty1"; then
exec sway
fi
'';
in {
bash.loginShellInit = steveejSwayOnTty1;
# TODO: only do this when zsh is enabled. first naiv attempt lead infinite recursion
zsh.loginShellInit = steveejSwayOnTty1;
};
programs =
let
steveejSwayOnTty1 = ''
if test $(id --user steveej) = $(id -u) && test $(tty) = "/dev/tty1"; then
exec sway
fi
'';
in
{
bash.loginShellInit = steveejSwayOnTty1;
# TODO: only do this when zsh is enabled. first naiv attempt lead infinite recursion
zsh.loginShellInit = steveejSwayOnTty1;
};
home-manager.users."${homeUser}" = _: {
imports = [
../../home-manager/profiles/sway-desktop.nix
];
imports = [ ../../home-manager/profiles/sway-desktop.nix ];
};
}

View file

@ -1,4 +1,5 @@
{lib, ...}: {
{ lib, ... }:
{
networking.nameservers = [
# https://dnsforge.de/
"176.9.93.198"
@ -12,12 +13,12 @@
services.resolved = {
enable = true;
dnssec = "true";
domains = ["~."];
domains = [ "~." ];
# TODO: figure out why "true" doesn't work
dnsovertls = "opportunistic";
fallbackDns = lib.mkForce [];
fallbackDns = lib.mkForce [ ];
# TODO: IPv6
# extraConfig = ''

View file

@ -1,5 +1,7 @@
{lib, ...}: let
{ lib, ... }:
let
passwords = import ../../variables/passwords.crypt.nix;
in {
in
{
time.timeZone = lib.mkDefault passwords.timeZone.stefan;
}