Compare commits
5 commits
3d1a754d06
...
d0cfc40985
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d0cfc40985 | ||
|
|
b680a9fb53 | ||
|
|
d185bdd9aa | ||
|
|
597bd5cc75 | ||
|
|
7c51db8359 |
12 changed files with 179 additions and 42 deletions
30
flake.nix
30
flake.nix
|
|
@ -56,21 +56,17 @@
|
|||
} @ inputs: let
|
||||
inherit (nixpkgs) lib;
|
||||
|
||||
systemFromHardwareConf =
|
||||
hostname:
|
||||
let
|
||||
hardware = import ./hosts/${hostname}/hardware-configuration.nix;
|
||||
args = builtins.functionArgs hardware // { lib.mkDefault = lib.id; };
|
||||
in
|
||||
systemFromHardwareConf = hostname: let
|
||||
hardware = import ./hosts/${hostname}/hardware-configuration.nix;
|
||||
args = builtins.functionArgs hardware // {lib.mkDefault = lib.id;};
|
||||
in
|
||||
(hardware args).nixpkgs.hostPlatform;
|
||||
|
||||
importNixpkgs = system: nixpkgs:
|
||||
let
|
||||
config.allowUnfreePredicate =
|
||||
pkg:
|
||||
builtins.elem (lib.getName pkg) (import ./unfree.nix).allowed;
|
||||
in
|
||||
import nixpkgs { inherit system config; };
|
||||
importNixpkgs = system: nixpkgs: let
|
||||
config.allowUnfreePredicate = pkg:
|
||||
builtins.elem (lib.getName pkg) (import ./unfree.nix).allowed;
|
||||
in
|
||||
import nixpkgs {inherit system config;};
|
||||
|
||||
makeHost = host: system:
|
||||
lib.nixosSystem {
|
||||
|
|
@ -83,14 +79,18 @@
|
|||
./system
|
||||
{networking.hostName = host;}
|
||||
|
||||
./home
|
||||
./home
|
||||
];
|
||||
};
|
||||
in {
|
||||
nixosConfigurations = lib.pipe ./hosts [
|
||||
builtins.readDir
|
||||
(lib.filterAttrs (_: type: type == "directory"))
|
||||
# (lib.filterAttrs (name: _: builtins.pathExists ./hosts/${name}/default.nix && builtins.pathExists ./hosts/${name}/hardware.nix && builtins.pathExists ./hosts/${name}/config.nix))
|
||||
(lib.filterAttrs (
|
||||
name: _:
|
||||
builtins.pathExists ./hosts/${name}/default.nix
|
||||
&& builtins.pathExists ./hosts/${name}/hardware-configuration.nix
|
||||
))
|
||||
(builtins.mapAttrs (name: _: makeHost name (systemFromHardwareConf name)))
|
||||
];
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{ sops-nix, stylix, ...}: {
|
||||
{sops-nix, ...}: {
|
||||
imports = [
|
||||
sops-nix.homeManagerModules.sops
|
||||
|
||||
|
|
@ -9,13 +9,14 @@
|
|||
|
||||
./env.nix
|
||||
|
||||
./firefox
|
||||
#zen-browser (WIP)
|
||||
# ./firefox
|
||||
|
||||
./alacritty.nix
|
||||
./clipman.nix
|
||||
./common.nix
|
||||
./direnv.nix
|
||||
# ./firefox.nix
|
||||
./firefox.nix
|
||||
./fzf.nix
|
||||
./git.nix
|
||||
./gpg.nix
|
||||
|
|
@ -25,7 +26,7 @@
|
|||
./sops.nix
|
||||
./ssh.nix
|
||||
./stylix.nix
|
||||
./thunderbird.nix
|
||||
# ./thunderbird.nix
|
||||
./zsh
|
||||
];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
{
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
programs.helix = {
|
||||
|
|
@ -31,6 +32,10 @@
|
|||
];
|
||||
separator = "|";
|
||||
};
|
||||
inline-diagnostics = {
|
||||
cursor-line = "hint";
|
||||
other-lines = "warning";
|
||||
};
|
||||
lsp = {
|
||||
display-messages = true;
|
||||
display-inlay-hints = true;
|
||||
|
|
@ -48,5 +53,51 @@
|
|||
};
|
||||
};
|
||||
};
|
||||
|
||||
languages = {
|
||||
language-server = {
|
||||
rust-analyzer = {
|
||||
config = {
|
||||
checkOnSave.command = "clippy";
|
||||
cargo.features = "all";
|
||||
cargo.unsetTest = [];
|
||||
};
|
||||
};
|
||||
pyright = {
|
||||
command = "${pkgs.pyright}/bin/pyright-langserver";
|
||||
args = ["--stdio"];
|
||||
config = {};
|
||||
};
|
||||
nil.command = "${pkgs.nil}/bin/nil";
|
||||
bash-language-server = {
|
||||
command = "${pkgs.bash-language-server}/bin/bash-language-server";
|
||||
args = ["start"];
|
||||
};
|
||||
};
|
||||
|
||||
language = [
|
||||
{
|
||||
name = "python";
|
||||
auto-format = true;
|
||||
language-servers = [{name = "pyright";}];
|
||||
formatter = {
|
||||
command = "/bin/sh";
|
||||
args = [
|
||||
"-c"
|
||||
"${pkgs.isort}/bin/isort - | ${pkgs.black}/bin/black -q -l 120 -C -"
|
||||
];
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "nix";
|
||||
auto-format = true;
|
||||
language-servers = [{name = "nil";}];
|
||||
formatter = {
|
||||
command = lib.getExe pkgs.nixfmt-rfc-style;
|
||||
args = ["-s"];
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,20 +1,23 @@
|
|||
{lib, config, ... }: {
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
data = {
|
||||
directories = [
|
||||
".config/syncthing"
|
||||
".config/sops"
|
||||
".config/keepassxc"
|
||||
".config/obsidian"
|
||||
".config/vesktop"
|
||||
".gnupg"
|
||||
".ssh"
|
||||
|
||||
".thunderbird"
|
||||
".mozilla"
|
||||
".zen"
|
||||
|
||||
"nixos"
|
||||
"sync"
|
||||
"obsidian"
|
||||
"code"
|
||||
".keepass"
|
||||
".local/share/PrismLauncher"
|
||||
|
|
@ -28,11 +31,9 @@
|
|||
cache = {
|
||||
directories = [
|
||||
".cache/nix"
|
||||
".cache/spotify"
|
||||
".cache/keepassxc"
|
||||
".cargo"
|
||||
".local/state/wireplumber"
|
||||
"tmp"
|
||||
];
|
||||
files = [];
|
||||
};
|
||||
|
|
|
|||
17
hosts/lilith-pad/default.nix
Normal file
17
hosts/lilith-pad/default.nix
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
{lib, ...}: let
|
||||
mkHostOverride = lib.mkOverride 75;
|
||||
in {
|
||||
system.stateVersion = "24.11";
|
||||
|
||||
desktop.enable = true;
|
||||
gaming.enable = false;
|
||||
nfs.client.enable = true;
|
||||
auto_styling.enable = true;
|
||||
|
||||
home-manager.users."lilith".wayland.windowManager.hyprland.settings = {
|
||||
monitor = mkHostOverride [
|
||||
"eDP-1, 1920x1080, 0x0, 1"
|
||||
", perferred, auto, 1"
|
||||
];
|
||||
};
|
||||
}
|
||||
38
hosts/lilith-pad/hardware-configuration.nix
Normal file
38
hosts/lilith-pad/hardware-configuration.nix
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
# 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, ... }:
|
||||
|
||||
{
|
||||
imports =
|
||||
[ (modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "usb_storage" "sd_mod" "sdhci_pci" ];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems."/" =
|
||||
{ device = "/dev/disk/by-uuid/080fa116-424e-4079-a2a6-658a230e2721";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
fileSystems."/boot" =
|
||||
{ device = "/dev/disk/by-uuid/40E8-A12D";
|
||||
fsType = "vfat";
|
||||
};
|
||||
|
||||
swapDevices = [ ];
|
||||
|
||||
# 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
|
||||
# still possible to use this option, but it's recommended to use it in conjunction
|
||||
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||
networking.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.enp0s31f6.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.wlp0s20f3.useDHCP = lib.mkDefault true;
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
}
|
||||
40
hosts/lilith-pad/secrets/default.yaml
Normal file
40
hosts/lilith-pad/secrets/default.yaml
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
user:
|
||||
password: ENC[AES256_GCM,data:k4BAMMKgSsNAnCy5RJfhQPJG4P49hHTFVJDvc8ArqY3VeEH60XPK+m+b8vAHc4nUCt7dNRxuMG365/9jJhZI+DiX6614fe+Iug==,iv:PmNOUnu2eBhdtWB4Gkpj4RbHwV5Ac/UPJSF0XifWSzE=,tag:MeoLAKHM0hiylaFBOqpNPw==,type:str]
|
||||
ssh:
|
||||
public: ENC[AES256_GCM,data:4bA7PVMd8UY1D93A85S6yPIIbAt4FfbQN72lOZ3Pf+su4MGQvz9UcN6a+b+p/Qo8us4sjXutfdPiv5qDEnsDvc0uuS9R8avSw/vqzfF4rQ7NAn59/fjAJwcaPwwTqsTiBXFhcOs=,iv:qZKApe16ElXdw8MOePyvo1wqpXnTD651w0122omu+ik=,tag:P9fxALfO74yK8aSazgX68g==,type:str]
|
||||
private: ENC[AES256_GCM,data:INtOHRiH+lTGH6zTtjzO/VoYsNRVFBDaWpTjAnHEv+YgXAslHTF7AvFoM9XKvjLCe3x3celD8r4yd//vof6WRuGpr4foIN09CXS0VO0fEkcNo224ajNc+FGEUNzeWjCqDW8Jvlyq7tEE+ywjVM4MF/IeyHM3Oh93gTprq+ZjzXYfXuqElVzlcLJaOGIAXmqWqUtzmGh7xx2TXfapkCi8oHm3cx7/A8FG7kBxyCcJ/3aIzrWZo5zHdts8l+qB5hc86vwHVZ3WVBfuXKpTaXCzQHRRaw7vaIP5O2V8bpU8p56TxYDl9N8GrbF5S38AxwtW+FHZKLXD33I3uQk4qztpvT8AvStnMM4x2D8JIhWN7LYmbMFuJng5UfzwLveIVPl5MIHAtVvk2W/QTw/5+kbqHIud3UWv5o/vbnm8l88q5WlO0U9CgRmV0FPTK/hdEj+tEUR6AzFi/Ea6Qiv0BGVGLOHWYszfXzKA1mss+MteR9k+PQqx4wsQM9nWnMOTQGf99RMyeHG1u68gsKy55dvEMXx0lo2iUcdBttVHZaUP5baiOhr6VS74rBxpeLBN03Vzj6A6fG1b2u6V5vSZ6sC1MFlgL1gjwLzGlqi3thVAV9g=,iv:CHie+Sns7HefRwBqdo2Gw1UexHS+W1y6t4etbHA//5Y=,tag:X3U1+wHVzRBUOl8sNo8jtg==,type:str]
|
||||
syncthing:
|
||||
cert.pem: ENC[AES256_GCM,data:zVGfurUvMA28jtWqBBHmlz+ujHGd9/ogZYLL1AMb8njzi5BJZHW0+QaHhLqjw7BKNs9CDmpIhIytvkY9WFoQ6zJe477ndXr7lPDdpoLkEDCZKXypVjAOuqHXTXJ44RI6hU87347bq2BP1Ph9847hryA4iWicdhYLj0SrFcQVu2MnGWJZ75k1eUqELjgT6rqmR7jzRs0Z4mGaGRwrG1Bi76mkfrOe0SVV6iE8Kk3U3iYDcqraWbS3Y3Fdr+UgPuK7uJ5RO5MFMjS1CHmUvo+K/tgcH74r2NS7FQBHnG5Ec0MMW1r08W5odd93oAJUC/PWYUW4giSahp1G+GyGMO3NSmTMW5PJ524I8izRRVg2jO9usv6ukxC9oUV4DIz9kpj9yVnHA7MJCw6yJTveLQMumYxKyorQUxkPDAyYty56D56mOnaxgRT7GsDkuj6VJ5aujqvzUq1f7bwxe43g75IY5BQpzWOufsCvnGt76dmZw3+gdsw4noQEv+Hm3FOvLnBA8H0hzDAtIs0Yy4GdviZj0687ZqAdM8y6+hOvC6UxSm5OkplCAi2E5yte5OS6csvMWR2atT6D13jZFU3PL7aIw0Z8y2Gx/jVlr68UHOn6jvonQzc2+fZmcQJL8aHW6jsDroIYHbl98OAFg+WE/Yp/lV3ffczhfzoH25qL8AHiHXwsBPOVkkpFSBxrNO2XFeDIEkl73amjCvkM1X3AxHBTgCgK2Y2kkvpwOiwUQdt5/YcLGgIWkpHpPDfGiqOkkMsWZbGcGPQtkUnhu16ul4+NUFDwiE2CYaw5+cPpdLq8DWv//V0iKcHP4jinYM+ZaUIh1loupdinhGKIeX+xNFcf9kB6dcdjR7TliN7gb5ekynSxjHM3i3EFp47bhkMbQpLVzOKZ8vgeb/eVU+t97lPNxhioHAeRPwIoxq8lnLHhY7p7AN0gzsfOeDKz2BuxaaFI0DCg63aJC2nHpvy+5lWtWYto6rUB2q4JTA9oKm6RLDcDaYTLfpQtM9sdH9N5TDsCukPVm+e6gr9AbjG8IFt9QUGb0UxzkqY20bI=,iv:XIhlEi02Il+RdKPjqRIPCg1ooij8ipTbbUZlupijTVg=,tag:7mU3OWolhHxtsN6rHs8vIQ==,type:str]
|
||||
key.pem: ENC[AES256_GCM,data:fo8ejY1p+oBwy4L5WiecLQLkwKVdVEi7fzKb8/ACD+7qKXMk+MChW1MeUrFjWCHtHIdw3Ld7SrCmEC/3cqL87aFiZFBOv/cV4Jkvy1kEmZLuKo8wM5Vn+7Ec4WVDAbqhiT5MEgaWHdSgmv2kvkeUnH4LJSx9uohRTgKlO0eIqY9aXO5PqZEPLuHvvTrUi1OCvadaAsKHx3yqTm2tuqK7mPzOL2A4WLQRMKSlQIbzgTz2CShql8D6/crzIAoQVnXf+/KbqzRw3NKtIzQA0aSx1tA4DjPSugWkx+sqjUShYOfZ8Rnbto5/Nbmk4QTaCkvsOli4lazGAKmPtMVBXfbFvZUXiZ/QoawVmsw1MMCCtaRpV7cEAKHJCZ+lRA4CUoJm,iv:JQHPAdW1gJxpZaBcY/BdRBweEYAAj0ZWwAeHFR4J5zo=,tag:i5VWdxTu+Wez3poflwGiog==,type:str]
|
||||
sops:
|
||||
kms: []
|
||||
gcp_kms: []
|
||||
azure_kv: []
|
||||
hc_vault: []
|
||||
age:
|
||||
- recipient: age1mqw75xvd2gnhx2wsmkr8yctegjfym6xkypwjh82s3yws2glk4vms3cxqaz
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBKRWRJOWZQY1ZpWGQ4ZXND
|
||||
RC83eEZGZkVjelkxZDNkdlMvODN6a0dnWFRRCmxGT0U1dWJ1bWJDQVRHYmlQMHZQ
|
||||
Z0Rza3dYNi9iTFZLSUVuL0UwUzVZNk0KLS0tIDd2eDNWYjd5MC9mcTd3clFBdmpY
|
||||
OW5yTndZYU16NTYrdDZRUjZJS25VbEUKmD4HAa0e2p8SRw5mlzgh+ByFqCDhj8wv
|
||||
QumEed0Hb9jve8aO8K9MEayxi5jIULFYuYWD8D1RF/74UGrgBTAykA==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
lastmodified: "2025-03-15T23:51:41Z"
|
||||
mac: ENC[AES256_GCM,data:ey5F1mZf8Ndm+9hJo38X6dhD6cVZ1T+YjtHSQsCjzpT9va8/zmsic5VMS5rlxCsR7TtiJG+sN6xQ9rsvQjE/mCSb8raQTCRa0XufpO7Yqekwyi8fOWdVf6tBIbdSOkJDARD4AVmmGRZWpTHAX2oMnH/rYT0+MOZQ6Q6LQ7lumq8=,iv:6hntrUy0jlkdp5MIV6GNvGbNYFrcOgKoWaIU/vORg88=,tag:7rcHIuubqZk1RlppgXYiZQ==,type:str]
|
||||
pgp:
|
||||
- created_at: "2025-03-15T23:51:35Z"
|
||||
enc: |-
|
||||
-----BEGIN PGP MESSAGE-----
|
||||
|
||||
hF4DCgMW7d7co2gSAQdAbaGKvZ8a7yxQcjrCPON8SFJC1rlZDdKZfZ9LXQubbkMw
|
||||
e94lKw5Tq2cn5iwGgRvYG6CmxLXmX6rk9ylVyKPWzHPjiA3Pk1eiTZ6neStFoKWG
|
||||
1GgBCQIQjsaVzLGjQWWxc87gRkwpTHTS2GCSnUz06E4gD42JuUKO5Au/IHWwLmua
|
||||
HDrwSNqAlns1mALRm7Nb0R68EFouc532WQdpUK1F8T0454wHyOnMvE1fzBkiGSrq
|
||||
9g50Dinv/s3ALQ==
|
||||
=Sk/E
|
||||
-----END PGP MESSAGE-----
|
||||
fp: 3586D8D6689B9C9ECD598C588712A0F317C37175
|
||||
unencrypted_suffix: _unencrypted
|
||||
version: 3.9.2
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
{
|
||||
system = "x86_64-linux";
|
||||
}
|
||||
|
|
@ -1,22 +1,20 @@
|
|||
{ config, lib, ...}: {
|
||||
|
||||
{lib, ...}: let
|
||||
mkHostOverride = lib.mkOverride 75;
|
||||
in {
|
||||
system.stateVersion = "24.11";
|
||||
|
||||
desktop.enable = true;
|
||||
gaming.enable = true;
|
||||
nfs.client.enable = true;
|
||||
auto_styling.enable = true;
|
||||
|
||||
|
||||
|
||||
home-manager.users."lilith".wayland.windowManager.hyprland.settings = {
|
||||
input.kb_layout = lib.mkForce "us";
|
||||
input.kb_layout = mkHostOverride "us";
|
||||
|
||||
monitor = lib.mkForce [
|
||||
monitor = mkHostOverride [
|
||||
"DP-3, 3840x2160, 0x0, 1.5"
|
||||
"DP-4, 2560x1440, 2560x0, 1"
|
||||
",preferred,auto,1"
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{ zen-browser, ...}: {
|
||||
{...}: {
|
||||
imports = [
|
||||
./audio.nix
|
||||
./bluetooth.nix
|
||||
|
|
@ -15,6 +15,5 @@
|
|||
./syncthing.nix
|
||||
./users.nix
|
||||
./zsh.nix
|
||||
zen-browser.nixosModules.zen-browser
|
||||
];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{ lib, ...}: {
|
||||
{...}: {
|
||||
nix = {
|
||||
gc = {
|
||||
automatic = true;
|
||||
|
|
@ -12,8 +12,4 @@
|
|||
trusted-users = ["root" "@wheel"];
|
||||
};
|
||||
};
|
||||
|
||||
# nixpkgs.config.allowUnfreePredicate = (pkg: builtins.elem (lib.getName pkg) [
|
||||
# "steam"
|
||||
# ]);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,5 +3,4 @@
|
|||
./core
|
||||
./optional
|
||||
];
|
||||
# system.stateVersion = "24.11";
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue