nixdirfmt!

This commit is contained in:
kat witch 2021-03-02 22:32:02 +00:00
parent bfdd94bf7e
commit ad1faf2f24
No known key found for this signature in database
GPG key ID: 1B477797DCA5EC72
18 changed files with 151 additions and 166 deletions

View file

@ -1,7 +1,6 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
let let sources = import ../../nix/sources.nix;
sources = import ../../nix/sources.nix;
in { in {
imports = [ ../../modules ../users (sources.home-manager + "/nixos") ]; imports = [ ../../modules ../users (sources.home-manager + "/nixos") ];

View file

@ -23,7 +23,7 @@
./matrix.nix ./matrix.nix
]; ];
meta.deploy.profiles = []; meta.deploy.profiles = [ ];
meta.deploy.ssh.host = "athame.kittywit.ch"; meta.deploy.ssh.host = "athame.kittywit.ch";
boot.loader.grub.enable = true; boot.loader.grub.enable = true;

View file

@ -2,22 +2,18 @@
let secrets = (import ../../../secrets.nix); let secrets = (import ../../../secrets.nix);
in { in {
security.acme = { security.acme = { certs."kittywit.ch" = { group = "kittywit-ch"; }; };
certs."kittywit.ch" = {
group = "kittywit-ch";
};
};
users.groups."kittywit-ch".members = ["murmur" "nginx"]; users.groups."kittywit-ch".members = [ "murmur" "nginx" ];
services.murmur = { services.murmur = {
enable = true; enable = true;
hostName = "kittywit.ch"; hostName = "kittywit.ch";
extraConfig = '' extraConfig = ''
sslCert=/var/lib/acme/kittywit.ch/fullchain.pem sslCert=/var/lib/acme/kittywit.ch/fullchain.pem
sslKey=/var/lib/acme/kittywit.ch/key.pem sslKey=/var/lib/acme/kittywit.ch/key.pem
''; '';
}; };
} }

View file

@ -6,7 +6,7 @@
#./wireguard.nix #./wireguard.nix
]; ];
meta.deploy.profiles = []; meta.deploy.profiles = [ ];
meta.deploy.ssh.host = "boline.kittywit.ch"; meta.deploy.ssh.host = "boline.kittywit.ch";
boot.loader.grub.enable = true; boot.loader.grub.enable = true;

View file

@ -61,31 +61,31 @@ in {
SUBSYSTEM=="i2c-dev", GROUP="users", MODE="0660" SUBSYSTEM=="i2c-dev", GROUP="users", MODE="0660"
SUBSYSTEM=="usb", ACTION=="add", ATTRS{idVendor}=="fa58", ATTRS{idProduct}=="04d9", GROUP="users" SUBSYSTEM=="usb", ACTION=="add", ATTRS{idVendor}=="fa58", ATTRS{idProduct}=="04d9", GROUP="users"
SUBSYSTEM=="misc", KERNEL=="uinput", OPTIONS+="static_node=uinput", MODE="0660", GROUP="uinput" SUBSYSTEM=="misc", KERNEL=="uinput", OPTIONS+="static_node=uinput", MODE="0660", GROUP="uinput"
SUBSYSTEM=="input", ACTION=="add", DEVPATH=="/devices/virtual/input/*", MODE="0660", GROUP="qemu-libvirtd", RUN+="${pkgs.writeShellScript "mewdev" "${pkgs.coreutils}/bin/echo 'c 13:* rw' > /sys/fs/cgroup/devices/machine.slice/machine-qemu*/devices.allow"}" SUBSYSTEM=="input", ACTION=="add", DEVPATH=="/devices/virtual/input/*", MODE="0660", GROUP="qemu-libvirtd", RUN+="${
pkgs.writeShellScript "mewdev"
"${pkgs.coreutils}/bin/echo 'c 13:* rw' > /sys/fs/cgroup/devices/machine.slice/machine-qemu*/devices.allow"
}"
''; '';
environment.systemPackages = [ environment.systemPackages = [
# pkgs.nur.repos.arc.packages.screenstub # for DDC/CI and input forwarding (currently disabled due to using changed source) # pkgs.nur.repos.arc.packages.screenstub # for DDC/CI and input forwarding (currently disabled due to using changed source)
pkgs.arc.pkgs.scream-arc # for audio forwarding pkgs.arc.pkgs.scream-arc # for audio forwarding
pkgs.screenstub # for input handling pkgs.screenstub # for input handling
pkgs.ddcutil # for diagnostics on DDC/CI pkgs.ddcutil # for diagnostics on DDC/CI
pkgs.virt-manager # obvious reasons pkgs.virt-manager # obvious reasons
]; ];
home-manager.users.kat = { home-manager.users.kat = {
# audio for vm on startup # audio for vm on startup
systemd.user.services = { systemd.user.services = {
scream = { scream = {
Unit = { Unit = { Description = "Scream - Audio forwarding from the VM."; };
Description = "Scream - Audio forwarding from the VM.";
};
Service = { Service = {
ExecStart = "${pkgs.arc.pkgs.scream-arc}/bin/scream -i virbr0 -o pulse"; ExecStart =
"${pkgs.arc.pkgs.scream-arc}/bin/scream -i virbr0 -o pulse";
Restart = "always"; Restart = "always";
}; };
Install = { Install = { WantedBy = [ "default.target" ]; };
WantedBy = [ "default.target" ];
};
}; };
}; };
}; };

@ -1 +1 @@
Subproject commit 49b90f76775092bf2545db515c15afe596e4d6eb Subproject commit cd1e67c8404e20e043f7343b05b960b349fe3b55

View file

@ -4,6 +4,11 @@
imports = [ ./kat ]; imports = [ ./kat ];
users.users.root = { users.users.root = {
openssh.authorizedKeys.keys = with pkgs.lib; concatLists (mapAttrsToList (name: user: if elem "wheel" user.extraGroups then user.openssh.authorizedKeys.keys else []) config.users.users); openssh.authorizedKeys.keys = with pkgs.lib;
concatLists (mapAttrsToList (name: user:
if elem "wheel" user.extraGroups then
user.openssh.authorizedKeys.keys
else
[ ]) config.users.users);
}; };
} }

View file

@ -21,18 +21,13 @@
]; ];
shell = pkgs.fish; shell = pkgs.fish;
extraGroups = [ "wheel" "video" ]; extraGroups = [ "wheel" "video" ];
packages = with pkgs; [ packages = with pkgs; [ git-crypt gitAndTools.gitRemoteGcrypt ];
git-crypt
gitAndTools.gitRemoteGcrypt
];
}; };
home-manager.useGlobalPkgs = true; home-manager.useGlobalPkgs = true;
home-manager.users.kat = { home-manager.users.kat = {
imports = [ imports = [ ./modules ];
./modules
];
programs.fish = { programs.fish = {
enable = true; enable = true;
shellAliases = { nixdirfmt = "fd --color=never .nix | xargs nixfmt"; }; shellAliases = { nixdirfmt = "fd --color=never .nix | xargs nixfmt"; };
@ -57,9 +52,7 @@
package = pkgs.gitAndTools.gitFull; package = pkgs.gitAndTools.gitFull;
userName = "kat witch"; userName = "kat witch";
userEmail = "kat@kittywit.ch"; userEmail = "kat@kittywit.ch";
extraConfig = { extraConfig = { protocol.gcrypt.allow = "always"; };
protocol.gcrypt.allow = "always";
};
signing = { signing = {
key = "01F50A29D4AA91175A11BDB17248991EFA8EFBEE"; key = "01F50A29D4AA91175A11BDB17248991EFA8EFBEE";
signByDefault = true; signByDefault = true;

View file

@ -1,7 +1,6 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
let let sources = import ../../../nix/sources.nix;
sources = import ../../../nix/sources.nix;
in { in {
imports = [ ./firefox ]; imports = [ ./firefox ];

View file

@ -1,7 +1,3 @@
{ ... }: { ... }:
let sources = import ../../../../nix/sources.nix; let sources = import ../../../../nix/sources.nix;
in { in { imports = [ (sources.tf-nix + "/modules/home/secrets.nix") ]; }
imports = [
(sources.tf-nix + "/modules/home/secrets.nix")
];
}

View file

@ -3,12 +3,12 @@
{ {
config = lib.mkIf (lib.elem "desktop" config.meta.deploy.profiles) { config = lib.mkIf (lib.elem "desktop" config.meta.deploy.profiles) {
sound.extraConfig = '' sound.extraConfig = ''
defaults.pcm.rate_converter "speexrate_best" defaults.pcm.rate_converter "speexrate_best"
''; '';
hardware.pulseaudio.daemon.config = { hardware.pulseaudio.daemon.config = {
default-sample-format = "s24le"; default-sample-format = "s24le";
default-sample-rate = 96000; default-sample-rate = 96000;
resample-method = "soxr-vhq"; resample-method = "soxr-vhq";
}; };
}; };
} }

View file

@ -5,73 +5,77 @@ let
secrets = import ../../../../secrets.nix; secrets = import ../../../../secrets.nix;
in { in {
config = lib.mkIf (lib.elem "sway" config.meta.deploy.profiles) { config = lib.mkIf (lib.elem "sway" config.meta.deploy.profiles) {
home-manager.users.kat = { home-manager.users.kat = {
programs.waybar = { programs.waybar = {
enable = true; enable = true;
style = import ./waybar.css.nix { style = import ./waybar.css.nix {
inherit style; inherit style;
hextorgba = pkgs.colorhelpers.hextorgba; hextorgba = pkgs.colorhelpers.hextorgba;
};
settings = [{
modules-left = [ "sway/workspaces" "sway/mode" "sway/window" ];
modules-center = [ "clock" "custom/weather" ];
modules-right = [
"pulseaudio"
"network"
"cpu"
"memory"
"temperature"
"backlight"
"battery"
"tray"
];
modules = {
"custom/weather" = {
format = "{}";
interval = 3600;
on-click = "xdg-open 'https://google.com/search?q=weather'";
exec = "nix-shell --command 'python ${../../../../scripts/weather/weather.py} ${secrets.profiles.sway.city} ${secrets.profiles.sway.api_key}' ${../../../../scripts/weather}";
};
cpu = { format = " {usage}%"; };
memory = { format = " {percentage}%"; };
temperature = { format = " {temperatureC}°C"; };
backlight = {
format = "{icon} {percent}%";
format-icons = [ "" "" ];
on-scroll-up = "${pkgs.light}/bin/light -A 1";
on-scroll-down = "${pkgs.light}/bin/light -U 1";
};
battery = {
states = {
good = 90;
warning = 30;
critical = 15;
};
format = "{icon} {capacity}%";
format-charging = " {capacity}%";
format-plugged = " {capacity}%";
format-alt = "{icon} {time}";
format-icons = [ "" "" "" "" "" ];
};
pulseaudio = {
format = " {volume}%";
on-click = "pavucontrol";
};
network = {
format-wifi = " {essid} ({signalStrength}%)";
format-ethernet = " {ifname}: {ipaddr}/{cidr}";
format-linked = " {ifname} (No IP)";
format-disconnected = " Disconnected ";
format-alt = " {ifname}: {ipaddr}/{cidr}";
};
clock = {
format = " {:%A, %F %T %Z}";
interval = 1;
};
}; };
}]; settings = [{
modules-left = [ "sway/workspaces" "sway/mode" "sway/window" ];
modules-center = [ "clock" "custom/weather" ];
modules-right = [
"pulseaudio"
"network"
"cpu"
"memory"
"temperature"
"backlight"
"battery"
"tray"
];
modules = {
"custom/weather" = {
format = "{}";
interval = 3600;
on-click = "xdg-open 'https://google.com/search?q=weather'";
exec = "nix-shell --command 'python ${
../../../../scripts/weather/weather.py
} ${secrets.profiles.sway.city} ${secrets.profiles.sway.api_key}' ${
../../../../scripts/weather
}";
};
cpu = { format = " {usage}%"; };
memory = { format = " {percentage}%"; };
temperature = { format = " {temperatureC}°C"; };
backlight = {
format = "{icon} {percent}%";
format-icons = [ "" "" ];
on-scroll-up = "${pkgs.light}/bin/light -A 1";
on-scroll-down = "${pkgs.light}/bin/light -U 1";
};
battery = {
states = {
good = 90;
warning = 30;
critical = 15;
};
format = "{icon} {capacity}%";
format-charging = " {capacity}%";
format-plugged = " {capacity}%";
format-alt = "{icon} {time}";
format-icons = [ "" "" "" "" "" ];
};
pulseaudio = {
format = " {volume}%";
on-click = "pavucontrol";
};
network = {
format-wifi = " {essid} ({signalStrength}%)";
format-ethernet = " {ifname}: {ipaddr}/{cidr}";
format-linked = " {ifname} (No IP)";
format-disconnected = " Disconnected ";
format-alt = " {ifname}: {ipaddr}/{cidr}";
};
clock = {
format = " {:%A, %F %T %Z}";
interval = 1;
};
};
}];
};
}; };
}; };
};
} }

View file

@ -1,5 +1,4 @@
{ pkgs, hostsDir ? ../config/hosts, { pkgs, hostsDir ? ../config/hosts, privateHostsDir ? ../config/private/hosts
privateHostsDir ? ../config/private/hosts
, commonImports ? [ ../config/common ../modules ], pkgsPath ? ../pkgs }: , commonImports ? [ ../config/common ../modules ], pkgsPath ? ../pkgs }:
with pkgs.lib; with pkgs.lib;

View file

@ -1,10 +1,10 @@
{ ... }: { ... }:
let sources = import ../nix/sources.nix; in let sources = import ../nix/sources.nix;
{ in {
imports = [ imports = [
./deploy ./deploy
(sources.tf-nix + "/modules/nixos/secrets.nix") (sources.tf-nix + "/modules/nixos/secrets.nix")
(sources.tf-nix + "/modules/nixos/secrets-users.nix") (sources.tf-nix + "/modules/nixos/secrets-users.nix")
]; ];
} }

View file

@ -2,15 +2,16 @@
with lib; with lib;
let cfg = config.meta.deploy; let
secretsScript = concatMapStrings (file: '' cfg = config.meta.deploy;
ssh $NIX_SSHOPTS root@${cfg.ssh.host} "mkdir -p ${toString file.out.dir} secretsScript = concatMapStrings (file: ''
cat > ${file.path} ssh $NIX_SSHOPTS root@${cfg.ssh.host} "mkdir -p ${toString file.out.dir}
chmod ${file.mode} ${file.path} cat > ${file.path}
chown ${file.owner}:${file.group} ${file.path}" << 'EOF' chmod ${file.mode} ${file.path}
${file.text} chown ${file.owner}:${file.group} ${file.path}" << 'EOF'
EOF ${file.text}
'') (attrValues config.secrets.files); EOF
'') (attrValues config.secrets.files);
in { in {
options = { options = {
meta.deploy = { meta.deploy = {

View file

@ -13,7 +13,10 @@ let
arc = import sources.arc-nixexprs { pkgs = super; }; arc = import sources.arc-nixexprs { pkgs = super; };
unstable = import sources.nixpkgs-unstable { inherit (self) config; }; unstable = import sources.nixpkgs-unstable { inherit (self) config; };
nur = import sources.NUR { nurpkgs = self; pkgs = self; }; nur = import sources.NUR {
nurpkgs = self;
pkgs = self;
};
screenstub = unstable.callPackage ./screenstub { }; screenstub = unstable.callPackage ./screenstub { };
@ -26,4 +29,4 @@ let
colorhelpers = import ../lib/colorhelpers.nix { inherit (self) lib; }; colorhelpers = import ../lib/colorhelpers.nix { inherit (self) lib; };
}; };
in pkgs.extend(overlay) in pkgs.extend (overlay)

View file

@ -1,29 +1,20 @@
{ { fetchFromGitHub, rustPlatform, pkg-config, lib, libxcb, udev, python3 }:
fetchFromGitHub rustPlatform.buildRustPackage rec {
, rustPlatform pname = "screenstub";
, pkg-config version = "2021-01-08";
, lib src = fetchFromGitHub {
, libxcb owner = "arcnmx";
, udev repo = pname;
, python3
}: rustPlatform.buildRustPackage rec {
pname = "screenstub";
version = "2021-01-08";
src = fetchFromGitHub {
owner = "arcnmx";
repo = pname;
rev = "e379279fedaaa1d06b1d89da4cf54752814a456f"; rev = "e379279fedaaa1d06b1d89da4cf54752814a456f";
sha256 = "0qv15rpazrpdspfcvyizbjdrrm2nrqz0790pa8zvp5bjsw4mvwvx"; sha256 = "0qv15rpazrpdspfcvyizbjdrrm2nrqz0790pa8zvp5bjsw4mvwvx";
}; };
patches = [ patches = [ ./main.patch ];
./main.patch
];
nativeBuildInputs = [ pkg-config python3 ]; nativeBuildInputs = [ pkg-config python3 ];
buildInputs = [ libxcb udev ]; buildInputs = [ libxcb udev ];
cargoSha256 = "0yijg5v731n49ygav2cfiawnw84hxd6kvik5hmz544vikxj96bj4"; cargoSha256 = "0yijg5v731n49ygav2cfiawnw84hxd6kvik5hmz544vikxj96bj4";
doCheck = false; doCheck = false;
} }

View file

@ -3,8 +3,7 @@
let let
version = "0.1.1"; version = "0.1.1";
rev = "225a49a40941e350899e456366265cf82b87ad25"; rev = "225a49a40941e350899e456366265cf82b87ad25";
sha256 = sha256 = "071zd8slra0iqsvzqpp6lcvg5dql5hkn161gh9aq34wix7pwzbn5";
"071zd8slra0iqsvzqpp6lcvg5dql5hkn161gh9aq34wix7pwzbn5";
in stdenv.mkDerivation { in stdenv.mkDerivation {
name = "vendor-reset-${version}-${kernel.version}"; name = "vendor-reset-${version}-${kernel.version}";