Apply nixfmt
This commit is contained in:
@@ -1,4 +1,10 @@
|
||||
{ inputs, pkgs, lib, config, ... }:
|
||||
{
|
||||
inputs,
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
flakePath = config.config-manager.flakePath;
|
||||
nixosConfiguration = config.config-manager.nixosConfiguration;
|
||||
@@ -12,49 +18,49 @@ let
|
||||
throw "'config-manager.nixosConfiguration' cannot be empty"
|
||||
else
|
||||
pkgs.writeShellScriptBin "cm" ''
|
||||
help() {
|
||||
cat << EOF
|
||||
Usage:
|
||||
cm [flag]
|
||||
help() {
|
||||
cat << EOF
|
||||
Usage:
|
||||
cm [flag]
|
||||
|
||||
Flags:
|
||||
--update updates the flake
|
||||
--switch rebuilds + switches configuration (using 'nh')
|
||||
--build-test-vm, --btvm build test-vm
|
||||
--run-test-vm, --rtvm run test-vm
|
||||
EOF
|
||||
}
|
||||
Flags:
|
||||
--update updates the flake
|
||||
--switch rebuilds + switches configuration (using 'nh')
|
||||
--build-test-vm, --btvm build test-vm
|
||||
--run-test-vm, --rtvm run test-vm
|
||||
EOF
|
||||
}
|
||||
|
||||
update() {
|
||||
echo -e "\033[0;31mUPDATING FLAKE\033[0m"
|
||||
nix flake update ${flakePath}
|
||||
}
|
||||
update() {
|
||||
echo -e "\033[0;31mUPDATING FLAKE\033[0m"
|
||||
nix flake update ${flakePath}
|
||||
}
|
||||
|
||||
switch() {
|
||||
nixos-rebuild dry-build --flake ${flakePath}#${nixosConfiguration}
|
||||
${nh}/bin/nh os switch --hostname ${nixosConfiguration} ${flakePath}
|
||||
}
|
||||
switch() {
|
||||
nixos-rebuild dry-build --flake ${flakePath}#${nixosConfiguration}
|
||||
${nh}/bin/nh os switch --hostname ${nixosConfiguration} ${flakePath}
|
||||
}
|
||||
|
||||
build-test-vm() {
|
||||
nixos-rebuild build-vm --flake ${flakePath}#test-vm
|
||||
}
|
||||
build-test-vm() {
|
||||
nixos-rebuild build-vm --flake ${flakePath}#test-vm
|
||||
}
|
||||
|
||||
run-test-vm() {
|
||||
${flakePath}/result/bin/run-test-vm-vm
|
||||
}
|
||||
run-test-vm() {
|
||||
${flakePath}/result/bin/run-test-vm-vm
|
||||
}
|
||||
|
||||
case $1 in
|
||||
--update)
|
||||
update ;;
|
||||
--switch)
|
||||
switch ;;
|
||||
--build-test-vm | --btvm)
|
||||
build-test-vm ;;
|
||||
--run-test-vm | --rtvm)
|
||||
run-test-vm ;;
|
||||
--help | *)
|
||||
help ;;
|
||||
esac
|
||||
case $1 in
|
||||
--update)
|
||||
update ;;
|
||||
--switch)
|
||||
switch ;;
|
||||
--build-test-vm | --btvm)
|
||||
build-test-vm ;;
|
||||
--run-test-vm | --rtvm)
|
||||
run-test-vm ;;
|
||||
--help | *)
|
||||
help ;;
|
||||
esac
|
||||
'';
|
||||
in
|
||||
{
|
||||
|
||||
97
flake.nix
97
flake.nix
@@ -11,7 +11,7 @@
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
nix-gc-env.url= "github:Julow/nix-gc-env";
|
||||
nix-gc-env.url = "github:Julow/nix-gc-env";
|
||||
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager";
|
||||
@@ -39,51 +39,62 @@
|
||||
};
|
||||
};
|
||||
|
||||
outputs = { ... }@inputs: {
|
||||
nixosConfigurations = {
|
||||
pinwheel = inputs.nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
specialArgs = { inherit inputs; };
|
||||
modules = [
|
||||
./hosts/pinwheel/configuration.nix
|
||||
inputs.nixos-hardware.nixosModules.lenovo-thinkpad-x1-10th-gen
|
||||
./hosts/pinwheel/home.nix
|
||||
];
|
||||
};
|
||||
outputs =
|
||||
{ ... }@inputs:
|
||||
{
|
||||
nixosConfigurations = {
|
||||
pinwheel = inputs.nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
specialArgs = {
|
||||
inherit inputs;
|
||||
};
|
||||
modules = [
|
||||
./hosts/pinwheel/configuration.nix
|
||||
inputs.nixos-hardware.nixosModules.lenovo-thinkpad-x1-10th-gen
|
||||
./hosts/pinwheel/home.nix
|
||||
];
|
||||
};
|
||||
|
||||
backwards = inputs.nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
specialArgs = { inherit inputs; };
|
||||
modules = [
|
||||
./hosts/backwards/configuration.nix
|
||||
./hosts/backwards/home.nix
|
||||
];
|
||||
};
|
||||
backwards = inputs.nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
specialArgs = {
|
||||
inherit inputs;
|
||||
};
|
||||
modules = [
|
||||
./hosts/backwards/configuration.nix
|
||||
./hosts/backwards/home.nix
|
||||
];
|
||||
};
|
||||
|
||||
tadpole = inputs.nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
specialArgs = { inherit inputs; };
|
||||
modules = [
|
||||
./hosts/tadpole/configuration.nix
|
||||
./hosts/tadpole/home.nix
|
||||
];
|
||||
};
|
||||
tadpole = inputs.nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
specialArgs = {
|
||||
inherit inputs;
|
||||
};
|
||||
modules = [
|
||||
./hosts/tadpole/configuration.nix
|
||||
./hosts/tadpole/home.nix
|
||||
];
|
||||
};
|
||||
|
||||
test-vm = inputs.nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
specialArgs = { inherit inputs; };
|
||||
modules = [ ./hosts/test-vm/configuration.nix ];
|
||||
};
|
||||
};
|
||||
|
||||
devShells = let
|
||||
system = "x86_64-linux";
|
||||
pkgs = inputs.nixpkgs.legacyPackages.${system};
|
||||
in
|
||||
{
|
||||
${system}.default = pkgs.mkShell {
|
||||
packages = [ pkgs.nixfmt-rfc-style ];
|
||||
test-vm = inputs.nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
specialArgs = {
|
||||
inherit inputs;
|
||||
};
|
||||
modules = [ ./hosts/test-vm/configuration.nix ];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
devShells =
|
||||
let
|
||||
system = "x86_64-linux";
|
||||
pkgs = inputs.nixpkgs.legacyPackages.${system};
|
||||
in
|
||||
{
|
||||
${system}.default = pkgs.mkShell {
|
||||
packages = [ pkgs.nixfmt-rfc-style ];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,14 +1,16 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
imports =
|
||||
[
|
||||
../../config-manager/default.nix
|
||||
../../shared-modules/syncthing.nix
|
||||
./hardware-configuration.nix
|
||||
./modules
|
||||
];
|
||||
imports = [
|
||||
../../config-manager/default.nix
|
||||
../../shared-modules/syncthing.nix
|
||||
./hardware-configuration.nix
|
||||
./modules
|
||||
];
|
||||
|
||||
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||||
nix.settings.experimental-features = [
|
||||
"nix-command"
|
||||
"flakes"
|
||||
];
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
console.keyMap = "sv-latin1";
|
||||
@@ -25,8 +27,11 @@
|
||||
users.users.alex = {
|
||||
isNormalUser = true;
|
||||
description = "alex";
|
||||
extraGroups = [ "networkmanager" "wheel" ];
|
||||
packages = [];
|
||||
extraGroups = [
|
||||
"networkmanager"
|
||||
"wheel"
|
||||
];
|
||||
packages = [ ];
|
||||
};
|
||||
|
||||
environment.variables.EDITOR = "vim";
|
||||
|
||||
@@ -1,32 +1,47 @@
|
||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||
# and may be overwritten by future invocations. Please make changes
|
||||
# to /etc/nixos/configuration.nix instead.
|
||||
{ config, lib, pkgs, modulesPath, ... }:
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
modulesPath,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
imports =
|
||||
[ (modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
imports = [
|
||||
(modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ];
|
||||
boot.initrd.availableKernelModules = [
|
||||
"xhci_pci"
|
||||
"ahci"
|
||||
"usbhid"
|
||||
"usb_storage"
|
||||
"sd_mod"
|
||||
];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ "kvm-intel" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems."/" =
|
||||
{ device = "/dev/disk/by-uuid/bad3d82a-7bb8-490f-bd01-a4b16fe6f33d";
|
||||
fsType = "ext4";
|
||||
};
|
||||
fileSystems."/" = {
|
||||
device = "/dev/disk/by-uuid/bad3d82a-7bb8-490f-bd01-a4b16fe6f33d";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
fileSystems."/boot" =
|
||||
{ device = "/dev/disk/by-uuid/D049-60DD";
|
||||
fsType = "vfat";
|
||||
options = [ "fmask=0077" "dmask=0077" ];
|
||||
};
|
||||
|
||||
swapDevices =
|
||||
[ { device = "/dev/disk/by-uuid/ff4de0e5-2c60-4ee7-a55c-450727efb921"; }
|
||||
fileSystems."/boot" = {
|
||||
device = "/dev/disk/by-uuid/D049-60DD";
|
||||
fsType = "vfat";
|
||||
options = [
|
||||
"fmask=0077"
|
||||
"dmask=0077"
|
||||
];
|
||||
};
|
||||
|
||||
swapDevices = [
|
||||
{ device = "/dev/disk/by-uuid/ff4de0e5-2c60-4ee7-a55c-450727efb921"; }
|
||||
];
|
||||
|
||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
{ inputs, lib, config, ... }:
|
||||
{
|
||||
inputs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
configurationLimit = config.mod.gc.configurationLimit;
|
||||
in
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
{ pkgs, lib, config, ... }:
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
enabled = config.mod.git.enable;
|
||||
in
|
||||
|
||||
@@ -12,10 +12,12 @@
|
||||
wlp1s0 = {
|
||||
useDHCP = false;
|
||||
ipv4 = {
|
||||
addresses = [{
|
||||
address = "192.168.50.202";
|
||||
prefixLength = 24;
|
||||
}];
|
||||
addresses = [
|
||||
{
|
||||
address = "192.168.50.202";
|
||||
prefixLength = 24;
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -45,7 +45,7 @@ in
|
||||
environmentFile = config.age.secrets.restic-cloud-sync-key.path;
|
||||
repositoryFile = config.age.secrets.restic-cloud-sync-repository.path;
|
||||
|
||||
paths = ["/home/alex/sync"];
|
||||
paths = [ "/home/alex/sync" ];
|
||||
|
||||
timerConfig = {
|
||||
OnCalendar = "*-*-* 0/12:00:00"; # Every 12th hour, i.e. twice a day
|
||||
@@ -70,4 +70,3 @@ in
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
{ pkgs, lib, config, ... }:
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
enabled = config.mod.ssh.enable;
|
||||
|
||||
@@ -41,10 +46,12 @@ in
|
||||
enable = true;
|
||||
ports = [ 1122 ];
|
||||
|
||||
hostKeys = [{
|
||||
path = "${rootSSHKeyPath}/root.backwards";
|
||||
type = "ed25519";
|
||||
}];
|
||||
hostKeys = [
|
||||
{
|
||||
path = "${rootSSHKeyPath}/root.backwards";
|
||||
type = "ed25519";
|
||||
}
|
||||
];
|
||||
|
||||
settings = {
|
||||
PasswordAuthentication = false;
|
||||
|
||||
@@ -39,7 +39,10 @@ in
|
||||
folders = {
|
||||
org = {
|
||||
path = "/home/alex/sync/org";
|
||||
devices = [ "phone" "pinwheel" ];
|
||||
devices = [
|
||||
"phone"
|
||||
"pinwheel"
|
||||
];
|
||||
versioning = {
|
||||
type = "staggered";
|
||||
params = {
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
{ pkgs, lib, config, ... }:
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
enabled = config.mod.transmission.enable;
|
||||
in
|
||||
|
||||
@@ -1,15 +1,17 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
imports =
|
||||
[
|
||||
../../config-manager/default.nix
|
||||
../../nix-wrapper/default.nix
|
||||
../../shared-modules/syncthing.nix
|
||||
./hardware-configuration.nix
|
||||
./modules
|
||||
];
|
||||
imports = [
|
||||
../../config-manager/default.nix
|
||||
../../nix-wrapper/default.nix
|
||||
../../shared-modules/syncthing.nix
|
||||
./hardware-configuration.nix
|
||||
./modules
|
||||
];
|
||||
|
||||
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||||
nix.settings.experimental-features = [
|
||||
"nix-command"
|
||||
"flakes"
|
||||
];
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
users.users.alex = {
|
||||
|
||||
@@ -1,29 +1,40 @@
|
||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||
# and may be overwritten by future invocations. Please make changes
|
||||
# to /etc/nixos/configuration.nix instead.
|
||||
{ config, lib, modulesPath, ... }:
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
modulesPath,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
imports =
|
||||
[ (modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
imports = [
|
||||
(modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = [ "xhci_pci" "thunderbolt" "nvme" "usb_storage" "sd_mod" ];
|
||||
boot.initrd.availableKernelModules = [
|
||||
"xhci_pci"
|
||||
"thunderbolt"
|
||||
"nvme"
|
||||
"usb_storage"
|
||||
"sd_mod"
|
||||
];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems."/" =
|
||||
{ device = "/dev/disk/by-uuid/9c3ef2ad-0244-4310-9984-2e548ced3e22";
|
||||
fsType = "ext4";
|
||||
};
|
||||
fileSystems."/" = {
|
||||
device = "/dev/disk/by-uuid/9c3ef2ad-0244-4310-9984-2e548ced3e22";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
boot.initrd.luks.devices."luks-f569d036-e500-4839-bc78-ce4b032840d8".device = "/dev/disk/by-uuid/f569d036-e500-4839-bc78-ce4b032840d8";
|
||||
|
||||
fileSystems."/boot" =
|
||||
{ device = "/dev/disk/by-uuid/FCAE-6849";
|
||||
fsType = "vfat";
|
||||
};
|
||||
fileSystems."/boot" = {
|
||||
device = "/dev/disk/by-uuid/FCAE-6849";
|
||||
fsType = "vfat";
|
||||
};
|
||||
|
||||
swapDevices = [ ];
|
||||
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
{ pkgs, lib, config, ... }:
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
hyprlandEnabled = config.mod.hyprland.enable;
|
||||
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
{ pkgs, lib, config, ... }:
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
enabled = config.mod.bluetooth.enable;
|
||||
in
|
||||
@@ -37,77 +42,87 @@ in
|
||||
threshold = "30";
|
||||
};
|
||||
in
|
||||
{
|
||||
timers =
|
||||
let
|
||||
mkTimer = device: {
|
||||
name = "notify-low-battery-for-${device.name}";
|
||||
{
|
||||
timers =
|
||||
let
|
||||
mkTimer = device: {
|
||||
name = "notify-low-battery-for-${device.name}";
|
||||
|
||||
value = {
|
||||
unitConfig = {
|
||||
Description = "notify-battery-low timer for '${device.name}'";
|
||||
};
|
||||
value = {
|
||||
unitConfig = {
|
||||
Description = "notify-battery-low timer for '${device.name}'";
|
||||
};
|
||||
|
||||
wantedBy = [ "timers.target" ];
|
||||
wantedBy = [ "timers.target" ];
|
||||
|
||||
timerConfig = {
|
||||
Unit = "notify-low-battery-for-${device.name}.service";
|
||||
OnCalendar = "*-*-* *:00:00"; # Every hour
|
||||
Persistent = true;
|
||||
};
|
||||
timerConfig = {
|
||||
Unit = "notify-low-battery-for-${device.name}.service";
|
||||
OnCalendar = "*-*-* *:00:00"; # Every hour
|
||||
Persistent = true;
|
||||
};
|
||||
};
|
||||
in
|
||||
builtins.listToAttrs (builtins.map mkTimer [ trackpad headphones ]);
|
||||
};
|
||||
in
|
||||
builtins.listToAttrs (
|
||||
builtins.map mkTimer [
|
||||
trackpad
|
||||
headphones
|
||||
]
|
||||
);
|
||||
|
||||
services =
|
||||
let
|
||||
mkService = device: {
|
||||
name = "notify-low-battery-for-${device.name}";
|
||||
services =
|
||||
let
|
||||
mkService = device: {
|
||||
name = "notify-low-battery-for-${device.name}";
|
||||
|
||||
value = {
|
||||
unitConfig = {
|
||||
Description = "check battery level of '${device.name}'";
|
||||
};
|
||||
value = {
|
||||
unitConfig = {
|
||||
Description = "check battery level of '${device.name}'";
|
||||
};
|
||||
|
||||
wantedBy = [ "default.target" ];
|
||||
serviceConfig = {
|
||||
Type = "exec";
|
||||
};
|
||||
wantedBy = [ "default.target" ];
|
||||
serviceConfig = {
|
||||
Type = "exec";
|
||||
};
|
||||
|
||||
path = [
|
||||
pkgs.upower
|
||||
pkgs.gawk
|
||||
pkgs.bc
|
||||
pkgs.libnotify
|
||||
];
|
||||
path = [
|
||||
pkgs.upower
|
||||
pkgs.gawk
|
||||
pkgs.bc
|
||||
pkgs.libnotify
|
||||
];
|
||||
|
||||
script = ''
|
||||
CONNECTED=$(upower --show-info /org/freedesktop/UPower/devices/${device.id} | grep native-path | awk '{print $2}')
|
||||
[ "$CONNECTED" == "(null)" ] && exit 0
|
||||
script = ''
|
||||
CONNECTED=$(upower --show-info /org/freedesktop/UPower/devices/${device.id} | grep native-path | awk '{print $2}')
|
||||
[ "$CONNECTED" == "(null)" ] && exit 0
|
||||
|
||||
CHECKING="/tmp/checking-dismiss-low-battery-${device.id}"
|
||||
[ ! -f "$CHECKING" ] && touch $CHECKING || exit 0
|
||||
CHECKING="/tmp/checking-dismiss-low-battery-${device.id}"
|
||||
[ ! -f "$CHECKING" ] && touch $CHECKING || exit 0
|
||||
|
||||
DISMISSED="/tmp/dismiss-low-battery-${device.id}"
|
||||
PERCENT=$(upower --show-info /org/freedesktop/UPower/devices/${device.id} | grep percentage | grep -o '[0-9]*')
|
||||
if (( $(echo "$PERCENT < ${device.threshold}" | bc) )); then
|
||||
echo "'${device.name}' is under threshold. battery = $PERCENT% - threshold = ${device.threshold}%"
|
||||
if [ ! -f "$DISMISSED" ]; then
|
||||
DISMISS=$(notify-send --expire-time 0 "Low battery" "${device.name} has $PERCENT% battery" --action=dismiss=Dismiss)
|
||||
[ "$DISMISS" == "dismiss" ] && touch $DISMISSED && echo "'${device.name}' dismissed"
|
||||
fi
|
||||
else
|
||||
echo "'${device.name}' is over threshold. battery = $PERCENT% - threshold = ${device.threshold}%"
|
||||
[ -f "$DISMISSED" ] && rm $DISMISSED && echo "'${device.name}' undismissed"
|
||||
DISMISSED="/tmp/dismiss-low-battery-${device.id}"
|
||||
PERCENT=$(upower --show-info /org/freedesktop/UPower/devices/${device.id} | grep percentage | grep -o '[0-9]*')
|
||||
if (( $(echo "$PERCENT < ${device.threshold}" | bc) )); then
|
||||
echo "'${device.name}' is under threshold. battery = $PERCENT% - threshold = ${device.threshold}%"
|
||||
if [ ! -f "$DISMISSED" ]; then
|
||||
DISMISS=$(notify-send --expire-time 0 "Low battery" "${device.name} has $PERCENT% battery" --action=dismiss=Dismiss)
|
||||
[ "$DISMISS" == "dismiss" ] && touch $DISMISSED && echo "'${device.name}' dismissed"
|
||||
fi
|
||||
else
|
||||
echo "'${device.name}' is over threshold. battery = $PERCENT% - threshold = ${device.threshold}%"
|
||||
[ -f "$DISMISSED" ] && rm $DISMISSED && echo "'${device.name}' undismissed"
|
||||
fi
|
||||
|
||||
rm $CHECKING
|
||||
'';
|
||||
};
|
||||
rm $CHECKING
|
||||
'';
|
||||
};
|
||||
in
|
||||
builtins.listToAttrs (builtins.map mkService [ trackpad headphones ]);
|
||||
};
|
||||
};
|
||||
in
|
||||
builtins.listToAttrs (
|
||||
builtins.map mkService [
|
||||
trackpad
|
||||
headphones
|
||||
]
|
||||
);
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,4 +1,10 @@
|
||||
{ inputs, pkgs, lib, config, ... }:
|
||||
{
|
||||
inputs,
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
configurationLimit = config.mod.gc.configurationLimit;
|
||||
in
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
{ pkgs, lib, config, ... }:
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
enabled = config.mod.c.enable;
|
||||
in
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home-manager.users.alex= {
|
||||
home-manager.users.alex = {
|
||||
home.packages = [ pkgs.ungoogled-chromium ];
|
||||
};
|
||||
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
{ pkgs, lib, config, ... }:
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
dockerEnabled = config.mod.containers.docker.enable;
|
||||
podmanEnabled = config.mod.containers.podman.enable;
|
||||
|
||||
@@ -9,7 +9,6 @@ in
|
||||
nix-direnv.enable = true;
|
||||
};
|
||||
|
||||
|
||||
programs.direnv.enableZshIntegration = lib.mkIf zshEnabled true;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{ emacs, runCommand, ... }:
|
||||
runCommand "default.el" {} ''
|
||||
{ emacs, runCommand, ... }:
|
||||
runCommand "default.el" { } ''
|
||||
cp ${./config.org} $TMPDIR/config.org
|
||||
cd $TMPDIR
|
||||
${emacs}/bin/emacs --batch -Q \
|
||||
@@ -7,4 +7,4 @@ runCommand "default.el" {} ''
|
||||
-f org-babel-tangle
|
||||
|
||||
mv config.el $out
|
||||
''
|
||||
''
|
||||
|
||||
@@ -3,7 +3,7 @@ let
|
||||
emacs = pkgs.emacsWithPackagesFromUsePackage {
|
||||
package = pkgs.emacs-unstable;
|
||||
config = ./config.org;
|
||||
defaultInitFile = pkgs.callPackage ./config.nix {};
|
||||
defaultInitFile = pkgs.callPackage ./config.nix { };
|
||||
|
||||
alwaysEnsure = true;
|
||||
alwaysTangle = true;
|
||||
@@ -40,9 +40,9 @@ in
|
||||
|
||||
home-manager.users.alex = {
|
||||
home.sessionVariables = {
|
||||
EDITOR = "${e}/bin/e $@";
|
||||
VISUAL = "${e}/bin/e $@";
|
||||
TIG_EDITOR = "${e}/bin/e $@";
|
||||
EDITOR = "${e}/bin/e $@";
|
||||
VISUAL = "${e}/bin/e $@";
|
||||
TIG_EDITOR = "${e}/bin/e $@";
|
||||
};
|
||||
|
||||
home.packages = [
|
||||
|
||||
@@ -59,7 +59,7 @@ in
|
||||
name = "alex";
|
||||
isDefault = true;
|
||||
|
||||
settings = sharedSettings // {};
|
||||
settings = sharedSettings // { };
|
||||
};
|
||||
|
||||
work = {
|
||||
@@ -109,12 +109,14 @@ in
|
||||
configFile."mimeapps.list".force = true;
|
||||
};
|
||||
|
||||
|
||||
home.packages = [ ff ff-alex ];
|
||||
home.packages = [
|
||||
ff
|
||||
ff-alex
|
||||
];
|
||||
};
|
||||
|
||||
environment.variables = {
|
||||
MOZ_ENABLE_WAYLAND=1;
|
||||
MOZ_ENABLE_WAYLAND = 1;
|
||||
BROWSER = "${ff-alex}/bin/ff-alex $@";
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
{ pkgs, lib, config, ... }:
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
enabled = config.mod.foot.enable;
|
||||
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
{ pkgs, lib, config, ... }:
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
enabled = config.mod.git.enable;
|
||||
in
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
{ pkgs, lib, config, ... }:
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
enabled = config.mod.go.enable;
|
||||
in
|
||||
@@ -10,19 +15,19 @@ in
|
||||
};
|
||||
|
||||
config = lib.mkIf enabled {
|
||||
nixpkgs.overlays = let
|
||||
buildGo122 = pkgs: pkg:
|
||||
pkg.override { buildGoModule = pkgs.buildGo122Module; };
|
||||
in
|
||||
[
|
||||
(final: prev: {
|
||||
go = prev.go_1_22;
|
||||
gopls = buildGo122 prev prev.gopls;
|
||||
go-tools = buildGo122 prev prev.go-tools;
|
||||
govulncheck = buildGo122 prev prev.govulncheck;
|
||||
gotestsum = buildGo122 prev prev.gotestsum;
|
||||
})
|
||||
];
|
||||
nixpkgs.overlays =
|
||||
let
|
||||
buildGo122 = pkgs: pkg: pkg.override { buildGoModule = pkgs.buildGo122Module; };
|
||||
in
|
||||
[
|
||||
(final: prev: {
|
||||
go = prev.go_1_22;
|
||||
gopls = buildGo122 prev prev.gopls;
|
||||
go-tools = buildGo122 prev prev.go-tools;
|
||||
govulncheck = buildGo122 prev prev.govulncheck;
|
||||
gotestsum = buildGo122 prev prev.gotestsum;
|
||||
})
|
||||
];
|
||||
|
||||
home-manager.users.alex = {
|
||||
programs.go = {
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
{ pkgs, lib, config, ... }:
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
enabled = config.mod.greetd.enable;
|
||||
in
|
||||
@@ -13,16 +18,17 @@ in
|
||||
services.greetd = {
|
||||
enable = true;
|
||||
|
||||
settings = let
|
||||
session = {
|
||||
user = "alex";
|
||||
command = "${pkgs.hyprland}/bin/Hyprland";
|
||||
};
|
||||
in
|
||||
settings =
|
||||
let
|
||||
session = {
|
||||
user = "alex";
|
||||
command = "${pkgs.hyprland}/bin/Hyprland";
|
||||
};
|
||||
in
|
||||
{
|
||||
initial_session = session;
|
||||
default_session = session;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
{ pkgs, lib, config, ... }:
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
enabled = config.mod.hyprland.enable;
|
||||
in
|
||||
@@ -55,7 +60,7 @@ in
|
||||
# 2 - Cursor focus will be detached from keyboard focus. Clicking on a window will move keyboard focus to that window.
|
||||
follow_mouse = 2;
|
||||
|
||||
sensitivity = 0.30;
|
||||
sensitivity = 0.3;
|
||||
touchpad = {
|
||||
natural_scroll = false;
|
||||
tap-and-drag = false;
|
||||
@@ -70,7 +75,7 @@ in
|
||||
general = {
|
||||
layout = "dwindle";
|
||||
|
||||
gaps_in = 0; # gaps between windows
|
||||
gaps_in = 0; # gaps between windows
|
||||
gaps_out = 0; # gaps between windows and monitor edges
|
||||
|
||||
"col.active_border" = "rgba(${config.lib.colors.foreground}ff)";
|
||||
@@ -82,54 +87,59 @@ in
|
||||
no_gaps_when_only = 1;
|
||||
};
|
||||
|
||||
bind = let
|
||||
ws = x:
|
||||
let n = if (x + 1) < 10
|
||||
then (x + 1)
|
||||
else 0;
|
||||
in
|
||||
bind =
|
||||
let
|
||||
ws =
|
||||
x:
|
||||
let
|
||||
n = if (x + 1) < 10 then (x + 1) else 0;
|
||||
in
|
||||
builtins.toString n;
|
||||
|
||||
select = builtins.genList (x: "$mod, ${ws x}, workspace, ${builtins.toString (x + 1)}") 10;
|
||||
move = builtins.genList (x: "$mod SHIFT, ${ws x}, movetoworkspacesilent, ${builtins.toString (x + 1)}") 10;
|
||||
select = builtins.genList (x: "$mod, ${ws x}, workspace, ${builtins.toString (x + 1)}") 10;
|
||||
move = builtins.genList (
|
||||
x: "$mod SHIFT, ${ws x}, movetoworkspacesilent, ${builtins.toString (x + 1)}"
|
||||
) 10;
|
||||
|
||||
magnifier = pkgs.writeShellScript "magnifier" ''
|
||||
CURRENT=$(${pkgs.hyprland}/bin/hyprctl getoption cursor:zoom_factor -j | ${pkgs.jq}/bin/jq .float)
|
||||
DELTA=0.1
|
||||
magnifier = pkgs.writeShellScript "magnifier" ''
|
||||
CURRENT=$(${pkgs.hyprland}/bin/hyprctl getoption cursor:zoom_factor -j | ${pkgs.jq}/bin/jq .float)
|
||||
DELTA=0.1
|
||||
|
||||
UPDATED=1
|
||||
case $1 in
|
||||
--increase)
|
||||
UPDATED=$(echo $CURRENT + $DELTA | ${pkgs.bc}/bin/bc) ;;
|
||||
--decrease)
|
||||
UPDATED=$(echo $CURRENT - $DELTA | ${pkgs.bc}/bin/bc) ;;
|
||||
--reset)
|
||||
UPDATED=1
|
||||
esac
|
||||
UPDATED=1
|
||||
case $1 in
|
||||
--increase)
|
||||
UPDATED=$(echo $CURRENT + $DELTA | ${pkgs.bc}/bin/bc) ;;
|
||||
--decrease)
|
||||
UPDATED=$(echo $CURRENT - $DELTA | ${pkgs.bc}/bin/bc) ;;
|
||||
--reset)
|
||||
UPDATED=1
|
||||
esac
|
||||
|
||||
if (( $(echo "$UPDATED < 1" | bc) )); then UPDATED=1; fi
|
||||
${pkgs.hyprland}/bin/hyprctl keyword cursor:zoom_factor $UPDATED
|
||||
'';
|
||||
in
|
||||
select ++ move ++ [
|
||||
"$mod, ESCAPE, killactive"
|
||||
if (( $(echo "$UPDATED < 1" | bc) )); then UPDATED=1; fi
|
||||
${pkgs.hyprland}/bin/hyprctl keyword cursor:zoom_factor $UPDATED
|
||||
'';
|
||||
in
|
||||
select
|
||||
++ move
|
||||
++ [
|
||||
"$mod, ESCAPE, killactive"
|
||||
|
||||
"$mod, f, fullscreen, 1"
|
||||
"$mod SHIFT, f, togglefloating, active"
|
||||
"$mod, f, fullscreen, 1"
|
||||
"$mod SHIFT, f, togglefloating, active"
|
||||
|
||||
"$mod, h, movefocus, l"
|
||||
"$mod, j, movefocus, d"
|
||||
"$mod, k, movefocus, u"
|
||||
"$mod, l, movefocus, r"
|
||||
"$mod, h, movefocus, l"
|
||||
"$mod, j, movefocus, d"
|
||||
"$mod, k, movefocus, u"
|
||||
"$mod, l, movefocus, r"
|
||||
|
||||
"$mod CONTROL, 1, exec, ${magnifier} --increase"
|
||||
"$mod CONTROL, 2, exec, ${magnifier} --decrease"
|
||||
"$mod CONTROL, 3, exec, ${magnifier} --reset"
|
||||
];
|
||||
"$mod CONTROL, 1, exec, ${magnifier} --increase"
|
||||
"$mod CONTROL, 2, exec, ${magnifier} --decrease"
|
||||
"$mod CONTROL, 3, exec, ${magnifier} --reset"
|
||||
];
|
||||
|
||||
bindm = [
|
||||
# mouse movements
|
||||
"$mod, mouse:272, movewindow" # left click
|
||||
"$mod, mouse:272, movewindow" # left click
|
||||
"$mod, mouse:273, resizewindow" # right click
|
||||
];
|
||||
|
||||
@@ -183,62 +193,66 @@ in
|
||||
pkgs.libnotify
|
||||
];
|
||||
|
||||
script = let
|
||||
moveWSToMonitor = monitor: first: last:
|
||||
if last < first
|
||||
then throw "'first' has to be less than or equal to 'last'"
|
||||
else
|
||||
builtins.genList (n: "dispatch moveworkspacetomonitor ${builtins.toString (first + n)} ${monitor}") (last - first + 1);
|
||||
script =
|
||||
let
|
||||
moveWSToMonitor =
|
||||
monitor: first: last:
|
||||
if last < first then
|
||||
throw "'first' has to be less than or equal to 'last'"
|
||||
else
|
||||
builtins.genList (
|
||||
n: "dispatch moveworkspacetomonitor ${builtins.toString (first + n)} ${monitor}"
|
||||
) (last - first + 1);
|
||||
|
||||
external = moveWSToMonitor "HDMI-A-1" 1 5;
|
||||
internal = moveWSToMonitor "eDPI-1" 6 10;
|
||||
onlyInternal = moveWSToMonitor "eDPI-1" 1 10;
|
||||
in
|
||||
''
|
||||
update() {
|
||||
HDMI_STATUS=$(cat /sys/class/drm/card1-HDMI-A-1/status)
|
||||
external = moveWSToMonitor "HDMI-A-1" 1 5;
|
||||
internal = moveWSToMonitor "eDPI-1" 6 10;
|
||||
onlyInternal = moveWSToMonitor "eDPI-1" 1 10;
|
||||
in
|
||||
''
|
||||
update() {
|
||||
HDMI_STATUS=$(cat /sys/class/drm/card1-HDMI-A-1/status)
|
||||
|
||||
INTERNAL_WIDTH=1920
|
||||
INTERNAL_HEIGHT=1200
|
||||
INTERNAL_WIDTH=1920
|
||||
INTERNAL_HEIGHT=1200
|
||||
|
||||
if [ $HDMI_STATUS = "connected" ]; then
|
||||
notify-send "Using external and laptop monitor"
|
||||
if [ $HDMI_STATUS = "connected" ]; then
|
||||
notify-send "Using external and laptop monitor"
|
||||
|
||||
hyprctl keyword monitor HDMI-A-1,preferred,0x0,1
|
||||
hyprctl keyword monitor HDMI-A-1,preferred,0x0,1
|
||||
|
||||
HDMI=$(hyprctl monitors -j | jq '.[] | select(.name=="HDMI-A-1")')
|
||||
HDMI_WIDTH=$(echo $HDMI | jq .width)
|
||||
HDMI_HEIGHT=$(echo $HDMI | jq .height)
|
||||
HDMI=$(hyprctl monitors -j | jq '.[] | select(.name=="HDMI-A-1")')
|
||||
HDMI_WIDTH=$(echo $HDMI | jq .width)
|
||||
HDMI_HEIGHT=$(echo $HDMI | jq .height)
|
||||
|
||||
INTERNAL_POS_X=$(echo "($HDMI_WIDTH - $INTERNAL_WIDTH) / 2" | bc)
|
||||
if (( $(echo "$INTERNAL_POS_X < 0" | bc) )); then INTERNAL_POS_X=0; fi
|
||||
INTERNAL_POS_Y=$HDMI_HEIGHT
|
||||
INTERNAL_POS_X=$(echo "($HDMI_WIDTH - $INTERNAL_WIDTH) / 2" | bc)
|
||||
if (( $(echo "$INTERNAL_POS_X < 0" | bc) )); then INTERNAL_POS_X=0; fi
|
||||
INTERNAL_POS_Y=$HDMI_HEIGHT
|
||||
|
||||
hyprctl keyword monitor eDP-1,$INTERNAL_WIDTH"x"$INTERNAL_HEIGHT,$INTERNAL_POS_X"x"$INTERNAL_POS_Y,1
|
||||
hyprctl --batch "${lib.strings.concatStringsSep ";" (external ++ internal)}"
|
||||
else
|
||||
notify-send "Using only laptop monitor"
|
||||
hyprctl keyword monitor eDP-1,$INTERNAL_WIDTH"x"$INTERNAL_HEIGHT,$INTERNAL_POS_X"x"$INTERNAL_POS_Y,1
|
||||
hyprctl --batch "${lib.strings.concatStringsSep ";" (external ++ internal)}"
|
||||
else
|
||||
notify-send "Using only laptop monitor"
|
||||
|
||||
hyprctl --batch "keyword monitor HDMI-A,disable; keyword monitor eDP-1,$INTERNAL_WIDTH"x"$INTERNAL_HEIGHT,0x0,1"
|
||||
hyprctl --batch "${lib.strings.concatStringsSep ";" onlyInternal}"
|
||||
fi
|
||||
}
|
||||
hyprctl --batch "keyword monitor HDMI-A,disable; keyword monitor eDP-1,$INTERNAL_WIDTH"x"$INTERNAL_HEIGHT,0x0,1"
|
||||
hyprctl --batch "${lib.strings.concatStringsSep ";" onlyInternal}"
|
||||
fi
|
||||
}
|
||||
|
||||
handle() {
|
||||
case $1 in
|
||||
monitoradded\>\>*|monitorremoved\>\>*)
|
||||
echo "handling event: \"$1\""
|
||||
update ;;
|
||||
esac
|
||||
}
|
||||
handle() {
|
||||
case $1 in
|
||||
monitoradded\>\>*|monitorremoved\>\>*)
|
||||
echo "handling event: \"$1\""
|
||||
update ;;
|
||||
esac
|
||||
}
|
||||
|
||||
echo "Starting service with instance \"$HYPRLAND_INSTANCE_SIGNATURE\""
|
||||
echo "Starting service with instance \"$HYPRLAND_INSTANCE_SIGNATURE\""
|
||||
|
||||
# Do initial configuration
|
||||
update
|
||||
# Do initial configuration
|
||||
update
|
||||
|
||||
socat -U - UNIX-CONNECT:$XDG_RUNTIME_DIR/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock | while read -r line; do handle "$line"; done
|
||||
'';
|
||||
socat -U - UNIX-CONNECT:$XDG_RUNTIME_DIR/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock | while read -r line; do handle "$line"; done
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{ pkgs, ...}:
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home-manager.users.alex = {
|
||||
home.packages = [ pkgs.nodePackages.typescript-language-server ];
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
{ pkgs, lib, config, ... }:
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
enabled = config.mod.keyboard.enable;
|
||||
in
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
{ pkgs, lib, config, ... }:
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
hyprlandEnabled = config.mod.hyprland.enable;
|
||||
in
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
{ pkgs, lib, config, ... }:
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
enabled = config.mod.mullvad.enable;
|
||||
in
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
{ pkgs, lib, config, ... }:
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
enabled = config.mod.openvpn.enable;
|
||||
in
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
{ pkgs, lib, config, ... }:
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
enabled = config.mod.physlock.enable;
|
||||
hyprlandEnabled = config.mod.hyprland.enable;
|
||||
@@ -31,11 +36,11 @@ in
|
||||
let
|
||||
pause-music = "${pkgs.playerctl}/bin/playerctl -p spotify pause";
|
||||
in
|
||||
[
|
||||
# will lock the screen with `physlock`, see `lockOn.suspend
|
||||
"$mod SHIFT, x, exec, ${pause-music}; systemctl suspend"
|
||||
"$mod, x, exec, ${pause-music}; ${config.security.wrapperDir}/physlock -d -s -m"
|
||||
];
|
||||
[
|
||||
# will lock the screen with `physlock`, see `lockOn.suspend
|
||||
"$mod SHIFT, x, exec, ${pause-music}; systemctl suspend"
|
||||
"$mod, x, exec, ${pause-music}; ${config.security.wrapperDir}/physlock -d -s -m"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
{ pkgs, lib, config, ... }:
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
enabled = config.mod.power.enable;
|
||||
lowbat = config.mod.lowbat;
|
||||
@@ -39,8 +44,8 @@ in
|
||||
enable = true;
|
||||
|
||||
settings = {
|
||||
START_CHARGE_THRESH_BAT0=75;
|
||||
STOP_CHARGE_THRESH_BAT0=80;
|
||||
START_CHARGE_THRESH_BAT0 = 75;
|
||||
STOP_CHARGE_THRESH_BAT0 = 80;
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -58,7 +63,7 @@ in
|
||||
Persistent = true;
|
||||
};
|
||||
|
||||
wantedBy = ["timers.target"];
|
||||
wantedBy = [ "timers.target" ];
|
||||
};
|
||||
};
|
||||
|
||||
@@ -78,28 +83,30 @@ in
|
||||
pkgs.swaylock
|
||||
];
|
||||
|
||||
script = let
|
||||
pause-music = "${pkgs.playerctl}/bin/playerctl -p spotify pause";
|
||||
in ''
|
||||
BATTERY_CAPACITY=$(cat /sys/class/power_supply/${lowbat.battery}/capacity)
|
||||
BATTERY_STATUS=$(cat /sys/class/power_supply/${lowbat.battery}/status)
|
||||
echo "Battery capacity: $BATTERY_CAPACITY"
|
||||
echo "Battery status: $BATTERY_STATUS"
|
||||
|
||||
if [[ $BATTERY_CAPACITY -le ${builtins.toString lowbat.notifyCapacity} && $BATTERY_STATUS = "Discharging" ]]; then
|
||||
notify-send --expire-time=0 --urgency=critical "Battery Low"
|
||||
fi
|
||||
|
||||
if [[ $BATTERY_CAPACITY -le ${builtins.toString lowbat.suspendCapacity} && $BATTERY_STATUS = "Discharging" ]]; then
|
||||
notify-send --expire-time=0 --urgency=critical "Battery Critically Low" "Suspending in 60 seconds if power is not plugged in"
|
||||
sleep 60s
|
||||
|
||||
script =
|
||||
let
|
||||
pause-music = "${pkgs.playerctl}/bin/playerctl -p spotify pause";
|
||||
in
|
||||
''
|
||||
BATTERY_CAPACITY=$(cat /sys/class/power_supply/${lowbat.battery}/capacity)
|
||||
BATTERY_STATUS=$(cat /sys/class/power_supply/${lowbat.battery}/status)
|
||||
if [[ $BATTERY_STATUS = "Discharging" ]]; then
|
||||
${pause-music}; ${pkgs.swaylock}/bin/swaylock -f; systemctl suspend
|
||||
echo "Battery capacity: $BATTERY_CAPACITY"
|
||||
echo "Battery status: $BATTERY_STATUS"
|
||||
|
||||
if [[ $BATTERY_CAPACITY -le ${builtins.toString lowbat.notifyCapacity} && $BATTERY_STATUS = "Discharging" ]]; then
|
||||
notify-send --expire-time=0 --urgency=critical "Battery Low"
|
||||
fi
|
||||
fi
|
||||
'';
|
||||
|
||||
if [[ $BATTERY_CAPACITY -le ${builtins.toString lowbat.suspendCapacity} && $BATTERY_STATUS = "Discharging" ]]; then
|
||||
notify-send --expire-time=0 --urgency=critical "Battery Critically Low" "Suspending in 60 seconds if power is not plugged in"
|
||||
sleep 60s
|
||||
|
||||
BATTERY_STATUS=$(cat /sys/class/power_supply/${lowbat.battery}/status)
|
||||
if [[ $BATTERY_STATUS = "Discharging" ]]; then
|
||||
${pause-music}; ${pkgs.swaylock}/bin/swaylock -f; systemctl suspend
|
||||
fi
|
||||
fi
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
{ pkgs, lib, config, ... }:
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
enabled = config.mod.python.enable;
|
||||
in
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
{ pkgs, lib, config, ... }:
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
enabled = config.mod.rust.enable;
|
||||
in
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
{ pkgs, lib, config, ... }:
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
enabled = config.mod.scala.enable;
|
||||
|
||||
|
||||
@@ -1,4 +1,10 @@
|
||||
{ inputs, pkgs, lib, config, ...}:
|
||||
{
|
||||
inputs,
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
hyprlandEnabled = config.mod.hyprland.enable;
|
||||
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
{ pkgs, lib, config, ... }:
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
enabled = config.mod.scripts.enable;
|
||||
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
{ pkgs, lib, config, ... }:
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
hyprlandEnabled = config.mod.hyprland.enable;
|
||||
in
|
||||
@@ -20,24 +25,26 @@ in
|
||||
home-manager.users.alex = {
|
||||
wayland.windowManager.hyprland = lib.mkIf hyprlandEnabled {
|
||||
settings = {
|
||||
bind = let
|
||||
toggle-output-mute = pkgs.writeShellScript "toggle-output-mute" ''
|
||||
${pkgs.wireplumber}/bin/wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
|
||||
MUTED=$(${pkgs.wireplumber}/bin/wpctl get-volume @DEFAULT_AUDIO_SINK@ | grep MUTED | wc -l)
|
||||
echo $MUTED > /sys/class/leds/platform::mute/brightness
|
||||
'';
|
||||
bind =
|
||||
let
|
||||
toggle-output-mute = pkgs.writeShellScript "toggle-output-mute" ''
|
||||
${pkgs.wireplumber}/bin/wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
|
||||
MUTED=$(${pkgs.wireplumber}/bin/wpctl get-volume @DEFAULT_AUDIO_SINK@ | grep MUTED | wc -l)
|
||||
echo $MUTED > /sys/class/leds/platform::mute/brightness
|
||||
'';
|
||||
|
||||
toggle-input-mute = pkgs.writeShellScript "toggle-input-mute" ''
|
||||
${pkgs.wireplumber}/bin/wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
|
||||
MUTED=$(${pkgs.wireplumber}/bin/wpctl get-volume @DEFAULT_AUDIO_SOURCE@ | grep MUTED | wc -l)
|
||||
echo $MUTED > /sys/class/leds/platform::micmute/brightness
|
||||
'';
|
||||
in [
|
||||
", XF86AudioRaiseVolume, exec, ${pkgs.wireplumber}/bin/wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 2%+"
|
||||
", XF86AudioLowerVolume, exec, ${pkgs.wireplumber}/bin/wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%-"
|
||||
", XF86AudioMute, exec, ${toggle-output-mute}"
|
||||
", XF86AudioMicMute, exec, ${toggle-input-mute}"
|
||||
];
|
||||
toggle-input-mute = pkgs.writeShellScript "toggle-input-mute" ''
|
||||
${pkgs.wireplumber}/bin/wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
|
||||
MUTED=$(${pkgs.wireplumber}/bin/wpctl get-volume @DEFAULT_AUDIO_SOURCE@ | grep MUTED | wc -l)
|
||||
echo $MUTED > /sys/class/leds/platform::micmute/brightness
|
||||
'';
|
||||
in
|
||||
[
|
||||
", XF86AudioRaiseVolume, exec, ${pkgs.wireplumber}/bin/wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 2%+"
|
||||
", XF86AudioLowerVolume, exec, ${pkgs.wireplumber}/bin/wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%-"
|
||||
", XF86AudioMute, exec, ${toggle-output-mute}"
|
||||
", XF86AudioMicMute, exec, ${toggle-input-mute}"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
{ pkgs, lib, config, ... }:
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
hyprlandEnabled = config.mod.hyprland.enable;
|
||||
in
|
||||
@@ -6,19 +11,21 @@ in
|
||||
home-manager.users.alex = {
|
||||
wayland.windowManager.hyprland = lib.mkIf hyprlandEnabled {
|
||||
settings = {
|
||||
bind = let
|
||||
prev = "${pkgs.playerctl}/bin/playerctl -p spotify previous";
|
||||
next = "${pkgs.playerctl}/bin/playerctl -p spotify next";
|
||||
in [
|
||||
", XF86AudioPrev, exec, ${prev}"
|
||||
", XF86AudioNext, exec, ${next}"
|
||||
", XF86AudioPlay, exec, ${pkgs.playerctl}/bin/playerctl -p spotify play-pause"
|
||||
", XF86AudioPause, exec, ${pkgs.playerctl}/bin/playerctl -p spoitfy play-pause"
|
||||
bind =
|
||||
let
|
||||
prev = "${pkgs.playerctl}/bin/playerctl -p spotify previous";
|
||||
next = "${pkgs.playerctl}/bin/playerctl -p spotify next";
|
||||
in
|
||||
[
|
||||
", XF86AudioPrev, exec, ${prev}"
|
||||
", XF86AudioNext, exec, ${next}"
|
||||
", XF86AudioPlay, exec, ${pkgs.playerctl}/bin/playerctl -p spotify play-pause"
|
||||
", XF86AudioPause, exec, ${pkgs.playerctl}/bin/playerctl -p spoitfy play-pause"
|
||||
|
||||
"$mod ALT, LEFT, exec, ${prev}"
|
||||
"$mod ALT, RIGHT, exec, ${next}"
|
||||
"$mod ALT, DOWN, exec, ${pkgs.playerctl}/bin/playerctl -p spotify play-pause"
|
||||
];
|
||||
"$mod ALT, LEFT, exec, ${prev}"
|
||||
"$mod ALT, RIGHT, exec, ${next}"
|
||||
"$mod ALT, DOWN, exec, ${pkgs.playerctl}/bin/playerctl -p spotify play-pause"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -129,9 +129,11 @@
|
||||
enable = true;
|
||||
ports = [ 1122 ];
|
||||
|
||||
hostKeys = [{
|
||||
path = "/etc/ssh/pinwheel";
|
||||
type = "ed25519";
|
||||
}];
|
||||
hostKeys = [
|
||||
{
|
||||
path = "/etc/ssh/pinwheel";
|
||||
type = "ed25519";
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
{ pkgs, lib, config, ... }:
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
enabled = config.mod.swaylock.enable;
|
||||
hyprlandEnabled = config.mod.hyprland.enable;
|
||||
@@ -30,18 +35,19 @@ in
|
||||
|
||||
wayland.windowManager.hyprland = lib.mkIf hyprlandEnabled {
|
||||
settings = {
|
||||
bind = let
|
||||
pause-music = "${pkgs.playerctl}/bin/playerctl -p spotify pause";
|
||||
bind =
|
||||
let
|
||||
pause-music = "${pkgs.playerctl}/bin/playerctl -p spotify pause";
|
||||
|
||||
dpmsTimeout = config.mod.swaylock.dpmsTimeout;
|
||||
dpms-lock = pkgs.writeShellScript "dpms-lock" ''
|
||||
${pkgs.swayidle}/bin/swayidle \
|
||||
timeout ${dpmsTimeout} "${pkgs.hyprland}/bin/hyprctl dispatch dpms off" \
|
||||
resume "${pkgs.hyprland}/bin/hyprctl dispatch dpms on" &
|
||||
dpmsTimeout = config.mod.swaylock.dpmsTimeout;
|
||||
dpms-lock = pkgs.writeShellScript "dpms-lock" ''
|
||||
${pkgs.swayidle}/bin/swayidle \
|
||||
timeout ${dpmsTimeout} "${pkgs.hyprland}/bin/hyprctl dispatch dpms off" \
|
||||
resume "${pkgs.hyprland}/bin/hyprctl dispatch dpms on" &
|
||||
|
||||
${pkgs.swaylock}/bin/swaylock && ${pkgs.procps}/bin/pkill swayidle
|
||||
'';
|
||||
in
|
||||
${pkgs.swaylock}/bin/swaylock && ${pkgs.procps}/bin/pkill swayidle
|
||||
'';
|
||||
in
|
||||
[
|
||||
"$mod, x, exec, ${pause-music}; ${dpms-lock}"
|
||||
"$mod SHIFT, x, exec, ${pause-music}; ${pkgs.swaylock}/bin/swaylock -f; systemctl suspend"
|
||||
|
||||
@@ -21,7 +21,10 @@
|
||||
folders = {
|
||||
org = {
|
||||
path = "/home/alex/sync/org";
|
||||
devices = [ "phone" "backwards" ];
|
||||
devices = [
|
||||
"phone"
|
||||
"backwards"
|
||||
];
|
||||
versioning = {
|
||||
type = "staggered";
|
||||
params = {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{ pkgs, ...}:
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home-manager.users.alex = {
|
||||
home.packages = [
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
{ pkgs, lib, config, ... }:
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
enabled = config.mod.vm.enable;
|
||||
in
|
||||
@@ -26,8 +31,8 @@ in
|
||||
home-manager.users.alex = {
|
||||
dconf.settings = {
|
||||
"org/virt-manager/virt-manager/connections" = {
|
||||
autoconnect = ["qemu:///system"];
|
||||
uris = ["qemu:///system"];
|
||||
autoconnect = [ "qemu:///system" ];
|
||||
uris = [ "qemu:///system" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
{ pkgs, lib, config, ... }:
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
hyprlandEnabled = config.mod.hyprland.enable;
|
||||
|
||||
@@ -194,8 +199,15 @@ in
|
||||
"interval" = 60;
|
||||
"format" = "<span font='10' rise='1000'>{icon}</span> {capacity}%";
|
||||
"format-time" = "{H}h {M}min";
|
||||
"format-charging" =" {capacity}%";
|
||||
"format-icons" = ["" "" "" "" "" "" ];
|
||||
"format-charging" = " {capacity}%";
|
||||
"format-icons" = [
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
];
|
||||
};
|
||||
|
||||
"clock" = {
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
{ pkgs, lib, config, ... }:
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
enabled = config.mod.wezterm.enable;
|
||||
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
{ pkgs, lib, config, ... }:
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
gitEnabled = config.mod.git.enable;
|
||||
goEnabled = config.mod.go.enable;
|
||||
@@ -7,16 +12,18 @@ in
|
||||
{
|
||||
home-manager.users.alex = {
|
||||
home.sessionVariables = {
|
||||
GITHUB_ACTOR="Alexander Heldt";
|
||||
GITHUB_TOKEN="$(${pkgs.coreutils}/bin/cat ${config.age.secrets.work-github-token.path})";
|
||||
GITHUB_ACTOR = "Alexander Heldt";
|
||||
GITHUB_TOKEN = "$(${pkgs.coreutils}/bin/cat ${config.age.secrets.work-github-token.path})";
|
||||
};
|
||||
|
||||
home.packages = [
|
||||
(pkgs.callPackage ./syb-cli.nix {})
|
||||
(pkgs.callPackage ./syb-cli.nix { })
|
||||
|
||||
(pkgs.jetbrains.plugins.addPlugins pkgs.jetbrains.idea-ultimate [ "ideavim" ])
|
||||
(pkgs.google-cloud-sdk.withExtraComponents [ pkgs.google-cloud-sdk.components.gke-gcloud-auth-plugin ])
|
||||
(pkgs.graphite-cli.overrideAttrs(_: {
|
||||
(pkgs.google-cloud-sdk.withExtraComponents [
|
||||
pkgs.google-cloud-sdk.components.gke-gcloud-auth-plugin
|
||||
])
|
||||
(pkgs.graphite-cli.overrideAttrs (_: {
|
||||
version = "1.4.3";
|
||||
}))
|
||||
pkgs.xdg-utils # needed by graphite-cli
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
{ pkgs, lib, config, ... }:
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
enabled = config.mod.zsh.enable;
|
||||
in
|
||||
|
||||
@@ -1,20 +1,22 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
imports =
|
||||
[
|
||||
../../config-manager/default.nix
|
||||
./hardware-configuration.nix
|
||||
./modules
|
||||
];
|
||||
imports = [
|
||||
../../config-manager/default.nix
|
||||
./hardware-configuration.nix
|
||||
./modules
|
||||
];
|
||||
|
||||
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||||
nix.settings.experimental-features = [
|
||||
"nix-command"
|
||||
"flakes"
|
||||
];
|
||||
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
users.users.alex = {
|
||||
isNormalUser = true;
|
||||
extraGroups = [ "wheel" ];
|
||||
packages = [];
|
||||
packages = [ ];
|
||||
};
|
||||
|
||||
environment.variables.EDITOR = "vim";
|
||||
|
||||
@@ -1,26 +1,39 @@
|
||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||
# and may be overwritten by future invocations. Please make changes
|
||||
# to /etc/nixos/configuration.nix instead.
|
||||
{ config, lib, pkgs, modulesPath, ... }:
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
modulesPath,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
imports =
|
||||
[ (modulesPath + "/profiles/qemu-guest.nix")
|
||||
];
|
||||
imports = [
|
||||
(modulesPath + "/profiles/qemu-guest.nix")
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = [ "ahci" "xhci_pci" "virtio_pci" "virtio_scsi" "sd_mod" "sr_mod" ];
|
||||
boot.initrd.availableKernelModules = [
|
||||
"ahci"
|
||||
"xhci_pci"
|
||||
"virtio_pci"
|
||||
"virtio_scsi"
|
||||
"sd_mod"
|
||||
"sr_mod"
|
||||
];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems."/" =
|
||||
{ device = "/dev/disk/by-uuid/7a2b1179-6582-4ef1-b094-0f11449373ed";
|
||||
fsType = "ext4";
|
||||
};
|
||||
fileSystems."/" = {
|
||||
device = "/dev/disk/by-uuid/7a2b1179-6582-4ef1-b094-0f11449373ed";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
swapDevices =
|
||||
[ { device = "/dev/disk/by-uuid/aa0634e1-a1c2-4461-978a-cf1768f38b0c"; }
|
||||
];
|
||||
swapDevices = [
|
||||
{ device = "/dev/disk/by-uuid/aa0634e1-a1c2-4461-978a-cf1768f38b0c"; }
|
||||
];
|
||||
|
||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
pkgs.git
|
||||
pkgs.tig
|
||||
pkgs.vim
|
||||
];
|
||||
];
|
||||
|
||||
home.stateVersion = "24.05";
|
||||
};
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
{ inputs, lib, config, ... }:
|
||||
{
|
||||
inputs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
configurationLimit = config.mod.gc.configurationLimit;
|
||||
in
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
{ pkgs, lib, config, ... }:
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
conf = config.mod.gitea;
|
||||
gitDomain = "git.${conf.baseDomain}";
|
||||
@@ -26,7 +31,7 @@ in
|
||||
|
||||
webfingerAccounts = lib.mkOption {
|
||||
type = lib.types.listOf lib.types.str;
|
||||
default = [];
|
||||
default = [ ];
|
||||
description = "The accounts that should be listed";
|
||||
};
|
||||
};
|
||||
@@ -47,7 +52,7 @@ in
|
||||
message = "There is no cert configured for ${conf.baseDomain} used by webfinger";
|
||||
}
|
||||
{
|
||||
assertion = conf.webfingerEnable && conf.webfingerAccounts != [];
|
||||
assertion = conf.webfingerEnable && conf.webfingerAccounts != [ ];
|
||||
message = "Option 'mod.gitea.webfingerAccounts' cannot be empty";
|
||||
}
|
||||
];
|
||||
@@ -81,38 +86,43 @@ in
|
||||
services.nginx = {
|
||||
virtualHosts."${conf.baseDomain}" =
|
||||
let
|
||||
mkWebfinger = account:
|
||||
pkgs.writeTextDir (lib.escapeURL "acct:${account}") (lib.generators.toJSON {} {
|
||||
subject = "acct:${account}";
|
||||
links = [{
|
||||
rel = "http://openid.net/specs/connect/1.0/issuer";
|
||||
href = "https://${gitDomain}";
|
||||
}];
|
||||
});
|
||||
mkWebfinger =
|
||||
account:
|
||||
pkgs.writeTextDir (lib.escapeURL "acct:${account}") (
|
||||
lib.generators.toJSON { } {
|
||||
subject = "acct:${account}";
|
||||
links = [
|
||||
{
|
||||
rel = "http://openid.net/specs/connect/1.0/issuer";
|
||||
href = "https://${gitDomain}";
|
||||
}
|
||||
];
|
||||
}
|
||||
);
|
||||
|
||||
webfingerRoot = pkgs.symlinkJoin {
|
||||
name = "${gitDomain}-webfinger";
|
||||
paths = builtins.map mkWebfinger conf.webfingerAccounts;
|
||||
};
|
||||
in
|
||||
lib.mkIf conf.webfingerEnable {
|
||||
forceSSL = true;
|
||||
useACMEHost = conf.baseDomain;
|
||||
lib.mkIf conf.webfingerEnable {
|
||||
forceSSL = true;
|
||||
useACMEHost = conf.baseDomain;
|
||||
|
||||
locations."/.well-known/webfinger" = {
|
||||
root = webfingerRoot;
|
||||
locations."/.well-known/webfinger" = {
|
||||
root = webfingerRoot;
|
||||
|
||||
extraConfig = ''
|
||||
add_header Access-Control-Allow-Origin "*";
|
||||
default_type "application/jrd+json";
|
||||
types { application/jrd+json json; }
|
||||
if ($arg_resource) {
|
||||
rewrite ^(.*)$ /$arg_resource break;
|
||||
}
|
||||
return 400;
|
||||
'';
|
||||
};
|
||||
extraConfig = ''
|
||||
add_header Access-Control-Allow-Origin "*";
|
||||
default_type "application/jrd+json";
|
||||
types { application/jrd+json json; }
|
||||
if ($arg_resource) {
|
||||
rewrite ^(.*)$ /$arg_resource break;
|
||||
}
|
||||
return 400;
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
virtualHosts."${gitDomain}" = {
|
||||
forceSSL = true;
|
||||
|
||||
@@ -31,7 +31,10 @@ in
|
||||
|
||||
networking = {
|
||||
firewall = {
|
||||
allowedTCPPorts = [ 80 443 ];
|
||||
allowedTCPPorts = [
|
||||
80
|
||||
443
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
{ inputs, lib, config, ... }:
|
||||
{
|
||||
inputs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
enabled = config.mod.pppdotpm-site.enable;
|
||||
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
{ pkgs, lib, config, ... }:
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
enabled = config.mod.ssh.enable;
|
||||
|
||||
@@ -41,10 +46,12 @@ in
|
||||
enable = true;
|
||||
ports = [ 1122 ];
|
||||
|
||||
hostKeys = [{
|
||||
path = "${rootSSHKeyPath}/root.tadpole";
|
||||
type = "ed25519";
|
||||
}];
|
||||
hostKeys = [
|
||||
{
|
||||
path = "${rootSSHKeyPath}/root.tadpole";
|
||||
type = "ed25519";
|
||||
}
|
||||
];
|
||||
|
||||
settings = {
|
||||
PasswordAuthentication = false;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{ pkgs, ... }:
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
imports = [
|
||||
./ppp.pm-site.nix
|
||||
@@ -28,7 +28,7 @@
|
||||
};
|
||||
};
|
||||
|
||||
environment.systemPackages = [];
|
||||
environment.systemPackages = [ ];
|
||||
|
||||
system.stateVersion = "24.05";
|
||||
};
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
{ inputs, lib, config, ... }:
|
||||
{
|
||||
inputs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
enabled = config.mod.pppdotpm-site.enable;
|
||||
in
|
||||
|
||||
Reference in New Issue
Block a user