This commit is contained in:
commit
5c3f1cf54a
18 changed files with 346 additions and 436 deletions
|
@ -8,7 +8,7 @@ keys:
|
|||
# ssh host "nix shell nixpkgs#ssh-to-age -c $SHELL -c 'cat /etc/ssh/ssh_host_ed25519_key.pub | ssh-to-age'"
|
||||
- &sshd-at-beefcake age1etv56f7kf78a55lxqtydrdd32dpmsjnxndf4u28qezxn6p7xt9esqvqdq7
|
||||
- &sshd-at-router age1zd7c3g5d20shdftq8ghqm0r92488dg4pdp4gulur7ex3zx2yq35ssxawpn
|
||||
- &sshd-at-dragon age1ez4why08hdx0qf940cjzs6ep4q5rk2gqq7lp99pe58fktpwv65esx4xrht
|
||||
- &sshd-at-dragon age12x49p3mwf27r9gdkfmfqu7lr6gwcwznlhcvcgmv8dz3gac2mkdgsp36y9p
|
||||
- &ssh-foxtrot age1njnet9ltjuxasqv3ckn67r5natke6xgd8wlx8psf64pyc4duvurqhedw80
|
||||
|
||||
# after updating this file, you may need to update the keys for any associated files like so:
|
||||
|
|
|
@ -1,8 +1,35 @@
|
|||
{lib, ...}: let
|
||||
inherit (lib.attrsets) mapAttrs' filterAttrs;
|
||||
in {
|
||||
ESP = inputs @ {
|
||||
size ? "4G",
|
||||
label ? "ESP",
|
||||
name ? "ESP",
|
||||
}:
|
||||
{
|
||||
priority = 1;
|
||||
start = "1M";
|
||||
label = label;
|
||||
name = name;
|
||||
end = size;
|
||||
type = "EF00";
|
||||
content = {
|
||||
type = "filesystem";
|
||||
format = "vfat";
|
||||
mountpoint = "/boot";
|
||||
mountOptions = [
|
||||
"umask=0077"
|
||||
];
|
||||
};
|
||||
}
|
||||
// inputs;
|
||||
in rec {
|
||||
standardWithHibernateSwap = {
|
||||
disks ? ["/dev/sda"],
|
||||
esp ? {
|
||||
label = "ESP";
|
||||
size = "4G";
|
||||
name = "ESP";
|
||||
},
|
||||
disk,
|
||||
swapSize,
|
||||
...
|
||||
}: {
|
||||
|
@ -17,24 +44,11 @@ in {
|
|||
disk = {
|
||||
primary = {
|
||||
type = "disk";
|
||||
device = builtins.elemAt disks 0;
|
||||
device = disk;
|
||||
content = {
|
||||
type = "gpt";
|
||||
partitions = {
|
||||
ESP = {
|
||||
label = "EFI";
|
||||
name = "ESP";
|
||||
size = "4G";
|
||||
type = "EF00";
|
||||
content = {
|
||||
type = "filesystem";
|
||||
format = "vfat";
|
||||
mountpoint = "/boot";
|
||||
mountOptions = [
|
||||
"defaults"
|
||||
];
|
||||
};
|
||||
};
|
||||
ESP = ESP esp;
|
||||
swap = {
|
||||
size = swapSize;
|
||||
content = {
|
||||
|
@ -48,7 +62,6 @@ in {
|
|||
content = {
|
||||
type = "luks";
|
||||
name = "crypted";
|
||||
extraOpenArgs = ["--allow-discards"];
|
||||
# if you want to use the key for interactive login be sure there is no trailing newline
|
||||
# for example use `echo -n "password" > /tmp/secret.key`
|
||||
keyFile = "/tmp/secret.key"; # Interactive
|
||||
|
@ -58,75 +71,13 @@ in {
|
|||
type = "btrfs";
|
||||
extraArgs = ["-f"];
|
||||
subvolumes = {
|
||||
"/nixos" = {
|
||||
"/rootfs" = {
|
||||
mountpoint = "/";
|
||||
mountOptions = ["compress=zstd" "noatime"];
|
||||
mountOptions = ["compress=zstd"];
|
||||
};
|
||||
"/home" = {
|
||||
mountpoint = "/home";
|
||||
mountOptions = ["compress=zstd" "noatime"];
|
||||
};
|
||||
"/nix" = {
|
||||
mountpoint = "/nix";
|
||||
mountOptions = ["compress=zstd" "noatime"];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
standard = {disks ? ["/dev/vda"], ...}: {
|
||||
# this is my standard partitioning scheme for my machines: an LUKS-encrypted
|
||||
# btrfs volume
|
||||
disko.devices = {
|
||||
disk = {
|
||||
primary = {
|
||||
type = "disk";
|
||||
device = builtins.elemAt disks 0;
|
||||
content = {
|
||||
type = "gpt";
|
||||
partitions = {
|
||||
ESP = {
|
||||
label = "EFI";
|
||||
name = "ESP";
|
||||
size = "512M";
|
||||
type = "EF00";
|
||||
content = {
|
||||
type = "filesystem";
|
||||
format = "vfat";
|
||||
mountpoint = "/boot";
|
||||
mountOptions = [
|
||||
"defaults"
|
||||
];
|
||||
};
|
||||
};
|
||||
luks = {
|
||||
size = "100%";
|
||||
content = {
|
||||
type = "luks";
|
||||
name = "crypted";
|
||||
extraOpenArgs = ["--allow-discards"];
|
||||
# if you want to use the key for interactive login be sure there is no trailing newline
|
||||
# for example use `echo -n "password" > /tmp/secret.key`
|
||||
keyFile = "/tmp/secret.key"; # Interactive
|
||||
# settings.keyFile = "/tmp/password.key";
|
||||
# additionalKeyFiles = ["/tmp/additionalSecret.key"];
|
||||
content = {
|
||||
type = "btrfs";
|
||||
extraArgs = ["-f"];
|
||||
subvolumes = {
|
||||
"/root" = {
|
||||
mountpoint = "/";
|
||||
mountOptions = ["compress=zstd" "noatime"];
|
||||
};
|
||||
"/home" = {
|
||||
mountpoint = "/home";
|
||||
mountOptions = ["compress=zstd" "noatime"];
|
||||
mountOptions = ["compress=zstd"];
|
||||
};
|
||||
"/nix" = {
|
||||
mountpoint = "/nix";
|
||||
|
@ -143,38 +94,84 @@ in {
|
|||
};
|
||||
};
|
||||
|
||||
unencrypted = {disks ? ["/dev/vda"], ...}: {
|
||||
foxtrot = standardWithHibernateSwap {
|
||||
disk = "nvme0n1";
|
||||
swapSize = "32G";
|
||||
esp = {
|
||||
label = "disk-primary-ESP";
|
||||
name = "disk-primary-ESP";
|
||||
};
|
||||
};
|
||||
|
||||
standard = {disk, ...}: {
|
||||
# this is my standard partitioning scheme for my machines: an LUKS-encrypted
|
||||
# btrfs volume
|
||||
disko.devices = {
|
||||
disk = {
|
||||
primary = {
|
||||
type = "disk";
|
||||
device = builtins.elemAt disks 0;
|
||||
device = disk;
|
||||
content = {
|
||||
type = "gpt";
|
||||
partitions = {
|
||||
ESP = {
|
||||
label = "EFI";
|
||||
name = "ESP";
|
||||
size = "512M";
|
||||
type = "EF00";
|
||||
ESP = ESP {size = "4G";};
|
||||
luks = {
|
||||
size = "100%";
|
||||
content = {
|
||||
type = "filesystem";
|
||||
format = "vfat";
|
||||
mountpoint = "/boot";
|
||||
mountOptions = [
|
||||
"defaults"
|
||||
];
|
||||
type = "luks";
|
||||
name = "crypted";
|
||||
# if you want to use the key for interactive login be sure there is no trailing newline
|
||||
# for example use `echo -n "password" > /tmp/secret.key`
|
||||
keyFile = "/tmp/secret.key"; # Interactive
|
||||
# settings.keyFile = "/tmp/password.key";
|
||||
# additionalKeyFiles = ["/tmp/additionalSecret.key"];
|
||||
content = {
|
||||
type = "btrfs";
|
||||
extraArgs = ["-f"];
|
||||
subvolumes = {
|
||||
"/root" = {
|
||||
mountpoint = "/";
|
||||
mountOptions = ["compress=zstd"];
|
||||
};
|
||||
"/home" = {
|
||||
mountpoint = "/home";
|
||||
mountOptions = ["compress=zstd"];
|
||||
};
|
||||
"/nix" = {
|
||||
mountpoint = "/nix";
|
||||
mountOptions = ["compress=zstd" "noatime"];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
unencrypted = {disk, ...}: {
|
||||
disko.devices = {
|
||||
disk = {
|
||||
primary = {
|
||||
type = "disk";
|
||||
device = disk;
|
||||
content = {
|
||||
type = "gpt";
|
||||
partitions = {
|
||||
ESP = ESP {size = "5G";};
|
||||
root = {
|
||||
size = "100%";
|
||||
content = {
|
||||
type = "btrfs";
|
||||
extraArgs = ["-f"];
|
||||
mountpoint = "/partition-root";
|
||||
subvolumes = {
|
||||
"/root" = {
|
||||
"/rootfs" = {
|
||||
mountpoint = "/";
|
||||
mountOptions = [];
|
||||
mountOptions = ["compress=zstd"];
|
||||
};
|
||||
"/home" = {
|
||||
mountpoint = "/home";
|
||||
|
@ -390,7 +387,7 @@ in {
|
|||
};
|
||||
};
|
||||
};
|
||||
legacy = {disks ? ["/dev/vda"], ...}: {
|
||||
legacy = {disks, ...}: {
|
||||
disko.devices = {
|
||||
disk = {
|
||||
primary = {
|
||||
|
|
122
flake.lock
122
flake.lock
|
@ -117,10 +117,44 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-compat_4": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1696426674,
|
||||
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils": {
|
||||
"inputs": {
|
||||
"systems": "systems"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1705309234,
|
||||
"narHash": "sha256-uNRRNRKmJyCRC/8y1RqBkqWBLM034y4qN7EprSdmgyA=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "1ef2e671c3b0c19053962c07dbda38332dcebf26",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils_2": {
|
||||
"inputs": {
|
||||
"systems": "systems_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1726560853,
|
||||
"narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=",
|
||||
|
@ -135,7 +169,7 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils_2": {
|
||||
"flake-utils_3": {
|
||||
"inputs": {
|
||||
"systems": "systems_4"
|
||||
},
|
||||
|
@ -170,9 +204,34 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"git-hooks": {
|
||||
"ghostty": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat",
|
||||
"nixpkgs-stable": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"nixpkgs-unstable": [
|
||||
"nixpkgs-unstable"
|
||||
],
|
||||
"zig": "zig"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1735330177,
|
||||
"narHash": "sha256-JGoqNnhSr632eLo1NWKJWoZyepCZlXT0o1/2A6e1Ph4=",
|
||||
"owner": "ghostty-org",
|
||||
"repo": "ghostty",
|
||||
"rev": "8111f5b9958c21e0157f63cc4ce2dfc2329c67ac",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "ghostty-org",
|
||||
"repo": "ghostty",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"git-hooks": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat_2",
|
||||
"gitignore": "gitignore",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
|
@ -195,7 +254,7 @@
|
|||
},
|
||||
"git-hooks_2": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat_3",
|
||||
"flake-compat": "flake-compat_4",
|
||||
"gitignore": "gitignore_3",
|
||||
"nixpkgs": [
|
||||
"slippi",
|
||||
|
@ -317,10 +376,18 @@
|
|||
"helix": {
|
||||
"inputs": {
|
||||
"crane": "crane",
|
||||
<<<<<<< HEAD
|
||||
"flake-utils": "flake-utils",
|
||||
"nixpkgs": [
|
||||
"nixpkgs-unstable"
|
||||
],
|
||||
||||||| b4bc4ce
|
||||
"flake-utils": "flake-utils",
|
||||
"nixpkgs": "nixpkgs",
|
||||
=======
|
||||
"flake-utils": "flake-utils_2",
|
||||
"nixpkgs": "nixpkgs",
|
||||
>>>>>>> origin/main
|
||||
"rust-overlay": "rust-overlay"
|
||||
},
|
||||
"locked": {
|
||||
|
@ -471,7 +538,7 @@
|
|||
"nixpkgs-unstable"
|
||||
],
|
||||
"pre-commit-hooks": "pre-commit-hooks",
|
||||
"systems": "systems_2",
|
||||
"systems": "systems_3",
|
||||
"xdph": "xdph"
|
||||
},
|
||||
"locked": {
|
||||
|
@ -801,7 +868,7 @@
|
|||
},
|
||||
"pre-commit-hooks": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat_2",
|
||||
"flake-compat": "flake-compat_3",
|
||||
"gitignore": "gitignore_2",
|
||||
"nixpkgs": [
|
||||
"hyprland",
|
||||
|
@ -826,6 +893,7 @@
|
|||
"root": {
|
||||
"inputs": {
|
||||
"disko": "disko",
|
||||
"ghostty": "ghostty",
|
||||
"git-hooks": "git-hooks",
|
||||
"hardware": "hardware",
|
||||
"helix": "helix",
|
||||
|
@ -945,6 +1013,21 @@
|
|||
}
|
||||
},
|
||||
"systems_2": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems_3": {
|
||||
"locked": {
|
||||
"lastModified": 1689347949,
|
||||
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
|
||||
|
@ -959,7 +1042,7 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems_3": {
|
||||
"systems_4": {
|
||||
"locked": {
|
||||
"lastModified": 1689347949,
|
||||
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
|
||||
|
@ -991,7 +1074,7 @@
|
|||
},
|
||||
"wezterm": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils_2",
|
||||
"flake-utils": "flake-utils_3",
|
||||
"freetype2": "freetype2",
|
||||
"harfbuzz": "harfbuzz",
|
||||
"libpng": "libpng",
|
||||
|
@ -1058,6 +1141,31 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"zig": {
|
||||
"inputs": {
|
||||
"flake-compat": [
|
||||
"ghostty"
|
||||
],
|
||||
"flake-utils": "flake-utils",
|
||||
"nixpkgs": [
|
||||
"ghostty",
|
||||
"nixpkgs-stable"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1717848532,
|
||||
"narHash": "sha256-d+xIUvSTreHl8pAmU1fnmkfDTGQYCn2Rb/zOwByxS2M=",
|
||||
"owner": "mitchellh",
|
||||
"repo": "zig-overlay",
|
||||
"rev": "02fc5cc555fc14fda40c42d7c3250efa43812b43",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "mitchellh",
|
||||
"repo": "zig-overlay",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"zlib": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
|
|
16
flake.nix
16
flake.nix
|
@ -43,6 +43,10 @@
|
|||
jovian.url = "github:Jovian-Experiments/Jovian-NixOS/development";
|
||||
jovian.inputs.nixpkgs.follows = "nixpkgs-unstable";
|
||||
|
||||
ghostty.url = "github:ghostty-org/ghostty";
|
||||
ghostty.inputs.nixpkgs-unstable.follows = "nixpkgs-unstable";
|
||||
ghostty.inputs.nixpkgs-stable.follows = "nixpkgs";
|
||||
|
||||
# nnf.url = "github:thelegy/nixos-nftables-firewall?rev=71fc2b79358d0dbacde83c806a0f008ece567b7b";
|
||||
|
||||
mobile-nixos = {
|
||||
|
@ -60,6 +64,7 @@
|
|||
"https://nix-community.cachix.org"
|
||||
"https://nix.h.lyte.dev"
|
||||
"https://hyprland.cachix.org"
|
||||
"https://ghostty.cachix.org"
|
||||
];
|
||||
|
||||
extra-trusted-public-keys = [
|
||||
|
@ -68,6 +73,7 @@
|
|||
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
||||
"h.lyte.dev-2:te9xK/GcWPA/5aXav8+e5RHImKYMug8hIIbhHsKPN0M="
|
||||
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
|
||||
"ghostty.cachix.org-1:QB389yTa6gTyneehvqG58y0WnHjQOqgnA+wBnpWWxns="
|
||||
];
|
||||
};
|
||||
|
||||
|
@ -88,6 +94,7 @@
|
|||
# nnf,
|
||||
# hyprland,
|
||||
slippi,
|
||||
ghostty,
|
||||
...
|
||||
}: let
|
||||
inherit (self) outputs;
|
||||
|
@ -334,7 +341,7 @@
|
|||
modules = with nixosModules; [
|
||||
home-manager-unstable-defaults
|
||||
|
||||
outputs.diskoConfigurations.standard
|
||||
outputs.diskoConfigurations.unencrypted
|
||||
hardware.nixosModules.common-cpu-amd
|
||||
hardware.nixosModules.common-pc-ssd
|
||||
|
||||
|
@ -463,7 +470,7 @@
|
|||
modules = with nixosModules; [
|
||||
home-manager-unstable-defaults
|
||||
|
||||
outputs.diskoConfigurations.standard
|
||||
outputs.diskoConfigurations.foxtrot
|
||||
hardware.nixosModules.framework-13-7040-amd
|
||||
|
||||
common
|
||||
|
@ -490,6 +497,7 @@
|
|||
];
|
||||
};
|
||||
environment.systemPackages = with pkgs; [
|
||||
ghostty.outputs.packages.${pkgs.system}.ghostty
|
||||
fw-ectool
|
||||
(writeShellApplication
|
||||
{
|
||||
|
@ -597,7 +605,7 @@
|
|||
swapSize = "32G";
|
||||
};
|
||||
}
|
||||
outputs.diskoConfigurations.standardWithHibernateSwap
|
||||
outputs.diskoConfigurations.standard
|
||||
hardware.nixosModules.lenovo-thinkpad-t480
|
||||
hardware.nixosModules.common-pc-laptop-ssd
|
||||
|
||||
|
@ -605,7 +613,7 @@
|
|||
common
|
||||
password-manager
|
||||
graphical-workstation
|
||||
plasma6
|
||||
# plasma6
|
||||
laptop
|
||||
gaming
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
(geometry
|
||||
:x "0%"
|
||||
:y "5px"
|
||||
:width "100%"
|
||||
:width "80%"
|
||||
:height "32px"
|
||||
:anchor "bottom center")
|
||||
(bar))
|
||||
|
@ -25,10 +25,10 @@
|
|||
:geometry
|
||||
(geometry
|
||||
:x "0%"
|
||||
:y "20%"
|
||||
:width "90%"
|
||||
:height "60px"
|
||||
:anchor "top center")
|
||||
:y "5px"
|
||||
:width "80%"
|
||||
:height "32px"
|
||||
:anchor "bottom center")
|
||||
(bar))
|
||||
|
||||
(defwidget rightsidestuff []
|
||||
|
|
|
@ -11,6 +11,7 @@ in {
|
|||
# TODO: Hyprland seems to sometimes use a ton of CPU?
|
||||
|
||||
home.packages = with pkgs; [
|
||||
glib
|
||||
swayosd
|
||||
];
|
||||
|
||||
|
@ -47,8 +48,15 @@ in {
|
|||
"hypridle"
|
||||
];
|
||||
|
||||
exec = [
|
||||
''gsettings set org.gnome.desktop.interface gtk-theme "Adwaita-dark"''
|
||||
''gsettings set org.gnome.desktop.interface color-scheme "prefer-dark"''
|
||||
];
|
||||
|
||||
env = [
|
||||
"XCURSOR_SIZE,24"
|
||||
"QT_QPA_PLATFORMTHEME,qt6ct"
|
||||
"GTK_THEME,Adwaita-dark"
|
||||
];
|
||||
|
||||
input = {
|
||||
|
@ -96,7 +104,7 @@ in {
|
|||
gaps_out = 6;
|
||||
border_size = 2;
|
||||
resize_on_border = true;
|
||||
no_focus_fallback = true;
|
||||
no_focus_fallback = false;
|
||||
|
||||
layout = "dwindle";
|
||||
};
|
||||
|
@ -129,7 +137,7 @@ in {
|
|||
"$mod SHIFT, return, exec, wezterm"
|
||||
*/
|
||||
"$mod, return, exec, wezterm"
|
||||
"$mod SHIFT, return, exec, kitty"
|
||||
"$mod SHIFT, return, exec, [float] wezterm start --always-new-process"
|
||||
"$mod, U, exec, firefox"
|
||||
"$mod, space, exec, tofi-run | xargs hyprctl dispatch exec --"
|
||||
"$mod, C, killactive,"
|
||||
|
@ -150,10 +158,10 @@ in {
|
|||
"$mod, l, movefocus, r"
|
||||
"$mod, k, movefocus, u"
|
||||
"$mod, j, movefocus, d"
|
||||
"$mod SHIFT, H, movewindow, l"
|
||||
"$mod SHIFT, L, movewindow, r"
|
||||
"$mod SHIFT, K, movewindow, u"
|
||||
"$mod SHIFT, J, movewindow, d"
|
||||
"$mod SHIFT, H, movewindow, l silent"
|
||||
"$mod SHIFT, L, movewindow, r silent"
|
||||
"$mod SHIFT, K, movewindow, u silent"
|
||||
"$mod SHIFT, J, movewindow, d silent"
|
||||
|
||||
"$mod SHIFT, V, exec, swayosd-client --input-volume mute-toggle"
|
||||
", XF86AudioMicMute, exec, swayosd-client --input-volume mute-toggle"
|
||||
|
@ -184,16 +192,16 @@ in {
|
|||
"$mod, 0, workspace, 10"
|
||||
|
||||
# Move active window to a workspace with mod + SHIFT + [0-9]
|
||||
"$mod SHIFT, 1, movetoworkspace, 1"
|
||||
"$mod SHIFT, 2, movetoworkspace, 2"
|
||||
"$mod SHIFT, 3, movetoworkspace, 3"
|
||||
"$mod SHIFT, 4, movetoworkspace, 4"
|
||||
"$mod SHIFT, 5, movetoworkspace, 5"
|
||||
"$mod SHIFT, 6, movetoworkspace, 6"
|
||||
"$mod SHIFT, 7, movetoworkspace, 7"
|
||||
"$mod SHIFT, 8, movetoworkspace, 8"
|
||||
"$mod SHIFT, 9, movetoworkspace, 9"
|
||||
"$mod SHIFT, 0, movetoworkspace, 10"
|
||||
"$mod SHIFT, 1, movetoworkspacesilent, 1"
|
||||
"$mod SHIFT, 2, movetoworkspacesilent, 2"
|
||||
"$mod SHIFT, 3, movetoworkspacesilent, 3"
|
||||
"$mod SHIFT, 4, movetoworkspacesilent, 4"
|
||||
"$mod SHIFT, 5, movetoworkspacesilent, 5"
|
||||
"$mod SHIFT, 6, movetoworkspacesilent, 6"
|
||||
"$mod SHIFT, 7, movetoworkspacesilent, 7"
|
||||
"$mod SHIFT, 8, movetoworkspacesilent, 8"
|
||||
"$mod SHIFT, 9, movetoworkspacesilent, 9"
|
||||
"$mod SHIFT, 0, movetoworkspacesilent, 10"
|
||||
"$mod SHIFT, S, exec, clipshot"
|
||||
|
||||
# Scroll through existing workspaces with mod + scroll
|
||||
|
|
|
@ -86,9 +86,11 @@
|
|||
xdg.portal = {
|
||||
enable = true;
|
||||
wlr.enable = true;
|
||||
# gtk.enable = true;
|
||||
|
||||
extraPortals = with pkgs; [
|
||||
xdg-desktop-portal-wlr
|
||||
xdg-desktop-portal-gtk
|
||||
];
|
||||
};
|
||||
|
||||
|
|
|
@ -866,7 +866,7 @@ sudo nix run nixpkgs#ipmitool -- raw 0x30 0x30 0x02 0xff 0x00
|
|||
pkgs.writeText "header.tmpl"
|
||||
''
|
||||
<link rel="stylesheet" href="/assets/css/iosevkalyte.css" />
|
||||
<script async="" defer="" data-domain="lyte.dev" src="https://a.lyte.dev/js/script.js"></script>
|
||||
<script async="" defer="" data-domain="git.lyte.dev" src="https://a.lyte.dev/js/script.js"></script>
|
||||
'';
|
||||
forgejoCustomHomeTmpl =
|
||||
pkgs.writeText "home.tmpl"
|
||||
|
@ -1263,6 +1263,10 @@ sudo nix run nixpkgs#ipmitool -- raw 0x30 0x30 0x02 0xff 0x00
|
|||
};
|
||||
virtualisation.oci-containers.containers.minecraft-flanilla = {
|
||||
autoStart = false;
|
||||
|
||||
environmentFiles = [
|
||||
# config.sops.secrets."jland.env".path
|
||||
];
|
||||
image = "docker.io/itzg/minecraft-server";
|
||||
# user = "${toString uid}:${toString gid}";
|
||||
extraOptions = ["--tty" "--interactive"];
|
||||
|
|
|
@ -1,248 +1,8 @@
|
|||
{pkgs, ...}:
|
||||
/*
|
||||
## source: https://community.frame.work/t/speakers-sound-quality/1078/82
|
||||
let
|
||||
pipewire-speakers-profile-json = ''{
|
||||
"output": {
|
||||
"blocklist": [],
|
||||
"equalizer": {
|
||||
"balance": 0.0,
|
||||
"bypass": false,
|
||||
"input-gain": 0.0,
|
||||
"left": {
|
||||
"band0": {
|
||||
"frequency": 100.0,
|
||||
"gain": 0.0,
|
||||
"mode": "RLC (BT)",
|
||||
"mute": false,
|
||||
"q": 1.0,
|
||||
"slope": "x4",
|
||||
"solo": false,
|
||||
"type": "Hi-pass"
|
||||
},
|
||||
"band1": {
|
||||
"frequency": 150.0,
|
||||
"gain": 4.02,
|
||||
"mode": "RLC (BT)",
|
||||
"mute": false,
|
||||
"q": 3.0,
|
||||
"slope": "x1",
|
||||
"solo": false,
|
||||
"type": "Bell"
|
||||
},
|
||||
"band2": {
|
||||
"frequency": 600.0,
|
||||
"gain": -5.07,
|
||||
"mode": "RLC (BT)",
|
||||
"mute": false,
|
||||
"q": 4.000000000000008,
|
||||
"slope": "x1",
|
||||
"solo": false,
|
||||
"type": "Bell"
|
||||
},
|
||||
"band3": {
|
||||
"frequency": 1200.0,
|
||||
"gain": -3.49,
|
||||
"mode": "RLC (BT)",
|
||||
"mute": false,
|
||||
"q": 4.17,
|
||||
"slope": "x1",
|
||||
"solo": false,
|
||||
"type": "Bell"
|
||||
},
|
||||
"band4": {
|
||||
"frequency": 2000.0,
|
||||
"gain": 1.43,
|
||||
"mode": "RLC (BT)",
|
||||
"mute": false,
|
||||
"q": 4.0,
|
||||
"slope": "x1",
|
||||
"solo": false,
|
||||
"type": "Bell"
|
||||
},
|
||||
"band5": {
|
||||
"frequency": 5300.0,
|
||||
"gain": 3.84,
|
||||
"mode": "RLC (BT)",
|
||||
"mute": false,
|
||||
"q": 2.64,
|
||||
"slope": "x1",
|
||||
"solo": false,
|
||||
"type": "Bell"
|
||||
},
|
||||
"band6": {
|
||||
"frequency": 6000.0,
|
||||
"gain": 4.02,
|
||||
"mode": "RLC (BT)",
|
||||
"mute": false,
|
||||
"q": 4.36,
|
||||
"slope": "x1",
|
||||
"solo": false,
|
||||
"type": "Hi-shelf"
|
||||
},
|
||||
"band7": {
|
||||
"frequency": 7500.0,
|
||||
"gain": -2.09,
|
||||
"mode": "RLC (BT)",
|
||||
"mute": false,
|
||||
"q": 3.0,
|
||||
"slope": "x1",
|
||||
"solo": false,
|
||||
"type": "Bell"
|
||||
},
|
||||
"band8": {
|
||||
"frequency": 8000.0,
|
||||
"gain": 2.01,
|
||||
"mode": "RLC (BT)",
|
||||
"mute": false,
|
||||
"q": 4.36,
|
||||
"slope": "x1",
|
||||
"solo": false,
|
||||
"type": "Bell"
|
||||
},
|
||||
"band9": {
|
||||
"frequency": 900.0,
|
||||
"gain": -4.12,
|
||||
"mode": "RLC (BT)",
|
||||
"mute": false,
|
||||
"q": 5.909999999999967,
|
||||
"slope": "x1",
|
||||
"solo": false,
|
||||
"type": "Bell"
|
||||
}
|
||||
},
|
||||
"mode": "IIR",
|
||||
"num-bands": 10,
|
||||
"output-gain": -1.5,
|
||||
"pitch-left": 0.0,
|
||||
"pitch-right": 0.0,
|
||||
"right": {
|
||||
"band0": {
|
||||
"frequency": 100.0,
|
||||
"gain": 0.0,
|
||||
"mode": "RLC (BT)",
|
||||
"mute": false,
|
||||
"q": 1.0,
|
||||
"slope": "x4",
|
||||
"solo": false,
|
||||
"type": "Hi-pass"
|
||||
},
|
||||
"band1": {
|
||||
"frequency": 150.0,
|
||||
"gain": 4.02,
|
||||
"mode": "RLC (BT)",
|
||||
"mute": false,
|
||||
"q": 3.0,
|
||||
"slope": "x1",
|
||||
"solo": false,
|
||||
"type": "Bell"
|
||||
},
|
||||
"band2": {
|
||||
"frequency": 600.0,
|
||||
"gain": -5.07,
|
||||
"mode": "RLC (BT)",
|
||||
"mute": false,
|
||||
"q": 4.000000000000008,
|
||||
"slope": "x1",
|
||||
"solo": false,
|
||||
"type": "Bell"
|
||||
},
|
||||
"band3": {
|
||||
"frequency": 1200.0,
|
||||
"gain": -3.49,
|
||||
"mode": "RLC (BT)",
|
||||
"mute": false,
|
||||
"q": 4.17,
|
||||
"slope": "x1",
|
||||
"solo": false,
|
||||
"type": "Bell"
|
||||
},
|
||||
"band4": {
|
||||
"frequency": 2000.0,
|
||||
"gain": 1.43,
|
||||
"mode": "RLC (BT)",
|
||||
"mute": false,
|
||||
"q": 4.0,
|
||||
"slope": "x1",
|
||||
"solo": false,
|
||||
"type": "Bell"
|
||||
},
|
||||
"band5": {
|
||||
"frequency": 5300.0,
|
||||
"gain": 3.84,
|
||||
"mode": "RLC (BT)",
|
||||
"mute": false,
|
||||
"q": 2.64,
|
||||
"slope": "x1",
|
||||
"solo": false,
|
||||
"type": "Bell"
|
||||
},
|
||||
"band6": {
|
||||
"frequency": 6000.0,
|
||||
"gain": 4.02,
|
||||
"mode": "RLC (BT)",
|
||||
"mute": false,
|
||||
"q": 4.36,
|
||||
"slope": "x1",
|
||||
"solo": false,
|
||||
"type": "Hi-shelf"
|
||||
},
|
||||
"band7": {
|
||||
"frequency": 7500.0,
|
||||
"gain": -2.09,
|
||||
"mode": "RLC (BT)",
|
||||
"mute": false,
|
||||
"q": 3.0,
|
||||
"slope": "x1",
|
||||
"solo": false,
|
||||
"type": "Bell"
|
||||
},
|
||||
"band8": {
|
||||
"frequency": 8000.0,
|
||||
"gain": 2.01,
|
||||
"mode": "RLC (BT)",
|
||||
"mute": false,
|
||||
"q": 4.36,
|
||||
"slope": "x1",
|
||||
"solo": false,
|
||||
"type": "Bell"
|
||||
},
|
||||
"band9": {
|
||||
"frequency": 900.0,
|
||||
"gain": -4.12,
|
||||
"mode": "RLC (BT)",
|
||||
"mute": false,
|
||||
"q": 5.909999999999967,
|
||||
"slope": "x1",
|
||||
"solo": false,
|
||||
"type": "Bell"
|
||||
}
|
||||
},
|
||||
"split-channels": false
|
||||
},
|
||||
"loudness": {
|
||||
"bypass": false,
|
||||
"clipping": false,
|
||||
"clipping-range": 6.0,
|
||||
"fft": "4096",
|
||||
"input-gain": 0.0,
|
||||
"output-gain": 0.0,
|
||||
"std": "ISO226-2003",
|
||||
"volume": 6.999999999999991
|
||||
},
|
||||
"plugins_order": [
|
||||
"loudness",
|
||||
"equalizer"
|
||||
]
|
||||
}
|
||||
}'';
|
||||
in
|
||||
*/
|
||||
{
|
||||
{pkgs, ...}: {
|
||||
imports = [
|
||||
{
|
||||
system.stateVersion = "24.05";
|
||||
home-manager.users.daniel.home.stateVersion = "24.05";
|
||||
system.stateVersion = "24.11";
|
||||
home-manager.users.daniel.home.stateVersion = "24.11";
|
||||
networking.hostName = "foxtrot";
|
||||
}
|
||||
{
|
||||
|
@ -254,10 +14,9 @@ in
|
|||
sudo btrfs filesystem mkswapfile --size 32g --uuid clear /swap/swapfile
|
||||
sudo swapon /swap/swapfile
|
||||
*/
|
||||
{device = "/swap/swapfile";}
|
||||
];
|
||||
# findmnt -no UUID -T /swap/swapfile
|
||||
boot.resumeDevice = "/dev/disk/by-uuid/81c3354a-f629-4b6b-a249-7705aeb9f0d5";
|
||||
# boot.resumeDevice = "/dev/disk/by-uuid/81c3354a-f629-4b6b-a249-7705aeb9f0d5";
|
||||
# systemd.sleep.extraConfig = "HibernateDelaySec=180m";
|
||||
services.fwupd.enable = true;
|
||||
services.fwupd.extraRemotes = ["lvfs-testing"];
|
||||
|
@ -337,7 +96,7 @@ in
|
|||
];
|
||||
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
|
||||
monitor = [
|
||||
"eDP-1,2880x1920@120Hz,0x0,1.66667"
|
||||
"eDP-1,2880x1920@120Hz,0x0,1.5"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
@ -430,6 +189,7 @@ in
|
|||
kernelParams = [
|
||||
"rtc_cmos.use_acpi_alarm=1"
|
||||
"amdgpu.sg_display=0"
|
||||
"boot.shell_on_fail=1"
|
||||
"acpi_osi=\"!Windows 2020\""
|
||||
|
||||
# "nvme.noacpi=1" # maybe causing crashes upon waking?
|
||||
|
|
|
@ -162,6 +162,7 @@ in {
|
|||
in {
|
||||
enable = true;
|
||||
checkRuleset = true;
|
||||
flushRuleset = true;
|
||||
ruleset = with inf; ''
|
||||
table inet filter {
|
||||
## set LANv4 {
|
||||
|
|
|
@ -12,9 +12,59 @@
|
|||
btrfs inspect-internal map-swapfile -r /swap/swapfile
|
||||
https://wiki.archlinux.org/title/Power_management/Suspend_and_hibernate#Hibernation_into_swap_file
|
||||
*/
|
||||
kernelParams = ["boot.shell_on_fail"];
|
||||
# kernelParams = ["boot.shell_on_fail"];
|
||||
initrd.availableKernelModules = ["xhci_pci" "nvme" "ahci"];
|
||||
};
|
||||
|
||||
home-manager.users.daniel = {
|
||||
programs.hyprlock.settings = {
|
||||
label = [
|
||||
{
|
||||
monitor = "";
|
||||
font_size = 32;
|
||||
|
||||
halign = "center";
|
||||
valign = "center";
|
||||
text_align = "center";
|
||||
color = "rgba(255, 255, 255, 0.5)";
|
||||
|
||||
position = "0 -500";
|
||||
font_family = "IosevkaLyteTerm";
|
||||
text = "cmd[update:30000] acpi";
|
||||
|
||||
shadow_passes = 3;
|
||||
shadow_size = 1;
|
||||
shadow_color = "rgba(0, 0, 0, 1.0)";
|
||||
shadow_boost = 1.0;
|
||||
}
|
||||
];
|
||||
};
|
||||
services.hypridle = let
|
||||
secondsPerMinute = 60;
|
||||
lockSeconds = 10 * secondsPerMinute;
|
||||
in {
|
||||
settings = {
|
||||
listener = [
|
||||
{
|
||||
timeout = lockSeconds + 55;
|
||||
on-timeout = ''systemctl suspend'';
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
wayland.windowManager.hyprland = {
|
||||
settings = {
|
||||
exec-once = [
|
||||
"eww open bar0"
|
||||
];
|
||||
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
|
||||
monitor = [
|
||||
"eDP-1,1920x1080@60Hz,0x0,1.0"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
hardware.bluetooth.enable = true;
|
||||
}
|
||||
|
|
|
@ -28,6 +28,7 @@ restic-rascal-ssh-private-key: ENC[AES256_GCM,data:ddsOs0XsayyQI9qc6LzwQpdDnfwNp
|
|||
restic-ssh-priv-key-benland: ENC[AES256_GCM,data:G+uiYZTvqXhpJb66j6Q6S+otlXeRX0CdYeMHzSMjIbvbI0AVm0yCU7COO5/O8i47NpvrKKS1kVxVEK8ixLRUowkl3hgRXhxsBIPFnpkMD0ENmJttm4HOpi0qIWMwzPYTjkz/slY4HcTFnCfYy1ZpURQdWwZsr1EdAA05bUMTtM22R3uOMzjO8uf72PCWX7yffo8MxsLmWvNVAOhVlrb2H5KQNR/IquFK3TFoZitq5nVDG9tcEFkX+lgA3zsmCHU/2DvvodgeRoltaAFvgjVznNGf4e5p8owHUtSzX52HwGZRiUlMuhpre2gm1r73n8AyZe41II+LX/85fMfZDdyayIGv3AAMBib8H0/AoChexRcdLQEmzOgRrXsgucDJrWSWP6WMBVyamUm79m5ep0fvL1lJftuJqN0uuq9dBrispdso4x+6jk/pDf5pEM/FE6s1rY832BEb7q0PnjyvVogOez+cIihmMpDdnS0A/8TFzg29i3C+93x5vrt3k7atNzR/jN+/GqX2FKLzxWrrIw2d,iv:IP+N8JQu+XRvwTtBnxu54ujzU5UliltXG3mk9HfJaN8=,tag:4oinE9QMaSh8IfUd/ttM3Q==,type:str]
|
||||
paperless-superuser-password: ENC[AES256_GCM,data:lypWK73mOYI2hyQAW/4T3cDiVtsts3kKb7LZb9ES3n97Kn5l,iv:jBHUBFbb4GqQ3gnK0h5VCaGj3/kd3/eGa1QFiE7+B9I=,tag:UoQar+x1xVnCV2k+9hYjWA==,type:str]
|
||||
factorio-server-settings: ENC[AES256_GCM,data:KlHkHGenkoLtqt0YCETwQdhH0tvvqsyake3lC9Wimso3Y8IXvDfkLpOTE53Jq4frf1QMJh0LYyle+AmIgGvB0gAp/4fM1E4Ah9JPtKkcjVPyQIypuaDsPaVQMxMlJt1+TLX2fbSWdxOo0lulNg==,iv:AHq37PY3ZxKF0+ClUrSvhJSBuXFtGZLBZW/ZADrVqLI=,tag:B0gFyy6rmd6CGJfzAhO02A==,type:str]
|
||||
flanilla.env: ENC[AES256_GCM,data:qp0cpjHgpFx2gICtH8vNusJt08MLOIS3,iv:lugXNEJpMJ8mSwvo2jDwTwsY0x3kcHQDc29Z2Wz+LB4=,tag:0/FWQKUXePemFWGXbH1Tjg==,type:str]
|
||||
sops:
|
||||
kms: []
|
||||
gcp_kms: []
|
||||
|
@ -52,8 +53,8 @@ sops:
|
|||
bGpacHFRSkJYUUMwOEh4cVBXZ1NESmsKa5EhZ7148ojCqZldukLcPLr93HqnpNgq
|
||||
rMI0Nyz4Z4lkTVMRpA94zyNTkNwJ02/CYcKi8EJi6jGZnNPUTcnTwg==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
lastmodified: "2024-10-22T22:31:46Z"
|
||||
mac: ENC[AES256_GCM,data:nCGtkRXZuo3SZLjL2I3fJelaS1g9U4SVdzPZlZPgXzCWVyxokIMFwoSM15HgDu5KsFR+3kIfWVzIQk/lwt9lQPG3O6iUkfPRsIg0dnVrNSauNk0QXR91vCVlDmbFuDUf0C4EVrbE9RRgHzGzToSJYxQHSInMYVhJBcBfdbYZF9A=,iv:qu6p45+ATOs5Ms3bqM8ynXK0tKnN3wNmtwAsc2DSQbU=,tag:xpTeHWawPXfeqq/azPIPPg==,type:str]
|
||||
lastmodified: "2024-12-26T16:42:22Z"
|
||||
mac: ENC[AES256_GCM,data:COh57637D7BnYa2ke+SsGnRuyWmS3X6xDJNV0ATWEHqKjckZ2tqyfL1ugGuokmqilIsRcXi2q5sqCd8uNrWZLicZ/6eQ5w7CqoFU8OEON6ERibQ36X0oLsz9teuT+bx9ZMfzYOKh0LZY0XP9es7W+4PC3XiBJcIB2GWTTrrGaI4=,iv:aeBvVjC7Qn/ohYmpC6lvcve0bMSBsvfRSa1kyiyj0Rg=,tag:hld5rkOq5mfcGFShKuKgng==,type:str]
|
||||
pgp: []
|
||||
unencrypted_suffix: _unencrypted
|
||||
version: 3.9.0
|
||||
version: 3.9.1
|
||||
|
|
|
@ -8,20 +8,20 @@ sops:
|
|||
- recipient: age1stdue5q5teskee057ced6rh9pzzr93xsy66w4sc3zu49rgxl7cjshztt45
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBCTitMaFRiK1BSMEcwRmNk
|
||||
Q0hmOGlZSFpkUUhyZkkwSU40QXB5cmlkR1FRCkRhbVBXQ2FjUzRhdEhrSEZKcWhM
|
||||
dTNuVUljU0NSbVQzbXhZeFNENmN5QjgKLS0tIDFncEMrUCtWWTMyUGZIelY5aXB4
|
||||
NmJWeDFSVVoxZCtRWlhNNXNyVWRvY28KgPbg6RScxBrxI0DvD6R7iKm8/70kJLdG
|
||||
FhbgK9d/7UPMfefluEah7vKzXV/dn+/4KsCJuKFFZ1AsM5hDFQ+JGQ==
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBlSFVjMEhNUEF5Q1ZWRmRB
|
||||
cUQvQ0JYY2ZzNndPeVN4UTNhTUxZVzBvc3hBCkcwNHUyeEhMZFFHU3RIQWlONTRT
|
||||
dUhlZUlHRjJQeGZwRk9td1FSZzZtR0kKLS0tIHphbVpncE9HLys2bWJicUtmU2Fp
|
||||
b05GOEpRVURQYnJSZzhhalp3TW1kbHMKk/z68IP6WMZV+PbjJvM2EWhacJZoLMj3
|
||||
iSGt5TqerVUOrQT00+Gx3laImdismLp9CjulEl82QyaYpmUvVYkEMA==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
- recipient: age1ez4why08hdx0qf940cjzs6ep4q5rk2gqq7lp99pe58fktpwv65esx4xrht
|
||||
- recipient: age12x49p3mwf27r9gdkfmfqu7lr6gwcwznlhcvcgmv8dz3gac2mkdgsp36y9p
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBXa1owK21QNUovZzZHekpw
|
||||
OWdsSy9ZcmhGNzc1enNGVHRHTTlSb1E5UEJJCkF3MlpYQ1c5UGNySk94aENHMDh2
|
||||
ME1rUlZscHFYSUVwOWFSczZGV2Z5aEEKLS0tIFlXTUFZaVJtWXltZGdEZzJPSjFJ
|
||||
bTdCNS9zMzdvT2NiZVRyT1JzVmRFUFEKguq2i4rnVvGECZlUcEEubXfv4Ya/zI1N
|
||||
3mWQslPHgnnWuwG7flbvafHYnyZCXsMqNKnNDM6wayDgKAbtCx3Syg==
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB6eW9QekJRTzlNWHVvK3hD
|
||||
b0ZTWDdWY2RiZTBwZEZMcnpEMjlydkJrOGlrCldxZFhHcjlGRVRYNVJEc0R4Y1BZ
|
||||
TldMNW81a2VjMm5SWHhHNFRVMWlFQTgKLS0tIEIycWtsT3pEbVZIc2FvZGpsbENz
|
||||
MENZdE13U2J0eWtoOHJSbEJ3TVFUS2sK23t+MAjYfBI1j7B97mU0akq8zuRh7pOv
|
||||
admjZR86rxMqs/Guj+nKhQ2pn/JeozlPOvwiaxD9eIVJBtIQK2my4A==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
lastmodified: "2024-09-14T12:41:15Z"
|
||||
mac: ENC[AES256_GCM,data:sO3omCYH1urB/qcW3VippCinCUO1cmp5KrUSQk5ms7k+i9xUhdL3tTYHGVTa4PHV6VluukKnHuwAijo+rneNdCeMdIkAEskk/X6SDYgkwmjXuNcNEA4la22EqSrenJ8W3UafHDvP8+vpUKAzVo0E82Vmo9/YNJaqvqQM8PtciSc=,iv:2GboNZpAezZsWK3CbcwVw40zW4CucP3JhsYlvZ/Hy2M=,tag:w3XmkN76oYV+PmliPB01MQ==,type:str]
|
||||
|
|
1
templates/rust/.gitignore
vendored
1
templates/rust/.gitignore
vendored
|
@ -1,3 +1,4 @@
|
|||
/target
|
||||
/result
|
||||
/.direnv
|
||||
/.pre-commit-config.yaml
|
||||
|
|
|
@ -3,12 +3,12 @@
|
|||
inputs.git-hooks.url = "github:cachix/git-hooks.nix";
|
||||
inputs.git-hooks.inputs.nixpkgs.follows = "nixpkgs";
|
||||
outputs = inputs: let
|
||||
inherit (import nix/boilerplate.nix inputs) fullImport genPkgs;
|
||||
inherit (import nix/boilerplate.nix inputs) call genPkgs;
|
||||
in {
|
||||
# overlays = import nix/overlays.nix;
|
||||
checks = fullImport nix/checks.nix;
|
||||
packages = fullImport nix/packages.nix;
|
||||
devShells = fullImport nix/shells.nix;
|
||||
checks = call (import nix/checks.nix);
|
||||
packages = call (import nix/packages.nix);
|
||||
devShells = call (import nix/shells.nix);
|
||||
formatter = genPkgs (p: p.alejandra);
|
||||
};
|
||||
}
|
||||
|
|
|
@ -4,7 +4,7 @@ inputs @ {
|
|||
...
|
||||
}: let
|
||||
forSelfOverlay =
|
||||
if builtins.hasAttr "forSelf" self.overlays
|
||||
if builtins.hasAttr "overlays" self && builtins.hasAttr "forSelf" self.overlays
|
||||
then self.overlays.forSelf
|
||||
else (_: p: p);
|
||||
in rec {
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{pkgs, ...}: rec {
|
||||
lyrs = pkgs.rustPlatform.buildRustPackage {
|
||||
pname = "lyrs";
|
||||
my-package = pkgs.rustPlatform.buildRustPackage {
|
||||
pname = "my-binary";
|
||||
version = "0.1.0";
|
||||
|
||||
/*
|
||||
|
@ -15,38 +15,8 @@
|
|||
|
||||
src = ./..;
|
||||
hash = pkgs.lib.fakeHash;
|
||||
cargoHash = "sha256-XHCXOlG4sdr1A3lqIK/7bB3soms1jxMIdfsFABmHVog=";
|
||||
cargoHash = pkgs.lib.fakeHash;
|
||||
};
|
||||
|
||||
pwatch = pkgs.writeShellScriptBin "pwatch" ''
|
||||
dir="$(dirname "$(cargo locate-project --workspace --message-format plain)")"
|
||||
pushd "$dir"
|
||||
|
||||
additional_watchexec_args=""
|
||||
if [[ -f apps/$pkg/build.rs ]]; then
|
||||
additional_watchexec_args="--watch apps/$pkg/build.rs"
|
||||
fi
|
||||
|
||||
pkg="$1"; shift
|
||||
cargo_subcmd="$1"; shift
|
||||
cargo_subcmd_args="$@"; shift
|
||||
|
||||
argfile="apps/$pkg/.watchexec.argfile"
|
||||
argfile_args=""
|
||||
|
||||
if [[ -f $argfile ]]; then
|
||||
argfile_args="@$argfile"
|
||||
fi
|
||||
watchexec $argfile_args --stop-timeout 0s --restart \
|
||||
--watch Cargo.toml \
|
||||
--watch libs \
|
||||
--watch apps/$pkg/src/ \
|
||||
--watch apps/$pkg/Cargo.toml \
|
||||
$additional_watchexec_args \
|
||||
cargo "$cargo_subcmd" --package "$pkg" "$cargo_subcmd_args"
|
||||
|
||||
popd
|
||||
'';
|
||||
|
||||
default = lyrs;
|
||||
default = my-package;
|
||||
}
|
||||
|
|
|
@ -5,9 +5,9 @@
|
|||
}: let
|
||||
inherit (pkgs) system;
|
||||
in rec {
|
||||
lyrs-dev = pkgs.mkShell {
|
||||
my-package-dev = pkgs.mkShell {
|
||||
inherit (self.checks.${system}.git-hooks) shellHook;
|
||||
inputsFrom = [self.packages.${system}.lyrs];
|
||||
inputsFrom = [self.packages.${system}.my-package];
|
||||
packages = with pkgs; [
|
||||
convco
|
||||
rustPackages.clippy
|
||||
|
@ -18,5 +18,5 @@ in rec {
|
|||
lldb
|
||||
];
|
||||
};
|
||||
default = lyrs-dev;
|
||||
default = my-package-dev;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue