Compare commits
217 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
d10b195c7e
|
|||
|
119148c764
|
|||
|
ed8f2b4499
|
|||
|
ecdf754a3c
|
|||
|
8b29dff48f
|
|||
|
2cdcb0d9e7
|
|||
|
1ca6b68089
|
|||
|
d0fb5e86c3
|
|||
|
75fbc04c65
|
|||
|
e759d97779
|
|||
|
dc2be45e90
|
|||
|
495e4752bd
|
|||
|
1bc9f0460d
|
|||
|
9f11a3974d
|
|||
|
f7bcc0913a
|
|||
|
a33720a44f
|
|||
|
51ec1e2fef
|
|||
|
e5196e4e72
|
|||
| 1cf837cd65 | |||
|
8a477b4971
|
|||
|
a808aae26a
|
|||
|
b08e092351
|
|||
| 779d9d1562 | |||
|
e3453983be
|
|||
|
ff1ff5fd1c
|
|||
|
1972b5d4da
|
|||
|
3d49015a7c
|
|||
|
c1ec0f3fcb
|
|||
|
22e089223a
|
|||
|
1466608418
|
|||
|
aa9d3a056f
|
|||
|
8ca46d9edc
|
|||
|
13c29bc696
|
|||
|
1c4be3e470
|
|||
|
a01a2bcc47
|
|||
|
7feacb5179
|
|||
|
08a56d8455
|
|||
|
a5820a0b31
|
|||
|
600ef66012
|
|||
|
5ab17b8357
|
|||
|
602767d3a9
|
|||
|
f9a39d3f7d
|
|||
|
d2f3e70c38
|
|||
|
9d62bcede6
|
|||
|
a20a2d4ef6
|
|||
|
21aed28cf7
|
|||
|
05d30742bd
|
|||
|
c441fc6165
|
|||
|
0cf646c9d3
|
|||
|
a381c4886a
|
|||
|
20ffd3307c
|
|||
|
9bdcd24b29
|
|||
|
fbf8265a08
|
|||
|
9ef5bb82c6
|
|||
|
471478ed6b
|
|||
|
5d01659350
|
|||
|
d202d116c0
|
|||
|
5749c06b20
|
|||
|
cdaf170f6f
|
|||
|
4a4283988f
|
|||
|
4a1e5afd79
|
|||
|
6de66cf1cf
|
|||
|
d37e468ae8
|
|||
|
2797bfee0e
|
|||
|
3e19edc73a
|
|||
|
bc336fd6cf
|
|||
|
8e94344e8a
|
|||
|
33e497672a
|
|||
|
9b3135c378
|
|||
|
7a1caeaaa3
|
|||
|
ccd6b38184
|
|||
|
0ceda0b675
|
|||
|
8229f20975
|
|||
|
6c33f7f53e
|
|||
|
64f2e34018
|
|||
|
ea47a2ca71
|
|||
|
824f75f9cb
|
|||
|
77d520e944
|
|||
|
963b45ffa2
|
|||
|
52b3f2eb5e
|
|||
|
b0787ecfd6
|
|||
|
73fcd3619e
|
|||
|
119a2433b4
|
|||
|
cbd3c408e1
|
|||
|
eb593db0c0
|
|||
|
961afbbff7
|
|||
|
6f25e849f0
|
|||
|
71b1e05b2d
|
|||
|
320cac603d
|
|||
|
a306a8cb9a
|
|||
|
db22304952
|
|||
|
79c70eea54
|
|||
|
598306c57e
|
|||
|
6af15d5a00
|
|||
|
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
|
|||
|
7d793c45dc
|
|||
|
5911da7f99
|
|||
|
d1949310c5
|
|||
|
f83a201895
|
|||
|
4ce282f378
|
|||
|
d2a8db4d57
|
|||
|
a4282dd9aa
|
|||
|
9e4fc8ee21
|
|||
|
a31ac455cb
|
|||
|
e5230def14
|
|||
|
c08192ac34
|
|||
|
05de5f2063
|
|||
|
9ad81bb8e4
|
|||
|
88995ff8f5
|
|||
|
d492955c8e
|
|||
|
540a0e32e4
|
|||
|
dfbc1ea5a2
|
|||
|
d294038801
|
|||
|
f5bc2ef54f
|
|||
|
a7c6dc133e
|
|||
|
a0ba7ce382
|
|||
|
a0d8a1b0e3
|
|||
|
92010eedb7
|
|||
|
e35ad8eece
|
|||
|
2c39488719
|
|||
|
cf706f5d3b
|
|||
|
4440228098
|
|||
|
99e4da91af
|
|||
|
6c8e15dc23
|
|||
|
ecec4b8739
|
|||
|
4aaa0684c3
|
|||
|
9fc9742912
|
|||
|
06f32a0d38
|
|||
|
175fd9e2d4
|
|||
|
9e64a358d9
|
|||
|
57dfdc2cab
|
|||
|
9151cb04eb
|
|||
|
353f449f80
|
|||
|
c7f7a8f078
|
|||
|
cf6cb08e8c
|
|||
|
da91fdfd6d
|
|||
|
648245a0d8
|
|||
|
e247eded74
|
|||
|
47072e20e9
|
|||
|
dc10d3b55d
|
|||
|
d98fe007f1
|
|||
|
3f30db6fac
|
|||
|
eb0e26d456
|
|||
|
2b0eefad9f
|
|||
|
e8d1306e02
|
|||
|
66c6332023
|
|||
|
07d63e38b0
|
|||
|
562513fcd6
|
|||
|
f942349dca
|
|||
|
821f6b16da
|
|||
|
d64b22e394
|
|||
|
95178cab63
|
|||
|
28e7c64262
|
|||
|
017fc7105e
|
|||
|
8a3c5e155a
|
|||
|
f0360d6bdb
|
|||
|
9326350125
|
|||
|
f978a84650
|
|||
|
f029d5fedd
|
|||
|
a1b117c408
|
|||
|
294fc0a229
|
|||
|
33b2854c19
|
|||
|
db287b22eb
|
|||
|
12365b3815
|
|||
|
8998dfe127
|
|||
|
4c227f6f3a
|
|||
|
2204ed7e89
|
|||
|
6c298aee35
|
|||
|
73e7fb50c7
|
|||
|
19c65f7f11
|
|||
|
51ca720683
|
|||
|
f55324846a
|
|||
|
e7a1f7a13c
|
|||
|
1e73d7a66e
|
|||
|
dad4788bef
|
|||
|
8ea99dc660
|
|||
|
163dd16ad7
|
|||
|
68d3d74540
|
|||
|
06f539823b
|
|||
|
faed33b0cc
|
|||
|
faeaa62edf
|
|||
|
88be74cf74
|
|||
|
8a3678428b
|
@@ -3,3 +3,5 @@ nix/nixos.qcow2
|
|||||||
nix_file.tar.gz
|
nix_file.tar.gz
|
||||||
nvim
|
nvim
|
||||||
tmux/plugins
|
tmux/plugins
|
||||||
|
modules/quickshell/quickshell/.qmlls.ini
|
||||||
|
result
|
||||||
|
|||||||
+8
-3
@@ -2,7 +2,12 @@
|
|||||||
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
|
- "age1ykcy2r4kk729e7adqxu8s24ujc60z5eux7ma0ca4ruzydwgm5p6qmdp838" # pc-user-doloro
|
||||||
- "age1exzngtk4d9vcsmcq6ap5xx3ca9qacqjkrv86ymged7msx9z6vfyqsf5sjq" # laptop
|
- "age1e6vws55p0g23qzthm4qa93hpt6lqmck6670gkygph0sc0j7my4uq5wqjfh" # pc-system
|
||||||
|
- "age1x3lahhkefkap67cdmdjcqaxan9hp62er78akr79v9m73nvgugpeqk0y32a" # laptop-user-doloro
|
||||||
|
- "age1exzngtk4d9vcsmcq6ap5xx3ca9qacqjkrv86ymged7msx9z6vfyqsf5sjq" # laptop-system
|
||||||
|
- "age1fw4xnh2q52juce94ffn54js708cr6umfwpv0mykuddkea7kr4f0q7a9h05" # rpi5
|
||||||
|
- "age1pa8cecxaw4y4zea6zjnt0k0mz38g4qunmp6trwy5fvdvw88ttcgsv2dgrv" # laptop-surface-user-doloro
|
||||||
|
- "age1kc0xu0ue2nrrr7w4gam7wlzackv8jv243rxwwndgxjqklgtnp5csdtpgzp" # laptop-surface-system
|
||||||
|
|||||||
@@ -0,0 +1,7 @@
|
|||||||
|
{ den, ... }:
|
||||||
|
{
|
||||||
|
den.default = {
|
||||||
|
nixos.system.stateVersion = "25.11";
|
||||||
|
homeManager.home.stateVersion = "25.11";
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -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)
|
||||||
|
'';
|
||||||
|
}
|
||||||
@@ -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";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,81 @@
|
|||||||
|
{
|
||||||
|
den,
|
||||||
|
__findFile,
|
||||||
|
modules,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
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 {
|
||||||
|
audio = true;
|
||||||
|
autostart = true;
|
||||||
|
})
|
||||||
|
<modules/common/gaming>
|
||||||
|
# modules.helium
|
||||||
|
(<modules/helium> {
|
||||||
|
default = true;
|
||||||
|
})
|
||||||
|
# modules.niri # Testing
|
||||||
|
modules.stylix
|
||||||
|
modules.quickshell
|
||||||
|
modules.nix-ld
|
||||||
|
modules.spotify
|
||||||
|
modules.easyeffects
|
||||||
|
modules.lavd
|
||||||
|
modules.ai
|
||||||
|
<modules/ai/ollama-cuda>
|
||||||
|
];
|
||||||
|
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; [
|
||||||
|
equibop
|
||||||
|
telegram-desktop
|
||||||
|
obsidian
|
||||||
|
# pear-desktop
|
||||||
|
prismlauncher
|
||||||
|
deadlock-mod-manager
|
||||||
|
gamescope
|
||||||
|
android-studio
|
||||||
|
];
|
||||||
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
programs.home-manager.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,98 @@
|
|||||||
|
{
|
||||||
|
den,
|
||||||
|
modules,
|
||||||
|
pkgs,
|
||||||
|
inputs,
|
||||||
|
__findFile,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
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 = true;
|
||||||
|
|
||||||
|
# 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.stable;
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -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 = "24G";
|
||||||
|
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";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
{
|
||||||
|
den,
|
||||||
|
modules,
|
||||||
|
__findFile,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
den.aspects.laptop = {
|
||||||
|
nixos =
|
||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
modulesPath,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
# (modulesPath + "/hardware/cpu/intel-npu.nix")
|
||||||
|
# (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 "aarch64-linux";
|
||||||
|
# hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
|
# hardware.cpu.intel.npu.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,68 @@
|
|||||||
|
{
|
||||||
|
den,
|
||||||
|
__findFile,
|
||||||
|
modules,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
den.aspects.doloro-laptop = {
|
||||||
|
includes = [
|
||||||
|
<den/primary-user>
|
||||||
|
den.aspects.doloro-shared
|
||||||
|
modules.hyprland
|
||||||
|
<modules/hyprland/doloro-settings>
|
||||||
|
modules.sops
|
||||||
|
modules.fish
|
||||||
|
(<modules/helium> {
|
||||||
|
default = true;
|
||||||
|
})
|
||||||
|
modules.kitty
|
||||||
|
modules.stylix
|
||||||
|
modules.quickshell
|
||||||
|
modules.lavd
|
||||||
|
# modules.podman
|
||||||
|
# modules.openvivo
|
||||||
|
];
|
||||||
|
nixos =
|
||||||
|
{ config, pkgs, ... }:
|
||||||
|
{
|
||||||
|
users.users.doloro = {
|
||||||
|
isNormalUser = true;
|
||||||
|
shell = pkgs.fish;
|
||||||
|
hashedPasswordFile = config.sops.secrets."doloro-hashed_password".path;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
homeManager =
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
wayland.windowManager.hyprland.settings = {
|
||||||
|
# monitor = [
|
||||||
|
# "eDP-1, 2880x1800@120, 0x0, 2"
|
||||||
|
# ];
|
||||||
|
input = {
|
||||||
|
kb_layout = "gb";
|
||||||
|
follow_mouse = 2;
|
||||||
|
sensitivity = 0;
|
||||||
|
};
|
||||||
|
decoration = {
|
||||||
|
blur = lib.mkForce {
|
||||||
|
enabled = false;
|
||||||
|
passes = 1;
|
||||||
|
new_optimizations = true;
|
||||||
|
ignore_opacity = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
telegram-desktop
|
||||||
|
equibop
|
||||||
|
obsidian
|
||||||
|
# intel-gpu-tools
|
||||||
|
brightnessctl
|
||||||
|
surface-control
|
||||||
|
];
|
||||||
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,250 @@
|
|||||||
|
{
|
||||||
|
den,
|
||||||
|
modules,
|
||||||
|
__findFile,
|
||||||
|
inputs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
den.aspects.laptop = {
|
||||||
|
includes = [
|
||||||
|
modules.nix
|
||||||
|
modules.tuigreet
|
||||||
|
# <modules/common/laptop-power-management>
|
||||||
|
modules.fonts
|
||||||
|
modules.surface-patches
|
||||||
|
modules.nikpkgs
|
||||||
|
modules.auto-cpufreq
|
||||||
|
modules.tlp
|
||||||
|
# (modules.tdp {
|
||||||
|
# batt = {
|
||||||
|
# cpu = {
|
||||||
|
# long-term = 13;
|
||||||
|
# short-term = 7;
|
||||||
|
# };
|
||||||
|
# mmio = {
|
||||||
|
# long-term = 10;
|
||||||
|
# short-term = 7;
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
# ac = {
|
||||||
|
# cpu = {
|
||||||
|
# long-term = 120;
|
||||||
|
# short-term = 120;
|
||||||
|
# };
|
||||||
|
# mmio = {
|
||||||
|
# long-term = 40;
|
||||||
|
# short-term = 20;
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
# })
|
||||||
|
];
|
||||||
|
nixos =
|
||||||
|
{ pkgs, config, ... }:
|
||||||
|
{
|
||||||
|
# Use the systemd-boot EFI boot loader.
|
||||||
|
boot.loader.systemd-boot.enable = true;
|
||||||
|
boot.loader.efi.canTouchEfiVariables = true;
|
||||||
|
services.upower.enable = 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
|
||||||
|
# boot.kernelPackages =
|
||||||
|
# inputs.nix-cachyos-kernel.legacyPackages.x86_64-linux.linuxPackages-cachyos-latest-lto-x86_64-v3;
|
||||||
|
networking.hostName = "doloro-nixos-laptop"; # Define your hostname.
|
||||||
|
# security.rtkit.enable = true;
|
||||||
|
|
||||||
|
# Configure network connections interactively with nmcli or nmtui.
|
||||||
|
networking.networkmanager.enable = true;
|
||||||
|
|
||||||
|
boot.initrd = {
|
||||||
|
systemd = {
|
||||||
|
enable = true;
|
||||||
|
emergencyAccess = true;
|
||||||
|
tpm2.enable = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
systemd.units."dev-tpm0.device".enable = false;
|
||||||
|
systemd.units."dev-tpmrm0.device".enable = false;
|
||||||
|
|
||||||
|
# Set your time zone.
|
||||||
|
# time.timeZone = "Europe/London";
|
||||||
|
services.automatic-timezoned.enable = true;
|
||||||
|
networking.wireless.iwd.enable = false;
|
||||||
|
|
||||||
|
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;
|
||||||
|
|
||||||
|
nixpkgs.config.packageOverrides = pkgs: {
|
||||||
|
intel-vaapi-driver = pkgs.intel-vaapi-driver.override { enableHybridCodec = true; };
|
||||||
|
};
|
||||||
|
hardware = {
|
||||||
|
# firmware = [ pkgs.intel-npu-driver ];
|
||||||
|
graphics = {
|
||||||
|
enable = true;
|
||||||
|
extraPackages = with pkgs; [
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
environment.sessionVariables = {
|
||||||
|
LIBVA_DRIVER_NAME = "iHD";
|
||||||
|
}; # Force intel-media-driver
|
||||||
|
|
||||||
|
# services.fwupd = {
|
||||||
|
# enable = true;
|
||||||
|
# };
|
||||||
|
|
||||||
|
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 = false;
|
||||||
|
|
||||||
|
powerManagement = {
|
||||||
|
enable = true;
|
||||||
|
# powertop.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
boot.kernelParams = [
|
||||||
|
# "mem_sleep_default=deep"
|
||||||
|
# "i915.fastboot=1"
|
||||||
|
# "i915.modeset=1"
|
||||||
|
# "ahci.mobile_lpm_policy=1"
|
||||||
|
# "intel_idle.max_cstate=10"
|
||||||
|
"processor.max_cstate=10"
|
||||||
|
"pci=noaer"
|
||||||
|
# "quiet"
|
||||||
|
# "splash"
|
||||||
|
# "idle=halt"
|
||||||
|
];
|
||||||
|
boot.binfmt.emulatedSystems = [
|
||||||
|
"x86_64-linux"
|
||||||
|
];
|
||||||
|
|
||||||
|
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?
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
{
|
||||||
|
den,
|
||||||
|
modules,
|
||||||
|
__findFile,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
den.aspects.doloro-shared = {
|
||||||
|
includes = [
|
||||||
|
modules.nixvim
|
||||||
|
modules.nix
|
||||||
|
modules.tmux
|
||||||
|
<modules/git/doloro>
|
||||||
|
modules.hyfetch
|
||||||
|
modules.ssh
|
||||||
|
];
|
||||||
|
homeManager =
|
||||||
|
{ pkgs, lib, ... }:
|
||||||
|
{
|
||||||
|
home = {
|
||||||
|
username = "doloro";
|
||||||
|
homeDirectory = "/home/doloro";
|
||||||
|
packages = with pkgs; [
|
||||||
|
wl-clipboard
|
||||||
|
# home-manager
|
||||||
|
btop
|
||||||
|
];
|
||||||
|
};
|
||||||
|
programs.home-manager.enable = true;
|
||||||
|
};
|
||||||
|
nixos =
|
||||||
|
{ lib, ... }:
|
||||||
|
{
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -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";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
{
|
||||||
|
den,
|
||||||
|
__findFile,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
# Homes
|
||||||
|
den.homes.x86_64-linux.doloro-desktop = {
|
||||||
|
aspect = "doloro-desktop";
|
||||||
|
userName = "doloro";
|
||||||
|
};
|
||||||
|
# TODO
|
||||||
|
den.homes.aarch64-linux.doloro-laptop = {
|
||||||
|
userName = "doloro";
|
||||||
|
};
|
||||||
|
# Machines
|
||||||
|
den.hosts.x86_64-linux.desktop = {
|
||||||
|
users.doloro = {
|
||||||
|
aspect = "doloro-desktop";
|
||||||
|
home-manager.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
# TODO
|
||||||
|
den.hosts.aarch64-linux.laptop = {
|
||||||
|
users.doloro = {
|
||||||
|
aspect = "doloro-laptop";
|
||||||
|
home-manager.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
den.schema.user.classes = lib.mkDefault [ "homeManager" ];
|
||||||
|
|
||||||
|
# Fixes 'The option `flake.homeConfigurations' is defined multiple times while it's expected to be unique.'
|
||||||
|
flake.options.homeConfigurations = lib.mkOption {
|
||||||
|
type = lib.types.attrs;
|
||||||
|
description = "Home Manager configurations for users.";
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
@@ -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";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
flake-file.inputs = {
|
||||||
|
home-manager = {
|
||||||
|
url = "github:nix-community/home-manager";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
den.url = "github:vic/den?ref=8101ec865c0bf4027d40b9fd8951e3e435a86d64";
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
{ den, modules, ... }:
|
||||||
|
{
|
||||||
|
modules.ai = {
|
||||||
|
provides = {
|
||||||
|
ollama-cuda = {
|
||||||
|
homeManager =
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
home.packages = [ pkgs.ollama-cuda ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
homeManager =
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
home.packages = [ pkgs.opencode ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
modules,
|
||||||
|
den,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
flake-file.inputs = {
|
||||||
|
nix-cachyos-kernel.url = "github:xddxdd/nix-cachyos-kernel/release";
|
||||||
|
};
|
||||||
|
# inputs.nix-cachyos-kernel.legacyPackages.x86_64-linux.linuxPackages-cachyos-lts-lto;
|
||||||
|
modules.cachyos-kernel = {
|
||||||
|
nixos = {
|
||||||
|
nixpkgs.overlays = [
|
||||||
|
inputs.nix-cachyos-kernel.overlays.pinned
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
flake-file.inputs.disko.url = "github:nix-community/disko";
|
||||||
|
modules.disko = {
|
||||||
|
nixos =
|
||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
imports = [ inputs.disko.nixosModules.disko ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
{ modules, ... }:
|
||||||
|
{
|
||||||
|
modules.dunst = {
|
||||||
|
homeManager = {
|
||||||
|
services.dunst = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
global = {
|
||||||
|
font = "Noto Nerd Font 8";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
{ den, modules, ... }:
|
||||||
|
{
|
||||||
|
modules.easyeffects = {
|
||||||
|
homeManager = {
|
||||||
|
services.easyeffects.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
{ den, modules, ... }:
|
||||||
|
{
|
||||||
|
modules.common.provides = {
|
||||||
|
gaming = {
|
||||||
|
includes = [ modules.steam ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,41 @@
|
|||||||
|
{ 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;
|
||||||
|
# Fixes some games being blurry under wayland backend
|
||||||
|
NIX_CFLAGS_COMPILE = [ "-fno-fast-math" ];
|
||||||
|
})
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -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, ... }:
|
||||||
|
{
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
{
|
||||||
|
den,
|
||||||
|
modules,
|
||||||
|
inputs,
|
||||||
|
lib,
|
||||||
|
stdenv,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
flake-file.inputs = {
|
||||||
|
heliumFlake = {
|
||||||
|
url = "github:vikingnope/helium-browser-nix-flake";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
modules.helium = settings: {
|
||||||
|
homeManager =
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
home.packages = [
|
||||||
|
inputs.heliumFlake.packages.${pkgs.stdenv.hostPlatform.system}.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 = lib.mkIf settings.default {
|
||||||
|
binds = [
|
||||||
|
"$mainMod, E, exec, helium"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,202 @@
|
|||||||
|
{ modules, ... }:
|
||||||
|
{
|
||||||
|
modules.hyprland = {
|
||||||
|
provides = {
|
||||||
|
doloro-settings = {
|
||||||
|
includes = [
|
||||||
|
modules.dunst
|
||||||
|
];
|
||||||
|
homeManager =
|
||||||
|
{ pkgs, home, ... }:
|
||||||
|
{
|
||||||
|
home.packages = [
|
||||||
|
pkgs.hyprcursor
|
||||||
|
pkgs.wlogout
|
||||||
|
pkgs.tofi
|
||||||
|
pkgs.killall
|
||||||
|
pkgs.grim
|
||||||
|
pkgs.slurp
|
||||||
|
pkgs.wayclip
|
||||||
|
];
|
||||||
|
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"
|
||||||
|
"__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;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
cursor = {
|
||||||
|
no_hardware_cursors = true;
|
||||||
|
};
|
||||||
|
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"
|
||||||
|
(
|
||||||
|
let
|
||||||
|
script = pkgs.writeShellScript "meow" ''
|
||||||
|
fish -c 'grim -g $(slurp) -t png - &| wl-copy -t image/png; killall wayfreeze'
|
||||||
|
'';
|
||||||
|
in
|
||||||
|
"$mainMod, S, exec, " + "wayfreeze --after-freeze-cmd '${script}'"
|
||||||
|
)
|
||||||
|
"$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)$, 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
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,61 @@
|
|||||||
|
{
|
||||||
|
modules,
|
||||||
|
inputs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
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
|
||||||
|
ranger
|
||||||
|
];
|
||||||
|
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;
|
||||||
|
};
|
||||||
|
# gtk.enable = lib.mkForce false;
|
||||||
|
xdg.portal = {
|
||||||
|
enable = true;
|
||||||
|
extraPortals = [
|
||||||
|
inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland
|
||||||
|
];
|
||||||
|
};
|
||||||
|
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, ... }:
|
||||||
|
{
|
||||||
|
gtk = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
wayland.windowManager.hyprland = {
|
||||||
|
enable = true;
|
||||||
|
systemd.variables = [ "--all" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
{ den, modules, ... }:
|
||||||
|
{
|
||||||
|
modules.wlsunset = {
|
||||||
|
homeManager =
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
systemd.user.services = {
|
||||||
|
wlsunset = {
|
||||||
|
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
den,
|
||||||
|
modules,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
flake-file.inputs = {
|
||||||
|
nik-pkgs = {
|
||||||
|
url = "git+https://git.scug.io/nikkuss/pkgs.git";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
modules.nikpkgs = {
|
||||||
|
nixos = {
|
||||||
|
nixpkgs.overlays = [ inputs.nik-pkgs.overlays.default ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,152 @@
|
|||||||
|
{
|
||||||
|
modules,
|
||||||
|
inputs,
|
||||||
|
lib,
|
||||||
|
den,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
flake-file.inputs = {
|
||||||
|
niri-flake = {
|
||||||
|
url = "github:sodiboo/niri-flake";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
modules.niri = {
|
||||||
|
nixos =
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
imports = [ inputs.niri-flake.nixosModules.niri ];
|
||||||
|
programs.niri.enable = true;
|
||||||
|
programs.niri.package = pkgs.niri-unstable;
|
||||||
|
nixpkgs.overlays = [ inputs.niri-flake.overlays.niri ];
|
||||||
|
};
|
||||||
|
homeManager =
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
# The nixos module already imports the hm module
|
||||||
|
# imports = [ inputs.niri-flake.homeModules.niri ];
|
||||||
|
gtk.enable = lib.mkForce false;
|
||||||
|
programs = {
|
||||||
|
niri = {
|
||||||
|
# enable = true;
|
||||||
|
# package = pkgs.niri-unstable;
|
||||||
|
settings = {
|
||||||
|
input = {
|
||||||
|
keyboard = {
|
||||||
|
xkb = {
|
||||||
|
layout = "gb";
|
||||||
|
};
|
||||||
|
numlock = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
cursor = {
|
||||||
|
size = 16;
|
||||||
|
};
|
||||||
|
outputs = {
|
||||||
|
DP-3 = {
|
||||||
|
# Philips Consumer Electronics Company PHL 272E1GZ UK02101011104
|
||||||
|
mode = {
|
||||||
|
width = 1920;
|
||||||
|
height = 1080;
|
||||||
|
refresh = 144.0;
|
||||||
|
};
|
||||||
|
focus-at-startup = true;
|
||||||
|
variable-refresh-rate = false;
|
||||||
|
};
|
||||||
|
HDMI-A-1 = {
|
||||||
|
position = {
|
||||||
|
x = -1920;
|
||||||
|
y = 0;
|
||||||
|
};
|
||||||
|
scale = 1;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
binds = {
|
||||||
|
# Navigation
|
||||||
|
"Mod+Shift+WheelScrollDown" = {
|
||||||
|
hotkey-overlay.title = "Workspace Down";
|
||||||
|
cooldown-ms = 150;
|
||||||
|
action.focus-workspace-down = [ ];
|
||||||
|
};
|
||||||
|
"Mod+Shift+WheelScrollUp" = {
|
||||||
|
hotkey-overlay.title = "Workspace Up";
|
||||||
|
cooldown-ms = 150;
|
||||||
|
action.focus-workspace-up = [ ];
|
||||||
|
};
|
||||||
|
"Mod+WheelScrollUp" = {
|
||||||
|
hotkey-overlay.title = "Workspace Left";
|
||||||
|
action.focus-column-right = [ ];
|
||||||
|
};
|
||||||
|
"Mod+WheelScrollDown" = {
|
||||||
|
hotkey-overlay.title = "Workspace Right";
|
||||||
|
action.focus-column-left = [ ];
|
||||||
|
};
|
||||||
|
"Super+Tab" = {
|
||||||
|
hotkey-overlay.title = "Overview";
|
||||||
|
action.toggle-overview = [ ];
|
||||||
|
};
|
||||||
|
# --
|
||||||
|
# Utility
|
||||||
|
"Super+S" = {
|
||||||
|
action.screenshot = [ ];
|
||||||
|
};
|
||||||
|
"Super+C" = {
|
||||||
|
action.close-window = [ ];
|
||||||
|
};
|
||||||
|
"Super+L" = {
|
||||||
|
action.spawn = "wlogout";
|
||||||
|
};
|
||||||
|
# Program Spawning
|
||||||
|
"Mod+E".action.spawn = "helium";
|
||||||
|
|
||||||
|
"Mod+R".action.spawn =
|
||||||
|
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
|
||||||
|
"${script}";
|
||||||
|
|
||||||
|
"Mod+Q".action.spawn = "kitty";
|
||||||
|
# --
|
||||||
|
};
|
||||||
|
window-rules = [
|
||||||
|
{
|
||||||
|
matches = [ ];
|
||||||
|
geometry-corner-radius = {
|
||||||
|
bottom-left = 3.0;
|
||||||
|
bottom-right = 3.0;
|
||||||
|
top-left = 3.0;
|
||||||
|
top-right = 3.0;
|
||||||
|
};
|
||||||
|
clip-to-geometry = true;
|
||||||
|
draw-border-with-background = false;
|
||||||
|
focus-ring.width = 2;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
xwayland-satellite = {
|
||||||
|
enable = true;
|
||||||
|
path = lib.getExe pkgs.xwayland-satellite;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,156 @@
|
|||||||
|
{ den, modules, ... }:
|
||||||
|
{
|
||||||
|
modules.nix-ld = {
|
||||||
|
nixos =
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
programs.nix-ld = {
|
||||||
|
enable = true;
|
||||||
|
libraries = with pkgs; [
|
||||||
|
# List by default
|
||||||
|
zlib
|
||||||
|
zstd
|
||||||
|
stdenv.cc.cc
|
||||||
|
curl
|
||||||
|
openssl
|
||||||
|
attr
|
||||||
|
libssh
|
||||||
|
bzip2
|
||||||
|
libxml2
|
||||||
|
acl
|
||||||
|
libsodium
|
||||||
|
util-linux
|
||||||
|
xz
|
||||||
|
systemd
|
||||||
|
|
||||||
|
# My own additions
|
||||||
|
xorg.libXcomposite
|
||||||
|
xorg.libXtst
|
||||||
|
xorg.libXrandr
|
||||||
|
xorg.libXext
|
||||||
|
xorg.libX11
|
||||||
|
xorg.libXfixes
|
||||||
|
libGL
|
||||||
|
libva
|
||||||
|
pipewire
|
||||||
|
xorg.libxcb
|
||||||
|
xorg.libXdamage
|
||||||
|
xorg.libxshmfence
|
||||||
|
xorg.libXxf86vm
|
||||||
|
libelf
|
||||||
|
|
||||||
|
# Required
|
||||||
|
glib
|
||||||
|
gtk2
|
||||||
|
|
||||||
|
# Inspired by steam
|
||||||
|
# https://github.com/NixOS/nixpkgs/blob/master/pkgs/by-name/st/steam/package.nix#L36-L85
|
||||||
|
networkmanager
|
||||||
|
vulkan-loader
|
||||||
|
libgbm
|
||||||
|
libdrm
|
||||||
|
libxcrypt
|
||||||
|
coreutils
|
||||||
|
pciutils
|
||||||
|
zenity
|
||||||
|
# glibc_multi.bin # Seems to cause issue in ARM
|
||||||
|
|
||||||
|
# # Without these it silently fails
|
||||||
|
xorg.libXinerama
|
||||||
|
xorg.libXcursor
|
||||||
|
xorg.libXrender
|
||||||
|
xorg.libXScrnSaver
|
||||||
|
xorg.libXi
|
||||||
|
xorg.libSM
|
||||||
|
xorg.libICE
|
||||||
|
gnome2.GConf
|
||||||
|
nspr
|
||||||
|
nss
|
||||||
|
cups
|
||||||
|
libcap
|
||||||
|
SDL2
|
||||||
|
libusb1
|
||||||
|
dbus-glib
|
||||||
|
ffmpeg
|
||||||
|
# Only libraries are needed from those two
|
||||||
|
libudev0-shim
|
||||||
|
|
||||||
|
# needed to run unity
|
||||||
|
gtk3
|
||||||
|
icu
|
||||||
|
libnotify
|
||||||
|
gsettings-desktop-schemas
|
||||||
|
# https://github.com/NixOS/nixpkgs/issues/72282
|
||||||
|
# https://github.com/NixOS/nixpkgs/blob/2e87260fafdd3d18aa1719246fd704b35e55b0f2/pkgs/applications/misc/joplin-desktop/default.nix#L16
|
||||||
|
# log in /home/leo/.config/unity3d/Editor.log
|
||||||
|
# it will segfault when opening files if you don’t do:
|
||||||
|
# export XDG_DATA_DIRS=/nix/store/0nfsywbk0qml4faa7sk3sdfmbd85b7ra-gsettings-desktop-schemas-43.0/share/gsettings-schemas/gsettings-desktop-schemas-43.0:/nix/store/rkscn1raa3x850zq7jp9q3j5ghcf6zi2-gtk+3-3.24.35/share/gsettings-schemas/gtk+3-3.24.35/:$XDG_DATA_DIRS
|
||||||
|
# other issue: (Unity:377230): GLib-GIO-CRITICAL **: 21:09:04.706: g_dbus_proxy_call_sync_internal: assertion 'G_IS_DBUS_PROXY (proxy)' failed
|
||||||
|
|
||||||
|
# Verified games requirements
|
||||||
|
xorg.libXt
|
||||||
|
xorg.libXmu
|
||||||
|
libogg
|
||||||
|
libvorbis
|
||||||
|
SDL
|
||||||
|
SDL2_image
|
||||||
|
glew110
|
||||||
|
libidn
|
||||||
|
tbb
|
||||||
|
|
||||||
|
# Other things from runtime
|
||||||
|
flac
|
||||||
|
freeglut
|
||||||
|
libjpeg
|
||||||
|
libpng
|
||||||
|
libpng12
|
||||||
|
libsamplerate
|
||||||
|
libmikmod
|
||||||
|
libtheora
|
||||||
|
libtiff
|
||||||
|
pixman
|
||||||
|
speex
|
||||||
|
SDL_image
|
||||||
|
SDL_ttf
|
||||||
|
SDL_mixer
|
||||||
|
SDL2_ttf
|
||||||
|
SDL2_mixer
|
||||||
|
libappindicator-gtk2
|
||||||
|
libdbusmenu-gtk2
|
||||||
|
libindicator-gtk2
|
||||||
|
libcaca
|
||||||
|
libcanberra
|
||||||
|
libgcrypt
|
||||||
|
libvpx
|
||||||
|
librsvg
|
||||||
|
xorg.libXft
|
||||||
|
libvdpau
|
||||||
|
# ...
|
||||||
|
# Some more libraries that I needed to run programs
|
||||||
|
pango
|
||||||
|
cairo
|
||||||
|
atk
|
||||||
|
gdk-pixbuf
|
||||||
|
fontconfig
|
||||||
|
freetype
|
||||||
|
dbus
|
||||||
|
alsa-lib
|
||||||
|
expat
|
||||||
|
# for blender
|
||||||
|
libxkbcommon
|
||||||
|
|
||||||
|
libxcrypt-legacy # For natron
|
||||||
|
libGLU # For natron
|
||||||
|
|
||||||
|
fribidi
|
||||||
|
harfbuzz
|
||||||
|
libgpg-error
|
||||||
|
|
||||||
|
# Appimages need fuse, e.g. https://musescore.org/fr/download/musescore-x86_64.AppImage
|
||||||
|
fuse
|
||||||
|
e2fsprogs
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
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"
|
||||||
|
"https://attic.xuyh0120.win/lantian"
|
||||||
|
];
|
||||||
|
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="
|
||||||
|
"lantian:EeAUQ+W+6r7EtwnmYjeVwx5kOGEBpjlBfPlzGlTNvHc="
|
||||||
|
];
|
||||||
|
experimental-features = [
|
||||||
|
"flakes"
|
||||||
|
"nix-command"
|
||||||
|
];
|
||||||
|
trusted-users = [
|
||||||
|
"doloro"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,302 @@
|
|||||||
|
{
|
||||||
|
den,
|
||||||
|
modules,
|
||||||
|
lib,
|
||||||
|
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 = {
|
||||||
|
nixos =
|
||||||
|
{ home-manager, ... }:
|
||||||
|
{
|
||||||
|
};
|
||||||
|
homeManager =
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
inputs.nixvim.homeModules.nixvim
|
||||||
|
];
|
||||||
|
programs.nixvim = {
|
||||||
|
enable = true;
|
||||||
|
defaultEditor = true;
|
||||||
|
nixpkgs = {
|
||||||
|
config = {
|
||||||
|
allowUnfree = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
colorschemes.gruvbox-material.enable = true;
|
||||||
|
extraPackages = with pkgs; [
|
||||||
|
# formatters
|
||||||
|
nixfmt
|
||||||
|
rustfmt
|
||||||
|
# misc
|
||||||
|
ripgrep
|
||||||
|
# misc
|
||||||
|
nixd
|
||||||
|
tree-sitter
|
||||||
|
];
|
||||||
|
performance.byteCompileLua = {
|
||||||
|
enable = true;
|
||||||
|
plugins = true;
|
||||||
|
nvimRuntime = true;
|
||||||
|
luaLib = true;
|
||||||
|
configs = true;
|
||||||
|
};
|
||||||
|
plugins = {
|
||||||
|
todo-comments.enable = true;
|
||||||
|
lsp-status.enable = true;
|
||||||
|
transparent.enable = true;
|
||||||
|
which-key.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";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
# efmls-configs = {
|
||||||
|
# enable = true;
|
||||||
|
# languages = {
|
||||||
|
# scss = {
|
||||||
|
# formatter = "prettier";
|
||||||
|
# linter = "stylelint";
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
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;
|
||||||
|
};
|
||||||
|
cssls.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 = false;
|
||||||
|
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
|
||||||
|
rust
|
||||||
|
nix
|
||||||
|
regex
|
||||||
|
toml
|
||||||
|
vim
|
||||||
|
vimdoc
|
||||||
|
xml
|
||||||
|
yaml
|
||||||
|
svelte
|
||||||
|
];
|
||||||
|
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;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -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 =
|
||||||
|
let
|
||||||
|
audio-set = lib.mkIf settings.audio {
|
||||||
|
pw-discordaudio-virtual-device = {
|
||||||
|
Unit = {
|
||||||
|
Description = "OBS daemon";
|
||||||
|
After = [ "hyprland-session.target" ];
|
||||||
|
};
|
||||||
|
Install = {
|
||||||
|
WantedBy = [ "default.target" ];
|
||||||
|
};
|
||||||
|
Service = {
|
||||||
|
ExecStart = "${pkgs.writeShellScript "discord_audio_virt_device" ''
|
||||||
|
pw-loopback -m '[ FL FR]' --capture-props='media.class=Audio/Sink node.name=DiscordSink' -n DiscordSink
|
||||||
|
''}";
|
||||||
|
Restart = "on-failure";
|
||||||
|
RestartSec = "5s";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
pw-gameaudio-virtual-device = {
|
||||||
|
Unit = {
|
||||||
|
Description = "OBS daemon";
|
||||||
|
After = [ "hyprland-session.target" ];
|
||||||
|
};
|
||||||
|
Install = {
|
||||||
|
WantedBy = [ "default.target" ];
|
||||||
|
};
|
||||||
|
Service = {
|
||||||
|
ExecStart = "${pkgs.writeShellScript "game_audio_virt_device" ''
|
||||||
|
pw-loopback -m '[ FL FR]' --capture-props='media.class=Audio/Sink node.name=GameAudioSink' -n GameAudioSink
|
||||||
|
''}";
|
||||||
|
Restart = "on-failure";
|
||||||
|
RestartSec = "5s";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
in
|
||||||
|
lib.mergeAttrsList [ audio-set ];
|
||||||
|
|
||||||
|
wayland.windowManager.hyprland.settings = {
|
||||||
|
exec-once = [ "${config.programs.obs-studio.finalPackage}/bin/obs --startreplaybuffer" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
{
|
||||||
|
den,
|
||||||
|
modules,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
modules.openvivo = {
|
||||||
|
nixos =
|
||||||
|
{ pkgs, ... }:
|
||||||
|
let
|
||||||
|
llama = pkgs.fetchFromGitHub ({
|
||||||
|
owner = "ravi9";
|
||||||
|
repo = "llama.cpp";
|
||||||
|
rev = "1117e77";
|
||||||
|
hash = "sha256-7NMhKGxfutZ7i16ra3EA4pYEnLl0S23E6TFY7IhVPXU=";
|
||||||
|
});
|
||||||
|
in
|
||||||
|
{
|
||||||
|
virtualisation.oci-containers.backend = "podman";
|
||||||
|
virtualisation.oci-containers.containers = {
|
||||||
|
openvino = {
|
||||||
|
image = "openvino:latest";
|
||||||
|
imageFile = pkgs.dockerTools.buildImage {
|
||||||
|
name = "openvino";
|
||||||
|
tag = "latest";
|
||||||
|
fromImage = "${llama}/.devops/openvino.Dockerfile";
|
||||||
|
};
|
||||||
|
autoStart = true;
|
||||||
|
ports = [ "127.0.0.1:1234:1234" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
{ den, modules, ... }:
|
||||||
|
{
|
||||||
|
modules.podman = {
|
||||||
|
nixos =
|
||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
virtualisation = {
|
||||||
|
containers.enable = true;
|
||||||
|
podman = {
|
||||||
|
enable = true;
|
||||||
|
dockerCompat = true;
|
||||||
|
defaultNetwork.settings = {
|
||||||
|
dns_enabled = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
users.users."doloro" = {
|
||||||
|
extraGroups = [ "podman" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
{ den, modules, ... }:
|
||||||
|
{
|
||||||
|
modules.auto-cpufreq = {
|
||||||
|
nixos =
|
||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
services.auto-cpufreq.settings = {
|
||||||
|
battery = {
|
||||||
|
governor = "powersave";
|
||||||
|
turbo = "never";
|
||||||
|
};
|
||||||
|
charger = {
|
||||||
|
governor = "performance";
|
||||||
|
turbo = "auto";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
{ 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"
|
||||||
|
'';
|
||||||
|
systemd.targets = {
|
||||||
|
"ac" = {
|
||||||
|
description = "On AC power";
|
||||||
|
unitConfig = {
|
||||||
|
StopWhenUnneeded = "yes";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"battery" = {
|
||||||
|
description = "On battery power";
|
||||||
|
unitConfig = {
|
||||||
|
StopWhenUnneeded = "yes";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
{ den, modules, ... }:
|
||||||
|
{
|
||||||
|
modules.common.provides = {
|
||||||
|
laptop-power-management = {
|
||||||
|
includes = [
|
||||||
|
# modules.auto-cpufreq
|
||||||
|
modules.battery-ac-targets
|
||||||
|
modules.intel-mgm
|
||||||
|
modules.tlp
|
||||||
|
modules.rfkill-sleep
|
||||||
|
# modules.ppd
|
||||||
|
];
|
||||||
|
nixos = {
|
||||||
|
services.upower.enable = true;
|
||||||
|
services.thermald.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
{ modules, den, ... }:
|
||||||
|
{
|
||||||
|
modules.flash = {
|
||||||
|
nixos = {
|
||||||
|
services.scx = {
|
||||||
|
enable = true;
|
||||||
|
## Commented out because the service impl is bugged and doesnt actually set these
|
||||||
|
# scheduler = "scx_lavd";
|
||||||
|
# extraArgs = [
|
||||||
|
# "--cpu-pref-order 20-21,12-19,0-11"
|
||||||
|
# "--autopilot"
|
||||||
|
# ];
|
||||||
|
};
|
||||||
|
# Most energy efficent scheduler setup..
|
||||||
|
systemd.services.scx.environment = {
|
||||||
|
SCX_SCHEDULER_OVERRIDE = "scx_flash";
|
||||||
|
# Flags are from cachyos sched-ext tutorial
|
||||||
|
SCX_FLAGS_OVERRIDE = "-m powersave -I 10000 -t 1000 -s 10000 -S 1000";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -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 '1250' > /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 = "Gpu Limit";
|
||||||
|
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 = "Gpu Limit";
|
||||||
|
before = [ "ac.target" ];
|
||||||
|
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "oneshot";
|
||||||
|
ExecStart = "${ac-gpu}";
|
||||||
|
RemainAfterExit = true;
|
||||||
|
};
|
||||||
|
wantedBy = [ "ac.target" ];
|
||||||
|
partOf = [ "ac.target" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
{ modules, den, ... }:
|
||||||
|
{
|
||||||
|
modules.lavd = {
|
||||||
|
nixos =
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
nixpkgs.config.allowUnsupportedSystem = true;
|
||||||
|
services.scx = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.scx.rustscheds;
|
||||||
|
## Commented out because the service impl is bugged and doesnt actually set these
|
||||||
|
# scheduler = "scx_lavd";
|
||||||
|
# extraArgs = [
|
||||||
|
# "--cpu-pref-order 20-21,12-19,0-11"
|
||||||
|
# "--autopilot"
|
||||||
|
# ];
|
||||||
|
};
|
||||||
|
# Most energy efficent scheduler setup..
|
||||||
|
systemd.services.scx.environment = {
|
||||||
|
SCX_SCHEDULER_OVERRIDE = "scx_lavd";
|
||||||
|
SCX_FLAGS_OVERRIDE = "--powersave --cpu-pref-order=0-4,5-11";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
{ den, modules, ... }:
|
||||||
|
{
|
||||||
|
modules.ppd = {
|
||||||
|
nixos = {
|
||||||
|
services.power-profiles-daemon.enable = true;
|
||||||
|
powerManagement = {
|
||||||
|
cpuFreqGovernor = "schedutil";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
{ den, modules, ... }:
|
||||||
|
{
|
||||||
|
modules.rfkill-sleep = {
|
||||||
|
nixos =
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
# My laptop doesn't like having connectivity when it goes to sleep, it burns through battery
|
||||||
|
systemd.services.sleep-rfkill = {
|
||||||
|
description = "Custom suspend/resume hook";
|
||||||
|
wantedBy = [ "sleep.target" ];
|
||||||
|
before = [ "sleep.target" ];
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "oneshot";
|
||||||
|
# Command to run BEFORE system suspends
|
||||||
|
ExecStart = "${pkgs.util-linux}/bin/rfkill block all";
|
||||||
|
# Command to run AFTER system resumes
|
||||||
|
ExecStop = "${pkgs.util-linux}/bin/rfkill unblock all";
|
||||||
|
RemainAfterExit = true;
|
||||||
|
};
|
||||||
|
unitConfig = {
|
||||||
|
StopWhenUnneeded = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,65 @@
|
|||||||
|
{ modules, den, ... }:
|
||||||
|
{
|
||||||
|
modules.tdp = settings: {
|
||||||
|
nixos =
|
||||||
|
{ pkgs, ... }:
|
||||||
|
let
|
||||||
|
batt-tdp = pkgs.writeShellScript "batt-cpu-tdp" ''
|
||||||
|
${pkgs.powercap}/bin/powercap-set intel-rapl -z 0 -c 0 -l ${
|
||||||
|
toString (settings.batt.cpu.long-term * 1000000)
|
||||||
|
}
|
||||||
|
${pkgs.powercap}/bin/powercap-set intel-rapl -z 0 -c 1 -l ${
|
||||||
|
toString (settings.batt.cpu.short-term * 1000000)
|
||||||
|
}
|
||||||
|
|
||||||
|
${pkgs.powercap}/bin/powercap-set intel-rapl-mmio -z 0 -c 0 -l ${
|
||||||
|
toString (settings.batt.mmio.long-term * 1000000)
|
||||||
|
}
|
||||||
|
${pkgs.powercap}/bin/powercap-set intel-rapl-mmio -z 0 -c 1 -l ${
|
||||||
|
toString (settings.batt.mmio.short-term * 1000000)
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
ac-tdp = pkgs.writeShellScript "ac-cpu-tdp" ''
|
||||||
|
${pkgs.powercap}/bin/powercap-set intel-rapl -z 0 -c 0 -l ${
|
||||||
|
toString (settings.ac.cpu.long-term * 1000000)
|
||||||
|
}
|
||||||
|
${pkgs.powercap}/bin/powercap-set intel-rapl -z 0 -c 1 -l ${
|
||||||
|
toString (settings.ac.cpu.short-term * 1000000)
|
||||||
|
}
|
||||||
|
|
||||||
|
${pkgs.powercap}/bin/powercap-set intel-rapl-mmio -z 0 -c 0 -l ${
|
||||||
|
toString (settings.batt.mmio.long-term * 1000000)
|
||||||
|
}
|
||||||
|
${pkgs.powercap}/bin/powercap-set intel-rapl-mmio -z 0 -c 1 -l ${
|
||||||
|
toString (settings.batt.mmio.short-term * 1000000)
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
in
|
||||||
|
{
|
||||||
|
systemd.services.tdp-on-batt = {
|
||||||
|
enable = true;
|
||||||
|
before = [ "battery.target" ];
|
||||||
|
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "oneshot";
|
||||||
|
ExecStart = "${batt-tdp}";
|
||||||
|
RemainAfterExit = true;
|
||||||
|
};
|
||||||
|
wantedBy = [ "battery.target" ];
|
||||||
|
partOf = [ "battery.target" ];
|
||||||
|
};
|
||||||
|
systemd.services.tdp-on-ac = {
|
||||||
|
enable = true;
|
||||||
|
before = [ "ac.target" ];
|
||||||
|
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "oneshot";
|
||||||
|
ExecStart = "${ac-tdp}";
|
||||||
|
RemainAfterExit = true;
|
||||||
|
};
|
||||||
|
wantedBy = [ "ac.target" ];
|
||||||
|
partOf = [ "ac.target" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,63 @@
|
|||||||
|
{ den, modules, ... }:
|
||||||
|
{
|
||||||
|
modules.tlp = {
|
||||||
|
homeManager = { };
|
||||||
|
nixos = {
|
||||||
|
services.tlp = {
|
||||||
|
enable = true;
|
||||||
|
pd.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";
|
||||||
|
|
||||||
|
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 = "default";
|
||||||
|
PCIE_ASPM_ON_BAT = "powersave";
|
||||||
|
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 = 1250;
|
||||||
|
INTEL_GPU_POWER_PROFILE_ON_BAT = "power_saving";
|
||||||
|
|
||||||
|
# CPU_MAX_PERF_ON_BAT = 30;
|
||||||
|
|
||||||
|
# CPU_SCALING_GOVERNOR_ON_AC = "performance";
|
||||||
|
CPU_SCALING_GOVERNOR_ON_BAT = "schedutil";
|
||||||
|
# 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";
|
||||||
|
SCHED_POWERSAVE_ON_AC = 0;
|
||||||
|
SCHED_POWERSAVE_ON_BAT = 1;
|
||||||
|
NMI_WATCHDOG = 0;
|
||||||
|
|
||||||
|
PLATFORM_PROFILE_ON_AC = "balanced";
|
||||||
|
PLATFORM_PROFILE_ON_BAT = "quiet";
|
||||||
|
STOP_CHARGE_THRESH_BAT0 = 80;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -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
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -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";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
/run/user/1000/quickshell/vfs/6e389f6b800776b0595d9d90e42ebd04/.qmlls.ini
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
import QtQuick
|
||||||
|
import QtQuick.Layouts
|
||||||
|
import Quickshell
|
||||||
|
import Quickshell.Services.UPower
|
||||||
|
import Quickshell.Services.Pipewire
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
id: root
|
||||||
|
property PwNode defaultSpeaker: Pipewire.preferredDefaultAudioSink
|
||||||
|
property PwNode defaultMic: Pipewire.defaultAudioSource
|
||||||
|
|
||||||
|
PwObjectTracker {
|
||||||
|
objects: [root.defaultSpeaker, root.defaultMic]
|
||||||
|
}
|
||||||
|
visible: root.defaultSpeaker.audio.muted || root.defaultMic.audio.muted
|
||||||
|
implicitHeight: 20
|
||||||
|
implicitWidth: content.width
|
||||||
|
color: Colors.backgroundAlt
|
||||||
|
Layout.alignment: Qt.AlignCenter
|
||||||
|
radius: 3.5
|
||||||
|
RowLayout {
|
||||||
|
id: content
|
||||||
|
height: 20
|
||||||
|
anchors.centerIn: parent
|
||||||
|
Text {
|
||||||
|
id: speaker
|
||||||
|
text: root.defaultSpeaker.audio.muted ? "muted" : "unmuted"
|
||||||
|
color: Colors.textPrimary
|
||||||
|
}
|
||||||
|
Text {
|
||||||
|
id: mic
|
||||||
|
text: root.defaultMic.audio.muted ? "muted" : "unmuted"
|
||||||
|
color: Colors.textPrimary
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,73 @@
|
|||||||
|
// 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: 0
|
||||||
|
rightMargin: 0
|
||||||
|
}
|
||||||
|
RowLayout {
|
||||||
|
// Left
|
||||||
|
Layout.alignment: Qt.AlignLeft
|
||||||
|
// To make sure no children mess with the height of all the other children.
|
||||||
|
// because if one widget is too height, it'll ofset all the other children in the bar
|
||||||
|
Layout.preferredHeight: 20
|
||||||
|
Workspaces {}
|
||||||
|
}
|
||||||
|
RowLayout {
|
||||||
|
// Center
|
||||||
|
Layout.alignment: Qt.AlignCenter
|
||||||
|
Layout.preferredHeight: 20
|
||||||
|
}
|
||||||
|
RowLayout {
|
||||||
|
// Right
|
||||||
|
Layout.alignment: Qt.AlignRight
|
||||||
|
Layout.preferredHeight: 20
|
||||||
|
// spacing: 100
|
||||||
|
spacing: 10
|
||||||
|
Audio {}
|
||||||
|
BatteryWidget {}
|
||||||
|
Rectangle {
|
||||||
|
implicitWidth: clockText.width
|
||||||
|
implicitHeight: clockText.height
|
||||||
|
radius: 3.5
|
||||||
|
|
||||||
|
color: Colors.backgroundAlt
|
||||||
|
|
||||||
|
Layout.alignment: Qt.AlignCenter
|
||||||
|
Text {
|
||||||
|
id: clockText
|
||||||
|
color: Colors.textPrimary
|
||||||
|
font: "CaskaydiaCove NFM"
|
||||||
|
text: Clock.time
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
import QtQuick
|
||||||
|
import QtQuick.Layouts
|
||||||
|
import Quickshell
|
||||||
|
import Quickshell.Services.UPower
|
||||||
|
|
||||||
|
RowLayout {
|
||||||
|
id: content
|
||||||
|
height: 20
|
||||||
|
anchors.centerIn: root
|
||||||
|
visible: UPower.displayDevice.percentage != 0
|
||||||
|
property string charging: UPower.displayDevice.state == UPowerDeviceState.Charging ? "Charging.." : ""
|
||||||
|
Rectangle {
|
||||||
|
implicitHeight: text.height
|
||||||
|
implicitWidth: text.width
|
||||||
|
color: Colors.backgroundAlt
|
||||||
|
Layout.alignment: Qt.AlignCenter
|
||||||
|
radius: 3.5
|
||||||
|
Text {
|
||||||
|
id: text
|
||||||
|
property int power: UPower.displayDevice.percentage * 100
|
||||||
|
anchors.centerIn: parent
|
||||||
|
text: charging + " " + power + "%"
|
||||||
|
color: Colors.textPrimary
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,109 @@
|
|||||||
|
pragma Singleton
|
||||||
|
import QtQuick 2.15
|
||||||
|
|
||||||
|
// Gruvbox Dark — base24 QML singleton
|
||||||
|
// Notes:
|
||||||
|
// - This is a template for a "base24" palette. Replace the baseNN hex values
|
||||||
|
// with your exact base24 values if you have them.
|
||||||
|
// - Semantic aliases (background, textPrimary, accentBlue, etc.) map to the
|
||||||
|
// palette entries and make QML usage easier.
|
||||||
|
|
||||||
|
// "Thanks CoPilot" - Doloro
|
||||||
|
|
||||||
|
QtObject {
|
||||||
|
id: gruvbox
|
||||||
|
|
||||||
|
// ---- Base24 palette (base00 .. base23) ----
|
||||||
|
// Replace these hex values with exact ones from the base24 palette if needed.
|
||||||
|
property color base00: "#1d2021" // darkest background
|
||||||
|
property color base01: "#282828"
|
||||||
|
property color base02: "#32302f"
|
||||||
|
property color base03: "#3c3836"
|
||||||
|
property color base04: "#504945"
|
||||||
|
property color base05: "#665c54"
|
||||||
|
property color base06: "#7c6f64"
|
||||||
|
property color base07: "#928374"
|
||||||
|
property color base08: "#bdae93"
|
||||||
|
property color base09: "#d5c4a1"
|
||||||
|
property color base10: "#ebdbb2" // main foreground
|
||||||
|
property color base11: "#fbf1c7"
|
||||||
|
property color base12: "#cc241d" // red
|
||||||
|
property color base13: "#d65d0e" // orange
|
||||||
|
property color base14: "#d79921" // yellow
|
||||||
|
property color base15: "#98971a" // green
|
||||||
|
property color base16: "#689d6a" // aqua/green
|
||||||
|
property color base17: "#8ec07c" // light aqua
|
||||||
|
property color base18: "#458588" // blue
|
||||||
|
property color base19: "#b16286" // purple
|
||||||
|
property color base20: "#a89984" // muted
|
||||||
|
property color base21: "#7c6f64" // subtle
|
||||||
|
property color base22: "#504945"
|
||||||
|
property color base23: "#282828" // repeat or very dark
|
||||||
|
|
||||||
|
// ---- Semantic aliases (use these in your QML components) ----
|
||||||
|
property color background: base00
|
||||||
|
property color backgroundAlt: base01
|
||||||
|
property color surface: base02
|
||||||
|
property color surfaceAlt: base03
|
||||||
|
|
||||||
|
property color textPrimary: base10
|
||||||
|
property color textSecondary: base06
|
||||||
|
property color textDisabled: base04
|
||||||
|
property color border: base05
|
||||||
|
property color muted: base20
|
||||||
|
|
||||||
|
// accents
|
||||||
|
property color accentRed: base12
|
||||||
|
property color accentOrange: base13
|
||||||
|
property color accentYellow: base14
|
||||||
|
property color accentGreen: base15
|
||||||
|
property color accentAqua: base16
|
||||||
|
property color accentLightAqua: base17
|
||||||
|
property color accentBlue: base18
|
||||||
|
property color accentPurple: base19
|
||||||
|
|
||||||
|
// Example semantic levels for UI elements
|
||||||
|
property color windowBackground: background
|
||||||
|
property color panelBackground: surface
|
||||||
|
property color cardBackground: surfaceAlt
|
||||||
|
property color primaryText: textPrimary
|
||||||
|
property color secondaryText: textSecondary
|
||||||
|
property color highlight: accentBlue
|
||||||
|
property color danger: accentRed
|
||||||
|
property color success: accentGreen
|
||||||
|
property color warning: accentYellow
|
||||||
|
|
||||||
|
// ---- Helper function ----
|
||||||
|
// Returns a color by semantic name (string). Useful for dynamic lookups.
|
||||||
|
function colorFor(name) {
|
||||||
|
switch (name) {
|
||||||
|
case "background":
|
||||||
|
return gruvbox.background;
|
||||||
|
case "panelBackground":
|
||||||
|
return gruvbox.panelBackground;
|
||||||
|
case "cardBackground":
|
||||||
|
return gruvbox.cardBackground;
|
||||||
|
case "primaryText":
|
||||||
|
return gruvbox.primaryText;
|
||||||
|
case "secondaryText":
|
||||||
|
return gruvbox.secondaryText;
|
||||||
|
case "highlight":
|
||||||
|
return gruvbox.highlight;
|
||||||
|
case "danger":
|
||||||
|
return gruvbox.danger;
|
||||||
|
case "success":
|
||||||
|
return gruvbox.success;
|
||||||
|
case "warning":
|
||||||
|
return gruvbox.warning;
|
||||||
|
case "accentBlue":
|
||||||
|
return gruvbox.accentBlue;
|
||||||
|
case "accentRed":
|
||||||
|
return gruvbox.accentRed;
|
||||||
|
case "accentGreen":
|
||||||
|
return gruvbox.accentGreen;
|
||||||
|
default:
|
||||||
|
// fallback to primary text if unknown
|
||||||
|
return gruvbox.textPrimary;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
// Time.qml
|
||||||
|
pragma Singleton
|
||||||
|
|
||||||
|
import Quickshell
|
||||||
|
import QtQuick
|
||||||
|
import Quickshell.Hyprland
|
||||||
|
|
||||||
|
Singleton {
|
||||||
|
id: root
|
||||||
|
|
||||||
|
function getHyprlandWorkspaceById(id) {
|
||||||
|
for (var x of Hyprland.workspaces.values) {
|
||||||
|
if (x.id == id) {
|
||||||
|
return x;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,69 @@
|
|||||||
|
// Bar.qml
|
||||||
|
import Quickshell
|
||||||
|
import Quickshell.Io
|
||||||
|
import QtQuick
|
||||||
|
import QtQuick.Layouts
|
||||||
|
import Quickshell.Hyprland
|
||||||
|
|
||||||
|
Item {
|
||||||
|
id: root
|
||||||
|
width: row.width
|
||||||
|
height: row.height
|
||||||
|
RowLayout {
|
||||||
|
id: row
|
||||||
|
height: 15
|
||||||
|
Repeater {
|
||||||
|
id: repeater
|
||||||
|
model: 10
|
||||||
|
delegate: Item {
|
||||||
|
id: content
|
||||||
|
required property int index
|
||||||
|
property bool focused: HyprlandHelpers.getHyprlandWorkspaceById(index + 1).focused
|
||||||
|
property bool exists: HyprlandHelpers.getHyprlandWorkspaceById(index + 1) ? true : false
|
||||||
|
state: focused ? "FOCUSED" : (exists ? "EXISTS" : "NOT")
|
||||||
|
states: [
|
||||||
|
State {
|
||||||
|
name: "FOCUSED"
|
||||||
|
PropertyChanges {
|
||||||
|
target: content
|
||||||
|
implicitWidth: 10
|
||||||
|
scale: 1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
State {
|
||||||
|
name: "EXISTS"
|
||||||
|
PropertyChanges {
|
||||||
|
target: content
|
||||||
|
implicitWidth: 10
|
||||||
|
scale: 0.85
|
||||||
|
}
|
||||||
|
},
|
||||||
|
State {
|
||||||
|
name: "NOT"
|
||||||
|
PropertyChanges {
|
||||||
|
target: content
|
||||||
|
implicitWidth: 10
|
||||||
|
scale: 0.75
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
height: 15
|
||||||
|
Rectangle {
|
||||||
|
implicitWidth: parent.width
|
||||||
|
implicitHeight: parent.height
|
||||||
|
radius: 2.5
|
||||||
|
color: {
|
||||||
|
if (HyprlandHelpers.getHyprlandWorkspaceById(index + 1) != null) {
|
||||||
|
if (HyprlandHelpers.getHyprlandWorkspaceById(index + 1).focused) {
|
||||||
|
return Colors.primaryText;
|
||||||
|
}
|
||||||
|
return Colors.textSecondary;
|
||||||
|
} else {
|
||||||
|
return Colors.textDisabled;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
/nix/store/ynim9hhkc1smj1h2plrw3ap978dlm3qj-home-manager-files/.config/quickshell/main
|
||||||
@@ -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 {}
|
||||||
|
}
|
||||||
@@ -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
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,74 @@
|
|||||||
|
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+IFgyNTUxOSBiZC9ZVlY2T0tXdy90b2hV
|
||||||
|
dDUxUjNyMjllQStaa0tKRy9YVkNIdFJyWTI4CitYNnhxN3JHQ3lsWXp2Tmgwek9n
|
||||||
|
Qzk1RUExZk5WcnlvUWptcmFQTFJNbWMKLS0tIFBtSkJOZUovTUxYeFZ3cnJ2Ukw0
|
||||||
|
MkVQY3h2OGhGaGNnYkVJUU1kK3F3VWMKs9B74KovGxx8KL5q/lGA/imVRM/i3mo/
|
||||||
|
a6Rbxufscp3WWGMbo70w8tWuRsAnIpUGh3EvWCekZ9nOzeMiVA8I2Q==
|
||||||
|
-----END AGE ENCRYPTED FILE-----
|
||||||
|
- recipient: age1e6vws55p0g23qzthm4qa93hpt6lqmck6670gkygph0sc0j7my4uq5wqjfh
|
||||||
|
enc: |
|
||||||
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB0dXJzYndvSC92aElvTVpz
|
||||||
|
SUtTOWFzcUJxOHVrTk5scm5tcGkzRmEvK1hVClNVbmp3ZjBRTW5ZNXVNNGh3dSti
|
||||||
|
RzdCcTFlVlBld1kwNnR6dVhtcllVMFkKLS0tIG1YK2dLcWdVU3dLUFFlOUtzb3Ex
|
||||||
|
Tk5Zd0h3OHRpQzZjazJKUStPUVdERzQKGnoKYKq7pPJUrcAWJ4/tm8mSxuthjssz
|
||||||
|
7IsjH4t6VCyug2c7XnLJpcE64yPD+GrXHYixP0r2qj80WMjpv7N7qA==
|
||||||
|
-----END AGE ENCRYPTED FILE-----
|
||||||
|
- recipient: age1x3lahhkefkap67cdmdjcqaxan9hp62er78akr79v9m73nvgugpeqk0y32a
|
||||||
|
enc: |
|
||||||
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBLbGQ3MkVCUldqa3dYRTg0
|
||||||
|
NjVoUDdIc0RvSU02R0o0ZVk4KzVQMkZmeXpjClJaUUU3WTJVQmJkRzV4UTc3bXFI
|
||||||
|
dmJsV0VhNmdvdVNaaUFTNWcwd1l3eGsKLS0tIG1Gc3FlNVduaXUybUFnSGF4T3lu
|
||||||
|
QzhtM3V3VGFzdk9UenV6akxGNDh5d3cKdIKNPvM0GRJamiS4AXRNU+TbuZUnM6K7
|
||||||
|
FtC1dmHlyU/tXlFHv6TNlMZQtDgIVnE72Jvk48maq3oKiJAXWk11fg==
|
||||||
|
-----END AGE ENCRYPTED FILE-----
|
||||||
|
- recipient: age1exzngtk4d9vcsmcq6ap5xx3ca9qacqjkrv86ymged7msx9z6vfyqsf5sjq
|
||||||
|
enc: |
|
||||||
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBoOHlRcnRwWUYwUGRSVW9s
|
||||||
|
cmdDZjN1RGFRVWtlODBudGpaemd3UDBZcnhRCksyWlk3VW91a3pnOGNQQVppM09z
|
||||||
|
Wmd3c09LK25OVGpJYWxvcm9XME03RG8KLS0tIEZkdERHZjhFWXkzZWNsM01nQmRs
|
||||||
|
bWFTMlhCL2IrZjlEOUFydmE4cHBzSmMKhIk8TZtRsIFKzopZCyp27SWYeHmf6jKn
|
||||||
|
VoIXQ6/VRRQjCYBsseZE5N+ycnr4ZC/RpXJ577G4TfGMCcixX67AfA==
|
||||||
|
-----END AGE ENCRYPTED FILE-----
|
||||||
|
- recipient: age1fw4xnh2q52juce94ffn54js708cr6umfwpv0mykuddkea7kr4f0q7a9h05
|
||||||
|
enc: |
|
||||||
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBuTG9LKzVvUjZEZ1lkMVJN
|
||||||
|
eldHSkRXQ241bnZmbHBmSXFNMU1seGcyaVNRCjNPaS9ITEJtdGRwOENDRytEMFk1
|
||||||
|
L3cvVnRsa2lYUk1hOWZCdDNqT3F3TU0KLS0tIFQ3cU5YNEszQm03ZXFxWkJ2VVVW
|
||||||
|
WTR2RU9GUVdsZHdleW1Gd2lyRENzSm8KznMUQ6Ah8O03AzZcCXgUIjjrV1cdkAnq
|
||||||
|
Pbr2BwdLzJvlF5lzmymIZEt35euv/HzhJGWDLWGpYJmYj/N8qZgBuA==
|
||||||
|
-----END AGE ENCRYPTED FILE-----
|
||||||
|
- recipient: age1pa8cecxaw4y4zea6zjnt0k0mz38g4qunmp6trwy5fvdvw88ttcgsv2dgrv
|
||||||
|
enc: |
|
||||||
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAxSDNMRlNaMXB2ZXBPTlNu
|
||||||
|
eG5BWE5xRTNnVUFtN2psUFVHejZVbFVCQTBFCkRXQitoL0VJaXZmMlI3Q0JHVWk1
|
||||||
|
Zk1wR0loMVZLbytDdTE2Ky94eGljS0EKLS0tIHFxVGYrZlVVS3FsWENUdzRaVzVY
|
||||||
|
Q0x4bDFBTzV2L0E3UXQxMUdubVJZRTgKcPQZ9zHQAFwP/Odnh5INleUsHSN06U+x
|
||||||
|
X98535uapyJR/Wswxj6ukdciMOou8cLfOInLwJgWOf6mZklEhecVXA==
|
||||||
|
-----END AGE ENCRYPTED FILE-----
|
||||||
|
- recipient: age1kc0xu0ue2nrrr7w4gam7wlzackv8jv243rxwwndgxjqklgtnp5csdtpgzp
|
||||||
|
enc: |
|
||||||
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBTaE1mUUlyVUxKQmhPMnlT
|
||||||
|
eS81cE5TeE1WWFVIRkdWT3c0ckhNMnFYZGxrCnp4My9nK20zcGVxUFZ0cnVVTDBS
|
||||||
|
QWtIQmVnM1lRV1ZtVXNGQ0dGdXNyOWsKLS0tIGIwM0JMM0JlZjBNaUQycEdudGlU
|
||||||
|
bzJvaUg2VkFrazBoWmlIY2hKeUdhTjQKbgW+ysm3TWBKfVoKAeqvaPio29SyzjJP
|
||||||
|
61QsSqCuJyEwSPpOzeWa5NChcCjitOUG1jEMsSHlpIslKA1P7g/P9g==
|
||||||
|
-----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
|
||||||
@@ -0,0 +1,71 @@
|
|||||||
|
namedotcom_api__key: fbf0bc2133da020b64bbe9c884f616afe59dfdf7
|
||||||
|
test: test
|
||||||
|
sops:
|
||||||
|
age:
|
||||||
|
- recipient: age1ykcy2r4kk729e7adqxu8s24ujc60z5eux7ma0ca4ruzydwgm5p6qmdp838
|
||||||
|
enc: |
|
||||||
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBaU0s5VEszVDU4UlE2MDRi
|
||||||
|
eXBGNXU1Si9TZng4U1lrSjMvajQ2WmhIQkgwCitjM2owU0kwTXlGNy90ZHM3TEhY
|
||||||
|
ZmlnSUtZcXFCUkdCNmxsL0lDWHIwQXMKLS0tIEtaWGVCbWJKOHl0SW5EUWVqRWgz
|
||||||
|
bUI2bFdONHBIMTA4Rks4dytIK0NSZmsK6gzcg+iYzt01tnptnuSGXHqBt+T9o9hP
|
||||||
|
0gqLXgsfB+4OxRoMJVMEyecz9SX5+j6sWNQoRVQY1CGJoIucrpFrpg==
|
||||||
|
-----END AGE ENCRYPTED FILE-----
|
||||||
|
- recipient: age1e6vws55p0g23qzthm4qa93hpt6lqmck6670gkygph0sc0j7my4uq5wqjfh
|
||||||
|
enc: |
|
||||||
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBmTlN4YlBnTS93ZTh2STFr
|
||||||
|
Nng0YTNmeEw2N0ZXV0N0VVJaQjh4bldNS2xjCnYyMWxOb2hiR0Vwb1FXNmh6eitE
|
||||||
|
N1BMWFpXNElyNkJQNGJ6NUFzT3VOOVEKLS0tIG5MUXgzMEpMWGVGVnBubmRVM0hr
|
||||||
|
QjdQUkoyWHE2M05nSkZXNWpBTXdnN2cKEB3JndFHK/bFMx7zf3y/wfEALJIDO85u
|
||||||
|
RCKs6jIAztc3ElNDaKsIYRoF1VmrQSOvpk5ZJ1NytFcetNXvOR1KXw==
|
||||||
|
-----END AGE ENCRYPTED FILE-----
|
||||||
|
- recipient: age1x3lahhkefkap67cdmdjcqaxan9hp62er78akr79v9m73nvgugpeqk0y32a
|
||||||
|
enc: |
|
||||||
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB6dDVCcHlKT1hVYUh5bXVk
|
||||||
|
cGtZWExJWlQxOVNDWkwrWU9hTi9iT2RLVW5RCjEveHczRDVsWkIyRWIvMTEzRyt6
|
||||||
|
ZWkzUDhqMVZjT1VKM0tvWjlEdy9DZGsKLS0tIDB0T1gyaTZ6a1JIaGF3dVhEcmdZ
|
||||||
|
Yzl6QnAyU3l0QkhJQVpTN1ovY1hEUXMKiEPWh4isOmF2MdU6ENPNmwQgAOV7PleP
|
||||||
|
88PLtUx2K6VKjWPIHknIZ5esoXPVjJXeawDAdSj4gz91A1DrcrYXWA==
|
||||||
|
-----END AGE ENCRYPTED FILE-----
|
||||||
|
- recipient: age1exzngtk4d9vcsmcq6ap5xx3ca9qacqjkrv86ymged7msx9z6vfyqsf5sjq
|
||||||
|
enc: |
|
||||||
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAwdXcwejJSejkwT3BuSURo
|
||||||
|
MEluK3plUVdmVG8wcmw3SkI2dThBd1FOZDJzCmg2cHRZMEZIWENiTWdvdWtveTY2
|
||||||
|
TlN3MkhPT0N4enN3RlBJbWNUK1N0QXMKLS0tIEFOT2J6VlpLWmduK2pWalIvOWNo
|
||||||
|
NFhiM1lWcExhcXBrZm8rMzc5WXJoeDAKSXHnzBymsLhXaxHipZig+xfpBjYaADu/
|
||||||
|
AqOXpfLbZQD15oIMg8+vNR2OOzqRRSq8oY2yI1rhkjZtlTxGiuzANw==
|
||||||
|
-----END AGE ENCRYPTED FILE-----
|
||||||
|
- recipient: age1fw4xnh2q52juce94ffn54js708cr6umfwpv0mykuddkea7kr4f0q7a9h05
|
||||||
|
enc: |
|
||||||
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBUMUhGMURUdzh4MFgzNDlC
|
||||||
|
Nzh0UW5WNUh1MDhEQnBod2E5OEVqMmhiTVVrCitmbk1uWkY5Q09COGZRZ2xhNXBl
|
||||||
|
bnlVUmxDb2FQT0xPN0F3SkgyTVRpWjgKLS0tIGdWN1ptVTlhNUZtTU11VDFMSFlM
|
||||||
|
djVyTzMyRHA1QnlvdEtaNE5URXVDS00KH+9tHTwQqI7uLubVWfU1IZ19WWDPA9Br
|
||||||
|
HrnX4nn0AITQCWUkAqWVyGVP5pk5YmlmazLE6xyBz+i2ETT11DHVMw==
|
||||||
|
-----END AGE ENCRYPTED FILE-----
|
||||||
|
- recipient: age1pa8cecxaw4y4zea6zjnt0k0mz38g4qunmp6trwy5fvdvw88ttcgsv2dgrv
|
||||||
|
enc: |
|
||||||
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB2ZGJ4bWNsR0tOa0g5Ym1M
|
||||||
|
UTJlRS9XRnNaOVBOd3dkS0tmaVJlZU5yd2xVClR0WU1nTnZud0RzeHZERUFRYzRE
|
||||||
|
bmp1OXorQ09LRzZyUEs1SXlvenZIOVkKLS0tIHBvakxTSTkxZXdBQmpVRWF5YUtF
|
||||||
|
QnBNcU1ibytoNDZCU1lldzczV0xjUzgK6gIlN6PYv8+ZGhdMuOSVHIkzZ9sU5kvI
|
||||||
|
ZpB+JirAJzFpYEz2IyT21XKNq9phqyj9lzzinvJQQ7wxsI6ixaiBDQ==
|
||||||
|
-----END AGE ENCRYPTED FILE-----
|
||||||
|
- recipient: age1kc0xu0ue2nrrr7w4gam7wlzackv8jv243rxwwndgxjqklgtnp5csdtpgzp
|
||||||
|
enc: |
|
||||||
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB6NVU4dUR2Y3hXbWdrdXNN
|
||||||
|
Rjh4VEE2M1NiTTZiWmpjVXQzSGxSS0l3a1I4Ci95ZUVhbTFtTHNLa3BvRnJRUjda
|
||||||
|
aVIyREZiL1phNU16OERZSDBvRGovVVUKLS0tIHpGdkh1L280TVp1MnE0L1Q1Z3FV
|
||||||
|
QnNTaHVsSVh2UmNRVzZ3a082ZjRRbmcKgjnhtWweNUAbmxpb+nN3iL9FOsaXCatu
|
||||||
|
NyS4pTov3WR9c7SLhDLlbqxeeqd7mBDKLhWiuqiW05J5NQ+g5lXf7g==
|
||||||
|
-----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
|
||||||
@@ -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;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -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" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -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
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
{
|
||||||
|
den,
|
||||||
|
modules,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
flake-file.inputs = {
|
||||||
|
spicetify-nix.url = "github:Gerg-L/spicetify-nix";
|
||||||
|
};
|
||||||
|
modules.spotify = {
|
||||||
|
homeManager =
|
||||||
|
{ pkgs, ... }:
|
||||||
|
let
|
||||||
|
spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.stdenv.system};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
# Example for NixOS
|
||||||
|
inputs.spicetify-nix.homeManagerModules.spicetify
|
||||||
|
];
|
||||||
|
programs.spicetify = {
|
||||||
|
enable = true;
|
||||||
|
enabledExtensions = with spicePkgs.extensions; [
|
||||||
|
adblockify
|
||||||
|
hidePodcasts
|
||||||
|
shuffle # shuffle+ (special characters are sanitized out of extension names)
|
||||||
|
];
|
||||||
|
theme = spicePkgs.themes.onepunch;
|
||||||
|
colorScheme = "dark";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
{ den, modules, ... }:
|
||||||
|
{
|
||||||
|
modules.ssh = {
|
||||||
|
homeManager =
|
||||||
|
{ home, ... }:
|
||||||
|
{
|
||||||
|
programs = {
|
||||||
|
ssh = {
|
||||||
|
enable = true;
|
||||||
|
enableDefaultConfig = false;
|
||||||
|
matchBlocks = {
|
||||||
|
"*" = {
|
||||||
|
addKeysToAgent = "yes";
|
||||||
|
identityFile = [
|
||||||
|
"~/.ssh/id_ed25519"
|
||||||
|
"~/.ssh/id_gitea_scug"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
{
|
||||||
|
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 ];
|
||||||
|
gtk.gtk4.theme = null;
|
||||||
|
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 = false;
|
||||||
|
stylix.autoEnable = false;
|
||||||
|
stylix.base16Scheme = "${pkgs.base16-schemes}/share/themes/gruvbox-dark-hard.yaml";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
{
|
||||||
|
den,
|
||||||
|
modules,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
flake-file.inputs = {
|
||||||
|
x1e-kernel.url = "git+https://git.scug.io/doloro/x1e-nixos.git?ref=bump-7.1-rc1";
|
||||||
|
};
|
||||||
|
modules.surface-patches = {
|
||||||
|
nixos =
|
||||||
|
{ pkgs, lib, ... }:
|
||||||
|
{
|
||||||
|
imports = with inputs; [
|
||||||
|
x1e-kernel.nixosModules.default
|
||||||
|
];
|
||||||
|
|
||||||
|
x1e.model = "15"; # "13" (default) or "15" — selects the correct DTB
|
||||||
|
x1e.cpuParking = false; # loads cpu_parking at boot
|
||||||
|
x1e.ecReboot = true; # loads ec_reboot at boot, exposes /sys/kernel/ec_reboot/reboot
|
||||||
|
|
||||||
|
# Prevent reboot hang - qcom_smd_qrtr workers stuck in D-state
|
||||||
|
systemd.settings.Manager.DefaultTimeoutStopSec = "15s";
|
||||||
|
systemd.settings.Manager.DefaultDeviceTimeoutSec = "15s";
|
||||||
|
|
||||||
|
# Hardware watchdog (SBSA Generic Watchdog) as safety net
|
||||||
|
systemd.settings.Manager = {
|
||||||
|
KExecWatchdogSec = "30s";
|
||||||
|
RebootWatchdogSec = "30s";
|
||||||
|
RuntimeWatchdogSec = "30s";
|
||||||
|
};
|
||||||
|
|
||||||
|
# Override udevd stop timeout (D-state workers can't be killed)
|
||||||
|
systemd.services.systemd-udevd.serviceConfig.TimeoutStopSec = lib.mkForce "10s";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -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
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
{ 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 --greeting 'meow meow meow' --time";
|
||||||
|
user = "greeter";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
systemd.services.greetd.serviceConfig = {
|
||||||
|
Type = "idle";
|
||||||
|
StandardInput = "tty";
|
||||||
|
StandardOutput = "tty";
|
||||||
|
StandardError = "journal"; # Without this errors will spam on screen
|
||||||
|
# Without these bootlogs will spam on screen
|
||||||
|
TTYReset = true;
|
||||||
|
TTYVHangup = true;
|
||||||
|
TTYVTDisallocate = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
{ modules, ... }:
|
||||||
|
{
|
||||||
|
modules.user.groups =
|
||||||
|
{ config, user, ... }:
|
||||||
|
{
|
||||||
|
nixos = {
|
||||||
|
users.users.${user.userName} = {
|
||||||
|
extraGroups = [
|
||||||
|
"wheel"
|
||||||
|
"networkmanager"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,93 @@
|
|||||||
|
{
|
||||||
|
den,
|
||||||
|
modules,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
flake-file.inputs = {
|
||||||
|
zen-browser.url = "github:youwen5/zen-browser-flake";
|
||||||
|
zen-browser.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
modules.zen-browser = settings: {
|
||||||
|
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
|
||||||
|
{
|
||||||
|
wayland.windowManager.hyprland.settings = lib.mkIf settings.default {
|
||||||
|
bind = [
|
||||||
|
"$mainMod, E, exec, zen"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
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";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
)
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -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
Generated
+660
-386
File diff suppressed because it is too large
Load Diff
@@ -1,145 +1,51 @@
|
|||||||
|
# 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?ref=8101ec865c0bf4027d40b9fd8951e3e435a86d64";
|
||||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
disko.url = "github:nix-community/disko";
|
||||||
|
flake-file.url = "github:vic/flake-file";
|
||||||
|
flake-parts = {
|
||||||
|
url = "github:hercules-ci/flake-parts";
|
||||||
|
inputs.nixpkgs-lib.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
font-patcher.url = "github:Doloro1978/nix-nerd-fonts-patcher";
|
||||||
|
heliumFlake = {
|
||||||
|
url = "github:vikingnope/helium-browser-nix-flake";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
home-manager = {
|
home-manager = {
|
||||||
url = "github:nix-community/home-manager";
|
url = "github:nix-community/home-manager";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
nixos-wsl.url = "github:nix-community/NixOS-WSL/main";
|
|
||||||
nix-meow.url = "git+https://git.scug.io/nikkuss/nix-meow.git"; # config manager, meow'd
|
|
||||||
hyprland.url = "github:hyprwm/Hyprland";
|
hyprland.url = "github:hyprwm/Hyprland";
|
||||||
rsRPC.url = "github:Doloro1978/rsRPC";
|
import-tree.url = "github:vic/import-tree";
|
||||||
quickshell = {
|
nik-pkgs = {
|
||||||
url = "git+https://git.outfoxxed.me/outfoxxed/quickshell";
|
url = "git+https://git.scug.io/nikkuss/pkgs.git";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
nikkuss-pkgs = {
|
niri-flake = {
|
||||||
url = "git+https://git.scug.io/nikkuss/pkgs";
|
url = "github:sodiboo/niri-flake";
|
||||||
# inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
nix-cachyos-kernel.url = "github:xddxdd/nix-cachyos-kernel/release";
|
||||||
|
nixpkgs.url = "https://channels.nixos.org/nixpkgs-unstable/nixexprs.tar.xz";
|
||||||
|
nixvim.url = "github:nix-community/nixvim";
|
||||||
|
raspberry-pi-nix.url = "github:nix-community/raspberry-pi-nix";
|
||||||
sops-nix = {
|
sops-nix = {
|
||||||
url = "github:Mic92/sops-nix";
|
url = "github:Mic92/sops-nix";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
disko = {
|
spicetify-nix.url = "github:Gerg-L/spicetify-nix";
|
||||||
url = "github:nix-community/disko/latest";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
stylix = {
|
stylix = {
|
||||||
url = "github:nix-community/stylix";
|
url = "github:nix-community/stylix";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
neovim-nightly-overlay.url = "github:nix-community/neovim-nightly-overlay";
|
x1e-kernel.url = "git+https://git.scug.io/doloro/x1e-nixos.git?ref=bump-7.1-rc1";
|
||||||
nixvim = {
|
zen-browser = {
|
||||||
url = "github:nix-community/nixvim";
|
url = "github:youwen5/zen-browser-flake";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
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";
|
|
||||||
};
|
};
|
||||||
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 { };
|
|
||||||
}
|
|
||||||
)
|
|
||||||
];
|
|
||||||
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 = [
|
|
||||||
(mkHost {
|
|
||||||
hardware = "doloro";
|
|
||||||
host = "doloro";
|
|
||||||
system = "x86_64-linux";
|
|
||||||
stateVersion = "25.05";
|
|
||||||
nixpkgsConfig = {
|
|
||||||
rocmSupport = false;
|
|
||||||
cudaSupport = true;
|
|
||||||
};
|
|
||||||
})
|
|
||||||
(mkHost {
|
|
||||||
hardware = "doloro-wsl";
|
|
||||||
host = "doloro-wsl";
|
|
||||||
system = "aarch64-linux";
|
|
||||||
stateVersion = "25.05";
|
|
||||||
nixpkgsConfig = {
|
|
||||||
rocmSupport = false;
|
|
||||||
};
|
|
||||||
})
|
|
||||||
(mkHost {
|
|
||||||
hardware = "doloro-laptop";
|
|
||||||
host = "doloro-laptop";
|
|
||||||
system = "x86_64-linux";
|
|
||||||
stateVersion = "25.11";
|
|
||||||
nixpkgsConfig = {
|
|
||||||
rocmSupport = false;
|
|
||||||
};
|
|
||||||
})
|
|
||||||
];
|
|
||||||
in
|
|
||||||
(utils.deepMerge configurations);
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,62 +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,18 +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,2 +0,0 @@
|
|||||||
{...}: {
|
|
||||||
}
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
{ ... }:
|
|
||||||
{
|
|
||||||
}
|
|
||||||
@@ -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,152 +0,0 @@
|
|||||||
{
|
|
||||||
inputs,
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
fetchFromGitHub,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
# imports = [
|
|
||||||
# ../../modules/hyprland/home.nix
|
|
||||||
# ../../modules/quickshell/home.nix
|
|
||||||
# ../../modules/chromium/home.nix
|
|
||||||
# #./modules/neovim/home.nix
|
|
||||||
# ../../modules/stylix/home.nix
|
|
||||||
# ../../modules/nixvim/home.nix
|
|
||||||
# ../../modules/tmux/home.nix
|
|
||||||
# ../../modules/theme/home.nix
|
|
||||||
# # ./modules/spicetify/home.nix
|
|
||||||
# ../../modules/obs/home.nix
|
|
||||||
# ../../modules/blender/home.nix
|
|
||||||
# ../../modules/fish/home.nix
|
|
||||||
# ../../modules/ytm/home.nix
|
|
||||||
# ../../overlays.nix
|
|
||||||
# ];
|
|
||||||
modules = {
|
|
||||||
Hyprland.enable = true;
|
|
||||||
quickshell.enable = true;
|
|
||||||
# chromium.enable = true;
|
|
||||||
wivrn.enable = true;
|
|
||||||
helium.enable = true;
|
|
||||||
nixvim.enable = true;
|
|
||||||
helix.enable = false;
|
|
||||||
stylix.enable = true;
|
|
||||||
tmux.enable = true;
|
|
||||||
theme.enable = true;
|
|
||||||
obs.enable = true;
|
|
||||||
blender.enable = true;
|
|
||||||
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";
|
|
||||||
|
|
||||||
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
|
|
||||||
# (pkgs.discord.override { withVencord = true; })
|
|
||||||
# webcord-vencord
|
|
||||||
# spotify
|
|
||||||
pavucontrol
|
|
||||||
lazygit
|
|
||||||
btop
|
|
||||||
sops
|
|
||||||
alcom
|
|
||||||
gcr
|
|
||||||
qbittorrent
|
|
||||||
];
|
|
||||||
# sops.age.keyFile = "/home/doloro/.config/sops/age/key.txt";
|
|
||||||
|
|
||||||
# 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,178 +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
|
|
||||||
];
|
|
||||||
modules = {
|
|
||||||
fish.enable = true;
|
|
||||||
greetd.enable = true;
|
|
||||||
stylix.enable = true;
|
|
||||||
steam.enable = false;
|
|
||||||
Hyprland.enable = true;
|
|
||||||
wivrn.enable = false;
|
|
||||||
};
|
|
||||||
# Use the systemd-boot EFI boot loader.
|
|
||||||
boot.loader.systemd-boot.enable = true;
|
|
||||||
boot.loader.efi.canTouchEfiVariables = true;
|
|
||||||
boot.kernelPackages = pkgs.linuxPackages_latest;
|
|
||||||
|
|
||||||
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";
|
|
||||||
|
|
||||||
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"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
hardware.graphics = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
services.openssh = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
PasswordAuthentication = true;
|
|
||||||
PermitRootLogin = "prohibit-password";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
users.users.root.openssh.authorizedKeys.keys = [
|
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBaa6Z5qtBSLEz+A4fQGYPfkOISsRQlmKkVbcx2zxML7"
|
|
||||||
];
|
|
||||||
# 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;
|
|
||||||
|
|
||||||
# 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
|
|
||||||
|
|
||||||
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;
|
|
||||||
|
|
||||||
# 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
|
|
||||||
];
|
|
||||||
# initialPassword = "sex";
|
|
||||||
hashedPasswordFile = config.sops.secrets."doloro-hashed_password".path;
|
|
||||||
};
|
|
||||||
|
|
||||||
# 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
|
|
||||||
];
|
|
||||||
|
|
||||||
# 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,123 +0,0 @@
|
|||||||
{
|
|
||||||
inputs,
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
fetchFromGitHub,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
# ./modules/hyprland/home.nix
|
|
||||||
# ./modules/quickshell/home.nix
|
|
||||||
# ./modules/chromium/home.nix
|
|
||||||
#./modules/neovim/home.nix
|
|
||||||
# ./modules/stylix/home.nix
|
|
||||||
#../../modules/nixvim/home.nix
|
|
||||||
#../../modules/tmux/home.nix
|
|
||||||
#../../modules/theme/home.nix
|
|
||||||
# ./modules/spicetify/home.nix
|
|
||||||
# ./modules/obs/home.nix
|
|
||||||
# ./modules/blender/home.nix
|
|
||||||
#../../modules/fish/home.nix
|
|
||||||
# ./modules/ytm/home.nix
|
|
||||||
#../../overlays.nix
|
|
||||||
];
|
|
||||||
modules = {
|
|
||||||
nixvim.enable = true;
|
|
||||||
tmux.enable = true;
|
|
||||||
fish.enable = true;
|
|
||||||
stylix.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";
|
|
||||||
|
|
||||||
# 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.
|
|
||||||
|
|
||||||
services.gpg-agent = {
|
|
||||||
enable = true;
|
|
||||||
pinentry = {
|
|
||||||
package = pkgs.pinentry-qt;
|
|
||||||
program = "pinentry-qt";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
# The home.packages option allows you to install Nix packages into your
|
|
||||||
# environment.
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
hello
|
|
||||||
# vim
|
|
||||||
# telegram-desktop
|
|
||||||
# vesktop
|
|
||||||
# spotify
|
|
||||||
# pavucontrol
|
|
||||||
lazygit
|
|
||||||
sops
|
|
||||||
];
|
|
||||||
# sops.age.keyFile = "/home/doloro/.config/sops/age/key.txt";
|
|
||||||
|
|
||||||
# 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";
|
|
||||||
};
|
|
||||||
# {{{{{ TODO Put in different file
|
|
||||||
# }}}}}
|
|
||||||
# Let Home Manager install and manage itself.
|
|
||||||
programs = {
|
|
||||||
home-manager.enable = true;
|
|
||||||
ssh = {
|
|
||||||
enable = true;
|
|
||||||
enableDefaultConfig = false;
|
|
||||||
matchBlocks = {
|
|
||||||
"*" = {
|
|
||||||
addKeysToAgent = "yes";
|
|
||||||
identityFile = [
|
|
||||||
"~/.ssh/id_github"
|
|
||||||
"~/.ssh/id_gitea_scug_io"
|
|
||||||
"~/.ssh/id_ed25519"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,59 +0,0 @@
|
|||||||
{
|
|
||||||
inputs,
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
user,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
modules = {
|
|
||||||
fish.enable = true;
|
|
||||||
stylix.enable = true;
|
|
||||||
};
|
|
||||||
imports = [
|
|
||||||
inputs.nixos-wsl.nixosModules.default
|
|
||||||
];
|
|
||||||
# rocmSupport = false;
|
|
||||||
programs = {
|
|
||||||
dconf.enable = true;
|
|
||||||
ssh = {
|
|
||||||
startAgent = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
fonts = {
|
|
||||||
enableDefaultPackages = true;
|
|
||||||
packages = with pkgs; [
|
|
||||||
nerd-fonts.jetbrains-mono
|
|
||||||
material-design-icons
|
|
||||||
material-symbols
|
|
||||||
googlesans-code
|
|
||||||
# (inputs.font-patcher.lib.patchFont {
|
|
||||||
# font = pkgs.googlesans-code;
|
|
||||||
# name = "Google Sans Code Nerd Font";
|
|
||||||
# })
|
|
||||||
nerd-fonts.caskaydia-cove
|
|
||||||
nerd-fonts.noto
|
|
||||||
noto-fonts-cjk-sans
|
|
||||||
noto-fonts-cjk-serif
|
|
||||||
];
|
|
||||||
fontDir.enable = true;
|
|
||||||
};
|
|
||||||
networking.dhcpcd.enable = lib.mkOverride 0 false;
|
|
||||||
boot.loader.grub.enable = lib.mkOverride 0 false;
|
|
||||||
wsl = {
|
|
||||||
enable = true;
|
|
||||||
defaultUser = user;
|
|
||||||
docker-desktop.enable = false;
|
|
||||||
useWindowsDriver = true;
|
|
||||||
startMenuLaunchers = true;
|
|
||||||
usbip.enable = true;
|
|
||||||
};
|
|
||||||
nix.settings = {
|
|
||||||
experimental-features = "nix-command flakes";
|
|
||||||
};
|
|
||||||
nixpkgs.config.allowUnsupportedSystem = true;
|
|
||||||
systemd.services."user-runtime-dir@" = {
|
|
||||||
overrideStrategy = "asDropin";
|
|
||||||
unitConfig.ConditionPathExists = "!/run/user/%i";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user