Compare commits
35 Commits
main
...
93f81a1f7f
| Author | SHA1 | Date | |
|---|---|---|---|
|
93f81a1f7f
|
|||
|
ba58db5873
|
|||
|
9fbb2574d4
|
|||
|
55c5f90b5f
|
|||
|
439b3e5470
|
|||
|
bd559c0507
|
|||
|
c9d93f2e13
|
|||
|
e5c5a641e2
|
|||
|
d001b30906
|
|||
|
32d8f9bd4f
|
|||
|
1caf2a2583
|
|||
|
07e47f87e6
|
|||
|
5f063d825e
|
|||
|
205b0a516b
|
|||
|
a9fec07b50
|
|||
|
00411b9d9f
|
|||
|
cea20ef832
|
|||
|
a0963d09f0
|
|||
|
53502772a0
|
|||
|
d002ca372e
|
|||
|
f4387c8865
|
|||
|
b5720666ea
|
|||
|
5a8bd09491
|
|||
|
b99ccfc588
|
|||
|
6cc1c98f75
|
|||
|
58c8146cc0
|
|||
|
540359308e
|
|||
|
26195b6411
|
|||
|
c4025a9caa
|
|||
|
5ef0b0b9a6
|
|||
|
51293382e8
|
|||
|
5340ec1756
|
|||
|
1b80778422
|
|||
|
0d3c5c559f
|
|||
|
3c57067a6f
|
@@ -2,9 +2,10 @@
|
|||||||
creation_rules:
|
creation_rules:
|
||||||
# Rule to encrypt YAML secret files in a specific directory
|
# Rule to encrypt YAML secret files in a specific directory
|
||||||
- encrypted_regex: '^(data|stringData)$' # Encrypt data and stringData by default (useful for Kubernetes secrets)
|
- encrypted_regex: '^(data|stringData)$' # Encrypt data and stringData by default (useful for Kubernetes secrets)
|
||||||
path_regex: secrets/.*\.yaml$ # Applies to all files in the secrets/ directory
|
path_regex: config/modules/secrets/content/*.*\.yaml$ # Applies to all files in the secrets/ directory
|
||||||
age:
|
age:
|
||||||
- "age1ykcy2r4kk729e7adqxu8s24ujc60z5eux7ma0ca4ruzydwgm5p6qmdp838" # pc-user-doloro
|
- "age1ykcy2r4kk729e7adqxu8s24ujc60z5eux7ma0ca4ruzydwgm5p6qmdp838" # pc-user-doloro
|
||||||
- "age1e6vws55p0g23qzthm4qa93hpt6lqmck6670gkygph0sc0j7my4uq5wqjfh" # pc-system
|
- "age1e6vws55p0g23qzthm4qa93hpt6lqmck6670gkygph0sc0j7my4uq5wqjfh" # pc-system
|
||||||
- "age1x3lahhkefkap67cdmdjcqaxan9hp62er78akr79v9m73nvgugpeqk0y32a" # laptop-user-doloro
|
- "age1x3lahhkefkap67cdmdjcqaxan9hp62er78akr79v9m73nvgugpeqk0y32a" # laptop-user-doloro
|
||||||
- "age1exzngtk4d9vcsmcq6ap5xx3ca9qacqjkrv86ymged7msx9z6vfyqsf5sjq" # laptop-system
|
- "age1exzngtk4d9vcsmcq6ap5xx3ca9qacqjkrv86ymged7msx9z6vfyqsf5sjq" # laptop-system
|
||||||
|
- "age1fw4xnh2q52juce94ffn54js708cr6umfwpv0mykuddkea7kr4f0q7a9h05" # rpi5
|
||||||
|
|||||||
7
config/defaults.nix
Normal file
7
config/defaults.nix
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
{ den, ... }:
|
||||||
|
{
|
||||||
|
den.default = {
|
||||||
|
nixos.system.stateVersion = "25.11";
|
||||||
|
homeManager.home.stateVersion = "25.11";
|
||||||
|
};
|
||||||
|
}
|
||||||
11
config/dendritic.nix
Normal file
11
config/dendritic.nix
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
{ inputs, lib, ... }:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
inputs.flake-file.flakeModules.dendritic
|
||||||
|
inputs.den.flakeModules.dendritic
|
||||||
|
];
|
||||||
|
flake-file.do-not-edit = "You FAGGOT; Do NOT edit this file !!!!, run 'nix run .#write-flake' ";
|
||||||
|
flake-file.outputs = lib.mkForce ''
|
||||||
|
inputs: inputs.flake-parts.lib.mkFlake { inherit inputs; } (inputs.import-tree ./config)
|
||||||
|
'';
|
||||||
|
}
|
||||||
70
config/hosts/aspects/doloro-desktop/disko.nix
Normal file
70
config/hosts/aspects/doloro-desktop/disko.nix
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
{
|
||||||
|
modules,
|
||||||
|
__findFile,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
den.aspects.desktop = {
|
||||||
|
includes = [ modules.disko ];
|
||||||
|
nixos =
|
||||||
|
{ lib, ... }:
|
||||||
|
{
|
||||||
|
disko.devices = {
|
||||||
|
disk = {
|
||||||
|
main = {
|
||||||
|
device = lib.mkDefault "/dev/disk/by-id/nvme-CT1000P2SSD8_2221E632CD1F";
|
||||||
|
type = "disk";
|
||||||
|
content = {
|
||||||
|
type = "gpt";
|
||||||
|
partitions = {
|
||||||
|
boot = {
|
||||||
|
name = "boot";
|
||||||
|
size = "1M";
|
||||||
|
type = "EF02";
|
||||||
|
};
|
||||||
|
ESP = {
|
||||||
|
name = "ESP";
|
||||||
|
priority = 1;
|
||||||
|
size = "4G";
|
||||||
|
type = "EF00";
|
||||||
|
content = {
|
||||||
|
type = "filesystem";
|
||||||
|
format = "vfat";
|
||||||
|
mountpoint = "/boot";
|
||||||
|
mountOptions = [ "umask=0077" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
root = {
|
||||||
|
size = "100%";
|
||||||
|
content = {
|
||||||
|
type = "btrfs";
|
||||||
|
extraArgs = [ "-f" ]; # Override existing partition
|
||||||
|
# Subvolumes must set a mountpoint in order to be mounted,
|
||||||
|
# unless their parent is mounted
|
||||||
|
subvolumes = {
|
||||||
|
# Subvolume name is different from mountpoint
|
||||||
|
"@" = {
|
||||||
|
mountpoint = "/";
|
||||||
|
};
|
||||||
|
# Subvolume name is the same as the mountpoint
|
||||||
|
"@home" = {
|
||||||
|
mountpoint = "/home";
|
||||||
|
};
|
||||||
|
# Parent is not mounted so the mountpoint must be set
|
||||||
|
"@nix" = {
|
||||||
|
mountpoint = "/nix";
|
||||||
|
};
|
||||||
|
"@blackhole" = {
|
||||||
|
mountpoint = "/var/blackhole";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
31
config/hosts/aspects/doloro-desktop/hardware.nix
Normal file
31
config/hosts/aspects/doloro-desktop/hardware.nix
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
{ den, modules, ... }:
|
||||||
|
{
|
||||||
|
den.aspects.desktop = {
|
||||||
|
nixos =
|
||||||
|
{
|
||||||
|
modulesPath,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
(modulesPath + "/installer/scan/not-detected.nix")
|
||||||
|
];
|
||||||
|
|
||||||
|
boot.initrd.availableKernelModules = [
|
||||||
|
"nvme"
|
||||||
|
"xhci_pci"
|
||||||
|
"ahci"
|
||||||
|
"usbhid"
|
||||||
|
];
|
||||||
|
boot.initrd.kernelModules = [ ];
|
||||||
|
boot.kernelModules = [ "kvm-amd" ];
|
||||||
|
boot.extraModulePackages = [ ];
|
||||||
|
|
||||||
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
|
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
63
config/hosts/aspects/doloro-desktop/home.nix
Normal file
63
config/hosts/aspects/doloro-desktop/home.nix
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
{
|
||||||
|
den,
|
||||||
|
__findFile,
|
||||||
|
modules,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
den.aspects.doloro-desktop = {
|
||||||
|
includes = [
|
||||||
|
<den/primary-user>
|
||||||
|
den.aspects.doloro-shared
|
||||||
|
modules.sops
|
||||||
|
modules.hyprland
|
||||||
|
modules.fish
|
||||||
|
modules.tuigreet
|
||||||
|
modules.kitty
|
||||||
|
modules.fonts
|
||||||
|
<modules/hyprland/doloro-settings>
|
||||||
|
(modules.obs {
|
||||||
|
virtual_audio_devices = true;
|
||||||
|
autostart = true;
|
||||||
|
})
|
||||||
|
<modules/common/gaming>
|
||||||
|
modules.helium
|
||||||
|
modules.stylix
|
||||||
|
modules.quickshell
|
||||||
|
];
|
||||||
|
nixos =
|
||||||
|
{ config, pkgs, ... }:
|
||||||
|
{
|
||||||
|
users.users.doloro = {
|
||||||
|
shell = pkgs.fish;
|
||||||
|
hashedPasswordFile = config.sops.secrets."doloro-hashed_password".path;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
homeManager =
|
||||||
|
{ home, pkgs, ... }:
|
||||||
|
{
|
||||||
|
wayland.windowManager.hyprland.settings = {
|
||||||
|
monitor = [
|
||||||
|
"HDMI-A-1, 1920x1080@60, 0x0, 1"
|
||||||
|
"DP-3, 1920x1080@144, 1920x0, 1"
|
||||||
|
];
|
||||||
|
exec-once = [
|
||||||
|
"hyprctl dispatch workspace 2" # shit solution to get quickshell on the right monitor
|
||||||
|
];
|
||||||
|
workspace = [
|
||||||
|
"name:2, monitor:DP-3"
|
||||||
|
];
|
||||||
|
input = {
|
||||||
|
kb_layout = "gb";
|
||||||
|
follow_mouse = 2;
|
||||||
|
sensitivity = -0.5;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
legcord
|
||||||
|
telegram-desktop
|
||||||
|
obsidian
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
95
config/hosts/aspects/doloro-desktop/host.nix
Normal file
95
config/hosts/aspects/doloro-desktop/host.nix
Normal file
@@ -0,0 +1,95 @@
|
|||||||
|
{
|
||||||
|
den,
|
||||||
|
modules,
|
||||||
|
pkgs,
|
||||||
|
__findFile,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
den.aspects.desktop = {
|
||||||
|
includes = [
|
||||||
|
modules.nix
|
||||||
|
];
|
||||||
|
nixos =
|
||||||
|
{ pkgs, config, ... }:
|
||||||
|
{
|
||||||
|
boot.loader.grub.enable = true;
|
||||||
|
boot.loader.grub.device = "nodev";
|
||||||
|
boot.loader.grub.devices = [
|
||||||
|
"/dev/disk/by-id/nvme-CT1000P2SSD8_2221E632CD1F"
|
||||||
|
"nodev"
|
||||||
|
];
|
||||||
|
#boot.loader.efi.canTouchEfiVariables = true;
|
||||||
|
boot.loader.grub.efiSupport = true;
|
||||||
|
boot.loader.grub.efiInstallAsRemovable = true;
|
||||||
|
networking.hostName = "doloroo-main"; # Define your hostname.
|
||||||
|
|
||||||
|
boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||||
|
boot.initrd.verbose = false;
|
||||||
|
boot.kernelParams = [
|
||||||
|
"boot.shell_on_fail"
|
||||||
|
"rd.systemd.show_status=auto"
|
||||||
|
];
|
||||||
|
|
||||||
|
services.openssh.enable = true;
|
||||||
|
|
||||||
|
networking.networkmanager.enable = true;
|
||||||
|
networking.firewall.enable = false;
|
||||||
|
|
||||||
|
security.rtkit.enable = true;
|
||||||
|
|
||||||
|
hardware.graphics = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
services.xserver.videoDrivers = [ "nvidia" ];
|
||||||
|
|
||||||
|
fileSystems."/mnt/2tb" = {
|
||||||
|
device = "/dev/disk/by-uuid/0f49aec7-4af2-4f4f-b475-3f4fad2b59c2";
|
||||||
|
fsType = "ext4";
|
||||||
|
options = [
|
||||||
|
# If you don't have this options attribute, it'll default to "defaults"
|
||||||
|
# boot options for fstab. Search up fstab mount options you can use
|
||||||
|
"defaults"
|
||||||
|
"users" # Allows any user to mount and unmount
|
||||||
|
"nofail" # Prevent system from failing if this drive doesn't mount
|
||||||
|
"exec"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
services.gnome.gnome-keyring.enable = true;
|
||||||
|
|
||||||
|
hardware.nvidia = {
|
||||||
|
|
||||||
|
# Modesetting is required.
|
||||||
|
modesetting.enable = true;
|
||||||
|
|
||||||
|
# Nvidia power management. Experimental, and can cause sleep/suspend to fail.
|
||||||
|
# Enable this if you have graphical corruption issues or application crashes after waking
|
||||||
|
# up from sleep. This fixes it by saving the entire VRAM memory to /tmp/ instead
|
||||||
|
# of just the bare essentials.
|
||||||
|
powerManagement.enable = true;
|
||||||
|
|
||||||
|
# Fine-grained power management. Turns off GPU when not in use.
|
||||||
|
# Experimental and only works on modern Nvidia GPUs (Turing or newer).
|
||||||
|
powerManagement.finegrained = false;
|
||||||
|
# prime.offload.enable = true;
|
||||||
|
|
||||||
|
# Use the NVidia open source kernel module (not to be confused with the
|
||||||
|
# independent third-party "nouveau" open source driver).
|
||||||
|
# Support is limited to the Turing and later architectures. Full list of
|
||||||
|
# supported GPUs is at:
|
||||||
|
# https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus
|
||||||
|
# Only available from driver 515.43.04+
|
||||||
|
open = false;
|
||||||
|
|
||||||
|
# Enable the Nvidia settings menu,
|
||||||
|
# accessible via `nvidia-settings`.
|
||||||
|
nvidiaSettings = true;
|
||||||
|
|
||||||
|
# Optionally, you may need to select the appropriate driver version for your specific GPU.
|
||||||
|
package = config.boot.kernelPackages.nvidiaPackages.latest;
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
75
config/hosts/aspects/doloro-laptop/disko.nix
Normal file
75
config/hosts/aspects/doloro-laptop/disko.nix
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
{
|
||||||
|
modules,
|
||||||
|
__findFile,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
den.aspects.laptop = {
|
||||||
|
includes = [ modules.disko ];
|
||||||
|
nixos =
|
||||||
|
{ lib, ... }:
|
||||||
|
{
|
||||||
|
disko.devices = {
|
||||||
|
disk = {
|
||||||
|
main = {
|
||||||
|
device = "/dev/nvme0n1";
|
||||||
|
type = "disk";
|
||||||
|
content = {
|
||||||
|
type = "gpt";
|
||||||
|
partitions = {
|
||||||
|
boot = {
|
||||||
|
name = "boot";
|
||||||
|
size = "1M";
|
||||||
|
type = "EF02";
|
||||||
|
};
|
||||||
|
ESP = {
|
||||||
|
name = "ESP";
|
||||||
|
priority = 1;
|
||||||
|
size = "4G";
|
||||||
|
type = "EF00";
|
||||||
|
content = {
|
||||||
|
type = "filesystem";
|
||||||
|
format = "vfat";
|
||||||
|
mountpoint = "/boot";
|
||||||
|
mountOptions = [ "umask=0077" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
plainSwap = {
|
||||||
|
size = "48G";
|
||||||
|
content = {
|
||||||
|
type = "swap";
|
||||||
|
discardPolicy = "both"; # Both "once" and page discard policies
|
||||||
|
resumeDevice = true; # Use for hibernation resume device
|
||||||
|
};
|
||||||
|
};
|
||||||
|
root = {
|
||||||
|
size = "100%";
|
||||||
|
content = {
|
||||||
|
type = "btrfs";
|
||||||
|
extraArgs = [ "-f" ]; # Override existing partition
|
||||||
|
# Subvolumes must set a mountpoint in order to be mounted,
|
||||||
|
# unless their parent is mounted
|
||||||
|
subvolumes = {
|
||||||
|
# Subvolume name is different from mountpoint
|
||||||
|
"@" = {
|
||||||
|
mountpoint = "/";
|
||||||
|
};
|
||||||
|
# Subvolume name is the same as the mountpoint
|
||||||
|
"@home" = {
|
||||||
|
mountpoint = "/home";
|
||||||
|
};
|
||||||
|
# Parent is not mounted so the mountpoint must be set
|
||||||
|
"@nix" = {
|
||||||
|
mountpoint = "/nix";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
35
config/hosts/aspects/doloro-laptop/hardware.nix
Normal file
35
config/hosts/aspects/doloro-laptop/hardware.nix
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
{
|
||||||
|
den,
|
||||||
|
modules,
|
||||||
|
__findFile,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
den.aspects.laptop = {
|
||||||
|
nixos =
|
||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
modulesPath,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
(modulesPath + "/installer/scan/not-detected.nix")
|
||||||
|
];
|
||||||
|
boot.initrd.availableKernelModules = [
|
||||||
|
"xhci_pci"
|
||||||
|
"thunderbolt"
|
||||||
|
"vmd"
|
||||||
|
"nvme"
|
||||||
|
];
|
||||||
|
boot.initrd.kernelModules = [ ];
|
||||||
|
boot.kernelModules = [ "kvm-intel" ];
|
||||||
|
boot.extraModulePackages = [ ];
|
||||||
|
|
||||||
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
|
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
41
config/hosts/aspects/doloro-laptop/home.nix
Normal file
41
config/hosts/aspects/doloro-laptop/home.nix
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
{
|
||||||
|
den,
|
||||||
|
__findFile,
|
||||||
|
modules,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
den.aspects.doloro-laptop = {
|
||||||
|
includes = [
|
||||||
|
<den/primary-user>
|
||||||
|
den.aspects.doloro-shared
|
||||||
|
modules.hyprland
|
||||||
|
<modules/hyprland/doloro-settings>
|
||||||
|
modules.sops
|
||||||
|
modules.fish
|
||||||
|
<modules/zen-browser>
|
||||||
|
modules.kitty
|
||||||
|
modules.stylix
|
||||||
|
modules.quickshell
|
||||||
|
];
|
||||||
|
nixos =
|
||||||
|
{ config, pkgs, ... }:
|
||||||
|
{
|
||||||
|
users.users.doloro = {
|
||||||
|
isNormalUser = true;
|
||||||
|
shell = pkgs.fish;
|
||||||
|
hashedPasswordFile = config.sops.secrets."doloro-hashed_password".path;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
homeManager =
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
telegram-desktop
|
||||||
|
legcord
|
||||||
|
obsidian
|
||||||
|
];
|
||||||
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
198
config/hosts/aspects/doloro-laptop/host.nix
Normal file
198
config/hosts/aspects/doloro-laptop/host.nix
Normal file
@@ -0,0 +1,198 @@
|
|||||||
|
{
|
||||||
|
den,
|
||||||
|
modules,
|
||||||
|
__findFile,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
den.aspects.laptop = {
|
||||||
|
includes = [
|
||||||
|
modules.nix
|
||||||
|
modules.tuigreet
|
||||||
|
<modules/common/laptop-power-management>
|
||||||
|
modules.fonts
|
||||||
|
];
|
||||||
|
nixos =
|
||||||
|
{ pkgs, config, ... }:
|
||||||
|
{
|
||||||
|
# Use the systemd-boot EFI boot loader.
|
||||||
|
boot.loader.systemd-boot.enable = true;
|
||||||
|
boot.loader.efi.canTouchEfiVariables = true;
|
||||||
|
# boot.kernelPackages = pkgs.linuxPackages_6_12; # Hibernate works on 6.12 but not on latest
|
||||||
|
boot.kernelPackages = pkgs.linuxPackages_zen; # Unpinned the linux version for now.. as i am not using hibernate that often
|
||||||
|
networking.hostName = "doloro-nixos-laptop"; # Define your hostname.
|
||||||
|
security.rtkit.enable = true;
|
||||||
|
|
||||||
|
# Configure network connections interactively with nmcli or nmtui.
|
||||||
|
networking.networkmanager.enable = true;
|
||||||
|
|
||||||
|
# Set your time zone.
|
||||||
|
# time.timeZone = "Europe/London";
|
||||||
|
services.automatic-timezoned.enable = true;
|
||||||
|
|
||||||
|
nix.settings = {
|
||||||
|
substituters = [
|
||||||
|
"https://nix-community.cachix.org"
|
||||||
|
"https://cache.nixos.org/"
|
||||||
|
"https://attic.scug.io/pkgs"
|
||||||
|
];
|
||||||
|
trusted-public-keys = [
|
||||||
|
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
||||||
|
"pkgs:+sRbfiZMMX5R3PuAPtIRz/emowDoGZNpozibrnrAvuc="
|
||||||
|
];
|
||||||
|
experimental-features = [
|
||||||
|
"flakes"
|
||||||
|
"nix-command"
|
||||||
|
];
|
||||||
|
trusted-users = [
|
||||||
|
"doloro"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
services.gnome.gnome-keyring.enable = true;
|
||||||
|
|
||||||
|
hardware = {
|
||||||
|
# firmware = [ pkgs.intel-npu-driver ];
|
||||||
|
cpu.intel = {
|
||||||
|
# npu.enable = true;
|
||||||
|
};
|
||||||
|
graphics = {
|
||||||
|
enable = true;
|
||||||
|
# https://github.com/intel/libvpl?tab=readme-ov-file#dispatcher-behavior-when-targeting-intel-gpus
|
||||||
|
extraPackages = with pkgs; [
|
||||||
|
vpl-gpu-rt
|
||||||
|
intel-media-driver # VA-API (iHD) userspace
|
||||||
|
intel-vaapi-driver
|
||||||
|
# vpl-gpu-rt # oneVPL (QSV) runtime
|
||||||
|
intel-compute-runtime # OpenCL (NEO) + Level Zero for Arc/Xe
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
services.openssh = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
PasswordAuthentication = true;
|
||||||
|
PermitRootLogin = "prohibit-password";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
users.users.root.openssh.authorizedKeys.keys = [
|
||||||
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBaa6Z5qtBSLEz+A4fQGYPfkOISsRQlmKkVbcx2zxML7"
|
||||||
|
];
|
||||||
|
|
||||||
|
# Select internationalisation properties.
|
||||||
|
# i18n.defaultLocale = "en_US.UTF-8";
|
||||||
|
# console = {
|
||||||
|
# font = "Lat2-Terminus16";
|
||||||
|
# keyMap = "us";
|
||||||
|
# useXkbConfig = true; # use xkb.options in tty.
|
||||||
|
# };
|
||||||
|
|
||||||
|
# Enable the X11 windowing system.
|
||||||
|
services.xserver.enable = true;
|
||||||
|
|
||||||
|
services.pipewire = {
|
||||||
|
enable = true;
|
||||||
|
pulse.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
services.libinput.enable = true;
|
||||||
|
|
||||||
|
boot.binfmt.emulatedSystems = [ "aarch64-linux" ];
|
||||||
|
# Define a user account. Don't forget to set a password with ‘passwd’.
|
||||||
|
# users.users.doloro = {
|
||||||
|
# isNormalUser = true;
|
||||||
|
# shell = pkgs.fish;
|
||||||
|
# extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user.
|
||||||
|
# packages = with pkgs; [
|
||||||
|
# tree
|
||||||
|
# ];
|
||||||
|
# hashedPasswordFile = config.sops.secrets."doloro-hashed_password".path;
|
||||||
|
# openssh.authorizedKeys.keys = [
|
||||||
|
# "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBaa6Z5qtBSLEz+A4fQGYPfkOISsRQlmKkVbcx2zxML7" # pc public key
|
||||||
|
# ];
|
||||||
|
# # initialPassword = "sex";
|
||||||
|
# };
|
||||||
|
users.users.root = {
|
||||||
|
password = "meowmeowmeow";
|
||||||
|
};
|
||||||
|
users.mutableUsers = false;
|
||||||
|
services.system76-scheduler.enable = true;
|
||||||
|
|
||||||
|
powerManagement = {
|
||||||
|
enable = true;
|
||||||
|
# powertop.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
boot.kernelParams = [
|
||||||
|
# "mem_sleep_default=deep"
|
||||||
|
# "i915.fastboot=1"
|
||||||
|
"ahci.mobile_lpm_policy=1"
|
||||||
|
"intel_idle.max_cstate=11"
|
||||||
|
# "idle=halt"
|
||||||
|
];
|
||||||
|
|
||||||
|
services.logind.settings.Login = {
|
||||||
|
HandleLidSwitch = "suspend";
|
||||||
|
HandleLidSwitchExternalPower = "suspend";
|
||||||
|
HandleLidSwitchDocked = "ignore";
|
||||||
|
};
|
||||||
|
systemd.sleep.extraConfig = ''
|
||||||
|
HibernateDelaySec=30min
|
||||||
|
SuspendEstimationSec=120
|
||||||
|
'';
|
||||||
|
|
||||||
|
# programs.firefox.enable = true;
|
||||||
|
|
||||||
|
# List packages installed in system profile.
|
||||||
|
# You can use https://search.nixos.org/ to find more packages (and options).
|
||||||
|
# environment.systemPackages = with pkgs; [
|
||||||
|
# vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
|
||||||
|
# git
|
||||||
|
# wget
|
||||||
|
# # tlp-pd
|
||||||
|
# brightnessctl
|
||||||
|
# nvtopPackages.intel
|
||||||
|
# seahorse
|
||||||
|
# ];
|
||||||
|
|
||||||
|
# Some programs need SUID wrappers, can be configured further or are
|
||||||
|
# started in user sessions.
|
||||||
|
# programs.mtr.enable = true;
|
||||||
|
# programs.gnupg.agent = {
|
||||||
|
# enable = true;
|
||||||
|
# enableSSHSupport = true;
|
||||||
|
# };
|
||||||
|
|
||||||
|
# List services that you want to enable:
|
||||||
|
|
||||||
|
# Open ports in the firewall.
|
||||||
|
# networking.firewall.allowedTCPPorts = [ ... ];
|
||||||
|
# networking.firewall.allowedUDPPorts = [ ... ];
|
||||||
|
# Or disable the firewall altogether.
|
||||||
|
# networking.firewall.enable = false;
|
||||||
|
|
||||||
|
# Copy the NixOS configuration file and link it from the resulting system
|
||||||
|
# (/run/current-system/configuration.nix). This is useful in case you
|
||||||
|
# accidentally delete configuration.nix.
|
||||||
|
|
||||||
|
# This option defines the first version of NixOS you have installed on this particular machine,
|
||||||
|
# and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions.
|
||||||
|
#
|
||||||
|
# Most users should NEVER change this value after the initial install, for any reason,
|
||||||
|
# even if you've upgraded your system to a new NixOS release.
|
||||||
|
#
|
||||||
|
# This value does NOT affect the Nixpkgs version your packages and OS are pulled from,
|
||||||
|
# so changing it will NOT upgrade your system - see https://nixos.org/manual/nixos/stable/#sec-upgrading for how
|
||||||
|
# to actually do that.
|
||||||
|
#
|
||||||
|
# This value being lower than the current NixOS release does NOT mean your system is
|
||||||
|
# out of date, out of support, or vulnerable.
|
||||||
|
#
|
||||||
|
# Do NOT change this value unless you have manually inspected all the changes it would make to your configuration,
|
||||||
|
# and migrated your data accordingly.
|
||||||
|
#
|
||||||
|
# For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion .
|
||||||
|
system.stateVersion = "25.11"; # Did you read the comment?
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
27
config/hosts/aspects/doloro-shared.nix
Normal file
27
config/hosts/aspects/doloro-shared.nix
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
{
|
||||||
|
den,
|
||||||
|
modules,
|
||||||
|
__findFile,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
den.aspects.doloro-shared = {
|
||||||
|
includes = [
|
||||||
|
modules.nixvim
|
||||||
|
modules.nix
|
||||||
|
modules.tmux
|
||||||
|
<modules/git/doloro>
|
||||||
|
modules.hyfetch
|
||||||
|
];
|
||||||
|
homeManager =
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
home = {
|
||||||
|
username = "doloro";
|
||||||
|
homeDirectory = "/home/doloro";
|
||||||
|
packages = with pkgs; [ wl-clipboard ];
|
||||||
|
};
|
||||||
|
programs.home-manager.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
36
config/hosts/aspects/servers/rpi5.nix
Normal file
36
config/hosts/aspects/servers/rpi5.nix
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
{
|
||||||
|
den,
|
||||||
|
__findFile,
|
||||||
|
modules,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
den.aspects.rpi5 = {
|
||||||
|
includes = [
|
||||||
|
<modules/raspberry-pi/5>
|
||||||
|
# <modules/services/traefik>
|
||||||
|
<modules/services/caddy>
|
||||||
|
<modules/services/home-assistant>
|
||||||
|
<modules/services/ddns>
|
||||||
|
];
|
||||||
|
nixos = {
|
||||||
|
networking.hostName = "nixos-001-rp5";
|
||||||
|
|
||||||
|
networking.firewall = {
|
||||||
|
enable = true;
|
||||||
|
allowedTCPPorts = [
|
||||||
|
80
|
||||||
|
443
|
||||||
|
8080
|
||||||
|
];
|
||||||
|
allowedUDPPortRanges = [ ];
|
||||||
|
};
|
||||||
|
|
||||||
|
virtualisation.docker.enable = true;
|
||||||
|
virtualisation.oci-containers.backend = "docker";
|
||||||
|
|
||||||
|
services.openssh.enable = true;
|
||||||
|
nixpkgs.hostPlatform = "aarch64-linux";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
23
config/hosts/computers.nix
Normal file
23
config/hosts/computers.nix
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
{ den, __findFile, ... }:
|
||||||
|
{
|
||||||
|
# Homes
|
||||||
|
den.homes.x86_64-linux.doloro-desktop = {
|
||||||
|
userName = "doloro";
|
||||||
|
};
|
||||||
|
# TODO
|
||||||
|
den.homes.x86_64-linux.doloro-laptop = {
|
||||||
|
userName = "doloro";
|
||||||
|
};
|
||||||
|
# Machines
|
||||||
|
den.hosts.x86_64-linux.desktop = {
|
||||||
|
users.doloro = {
|
||||||
|
aspect = "doloro-desktop";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
# TODO
|
||||||
|
den.hosts.x86_64-linux.laptop = {
|
||||||
|
users.doloro = {
|
||||||
|
aspect = "doloro-laptop";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
40
config/hosts/servers.nix
Normal file
40
config/hosts/servers.nix
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
{
|
||||||
|
den,
|
||||||
|
__findFile,
|
||||||
|
modules,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
# The single rpi5 i have running on the side of my desk
|
||||||
|
den.aspects = {
|
||||||
|
doloro-server = {
|
||||||
|
includes = [
|
||||||
|
<modules/publicKeys/doloro>
|
||||||
|
];
|
||||||
|
nixos = {
|
||||||
|
users.users.doloro = {
|
||||||
|
isNormalUser = true;
|
||||||
|
extraGroups = [
|
||||||
|
"wheel"
|
||||||
|
"networkmanager"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
root-server = {
|
||||||
|
includes = [
|
||||||
|
<modules/publicKeys/doloro>
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
den.hosts.aarch64-linux.rpi5 = {
|
||||||
|
includes = [ ];
|
||||||
|
users.doloro = {
|
||||||
|
aspect = "doloro-server";
|
||||||
|
};
|
||||||
|
users.root = {
|
||||||
|
aspect = "root-server";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
10
config/inputs.nix
Normal file
10
config/inputs.nix
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
flake-file.inputs = {
|
||||||
|
home-manager = {
|
||||||
|
url = "github:nix-community/home-manager";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
den.url = "github:vic/den";
|
||||||
|
};
|
||||||
|
}
|
||||||
14
config/modules/disko.nix
Normal file
14
config/modules/disko.nix
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
flake-file.inputs.disko.url = "github:nix-community/disko";
|
||||||
|
modules.disko = {
|
||||||
|
nixos =
|
||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
imports = [ inputs.disko.nixosModules.disko ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
15
config/modules/dunst.nix
Normal file
15
config/modules/dunst.nix
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
{ modules, ... }:
|
||||||
|
{
|
||||||
|
modules.dunst = {
|
||||||
|
homeManager = {
|
||||||
|
services.dunst = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
global = {
|
||||||
|
font = "Noto Nerd Font 8";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
50
config/modules/fish.nix
Normal file
50
config/modules/fish.nix
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
{ modules, ... }:
|
||||||
|
{
|
||||||
|
modules.fish = {
|
||||||
|
nixos = {
|
||||||
|
programs.fish.enable = true;
|
||||||
|
};
|
||||||
|
homeManager =
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
home.shell.enableFishIntegration = true;
|
||||||
|
home.packages = [ pkgs.nix-output-monitor ];
|
||||||
|
programs = {
|
||||||
|
fish = {
|
||||||
|
enable = true;
|
||||||
|
shellInit = ''
|
||||||
|
set -g theme_nerd_fonts yes
|
||||||
|
set -g theme_color_scheme nord
|
||||||
|
set -g theme_display_user yes
|
||||||
|
set -g fish_color_autosuggestion 6F6578
|
||||||
|
alias nik 'nix'
|
||||||
|
'';
|
||||||
|
# alias nos 'sudo echo; sudo nixos-rebuild switch --flake .#${aspect-name} --log-format internal-json -v &| nom --json'
|
||||||
|
# alias hms 'home-manager switch --flake .#${aspect-name} --log-format internal-json -v &| nom --json'
|
||||||
|
plugins = [
|
||||||
|
{
|
||||||
|
name = "bobthefish";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "oh-my-fish";
|
||||||
|
repo = "theme-bobthefish";
|
||||||
|
rev = "e3b4d4eafc23516e35f162686f08a42edf844e40";
|
||||||
|
sha256 = "sha256-cXOYvdn74H4rkMWSC7G6bT4wa9d3/3vRnKed2ixRnuA=";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
eza = {
|
||||||
|
enable = true;
|
||||||
|
enableFishIntegration = true;
|
||||||
|
icons = "auto";
|
||||||
|
git = true;
|
||||||
|
extraOptions = [ ];
|
||||||
|
};
|
||||||
|
direnv = {
|
||||||
|
enable = true;
|
||||||
|
nix-direnv.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
38
config/modules/fonts.nix
Normal file
38
config/modules/fonts.nix
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
{
|
||||||
|
den,
|
||||||
|
modules,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
flake-file.inputs = {
|
||||||
|
font-patcher.url = "github:Doloro1978/nix-nerd-fonts-patcher";
|
||||||
|
};
|
||||||
|
modules.fonts = {
|
||||||
|
nixos =
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
config.fonts = {
|
||||||
|
enableDefaultPackages = true;
|
||||||
|
packages =
|
||||||
|
with pkgs;
|
||||||
|
[
|
||||||
|
material-design-icons
|
||||||
|
material-symbols
|
||||||
|
nerd-fonts.caskaydia-cove
|
||||||
|
nerd-fonts.noto
|
||||||
|
noto-fonts-cjk-sans
|
||||||
|
noto-fonts-cjk-serif
|
||||||
|
]
|
||||||
|
++ [
|
||||||
|
(inputs.font-patcher.lib.patchFont {
|
||||||
|
font = "${pkgs.googlesans-code}/share/fonts/googlesans-code/GoogleSansCode[wght].ttf";
|
||||||
|
name = "Google Sans Code Nerd Font";
|
||||||
|
inherit system;
|
||||||
|
})
|
||||||
|
];
|
||||||
|
fontDir.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
8
config/modules/gaming/common.nix
Normal file
8
config/modules/gaming/common.nix
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
{ den, modules, ... }:
|
||||||
|
{
|
||||||
|
modules.common.provides = {
|
||||||
|
gaming = {
|
||||||
|
includes = [ modules.steam ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
39
config/modules/gaming/steam.nix
Normal file
39
config/modules/gaming/steam.nix
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
{ den, modules, ... }:
|
||||||
|
{
|
||||||
|
modules.steam = {
|
||||||
|
nixos =
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
programs.steam = {
|
||||||
|
enable = true;
|
||||||
|
remotePlay.openFirewall = true;
|
||||||
|
dedicatedServer.openFirewall = true;
|
||||||
|
localNetworkGameTransfers.openFirewall = true;
|
||||||
|
# Ensure gamescope is inside the steam "fhs"
|
||||||
|
package = pkgs.steam.override {
|
||||||
|
extraLibraries = pkgs: [ pkgs.xorg.libxcb ];
|
||||||
|
extraPkgs =
|
||||||
|
pkgs: with pkgs; [
|
||||||
|
attr
|
||||||
|
xorg.libXcursor
|
||||||
|
xorg.libXi
|
||||||
|
xorg.libXinerama
|
||||||
|
xorg.libXScrnSaver
|
||||||
|
libpng
|
||||||
|
libpulseaudio
|
||||||
|
libvorbis
|
||||||
|
stdenv.cc.cc.lib
|
||||||
|
libkrb5
|
||||||
|
keyutils
|
||||||
|
mangohud
|
||||||
|
gamemode
|
||||||
|
lsof
|
||||||
|
(gamescope.overrideAttrs {
|
||||||
|
enableWsi = true;
|
||||||
|
})
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
45
config/modules/git.nix
Normal file
45
config/modules/git.nix
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
{ den, modules, ... }:
|
||||||
|
{
|
||||||
|
modules.git = {
|
||||||
|
provides = {
|
||||||
|
doloro = {
|
||||||
|
homeManager =
|
||||||
|
{ home, pkgs, ... }:
|
||||||
|
{
|
||||||
|
programs.git = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
user = {
|
||||||
|
name = "Doloro1978";
|
||||||
|
email = "doloroo@proton.me";
|
||||||
|
signingKey = "089B373588540877";
|
||||||
|
};
|
||||||
|
commit = {
|
||||||
|
gpgSign = true;
|
||||||
|
};
|
||||||
|
pull = {
|
||||||
|
rebase = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
programs.gpg = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
services = {
|
||||||
|
gpg-agent = {
|
||||||
|
enable = true;
|
||||||
|
pinentry = {
|
||||||
|
package = pkgs.pinentry-qt;
|
||||||
|
program = "pinentry-qt";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
nixos =
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
33
config/modules/helium.nix
Normal file
33
config/modules/helium.nix
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
{
|
||||||
|
den,
|
||||||
|
modules,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
flake-file.inputs = {
|
||||||
|
heliumFlake = {
|
||||||
|
url = "github:vikingnope/helium-browser-nix-flake";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
modules.helium = {
|
||||||
|
homeManager =
|
||||||
|
{ pkgs, home, ... }:
|
||||||
|
{
|
||||||
|
home.packages = [
|
||||||
|
inputs.heliumFlake.packages.x86_64-linux.helium
|
||||||
|
];
|
||||||
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
# Gives me widevine support. yay
|
||||||
|
xdg.configFile."net.imput.helium/WidevineCdm/latest-component-updated-widevine-cdm" = {
|
||||||
|
text = ''{"Path":"${pkgs.widevine-cdm}/share/google/chrome/WidevineCdm"}'';
|
||||||
|
};
|
||||||
|
wayland.windowManager.hyprland.settings = {
|
||||||
|
binds = [
|
||||||
|
"$mainMod, E, exec, helium"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
32
config/modules/hyfetch.nix
Normal file
32
config/modules/hyfetch.nix
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
{ den, modules, ... }:
|
||||||
|
{
|
||||||
|
modules.hyfetch = {
|
||||||
|
homeManager =
|
||||||
|
{ home, pkgs, ... }:
|
||||||
|
{
|
||||||
|
home.packages = [ pkgs.fastfetch ];
|
||||||
|
programs.hyfetch = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
"preset" = "bisexual";
|
||||||
|
"mode" = "rgb";
|
||||||
|
"auto_detect_light_dark" = true;
|
||||||
|
"light_dark" = "dark";
|
||||||
|
"lightness" = 0.5;
|
||||||
|
"color_align" = {
|
||||||
|
"mode" = "custom";
|
||||||
|
"custom_colors" = {
|
||||||
|
"1" = 1;
|
||||||
|
"2" = 0;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"backend" = "fastfetch";
|
||||||
|
"args" = null;
|
||||||
|
"distro" = null;
|
||||||
|
"pride_month_disable" = false;
|
||||||
|
"custom_ascii_path" = null;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
194
config/modules/hyprland/doloro-settings.nix
Normal file
194
config/modules/hyprland/doloro-settings.nix
Normal file
@@ -0,0 +1,194 @@
|
|||||||
|
{ modules, ... }:
|
||||||
|
{
|
||||||
|
modules.hyprland = {
|
||||||
|
provides = {
|
||||||
|
doloro-settings = {
|
||||||
|
includes = [
|
||||||
|
modules.dunst
|
||||||
|
];
|
||||||
|
homeManager =
|
||||||
|
{ pkgs, home, ... }:
|
||||||
|
{
|
||||||
|
home.packages = [
|
||||||
|
pkgs.hyprcursor
|
||||||
|
pkgs.wlogout
|
||||||
|
pkgs.tofi
|
||||||
|
pkgs.killall
|
||||||
|
];
|
||||||
|
home.pointerCursor = {
|
||||||
|
enable = true;
|
||||||
|
name = "rose-pine-hyprcursor";
|
||||||
|
package = pkgs.rose-pine-hyprcursor;
|
||||||
|
hyprcursor.enable = true;
|
||||||
|
};
|
||||||
|
wayland.windowManager.hyprland.settings = {
|
||||||
|
env = [
|
||||||
|
"XCURSOR_THEME,BreezeX-RosePine-Linux"
|
||||||
|
"XCURSOR_SIZE,24"
|
||||||
|
"HYPRCURSOR_SIZE,24"
|
||||||
|
"LIBVA_DRIVER_NAME,nvidia"
|
||||||
|
"__GLX_VENDOR_LIBRARY_NAME,nvidia"
|
||||||
|
"WEBKIT_DISABLE_DMABUF_RENDERER,1" # maybe disable if nixos fixes alcom
|
||||||
|
];
|
||||||
|
general = {
|
||||||
|
gaps_in = 1;
|
||||||
|
gaps_out = 1;
|
||||||
|
border_size = 1;
|
||||||
|
# "col.active_border" =
|
||||||
|
# "rgb(${toString base16.rgb."base06".r},${toString base16.rgb."base06".g},${toString base16.rgb."base06".b})";
|
||||||
|
# "col.inactive_border" =
|
||||||
|
# "rgb(${toString base16.rgb."base03".r},${toString base16.rgb."base03".g},${toString base16.rgb."base03".b})";
|
||||||
|
resize_on_border = false;
|
||||||
|
allow_tearing = true;
|
||||||
|
layout = "dwindle";
|
||||||
|
};
|
||||||
|
decoration = {
|
||||||
|
rounding = 4;
|
||||||
|
rounding_power = 1;
|
||||||
|
active_opacity = 1.0;
|
||||||
|
inactive_opacity = 1.0;
|
||||||
|
|
||||||
|
shadow = {
|
||||||
|
enabled = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
blur = {
|
||||||
|
enabled = true;
|
||||||
|
passes = 1;
|
||||||
|
new_optimizations = true;
|
||||||
|
ignore_opacity = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
animations = {
|
||||||
|
enabled = true;
|
||||||
|
bezier = [
|
||||||
|
"easeOutQuint,0.23,1,0.32,1"
|
||||||
|
"easeInOutCubic,0.65,0.05,0.36,1"
|
||||||
|
"linear,0,0,1,1"
|
||||||
|
"almostLinear,0.5,0.5,0.75,1.0"
|
||||||
|
"quick,0.15,0,0.1,1"
|
||||||
|
];
|
||||||
|
animation = [
|
||||||
|
"global, 1, 10, default"
|
||||||
|
"border, 1, 5.39, easeOutQuint"
|
||||||
|
"windows, 1, 2.79, easeOutQuint"
|
||||||
|
"windowsIn, 1, 1, easeOutQuint, popin 87%"
|
||||||
|
"windowsOut, 1, 1, linear, popin 87%"
|
||||||
|
"windowsMove, 1, 1, easeInOutCubic"
|
||||||
|
"fadeIn, 1, 0.5, almostLinear"
|
||||||
|
"fadeOut, 1, 0.5, almostLinear"
|
||||||
|
"fade, 1, 1, quick"
|
||||||
|
"layers, 1, 3.81, easeOutQuint"
|
||||||
|
"layersIn, 1, 4, easeOutQuint, fade"
|
||||||
|
"layersOut, 1, 1.5, linear, fade"
|
||||||
|
"fadeLayersIn, 1, 1.79, almostLinear"
|
||||||
|
"fadeLayersOut, 1, 1.39, almostLinear"
|
||||||
|
"workspaces, 1, 1, almostLinear, slide"
|
||||||
|
"workspacesIn, 1, 1, easeInOutCubic, slide"
|
||||||
|
"workspacesOut, 1, 1, easeInOutCubic, slide"
|
||||||
|
"zoomFactor, 1, 7, quick"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
dwindle = {
|
||||||
|
pseudotile = true;
|
||||||
|
preserve_split = true;
|
||||||
|
};
|
||||||
|
# master = {
|
||||||
|
# new_status = master;
|
||||||
|
# };
|
||||||
|
misc = {
|
||||||
|
force_default_wallpaper = -1;
|
||||||
|
disable_hyprland_logo = false;
|
||||||
|
enable_anr_dialog = false;
|
||||||
|
vfr = true;
|
||||||
|
};
|
||||||
|
"$mainMod" = "SUPER";
|
||||||
|
bind = [
|
||||||
|
(
|
||||||
|
let
|
||||||
|
config = pkgs.writeTextFile {
|
||||||
|
name = "config";
|
||||||
|
text = ''
|
||||||
|
width = 100%
|
||||||
|
height = 100%
|
||||||
|
border-width = 0
|
||||||
|
outline-width = 0
|
||||||
|
padding-left = 35%
|
||||||
|
padding-top = 35%
|
||||||
|
result-spacing = 25
|
||||||
|
num-results = 5
|
||||||
|
font = monospace
|
||||||
|
background-color = #000A
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
script = pkgs.writeShellScript "mreow" ''
|
||||||
|
exec $(tofi-drun -c ${config})
|
||||||
|
'';
|
||||||
|
in
|
||||||
|
"$mainMod, R, exec, ${script}"
|
||||||
|
)
|
||||||
|
"$mainMod, C, killactive"
|
||||||
|
"$mainMod, M, exec, uwsm stop"
|
||||||
|
"$mainMod, Q, exec, kitty"
|
||||||
|
"$mainMod, V, togglefloating,"
|
||||||
|
"$mainMod, P, pseudo, # dwindle"
|
||||||
|
"$mainMod, J, togglesplit, # dwindle"
|
||||||
|
"$mainMod, left, movefocus, l"
|
||||||
|
"$mainMod, right, movefocus, r"
|
||||||
|
"$mainMod, up, movefocus, u"
|
||||||
|
"$mainMod, down, movefocus, d"
|
||||||
|
"$mainMod, L, exec, wlogout"
|
||||||
|
(
|
||||||
|
"$mainMod, S, exec, "
|
||||||
|
+ ''wayfreeze --after-freeze-cmd 'grim -g "$(slurp -d)" - | wl-copy -t image/png;killall wayfreeze' --hide-cursor''
|
||||||
|
)
|
||||||
|
"$mainMod, F, fullscreen"
|
||||||
|
"$mainMod, mouse_down, workspace, e+1"
|
||||||
|
"$mainMod, mouse_up, workspace, e-1"
|
||||||
|
", home, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
|
||||||
|
", end, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"
|
||||||
|
", F8, pass, class:^(com\.obsproject\.Studio)$"
|
||||||
|
"$mainMod, 0, workspace, 10"
|
||||||
|
"$mainMod SHIFT, 0, movetoworkspace, 10"
|
||||||
|
]
|
||||||
|
++ (builtins.concatLists (
|
||||||
|
builtins.genList (
|
||||||
|
i:
|
||||||
|
let
|
||||||
|
ws = i + 1;
|
||||||
|
in
|
||||||
|
[
|
||||||
|
"$mainMod, ${toString ws}, workspace, ${toString ws}"
|
||||||
|
"$mainMod SHIFT, ${toString ws}, movetoworkspace, ${toString ws}"
|
||||||
|
]
|
||||||
|
) 9
|
||||||
|
));
|
||||||
|
bindm = [
|
||||||
|
"$mainMod, mouse:272, movewindow"
|
||||||
|
"$mainMod, mouse:273, resizewindow"
|
||||||
|
];
|
||||||
|
windowrule = [
|
||||||
|
"match:class .*, suppress_event maximize"
|
||||||
|
"match:class ^(gamescope)$, workspace 5"
|
||||||
|
"match:class ^(gamescope)$, fullscreen true"
|
||||||
|
"match:class ^(gamescope)$, immediate true"
|
||||||
|
"match:class ^(steam)$, workspace 6 silent"
|
||||||
|
"match:class ^(vesktop)$, workspace 8 silent"
|
||||||
|
"match:class ^(org.telegram.desktop)$, workspace 8 silent"
|
||||||
|
"match:class ^(com.obsproject.Studio)$, workspace 10 silent"
|
||||||
|
"match:initial_title ^(OBS Studio Crash Detected)$, pin true"
|
||||||
|
"match:initial_title ^(Discord Popout)$, workspace 1 silent"
|
||||||
|
];
|
||||||
|
layerrule = [
|
||||||
|
"match:namespace ^(notifications)$, no_screen_share true"
|
||||||
|
# "match:namespace ^(quickshell)$, blur true"
|
||||||
|
];
|
||||||
|
# exec-once = [
|
||||||
|
# ];
|
||||||
|
# we need to auto launch: quickshell, steam, ar_rpc (maybe), vesktop, telegram, qbit, and obs
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
53
config/modules/hyprland/hyprland.nix
Normal file
53
config/modules/hyprland/hyprland.nix
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
{
|
||||||
|
modules,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
flake-file.inputs = {
|
||||||
|
hyprland.url = "github:hyprwm/Hyprland";
|
||||||
|
};
|
||||||
|
modules.hyprland = {
|
||||||
|
nixos =
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
imports = [ inputs.hyprland.nixosModules.default ];
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
wayfreeze
|
||||||
|
grim
|
||||||
|
slurp
|
||||||
|
wlogout
|
||||||
|
];
|
||||||
|
programs.xwayland.enable = true;
|
||||||
|
programs.hyprland = {
|
||||||
|
enable = true;
|
||||||
|
# withUWSM = true;
|
||||||
|
# set the flake package
|
||||||
|
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
|
||||||
|
# make sure to also set the portal package, so that they are in sync
|
||||||
|
portalPackage =
|
||||||
|
inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
|
||||||
|
};
|
||||||
|
xdg.portal = {
|
||||||
|
enable = true;
|
||||||
|
# extraPortals = [ pkgs.xdg-desktop-portal-cosmic ];
|
||||||
|
};
|
||||||
|
environment.sessionVariables.NIXOS_OZONE_WL = "1";
|
||||||
|
hardware.graphics = {
|
||||||
|
# package = pkgs-unstable.mesa;
|
||||||
|
|
||||||
|
# if you also want 32-bit support (e.g for Steam)
|
||||||
|
# enable32Bit = true;
|
||||||
|
# package32 = pkgs-unstable.pkgsi686Linux.mesa;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
homeManager =
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
wayland.windowManager.hyprland = {
|
||||||
|
enable = true;
|
||||||
|
systemd.variables = [ "--all" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
19
config/modules/kitty.nix
Normal file
19
config/modules/kitty.nix
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
{ den, modules, ... }:
|
||||||
|
{
|
||||||
|
modules.kitty = {
|
||||||
|
homeManager = {
|
||||||
|
programs.kitty = {
|
||||||
|
enable = true;
|
||||||
|
font = {
|
||||||
|
name = "Google Sans Code Nerd Font";
|
||||||
|
size = 11;
|
||||||
|
};
|
||||||
|
settings = {
|
||||||
|
sync_to_monitor = "yes";
|
||||||
|
background_opacity = 0.6;
|
||||||
|
cursor_trail = 1;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
34
config/modules/nix.nix
Normal file
34
config/modules/nix.nix
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
modules.nix = {
|
||||||
|
nixos =
|
||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
nix.settings = {
|
||||||
|
substituters = [
|
||||||
|
"https://hyprland.cachix.org"
|
||||||
|
"https://nix-community.cachix.org"
|
||||||
|
"https://cache.nixos.org/"
|
||||||
|
"https://attic.scug.io/pkgs"
|
||||||
|
"https://cache.nixos-cuda.org"
|
||||||
|
"https://niri.cachix.org"
|
||||||
|
];
|
||||||
|
trusted-public-keys = [
|
||||||
|
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
|
||||||
|
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
||||||
|
"pkgs:+sRbfiZMMX5R3PuAPtIRz/emowDoGZNpozibrnrAvuc="
|
||||||
|
"cache.nixos-cuda.org:74DUi4Ye579gUqzH4ziL9IyiJBlDpMRn9MBN8oNan9M="
|
||||||
|
"niri.cachix.org-1:Wv0OmO7PsuocRKzfDoJ3mulSl7Z6oezYhGhR+3W2964="
|
||||||
|
];
|
||||||
|
experimental-features = [
|
||||||
|
"flakes"
|
||||||
|
"nix-command"
|
||||||
|
];
|
||||||
|
trusted-users = [
|
||||||
|
"doloro"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
278
config/modules/nixvim/default.nix
Normal file
278
config/modules/nixvim/default.nix
Normal file
@@ -0,0 +1,278 @@
|
|||||||
|
{
|
||||||
|
den,
|
||||||
|
modules,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
# Its in its own folder for future modulizaion efforts
|
||||||
|
flake-file.inputs = {
|
||||||
|
nixvim = {
|
||||||
|
url = "github:nix-community/nixvim";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
modules = {
|
||||||
|
nixvim = {
|
||||||
|
homeManager =
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
inputs.nixvim.homeModules.nixvim
|
||||||
|
];
|
||||||
|
programs.nixvim = {
|
||||||
|
enable = true;
|
||||||
|
defaultEditor = true;
|
||||||
|
colorschemes.gruvbox-material.enable = true;
|
||||||
|
extraPackages = with pkgs; [
|
||||||
|
# formatters
|
||||||
|
nixfmt
|
||||||
|
rustfmt
|
||||||
|
# misc
|
||||||
|
ripgrep
|
||||||
|
# misc
|
||||||
|
nixd
|
||||||
|
];
|
||||||
|
performance.byteCompileLua = {
|
||||||
|
enable = true;
|
||||||
|
plugins = true;
|
||||||
|
nvimRuntime = true;
|
||||||
|
luaLib = true;
|
||||||
|
configs = true;
|
||||||
|
};
|
||||||
|
plugins = {
|
||||||
|
todo-comments.enable = true;
|
||||||
|
lsp-status.enable = true;
|
||||||
|
transparent.enable = true;
|
||||||
|
conform-nvim = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
formatters_by_ft = {
|
||||||
|
nix = [ "nixfmt" ];
|
||||||
|
rust = [ "rustfmt" ];
|
||||||
|
"_" = [
|
||||||
|
"squeeze_blanks"
|
||||||
|
"trim_whitespace"
|
||||||
|
"trim_newlines"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
format_on_save = {
|
||||||
|
timeout_ms = 500;
|
||||||
|
lsp_format = "fallback";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
lsp = {
|
||||||
|
enable = true;
|
||||||
|
servers = {
|
||||||
|
qmlls = {
|
||||||
|
enable = true;
|
||||||
|
config = {
|
||||||
|
cmd = "-E";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
rust_analyzer = {
|
||||||
|
enable = true;
|
||||||
|
installCargo = false;
|
||||||
|
installRustc = false;
|
||||||
|
};
|
||||||
|
nixd = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
astro = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
ts_ls = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
svelte.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
lsp-format = {
|
||||||
|
enable = true;
|
||||||
|
# lspServersToEnable = [ "qmlls" ];
|
||||||
|
};
|
||||||
|
notify = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
background_color = "#00000000";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
mini-cursorword.enable = true;
|
||||||
|
# mini-statusline.enable = true;
|
||||||
|
lualine = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
sections = {
|
||||||
|
lualine_a = [ "mode" ];
|
||||||
|
lualine_b = [
|
||||||
|
"branch"
|
||||||
|
"diff"
|
||||||
|
"diagnostics"
|
||||||
|
];
|
||||||
|
lualine_c = [ "filename" ];
|
||||||
|
lualine_x = [
|
||||||
|
"encoding"
|
||||||
|
"fileformat"
|
||||||
|
"filetype"
|
||||||
|
];
|
||||||
|
lualine_y = [ "lsp_status" ];
|
||||||
|
lualine_z = [ "location" ];
|
||||||
|
};
|
||||||
|
inactive_sections = {
|
||||||
|
lualine_a = [ ];
|
||||||
|
lualine_b = [ ];
|
||||||
|
lualine_c = [ "filename" ];
|
||||||
|
lualine_x = [ "location" ];
|
||||||
|
lualine_y = [ ];
|
||||||
|
lualine_z = [ ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
web-devicons.enable = true;
|
||||||
|
vim-dadbod-completion.enable = true;
|
||||||
|
telescope.enable = true;
|
||||||
|
lazygit.enable = true;
|
||||||
|
mini-indentscope = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
draw = {
|
||||||
|
delay = 10;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
mini-files = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
windows = {
|
||||||
|
preview = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
trouble.enable = true;
|
||||||
|
cmp = {
|
||||||
|
enable = true;
|
||||||
|
autoEnableSources = true;
|
||||||
|
settings = {
|
||||||
|
sources = [
|
||||||
|
{ name = "nvim_lsp"; }
|
||||||
|
{ name = "path"; }
|
||||||
|
{ name = "buffer"; }
|
||||||
|
];
|
||||||
|
mapping = {
|
||||||
|
"<C-Space>" = "cmp.mapping.complete()";
|
||||||
|
"<C-d>" = "cmp.mapping.scroll_docs(-4)";
|
||||||
|
"<C-e>" = "cmp.mapping.close()";
|
||||||
|
"<C-f>" = "cmp.mapping.scroll_docs(4)";
|
||||||
|
"<CR>" = "cmp.mapping.confirm({ select = true })";
|
||||||
|
"<S-Tab>" = "cmp.mapping(cmp.mapping.select_prev_item(), {'i', 's'})";
|
||||||
|
"<Tab>" = "cmp.mapping(cmp.mapping.select_next_item(), {'i', 's'})";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
lspkind.enable = true;
|
||||||
|
tiny-inline-diagnostic.enable = true;
|
||||||
|
# persisted.enable = true;
|
||||||
|
auto-session = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
enabled = true;
|
||||||
|
auto_save = true;
|
||||||
|
auto_restore = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
wakatime.enable = true;
|
||||||
|
treesitter = {
|
||||||
|
enable = true;
|
||||||
|
grammarPackages = with pkgs.vimPlugins.nvim-treesitter.builtGrammars; [
|
||||||
|
bash
|
||||||
|
json
|
||||||
|
lua
|
||||||
|
make
|
||||||
|
markdown
|
||||||
|
nix
|
||||||
|
regex
|
||||||
|
toml
|
||||||
|
vim
|
||||||
|
vimdoc
|
||||||
|
xml
|
||||||
|
yaml
|
||||||
|
];
|
||||||
|
settings = {
|
||||||
|
highlight.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
extraPlugins = with pkgs; [
|
||||||
|
# vimPlugins.mini-completion
|
||||||
|
vimPlugins.mini-comment
|
||||||
|
vimPlugins.melange-nvim
|
||||||
|
vimPlugins.telescope-file-browser-nvim
|
||||||
|
vimPlugins.lsp-progress-nvim
|
||||||
|
];
|
||||||
|
opts = {
|
||||||
|
number = true;
|
||||||
|
bg = "dark";
|
||||||
|
tabstop = 2;
|
||||||
|
shiftwidth = 2;
|
||||||
|
termguicolors = true;
|
||||||
|
};
|
||||||
|
globals = {
|
||||||
|
mapleader = " ";
|
||||||
|
};
|
||||||
|
keymaps = [
|
||||||
|
{
|
||||||
|
action = "<cmd>Telescope persisted<cr>";
|
||||||
|
key = "<leader>fs";
|
||||||
|
options = {
|
||||||
|
silent = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
action = "<cmd>Telescope find_files<cr>";
|
||||||
|
key = "<leader>ff";
|
||||||
|
options = {
|
||||||
|
silent = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
action = "<cmd>:lua MiniFiles.open()<cr>";
|
||||||
|
key = "<leader>fv";
|
||||||
|
options = {
|
||||||
|
silent = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
action = "<cmd>LazyGit<cr>";
|
||||||
|
key = "<leader>lg";
|
||||||
|
options = {
|
||||||
|
silent = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
action = "<cmd>Telescope buffers<cr>";
|
||||||
|
key = "<leader>fb";
|
||||||
|
options = {
|
||||||
|
silent = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
action = "<cmd>Telescope live_grep<cr>";
|
||||||
|
key = "<leader>fg";
|
||||||
|
options = {
|
||||||
|
silent = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
action = "<cmd>Trouble diagnostics toggle<cr>";
|
||||||
|
key = "<leader>fd";
|
||||||
|
options = {
|
||||||
|
silent = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
70
config/modules/obs.nix
Normal file
70
config/modules/obs.nix
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
{ den, modules, ... }:
|
||||||
|
{
|
||||||
|
modules.obs = settings: {
|
||||||
|
homeManager =
|
||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
programs = {
|
||||||
|
obs-studio = {
|
||||||
|
enable = true;
|
||||||
|
package = (
|
||||||
|
pkgs.obs-studio.override {
|
||||||
|
cudaSupport = true;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
plugins = with pkgs.obs-studio-plugins; [
|
||||||
|
obs-pipewire-audio-capture
|
||||||
|
obs-vkcapture
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
systemd.user.services =
|
||||||
|
lib.mkIf settings.virtual_audio_devices {
|
||||||
|
pw-discordaudio-virtual-device = {
|
||||||
|
Install = {
|
||||||
|
WantedBy = [ "hyprland-session.target" ];
|
||||||
|
};
|
||||||
|
Service = {
|
||||||
|
ExecStart = "${pkgs.writeShellScript "discord_audio_virt_device" ''
|
||||||
|
#!/run/current-system/sw/bin/bash
|
||||||
|
pw-loopback -m '[ FL FR]' --capture-props='media.class=Audio/Sink node.name=DiscordSink' -n DiscordSink
|
||||||
|
''}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
pw-gameaudio-virtual-device = {
|
||||||
|
Install = {
|
||||||
|
WantedBy = [ "hyprland-session.target" ];
|
||||||
|
};
|
||||||
|
Service = {
|
||||||
|
ExecStart = "${pkgs.writeShellScript "game_audio_virt_device" ''
|
||||||
|
#!/run/current-system/sw/bin/bash
|
||||||
|
pw-loopback -m '[ FL FR]' --capture-props='media.class=Audio/Sink node.name=GameAudioSink' -n GameAudioSink
|
||||||
|
''}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
// pkgs.lib.mkIf settings.autostart {
|
||||||
|
obs-autostart = {
|
||||||
|
Unit = {
|
||||||
|
Description = "OBS daemon";
|
||||||
|
After = [ "hyprland-session.target" ];
|
||||||
|
};
|
||||||
|
Install = {
|
||||||
|
WantedBy = [ "default.target" ];
|
||||||
|
};
|
||||||
|
Service = {
|
||||||
|
# wait for hyprland to start
|
||||||
|
ExecStart = "${config.programs.obs-studio.finalPackage}/bin/obs --startreplaybuffer";
|
||||||
|
Restart = "on-failure";
|
||||||
|
RestartSec = "5s";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
19
config/modules/power-management/auto-cpufreq.nix
Normal file
19
config/modules/power-management/auto-cpufreq.nix
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
{ den, modules, ... }:
|
||||||
|
{
|
||||||
|
modules.auto-cpufreq = {
|
||||||
|
nixos =
|
||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
services.auto-cpufreq.settings = {
|
||||||
|
battery = {
|
||||||
|
governor = "powersave";
|
||||||
|
turbo = "never";
|
||||||
|
};
|
||||||
|
charger = {
|
||||||
|
governor = "performance";
|
||||||
|
turbo = "auto";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
13
config/modules/power-management/battery-ac-targets.nix
Normal file
13
config/modules/power-management/battery-ac-targets.nix
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
{ den, modules, ... }:
|
||||||
|
{
|
||||||
|
modules.battery-ac-targets = {
|
||||||
|
nixos =
|
||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
services.udev.extraRules = ''
|
||||||
|
SUBSYSTEM=="power_supply",ENV{POWER_SUPPLY_ONLINE}=="0", RUN+="/run/current-system/systemd/bin/systemctl start battery.target"
|
||||||
|
SUBSYSTEM=="power_supply", ENV{POWER_SUPPLY_ONLINE}=="1", RUN+="/run/current-system/systemd/bin/systemctl start ac.target"
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
13
config/modules/power-management/common.nix
Normal file
13
config/modules/power-management/common.nix
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
{ den, modules, ... }:
|
||||||
|
{
|
||||||
|
modules.common.provides = {
|
||||||
|
laptop-power-management = {
|
||||||
|
includes = [
|
||||||
|
modules.auto-cpufreq
|
||||||
|
modules.battery-ac-targets
|
||||||
|
modules.intel-mgm
|
||||||
|
modules.tlp
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
46
config/modules/power-management/intel-gpu-management.nix
Normal file
46
config/modules/power-management/intel-gpu-management.nix
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
{ den, modules, ... }:
|
||||||
|
{
|
||||||
|
# Intel Mobile Gpu Management
|
||||||
|
modules.intel-mgm = {
|
||||||
|
nixos =
|
||||||
|
{ pkgs, ... }:
|
||||||
|
let
|
||||||
|
batt-gpu = pkgs.writeShellScript "batt-igpu" ''
|
||||||
|
${pkgs.intel-gpu-tools}/bin/intel_gpu_frequency -e
|
||||||
|
echo "800" > /sys/class/drm/card1/gt_boost_freq_mhz
|
||||||
|
'';
|
||||||
|
ac-gpu = pkgs.writeShellScript "ac-igpu" ''
|
||||||
|
${pkgs.intel-gpu-tools}/bin/intel_gpu_frequency -d
|
||||||
|
echo "2350" > /sys/class/drm/card1/gt_boost_freq_mhz
|
||||||
|
'';
|
||||||
|
in
|
||||||
|
{
|
||||||
|
systemd.services.gpu-limit-on-batt = {
|
||||||
|
enable = true;
|
||||||
|
description = "Using rfkill; disable all rf devices before sleeping.";
|
||||||
|
before = [ "battery.target" ];
|
||||||
|
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "oneshot";
|
||||||
|
ExecStart = "${batt-gpu}";
|
||||||
|
RemainAfterExit = true;
|
||||||
|
};
|
||||||
|
wantedBy = [ "battery.target" ];
|
||||||
|
partOf = [ "battery.target" ];
|
||||||
|
};
|
||||||
|
systemd.services.gpu-limit-on-ac = {
|
||||||
|
enable = true;
|
||||||
|
description = "Using rfkill; disable all rf devices before sleeping.";
|
||||||
|
before = [ "ac.target" ];
|
||||||
|
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "oneshot";
|
||||||
|
ExecStart = "${ac-gpu}";
|
||||||
|
RemainAfterExit = true;
|
||||||
|
};
|
||||||
|
wantedBy = [ "ac.target" ];
|
||||||
|
partOf = [ "ac.target" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
60
config/modules/power-management/tlp.nix
Normal file
60
config/modules/power-management/tlp.nix
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
{ den, modules, ... }:
|
||||||
|
{
|
||||||
|
modules.tlp = {
|
||||||
|
homeManager = { };
|
||||||
|
nixos = {
|
||||||
|
services.tlp = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
# Wireless power saving
|
||||||
|
WIFI_PWR_ON_BAT = "on";
|
||||||
|
|
||||||
|
# USB autosuspend
|
||||||
|
USB_AUTOSUSPEND = "on";
|
||||||
|
|
||||||
|
# SATA drive power management
|
||||||
|
SATA_LINKPWR_ON_BAT = "min_power";
|
||||||
|
|
||||||
|
# PCI Express Active-State Power Management (ASPM)
|
||||||
|
PCIE_ASPM_ON_BAT = "powersupersave";
|
||||||
|
|
||||||
|
RUNTIME_PM_ON_AC = "auto";
|
||||||
|
RUNTIME_PM_ON_BAT = "auto";
|
||||||
|
|
||||||
|
# Disable Bluetooth on battery
|
||||||
|
# DEVICES_TO_DISABLE_ON_BAT = "bluetooth";
|
||||||
|
|
||||||
|
# Restore brightness on battery
|
||||||
|
RESTORE_BRIGHTNESS_ON_BAT = "1";
|
||||||
|
PCIE_ASPM_ON_AC = "balanced";
|
||||||
|
DEVICES_TO_DISABLE_ON_BAT_NOT_IN_USE = "bluetooth";
|
||||||
|
INTEL_GPU_MAX_FREQ_ON_AC = 0;
|
||||||
|
INTEL_GPU_MAX_FREQ_ON_BAT = 800;
|
||||||
|
INTEL_GPU_BOOST_FREQ_ON_AC = 0;
|
||||||
|
INTEL_GPU_BOOST_FREQ_ON_BAT = 800;
|
||||||
|
|
||||||
|
CPU_MAX_PERF_ON_BAT = 30;
|
||||||
|
|
||||||
|
CPU_SCALING_GOVERNOR_ON_AC = "performance";
|
||||||
|
CPU_SCALING_GOVERNOR_ON_BAT = "powersave";
|
||||||
|
CPU_HWP_DYN_BOOST_ON_AC = "1";
|
||||||
|
CPU_HWP_DYN_BOOST_ON_BAT = "0";
|
||||||
|
CPU_ENERGY_PERF_POLICY_ON_BAT = "power";
|
||||||
|
CPU_ENERGY_PERF_POLICY_ON_AC = "performance";
|
||||||
|
MAX_LOST_WORK_SECS_ON_BAT = "60";
|
||||||
|
MAX_LOST_WORK_SECS_ON_AC = "15";
|
||||||
|
DISK_IDLE_SECS_ON_AC = "0";
|
||||||
|
WOL_DISABLE = "Y";
|
||||||
|
SOUND_POWER_SAVE_CONTROLLER = "Y";
|
||||||
|
DISK_IDLE_SECS_ON_BAT = "2";
|
||||||
|
SOUND_POWER_SAVE_ON_BAT = "1";
|
||||||
|
SOUND_POWER_SAVE_ON_AC = "1";
|
||||||
|
|
||||||
|
PLATFORM_PROFILE_ON_AC = "balanced";
|
||||||
|
PLATFORM_PROFILE_ON_BAT = "quiet";
|
||||||
|
STOP_CHARGE_THRESH_BAT0 = 80;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
18
config/modules/publickeys.nix
Normal file
18
config/modules/publickeys.nix
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
{ modules, ... }:
|
||||||
|
{
|
||||||
|
# Applys doloro's public keys to the users openssh
|
||||||
|
modules.publicKeys.provides = {
|
||||||
|
doloro =
|
||||||
|
{ user, host, ... }:
|
||||||
|
{
|
||||||
|
nixos = {
|
||||||
|
users.users.${user.userName} = {
|
||||||
|
openssh.authorizedKeys.keys = [
|
||||||
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIE/4h+WCBBW82puv8SMdUbkWymF4amEMuZitgFztB6oZ" # laptop pub key
|
||||||
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBaa6Z5qtBSLEz+A4fQGYPfkOISsRQlmKkVbcx2zxML7" # pc pub key
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
22
config/modules/quickshell/quickshell.nix
Normal file
22
config/modules/quickshell/quickshell.nix
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
{ den, modules, ... }:
|
||||||
|
{
|
||||||
|
modules.quickshell = {
|
||||||
|
homeManager =
|
||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
programs.quickshell = {
|
||||||
|
systemd.enable = true;
|
||||||
|
enable = true;
|
||||||
|
activeConfig = "main";
|
||||||
|
configs = {
|
||||||
|
main = config.lib.file.mkOutOfStoreSymlink "/home/doloro/dotfiles/config/modules/quickshell/quickshell";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
1
config/modules/quickshell/quickshell/.qmlls.ini
Symbolic link
1
config/modules/quickshell/quickshell/.qmlls.ini
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
/run/user/1000/quickshell/vfs/6e389f6b800776b0595d9d90e42ebd04/.qmlls.ini
|
||||||
62
config/modules/quickshell/quickshell/Bar.qml
Normal file
62
config/modules/quickshell/quickshell/Bar.qml
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
// Bar.qml
|
||||||
|
import Quickshell
|
||||||
|
import Quickshell.Io
|
||||||
|
import QtQuick
|
||||||
|
import QtQuick.Layouts
|
||||||
|
|
||||||
|
Scope {
|
||||||
|
id: root
|
||||||
|
|
||||||
|
PanelWindow {
|
||||||
|
required property var modelData
|
||||||
|
screen: modelData
|
||||||
|
color: "transparent"
|
||||||
|
|
||||||
|
anchors {
|
||||||
|
top: true
|
||||||
|
left: true
|
||||||
|
right: true
|
||||||
|
}
|
||||||
|
|
||||||
|
implicitHeight: 20
|
||||||
|
|
||||||
|
RowLayout {
|
||||||
|
visible: true
|
||||||
|
height: parent.height
|
||||||
|
anchors {
|
||||||
|
top: parent.top
|
||||||
|
left: parent.left
|
||||||
|
right: parent.right
|
||||||
|
// bottomMargin: 2
|
||||||
|
leftMargin: 5
|
||||||
|
rightMargin: 5
|
||||||
|
}
|
||||||
|
RowLayout {
|
||||||
|
// Left
|
||||||
|
Layout.alignment: Qt.AlignLeft
|
||||||
|
}
|
||||||
|
RowLayout {
|
||||||
|
// Center
|
||||||
|
Layout.alignment: Qt.AlignCenter
|
||||||
|
}
|
||||||
|
RowLayout {
|
||||||
|
// Right
|
||||||
|
Layout.alignment: Qt.AlignRight
|
||||||
|
Rectangle {
|
||||||
|
width: meow.width
|
||||||
|
height: meow.height
|
||||||
|
radius: 3.5
|
||||||
|
|
||||||
|
color: "white"
|
||||||
|
|
||||||
|
anchors.centerIn: parent
|
||||||
|
Text {
|
||||||
|
id: meow
|
||||||
|
// font.pointSize: 24
|
||||||
|
text: Clock.time
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
20
config/modules/quickshell/quickshell/Clock.qml
Normal file
20
config/modules/quickshell/quickshell/Clock.qml
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
// Time.qml
|
||||||
|
pragma Singleton
|
||||||
|
|
||||||
|
import Quickshell
|
||||||
|
import QtQuick
|
||||||
|
|
||||||
|
Singleton {
|
||||||
|
id: root
|
||||||
|
// an expression can be broken across multiple lines using {}
|
||||||
|
readonly property string time: {
|
||||||
|
// The passed format string matches the default output of
|
||||||
|
// the `date` command.
|
||||||
|
Qt.formatDateTime(clock.date, "ddd MMM d HH:mm");
|
||||||
|
}
|
||||||
|
|
||||||
|
SystemClock {
|
||||||
|
id: clock
|
||||||
|
precision: SystemClock.minutes
|
||||||
|
}
|
||||||
|
}
|
||||||
1
config/modules/quickshell/quickshell/main
Symbolic link
1
config/modules/quickshell/quickshell/main
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
/nix/store/ynim9hhkc1smj1h2plrw3ap978dlm3qj-home-manager-files/.config/quickshell/main
|
||||||
11
config/modules/quickshell/quickshell/shell.qml
Normal file
11
config/modules/quickshell/quickshell/shell.qml
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
// @ pragma UseQApplication
|
||||||
|
//@ pragma Env QS_NO_RELOAD_POPUP=0
|
||||||
|
//@ pragma Env QT_QUICK_CONTROLS_STYLE=Basic
|
||||||
|
//@ pragma Env QT_QUICK_FLICKABLE_WHEEL_DECELERATION=10000
|
||||||
|
|
||||||
|
import Quickshell
|
||||||
|
import QtQuick
|
||||||
|
|
||||||
|
Scope {
|
||||||
|
Bar {}
|
||||||
|
}
|
||||||
19
config/modules/quickshell/quickshell/widgets/clock.qml
Normal file
19
config/modules/quickshell/quickshell/widgets/clock.qml
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
pragma Singleton
|
||||||
|
|
||||||
|
import Quickshell
|
||||||
|
import QtQuick
|
||||||
|
|
||||||
|
Singleton {
|
||||||
|
id: root
|
||||||
|
// an expression can be broken across multiple lines using {}
|
||||||
|
readonly property string time: {
|
||||||
|
// The passed format string matches the default output of
|
||||||
|
// the `date` command.
|
||||||
|
Qt.formatDateTime(clock.date, "ddd MMM d hh:mm:ss AP t yyyy");
|
||||||
|
}
|
||||||
|
|
||||||
|
SystemClock {
|
||||||
|
id: clock
|
||||||
|
precision: SystemClock.Seconds
|
||||||
|
}
|
||||||
|
}
|
||||||
41
config/modules/raspberry-pi.nix
Normal file
41
config/modules/raspberry-pi.nix
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
{
|
||||||
|
den,
|
||||||
|
__findFile,
|
||||||
|
modules,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
flake-file.inputs = {
|
||||||
|
raspberry-pi-nix.url = "github:nix-community/raspberry-pi-nix";
|
||||||
|
};
|
||||||
|
modules.raspberry-pi = {
|
||||||
|
provides = {
|
||||||
|
"5" = {
|
||||||
|
nixos =
|
||||||
|
{ pkgs, ... }:
|
||||||
|
let
|
||||||
|
rpi-pi = inputs.raspberry-pi-nix;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
rpi-pi.nixosModules.raspberry-pi
|
||||||
|
rpi-pi.nixosModules.sd-image
|
||||||
|
];
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
libraspberrypi
|
||||||
|
];
|
||||||
|
|
||||||
|
sdImage.compressImage = false;
|
||||||
|
raspberry-pi-nix.board = "bcm2712"; # Rpi 5 - 64bit
|
||||||
|
# We need to rebuild kernel for 6.12
|
||||||
|
# raspberry-pi-nix.kernel-version = "v6_12_17";
|
||||||
|
raspberry-pi-nix.uboot.enable = false;
|
||||||
|
|
||||||
|
hardware.enableRedistributableFirmware = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
56
config/modules/secrets/content/secrets.yaml
Normal file
56
config/modules/secrets/content/secrets.yaml
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
doloro-hashed_password: ENC[AES256_GCM,data:RYB/bSNTz1TeGucdFHrxxhOqvqQYvQS3lm44I1Lf3LIEVMXL5s41zxIw0S+JVdlq8I3oHDY4C3o5V4lu+8qAWMyIZYp/6Xp4cw==,iv:yOuKk95skNZ5z805vtoJwvyOdsh08BuyBSgXN+M4Ybo=,tag:QAFhUYuqHT6Spw/l4feY4g==,type:str]
|
||||||
|
root-hashed_password: ENC[AES256_GCM,data:vzVtz1Ht4XD+omdKjU/Zvoaftq8jKE4kxOjAGZTvoYI07hjItR2TSsYrLw0lwsxyJosfoyF3bVsZSFCuuN7njdchGMSSujZJhg==,iv:0av3n4fcGOHYQB4zidt/qn+blBSiDQ29LN15sVufLLs=,tag:nKKVDbCGxB7wDrMPAyJOaw==,type:str]
|
||||||
|
wakatime-scug-io-api-key: ENC[AES256_GCM,data:XQUccNW4210U8ZpHSGVcsdbAirzyTvmcy4y6emk7n4N6MO/W,iv:9/f9ceLshA7l8hJB+IDIPvEwYwSkFlPOLmpvtYXLTpU=,tag:x7hESZCouzYVNef2C+iCSA==,type:str]
|
||||||
|
meow: ENC[AES256_GCM,data:JVzenw==,iv:oCOo9//r5s2K4pSeH5UNEj0LL+9h2yq0G0DPOfwjmyQ=,tag:0gu9FNOrjQ8fpB+B+RbGSg==,type:str]
|
||||||
|
meoww: ENC[AES256_GCM,data:WPeszDfMWxY=,iv:JJMOror5wj7cTNKfrUj2LDXlO3WCKzb7jk4AeZ0oD+Q=,tag:qs3oyM7K1FGy5cXvS6OHpQ==,type:str]
|
||||||
|
sops:
|
||||||
|
age:
|
||||||
|
- recipient: age1ykcy2r4kk729e7adqxu8s24ujc60z5eux7ma0ca4ruzydwgm5p6qmdp838
|
||||||
|
enc: |
|
||||||
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAzdGQ5ZHUxUHE4YXF0bllY
|
||||||
|
dTRsYWc4cllmWEgveGVTLzUvRzJuc0FtUEdvCkNURmxmMnhkaExZcVVNRmRNU1p6
|
||||||
|
UitMYUxNMXgzZC84S3J0SHR4aFV5TGcKLS0tIFB3Skx6UlFDcVJFSlhTd1NRbUl2
|
||||||
|
VGQ3OUpDY0JVaEUyYStHQU83Q1hDYTAKeRgXVA8iWGO8cMMlvBFWGMVIZnaLCpsZ
|
||||||
|
hBjWlxG6oUlCNnO+cyckU3jSTecc+z+EIuseFt710nN5uRJeKs2MlA==
|
||||||
|
-----END AGE ENCRYPTED FILE-----
|
||||||
|
- recipient: age1e6vws55p0g23qzthm4qa93hpt6lqmck6670gkygph0sc0j7my4uq5wqjfh
|
||||||
|
enc: |
|
||||||
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBtM0wvV3pHTUZYdlhPWnU0
|
||||||
|
VElBbDI2bUJhQUVCMlBPNjNzOE9tTXJGelI0CjBEdmhWTGlyc2VhODRnbHE3ZGdC
|
||||||
|
WUoyWU0zcU5BbXhGdm5sVEZHdS80bkkKLS0tIHhpcFZQdkl6eHRUTGhZYmVOSCtz
|
||||||
|
RE8zeFl2ZVgyWVBsRmhlUElybXEwSEEKEhvMUClOOoN3RdzVOFBIPt7rMrukla1t
|
||||||
|
bVWGKX5e3p/EtK7aYzdBxYYvml+TNUD1n5TpTFhcnH2Jwpey8thz2Q==
|
||||||
|
-----END AGE ENCRYPTED FILE-----
|
||||||
|
- recipient: age1x3lahhkefkap67cdmdjcqaxan9hp62er78akr79v9m73nvgugpeqk0y32a
|
||||||
|
enc: |
|
||||||
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA0ODRGRkE3a09MS3Z0QXNm
|
||||||
|
OTBlb2JEV28vTmxhcjM5aFpYbVhYM0wyZkd3CmszblZWVEFkVlMwQ1FMZitBd0Rp
|
||||||
|
MkZpZGViSHlHSko4Tk9rZGNHaWpGWncKLS0tIC9xY1dBSncvQnhHTlhhaEpUK3ZI
|
||||||
|
Tjgwd0VuVGtjaTdaSE5ERmRIa1dVNEkKkN0vp7xDWCnu4aq8VQu5y8Q/6xsFKhCQ
|
||||||
|
ivMqQsqoOBvXSynu7hbNpcGvAsmDHDGcC2b/C9Mkt42OclSYM077bw==
|
||||||
|
-----END AGE ENCRYPTED FILE-----
|
||||||
|
- recipient: age1exzngtk4d9vcsmcq6ap5xx3ca9qacqjkrv86ymged7msx9z6vfyqsf5sjq
|
||||||
|
enc: |
|
||||||
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBYTmhiUmFWaDFzcnRXcWFp
|
||||||
|
VjJ1b3VRSk8xN0FQMk13UDY1a2FEV3ZQY2l3Cnd0SmMvM0JDOFhZdmtOL3g0dmNj
|
||||||
|
UGZleDV1MU1DMXFiYUNmR2htWXZXQnMKLS0tIFBLa3lPL0VieG9ZWFBOU25vZTJ1
|
||||||
|
VVVDclBGZTRSVDZOanRwOGNaK3VVUW8KCvt/rcP0rJD5aCNdGaJeABuGZ7huRbGw
|
||||||
|
7FBvo6TvIRh0MCyvfbzfUon2m9d4yU8ddFejpSEK1vucxbXgV7KD8g==
|
||||||
|
-----END AGE ENCRYPTED FILE-----
|
||||||
|
- recipient: age1fw4xnh2q52juce94ffn54js708cr6umfwpv0mykuddkea7kr4f0q7a9h05
|
||||||
|
enc: |
|
||||||
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBLU21oQnlTQ3RQWmNzR3Y4
|
||||||
|
aWhhdFZ6RFEwVm5ITWluS2xZM0QyUHI5SEdvCmFjdDU2YlhlYTJ6Y2pPaGJkNW01
|
||||||
|
WUVVN0xIRXZ3djdVVkYzRThLSzlCVzAKLS0tIFhISmlJcXB2UHNsb2VQS2tnYVUy
|
||||||
|
aW5ERENRS2JWbGZhaGhNSGtqNVRNTncK0uI8n2L5uP3to/sByeO7y17h3ZrcmnOf
|
||||||
|
e3CwdzP4/WcSwbFk0CRnS6Cq8J0esUqweSJxvpt2eNBEYvDZ77SSMw==
|
||||||
|
-----END AGE ENCRYPTED FILE-----
|
||||||
|
lastmodified: "2026-02-14T00:08:39Z"
|
||||||
|
mac: ENC[AES256_GCM,data:lp9ZeDxt5gkOkDmYk+F0VQrVhkR0tQiQlYXbygoA8Dcq+gV0IIKKLwRqr5CVfgfRlo3239IwmKLsGaS6zYC1xX4toZ8oqw3Ic2UvP2CiWt6M7HTrlL+3Y2+PKOUvGl7RAqQxQAw7QaoxB4esqdIiWnMDueVHk5BTKrkay+afhno=,iv:NAMaZ9SMBAtROTBSQtU0RJDB60MAuE82AFoPtDqVHVM=,tag:RGBUTQC1pM+LcBweSJbc6w==,type:str]
|
||||||
|
unencrypted_suffix: _unencrypted
|
||||||
|
version: 3.11.0
|
||||||
53
config/modules/secrets/content/server.yaml
Normal file
53
config/modules/secrets/content/server.yaml
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
namedotcom_api__key: fbf0bc2133da020b64bbe9c884f616afe59dfdf7
|
||||||
|
test: test
|
||||||
|
sops:
|
||||||
|
age:
|
||||||
|
- recipient: age1ykcy2r4kk729e7adqxu8s24ujc60z5eux7ma0ca4ruzydwgm5p6qmdp838
|
||||||
|
enc: |
|
||||||
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBSYm92cVo0Ykg2R3hTUWpW
|
||||||
|
UlNOTXF2cFI4Y29uRTh2aXIySFNSTFhZZ0RFCnR4YmRrQTVrY0hkUloxMGgzdFFa
|
||||||
|
ejFST0FESytnN3NIZW45blhmWDRMSlkKLS0tIE1MNWlHWWd1WEhNUGtiUm5GZ2pn
|
||||||
|
QUR3aGtVczZYV1FSUFdMRGw4a2lGU2MKh/56SL7neNFXN70dzwtwTHBaECoMvArR
|
||||||
|
TicJhSPV5S/vUrC9oDmSE3MMYtdzXSZkcRHYPI8fy5LcPOxXVPRARQ==
|
||||||
|
-----END AGE ENCRYPTED FILE-----
|
||||||
|
- recipient: age1e6vws55p0g23qzthm4qa93hpt6lqmck6670gkygph0sc0j7my4uq5wqjfh
|
||||||
|
enc: |
|
||||||
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB3K3ZxKzdvdVFMYnZLS0Nv
|
||||||
|
bDBkRWRNMkRMS09UWlZlcFYvZ1pEd09VVmlJCk9uMGJyNzd5QnZtWkdxOE40TVdG
|
||||||
|
YkJiaGZMaEFlNXljcnFvODVSL3Q2d3cKLS0tIFg5UFFPVElyR0xlbXEvMDNDQmpW
|
||||||
|
TGo3cUJVQ2NETkhWdmNCazNYSVpyUWcKr4EUvbK28WCiymL1BgYk6N6J27ZnadK8
|
||||||
|
kQ8tzwVS7iI1frBoHOVzXhCRt2CEg+O3EnXMRJDrahhxwmpqlx6cRA==
|
||||||
|
-----END AGE ENCRYPTED FILE-----
|
||||||
|
- recipient: age1x3lahhkefkap67cdmdjcqaxan9hp62er78akr79v9m73nvgugpeqk0y32a
|
||||||
|
enc: |
|
||||||
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBRWGVsRmkwZGxId0hXQlEv
|
||||||
|
czdmclRXYWNrL0t4bGpEQ0lmNE0vb1RuZEhjCkhEaGlxY3JKS3l4WGxHS0Uya2tM
|
||||||
|
Zm1Lb3RpY2h0K2lKaHR1bjdFL25yQ0UKLS0tIFYvNmkrUWNFekVoMFVLck81bXhl
|
||||||
|
WHNSbHpCTTZSS3lkUiszeEE0RGw4QncKTr1ZzIHtkv8aJNKT1v0m+QMJyht43+XJ
|
||||||
|
0CRxdoZ/HXoymMQ7oZvT8vf6Ehz41aLe1gZHl8ZJPexDHrSl28NCtg==
|
||||||
|
-----END AGE ENCRYPTED FILE-----
|
||||||
|
- recipient: age1exzngtk4d9vcsmcq6ap5xx3ca9qacqjkrv86ymged7msx9z6vfyqsf5sjq
|
||||||
|
enc: |
|
||||||
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBlc0tUVjVGVS85YUZOSmJq
|
||||||
|
a0pvcGV4UDBEc0N0Zk0xVEhUc1l1ZUFFTGxnClNocURmTE5ZaUorSVdWcE1kbW81
|
||||||
|
U3doQm9ZbHVrdVlsSVhFaEFoSHo5NU0KLS0tIGgvd05PY2tlbnRwbTRrdXpsT0ho
|
||||||
|
Zm1jbTlSMnA1WDUrZUVCOHNDWWJ2RFUK+cvqFK49rIVj3FITF/4HtCELvZhvkCZ9
|
||||||
|
8Ss77uE6qtGyhuGWXB0HwnO3fsCpXA62uUt/zv08o9LmIgRi7o7adg==
|
||||||
|
-----END AGE ENCRYPTED FILE-----
|
||||||
|
- recipient: age1fw4xnh2q52juce94ffn54js708cr6umfwpv0mykuddkea7kr4f0q7a9h05
|
||||||
|
enc: |
|
||||||
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBuN0dkcExkR2pyaUxhbUlz
|
||||||
|
NkR2WTNWRUpHSWdRTFdUY05jcm4ybDdEbW4wCmR1TTV5VlFudHN1cC8yRG5Nd2ts
|
||||||
|
K3duNEE1dit0Ym9PdmNaM1pEWjlZZU0KLS0tIHBXaXhzQ0VuTWFxdDQrczQ4YTBM
|
||||||
|
VlhpZ0N2ZmVkSC90NlowUkNuYWZUclEKzQUfWDETV5lPgrtCxYTLtVP8y7R8RFJj
|
||||||
|
4J1bei0nJHlsap8V88u+QiYRgFsEthd++hzkYmUDvYPsA48PnzMupw==
|
||||||
|
-----END AGE ENCRYPTED FILE-----
|
||||||
|
lastmodified: "2026-02-14T00:09:32Z"
|
||||||
|
mac: ENC[AES256_GCM,data:nYWQYK5QOA0u3DYGTozSGFMYhx2uMqkAWoqhthgagRFRnKA/j852fVKqRFcwn+fPSQ4e8i4WpcvoM7FVwuFDC+ixNp7xtz16pnswiNS4N/mNEYXfajkon7wIoUYNtrHahUeYlAnID0vYSQFA3XKgV7ZDD9b4V8X5N+yMlVXex4c=,iv:IW7276v0nnmFBe9Z7HIn6Tl9vX4sDoqWdDfJ1uwKoAY=,tag:YC8OiTcoL+nYV4x8rkivbg==,type:str]
|
||||||
|
encrypted_regex: ^(data|stringData)$
|
||||||
|
version: 3.11.0
|
||||||
24
config/modules/secrets/server.nix
Normal file
24
config/modules/secrets/server.nix
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
{ inputs, modules, ... }:
|
||||||
|
{
|
||||||
|
modules.sops.provides.server = {
|
||||||
|
nixos =
|
||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
inputs.sops-nix.nixosModules.sops
|
||||||
|
];
|
||||||
|
sops = {
|
||||||
|
# age.keyFile = "/etc/ssh/ssh_host_ed25519_key";
|
||||||
|
defaultSopsFile = ./server.yaml;
|
||||||
|
secrets = {
|
||||||
|
root-hashed_password = {
|
||||||
|
neededForUsers = true;
|
||||||
|
};
|
||||||
|
doloro-hashed_password = {
|
||||||
|
neededForUsers = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
42
config/modules/secrets/sops.nix
Normal file
42
config/modules/secrets/sops.nix
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
{ inputs, modules, ... }:
|
||||||
|
{
|
||||||
|
#
|
||||||
|
flake-file.inputs = {
|
||||||
|
sops-nix = {
|
||||||
|
url = "github:Mic92/sops-nix";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
modules.sops = {
|
||||||
|
homeManager =
|
||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
inputs.sops-nix.homeManagerModules.sops
|
||||||
|
];
|
||||||
|
sops = {
|
||||||
|
age.keyFile = "/home/doloro/.config/sops/age/key.txt"; # must have no password!
|
||||||
|
defaultSopsFile = ./content/secrets.yaml;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
nixos =
|
||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
inputs.sops-nix.nixosModules.sops
|
||||||
|
];
|
||||||
|
sops = {
|
||||||
|
# age.keyFile = "/etc/ssh/ssh_host_ed25519_key";
|
||||||
|
defaultSopsFile = ./content/secrets.yaml;
|
||||||
|
secrets = {
|
||||||
|
root-hashed_password = {
|
||||||
|
neededForUsers = true;
|
||||||
|
};
|
||||||
|
doloro-hashed_password = {
|
||||||
|
neededForUsers = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
20
config/modules/services/caddy.nix
Normal file
20
config/modules/services/caddy.nix
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
den,
|
||||||
|
__findFile,
|
||||||
|
modules,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
# Basic caddy
|
||||||
|
modules.services.provides.caddy = {
|
||||||
|
nixos =
|
||||||
|
{ config, ... }:
|
||||||
|
{
|
||||||
|
services.caddy = {
|
||||||
|
enable = true;
|
||||||
|
email = "doloroo@proton.me";
|
||||||
|
enableReload = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
37
config/modules/services/ddns.nix
Normal file
37
config/modules/services/ddns.nix
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
{
|
||||||
|
den,
|
||||||
|
__findFile,
|
||||||
|
modules,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
# Basic traefik
|
||||||
|
modules.services.provides.ddns = {
|
||||||
|
nixos =
|
||||||
|
{ config, pkgs, ... }:
|
||||||
|
let
|
||||||
|
ddnsImg = pkgs.dockerTools.pullImage {
|
||||||
|
imageName = "qmcgaw/ddns-updater";
|
||||||
|
imageDigest = "sha256:ee16ab4f6203bf9e5b0925d38a0b4ebf2d9f23771f933cfb2f5a2dbd5f9a2f88";
|
||||||
|
finalImageName = "qmcgaw/ddns-updater";
|
||||||
|
finalImageTag = "latest";
|
||||||
|
sha256 = "sha256-dMCHkvoFaORmGwbIM9io4Vc9fq+wBks25k2dmnW7naI=";
|
||||||
|
arch = "arm64";
|
||||||
|
};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
virtualisation.oci-containers.containers = {
|
||||||
|
ddns = {
|
||||||
|
image = "qmcgaw/ddns-updater";
|
||||||
|
imageFile = ddnsImg;
|
||||||
|
volumes = [
|
||||||
|
"/data/ddns:/updater/data"
|
||||||
|
"/etc/localtime:/etc/localtime:ro"
|
||||||
|
];
|
||||||
|
# ports = [ "0.0.0.0:8123:8123" ];
|
||||||
|
# networks = [ "meow" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
49
config/modules/services/home-assistant.nix
Normal file
49
config/modules/services/home-assistant.nix
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
{
|
||||||
|
den,
|
||||||
|
__findFile,
|
||||||
|
modules,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
# Basic traefik
|
||||||
|
modules.services.provides.home-assistant = {
|
||||||
|
nixos =
|
||||||
|
{ config, pkgs, ... }:
|
||||||
|
let
|
||||||
|
homeAssistantImg = pkgs.dockerTools.pullImage {
|
||||||
|
imageName = "homeassistant/home-assistant";
|
||||||
|
imageDigest = "sha256:17441c45ba14560b4ef727ee06aac4d605cf0dc0625fc4f2e043cb2551d72749";
|
||||||
|
finalImageName = "homeassistant/home-assistant";
|
||||||
|
finalImageTag = "latest";
|
||||||
|
sha256 = "sha256-fSQ3luRSFHiWP0qDzsiZsEf/l+wYgyrdicjSayZ61yQ=";
|
||||||
|
arch = "arm64";
|
||||||
|
};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
virtualisation.oci-containers.containers = {
|
||||||
|
home-assistant = {
|
||||||
|
image = "homeassistant/home-assistant";
|
||||||
|
imageFile = homeAssistantImg;
|
||||||
|
volumes = [
|
||||||
|
"/data/homeAssistant:/config"
|
||||||
|
"/run/dbus:/run/dbus:ro"
|
||||||
|
"/etc/localtime:/etc/localtime:ro"
|
||||||
|
];
|
||||||
|
ports = [ "0.0.0.0:8123:8123" ];
|
||||||
|
# networks = [ "meow" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
networking.firewall = {
|
||||||
|
allowedTCPPorts = [
|
||||||
|
8123
|
||||||
|
];
|
||||||
|
allowedUDPPortRanges = [ ];
|
||||||
|
};
|
||||||
|
services.caddy = pkgs.lib.mkIf config.services.caddy.enable {
|
||||||
|
virtualHosts."ha.h.doloro.co.uk".extraConfig = ''
|
||||||
|
reverse_proxy :8123
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
50
config/modules/services/traefik.nix
Normal file
50
config/modules/services/traefik.nix
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
{
|
||||||
|
den,
|
||||||
|
__findFile,
|
||||||
|
modules,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
# Basic traefik
|
||||||
|
modules.services.provides.traefik = {
|
||||||
|
nixos =
|
||||||
|
{ config, ... }:
|
||||||
|
{
|
||||||
|
services.traefik = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
staticConfigOptions = {
|
||||||
|
entryPoints = {
|
||||||
|
web = {
|
||||||
|
address = ":80";
|
||||||
|
http.redirections.entrypoint = {
|
||||||
|
to = "websecure";
|
||||||
|
scheme = "https";
|
||||||
|
};
|
||||||
|
asDefault = true;
|
||||||
|
};
|
||||||
|
websecure = {
|
||||||
|
address = ":443";
|
||||||
|
asDefault = true;
|
||||||
|
http.tls.certResolver = "letsencrypt";
|
||||||
|
};
|
||||||
|
traefik = {
|
||||||
|
address = ":8080";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
certificatesResolvers.letsencrypt.acme = {
|
||||||
|
email = "doloroo@proton.me";
|
||||||
|
storage = "${config.services.traefik.dataDir}/acme.json";
|
||||||
|
httpChallenge.entryPoint = "web";
|
||||||
|
};
|
||||||
|
providers = {
|
||||||
|
docker = {
|
||||||
|
};
|
||||||
|
};
|
||||||
|
api.dashboard = true;
|
||||||
|
api.insecure = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
43
config/modules/stylix.nix
Normal file
43
config/modules/stylix.nix
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
{
|
||||||
|
den,
|
||||||
|
modules,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
flake-file.inputs = {
|
||||||
|
stylix = {
|
||||||
|
url = "github:nix-community/stylix";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
modules.stylix = {
|
||||||
|
homeManager =
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
imports = [ inputs.stylix.homeModules.stylix ];
|
||||||
|
stylix = {
|
||||||
|
enable = true;
|
||||||
|
autoEnable = false;
|
||||||
|
targets.gtk.enable = true;
|
||||||
|
targets.qt.enable = true;
|
||||||
|
targets.tmux.enable = false;
|
||||||
|
fonts = {
|
||||||
|
monospace = {
|
||||||
|
name = "CaskaydiaCove Nerd Font Mono";
|
||||||
|
package = pkgs.nerd-fonts.caskaydia-cove;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
base16Scheme = "${pkgs.base16-schemes}/share/themes/gruvbox-dark-hard.yaml";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
nixos =
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
imports = [ inputs.stylix.nixosModules.stylix ];
|
||||||
|
stylix.enable = true;
|
||||||
|
stylix.autoEnable = false;
|
||||||
|
stylix.base16Scheme = "${pkgs.base16-schemes}/share/themes/gruvbox-dark-hard.yaml";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
22
config/modules/tmux.nix
Normal file
22
config/modules/tmux.nix
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
{ modules, ... }:
|
||||||
|
{
|
||||||
|
modules.tmux = {
|
||||||
|
homeManager =
|
||||||
|
{ home, pkgs, ... }:
|
||||||
|
{
|
||||||
|
programs.tmux = {
|
||||||
|
enable = true;
|
||||||
|
plugins = with pkgs.tmuxPlugins; [
|
||||||
|
sensible
|
||||||
|
minimal-tmux-status
|
||||||
|
];
|
||||||
|
extraConfig = ''
|
||||||
|
set-option -g default-terminal "xterm-256color"
|
||||||
|
set -a terminal-features "xterm-256color:RGB"
|
||||||
|
set -g status-bg black
|
||||||
|
set -g status-fg white
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
18
config/modules/tuigreetd.nix
Normal file
18
config/modules/tuigreetd.nix
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
{ den, modules, ... }:
|
||||||
|
{
|
||||||
|
modules.tuigreet = {
|
||||||
|
nixos =
|
||||||
|
{ pkgs, config, ... }:
|
||||||
|
{
|
||||||
|
services.greetd = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
default_session = {
|
||||||
|
command = "${pkgs.greetd.tuigreet}/bin/tuigreet --sessions ${config.services.xserver.displayManager.sessionData.desktops}/share/xsessions:${config.services.xserver.displayManager.sessionData.desktops}/share/wayland-sessions --remember --remember-user-session";
|
||||||
|
user = "greeter";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
15
config/modules/user/doloro.nix
Normal file
15
config/modules/user/doloro.nix
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
{ modules, ... }:
|
||||||
|
{
|
||||||
|
modules.user.groups =
|
||||||
|
{ config, user, ... }:
|
||||||
|
{
|
||||||
|
nixos = {
|
||||||
|
users.users.${user.userName} = {
|
||||||
|
extraGroups = [
|
||||||
|
"wheel"
|
||||||
|
"networkmanager"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
88
config/modules/zen-browser.nix
Normal file
88
config/modules/zen-browser.nix
Normal file
@@ -0,0 +1,88 @@
|
|||||||
|
{
|
||||||
|
den,
|
||||||
|
modules,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
flake-file.inputs = {
|
||||||
|
zen-browser.url = "github:youwen5/zen-browser-flake";
|
||||||
|
zen-browser.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
modules.zen-browser = {
|
||||||
|
homeManager =
|
||||||
|
{
|
||||||
|
home,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
extension = shortId: guid: {
|
||||||
|
name = guid;
|
||||||
|
value = {
|
||||||
|
install_url = "https://addons.mozilla.org/en-US/firefox/downloads/latest/${shortId}/latest.xpi";
|
||||||
|
installation_mode = "normal_installed";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
prefs = {
|
||||||
|
# Check these out at about:config
|
||||||
|
"extensions.autoDisableScopes" = 0;
|
||||||
|
"extensions.pocket.enabled" = false;
|
||||||
|
# ...
|
||||||
|
};
|
||||||
|
|
||||||
|
extensions = [
|
||||||
|
# To add additional extensions, find it on addons.mozilla.org, find
|
||||||
|
# the short ID in the url (like https://addons.mozilla.org/en-US/firefox/addon/!SHORT_ID!/)
|
||||||
|
# Then go to https://addons.mozilla.org/api/v5/addons/addon/!SHORT_ID!/ to get the guid
|
||||||
|
(extension "ublock-origin" "uBlock0@raymondhill.net")
|
||||||
|
# ...
|
||||||
|
];
|
||||||
|
in
|
||||||
|
{
|
||||||
|
home.packages = [
|
||||||
|
(pkgs.wrapFirefox
|
||||||
|
inputs.zen-browser.packages.${pkgs.stdenv.hostPlatform.system}.zen-browser-unwrapped
|
||||||
|
{
|
||||||
|
extraPrefs = lib.concatLines (
|
||||||
|
lib.mapAttrsToList (
|
||||||
|
name: value: "lockPref(${lib.strings.toJSON name}, ${lib.strings.toJSON value});"
|
||||||
|
) prefs
|
||||||
|
);
|
||||||
|
|
||||||
|
extraPolicies = {
|
||||||
|
DisableTelemetry = true;
|
||||||
|
ExtensionSettings = builtins.listToAttrs extensions;
|
||||||
|
|
||||||
|
SearchEngines = {
|
||||||
|
Default = "ddg";
|
||||||
|
Add = [
|
||||||
|
{
|
||||||
|
Name = "nixpkgs packages";
|
||||||
|
URLTemplate = "https://search.nixos.org/packages?query={searchTerms}";
|
||||||
|
IconURL = "https://wiki.nixos.org/favicon.ico";
|
||||||
|
Alias = "@np";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
Name = "NixOS options";
|
||||||
|
URLTemplate = "https://search.nixos.org/options?query={searchTerms}";
|
||||||
|
IconURL = "https://wiki.nixos.org/favicon.ico";
|
||||||
|
Alias = "@no";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
Name = "NixOS Wiki";
|
||||||
|
URLTemplate = "https://wiki.nixos.org/w/index.php?search={searchTerms}";
|
||||||
|
IconURL = "https://wiki.nixos.org/favicon.ico";
|
||||||
|
Alias = "@nw";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
)
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
14
config/namespace.nix
Normal file
14
config/namespace.nix
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
inputs,
|
||||||
|
den,
|
||||||
|
__findFile ? __findFile,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
_module.args.__findFile = den.lib.__findFile;
|
||||||
|
imports = [
|
||||||
|
inputs.den.flakeModule
|
||||||
|
(inputs.den.namespace "modules" true)
|
||||||
|
# (inputs.den.namespace "hosts" true)
|
||||||
|
];
|
||||||
|
}
|
||||||
File diff suppressed because one or more lines are too long
927
flake.lock
generated
927
flake.lock
generated
File diff suppressed because it is too large
Load Diff
225
flake.nix
225
flake.nix
@@ -1,195 +1,48 @@
|
|||||||
|
# You FAGGOT; Do NOT edit this file !!!!, run 'nix run .#write-flake'
|
||||||
{
|
{
|
||||||
description = "Home Manager configuration of doloro";
|
|
||||||
|
outputs = inputs: inputs.flake-parts.lib.mkFlake { inherit inputs; } (inputs.import-tree ./config);
|
||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
# Specify the source of Home Manager and Nixpkgs.
|
den.url = "github:vic/den";
|
||||||
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
|
disko.url = "github:nix-community/disko";
|
||||||
rpi-nixpkgs.url = "github:nvmd/nixpkgs/modules-with-keys-25.11";
|
flake-aspects.url = "github:vic/flake-aspects";
|
||||||
home-manager = {
|
flake-file.url = "github:vic/flake-file";
|
||||||
url = "github:nix-community/home-manager";
|
flake-parts = {
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs-lib.follows = "nixpkgs-lib";
|
||||||
};
|
url = "github:hercules-ci/flake-parts";
|
||||||
nixos-wsl.url = "github:nix-community/NixOS-WSL/main";
|
|
||||||
nix-meow.url = "git+https://git.scug.io/nikkuss/nix-meow.git?ref=paws"; # config manager, meow'd
|
|
||||||
hyprland.url = "github:hyprwm/Hyprland";
|
|
||||||
rsRPC.url = "github:Doloro1978/rsRPC";
|
|
||||||
protonhax.url = "github:linusfri/protonhax-nix";
|
|
||||||
hytale-launcher.url = "github:JPyke3/hytale-launcher-nix";
|
|
||||||
quickshell = {
|
|
||||||
url = "git+https://git.outfoxxed.me/outfoxxed/quickshell";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
heliumFlake = {
|
|
||||||
url = "github:vikingnope/helium-browser-nix-flake";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
nikkuss-pkgs = {
|
|
||||||
url = "git+https://git.scug.io/nikkuss/pkgs";
|
|
||||||
# inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
zen-browser = {
|
|
||||||
url = "github:0xc000022070/zen-browser-flake";
|
|
||||||
inputs = {
|
|
||||||
# IMPORTANT: we're using "libgbm" and is only available in unstable so ensure
|
|
||||||
# to have it up-to-date or simply don't specify the nixpkgs input
|
|
||||||
nixpkgs.follows = "nixpkgs";
|
|
||||||
home-manager.follows = "home-manager";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
sops-nix = {
|
|
||||||
url = "github:Mic92/sops-nix";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
disko = {
|
|
||||||
url = "github:nix-community/disko/latest";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
stylix = {
|
|
||||||
url = "github:nix-community/stylix";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
neovim-nightly-overlay.url = "github:nix-community/neovim-nightly-overlay";
|
|
||||||
nixvim = {
|
|
||||||
url = "github:nix-community/nixvim";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
spicetify-nix = {
|
|
||||||
url = "github:Gerg-L/spicetify-nix";
|
|
||||||
};
|
|
||||||
nix-warez = {
|
|
||||||
# Blender-bin
|
|
||||||
url = "github:edolstra/nix-warez?dir=blender";
|
|
||||||
};
|
|
||||||
nixpkgs-gamescope = {
|
|
||||||
url = "github:Nixos/nixpkgs?rev=8fcb6f1c4948305af52d19f887b89011ee2c080d";
|
|
||||||
};
|
};
|
||||||
font-patcher.url = "github:Doloro1978/nix-nerd-fonts-patcher";
|
font-patcher.url = "github:Doloro1978/nix-nerd-fonts-patcher";
|
||||||
nixos-raspberrypi.url = "github:nvmd/nixos-raspberrypi/develop";
|
heliumFlake = {
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
url = "github:vikingnope/helium-browser-nix-flake";
|
||||||
|
};
|
||||||
|
home-manager = {
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
url = "github:nix-community/home-manager";
|
||||||
|
};
|
||||||
|
hyprland.url = "github:hyprwm/Hyprland";
|
||||||
|
import-tree.url = "github:vic/import-tree";
|
||||||
|
nixpkgs.url = "https://channels.nixos.org/nixpkgs-unstable/nixexprs.tar.xz";
|
||||||
|
nixpkgs-lib.follows = "nixpkgs";
|
||||||
|
nixvim = {
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
url = "github:nix-community/nixvim";
|
||||||
|
};
|
||||||
raspberry-pi-nix.url = "github:nix-community/raspberry-pi-nix";
|
raspberry-pi-nix.url = "github:nix-community/raspberry-pi-nix";
|
||||||
niri-flake.url = "github:sodiboo/niri-flake";
|
sops-nix = {
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
url = "github:Mic92/sops-nix";
|
||||||
|
};
|
||||||
|
stylix = {
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
url = "github:nix-community/stylix";
|
||||||
|
};
|
||||||
|
systems.url = "github:nix-systems/default";
|
||||||
|
zen-browser = {
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
url = "github:youwen5/zen-browser-flake";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
outputs =
|
|
||||||
inputs@{
|
|
||||||
nixpkgs,
|
|
||||||
home-manager,
|
|
||||||
nix-meow,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
overlays = [
|
|
||||||
# inputs.nikkuss-pkgs.overlays.default
|
|
||||||
(final: prev: {
|
|
||||||
arrpc = prev.arrpc.overrideAttrs (preve: rec {
|
|
||||||
pname = preve.pname + "-meow";
|
|
||||||
version = "94d3ec81";
|
|
||||||
patches = [ ./deadlock.patch ];
|
|
||||||
src = prev.fetchFromGitHub {
|
|
||||||
owner = "XenHat";
|
|
||||||
repo = "arrpc";
|
|
||||||
# branch = "improved-detection-fixes";
|
|
||||||
rev = "94d3ec81339f94e563af512b83db369596d05d3b";
|
|
||||||
sha256 = "sha256-DI/HCrmiQo1lPkErCNXOpdQli2wua03PDjdlERrpxTg=";
|
|
||||||
};
|
|
||||||
npmDepsHash = prev.lib.fakeHash;
|
|
||||||
npmDeps = final.fetchNpmDeps {
|
|
||||||
inherit src;
|
|
||||||
name = "${pname}-${version}-npm-deps";
|
|
||||||
hash = "sha256-lw6pngFC2Pnk+I8818TOTwN4r+8IsjvdMYIyTsTi49g=";
|
|
||||||
};
|
|
||||||
});
|
|
||||||
})
|
|
||||||
# (
|
|
||||||
# final: prev:
|
|
||||||
# let
|
|
||||||
# system = prev.stdenv.hostPlatform.system;
|
|
||||||
# pkgs_gamescope = import inputs.nixpkgs-gamescope {
|
|
||||||
# inherit system;
|
|
||||||
# config = {
|
|
||||||
# allow_unfree = true;
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
# packageNix = "${inputs.nixpkgs-gamescope}/pkgs/by-name/ga/gamescope/package.nix";
|
|
||||||
# in
|
|
||||||
# {
|
|
||||||
# gamescope = pkgs_gamescope.callPackage packageNix { };
|
|
||||||
# }
|
|
||||||
# )
|
|
||||||
(self: super: {
|
|
||||||
intel-npu-driver = super.intel-npu-driver.overrideAttrs (oldAttrs: rec {
|
|
||||||
installPhase = ''
|
|
||||||
mkdir -p $out/lib/firmware
|
|
||||||
${oldAttrs.installPhase}
|
|
||||||
'';
|
|
||||||
});
|
|
||||||
})
|
|
||||||
(final: prev: {
|
|
||||||
vesktop = prev.vesktop.overrideAttrs (old: {
|
|
||||||
preBuild = ''
|
|
||||||
cp -r ${prev.electron.dist} electron-dist
|
|
||||||
chmod -R u+w electron-dist
|
|
||||||
'';
|
|
||||||
buildPhase = ''
|
|
||||||
runHook preBuild
|
|
||||||
|
|
||||||
pnpm build
|
|
||||||
pnpm exec electron-builder \
|
|
||||||
--dir \
|
|
||||||
-c.asarUnpack="**/*.node" \
|
|
||||||
-c.electronDist="electron-dist" \
|
|
||||||
-c.electronVersion=${prev.electron.version}
|
|
||||||
|
|
||||||
runHook postBuild
|
|
||||||
'';
|
|
||||||
});
|
|
||||||
})
|
|
||||||
];
|
|
||||||
utils = nix-meow.lib.setup {
|
|
||||||
inherit (inputs) home-manager nixpkgs;
|
|
||||||
inherit inputs;
|
|
||||||
flakeRoot = ./.;
|
|
||||||
hostsFolder = ./hosts;
|
|
||||||
hardwaresFolder = ./hardwares;
|
|
||||||
modulesFolder = ./modules;
|
|
||||||
globalConfig = {
|
|
||||||
allowUnfree = true;
|
|
||||||
};
|
|
||||||
globalOverlays = overlays;
|
|
||||||
defaultUser = "doloro";
|
|
||||||
};
|
|
||||||
inherit (utils) mkHost;
|
|
||||||
configurations = [
|
|
||||||
# Desktops
|
|
||||||
(mkHost {
|
|
||||||
hardware = "doloro";
|
|
||||||
host = "doloro";
|
|
||||||
system = "x86_64-linux";
|
|
||||||
stateVersion = "25.05";
|
|
||||||
nixpkgsConfig = {
|
|
||||||
rocmSupport = false;
|
|
||||||
cudaSupport = true;
|
|
||||||
};
|
|
||||||
})
|
|
||||||
(mkHost {
|
|
||||||
hardware = "doloro-laptop";
|
|
||||||
host = "doloro-laptop";
|
|
||||||
system = "x86_64-linux";
|
|
||||||
stateVersion = "25.11";
|
|
||||||
nixpkgsConfig = {
|
|
||||||
rocmSupport = false;
|
|
||||||
};
|
|
||||||
})
|
|
||||||
# Servers
|
|
||||||
(mkHost {
|
|
||||||
hardware = "rpi-5";
|
|
||||||
host = "rpi-5";
|
|
||||||
system = "aarch64-linux";
|
|
||||||
# nixpkgs = inputs.rpi-nixpkgs;
|
|
||||||
stateVersion = "25.11";
|
|
||||||
nixpkgsConfig = {
|
|
||||||
rocmSupport = false;
|
|
||||||
};
|
|
||||||
})
|
|
||||||
];
|
|
||||||
in
|
|
||||||
(utils.deepMerge configurations);
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,65 +0,0 @@
|
|||||||
{ inputs, ... }:
|
|
||||||
{
|
|
||||||
imports = [ inputs.disko.nixosModules.disko ];
|
|
||||||
disko.devices = {
|
|
||||||
disk = {
|
|
||||||
main = {
|
|
||||||
device = "/dev/nvme0n1";
|
|
||||||
type = "disk";
|
|
||||||
content = {
|
|
||||||
type = "gpt";
|
|
||||||
partitions = {
|
|
||||||
boot = {
|
|
||||||
name = "boot";
|
|
||||||
size = "1M";
|
|
||||||
type = "EF02";
|
|
||||||
};
|
|
||||||
ESP = {
|
|
||||||
name = "ESP";
|
|
||||||
priority = 1;
|
|
||||||
size = "4G";
|
|
||||||
type = "EF00";
|
|
||||||
content = {
|
|
||||||
type = "filesystem";
|
|
||||||
format = "vfat";
|
|
||||||
mountpoint = "/boot";
|
|
||||||
mountOptions = [ "umask=0077" ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
plainSwap = {
|
|
||||||
size = "48G";
|
|
||||||
content = {
|
|
||||||
type = "swap";
|
|
||||||
discardPolicy = "both"; # Both "once" and page discard policies
|
|
||||||
resumeDevice = true; # Use for hibernation resume device
|
|
||||||
};
|
|
||||||
};
|
|
||||||
root = {
|
|
||||||
size = "100%";
|
|
||||||
content = {
|
|
||||||
type = "btrfs";
|
|
||||||
extraArgs = [ "-f" ]; # Override existing partition
|
|
||||||
# Subvolumes must set a mountpoint in order to be mounted,
|
|
||||||
# unless their parent is mounted
|
|
||||||
subvolumes = {
|
|
||||||
# Subvolume name is different from mountpoint
|
|
||||||
"@" = {
|
|
||||||
mountpoint = "/";
|
|
||||||
};
|
|
||||||
# Subvolume name is the same as the mountpoint
|
|
||||||
"@home" = {
|
|
||||||
mountpoint = "/home";
|
|
||||||
};
|
|
||||||
# Parent is not mounted so the mountpoint must be set
|
|
||||||
"@nix" = {
|
|
||||||
mountpoint = "/nix";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
# 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"
|
|
||||||
"thunderbolt"
|
|
||||||
"vmd"
|
|
||||||
"nvme"
|
|
||||||
];
|
|
||||||
boot.initrd.kernelModules = [ ];
|
|
||||||
boot.kernelModules = [ "kvm-intel" ];
|
|
||||||
boot.extraModulePackages = [ ];
|
|
||||||
|
|
||||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
|
||||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
|
||||||
}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
{...}: {}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
{lib,...}:{imports=[./disks.nix ./hardware-configuration.nix]; }
|
|
||||||
@@ -1,66 +0,0 @@
|
|||||||
{
|
|
||||||
lib,
|
|
||||||
inputs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
inputs.disko.nixosModules.disko
|
|
||||||
];
|
|
||||||
disko.devices = {
|
|
||||||
disk = {
|
|
||||||
main = {
|
|
||||||
device = lib.mkDefault "/dev/disk/by-id/nvme-CT1000P2SSD8_2221E632CD1F";
|
|
||||||
type = "disk";
|
|
||||||
content = {
|
|
||||||
type = "gpt";
|
|
||||||
partitions = {
|
|
||||||
boot = {
|
|
||||||
name = "boot";
|
|
||||||
size = "1M";
|
|
||||||
type = "EF02";
|
|
||||||
};
|
|
||||||
ESP = {
|
|
||||||
name = "ESP";
|
|
||||||
priority = 1;
|
|
||||||
size = "4G";
|
|
||||||
type = "EF00";
|
|
||||||
content = {
|
|
||||||
type = "filesystem";
|
|
||||||
format = "vfat";
|
|
||||||
mountpoint = "/boot";
|
|
||||||
mountOptions = [ "umask=0077" ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
root = {
|
|
||||||
size = "100%";
|
|
||||||
content = {
|
|
||||||
type = "btrfs";
|
|
||||||
extraArgs = [ "-f" ]; # Override existing partition
|
|
||||||
# Subvolumes must set a mountpoint in order to be mounted,
|
|
||||||
# unless their parent is mounted
|
|
||||||
subvolumes = {
|
|
||||||
# Subvolume name is different from mountpoint
|
|
||||||
"@" = {
|
|
||||||
mountpoint = "/";
|
|
||||||
};
|
|
||||||
# Subvolume name is the same as the mountpoint
|
|
||||||
"@home" = {
|
|
||||||
mountpoint = "/home";
|
|
||||||
};
|
|
||||||
# Parent is not mounted so the mountpoint must be set
|
|
||||||
"@nix" = {
|
|
||||||
mountpoint = "/nix";
|
|
||||||
};
|
|
||||||
"@blackhole" = {
|
|
||||||
mountpoint = "/var/blackhole";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
# 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 = [
|
|
||||||
"nvme"
|
|
||||||
"xhci_pci"
|
|
||||||
"ahci"
|
|
||||||
"usbhid"
|
|
||||||
];
|
|
||||||
boot.initrd.kernelModules = [ ];
|
|
||||||
boot.kernelModules = [ "kvm-amd" ];
|
|
||||||
boot.extraModulePackages = [ ];
|
|
||||||
|
|
||||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
|
||||||
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
|
||||||
}
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
{ ... }:
|
|
||||||
{
|
|
||||||
}
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
{
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./disks.nix
|
|
||||||
./hardware-configuration.nix
|
|
||||||
];
|
|
||||||
hardware.enableRedistributableFirmware = true;
|
|
||||||
boot.loader.grub.useOSProber = lib.mkOverride 0 false;
|
|
||||||
}
|
|
||||||
@@ -1,49 +0,0 @@
|
|||||||
{ inputs, lib, ... }:
|
|
||||||
{
|
|
||||||
imports = [ inputs.disko.nixosModules.disko ];
|
|
||||||
disko.devices = {
|
|
||||||
disk = {
|
|
||||||
main = {
|
|
||||||
device = "/dev/disk/by-label/NIXOS_SD";
|
|
||||||
type = "disk";
|
|
||||||
content = {
|
|
||||||
type = "gpt";
|
|
||||||
partitions = {
|
|
||||||
boot = {
|
|
||||||
name = "boot";
|
|
||||||
size = "1M";
|
|
||||||
type = "EF02";
|
|
||||||
};
|
|
||||||
ESP = {
|
|
||||||
name = "ESP";
|
|
||||||
priority = 1;
|
|
||||||
size = "4G";
|
|
||||||
type = "EF00";
|
|
||||||
content = {
|
|
||||||
type = "filesystem";
|
|
||||||
format = "vfat";
|
|
||||||
mountpoint = "/boot";
|
|
||||||
mountOptions = [ "umask=0077" ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
plainSwap = {
|
|
||||||
size = "8G";
|
|
||||||
content = {
|
|
||||||
type = "swap";
|
|
||||||
discardPolicy = "both"; # Both "once" and page discard policies
|
|
||||||
};
|
|
||||||
};
|
|
||||||
root = {
|
|
||||||
size = "100%";
|
|
||||||
content = {
|
|
||||||
type = "filesystem";
|
|
||||||
format = "ext4";
|
|
||||||
mountpoint = "/";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
{...}: {}
|
|
||||||
@@ -1,35 +0,0 @@
|
|||||||
{
|
|
||||||
lib,
|
|
||||||
inputs,
|
|
||||||
modulesPath,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
# ./disks.nix
|
|
||||||
# (modulesPath + "/installer/sd-card/sd-image-aarch64.nix")
|
|
||||||
];
|
|
||||||
# fileSystems = {
|
|
||||||
# "/" = {
|
|
||||||
# device = "/dev/disk/by-label/NIXOS_SD";
|
|
||||||
# fsType = "ext4";
|
|
||||||
# options = [ "noatime" ];
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
boot.supportedFilesystems = lib.mkForce [
|
|
||||||
"btrfs"
|
|
||||||
"reiserfs"
|
|
||||||
"vfat"
|
|
||||||
"ext4"
|
|
||||||
"f2fs"
|
|
||||||
"xfs"
|
|
||||||
"ntfs"
|
|
||||||
"cifs"
|
|
||||||
];
|
|
||||||
nixpkgs.overlays = [
|
|
||||||
# https://github.com/NixOS/nixpkgs/issues/126755#issuecomment-869149243
|
|
||||||
(final: super: {
|
|
||||||
makeModulesClosure = x: super.makeModulesClosure (x // { allowMissing = true; });
|
|
||||||
})
|
|
||||||
];
|
|
||||||
}
|
|
||||||
@@ -1,159 +0,0 @@
|
|||||||
{
|
|
||||||
inputs,
|
|
||||||
config,
|
|
||||||
system,
|
|
||||||
pkgs,
|
|
||||||
fetchFromGitHub,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
inputs.sops-nix.homeManagerModules.sops
|
|
||||||
];
|
|
||||||
sops = {
|
|
||||||
age.keyFile = "/home/doloro/.config/sops/age/key.txt"; # must have no password!
|
|
||||||
};
|
|
||||||
modules = {
|
|
||||||
Hyprland.enable = true;
|
|
||||||
quickshell.enable = true;
|
|
||||||
# chromium.enable = true;
|
|
||||||
wivrn.enable = false;
|
|
||||||
helium.enable = true;
|
|
||||||
sops.enable = true;
|
|
||||||
wakatime.enable = false;
|
|
||||||
# remoteBuild.use-remote-builders = true;
|
|
||||||
nixvim.enable = true;
|
|
||||||
zen-browser.enable = false;
|
|
||||||
kitty.enable = true;
|
|
||||||
helix.enable = false;
|
|
||||||
stylix.enable = true;
|
|
||||||
tmux.enable = true;
|
|
||||||
theme.enable = true;
|
|
||||||
obs = {
|
|
||||||
enable = true;
|
|
||||||
autostart = false;
|
|
||||||
};
|
|
||||||
blender.enable = false;
|
|
||||||
bottles.enable = false;
|
|
||||||
fish.enable = true;
|
|
||||||
youtube-music.enable = true;
|
|
||||||
unityhub.enable = false;
|
|
||||||
direnv.enable = true;
|
|
||||||
git.enable = true;
|
|
||||||
rsRPC.enable = true;
|
|
||||||
};
|
|
||||||
# Home Manager needs a bit of information about you and the paths it should
|
|
||||||
# manage.
|
|
||||||
home.username = "doloro";
|
|
||||||
home.homeDirectory = "/home/doloro";
|
|
||||||
|
|
||||||
services = {
|
|
||||||
gpg-agent = {
|
|
||||||
enable = true;
|
|
||||||
pinentry = {
|
|
||||||
package = pkgs.pinentry-qt;
|
|
||||||
program = "pinentry-qt";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
arrpc = {
|
|
||||||
enable = false;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
xdg.mimeApps.enable = true;
|
|
||||||
wayland.windowManager.hyprland.settings = {
|
|
||||||
monitor = [
|
|
||||||
"eDP-1, 2880x1800@120, 0x0, 2"
|
|
||||||
];
|
|
||||||
input = {
|
|
||||||
kb_layout = "gb";
|
|
||||||
follow_mouse = 2;
|
|
||||||
sensitivity = 0;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# This value determines the Home Manager release that your configuration is
|
|
||||||
# compatible with. This helps avoid breakage when a new Home Manager release
|
|
||||||
# introduces backwards incompatible changes.
|
|
||||||
#
|
|
||||||
# You should not change this value, even if you update Home Manager. If you do
|
|
||||||
# want to update the value, then make sure to first check the Home Manager
|
|
||||||
# release notes.
|
|
||||||
home.stateVersion = "25.05"; # Please read the comment before changing.
|
|
||||||
|
|
||||||
# The home.packages option allows you to install Nix packages into your
|
|
||||||
# environment.
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
hello
|
|
||||||
vim
|
|
||||||
telegram-desktop
|
|
||||||
# vesktop
|
|
||||||
legcord
|
|
||||||
pavucontrol
|
|
||||||
lazygit
|
|
||||||
btop
|
|
||||||
sops
|
|
||||||
alcom
|
|
||||||
gcr
|
|
||||||
qbittorrent
|
|
||||||
intel-gpu-tools
|
|
||||||
];
|
|
||||||
|
|
||||||
# Home Manager is pretty good at managing dotfiles. The primary way to manage
|
|
||||||
# plain files is through 'home.file'.
|
|
||||||
home.file = {
|
|
||||||
# # Building this configuration will create a copy of 'dotfiles/screenrc' in
|
|
||||||
# # the Nix store. Activating the configuration will then make '~/.screenrc' a
|
|
||||||
# # symlink to the Nix store copy.
|
|
||||||
# ".screenrc".source = dotfiles/screenrc;
|
|
||||||
|
|
||||||
# # You can also set the file content immediately.
|
|
||||||
# ".gradle/gradle.properties".text = ''
|
|
||||||
# org.gradle.console=verbose
|
|
||||||
# org.gradle.daemon.idletimeout=3600000
|
|
||||||
# '';
|
|
||||||
};
|
|
||||||
|
|
||||||
# Home Manager can also manage your environment variables through
|
|
||||||
# 'home.sessionVariables'. These will be explicitly sourced when using a
|
|
||||||
# shell provided by Home Manager. If you don't want to manage your shell
|
|
||||||
# through Home Manager then you have to manually source 'hm-session-vars.sh'
|
|
||||||
# located at either
|
|
||||||
#
|
|
||||||
# ~/.nix-profile/etc/profile.d/hm-session-vars.sh
|
|
||||||
#
|
|
||||||
# or
|
|
||||||
#
|
|
||||||
# ~/.local/state/nix/profiles/profile/etc/profile.d/hm-session-vars.sh
|
|
||||||
#
|
|
||||||
# or
|
|
||||||
#
|
|
||||||
# /etc/profiles/per-user/doloro/etc/profile.d/hm-session-vars.sh
|
|
||||||
#
|
|
||||||
home.sessionVariables = {
|
|
||||||
EDITOR = "nvim";
|
|
||||||
};
|
|
||||||
services = {
|
|
||||||
dunst = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
xdg.configFile."mimeapps.list".force = true;
|
|
||||||
# Let Home Manager install and manage itself.
|
|
||||||
|
|
||||||
programs = {
|
|
||||||
ssh = {
|
|
||||||
enable = true;
|
|
||||||
enableDefaultConfig = false;
|
|
||||||
matchBlocks = {
|
|
||||||
"*" = {
|
|
||||||
addKeysToAgent = "yes";
|
|
||||||
identityFile = [
|
|
||||||
"~/.ssh/id_ed25519"
|
|
||||||
"~/.ssh/id_gitea_scug"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
home-manager.enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,148 +0,0 @@
|
|||||||
{ pkgs, lib, ... }:
|
|
||||||
let
|
|
||||||
batt-gpu = pkgs.writeShellScript "batt-igpu" ''
|
|
||||||
${pkgs.intel-gpu-tools}/bin/intel_gpu_frequency -e
|
|
||||||
echo "800" > /sys/class/drm/card1/gt_boost_freq_mhz
|
|
||||||
'';
|
|
||||||
ac-gpu = pkgs.writeShellScript "ac-igpu" ''
|
|
||||||
${pkgs.intel-gpu-tools}/bin/intel_gpu_frequency -d
|
|
||||||
echo "2350" > /sys/class/drm/card1/gt_boost_freq_mhz
|
|
||||||
'';
|
|
||||||
in
|
|
||||||
{
|
|
||||||
services.tlp = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
# Wireless power saving
|
|
||||||
WIFI_PWR_ON_BAT = "1";
|
|
||||||
|
|
||||||
# USB autosuspend
|
|
||||||
USB_AUTOSUSPEND = "1";
|
|
||||||
|
|
||||||
# SATA drive power management
|
|
||||||
SATA_LINKPWR_ON_BAT = "min_power";
|
|
||||||
|
|
||||||
# PCI Express Active-State Power Management (ASPM)
|
|
||||||
PCIE_ASPM_ON_BAT = "powersupersave";
|
|
||||||
|
|
||||||
RUNTIME_PM_ON_AC = "on";
|
|
||||||
RUNTIME_PM_ON_BAT = "auto";
|
|
||||||
|
|
||||||
# Disable Bluetooth on battery
|
|
||||||
# DEVICES_TO_DISABLE_ON_BAT = "bluetooth";
|
|
||||||
|
|
||||||
# Restore brightness on battery
|
|
||||||
RESTORE_BRIGHTNESS_ON_BAT = "1";
|
|
||||||
PCIE_ASPM_ON_AC = "balanced";
|
|
||||||
DEVICES_TO_DISABLE_ON_BAT_NOT_IN_USE = "bluetooth";
|
|
||||||
INTEL_GPU_MAX_FREQ_ON_AC = 0;
|
|
||||||
INTEL_GPU_MAX_FREQ_ON_BAT = 800;
|
|
||||||
INTEL_GPU_BOOST_FREQ_ON_AC = 0;
|
|
||||||
INTEL_GPU_BOOST_FREQ_ON_BAT = 800;
|
|
||||||
|
|
||||||
CPU_MAX_PERF_ON_BAT = 50;
|
|
||||||
|
|
||||||
PLATFORM_PROFILE_ON_AC = "balanced";
|
|
||||||
PLATFORM_PROFILE_ON_BAT = "quiet";
|
|
||||||
STOP_CHARGE_THRESH_BAT0 = 80;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
services.thermald.enable = true;
|
|
||||||
services.upower = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
services.auto-cpufreq.enable = true;
|
|
||||||
|
|
||||||
systemd.targets = {
|
|
||||||
"ac" = {
|
|
||||||
description = "On AC power";
|
|
||||||
unitConfig = {
|
|
||||||
StopWhenUnneeded = "yes";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
"battery" = {
|
|
||||||
description = "On battery power";
|
|
||||||
unitConfig = {
|
|
||||||
StopWhenUnneeded = "yes";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
services.udev.extraRules = ''
|
|
||||||
SUBSYSTEM=="power_supply",ENV{POWER_SUPPLY_ONLINE}=="0", RUN+="/run/current-system/systemd/bin/systemctl start battery.target"
|
|
||||||
SUBSYSTEM=="power_supply", ENV{POWER_SUPPLY_ONLINE}=="1", RUN+="/run/current-system/systemd/bin/systemctl start ac.target"
|
|
||||||
'';
|
|
||||||
|
|
||||||
services.auto-cpufreq.settings = {
|
|
||||||
battery = {
|
|
||||||
governor = "powersave";
|
|
||||||
turbo = "never";
|
|
||||||
};
|
|
||||||
charger = {
|
|
||||||
governor = "performance";
|
|
||||||
turbo = "auto";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
boot.kernelParams = [
|
|
||||||
# "mem_sleep_default=deep"
|
|
||||||
# "i915.fastboot=1"
|
|
||||||
"pcie_aspm=force"
|
|
||||||
"ahci.mobile_lpm_policy=1"
|
|
||||||
];
|
|
||||||
services.logind.settings.Login = {
|
|
||||||
HandleLidSwitch = "suspend";
|
|
||||||
HandleLidSwitchExternalPower = "suspend";
|
|
||||||
HandleLidSwitchDocked = "ignore";
|
|
||||||
};
|
|
||||||
systemd.sleep.extraConfig = ''
|
|
||||||
HibernateDelaySec=30min
|
|
||||||
SuspendEstimationSec=120
|
|
||||||
'';
|
|
||||||
|
|
||||||
systemd.services.gpu-limit-on-batt = {
|
|
||||||
enable = true;
|
|
||||||
description = "Using rfkill; disable all rf devices before sleeping.";
|
|
||||||
before = [ "battery.target" ];
|
|
||||||
|
|
||||||
serviceConfig = {
|
|
||||||
Type = "oneshot";
|
|
||||||
ExecStart = "${batt-gpu}";
|
|
||||||
RemainAfterExit = true;
|
|
||||||
};
|
|
||||||
wantedBy = [ "battery.target" ];
|
|
||||||
partOf = [ "battery.target" ];
|
|
||||||
};
|
|
||||||
systemd.services.gpu-limit-on-ac = {
|
|
||||||
enable = true;
|
|
||||||
description = "Using rfkill; disable all rf devices before sleeping.";
|
|
||||||
before = [ "ac.target" ];
|
|
||||||
|
|
||||||
serviceConfig = {
|
|
||||||
Type = "oneshot";
|
|
||||||
ExecStart = "${ac-gpu}";
|
|
||||||
RemainAfterExit = true;
|
|
||||||
};
|
|
||||||
wantedBy = [ "ac.target" ];
|
|
||||||
partOf = [ "ac.target" ];
|
|
||||||
};
|
|
||||||
systemd.services.rfkill-sleep-wake = {
|
|
||||||
enable = true;
|
|
||||||
description = "Using rfkill; disable all rf devices before sleeping.";
|
|
||||||
before = [ "sleep.target" ];
|
|
||||||
|
|
||||||
serviceConfig = {
|
|
||||||
Type = "oneshot";
|
|
||||||
ExecStop = "${pkgs.utillinux}/bin/rfkill unblock all";
|
|
||||||
ExecStart = "${pkgs.utillinux}/bin/rfkill block all";
|
|
||||||
RemainAfterExit = true;
|
|
||||||
};
|
|
||||||
wantedBy = [ "sleep.target" ];
|
|
||||||
partOf = [ "sleep.target" ];
|
|
||||||
|
|
||||||
};
|
|
||||||
# one of "ignore", "poweroff", "reboot", "halt", "kexec", "suspend", "hibernate", "hybrid-sleep", "suspend-then-hibernate", "lock"
|
|
||||||
powerManagement = {
|
|
||||||
enable = true;
|
|
||||||
# powertop.enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,197 +0,0 @@
|
|||||||
# Edit this configuration file to define what should be installed on
|
|
||||||
# your system. Help is available in the configuration.nix(5) man page, on
|
|
||||||
# https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
|
|
||||||
|
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
inputs,
|
|
||||||
pkgs,
|
|
||||||
nix-meow,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
sops = inputs.sops-nix;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
inputs.sops-nix.nixosModules.sops
|
|
||||||
./laptop.nix
|
|
||||||
];
|
|
||||||
modules = {
|
|
||||||
fish.enable = true;
|
|
||||||
greetd.enable = true;
|
|
||||||
stylix.enable = true;
|
|
||||||
steam.enable = true;
|
|
||||||
Hyprland.enable = true;
|
|
||||||
# remoteBuild.use-remote-builders = true;
|
|
||||||
wivrn.enable = false;
|
|
||||||
fonts.enable = true;
|
|
||||||
};
|
|
||||||
# Use the systemd-boot EFI boot loader.
|
|
||||||
boot.loader.systemd-boot.enable = true;
|
|
||||||
boot.loader.efi.canTouchEfiVariables = true;
|
|
||||||
# boot.kernelPackages = pkgs.linuxPackages_6_12; # Hibernate works on 6.12 but not on latest
|
|
||||||
boot.kernelPackages = pkgs.linuxPackages_latest; # Unpinned the linux version for now.. as i am not using hibernate that often
|
|
||||||
networking.hostName = "doloro-nixos-laptop"; # Define your hostname.
|
|
||||||
security.rtkit.enable = true;
|
|
||||||
|
|
||||||
# Configure network connections interactively with nmcli or nmtui.
|
|
||||||
networking.networkmanager.enable = true;
|
|
||||||
|
|
||||||
# Set your time zone.
|
|
||||||
# time.timeZone = "Europe/London";
|
|
||||||
services.automatic-timezoned.enable = true;
|
|
||||||
|
|
||||||
nix.settings = {
|
|
||||||
substituters = [
|
|
||||||
"https://nix-community.cachix.org"
|
|
||||||
"https://cache.nixos.org/"
|
|
||||||
"https://attic.scug.io/pkgs"
|
|
||||||
];
|
|
||||||
trusted-public-keys = [
|
|
||||||
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
|
||||||
"pkgs:+sRbfiZMMX5R3PuAPtIRz/emowDoGZNpozibrnrAvuc="
|
|
||||||
];
|
|
||||||
experimental-features = [
|
|
||||||
"flakes"
|
|
||||||
"nix-command"
|
|
||||||
];
|
|
||||||
trusted-users = [
|
|
||||||
"doloro"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
services.gnome.gnome-keyring.enable = true;
|
|
||||||
|
|
||||||
hardware = {
|
|
||||||
firmware = [ pkgs.intel-npu-driver ];
|
|
||||||
cpu.intel = {
|
|
||||||
# npu.enable = true;
|
|
||||||
};
|
|
||||||
graphics = {
|
|
||||||
enable = true;
|
|
||||||
# https://github.com/intel/libvpl?tab=readme-ov-file#dispatcher-behavior-when-targeting-intel-gpus
|
|
||||||
extraPackages = with pkgs; [
|
|
||||||
vpl-gpu-rt
|
|
||||||
intel-media-driver # VA-API (iHD) userspace
|
|
||||||
intel-vaapi-driver
|
|
||||||
# vpl-gpu-rt # oneVPL (QSV) runtime
|
|
||||||
intel-compute-runtime # OpenCL (NEO) + Level Zero for Arc/Xe
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
services.openssh = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
PasswordAuthentication = true;
|
|
||||||
PermitRootLogin = "prohibit-password";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
users.users.root.openssh.authorizedKeys.keys = [
|
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBaa6Z5qtBSLEz+A4fQGYPfkOISsRQlmKkVbcx2zxML7"
|
|
||||||
];
|
|
||||||
|
|
||||||
# Select internationalisation properties.
|
|
||||||
# i18n.defaultLocale = "en_US.UTF-8";
|
|
||||||
# console = {
|
|
||||||
# font = "Lat2-Terminus16";
|
|
||||||
# keyMap = "us";
|
|
||||||
# useXkbConfig = true; # use xkb.options in tty.
|
|
||||||
# };
|
|
||||||
|
|
||||||
# Enable the X11 windowing system.
|
|
||||||
services.xserver.enable = true;
|
|
||||||
|
|
||||||
# sops.age.keyFile = "/etc/ssh/ssh_host_ed25519_key";
|
|
||||||
sops = {
|
|
||||||
defaultSopsFile = builtins.toPath "${nix-meow.flakeRoot}/secrets/users.yaml";
|
|
||||||
secrets = {
|
|
||||||
root-hashed_password = {
|
|
||||||
neededForUsers = true;
|
|
||||||
};
|
|
||||||
doloro-hashed_password = {
|
|
||||||
neededForUsers = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
services.pipewire = {
|
|
||||||
enable = true;
|
|
||||||
pulse.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
services.libinput.enable = true;
|
|
||||||
|
|
||||||
boot.binfmt.emulatedSystems = [ "aarch64-linux" ];
|
|
||||||
# Define a user account. Don't forget to set a password with ‘passwd’.
|
|
||||||
users.users.doloro = {
|
|
||||||
isNormalUser = true;
|
|
||||||
shell = pkgs.fish;
|
|
||||||
extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user.
|
|
||||||
packages = with pkgs; [
|
|
||||||
tree
|
|
||||||
];
|
|
||||||
hashedPasswordFile = config.sops.secrets."doloro-hashed_password".path;
|
|
||||||
openssh.authorizedKeys.keys = [
|
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBaa6Z5qtBSLEz+A4fQGYPfkOISsRQlmKkVbcx2zxML7" # pc public key
|
|
||||||
];
|
|
||||||
# initialPassword = "sex";
|
|
||||||
};
|
|
||||||
users.mutableUsers = false;
|
|
||||||
services.system76-scheduler.enable = true;
|
|
||||||
|
|
||||||
# programs.firefox.enable = true;
|
|
||||||
|
|
||||||
# List packages installed in system profile.
|
|
||||||
# You can use https://search.nixos.org/ to find more packages (and options).
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
|
|
||||||
git
|
|
||||||
wget
|
|
||||||
# tlp-pd
|
|
||||||
brightnessctl
|
|
||||||
nvtopPackages.intel
|
|
||||||
seahorse
|
|
||||||
];
|
|
||||||
|
|
||||||
# Some programs need SUID wrappers, can be configured further or are
|
|
||||||
# started in user sessions.
|
|
||||||
# programs.mtr.enable = true;
|
|
||||||
# programs.gnupg.agent = {
|
|
||||||
# enable = true;
|
|
||||||
# enableSSHSupport = true;
|
|
||||||
# };
|
|
||||||
|
|
||||||
# List services that you want to enable:
|
|
||||||
|
|
||||||
# Open ports in the firewall.
|
|
||||||
# networking.firewall.allowedTCPPorts = [ ... ];
|
|
||||||
# networking.firewall.allowedUDPPorts = [ ... ];
|
|
||||||
# Or disable the firewall altogether.
|
|
||||||
# networking.firewall.enable = false;
|
|
||||||
|
|
||||||
# Copy the NixOS configuration file and link it from the resulting system
|
|
||||||
# (/run/current-system/configuration.nix). This is useful in case you
|
|
||||||
# accidentally delete configuration.nix.
|
|
||||||
|
|
||||||
# This option defines the first version of NixOS you have installed on this particular machine,
|
|
||||||
# and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions.
|
|
||||||
#
|
|
||||||
# Most users should NEVER change this value after the initial install, for any reason,
|
|
||||||
# even if you've upgraded your system to a new NixOS release.
|
|
||||||
#
|
|
||||||
# This value does NOT affect the Nixpkgs version your packages and OS are pulled from,
|
|
||||||
# so changing it will NOT upgrade your system - see https://nixos.org/manual/nixos/stable/#sec-upgrading for how
|
|
||||||
# to actually do that.
|
|
||||||
#
|
|
||||||
# This value being lower than the current NixOS release does NOT mean your system is
|
|
||||||
# out of date, out of support, or vulnerable.
|
|
||||||
#
|
|
||||||
# Do NOT change this value unless you have manually inspected all the changes it would make to your configuration,
|
|
||||||
# and migrated your data accordingly.
|
|
||||||
#
|
|
||||||
# For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion .
|
|
||||||
system.stateVersion = "25.11"; # Did you read the comment?
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,132 +0,0 @@
|
|||||||
{
|
|
||||||
inputs,
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
fetchFromGitHub,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
modules = {
|
|
||||||
hyfetch.enable = true;
|
|
||||||
Hyprland = {
|
|
||||||
enable = true;
|
|
||||||
suspend-on-hibernate = true;
|
|
||||||
};
|
|
||||||
niri.enable = false;
|
|
||||||
quickshell.enable = true;
|
|
||||||
# chromium.enable = true;
|
|
||||||
wivrn.enable = true;
|
|
||||||
sops.enable = true;
|
|
||||||
helium.enable = true;
|
|
||||||
nixvim.enable = true;
|
|
||||||
helix.enable = false;
|
|
||||||
stylix.enable = true;
|
|
||||||
kitty.enable = true;
|
|
||||||
tmux.enable = true;
|
|
||||||
theme.enable = true;
|
|
||||||
obs = {
|
|
||||||
enable = true;
|
|
||||||
autostart = true;
|
|
||||||
};
|
|
||||||
blender.enable = true;
|
|
||||||
zen-browser.enable = false;
|
|
||||||
bottles.enable = true;
|
|
||||||
fish.enable = true;
|
|
||||||
youtube-music.enable = true;
|
|
||||||
unityhub.enable = true;
|
|
||||||
direnv.enable = true;
|
|
||||||
git.enable = true;
|
|
||||||
rsRPC.enable = true;
|
|
||||||
};
|
|
||||||
# Home Manager needs a bit of information about you and the paths it should
|
|
||||||
# manage.
|
|
||||||
home.username = "doloro";
|
|
||||||
home.homeDirectory = "/home/doloro";
|
|
||||||
|
|
||||||
wayland.windowManager.hyprland.settings = {
|
|
||||||
monitor = [
|
|
||||||
"HDMI-A-1, 1920x1080@60, 0x0, 1"
|
|
||||||
"DP-3, 1920x1080@144, 1920x0, 1"
|
|
||||||
];
|
|
||||||
exec-once = [
|
|
||||||
"hyprctl dispatch workspace 2" # shit solution to get quickshell on the right monitor
|
|
||||||
];
|
|
||||||
workspace = [
|
|
||||||
"name:2, monitor:DP-3"
|
|
||||||
];
|
|
||||||
input = {
|
|
||||||
kb_layout = "gb";
|
|
||||||
follow_mouse = 2;
|
|
||||||
sensitivity = -0.5;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
services = {
|
|
||||||
gpg-agent = {
|
|
||||||
enable = true;
|
|
||||||
pinentry = {
|
|
||||||
package = pkgs.pinentry-qt;
|
|
||||||
program = "pinentry-qt";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
arrpc = {
|
|
||||||
enable = false;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
xdg.mimeApps.enable = true;
|
|
||||||
|
|
||||||
# This value determines the Home Manager release that your configuration is
|
|
||||||
# compatible with. This helps avoid breakage when a new Home Manager release
|
|
||||||
# introduces backwards incompatible changes.
|
|
||||||
#
|
|
||||||
# You should not change this value, even if you update Home Manager. If you do
|
|
||||||
# want to update the value, then make sure to first check the Home Manager
|
|
||||||
# release notes.
|
|
||||||
home.stateVersion = "25.05"; # Please read the comment before changing.
|
|
||||||
|
|
||||||
# The home.packages option allows you to install Nix packages into your
|
|
||||||
# environment.
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
hello
|
|
||||||
vim
|
|
||||||
telegram-desktop
|
|
||||||
vesktop
|
|
||||||
(inputs.protonhax.packages.x86_64-linux.default)
|
|
||||||
pavucontrol
|
|
||||||
lazygit
|
|
||||||
btop
|
|
||||||
sops
|
|
||||||
protontricks
|
|
||||||
alcom
|
|
||||||
gcr
|
|
||||||
qbittorrent
|
|
||||||
(inputs.hytale-launcher.packages.x86_64-linux.default)
|
|
||||||
];
|
|
||||||
home.sessionVariables = {
|
|
||||||
EDITOR = "nvim";
|
|
||||||
};
|
|
||||||
services = {
|
|
||||||
dunst = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
xdg.configFile."mimeapps.list".force = true;
|
|
||||||
|
|
||||||
programs = {
|
|
||||||
ssh = {
|
|
||||||
enable = true;
|
|
||||||
enableDefaultConfig = false;
|
|
||||||
matchBlocks = {
|
|
||||||
"*" = {
|
|
||||||
addKeysToAgent = "yes";
|
|
||||||
identityFile = [
|
|
||||||
"~/.ssh/id_ed25519"
|
|
||||||
"~/.ssh/id_gitea_scug"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
home-manager.enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,321 +0,0 @@
|
|||||||
# Edit this configuration file to define what should be installed on
|
|
||||||
# your system. Help is available in the configuration.nix(5) man page, on
|
|
||||||
# https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
|
|
||||||
|
|
||||||
{
|
|
||||||
config,
|
|
||||||
inputs,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
nix-meow,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
sops = inputs.sops-nix;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
inputs.sops-nix.nixosModules.sops
|
|
||||||
];
|
|
||||||
modules = {
|
|
||||||
fish.enable = true;
|
|
||||||
greetd.enable = true;
|
|
||||||
stylix.enable = true;
|
|
||||||
steam.enable = true;
|
|
||||||
Hyprland.enable = true;
|
|
||||||
niri.enable = false;
|
|
||||||
wivrn.enable = true;
|
|
||||||
remoteBuild.become-remote-builder = true;
|
|
||||||
fonts.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
services.resolved.enable = true;
|
|
||||||
|
|
||||||
services.gnome.gnome-keyring.enable = true;
|
|
||||||
|
|
||||||
# Use the systemd-boot EFI boot loader.
|
|
||||||
boot.loader.grub.enable = true;
|
|
||||||
boot.loader.grub.device = "nodev";
|
|
||||||
boot.loader.grub.devices = [
|
|
||||||
"/dev/disk/by-id/nvme-CT1000P2SSD8_2221E632CD1F"
|
|
||||||
"nodev"
|
|
||||||
];
|
|
||||||
#boot.loader.efi.canTouchEfiVariables = true;
|
|
||||||
boot.loader.grub.efiSupport = true;
|
|
||||||
boot.loader.grub.efiInstallAsRemovable = true;
|
|
||||||
|
|
||||||
nix.settings = {
|
|
||||||
substituters = [
|
|
||||||
"https://nix-community.cachix.org"
|
|
||||||
"https://cache.nixos.org/"
|
|
||||||
"https://attic.scug.io/pkgs"
|
|
||||||
"https://cache.nixos-cuda.org"
|
|
||||||
"https://niri.cachix.org"
|
|
||||||
];
|
|
||||||
trusted-public-keys = [
|
|
||||||
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
|
||||||
"pkgs:+sRbfiZMMX5R3PuAPtIRz/emowDoGZNpozibrnrAvuc="
|
|
||||||
"cache.nixos-cuda.org:74DUi4Ye579gUqzH4ziL9IyiJBlDpMRn9MBN8oNan9M="
|
|
||||||
"niri.cachix.org-1:Wv0OmO7PsuocRKzfDoJ3mulSl7Z6oezYhGhR+3W2964="
|
|
||||||
];
|
|
||||||
experimental-features = [
|
|
||||||
"flakes"
|
|
||||||
"nix-command"
|
|
||||||
];
|
|
||||||
trusted-users = [
|
|
||||||
"doloro"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
networking.hostName = "doloroo-main"; # Define your hostname.
|
|
||||||
boot.kernelPackages = pkgs.linuxPackages_latest;
|
|
||||||
# Enable "Silent boot"
|
|
||||||
boot.consoleLogLevel = 3;
|
|
||||||
boot.initrd.verbose = false;
|
|
||||||
boot.kernelParams = [
|
|
||||||
"quiet"
|
|
||||||
"splash"
|
|
||||||
"boot.shell_on_fail"
|
|
||||||
"udev.log_priority=3"
|
|
||||||
"rd.systemd.show_status=auto"
|
|
||||||
];
|
|
||||||
# Hide the OS choice for bootloaders.
|
|
||||||
# It's still possible to open the bootloader list by pressing any key
|
|
||||||
# It will just not appear on screen unless a key is pressed
|
|
||||||
boot.loader.timeout = 0;
|
|
||||||
|
|
||||||
nixpkgs.config.allowUnfree = true;
|
|
||||||
|
|
||||||
# Configure network connections interactively with nmcli or nmtui.
|
|
||||||
networking.networkmanager.enable = true;
|
|
||||||
networking.firewall.enable = false;
|
|
||||||
|
|
||||||
security.rtkit.enable = true;
|
|
||||||
|
|
||||||
sops = {
|
|
||||||
# age.keyFile = "/etc/ssh/ssh_host_ed25519_key";
|
|
||||||
defaultSopsFile = builtins.toPath "${nix-meow.flakeRoot}/secrets/users.yaml";
|
|
||||||
secrets = {
|
|
||||||
root-hashed_password = {
|
|
||||||
neededForUsers = true;
|
|
||||||
};
|
|
||||||
doloro-hashed_password = {
|
|
||||||
neededForUsers = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# Set your time zone.
|
|
||||||
time.timeZone = "Europe/London";
|
|
||||||
|
|
||||||
# Configure network proxy if necessary
|
|
||||||
# networking.proxy.default = "http://user:password@proxy:port/";
|
|
||||||
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
|
|
||||||
|
|
||||||
# Select internationalisation properties.
|
|
||||||
# i18n.defaultLocale = "en_US.UTF-8";
|
|
||||||
# console = {
|
|
||||||
# font = "Lat2-Terminus16";
|
|
||||||
# keyMap = "us";
|
|
||||||
# useXkbConfig = true; # use xkb.options in tty.
|
|
||||||
# };
|
|
||||||
|
|
||||||
# Enable the X11 windowing system.
|
|
||||||
# services.xserver.enable = true;
|
|
||||||
|
|
||||||
# Enable OpenGL
|
|
||||||
hardware.graphics = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
services.xserver.videoDrivers = [ "nvidia" ];
|
|
||||||
|
|
||||||
fileSystems."/mnt/2tb" = {
|
|
||||||
device = "/dev/disk/by-uuid/0f49aec7-4af2-4f4f-b475-3f4fad2b59c2";
|
|
||||||
fsType = "ext4";
|
|
||||||
options = [
|
|
||||||
# If you don't have this options attribute, it'll default to "defaults"
|
|
||||||
# boot options for fstab. Search up fstab mount options you can use
|
|
||||||
"defaults"
|
|
||||||
"users" # Allows any user to mount and unmount
|
|
||||||
"nofail" # Prevent system from failing if this drive doesn't mount
|
|
||||||
"exec"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
boot.plymouth = {
|
|
||||||
enable = true;
|
|
||||||
theme = "rings";
|
|
||||||
themePackages = with pkgs; [
|
|
||||||
# By default we would install all themes
|
|
||||||
(adi1090x-plymouth-themes.override {
|
|
||||||
selected_themes = [ "rings" ];
|
|
||||||
})
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
hardware.nvidia = {
|
|
||||||
|
|
||||||
# Modesetting is required.
|
|
||||||
modesetting.enable = true;
|
|
||||||
|
|
||||||
# Nvidia power management. Experimental, and can cause sleep/suspend to fail.
|
|
||||||
# Enable this if you have graphical corruption issues or application crashes after waking
|
|
||||||
# up from sleep. This fixes it by saving the entire VRAM memory to /tmp/ instead
|
|
||||||
# of just the bare essentials.
|
|
||||||
powerManagement.enable = true;
|
|
||||||
|
|
||||||
# Fine-grained power management. Turns off GPU when not in use.
|
|
||||||
# Experimental and only works on modern Nvidia GPUs (Turing or newer).
|
|
||||||
powerManagement.finegrained = false;
|
|
||||||
# prime.offload.enable = true;
|
|
||||||
|
|
||||||
# Use the NVidia open source kernel module (not to be confused with the
|
|
||||||
# independent third-party "nouveau" open source driver).
|
|
||||||
# Support is limited to the Turing and later architectures. Full list of
|
|
||||||
# supported GPUs is at:
|
|
||||||
# https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus
|
|
||||||
# Only available from driver 515.43.04+
|
|
||||||
open = false;
|
|
||||||
|
|
||||||
# Enable the Nvidia settings menu,
|
|
||||||
# accessible via `nvidia-settings`.
|
|
||||||
nvidiaSettings = true;
|
|
||||||
|
|
||||||
# Optionally, you may need to select the appropriate driver version for your specific GPU.
|
|
||||||
package = config.boot.kernelPackages.nvidiaPackages.latest;
|
|
||||||
};
|
|
||||||
|
|
||||||
# fonts = {
|
|
||||||
# enableDefaultPackages = true;
|
|
||||||
# packages =
|
|
||||||
# with pkgs;
|
|
||||||
# [
|
|
||||||
# nerd-fonts.jetbrains-mono
|
|
||||||
# material-design-icons
|
|
||||||
# material-symbols
|
|
||||||
# googlesans-code
|
|
||||||
# nerd-fonts.caskaydia-cove
|
|
||||||
# nerd-fonts.noto
|
|
||||||
# noto-fonts-cjk-sans
|
|
||||||
# noto-fonts-cjk-serif
|
|
||||||
# ]
|
|
||||||
# ++ [
|
|
||||||
# (inputs.font-patcher.lib.patchFont {
|
|
||||||
# font = "${pkgs.googlesans-code}/share/fonts/googlesans-code/GoogleSansCode[wght].ttf";
|
|
||||||
# name = "Google Sans Code Nerd Font";
|
|
||||||
# inherit system;
|
|
||||||
# })
|
|
||||||
# ];
|
|
||||||
# fontDir.enable = true;
|
|
||||||
# };
|
|
||||||
boot.binfmt.emulatedSystems = [ "aarch64-linux" ];
|
|
||||||
programs.nix-ld.enable = true;
|
|
||||||
programs.nix-ld.libraries = with pkgs; [
|
|
||||||
fuse
|
|
||||||
libusb1
|
|
||||||
libGL
|
|
||||||
harfbuzz
|
|
||||||
];
|
|
||||||
|
|
||||||
# Configure keymap in X11
|
|
||||||
# services.xserver.xkb.layout = "us";
|
|
||||||
# services.xserver.xkb.options = "eurosign:e,caps:escape";
|
|
||||||
|
|
||||||
# Enable CUPS to print documents.
|
|
||||||
# services.printing.enable = true;
|
|
||||||
|
|
||||||
# Enable sound.
|
|
||||||
# services.pulseaudio.enable = true;
|
|
||||||
# OR
|
|
||||||
services.pipewire = {
|
|
||||||
enable = true;
|
|
||||||
pulse.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
programs = {
|
|
||||||
ssh = {
|
|
||||||
# enable = true;
|
|
||||||
# startAgent = true;
|
|
||||||
|
|
||||||
};
|
|
||||||
fish.enable = true;
|
|
||||||
};
|
|
||||||
# Enable touchpad support (enabled default in most desktopManager).
|
|
||||||
# services.libinput.enable = true;
|
|
||||||
services.openssh = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
PasswordAuthentication = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
users.users.doloro = {
|
|
||||||
isNormalUser = true;
|
|
||||||
shell = pkgs.fish;
|
|
||||||
extraGroups = [
|
|
||||||
"wheel"
|
|
||||||
"dialout"
|
|
||||||
"networkmanager"
|
|
||||||
]; # Enable ‘sudo’ for the user.
|
|
||||||
packages = with pkgs; [
|
|
||||||
tree
|
|
||||||
];
|
|
||||||
};
|
|
||||||
users.mutableUsers = false;
|
|
||||||
users.users.doloro.hashedPasswordFile = config.sops.secrets."doloro-hashed_password".path;
|
|
||||||
# users.users.root.hashedPasswordFile = config.sops.secrets."root-hashed_password".path;
|
|
||||||
users.users.root.initialPassword = "root";
|
|
||||||
# programs.firefox.enable = true;
|
|
||||||
|
|
||||||
# List packages installed in system profile.
|
|
||||||
# You can use https://search.nixos.org/ to find more packages (and options).
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
|
|
||||||
wget
|
|
||||||
killall
|
|
||||||
sops
|
|
||||||
seahorse
|
|
||||||
];
|
|
||||||
|
|
||||||
# Some programs need SUID wrappers, can be configured further or are
|
|
||||||
# started in user sessions.
|
|
||||||
# programs.mtr.enable = true;
|
|
||||||
# programs.gnupg.agent = {
|
|
||||||
# enable = true;
|
|
||||||
# enableSSHSupport = true;
|
|
||||||
# };
|
|
||||||
|
|
||||||
# List services that you want to enable:
|
|
||||||
|
|
||||||
# Enable the OpenSSH daemon.
|
|
||||||
# services.openssh.enable = true;
|
|
||||||
|
|
||||||
# Open ports in the firewall.
|
|
||||||
# networking.firewall.allowedTCPPorts = [ ... ];
|
|
||||||
# networking.firewall.allowedUDPPorts = [ ... ];
|
|
||||||
# Or disable the firewall altogether.
|
|
||||||
# networking.firewall.enable = false;
|
|
||||||
|
|
||||||
# Copy the NixOS configuration file and link it from the resulting system
|
|
||||||
# (/run/current-system/configuration.nix). This is useful in case you
|
|
||||||
# accidentally delete configuration.nix.
|
|
||||||
# system.copySystemConfiguration = true;
|
|
||||||
|
|
||||||
# This option defines the first version of NixOS you have installed on this particular machine,
|
|
||||||
# and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions.
|
|
||||||
#
|
|
||||||
# Most users should NEVER change this value after the initial install, for any reason,
|
|
||||||
# even if you've upgraded your system to a new NixOS release.
|
|
||||||
#
|
|
||||||
# This value does NOT affect the Nixpkgs version your packages and OS are pulled from,
|
|
||||||
# so changing it will NOT upgrade your system - see https://nixos.org/manual/nixos/stable/#sec-upgrading for how
|
|
||||||
# to actually do that.
|
|
||||||
#
|
|
||||||
# This value being lower than the current NixOS release does NOT mean your system is
|
|
||||||
# out of date, out of support, or vulnerable.
|
|
||||||
#
|
|
||||||
# Do NOT change this value unless you have manually inspected all the changes it would make to your configuration,
|
|
||||||
# and migrated your data accordingly.
|
|
||||||
#
|
|
||||||
# For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion .
|
|
||||||
system.stateVersion = "25.11"; # Did you read the comment?
|
|
||||||
}
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
{ ... }:
|
|
||||||
let
|
|
||||||
|
|
||||||
in
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,54 +0,0 @@
|
|||||||
{
|
|
||||||
inputs,
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
fetchFromGitHub,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
modules = {
|
|
||||||
hyfetch.enable = true;
|
|
||||||
sops.enable = true;
|
|
||||||
nixvim.enable = true;
|
|
||||||
tmux.enable = true;
|
|
||||||
# theme.enable = true;
|
|
||||||
fish.enable = true;
|
|
||||||
direnv.enable = true;
|
|
||||||
git.enable = true;
|
|
||||||
};
|
|
||||||
# Home Manager needs a bit of information about you and the paths it should
|
|
||||||
# manage.
|
|
||||||
home.username = "doloro";
|
|
||||||
home.homeDirectory = "/home/doloro";
|
|
||||||
|
|
||||||
# services = {
|
|
||||||
# };
|
|
||||||
|
|
||||||
# This value determines the Home Manager release that your configuration is
|
|
||||||
# compatible with. This helps avoid breakage when a new Home Manager release
|
|
||||||
# introduces backwards incompatible changes.
|
|
||||||
#
|
|
||||||
# You should not change this value, even if you update Home Manager. If you do
|
|
||||||
# want to update the value, then make sure to first check the Home Manager
|
|
||||||
# release notes.
|
|
||||||
home.stateVersion = "25.11"; # Please read the comment before changing.
|
|
||||||
|
|
||||||
# The home.packages option allows you to install Nix packages into your
|
|
||||||
# environment.
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
hello
|
|
||||||
vim
|
|
||||||
lazygit
|
|
||||||
btop
|
|
||||||
sops
|
|
||||||
];
|
|
||||||
home.sessionVariables = {
|
|
||||||
EDITOR = "nvim";
|
|
||||||
};
|
|
||||||
|
|
||||||
xdg.configFile."mimeapps.list".force = true;
|
|
||||||
|
|
||||||
programs = {
|
|
||||||
home-manager.enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,99 +0,0 @@
|
|||||||
{
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
inputs,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
rpi-pi = inputs.raspberry-pi-nix;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
# To build an sd-card image
|
|
||||||
# $ nix build .#nixosConfigurations.rpi-5-rpi-5-aarch64-linux.config.system.build.sdImage --json &| nom
|
|
||||||
# $ sudo dd if=./result/sd-image/nixos-sd-image-26.05.20260120.80e4adb-aarch64-linux.img of=/dev/sdc conv=fsync status=progress
|
|
||||||
|
|
||||||
imports = [
|
|
||||||
rpi-pi.nixosModules.raspberry-pi
|
|
||||||
rpi-pi.nixosModules.sd-image
|
|
||||||
./containers.nix
|
|
||||||
];
|
|
||||||
nix.settings = {
|
|
||||||
substituters = [ "https://nix-community.cachix.org" ];
|
|
||||||
trusted-public-keys = [ "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
services.traefik = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
staticConfigOptions = {
|
|
||||||
entryPoints = {
|
|
||||||
web = {
|
|
||||||
address = ":80";
|
|
||||||
http.redirections.entrypoint = {
|
|
||||||
to = "websecure";
|
|
||||||
scheme = "https";
|
|
||||||
};
|
|
||||||
asDefault = true;
|
|
||||||
};
|
|
||||||
websecure = {
|
|
||||||
address = ":443";
|
|
||||||
asDefault = true;
|
|
||||||
http.tls.certResolver = "letsencrypt";
|
|
||||||
};
|
|
||||||
traefik = {
|
|
||||||
address = ":8081";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
certificatesResolvers.letsencrypt.acme = {
|
|
||||||
email = "doloroo@proton.me";
|
|
||||||
storage = "${config.services.traefik.dataDir}/acme.json";
|
|
||||||
httpChallenge.entryPoint = "web";
|
|
||||||
};
|
|
||||||
api.dashboard = true;
|
|
||||||
api.insecure = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# TEMP
|
|
||||||
networking.firewall.enable = false;
|
|
||||||
|
|
||||||
users = {
|
|
||||||
mutableUsers = false;
|
|
||||||
users.doloro = {
|
|
||||||
isNormalUser = true;
|
|
||||||
extraGroups = [ "wheel" ];
|
|
||||||
openssh.authorizedKeys.keys = [
|
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIE/4h+WCBBW82puv8SMdUbkWymF4amEMuZitgFztB6oZ" # laptop pub key
|
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBaa6Z5qtBSLEz+A4fQGYPfkOISsRQlmKkVbcx2zxML7" # pc pub key
|
|
||||||
];
|
|
||||||
initialPassword = "meowmeowmeow";
|
|
||||||
};
|
|
||||||
users.root = {
|
|
||||||
initialPassword = "rootmeow";
|
|
||||||
openssh.authorizedKeys.keys = [
|
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIE/4h+WCBBW82puv8SMdUbkWymF4amEMuZitgFztB6oZ" # laptop pub key
|
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBaa6Z5qtBSLEz+A4fQGYPfkOISsRQlmKkVbcx2zxML7" # pc pub key
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
networking.hostName = "nixos-001-rp5";
|
|
||||||
|
|
||||||
services.openssh.enable = true;
|
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
libraspberrypi
|
|
||||||
];
|
|
||||||
|
|
||||||
sdImage.compressImage = false;
|
|
||||||
|
|
||||||
raspberry-pi-nix.board = "bcm2712"; # Rpi 5 - 64bit
|
|
||||||
# We need to rebuild kernel for 6.12
|
|
||||||
# raspberry-pi-nix.kernel-version = "v6_12_17";
|
|
||||||
raspberry-pi-nix.uboot.enable = false;
|
|
||||||
|
|
||||||
hardware.enableRedistributableFirmware = true;
|
|
||||||
system.stateVersion = "25.11";
|
|
||||||
nixpkgs.hostPlatform = "aarch64-linux";
|
|
||||||
}
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
_: {
|
|
||||||
home = ./home.nix;
|
|
||||||
# nixos: ./nixos.nix;
|
|
||||||
}
|
|
||||||
@@ -1,34 +0,0 @@
|
|||||||
{
|
|
||||||
inputs,
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
cfg = config.modules.alecaframe;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
# You gotta install it into prefix yourself. this just makes a desktop file
|
|
||||||
options.modules.alecaframe = {
|
|
||||||
enable = lib.mkEnableOption "";
|
|
||||||
};
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
xdg.desktopEntries = {
|
|
||||||
alecaframe = {
|
|
||||||
name = "Alecaframe";
|
|
||||||
comment = "launches alecaframe";
|
|
||||||
exec = ''
|
|
||||||
protonhax run 230410 "
|
|
||||||
/home/branden/.local/share/Steam/steamapps/compatdata/230410/pfx/drive_c/users/steamuser/AppData/Roaming/Microsoft/Windows/Start
|
|
||||||
Menu/Programs/Overwolf/AlecaFrame.lnk
|
|
||||||
"
|
|
||||||
'';
|
|
||||||
# icon = "system-reboot";
|
|
||||||
terminal = false;
|
|
||||||
type = "Application";
|
|
||||||
categories = [ "System" ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
_: {
|
|
||||||
home = ./home.nix;
|
|
||||||
# nixos: ./nixos.nix;
|
|
||||||
}
|
|
||||||
@@ -1,62 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
inputs,
|
|
||||||
pkgs,
|
|
||||||
home,
|
|
||||||
system,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
# system: "base16"
|
|
||||||
# name: "Gruvbox dark, hard"
|
|
||||||
# author: "Dawid Kurek (dawikur@gmail.com), morhetz (https://github.com/morhetz/gruvbox)"
|
|
||||||
# variant: "dark"
|
|
||||||
let
|
|
||||||
hexToInt = hex: fromTOML "value = 0x${hex}";
|
|
||||||
hexToRgb =
|
|
||||||
hex:
|
|
||||||
let
|
|
||||||
red = hexToInt (builtins.substring 1 2 hex);
|
|
||||||
green = hexToInt (builtins.substring 3 2 hex);
|
|
||||||
blue = hexToInt (builtins.substring 5 2 hex);
|
|
||||||
in
|
|
||||||
{
|
|
||||||
r = red.value;
|
|
||||||
g = green.value;
|
|
||||||
b = blue.value;
|
|
||||||
};
|
|
||||||
theme =
|
|
||||||
let
|
|
||||||
importYaml =
|
|
||||||
file:
|
|
||||||
builtins.fromJSON (
|
|
||||||
builtins.readFile (
|
|
||||||
pkgs.runCommandNoCC "converted-yaml.json" { } ''
|
|
||||||
${pkgs.yj}/bin/yj < ${file} > $out
|
|
||||||
''
|
|
||||||
)
|
|
||||||
);
|
|
||||||
# EDIT THEME HERE
|
|
||||||
themeFile = "${pkgs.base16-schemes}/share/themes/gruvbox-dark-hard.yaml";
|
|
||||||
in
|
|
||||||
importYaml themeFile;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.base16 = {
|
|
||||||
hex = lib.mkOption {
|
|
||||||
type = lib.types.attrs;
|
|
||||||
description = ''
|
|
||||||
Hexadecimal color configuration for Gruvbox dark, hard Base16 theme.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
rgb = lib.mkOption {
|
|
||||||
type = lib.types.attrs;
|
|
||||||
description = ''
|
|
||||||
Hexadecimal color configuration for Gruvbox dark, hard Base16 theme.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config.modules.base16.hex = theme.palette;
|
|
||||||
config.modules.base16.rgb = builtins.mapAttrs (_name: hex: hexToRgb hex) theme.palette;
|
|
||||||
}
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
_: {
|
|
||||||
home = ./home.nix;
|
|
||||||
# nixos: ./nixos.nix;
|
|
||||||
}
|
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
inputs,
|
|
||||||
pkgs,
|
|
||||||
home,
|
|
||||||
system,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
blenderPkgs = inputs.nix-warez.packages.${system};
|
|
||||||
cfg = config.modules.blender;
|
|
||||||
blender_4_5 = pkgs.blender.overrideAttrs (
|
|
||||||
final: prev: {
|
|
||||||
pname = "blender";
|
|
||||||
version = "4.5.0";
|
|
||||||
src = pkgs.fetchzip {
|
|
||||||
name = "source";
|
|
||||||
url = "https://download.blender.org/source/blender-${final.version}.tar.xz";
|
|
||||||
hash = "sha256-DNVZUZpysCyB/Xt8yB352gO+UK8Cd4aDFGYuUDKyIrs=";
|
|
||||||
};
|
|
||||||
patches = [ ];
|
|
||||||
}
|
|
||||||
);
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.blender = {
|
|
||||||
enable = lib.mkEnableOption "Blender configuration module";
|
|
||||||
};
|
|
||||||
# whole blender config including addons is too fat to include here
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
home.packages = [
|
|
||||||
blenderPkgs.blender_4_5
|
|
||||||
];
|
|
||||||
};
|
|
||||||
# nix'ing a blender config is most likely not possible
|
|
||||||
# could probs install blender addons through nix since they are fat fat mega fat to install TODO
|
|
||||||
}
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
_: {
|
|
||||||
home = ./home.nix;
|
|
||||||
# nixos: ./nixos.nix;
|
|
||||||
}
|
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
inputs,
|
|
||||||
pkgs,
|
|
||||||
home,
|
|
||||||
system,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
cfg = config.modules.bottles;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.bottles = {
|
|
||||||
enable = lib.mkEnableOption "Blender configuration module";
|
|
||||||
};
|
|
||||||
# whole bottles config including addons is too fat to include here
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
home.packages = [
|
|
||||||
pkgs.bottles
|
|
||||||
];
|
|
||||||
};
|
|
||||||
# nix'ing a bottles config is most likely not possible
|
|
||||||
# could probs install bottles addons through nix since they are fat fat mega fat to install TODO
|
|
||||||
}
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
_: {
|
|
||||||
home = ./home.nix;
|
|
||||||
nixos = ./nixos.nix;
|
|
||||||
}
|
|
||||||
@@ -1,39 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
fetchFromGitHub,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
cfg = config.modules.remoteBuild;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.remoteBuild = {
|
|
||||||
use-remote-builders = lib.mkEnableOption "remoteBuild";
|
|
||||||
};
|
|
||||||
config = lib.mkIf cfg.use-remote-builders {
|
|
||||||
nix.package = pkgs.nix;
|
|
||||||
nix.distributedBuilds = true;
|
|
||||||
nix.settings.builders-use-substitutes = true;
|
|
||||||
|
|
||||||
# Define every build machine here..
|
|
||||||
nix.buildMachines = [
|
|
||||||
{
|
|
||||||
# Main desktop pc
|
|
||||||
# ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKqsFEgtcTDw89GaZJg8P/FE1xngIXmiUZl8j0b+V7n+ root@doloroo-main
|
|
||||||
hostName = "doloroo-main";
|
|
||||||
sshUser = "remotebuild";
|
|
||||||
sshKey = "/root/.ssh/remotebuild";
|
|
||||||
# protocol = "ssh-ng";
|
|
||||||
maxJobs = 8;
|
|
||||||
speedFactor = 2;
|
|
||||||
supportedFeatures = [
|
|
||||||
"nixos-test"
|
|
||||||
"big-parallel"
|
|
||||||
"kvm"
|
|
||||||
];
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,62 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
cfg = config.modules.remoteBuild;
|
|
||||||
remoteBuilder = lib.mkIf cfg.become-remote-builder {
|
|
||||||
users.users.remotebuild = {
|
|
||||||
isSystemUser = true;
|
|
||||||
shell = pkgs.bashInteractive;
|
|
||||||
group = "remotebuild";
|
|
||||||
# useDefaultShell = true;
|
|
||||||
|
|
||||||
# ssh-keygen -f /root/.ssh/remotebuild
|
|
||||||
openssh.authorizedKeys.keyFiles = [ ./remotebuild.pub ];
|
|
||||||
openssh.authorizedKeys.keys = [
|
|
||||||
# Laptop-system
|
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIE/4h+WCBBW82puv8SMdUbkWymF4amEMuZitgFztB6oZ doloroo@proton.me"
|
|
||||||
# Laptop-user-doloro
|
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOuNlm8vq6MvWsVU/RW4oq7npQngjIxNFpjEWbAS/8H2 root@doloro-nixos-laptop"
|
|
||||||
];
|
|
||||||
initialPassword = "remotebuilder";
|
|
||||||
};
|
|
||||||
|
|
||||||
users.groups.remotebuild = { };
|
|
||||||
|
|
||||||
nix.settings.trusted-users = [ "remotebuild" ];
|
|
||||||
};
|
|
||||||
useBulders = lib.mkIf cfg.use-remote-builders {
|
|
||||||
nix.distributedBuilds = true;
|
|
||||||
nix.settings.builders-use-substitutes = true;
|
|
||||||
|
|
||||||
# Define every build machine here..
|
|
||||||
# also define in home manager (TODO make a single file with all builders)
|
|
||||||
nix.buildMachines = [
|
|
||||||
{
|
|
||||||
# Main desktop pc
|
|
||||||
# ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKqsFEgtcTDw89GaZJg8P/FE1xngIXmiUZl8j0b+V7n+ root@doloroo-main
|
|
||||||
hostName = "doloroo-main";
|
|
||||||
sshUser = "remotebuild";
|
|
||||||
sshKey = "/root/.ssh/remotebuild";
|
|
||||||
system = "x86_64-linux";
|
|
||||||
maxJobs = 8;
|
|
||||||
speedFactor = 2;
|
|
||||||
supportedFeatures = [
|
|
||||||
"nixos-test"
|
|
||||||
"big-parallel"
|
|
||||||
"kvm"
|
|
||||||
];
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.remoteBuild = {
|
|
||||||
use-remote-builders = lib.mkEnableOption "remoteBuild";
|
|
||||||
become-remote-builder = lib.mkEnableOption "remoteBuild";
|
|
||||||
};
|
|
||||||
config = lib.attrsets.recursiveUpdate useBulders remoteBuilder;
|
|
||||||
}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKqsFEgtcTDw89GaZJg8P/FE1xngIXmiUZl8j0b+V7n+ root@doloroo-main
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
_: {
|
|
||||||
home = ./home.nix;
|
|
||||||
# nixos: ./nixos.nix;
|
|
||||||
}
|
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
inputs,
|
|
||||||
pkgs,
|
|
||||||
system,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
cfg = config.modules.chromium;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.chromium = {
|
|
||||||
enable = lib.mkEnableOption "Chromium";
|
|
||||||
};
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
programs.chromium = {
|
|
||||||
enable = true;
|
|
||||||
extensions = [
|
|
||||||
{ id = "ghmbeldphafepmbegfdlkpapadhbakde"; } # ProtonPass
|
|
||||||
#{ id = "cjpalhdlnbpafiamejdnhcphjbkeiagm"; } # Ublok
|
|
||||||
{ id = "ddkjiahejlhfcafbddmgiahcphecmpfh"; } # Ublock lite
|
|
||||||
{ id = "kpmjjdhbcfebfjgdnpjagcndoelnidfj"; } # Control panel for twitter
|
|
||||||
{ id = "aighbdamfnndbemigjcbkdklkegkgmpl"; } # Better twitter embeds
|
|
||||||
{ id = "enamippconapkdmgfgjchkhakpfinmaj"; } # DeArrow
|
|
||||||
{ id = "bjcnpgekponkjpincbcoflgkdomldlnl"; } # Website Blocker
|
|
||||||
];
|
|
||||||
package = pkgs.chromium.override { enableWideVine = true; };
|
|
||||||
};
|
|
||||||
xdg.mimeApps.defaultApplications = {
|
|
||||||
"text/html" = "chromium.desktop";
|
|
||||||
"x-scheme-handler/http" = "chromium.desktop";
|
|
||||||
"x-scheme-handler/https" = "chromium.desktop";
|
|
||||||
"x-scheme-handler/about" = "chromium.desktop";
|
|
||||||
"x-scheme-handler/unknown" = "chromium.desktop";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
_:
|
|
||||||
builtins.listToAttrs (
|
|
||||||
map (fn: {
|
|
||||||
name = fn;
|
|
||||||
value = import ./${fn} { };
|
|
||||||
}) (builtins.filter (fn: fn != "default.nix") (builtins.attrNames (builtins.readDir ./.)))
|
|
||||||
)
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
_: {
|
|
||||||
home = ./home.nix;
|
|
||||||
}
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
cfg = config.modules.direnv;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.direnv = {
|
|
||||||
enable = lib.mkEnableOption "direnv";
|
|
||||||
};
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
programs.direnv = {
|
|
||||||
enable = true;
|
|
||||||
# enableBashIntegration = true; # see note on other shells below
|
|
||||||
nix-direnv.enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
_: {
|
|
||||||
home = ./home.nix;
|
|
||||||
nixos = ./nixos.nix;
|
|
||||||
}
|
|
||||||
@@ -1,54 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
hostname,
|
|
||||||
nix-meow,
|
|
||||||
fetchFromGitHub,
|
|
||||||
system,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
cfg = config.modules.fish;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.fish = {
|
|
||||||
enable = lib.mkEnableOption "Fish";
|
|
||||||
};
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
home.shell.enableFishIntegration = true;
|
|
||||||
home.packages = [ pkgs.nix-output-monitor ];
|
|
||||||
programs = {
|
|
||||||
fish = {
|
|
||||||
enable = true;
|
|
||||||
shellInit = ''
|
|
||||||
set -g theme_nerd_fonts yes
|
|
||||||
set -g theme_color_scheme nord
|
|
||||||
set -g theme_display_user yes
|
|
||||||
set -g fish_color_autosuggestion 6F6578
|
|
||||||
alias nik 'nix'
|
|
||||||
alias nos 'sudo echo; sudo nixos-rebuild switch --flake .#${hostname}-${system} --log-format internal-json -v &| nom --json'
|
|
||||||
alias hms 'home-manager switch --flake .#${hostname}-${system} --log-format internal-json -v &| nom --json'
|
|
||||||
'';
|
|
||||||
plugins = [
|
|
||||||
{
|
|
||||||
name = "bobthefish";
|
|
||||||
src = pkgs.fetchFromGitHub {
|
|
||||||
owner = "oh-my-fish";
|
|
||||||
repo = "theme-bobthefish";
|
|
||||||
rev = "e3b4d4eafc23516e35f162686f08a42edf844e40";
|
|
||||||
sha256 = "sha256-cXOYvdn74H4rkMWSC7G6bT4wa9d3/3vRnKed2ixRnuA=";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
eza = {
|
|
||||||
enable = true;
|
|
||||||
enableFishIntegration = true;
|
|
||||||
icons = "auto";
|
|
||||||
git = true;
|
|
||||||
extraOptions = [ ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user