Compare commits

..

85 Commits

Author SHA1 Message Date
5911da7f99 various fixes 2026-01-28 10:05:29 +00:00
d1949310c5 change(server): traefik rules 2026-01-28 10:05:29 +00:00
f83a201895 qol(laptop): huge battery optimisations 2026-01-28 00:12:26 +00:00
4ce282f378 add(nixvim): added svelte lsp 2026-01-27 19:23:35 +00:00
d2a8db4d57 rpi5 2026-01-26 12:10:24 +00:00
a4282dd9aa add: systemd resolved 2026-01-26 10:18:01 +00:00
9e4fc8ee21 clean: deleted random files 2026-01-26 10:18:01 +00:00
a31ac455cb update(laptop): using latest linux ver 2026-01-25 15:40:01 +00:00
e5230def14 changes 2026-01-25 15:37:17 +00:00
c08192ac34 qol(hyprland): added some recomeaned stuff from nixos wiki 2026-01-25 12:18:43 +00:00
05de5f2063 nix flake update 2026-01-25 12:15:05 +00:00
9ad81bb8e4 paws 2026-01-25 12:12:29 +00:00
88995ff8f5 added: niri 2026-01-25 12:12:19 +00:00
d492955c8e added.. something 2026-01-22 07:19:22 +00:00
540a0e32e4 rpi-5: awesome, it works 2026-01-22 06:38:24 +00:00
dfbc1ea5a2 bwaaa 2026-01-21 16:54:09 +00:00
d294038801 change(laptop): more batt changes... 2026-01-21 00:51:10 +00:00
f5bc2ef54f change(laptop): more batt changes 2026-01-21 00:48:51 +00:00
a7c6dc133e bwa 2026-01-20 23:52:47 +00:00
a0ba7ce382 wip(server(rpi-5)): more work.. 2026-01-20 22:47:33 +00:00
a0d8a1b0e3 wip(rpi-5): working on rpi-5 server support 2026-01-20 21:36:23 +00:00
92010eedb7 deleted: doloro-wsl 2026-01-20 13:17:48 +00:00
e35ad8eece change(quickshell): replace quickshell with nixpkgs alternative for the time being 2026-01-17 22:05:42 +00:00
2c39488719 fix(wivrn): flake update fixes 2026-01-17 22:05:19 +00:00
cf706f5d3b nix flake update 2026-01-17 21:49:51 +00:00
4440228098 change(hyprland): changes 2026-01-17 21:49:00 +00:00
99e4da91af added(fish): nos and hms with pretty output 2026-01-17 21:49:00 +00:00
6c8e15dc23 clean up(laptop/tuned) 2026-01-16 21:50:14 +00:00
ecec4b8739 did some stuff 2026-01-16 21:20:00 +00:00
4aaa0684c3 a 2026-01-15 02:35:38 +00:00
9fc9742912 mreow 2026-01-15 02:35:19 +00:00
06f32a0d38 fix(tuned/laptop): auto profile swap 2026-01-15 02:27:21 +00:00
175fd9e2d4 rework(tuned/laptop): auto profile swapping. 2026-01-15 01:40:49 +00:00
9e64a358d9 added: hytale launcher to desktop host 2026-01-14 00:11:42 +00:00
57dfdc2cab qol(base16): hex to rgb possible 2026-01-11 01:54:56 +01:00
9151cb04eb change(hyprland): active border uses base 6 2026-01-10 23:21:57 +01:00
353f449f80 added(mods): base16 mod, currently has gruvbox 2026-01-10 23:21:14 +01:00
c7f7a8f078 added(laptop): intel-gpu-tools 2026-01-07 13:24:06 +00:00
cf6cb08e8c change(laptop): changed tlp for tuneD 2026-01-07 13:23:54 +00:00
da91fdfd6d change(nixvim): changed theme 2026-01-07 13:23:40 +00:00
648245a0d8 clean(overlay): remove unused ytm overlay 2026-01-07 13:23:26 +00:00
e247eded74 fix(ytm): renamed 2026-01-07 13:23:08 +00:00
47072e20e9 added(laptop): more util program 2026-01-07 08:59:03 +00:00
dc10d3b55d qol(laptop): attempted more battery optimisations 2026-01-07 08:57:46 +00:00
d98fe007f1 added: result/ to git ignore 2026-01-07 08:57:19 +00:00
3f30db6fac mreo 2026-01-07 08:56:57 +00:00
eb0e26d456 blender shouldnt be compiled from source now 2026-01-06 20:29:51 +00:00
2b0eefad9f added: more laptop changes 2026-01-06 20:29:38 +00:00
e8d1306e02 nix flake update 2026-01-06 20:29:22 +00:00
66c6332023 fix: vesktop compile 2026-01-06 20:29:07 +00:00
07d63e38b0 laptop: power profiles 2026-01-06 16:14:04 +00:00
562513fcd6 reenabled: helium and fixed it 2026-01-05 17:53:30 +00:00
f942349dca meow 2026-01-04 20:13:33 +00:00
821f6b16da qol: changes 2026-01-04 20:13:18 +00:00
d64b22e394 laptop(npu): added support 2026-01-04 11:18:45 +00:00
95178cab63 added: hyfetch 2026-01-03 17:01:36 +00:00
28e7c64262 laptop(battery): more optimizations 2026-01-03 13:55:11 +00:00
017fc7105e laptop(battery): rfkills the wifi and bluetooth apon sleep 2026-01-03 11:59:22 +00:00
8a3c5e155a laptop(battery): power saving is more aggresive now 2026-01-02 01:33:48 +00:00
f0360d6bdb qol(hyprland): no more quickshell blur 2026-01-01 20:18:43 +00:00
9326350125 added(nixvim): typescript lsp 2025-12-31 10:11:14 +00:00
f978a84650 !qol: replaced helium with zed-browser 2025-12-30 20:34:55 +00:00
f029d5fedd a lot of work 2025-12-30 16:35:44 +00:00
a1b117c408 mod(hyprland): added wlogout layout 2025-12-29 11:29:58 +00:00
294fc0a229 mod(remoteBuilder): works 2025-12-29 11:23:55 +00:00
33b2854c19 ssh: made root able to use id file 2025-12-29 10:50:48 +00:00
db287b22eb mod(remoteBuilder): added laptop pub key to remotebuild 2025-12-29 10:28:28 +00:00
12365b3815 mod(remoteBuilder): initial passwd 2025-12-29 10:20:22 +00:00
8998dfe127 laptop: fixed something 2025-12-29 10:18:49 +00:00
4c227f6f3a secrets/sops: added laptop system 2025-12-29 10:13:32 +00:00
2204ed7e89 mod(remoteBuilder): fixed it lol 2025-12-29 09:53:16 +00:00
6c298aee35 modules: added builders 2025-12-28 23:07:51 +00:00
73e7fb50c7 secrets: reencrypted 2025-12-28 23:07:37 +00:00
19c65f7f11 sops: system key pc added 2025-12-28 23:07:24 +00:00
51ca720683 more nix flake update? 2025-12-28 23:07:07 +00:00
f55324846a nix flake update.. 2025-12-28 19:57:13 +00:00
e7a1f7a13c secrets(doloro): fixed sops not decrypting 2025-12-28 19:40:32 +00:00
1e73d7a66e sops updates 2025-12-28 17:18:45 +00:00
dad4788bef modules: added wakatime module stub 2025-12-28 17:18:25 +00:00
8ea99dc660 laptop: default sops key file 2025-12-28 16:50:53 +00:00
163dd16ad7 secrets: re-encrypted with new pubkeys 2025-12-28 16:49:59 +00:00
68d3d74540 sops: Updated Laptop pubkey 2025-12-28 16:48:00 +00:00
06f539823b qol: charging indicater should be more acurate 2025-12-28 15:10:35 +00:00
faed33b0cc bye random results file 2025-12-28 15:10:00 +00:00
faeaa62edf qol: bar has blur now 2025-12-28 05:01:18 +00:00
72 changed files with 2237 additions and 906 deletions

1
.gitignore vendored
View File

@@ -4,3 +4,4 @@ nix_file.tar.gz
nvim nvim
tmux/plugins tmux/plugins
modules/quickshell/quickshell/.qmlls.ini modules/quickshell/quickshell/.qmlls.ini
result

View File

@@ -4,5 +4,7 @@ creation_rules:
- 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: secrets/.*\.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

1024
flake.lock generated

File diff suppressed because it is too large Load Diff

100
flake.nix
View File

@@ -3,23 +3,39 @@
inputs = { inputs = {
# Specify the source of Home Manager and Nixpkgs. # Specify the source of Home Manager and Nixpkgs.
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
rpi-nixpkgs.url = "github:nvmd/nixpkgs/modules-with-keys-25.11";
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"; 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 nix-meow.url = "git+https://git.scug.io/nikkuss/nix-meow.git?ref=paws"; # config manager, meow'd
hyprland.url = "github:hyprwm/Hyprland"; hyprland.url = "github:hyprwm/Hyprland";
rsRPC.url = "github:Doloro1978/rsRPC"; rsRPC.url = "github:Doloro1978/rsRPC";
protonhax.url = "github:linusfri/protonhax-nix";
hytale-launcher.url = "github:JPyke3/hytale-launcher-nix";
quickshell = { quickshell = {
url = "git+https://git.outfoxxed.me/outfoxxed/quickshell"; url = "git+https://git.outfoxxed.me/outfoxxed/quickshell";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
heliumFlake = {
url = "github:vikingnope/helium-browser-nix-flake";
inputs.nixpkgs.follows = "nixpkgs";
};
nikkuss-pkgs = { nikkuss-pkgs = {
url = "git+https://git.scug.io/nikkuss/pkgs"; url = "git+https://git.scug.io/nikkuss/pkgs";
# inputs.nixpkgs.follows = "nixpkgs"; # inputs.nixpkgs.follows = "nixpkgs";
}; };
zen-browser = {
url = "github:0xc000022070/zen-browser-flake";
inputs = {
# IMPORTANT: we're using "libgbm" and is only available in unstable so ensure
# to have it up-to-date or simply don't specify the nixpkgs input
nixpkgs.follows = "nixpkgs";
home-manager.follows = "home-manager";
};
};
sops-nix = { sops-nix = {
url = "github:Mic92/sops-nix"; url = "github:Mic92/sops-nix";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
@@ -48,6 +64,9 @@
url = "github:Nixos/nixpkgs?rev=8fcb6f1c4948305af52d19f887b89011ee2c080d"; url = "github:Nixos/nixpkgs?rev=8fcb6f1c4948305af52d19f887b89011ee2c080d";
}; };
font-patcher.url = "github:Doloro1978/nix-nerd-fonts-patcher"; font-patcher.url = "github:Doloro1978/nix-nerd-fonts-patcher";
nixos-raspberrypi.url = "github:nvmd/nixos-raspberrypi/develop";
raspberry-pi-nix.url = "github:nix-community/raspberry-pi-nix";
niri-flake.url = "github:sodiboo/niri-flake";
}; };
outputs = outputs =
inputs@{ inputs@{
@@ -79,22 +98,50 @@
}; };
}); });
}) })
( # (
final: prev: # final: prev:
let # let
system = prev.stdenv.hostPlatform.system; # system = prev.stdenv.hostPlatform.system;
pkgs_gamescope = import inputs.nixpkgs-gamescope { # pkgs_gamescope = import inputs.nixpkgs-gamescope {
inherit system; # inherit system;
config = { # config = {
allow_unfree = true; # allow_unfree = true;
}; # };
}; # };
packageNix = "${inputs.nixpkgs-gamescope}/pkgs/by-name/ga/gamescope/package.nix"; # packageNix = "${inputs.nixpkgs-gamescope}/pkgs/by-name/ga/gamescope/package.nix";
in # in
{ # {
gamescope = pkgs_gamescope.callPackage packageNix { }; # gamescope = pkgs_gamescope.callPackage packageNix { };
} # }
) # )
# (self: super: {
# intel-npu-driver = super.intel-npu-driver.overrideAttrs (oldAttrs: rec {
# installPhase = ''
# mkdir -p $out/lib/firmware
# ${oldAttrs.installPhase}
# '';
# });
# })
(final: prev: {
vesktop = prev.vesktop.overrideAttrs (old: {
preBuild = ''
cp -r ${prev.electron.dist} electron-dist
chmod -R u+w electron-dist
'';
buildPhase = ''
runHook preBuild
pnpm build
pnpm exec electron-builder \
--dir \
-c.asarUnpack="**/*.node" \
-c.electronDist="electron-dist" \
-c.electronVersion=${prev.electron.version}
runHook postBuild
'';
});
})
]; ];
utils = nix-meow.lib.setup { utils = nix-meow.lib.setup {
inherit (inputs) home-manager nixpkgs; inherit (inputs) home-manager nixpkgs;
@@ -111,6 +158,7 @@
}; };
inherit (utils) mkHost; inherit (utils) mkHost;
configurations = [ configurations = [
# Desktops
(mkHost { (mkHost {
hardware = "doloro"; hardware = "doloro";
host = "doloro"; host = "doloro";
@@ -122,18 +170,20 @@
}; };
}) })
(mkHost { (mkHost {
hardware = "doloro-wsl"; hardware = "doloro-laptop";
host = "doloro-wsl"; host = "doloro-laptop";
system = "aarch64-linux"; system = "x86_64-linux";
stateVersion = "25.05"; stateVersion = "25.11";
nixpkgsConfig = { nixpkgsConfig = {
rocmSupport = false; rocmSupport = false;
}; };
}) })
# Servers
(mkHost { (mkHost {
hardware = "doloro-laptop"; hardware = "rpi-5";
host = "doloro-laptop"; host = "rpi-5";
system = "x86_64-linux"; system = "aarch64-linux";
# nixpkgs = inputs.rpi-nixpkgs;
stateVersion = "25.11"; stateVersion = "25.11";
nixpkgsConfig = { nixpkgsConfig = {
rocmSupport = false; rocmSupport = false;

View File

@@ -1,2 +0,0 @@
{...}: {
}

49
hardwares/rpi-5/disks.nix Normal file
View File

@@ -0,0 +1,49 @@
{ inputs, lib, ... }:
{
imports = [ inputs.disko.nixosModules.disko ];
disko.devices = {
disk = {
main = {
device = "/dev/disk/by-label/NIXOS_SD";
type = "disk";
content = {
type = "gpt";
partitions = {
boot = {
name = "boot";
size = "1M";
type = "EF02";
};
ESP = {
name = "ESP";
priority = 1;
size = "4G";
type = "EF00";
content = {
type = "filesystem";
format = "vfat";
mountpoint = "/boot";
mountOptions = [ "umask=0077" ];
};
};
plainSwap = {
size = "8G";
content = {
type = "swap";
discardPolicy = "both"; # Both "once" and page discard policies
};
};
root = {
size = "100%";
content = {
type = "filesystem";
format = "ext4";
mountpoint = "/";
};
};
};
};
};
};
};
}

1
hardwares/rpi-5/home.nix Normal file
View File

@@ -0,0 +1 @@
{...}: {}

35
hardwares/rpi-5/nixos.nix Normal file
View File

@@ -0,0 +1,35 @@
{
lib,
inputs,
modulesPath,
...
}:
{
imports = [
# ./disks.nix
# (modulesPath + "/installer/sd-card/sd-image-aarch64.nix")
];
# fileSystems = {
# "/" = {
# device = "/dev/disk/by-label/NIXOS_SD";
# fsType = "ext4";
# options = [ "noatime" ];
# };
# };
boot.supportedFilesystems = lib.mkForce [
"btrfs"
"reiserfs"
"vfat"
"ext4"
"f2fs"
"xfs"
"ntfs"
"cifs"
];
nixpkgs.overlays = [
# https://github.com/NixOS/nixpkgs/issues/126755#issuecomment-869149243
(final: super: {
makeModulesClosure = x: super.makeModulesClosure (x // { allowMissing = true; });
})
];
}

View File

@@ -1,18 +1,29 @@
{ {
inputs, inputs,
config, config,
system,
pkgs, pkgs,
fetchFromGitHub, fetchFromGitHub,
... ...
}: }:
{ {
imports = [
inputs.sops-nix.homeManagerModules.sops
];
sops = {
age.keyFile = "/home/doloro/.config/sops/age/key.txt"; # must have no password!
};
modules = { modules = {
Hyprland.enable = true; Hyprland.enable = true;
quickshell.enable = true; quickshell.enable = true;
# chromium.enable = true; # chromium.enable = true;
wivrn.enable = false; wivrn.enable = false;
helium.enable = true; helium.enable = true;
sops.enable = true;
wakatime.enable = false;
# remoteBuild.use-remote-builders = true;
nixvim.enable = true; nixvim.enable = true;
zen-browser.enable = false;
kitty.enable = true; kitty.enable = true;
helix.enable = false; helix.enable = false;
stylix.enable = true; stylix.enable = true;
@@ -75,7 +86,8 @@
hello hello
vim vim
telegram-desktop telegram-desktop
vesktop # vesktop
legcord
pavucontrol pavucontrol
lazygit lazygit
btop btop
@@ -83,8 +95,8 @@
alcom alcom
gcr gcr
qbittorrent qbittorrent
intel-gpu-tools
]; ];
# sops.age.keyFile = "/home/doloro/.config/sops/age/key.txt";
# Home Manager is pretty good at managing dotfiles. The primary way to manage # Home Manager is pretty good at managing dotfiles. The primary way to manage
# plain files is through 'home.file'. # plain files is through 'home.file'.

View File

@@ -1,28 +1,98 @@
{ pkgs, lib, ... }: { pkgs, lib, ... }:
let let
batt-gpu = pkgs.writeShellScript "batt-igpu" ''
${pkgs.intel-gpu-tools}/bin/intel_gpu_frequency -e
echo "800" > /sys/class/drm/card1/gt_boost_freq_mhz
'';
ac-gpu = pkgs.writeShellScript "ac-igpu" ''
${pkgs.intel-gpu-tools}/bin/intel_gpu_frequency -d
echo "2350" > /sys/class/drm/card1/gt_boost_freq_mhz
'';
in in
{ {
services.tlp = { services.tlp = {
enable = true; enable = true;
settings = { settings = {
CPU_SCALING_GOVERNOR_ON_BAT = "powersave"; # Wireless power saving
PCIE_ASPM_ON_BAT = "powersave"; WIFI_PWR_ON_BAT = "1";
CPU_SCALING_GOVERNOR_ON_AC = "balanced";
# USB autosuspend
USB_AUTOSUSPEND = "1";
# SATA drive power management
SATA_LINKPWR_ON_BAT = "min_power";
# PCI Express Active-State Power Management (ASPM)
PCIE_ASPM_ON_BAT = "powersupersave";
RUNTIME_PM_ON_AC = "on";
RUNTIME_PM_ON_BAT = "auto";
# Disable Bluetooth on battery
# DEVICES_TO_DISABLE_ON_BAT = "bluetooth";
# Restore brightness on battery
RESTORE_BRIGHTNESS_ON_BAT = "1";
PCIE_ASPM_ON_AC = "balanced"; PCIE_ASPM_ON_AC = "balanced";
DEVICES_TO_DISABLE_ON_BAT_NOT_IN_USE = "bluetooth";
INTEL_GPU_MAX_FREQ_ON_AC = 0;
INTEL_GPU_MAX_FREQ_ON_BAT = 800;
INTEL_GPU_BOOST_FREQ_ON_AC = 0;
INTEL_GPU_BOOST_FREQ_ON_BAT = 800;
CPU_MAX_PERF_ON_BAT = 50;
PLATFORM_PROFILE_ON_AC = "balanced";
PLATFORM_PROFILE_ON_BAT = "quiet";
START_CHARGE_THRESH_BAT0 = 40; # 40 and below it starts to charge START_CHARGE_THRESH_BAT0 = 40; # 40 and below it starts to charge
STOP_CHARGE_THRESH_BAT0 = 80; # 80 and above it stops charging STOP_CHARGE_THRESH_BAT0 = 80; # 80 and above it stops charging
}; };
}; };
# services.tuned.enable = true;
services.thermald.enable = true; services.thermald.enable = true;
services.upower = { services.upower = {
enable = true; enable = true;
}; };
# boot.kernelParams = [ "mem_sleep_default=deep" ]; services.auto-cpufreq.enable = true;
systemd.targets = {
"ac" = {
description = "On AC power";
unitConfig = {
StopWhenUnneeded = "yes";
};
};
"battery" = {
description = "On battery power";
unitConfig = {
StopWhenUnneeded = "yes";
};
};
};
services.udev.extraRules = ''
SUBSYSTEM=="power_supply",ENV{POWER_SUPPLY_ONLINE}=="0", RUN+="/run/current-system/systemd/bin/systemctl start battery.target"
SUBSYSTEM=="power_supply", ENV{POWER_SUPPLY_ONLINE}=="1", RUN+="/run/current-system/systemd/bin/systemctl start ac.target"
'';
services.auto-cpufreq.settings = {
battery = {
governor = "powersave";
turbo = "never";
};
charger = {
governor = "performance";
turbo = "auto";
};
};
boot.kernelParams = [
# "mem_sleep_default=deep"
# "i915.fastboot=1"
"pcie_aspm=force"
"ahci.mobile_lpm_policy=1"
];
services.logind.settings.Login = { services.logind.settings.Login = {
HandleLidSwitch = "suspend-then-hibernate"; HandleLidSwitch = "suspend";
HandleLidSwitchExternalPower = "ignore"; HandleLidSwitchExternalPower = "suspend";
HandleLidSwitchDocked = "ignore"; HandleLidSwitchDocked = "ignore";
}; };
systemd.sleep.extraConfig = '' systemd.sleep.extraConfig = ''
@@ -30,9 +100,50 @@ in
SuspendEstimationSec=120 SuspendEstimationSec=120
''; '';
systemd.services.gpu-limit-on-batt = {
enable = true;
description = "Using rfkill; disable all rf devices before sleeping.";
before = [ "battery.target" ];
serviceConfig = {
Type = "oneshot";
ExecStart = "${batt-gpu}";
RemainAfterExit = true;
};
wantedBy = [ "battery.target" ];
partOf = [ "battery.target" ];
};
systemd.services.gpu-limit-on-ac = {
enable = true;
description = "Using rfkill; disable all rf devices before sleeping.";
before = [ "ac.target" ];
serviceConfig = {
Type = "oneshot";
ExecStart = "${ac-gpu}";
RemainAfterExit = true;
};
wantedBy = [ "ac.target" ];
partOf = [ "ac.target" ];
};
systemd.services.rfkill-sleep-wake = {
enable = true;
description = "Using rfkill; disable all rf devices before sleeping.";
before = [ "sleep.target" ];
serviceConfig = {
Type = "oneshot";
ExecStop = "${pkgs.utillinux}/bin/rfkill unblock all";
ExecStart = "${pkgs.utillinux}/bin/rfkill block all";
RemainAfterExit = true;
};
wantedBy = [ "sleep.target" ];
partOf = [ "sleep.target" ];
};
# one of "ignore", "poweroff", "reboot", "halt", "kexec", "suspend", "hibernate", "hybrid-sleep", "suspend-then-hibernate", "lock" # one of "ignore", "poweroff", "reboot", "halt", "kexec", "suspend", "hibernate", "hybrid-sleep", "suspend-then-hibernate", "lock"
powerManagement = { powerManagement = {
enable = true; enable = true;
powertop.enable = true; # powertop.enable = true;
}; };
} }

View File

@@ -22,16 +22,17 @@ in
fish.enable = true; fish.enable = true;
greetd.enable = true; greetd.enable = true;
stylix.enable = true; stylix.enable = true;
steam.enable = false; steam.enable = true;
Hyprland.enable = true; Hyprland.enable = true;
# remoteBuild.use-remote-builders = true;
wivrn.enable = false; wivrn.enable = false;
fonts.enable = true; fonts.enable = true;
}; };
# Use the systemd-boot EFI boot loader. # Use the systemd-boot EFI boot loader.
boot.loader.systemd-boot.enable = true; boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true; boot.loader.efi.canTouchEfiVariables = true;
boot.kernelPackages = pkgs.linuxPackages_6_12; # Hibernate works on 6.12 but not on latest # boot.kernelPackages = pkgs.linuxPackages_6_12; # Hibernate works on 6.12 but not on latest
boot.kernelPackages = pkgs.linuxPackages_latest; # Unpinned the linux version for now.. as i am not using hibernate that often
networking.hostName = "doloro-nixos-laptop"; # Define your hostname. networking.hostName = "doloro-nixos-laptop"; # Define your hostname.
security.rtkit.enable = true; security.rtkit.enable = true;
@@ -60,14 +61,26 @@ in
"doloro" "doloro"
]; ];
}; };
hardware.graphics = {
services.gnome.gnome-keyring.enable = true;
hardware = {
firmware = [ pkgs.intel-npu-driver ];
cpu.intel = {
# npu.enable = true;
};
graphics = {
enable = true; enable = true;
# https://github.com/intel/libvpl?tab=readme-ov-file#dispatcher-behavior-when-targeting-intel-gpus
extraPackages = with pkgs; [ extraPackages = with pkgs; [
vpl-gpu-rt
intel-media-driver # VA-API (iHD) userspace intel-media-driver # VA-API (iHD) userspace
intel-vaapi-driver
# vpl-gpu-rt # oneVPL (QSV) runtime # vpl-gpu-rt # oneVPL (QSV) runtime
intel-compute-runtime # OpenCL (NEO) + Level Zero for Arc/Xe intel-compute-runtime # OpenCL (NEO) + Level Zero for Arc/Xe
]; ];
}; };
};
services.openssh = { services.openssh = {
enable = true; enable = true;
settings = { settings = {
@@ -90,6 +103,7 @@ in
# Enable the X11 windowing system. # Enable the X11 windowing system.
services.xserver.enable = true; services.xserver.enable = true;
# sops.age.keyFile = "/etc/ssh/ssh_host_ed25519_key";
sops = { sops = {
defaultSopsFile = builtins.toPath "${nix-meow.flakeRoot}/secrets/users.yaml"; defaultSopsFile = builtins.toPath "${nix-meow.flakeRoot}/secrets/users.yaml";
secrets = { secrets = {
@@ -109,6 +123,7 @@ in
services.libinput.enable = true; services.libinput.enable = true;
boot.binfmt.emulatedSystems = [ "aarch64-linux" ];
# Define a user account. Don't forget to set a password with passwd. # Define a user account. Don't forget to set a password with passwd.
users.users.doloro = { users.users.doloro = {
isNormalUser = true; isNormalUser = true;
@@ -124,6 +139,7 @@ in
# initialPassword = "sex"; # initialPassword = "sex";
}; };
users.mutableUsers = false; users.mutableUsers = false;
services.system76-scheduler.enable = true;
# programs.firefox.enable = true; # programs.firefox.enable = true;
@@ -133,6 +149,10 @@ in
vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
git git
wget wget
# tlp-pd
brightnessctl
nvtopPackages.intel
seahorse
]; ];
# Some programs need SUID wrappers, can be configured further or are # Some programs need SUID wrappers, can be configured further or are

View File

@@ -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"
];
};
};
};
};
}

View File

@@ -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";
};
}

View File

@@ -6,30 +6,17 @@
... ...
}: }:
{ {
# 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 = { modules = {
hyfetch.enable = true;
Hyprland = { Hyprland = {
enable = true; enable = true;
suspend-on-hibernate = true; suspend-on-hibernate = true;
}; };
niri.enable = false;
quickshell.enable = true; quickshell.enable = true;
# chromium.enable = true; # chromium.enable = true;
wivrn.enable = true; wivrn.enable = true;
sops.enable = true;
helium.enable = true; helium.enable = true;
nixvim.enable = true; nixvim.enable = true;
helix.enable = false; helix.enable = false;
@@ -42,6 +29,7 @@
autostart = true; autostart = true;
}; };
blender.enable = true; blender.enable = true;
zen-browser.enable = false;
bottles.enable = true; bottles.enable = true;
fish.enable = true; fish.enable = true;
youtube-music.enable = true; youtube-music.enable = true;
@@ -103,16 +91,16 @@
vim vim
telegram-desktop telegram-desktop
vesktop vesktop
# (pkgs.discord.override { withVencord = true; }) (inputs.protonhax.packages.x86_64-linux.default)
# webcord-vencord
# spotify
pavucontrol pavucontrol
lazygit lazygit
btop btop
sops sops
protontricks
alcom alcom
gcr gcr
qbittorrent qbittorrent
(inputs.hytale-launcher.packages.x86_64-linux.default)
]; ];
home.sessionVariables = { home.sessionVariables = {
EDITOR = "nvim"; EDITOR = "nvim";

View File

@@ -23,10 +23,16 @@ in
stylix.enable = true; stylix.enable = true;
steam.enable = true; steam.enable = true;
Hyprland.enable = true; Hyprland.enable = true;
niri.enable = false;
wivrn.enable = true; wivrn.enable = true;
remoteBuild.become-remote-builder = true;
fonts.enable = true; fonts.enable = true;
}; };
services.resolved.enable = true;
services.gnome.gnome-keyring.enable = true;
# Use the systemd-boot EFI boot loader. # Use the systemd-boot EFI boot loader.
boot.loader.grub.enable = true; boot.loader.grub.enable = true;
boot.loader.grub.device = "nodev"; boot.loader.grub.device = "nodev";
@@ -43,10 +49,14 @@ in
"https://nix-community.cachix.org" "https://nix-community.cachix.org"
"https://cache.nixos.org/" "https://cache.nixos.org/"
"https://attic.scug.io/pkgs" "https://attic.scug.io/pkgs"
"https://cache.nixos-cuda.org"
"https://niri.cachix.org"
]; ];
trusted-public-keys = [ trusted-public-keys = [
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
"pkgs:+sRbfiZMMX5R3PuAPtIRz/emowDoGZNpozibrnrAvuc=" "pkgs:+sRbfiZMMX5R3PuAPtIRz/emowDoGZNpozibrnrAvuc="
"cache.nixos-cuda.org:74DUi4Ye579gUqzH4ziL9IyiJBlDpMRn9MBN8oNan9M="
"niri.cachix.org-1:Wv0OmO7PsuocRKzfDoJ3mulSl7Z6oezYhGhR+3W2964="
]; ];
experimental-features = [ experimental-features = [
"flakes" "flakes"
@@ -83,6 +93,7 @@ in
security.rtkit.enable = true; security.rtkit.enable = true;
sops = { sops = {
# age.keyFile = "/etc/ssh/ssh_host_ed25519_key";
defaultSopsFile = builtins.toPath "${nix-meow.flakeRoot}/secrets/users.yaml"; defaultSopsFile = builtins.toPath "${nix-meow.flakeRoot}/secrets/users.yaml";
secrets = { secrets = {
root-hashed_password = { root-hashed_password = {
@@ -225,8 +236,8 @@ in
programs = { programs = {
ssh = { ssh = {
# enable = true; # enable = true;
extraConfig = "AddKeysToAgent yes"; # startAgent = true;
startAgent = true;
}; };
fish.enable = true; fish.enable = true;
}; };
@@ -244,6 +255,7 @@ in
extraGroups = [ extraGroups = [
"wheel" "wheel"
"dialout" "dialout"
"networkmanager"
]; # Enable sudo for the user. ]; # Enable sudo for the user.
packages = with pkgs; [ packages = with pkgs; [
tree tree
@@ -262,6 +274,7 @@ in
wget wget
killall killall
sops sops
seahorse
]; ];
# Some programs need SUID wrappers, can be configured further or are # Some programs need SUID wrappers, can be configured further or are

View File

@@ -1,3 +1,7 @@
{ ... }: { ... }:
let
in
{ {
} }

54
hosts/rpi-5/home.nix Normal file
View File

@@ -0,0 +1,54 @@
{
inputs,
config,
pkgs,
fetchFromGitHub,
...
}:
{
modules = {
hyfetch.enable = true;
sops.enable = true;
nixvim.enable = true;
tmux.enable = true;
# theme.enable = true;
fish.enable = true;
direnv.enable = true;
git.enable = true;
};
# Home Manager needs a bit of information about you and the paths it should
# manage.
home.username = "doloro";
home.homeDirectory = "/home/doloro";
# services = {
# };
# This value determines the Home Manager release that your configuration is
# compatible with. This helps avoid breakage when a new Home Manager release
# introduces backwards incompatible changes.
#
# You should not change this value, even if you update Home Manager. If you do
# want to update the value, then make sure to first check the Home Manager
# release notes.
home.stateVersion = "25.11"; # Please read the comment before changing.
# The home.packages option allows you to install Nix packages into your
# environment.
home.packages = with pkgs; [
hello
vim
lazygit
btop
sops
];
home.sessionVariables = {
EDITOR = "nvim";
};
xdg.configFile."mimeapps.list".force = true;
programs = {
home-manager.enable = true;
};
}

99
hosts/rpi-5/nixos.nix Normal file
View File

@@ -0,0 +1,99 @@
{
lib,
pkgs,
inputs,
config,
...
}:
let
rpi-pi = inputs.raspberry-pi-nix;
in
{
# To build an sd-card image
# $ nix build .#nixosConfigurations.rpi-5-rpi-5-aarch64-linux.config.system.build.sdImage --json &| nom
# $ sudo dd if=./result/sd-image/nixos-sd-image-26.05.20260120.80e4adb-aarch64-linux.img of=/dev/sdc conv=fsync status=progress
imports = [
rpi-pi.nixosModules.raspberry-pi
rpi-pi.nixosModules.sd-image
./containers.nix
];
nix.settings = {
substituters = [ "https://nix-community.cachix.org" ];
trusted-public-keys = [ "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" ];
};
services.traefik = {
enable = true;
staticConfigOptions = {
entryPoints = {
web = {
address = ":80";
http.redirections.entrypoint = {
to = "websecure";
scheme = "https";
};
asDefault = true;
};
websecure = {
address = ":443";
asDefault = true;
http.tls.certResolver = "letsencrypt";
};
traefik = {
address = ":8081";
};
};
certificatesResolvers.letsencrypt.acme = {
email = "doloroo@proton.me";
storage = "${config.services.traefik.dataDir}/acme.json";
httpChallenge.entryPoint = "web";
};
api.dashboard = true;
api.insecure = true;
};
};
# TEMP
networking.firewall.enable = false;
users = {
mutableUsers = false;
users.doloro = {
isNormalUser = true;
extraGroups = [ "wheel" ];
openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIE/4h+WCBBW82puv8SMdUbkWymF4amEMuZitgFztB6oZ" # laptop pub key
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBaa6Z5qtBSLEz+A4fQGYPfkOISsRQlmKkVbcx2zxML7" # pc pub key
];
initialPassword = "meowmeowmeow";
};
users.root = {
initialPassword = "rootmeow";
openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIE/4h+WCBBW82puv8SMdUbkWymF4amEMuZitgFztB6oZ" # laptop pub key
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBaa6Z5qtBSLEz+A4fQGYPfkOISsRQlmKkVbcx2zxML7" # pc pub key
];
};
};
networking.hostName = "nixos-001-rp5";
services.openssh.enable = true;
environment.systemPackages = with pkgs; [
libraspberrypi
];
sdImage.compressImage = false;
raspberry-pi-nix.board = "bcm2712"; # Rpi 5 - 64bit
# We need to rebuild kernel for 6.12
# raspberry-pi-nix.kernel-version = "v6_12_17";
raspberry-pi-nix.uboot.enable = false;
hardware.enableRedistributableFirmware = true;
system.stateVersion = "25.11";
nixpkgs.hostPlatform = "aarch64-linux";
}

View File

@@ -1 +0,0 @@
age1e6vws55p0g23qzthm4qa93hpt6lqmck6670gkygph0sc0j7my4uq5wqjfh

View File

@@ -0,0 +1,4 @@
_: {
home = ./home.nix;
# nixos: ./nixos.nix;
}

View File

@@ -0,0 +1,34 @@
{
inputs,
config,
lib,
pkgs,
...
}:
let
cfg = config.modules.alecaframe;
in
{
# You gotta install it into prefix yourself. this just makes a desktop file
options.modules.alecaframe = {
enable = lib.mkEnableOption "";
};
config = lib.mkIf cfg.enable {
xdg.desktopEntries = {
alecaframe = {
name = "Alecaframe";
comment = "launches alecaframe";
exec = ''
protonhax run 230410 "
/home/branden/.local/share/Steam/steamapps/compatdata/230410/pfx/drive_c/users/steamuser/AppData/Roaming/Microsoft/Windows/Start
Menu/Programs/Overwolf/AlecaFrame.lnk
"
'';
# icon = "system-reboot";
terminal = false;
type = "Application";
categories = [ "System" ];
};
};
};
}

View File

@@ -0,0 +1,4 @@
_: {
home = ./home.nix;
# nixos: ./nixos.nix;
}

View File

@@ -0,0 +1,62 @@
{
config,
lib,
inputs,
pkgs,
home,
system,
...
}:
# system: "base16"
# name: "Gruvbox dark, hard"
# author: "Dawid Kurek (dawikur@gmail.com), morhetz (https://github.com/morhetz/gruvbox)"
# variant: "dark"
let
hexToInt = hex: fromTOML "value = 0x${hex}";
hexToRgb =
hex:
let
red = hexToInt (builtins.substring 1 2 hex);
green = hexToInt (builtins.substring 3 2 hex);
blue = hexToInt (builtins.substring 5 2 hex);
in
{
r = red.value;
g = green.value;
b = blue.value;
};
theme =
let
importYaml =
file:
builtins.fromJSON (
builtins.readFile (
pkgs.runCommandNoCC "converted-yaml.json" { } ''
${pkgs.yj}/bin/yj < ${file} > $out
''
)
);
# EDIT THEME HERE
themeFile = "${pkgs.base16-schemes}/share/themes/gruvbox-dark-hard.yaml";
in
importYaml themeFile;
in
{
options.modules.base16 = {
hex = lib.mkOption {
type = lib.types.attrs;
description = ''
Hexadecimal color configuration for Gruvbox dark, hard Base16 theme.
'';
};
rgb = lib.mkOption {
type = lib.types.attrs;
description = ''
Hexadecimal color configuration for Gruvbox dark, hard Base16 theme.
'';
};
};
config.modules.base16.hex = theme.palette;
config.modules.base16.rgb = builtins.mapAttrs (_name: hex: hexToRgb hex) theme.palette;
}

View File

@@ -30,7 +30,7 @@ in
# whole blender config including addons is too fat to include here # whole blender config including addons is too fat to include here
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
home.packages = [ home.packages = [
blender_4_5 blenderPkgs.blender_4_5
]; ];
}; };
# nix'ing a blender config is most likely not possible # nix'ing a blender config is most likely not possible

View File

@@ -0,0 +1,4 @@
_: {
home = ./home.nix;
nixos = ./nixos.nix;
}

39
modules/builder/home.nix Normal file
View File

@@ -0,0 +1,39 @@
{
config,
lib,
pkgs,
fetchFromGitHub,
...
}:
let
cfg = config.modules.remoteBuild;
in
{
options.modules.remoteBuild = {
use-remote-builders = lib.mkEnableOption "remoteBuild";
};
config = lib.mkIf cfg.use-remote-builders {
nix.package = pkgs.nix;
nix.distributedBuilds = true;
nix.settings.builders-use-substitutes = true;
# Define every build machine here..
nix.buildMachines = [
{
# Main desktop pc
# ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKqsFEgtcTDw89GaZJg8P/FE1xngIXmiUZl8j0b+V7n+ root@doloroo-main
hostName = "doloroo-main";
sshUser = "remotebuild";
sshKey = "/root/.ssh/remotebuild";
# protocol = "ssh-ng";
maxJobs = 8;
speedFactor = 2;
supportedFeatures = [
"nixos-test"
"big-parallel"
"kvm"
];
}
];
};
}

62
modules/builder/nixos.nix Normal file
View File

@@ -0,0 +1,62 @@
{
config,
lib,
pkgs,
...
}:
let
cfg = config.modules.remoteBuild;
remoteBuilder = lib.mkIf cfg.become-remote-builder {
users.users.remotebuild = {
isSystemUser = true;
shell = pkgs.bashInteractive;
group = "remotebuild";
# useDefaultShell = true;
# ssh-keygen -f /root/.ssh/remotebuild
openssh.authorizedKeys.keyFiles = [ ./remotebuild.pub ];
openssh.authorizedKeys.keys = [
# Laptop-system
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIE/4h+WCBBW82puv8SMdUbkWymF4amEMuZitgFztB6oZ doloroo@proton.me"
# Laptop-user-doloro
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOuNlm8vq6MvWsVU/RW4oq7npQngjIxNFpjEWbAS/8H2 root@doloro-nixos-laptop"
];
initialPassword = "remotebuilder";
};
users.groups.remotebuild = { };
nix.settings.trusted-users = [ "remotebuild" ];
};
useBulders = lib.mkIf cfg.use-remote-builders {
nix.distributedBuilds = true;
nix.settings.builders-use-substitutes = true;
# Define every build machine here..
# also define in home manager (TODO make a single file with all builders)
nix.buildMachines = [
{
# Main desktop pc
# ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKqsFEgtcTDw89GaZJg8P/FE1xngIXmiUZl8j0b+V7n+ root@doloroo-main
hostName = "doloroo-main";
sshUser = "remotebuild";
sshKey = "/root/.ssh/remotebuild";
system = "x86_64-linux";
maxJobs = 8;
speedFactor = 2;
supportedFeatures = [
"nixos-test"
"big-parallel"
"kvm"
];
}
];
};
in
{
options.modules.remoteBuild = {
use-remote-builders = lib.mkEnableOption "remoteBuild";
become-remote-builder = lib.mkEnableOption "remoteBuild";
};
config = lib.attrsets.recursiveUpdate useBulders remoteBuilder;
}

View File

@@ -0,0 +1 @@
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKqsFEgtcTDw89GaZJg8P/FE1xngIXmiUZl8j0b+V7n+ root@doloroo-main

View File

@@ -2,7 +2,10 @@
config, config,
lib, lib,
pkgs, pkgs,
hostname,
nix-meow,
fetchFromGitHub, fetchFromGitHub,
system,
... ...
}: }:
let let
@@ -14,6 +17,7 @@ in
}; };
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
home.shell.enableFishIntegration = true; home.shell.enableFishIntegration = true;
home.packages = [ pkgs.nix-output-monitor ];
programs = { programs = {
fish = { fish = {
enable = true; enable = true;
@@ -23,6 +27,8 @@ in
set -g theme_display_user yes set -g theme_display_user yes
set -g fish_color_autosuggestion 6F6578 set -g fish_color_autosuggestion 6F6578
alias nik 'nix' alias nik 'nix'
alias nos 'sudo echo; sudo nixos-rebuild switch --flake .#${hostname}-${system} --log-format internal-json -v &| nom --json'
alias hms 'home-manager switch --flake .#${hostname}-${system} --log-format internal-json -v &| nom --json'
''; '';
plugins = [ plugins = [
{ {

View File

@@ -9,7 +9,6 @@
let let
cfg = config.modules.helium; cfg = config.modules.helium;
# packageNix = "${inputs.nixpkgs-gamescope}/pkgs/by-name/he/helium-browser/package.nix"; # packageNix = "${inputs.nixpkgs-gamescope}/pkgs/by-name/he/helium-browser/package.nix";
# helium = inputs.nikkuss-pkgs.callPackage packageNix { };
in in
{ {
options.modules.helium = { options.modules.helium = {
@@ -17,14 +16,11 @@ in
}; };
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
home.packages = [ home.packages = [
inputs.nikkuss-pkgs.packages.x86_64-linux.helium-browser inputs.heliumFlake.packages.x86_64-linux.helium
]; ];
# xdg.mimeApps.defaultApplications = { # Gives me widevine support. yay
# "text/html" = "chromium.desktop"; xdg.configFile."net.imput.helium/WidevineCdm/latest-component-updated-widevine-cdm" = {
# "x-scheme-handler/http" = "chromium.desktop"; text = ''{"Path":"${pkgs.widevine-cdm}/share/google/chrome/WidevineCdm"}'';
# "x-scheme-handler/https" = "chromium.desktop"; };
# "x-scheme-handler/about" = "chromium.desktop";
# "x-scheme-handler/unknown" = "chromium.desktop";
# };
}; };
} }

View File

@@ -0,0 +1,4 @@
_: {
home = ./home.nix;
# nixos = ./nixos.nix;
}

40
modules/hyfetch/home.nix Normal file
View File

@@ -0,0 +1,40 @@
{
config,
lib,
pkgs,
fetchFromGitHub,
...
}:
let
cfg = config.modules.hyfetch;
in
{
options.modules.hyfetch = {
enable = lib.mkEnableOption "hyfetch";
};
config = lib.mkIf cfg.enable {
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;
};
};
};
}

20
modules/hyfetch/nixos.nix Normal file
View File

@@ -0,0 +1,20 @@
{
config,
lib,
pkgs,
...
}:
let
cfg = config.modules.fish;
in
{
options.modules.fish = {
enable = lib.mkEnableOption "Fish";
};
config = lib.mkIf cfg.enable {
users.defaultUserShell = pkgs.fish;
programs.fish = {
enable = true;
};
};
}

View File

@@ -42,8 +42,50 @@ in
inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland; inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
}; };
programs = { programs = {
hyprlock = {
enable = true;
};
wlogout = { wlogout = {
enable = true; enable = true;
layout = [
{
"label" = "lock";
"action" = "hyprlock";
"text" = "Lock";
"keybind" = "l";
}
{
"label" = "hibernate";
"action" = "systemctl hibernate";
"text" = "Hibernate";
"keybind" = "h";
}
{
"label" = "logout";
"action" = "uwsm stop";
"text" = "Logout";
"keybind" = "e";
}
{
# TODO add hypr shutdown
"label" = "shutdown";
"action" = "systemctl poweroff";
"text" = "Shutdown";
"keybind" = "s";
}
{
"label" = "suspend";
"action" = "systemctl suspend";
"text" = "Suspend";
"keybind" = "u";
}
{
"label" = "reboot";
"action" = "systemctl reboot";
"text" = "Reboot";
"keybind" = "r";
}
];
}; };
}; };
systemd.user.services."hyprland_suspend" = lib.mkIf cfg.suspend-on-hibernate { systemd.user.services."hyprland_suspend" = lib.mkIf cfg.suspend-on-hibernate {

View File

@@ -7,6 +7,7 @@
}: }:
let let
cfg = config.modules.Hyprland; cfg = config.modules.Hyprland;
pkgs-unstable = inputs.hyprland.inputs.nixpkgs.legacyPackages.${pkgs.stdenv.hostPlatform.system};
in in
{ {
options.modules.Hyprland = { options.modules.Hyprland = {
@@ -16,6 +17,7 @@ in
programs.xwayland.enable = true; programs.xwayland.enable = true;
programs.hyprland = { programs.hyprland = {
enable = true; enable = true;
withUWSM = true;
# set the flake package # set the flake package
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland; package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
# make sure to also set the portal package, so that they are in sync # make sure to also set the portal package, so that they are in sync
@@ -31,5 +33,12 @@ in
substituters = [ "https://hyprland.cachix.org" ]; substituters = [ "https://hyprland.cachix.org" ];
trusted-public-keys = [ "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" ]; trusted-public-keys = [ "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" ];
}; };
hardware.graphics = {
package = pkgs-unstable.mesa;
# if you also want 32-bit support (e.g for Steam)
# enable32Bit = true;
# package32 = pkgs-unstable.pkgsi686Linux.mesa;
};
}; };
} }

View File

@@ -1,21 +1,41 @@
{ inputs, pkgs, ... }: { inputs, pkgs, ... }:
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
{ {
home.packages = [ home.packages = [
pkgs.hyprlauncher pkgs.tofi
]; ];
wayland.windowManager.hyprland.settings = { wayland.windowManager.hyprland.settings = {
bind = [ bind = [
"$mainMod, R, exec, hyprlauncher" "$mainMod, R, exec, ${script}"
]; ];
}; };
systemd.user.services.hyprlauncher-deamon = { # systemd.user.services.hyprlauncher-deamon = {
Install = { # Install = {
WantedBy = [ "hyprland-session.target" ]; # WantedBy = [ "hyprland-session.target" ];
}; # };
Service = { # Service = {
ExecStart = "${pkgs.writeShellScript "watch-store" '' # ExecStart = "${pkgs.writeShellScript "watch-store" ''
hyprlauncher -d # hyprlauncher -d
''}"; # ''}";
}; # };
}; # };
} }

View File

@@ -1,4 +1,12 @@
{ inputs, pkgs, ... }: {
inputs,
pkgs,
config,
...
}:
let
base16 = config.modules.base16;
in
{ {
home.packages = [ home.packages = [
pkgs.hyprcursor pkgs.hyprcursor
@@ -23,14 +31,16 @@
gaps_in = 1; gaps_in = 1;
gaps_out = 1; gaps_out = 1;
border_size = 1; border_size = 1;
# col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg "col.active_border" =
# col.inactive_border = rgba(595959aa) "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; resize_on_border = false;
allow_tearing = true; allow_tearing = true;
layout = "dwindle"; layout = "dwindle";
}; };
decoration = { decoration = {
rounding = 0; rounding = 4;
rounding_power = 1; rounding_power = 1;
active_opacity = 1.0; active_opacity = 1.0;
inactive_opacity = 1.0; inactive_opacity = 1.0;
@@ -59,19 +69,20 @@
"global, 1, 10, default" "global, 1, 10, default"
"border, 1, 5.39, easeOutQuint" "border, 1, 5.39, easeOutQuint"
"windows, 1, 2.79, easeOutQuint" "windows, 1, 2.79, easeOutQuint"
"windowsIn, 1, 1.1, easeOutQuint, popin 87%" "windowsIn, 1, 1, easeOutQuint, popin 87%"
"windowsOut, 1, 1.49, linear, popin 87%" "windowsOut, 1, 1, linear, popin 87%"
"fadeIn, 1, 1.73, almostLinear" "windowsMove, 1, 1, easeInOutCubic"
"fadeOut, 1, 1.46, almostLinear" "fadeIn, 1, 0.5, almostLinear"
"fade, 1, 2.03, quick" "fadeOut, 1, 0.5, almostLinear"
"fade, 1, 1, quick"
"layers, 1, 3.81, easeOutQuint" "layers, 1, 3.81, easeOutQuint"
"layersIn, 1, 4, easeOutQuint, fade" "layersIn, 1, 4, easeOutQuint, fade"
"layersOut, 1, 1.5, linear, fade" "layersOut, 1, 1.5, linear, fade"
"fadeLayersIn, 1, 1.79, almostLinear" "fadeLayersIn, 1, 1.79, almostLinear"
"fadeLayersOut, 1, 1.39, almostLinear" "fadeLayersOut, 1, 1.39, almostLinear"
"workspaces, 1, 1.94, almostLinear, fade" "workspaces, 1, 1, almostLinear, slide"
"workspacesIn, 1, 1.21, almostLinear, fade" "workspacesIn, 1, 1, easeInOutCubic, slide"
"workspacesOut, 1, 1.94, almostLinear, fade" "workspacesOut, 1, 1, easeInOutCubic, slide"
"zoomFactor, 1, 7, quick" "zoomFactor, 1, 7, quick"
]; ];
}; };
@@ -90,9 +101,8 @@
}; };
"$mainMod" = "SUPER"; "$mainMod" = "SUPER";
bind = [ bind = [
"$mainMod, Q, exec, foot"
"$mainMod, C, killactive" "$mainMod, C, killactive"
"$mainMod, M, exit" "$mainMod, M, exec, uwsm stop"
"$mainMod, E, exec, $fileManager" "$mainMod, E, exec, $fileManager"
"$mainMod, V, togglefloating," "$mainMod, V, togglefloating,"
"$mainMod, P, pseudo, # dwindle" "$mainMod, P, pseudo, # dwindle"
@@ -133,9 +143,9 @@
]; ];
windowrule = [ windowrule = [
"match:class .*, suppress_event maximize" "match:class .*, suppress_event maximize"
"match:class ^(gamescope)$, workspace 5" "match:class gamescope, workspace 5"
"match:class ^(gamescope)$, fullscreen true" "match:class gamescope, fullscreen true"
"match:class ^(gamescope)$, immediate true" "match:class gamescope, immediate true"
"match:class ^(steam)$, workspace 6 silent" "match:class ^(steam)$, workspace 6 silent"
"match:class ^(vesktop)$, workspace 8 silent" "match:class ^(vesktop)$, workspace 8 silent"
"match:class ^(org.telegram.desktop)$, workspace 8 silent" "match:class ^(org.telegram.desktop)$, workspace 8 silent"
@@ -145,6 +155,7 @@
]; ];
layerrule = [ layerrule = [
"match:namespace ^(notifications)$, no_screen_share true" "match:namespace ^(notifications)$, no_screen_share true"
# "match:namespace ^(quickshell)$, blur true"
]; ];
# exec-once = [ # exec-once = [
# ]; # ];

4
modules/niri/default.nix Normal file
View File

@@ -0,0 +1,4 @@
_: {
nixos = ./nixos.nix;
home = ./home.nix;
}

158
modules/niri/home.nix Normal file
View File

@@ -0,0 +1,158 @@
{
config,
lib,
inputs,
pkgs,
home,
system,
...
}:
let
cfg = config.modules.niri;
in
{
imports = [ inputs.niri-flake.homeModules.niri ];
options.modules.niri = {
enable = lib.mkEnableOption "niri configuration module";
};
config = lib.mkIf cfg.enable {
# nixpkgs.overlays = [ inputs.niri-flake.overlays.niri ];
gtk.enable = lib.mkForce false;
home.packages = with pkgs; [ kickoff ];
programs = {
niri = {
enable = true;
# package = pkgs.niri-unstable;
settings = {
input = {
keyboard = {
xkb = {
layout = "gb";
};
numlock = true;
};
};
outputs = {
DP-3 = {
# Philips Consumer Electronics Company PHL 272E1GZ UK02101011104
mode = {
width = 1920;
height = 1080;
refresh = 165.0;
};
focus-at-startup = true;
variable-refresh-rate = true;
};
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+T".action.spawn = "helium";
"Mod+R".action.spawn = "kickoff";
"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;
};
};
};
wlogout = {
enable = true;
layout = [
{
"label" = "lock";
"action" = "hyprlock";
"text" = "Lock";
"keybind" = "l";
}
{
"label" = "hibernate";
"action" = "systemctl hibernate";
"text" = "Hibernate";
"keybind" = "h";
}
{
"label" = "logout";
"action" = "loginctl terminate-user $USER";
"text" = "Logout";
"keybind" = "e";
}
{
# TODO add hypr shutdown
"label" = "shutdown";
"action" = "systemctl poweroff";
"text" = "Shutdown";
"keybind" = "s";
}
{
"label" = "suspend";
"action" = "systemctl suspend";
"text" = "Suspend";
"keybind" = "u";
}
{
"label" = "reboot";
"action" = "systemctl reboot";
"text" = "Reboot";
"keybind" = "r";
}
];
};
};
};
}

20
modules/niri/nixos.nix Normal file
View File

@@ -0,0 +1,20 @@
{
config,
lib,
inputs,
pkgs,
home,
system,
...
}:
let
cfg = config.modules.niri;
in
{
imports = [ inputs.niri-flake.nixosModules.niri ];
options.modules.niri = {
enable = lib.mkEnableOption "niri configuration module";
};
config = lib.mkIf cfg.enable {
};
}

View File

@@ -28,7 +28,7 @@ in
config.programs.nixvim = lib.mkIf cfg.enable { config.programs.nixvim = lib.mkIf cfg.enable {
enable = true; enable = true;
defaultEditor = true; defaultEditor = true;
colorschemes.tokyonight.enable = true; colorschemes.gruvbox-material.enable = true;
performance.byteCompileLua = { performance.byteCompileLua = {
enable = true; enable = true;
plugins = true; plugins = true;
@@ -60,13 +60,22 @@ in
astro = { astro = {
enable = true; enable = true;
}; };
ts_ls = {
enable = true;
};
svelte.enable = true;
}; };
}; };
lsp-format = { lsp-format = {
enable = true; enable = true;
# lspServersToEnable = [ "qmlls" ]; # lspServersToEnable = [ "qmlls" ];
}; };
notify.enable = true; notify = {
enable = true;
settings = {
background_color = "#00000000";
};
};
mini-cursorword.enable = true; mini-cursorword.enable = true;
# mini-statusline.enable = true; # mini-statusline.enable = true;
lualine = { lualine = {

View File

@@ -28,7 +28,7 @@ in
WantedBy = [ "default.target" ]; WantedBy = [ "default.target" ];
}; };
Service = { Service = {
ExecStart = "${pkg}/bin/quickshell"; ExecStart = "${pkgs.quickshell}/bin/quickshell";
Restart = "on-failure"; Restart = "on-failure";
RestartSec = "5s"; RestartSec = "5s";
}; };

View File

@@ -1 +1 @@
/run/user/1000/quickshell/vfs/cd26284dcbf5c20ad2cc36cbb6547fb4/.qmlls.ini /run/user/1000/quickshell/vfs/f9af1311120af20dfed5f1bc1698a66a/.qmlls.ini

View File

@@ -16,7 +16,7 @@ PanelWindow {
property var modelData property var modelData
screen: modelData.values[0] screen: modelData.values[0]
color: Common.Colors.colors.mainBackground color: Qt.rgba(0, 0, 0, 0) // Fully transparent via zero alpha
anchors { anchors {
top: true top: true
left: true left: true
@@ -25,6 +25,7 @@ PanelWindow {
implicitHeight: 31 implicitHeight: 31
RowLayout { RowLayout {
visible: true
height: 30 height: 30
anchors { anchors {
top: parent.top top: parent.top

View File

@@ -15,7 +15,13 @@ Rectangle {
property int battPercent: 58 property int battPercent: 58
implicitWidth: itemContent.width + 8 implicitWidth: itemContent.width + 8
implicitHeight: 24 implicitHeight: 24
visible: {if (UPower.displayDevice.ready) { true } else {false}} visible: {
if (UPower.displayDevice.ready) {
true;
} else {
false;
}
}
radius: 5.5 radius: 5.5
Layout.alignment: Qt.AlignVCenter Layout.alignment: Qt.AlignVCenter
color: "#2a2a2a" // Define item color color: "#2a2a2a" // Define item color
@@ -26,17 +32,20 @@ Rectangle {
anchors.centerIn: parent anchors.centerIn: parent
Text { Text {
// anchors.centerIn: parent // anchors.centerIn: parent
text: UPower.displayDevice.percentage + "%" text: Math.round(UPower.displayDevice.percentage * 100) + "%"
color: Common.Colors.colors.primary color: Common.Colors.colors.primary
font.weight: Font.DemiBold font.weight: Font.DemiBold
font.pointSize: 12 font.pointSize: 12
} }
Item { Item {
Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter
implicitWidth: icon.width
implicitHeight: icon.height
Text { Text {
id: icon
anchors.centerIn: parent anchors.centerIn: parent
text: root.getBatteryState(UPower.displayDevice.percentage, (UPower.displayDevice.changeRate > 0)) text: root.getBatteryState(UPower.displayDevice.percentage * 100, ((UPower.displayDevice.timeToFull > 0)))
color: root.getBatteryColor(UPower.displayDevice.percentage) color: root.getBatteryColor(UPower.displayDevice.percentage * 100)
font.weight: Font.DemiBold font.weight: Font.DemiBold
font.pointSize: 24 / 1.4 font.pointSize: 24 / 1.4
} }
@@ -55,7 +64,8 @@ function getBatteryState(level, isCharging) {
// Calculate step as a value between 1 and 10 (divide level into 10 ranges) // Calculate step as a value between 1 and 10 (divide level into 10 ranges)
let step = Math.ceil(level / 10); // Range mapping let step = Math.ceil(level / 10); // Range mapping
if (step > 10) step = 10; // Clamp to 10 if it exceeds bounds if (step > 10)
step = 10; // Clamp to 10 if it exceeds bounds
// Return the correct icon based on state // Return the correct icon based on state
return isCharging ? Common.Icons.battery.charging[String(step)] : Common.Icons.battery[String(step)]; return isCharging ? Common.Icons.battery.charging[String(step)] : Common.Icons.battery[String(step)];

View File

@@ -10,12 +10,18 @@ Singleton {
// For oled screen that risk burn in, set up these colors as semi-transparent and have a rotating wallpaper (!!) // For oled screen that risk burn in, set up these colors as semi-transparent and have a rotating wallpaper (!!)
readonly property var colors: ({ readonly property var colors: ({
primary: "#59b1b2b5", // Icons & Text colors primary: "#59b1b2b5" // Icons & Text colors
secondary: "#BF2a2a2a", // Pill container colors ,
background: "#BF000000", // Background of containers secondary: "#BF2a2a2a" // Pill container colors
mainBackground: "#20ffffff", // Color of the main bar ,
warning: "#E9D502", // (i.e battery nearing low) background: "#BF000000" // Background of containers
critial: "#e53b3c", // (i.e battery is low) ,
critial2: "#e53b3c", // (Speaker and Mic being off) mainBackground: "#20ffffff" // Color of the main bar
,
warning: "#E9D502" // (i.e battery nearing low)
,
critial: "#e53b3c" // (i.e battery is low)
,
critial2: "#e53b3c" // (Speaker and Mic being off)
}) })
} }

View File

@@ -12,6 +12,7 @@ Singleton {
// speaker: "../../../assets/bar/V2/speaker.svg", // speaker: "../../../assets/bar/V2/speaker.svg",
// speakerOff: "../../../assets/bar/V2/speakerOff.svg" // speakerOff: "../../../assets/bar/V2/speakerOff.svg"
// }) // })
// TODO replace all these icons with svg's
readonly property var battery: ({ readonly property var battery: ({
"0": "󰂎", "0": "󰂎",
"1": "󰁺", "1": "󰁺",
@@ -34,7 +35,7 @@ Singleton {
"7": "󰢞", "7": "󰢞",
"8": "󰂊", "8": "󰂊",
"9": "󰂋", "9": "󰂋",
"10": "󰂅", "10": "󰂅"
}) })
}) })

4
modules/sops/default.nix Normal file
View File

@@ -0,0 +1,4 @@
_: {
nixos = ./nixos.nix;
home = ./home.nix;
}

30
modules/sops/home.nix Normal file
View File

@@ -0,0 +1,30 @@
{
config,
lib,
inputs,
pkgs,
home,
system,
nix-meow,
...
}:
let
cfg = config.modules.sops;
in
{
imports = [
inputs.sops-nix.homeManagerModules.sops
];
options.modules.sops = {
enable = lib.mkEnableOption "sops configuration module";
};
config = lib.mkIf cfg.enable {
sops = {
age.keyFile = "/home/doloro/.config/sops/age/key.txt"; # must have no password!
defaultSopsFile = "${nix-meow.flakeRoot}/secrets/users.yaml";
secrets."wakatime-scug-io-api-key" = {
};
};
};
}

19
modules/sops/nixos.nix Normal file
View File

@@ -0,0 +1,19 @@
{
config,
lib,
inputs,
pkgs,
home,
system,
...
}:
let
cfg = config.modules.sops;
in
{
options.modules.sops = {
enable = lib.mkEnableOption "sops configuration module";
};
config = lib.mkIf cfg.enable {
};
}

View File

@@ -0,0 +1,4 @@
_: {
home = ./home.nix;
# nixos: ./nixos.nix;
}

16
modules/wakatime/home.nix Normal file
View File

@@ -0,0 +1,16 @@
{
inputs,
config,
lib,
pkgs,
fetchFromGitHub,
...
}:
let
cfg = config.modules.wakatime;
in
{
options.modules.wakatime = {
enable = lib.mkEnableOption "wakatime";
};
}

View File

@@ -17,7 +17,7 @@ in
# whole blender config including addons is too fat to include here # whole blender config including addons is too fat to include here
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
home.packages = with pkgs; [ home.packages = with pkgs; [
wlx-overlay-s wayvr
]; ];
}; };
# nix'ing a blender config is most likely not possible # nix'ing a blender config is most likely not possible

View File

@@ -54,6 +54,7 @@ in
publish.userServices = true; publish.userServices = true;
}; };
}; };
programs.adb.enable = true; environment.systemPackages = [ pkgs.android-tools ];
# programs.adb.enable = true;
}; };
} }

View File

@@ -12,6 +12,6 @@ in
enable = lib.mkEnableOption "youtube music"; enable = lib.mkEnableOption "youtube music";
}; };
config.home.packages = with pkgs; [ config.home.packages = with pkgs; [
youtube-music pear-desktop
]; ];
} }

View File

@@ -0,0 +1,4 @@
_: {
home = ./home.nix;
# nixos = ./nixos.nix;
}

View File

@@ -0,0 +1,81 @@
{
config,
inputs,
lib,
system,
pkgs,
fetchFromGitHub,
...
}:
let
cfg = config.modules.zen-browser;
in
{
imports = [
# inputs.zen-browser.homeModules.beta
# inputs.zen-browser.homeModules.twilight
inputs.zen-browser.homeModules.twilight-official
];
options.modules.zen-browser = {
enable = lib.mkEnableOption "zen";
};
config = lib.mkIf cfg.enable {
programs.zen-browser = {
enable = true;
policies = {
AutofillAddressEnabled = true;
AutofillCreditCardEnabled = false;
DisableAppUpdate = true;
DisableFeedbackCommands = true;
DisableFirefoxStudies = true;
DisablePocket = true;
DisableTelemetry = true;
DontCheckDefaultBrowser = true;
NoDefaultBookmarks = true;
OfferToSaveLogins = false;
EnableTrackingProtection = {
Value = true;
Locked = true;
Cryptomining = true;
Fingerprinting = true;
};
};
};
xdg.mimeApps =
let
value =
let
zen-browser = inputs.zen-browser.packages.${system}.twilight-official; # or twilight
in
zen-browser.meta.desktopFileName;
associations = builtins.listToAttrs (
map
(name: {
inherit name value;
})
[
"application/x-extension-shtml"
"application/x-extension-xhtml"
"application/x-extension-html"
"application/x-extension-xht"
"application/x-extension-htm"
"x-scheme-handler/unknown"
"x-scheme-handler/mailto"
"x-scheme-handler/chrome"
"x-scheme-handler/about"
"x-scheme-handler/https"
"x-scheme-handler/http"
"application/xhtml+xml"
"application/json"
"text/plain"
"text/html"
]
);
in
{
associations.added = associations;
defaultApplications = associations;
};
};
}

View File

@@ -0,0 +1,17 @@
# Disabled in default
{
config,
lib,
pkgs,
...
}:
let
cfg = config.modules.zen-browser;
in
{
options.modules.zen-browser = {
enable = lib.mkEnableOption "zen";
};
config = lib.mkIf cfg.enable {
};
}

Binary file not shown.

View File

@@ -6,36 +6,6 @@
... ...
}: }:
let let
youtube-music = (
final: prev: {
youtube-music = prev.youtube-music.overrideAttrs (old: rec {
pname = "youtube-music";
version = "3a7d3ff73";
src = prev.fetchFromGitHub {
owner = "pear-devs";
repo = "pear-desktop";
rev = "3a7d3ff73de49fcf7e7051dd1bdf450db4b222bf";
sha256 = "sha256-Q/E37HzQR2Ghxs8vV7WNCXn+DqIhpjhY3SoW3OMITTs=";
};
postPatch =
let
patch = prev.fetchurl {
url = "https://github.com/pear-devs/pear-desktop/commit/25fccc9a62044ca7006f271a6a2520724e5720e1.patch";
hash = "sha256-WAiaqsWlOXyv7FRlvM0LUY17dwCI8BQsQdO1M4zYg7k=";
};
in
''
${prev.git}/bin/git apply -R -p1 < ${patch}
'';
pnpmDeps = prev.pnpm.fetchDeps {
inherit pname version src;
fetcherVersion = 2;
hash = "sha256-9arC2c92U2tILFCBIRcGo9iNaPbNefDDfR9lGaSS88E=";
};
});
}
);
pkgs_gamescope = import inputs.nixpkgs-gamescope { pkgs_gamescope = import inputs.nixpkgs-gamescope {
inherit system; inherit system;
config = { config = {

1
paws.txt Normal file
View File

@@ -0,0 +1 @@
paws

View File

@@ -1,25 +0,0 @@
#! /nix/store/cl2gkgnh26mmpka81pc2g5bzjfrili92-bash-5.3p3/bin/bash -e
if [ -x "/run/wrappers/bin/__chromium-suid-sandbox" ]
then
export CHROME_DEVEL_SANDBOX="/run/wrappers/bin/__chromium-suid-sandbox"
else
export CHROME_DEVEL_SANDBOX="/nix/store/wb5fr6ximbq19vbfgr5dw7miqnkqj6h4-helium-browser-0.5.7-141.0.7390.107-sandbox/bin/__chromium-suid-sandbox"
fi
# Make generated desktop shortcuts have a valid executable name.
export CHROME_WRAPPER='helium'
# To avoid loading .so files from cwd, LD_LIBRARY_PATH here must not
# contain an empty section before or after a colon.
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH${LD_LIBRARY_PATH:+:}/nix/store/lm4anvzaxv13aw24cb9cxpwkyrq9d97v-libva-2.22.0/lib:/nix/store/plx9hmh9gbd8s7nbiaijz49501br2vvf-pipewire-1.4.8/lib:/nix/store/7gr1mq9q40xcxirsawn34kzxj8kmgcl6-wayland-1.24.0/lib:/nix/store/m9disdwacfbmfpl9x6v7h7011rbahz7f-gtk+3-3.24.49/lib:/nix/store/2329310vfm5ivldbrnwp317ijcmzbfzi-gtk4-4.18.6/lib:/nix/store/xn5g4ncd73szqypzzmd98dk8xlzncwk4-krb5-1.22.1-lib/lib"
# libredirect causes chromium to deadlock on startup
export LD_PRELOAD="$(echo -n "$LD_PRELOAD" | /nix/store/00bc157nm93q5fjz551fwk60ihlbilvj-coreutils-9.7/bin/tr ':' '\n' | /nix/store/6q57mnfak3q8ss656qgp245qzqvnniyr-gnugrep-3.12/bin/grep -v /lib/libredirect\\.so$ | /nix/store/00bc157nm93q5fjz551fwk60ihlbilvj-coreutils-9.7/bin/tr '\n' ':')"
export XDG_DATA_DIRS=/nix/store/fgyxm1lpvpd13asgmviypbi4sl6a73w2-cups-2.4.14/share:/nix/store/m9disdwacfbmfpl9x6v7h7011rbahz7f-gtk+3-3.24.49/share:/nix/store/2329310vfm5ivldbrnwp317ijcmzbfzi-gtk4-4.18.6/share:/nix/store/f0ih1z5iajsax2rmryck7a6j2ys1k37k-adwaita-icon-theme-48.0/share:/nix/store/gffh39nwyysqncknijxn7hpyasrqszax-hicolor-icon-theme-0.18/share:/nix/store/d177qdbszw6wlmd1yahgk1mbafxbyqmm-gsettings-desktop-schemas-48.0/share/gsettings-schemas/gsettings-desktop-schemas-48.0:/nix/store/m9disdwacfbmfpl9x6v7h7011rbahz7f-gtk+3-3.24.49/share/gsettings-schemas/gtk+3-3.24.49:/nix/store/2329310vfm5ivldbrnwp317ijcmzbfzi-gtk4-4.18.6/share/gsettings-schemas/gtk4-4.18.6${XDG_DATA_DIRS:+:}$XDG_DATA_DIRS
# Mainly for xdg-open but also other xdg-* tools (this is only a fallback; $PATH is suffixed so that other implementations can be used):
export PATH="$PATH${PATH:+:}/nix/store/4y6rpi6hsmnm120xbp3f5xmwa0vgqcqp-xdg-utils-1.2.1/bin"
exec "/nix/store/swqp1gsx4nyvxxalgkpgzh6z7yryd0np-helium-browser-unwrapped-0.5.7-141.0.7390.107/libexec/helium/helium" ${NIXOS_OZONE_WL:+${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime=true}} "$@"

View File

@@ -1,25 +0,0 @@
#! /nix/store/cl2gkgnh26mmpka81pc2g5bzjfrili92-bash-5.3p3/bin/bash -e
if [ -x "/run/wrappers/bin/__chromium-suid-sandbox" ]
then
export CHROME_DEVEL_SANDBOX="/run/wrappers/bin/__chromium-suid-sandbox"
else
export CHROME_DEVEL_SANDBOX="/nix/store/wb5fr6ximbq19vbfgr5dw7miqnkqj6h4-helium-browser-0.5.7-141.0.7390.107-sandbox/bin/__chromium-suid-sandbox"
fi
# Make generated desktop shortcuts have a valid executable name.
export CHROME_WRAPPER='helium'
# To avoid loading .so files from cwd, LD_LIBRARY_PATH here must not
# contain an empty section before or after a colon.
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH${LD_LIBRARY_PATH:+:}/nix/store/lm4anvzaxv13aw24cb9cxpwkyrq9d97v-libva-2.22.0/lib:/nix/store/plx9hmh9gbd8s7nbiaijz49501br2vvf-pipewire-1.4.8/lib:/nix/store/7gr1mq9q40xcxirsawn34kzxj8kmgcl6-wayland-1.24.0/lib:/nix/store/m9disdwacfbmfpl9x6v7h7011rbahz7f-gtk+3-3.24.49/lib:/nix/store/2329310vfm5ivldbrnwp317ijcmzbfzi-gtk4-4.18.6/lib:/nix/store/xn5g4ncd73szqypzzmd98dk8xlzncwk4-krb5-1.22.1-lib/lib"
# libredirect causes chromium to deadlock on startup
export LD_PRELOAD="$(echo -n "$LD_PRELOAD" | /nix/store/00bc157nm93q5fjz551fwk60ihlbilvj-coreutils-9.7/bin/tr ':' '\n' | /nix/store/6q57mnfak3q8ss656qgp245qzqvnniyr-gnugrep-3.12/bin/grep -v /lib/libredirect\\.so$ | /nix/store/00bc157nm93q5fjz551fwk60ihlbilvj-coreutils-9.7/bin/tr '\n' ':')"
export XDG_DATA_DIRS=/nix/store/fgyxm1lpvpd13asgmviypbi4sl6a73w2-cups-2.4.14/share:/nix/store/m9disdwacfbmfpl9x6v7h7011rbahz7f-gtk+3-3.24.49/share:/nix/store/2329310vfm5ivldbrnwp317ijcmzbfzi-gtk4-4.18.6/share:/nix/store/f0ih1z5iajsax2rmryck7a6j2ys1k37k-adwaita-icon-theme-48.0/share:/nix/store/gffh39nwyysqncknijxn7hpyasrqszax-hicolor-icon-theme-0.18/share:/nix/store/d177qdbszw6wlmd1yahgk1mbafxbyqmm-gsettings-desktop-schemas-48.0/share/gsettings-schemas/gsettings-desktop-schemas-48.0:/nix/store/m9disdwacfbmfpl9x6v7h7011rbahz7f-gtk+3-3.24.49/share/gsettings-schemas/gtk+3-3.24.49:/nix/store/2329310vfm5ivldbrnwp317ijcmzbfzi-gtk4-4.18.6/share/gsettings-schemas/gtk4-4.18.6${XDG_DATA_DIRS:+:}$XDG_DATA_DIRS
# Mainly for xdg-open but also other xdg-* tools (this is only a fallback; $PATH is suffixed so that other implementations can be used):
export PATH="$PATH${PATH:+:}/nix/store/4y6rpi6hsmnm120xbp3f5xmwa0vgqcqp-xdg-utils-1.2.1/bin"
exec "/nix/store/swqp1gsx4nyvxxalgkpgzh6z7yryd0np-helium-browser-unwrapped-0.5.7-141.0.7390.107/libexec/helium/helium" ${NIXOS_OZONE_WL:+${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime=true}} "$@"

View File

@@ -1,222 +0,0 @@
[Desktop Entry]
StartupWMClass=helium-browser
Version=1.0
Name=Helium
# Only KDE 4 seems to use GenericName, so we reuse the KDE strings.
# From Ubuntu's language-pack-kde-XX-base packages, version 9.04-20090413.
GenericName=Web Browser
GenericName[ar]=متصفح الشبكة
GenericName[bg]=Уеб браузър
GenericName[ca]=Navegador web
GenericName[cs]=WWW prohlížeč
GenericName[da]=Browser
GenericName[de]=Web-Browser
GenericName[el]=Περιηγητής ιστού
GenericName[en_GB]=Web Browser
GenericName[es]=Navegador web
GenericName[et]=Veebibrauser
GenericName[fi]=WWW-selain
GenericName[fr]=Navigateur Web
GenericName[gu]=વેબ બ્રાઉઝર
GenericName[he]=דפדפן אינטרנט
GenericName[hi]=वेब ब्राउज़र
GenericName[hu]=Webböngésző
GenericName[it]=Browser Web
GenericName[ja]=ウェブブラウザ
GenericName[kn]=ಜಾಲ ವೀಕ್ಷಕ
GenericName[ko]=웹 브라우저
GenericName[lt]=Žiniatinklio naršyklė
GenericName[lv]=Tīmekļa pārlūks
GenericName[ml]=വെബ് ബ്രൌസര്‍
GenericName[mr]=वेब ब्राऊजर
GenericName[nb]=Nettleser
GenericName[nl]=Webbrowser
GenericName[pl]=Przeglądarka WWW
GenericName[pt]=Navegador Web
GenericName[pt_BR]=Navegador da Internet
GenericName[ro]=Navigator de Internet
GenericName[ru]=Веб-браузер
GenericName[sl]=Spletni brskalnik
GenericName[sv]=Webbläsare
GenericName[ta]=இணைய உலாவி
GenericName[th]=เว็บเบราว์เซอร์
GenericName[tr]=Web Tarayıcı
GenericName[uk]=Навігатор Тенет
GenericName[zh_CN]=网页浏览器
GenericName[zh_HK]=網頁瀏覽器
GenericName[zh_TW]=網頁瀏覽器
# Not translated in KDE, from Epiphany 2.26.1-0ubuntu1.
GenericName[bn]=ওয়েব ব্রাউজার
GenericName[fil]=Web Browser
GenericName[hr]=Web preglednik
GenericName[id]=Browser Web
GenericName[or]=ଓ୍ବେବ ବ୍ରାଉଜର
GenericName[sk]=WWW prehliadač
GenericName[sr]=Интернет прегледник
GenericName[te]=మహాతల అన్వేషి
GenericName[vi]=Bộ duyệt Web
# Gnome and KDE 3 uses Comment.
Comment=Access the Internet
Comment[ar]=الدخول إلى الإنترنت
Comment[bg]=Достъп до интернет
Comment[bn]=ইন্টারনেটটি অ্যাক্সেস করুন
Comment[ca]=Accedeix a Internet
Comment[cs]=Přístup k internetu
Comment[da]=Få adgang til internettet
Comment[de]=Internetzugriff
Comment[el]=Πρόσβαση στο Διαδίκτυο
Comment[en_GB]=Access the Internet
Comment[es]=Accede a Internet.
Comment[et]=Pääs Internetti
Comment[fi]=Käytä internetiä
Comment[fil]=I-access ang Internet
Comment[fr]=Accéder à Internet
Comment[gu]=ઇંટરનેટ ઍક્સેસ કરો
Comment[he]=גישה אל האינטרנט
Comment[hi]=इंटरनेट तक पहुंच स्थापित करें
Comment[hr]=Pristup Internetu
Comment[hu]=Internetelérés
Comment[id]=Akses Internet
Comment[it]=Accesso a Internet
Comment[ja]=インターネットにアクセス
Comment[kn]=ಇಂಟರ್ನೆಟ್ ಅನ್ನು ಪ್ರವೇಶಿಸಿ
Comment[ko]=인터넷 연결
Comment[lt]=Interneto prieiga
Comment[lv]=Piekļūt internetam
Comment[ml]=ഇന്റര്‍‌നെറ്റ് ആക്‌സസ് ചെയ്യുക
Comment[mr]=इंटरनेटमध्ये प्रवेश करा
Comment[nb]=Gå til Internett
Comment[nl]=Verbinding maken met internet
Comment[or]=ଇଣ୍ଟର୍ନେଟ୍ ପ୍ରବେଶ କରନ୍ତୁ
Comment[pl]=Skorzystaj z internetu
Comment[pt]=Aceder à Internet
Comment[pt_BR]=Acessar a internet
Comment[ro]=Accesaţi Internetul
Comment[ru]=Доступ в Интернет
Comment[sk]=Prístup do siete Internet
Comment[sl]=Dostop do interneta
Comment[sr]=Приступите Интернету
Comment[sv]=Gå ut på Internet
Comment[ta]=இணையத்தை அணுகுதல்
Comment[te]=ఇంటర్నెట్‌ను ఆక్సెస్ చెయ్యండి
Comment[th]=เข้าถึงอินเทอร์เน็ต
Comment[tr]=İnternet'e erişin
Comment[uk]=Доступ до Інтернету
Comment[vi]=Truy cập Internet
Comment[zh_CN]=访问互联网
Comment[zh_HK]=連線到網際網路
Comment[zh_TW]=連線到網際網路
Exec=helium %U
StartupNotify=true
Terminal=false
Icon=helium
Type=Application
Categories=Network;WebBrowser;
MimeType=application/pdf;application/rdf+xml;application/rss+xml;application/xhtml+xml;application/xhtml_xml;application/xml;image/gif;image/jpeg;image/png;image/webp;text/html;text/xml;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/webcal;x-scheme-handler/mailto;x-scheme-handler/about;x-scheme-handler/unknown
Actions=new-window;new-private-window;
[Desktop Action new-window]
Name=New Window
Name[am]=አዲስ መስኮት
Name[ar]=نافذة جديدة
Name[bg]=Нов прозорец
Name[bn]=নতুন উইন্ডো
Name[ca]=Finestra nova
Name[cs]=Nové okno
Name[da]=Nyt vindue
Name[de]=Neues Fenster
Name[el]=Νέο Παράθυρο
Name[en_GB]=New Window
Name[es]=Nueva ventana
Name[et]=Uus aken
Name[fa]=پنجره جدید
Name[fi]=Uusi ikkuna
Name[fil]=New Window
Name[fr]=Nouvelle fenêtre
Name[gu]=નવી વિંડો
Name[hi]=नई विंडो
Name[hr]=Novi prozor
Name[hu]=Új ablak
Name[id]=Jendela Baru
Name[it]=Nuova finestra
Name[iw]=חלון חדש
Name[ja]=新規ウインドウ
Name[kn]=ಹೊಸ ವಿಂಡೊ
Name[ko]=새 창
Name[lt]=Naujas langas
Name[lv]=Jauns logs
Name[ml]=പുതിയ വിന്‍ഡോ
Name[mr]=नवीन विंडो
Name[nl]=Nieuw venster
Name[no]=Nytt vindu
Name[pl]=Nowe okno
Name[pt]=Nova janela
Name[pt_BR]=Nova janela
Name[ro]=Fereastră nouă
Name[ru]=Новое окно
Name[sk]=Nové okno
Name[sl]=Novo okno
Name[sr]=Нови прозор
Name[sv]=Nytt fönster
Name[sw]=Dirisha Jipya
Name[ta]=புதிய சாளரம்
Name[te]=క్రొత్త విండో
Name[th]=หน้าต่างใหม่
Name[tr]=Yeni Pencere
Name[uk]=Нове вікно
Name[vi]=Cửa sổ Mới
Name[zh_CN]=新建窗口
Name[zh_TW]=開新視窗
Exec=helium
[Desktop Action new-private-window]
Name=New Incognito Window
Name[ar]=نافذة جديدة للتصفح المتخفي
Name[bg]=Нов прозорец „инкогнито“
Name[bn]=নতুন ছদ্মবেশী উইন্ডো
Name[ca]=Finestra d'incògnit nova
Name[cs]=Nové anonymní okno
Name[da]=Nyt inkognitovindue
Name[de]=Neues Inkognito-Fenster
Name[el]=Νέο παράθυρο για ανώνυμη περιήγηση
Name[en_GB]=New Incognito window
Name[es]=Nueva ventana de incógnito
Name[et]=Uus inkognito aken
Name[fa]=پنجره جدید حالت ناشناس
Name[fi]=Uusi incognito-ikkuna
Name[fil]=Bagong Incognito window
Name[fr]=Nouvelle fenêtre de navigation privée
Name[gu]=નવી છુપી વિંડો
Name[hi]=नई गुप्त विंडो
Name[hr]=Novi anoniman prozor
Name[hu]=Új Inkognitóablak
Name[id]=Jendela Penyamaran baru
Name[it]=Nuova finestra di navigazione in incognito
Name[iw]=חלון חדש לגלישה בסתר
Name[ja]=新しいシークレット ウィンドウ
Name[kn]=ಹೊಸ ಅಜ್ಞಾತ ವಿಂಡೋ
Name[ko]=새 시크릿 창
Name[lt]=Naujas inkognito langas
Name[lv]=Jauns inkognito režīma logs
Name[ml]=പുതിയ വേഷ പ്രച്ഛന്ന വിന്‍ഡോ
Name[mr]=नवीन गुप्त विंडो
Name[nl]=Nieuw incognitovenster
Name[no]=Nytt inkognitovindu
Name[pl]=Nowe okno incognito
Name[pt]=Nova janela de navegação anónima
Name[pt_BR]=Nova janela anônima
Name[ro]=Fereastră nouă incognito
Name[ru]=Новое окно в режиме инкогнито
Name[sk]=Nové okno inkognito
Name[sl]=Novo okno brez beleženja zgodovine
Name[sr]=Нови прозор за прегледање без архивирања
Name[sv]=Nytt inkognitofönster
Name[ta]=புதிய மறைநிலைச் சாளரம்
Name[te]=క్రొత్త అజ్ఞాత విండో
Name[th]=หน้าต่างใหม่ที่ไม่ระบุตัวตน
Name[tr]=Yeni Gizli pencere
Name[uk]=Нове вікно в режимі анонімного перегляду
Name[vi]=Cửa sổ ẩn danh mới
Name[zh_CN]=新建隐身窗口
Name[zh_TW]=新增無痕式視窗
Exec=helium --incognito

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

View File

@@ -1,27 +1,46 @@
doloro-hashed_password: ENC[AES256_GCM,data:RYB/bSNTz1TeGucdFHrxxhOqvqQYvQS3lm44I1Lf3LIEVMXL5s41zxIw0S+JVdlq8I3oHDY4C3o5V4lu+8qAWMyIZYp/6Xp4cw==,iv:yOuKk95skNZ5z805vtoJwvyOdsh08BuyBSgXN+M4Ybo=,tag:QAFhUYuqHT6Spw/l4feY4g==,type:str] 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] 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] meow: ENC[AES256_GCM,data:JVzenw==,iv:oCOo9//r5s2K4pSeH5UNEj0LL+9h2yq0G0DPOfwjmyQ=,tag:0gu9FNOrjQ8fpB+B+RbGSg==,type:str]
sops: sops:
age: age:
- recipient: age1ykcy2r4kk729e7adqxu8s24ujc60z5eux7ma0ca4ruzydwgm5p6qmdp838 - recipient: age1ykcy2r4kk729e7adqxu8s24ujc60z5eux7ma0ca4ruzydwgm5p6qmdp838
enc: | enc: |
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBBWlVIU0pRSGZuRGlOeTdU YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBIYVcvRFNGOUwyTllMSWtX
dnd1T1RrUTFOYUNVMWUwc25mdU1CZzc4d0hrCkFObERLdlR4QWovV1p3dDR5RHVt WGdEeWVBa0U5MXROTXEwSzVJZms5MWZmM1RzCk9ra1FmT2tlbkp4ZW5tYW90SEhK
RW5YRnJZakhLY05BUjUrOG53TTZKT2sKLS0tIFZlWmVSVzJtS1JRa0hncUV4elRq Y25TNmFrMEg4TzJIT0wwaGRQMlYrZXMKLS0tIEpKaEMvdHB6aVBodmN1OERXZ2da
Z1k5VHE1ZlVxVDN1YlJDMG50elNNdzAK+SfOCYdEEqLJFuXCxkbQ2QGmwAGgAMMD SUh3TjIreHJBL0VEUXJkOGpseVphYlkKnhM3XxcBXG4Y+OedQzcngNACsFoASPTp
xA8dLWq2Ur0/CzUaW4Y8uN83uh/o04sJuR+0N+kYzPZabDCxiy3ibQ== Ik5COr5AVsinTS+uOpNDKIY+y0mwkZq50NSIBMy0drhDjd3i+h5dmA==
-----END AGE ENCRYPTED FILE-----
- recipient: age1e6vws55p0g23qzthm4qa93hpt6lqmck6670gkygph0sc0j7my4uq5wqjfh
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAwWmZGZWUwZUk5UEk2Ujgz
S0RHd0VSUWNEbWtoTlRkOWphS0IzeE8vT0FFCjlxaFVESGdpeVFCUlRCaGo0U0pZ
Y1NFQXRNVm52SXgxMGtkc2NVTTRzMGcKLS0tIER5bHZLV0lsczh6dXdJQWpjakpX
Zms5MnphZ09UZWVNdFcrREx5U1Y0UGMKE9KkY+8lbZ7to2aGhsJ4iSmboyfekOJi
giQ1GWdOs/MJAPN/xgcHzfNj7hzEUJxgj5z0kd0q2GzZCOvGfO16NA==
-----END AGE ENCRYPTED FILE-----
- recipient: age1x3lahhkefkap67cdmdjcqaxan9hp62er78akr79v9m73nvgugpeqk0y32a
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA3cnhuNDh3SEFxZUpXTHdv
RWRHNVFTcm1xbjdiN3FRRjFVR2JPRkdCcXd3Cm51VHptYXVlYnQzY0pJSGt1anZn
QTZ3YTgwSFJUUUxsMEYrdk9RRUFyN0UKLS0tIFJKNDNKY0lnQVdlM1gycm1sRkJ2
cHJTV1FZbDZ0M3NpS2w1YW01ZGhIWDAKef6765U4ew5QPmbHhDuufAjq0bS/qhJh
9N7g+a4vqTvv5TaOYQ98JBgfVclOZYIx9WO6xPJnb495gPyhWxEjuQ==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
- recipient: age1exzngtk4d9vcsmcq6ap5xx3ca9qacqjkrv86ymged7msx9z6vfyqsf5sjq - recipient: age1exzngtk4d9vcsmcq6ap5xx3ca9qacqjkrv86ymged7msx9z6vfyqsf5sjq
enc: | enc: |
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB1MlF2Y3VSKzJIa3pCQUM5 YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBheUI4VzZUN3NSTGc3U1kv
bWhsN2dON0RHaU9DcnYycFBWQlZXMEJOdVRRCjA2MDhMWS9tS0hoV0s5L1BEaEtH YzJqRk1mNjBUVTdFNzRNTTZQSmcvUW5zcnowCjI4WlRoL2pPeDZWRy9TaEZUQ1po
Wis0SXBHWWFnTDM1b1V3ZHdhVTVvSFUKLS0tIFc0OVZtOWxscW5wdGlya3Z2WGU0 YUl1emFGL29qYW9iZXExUVBZai9GN2sKLS0tIEZ1ZEM2N05zYzU4OFdUVUtDaHRu
bVJ1ZWNTSkIvcGM0V1hrY3YrbDdLNkUKmKoEuTGE9OtkpHIR8xBl7JxIgnhu4LE1 a3Y2V1I5TjFnVUNiWEZlZkVMekFZelEKXZc7W3mZcj/rypQ+Wm2Iqvd/4Ry/n507
FQvk9axOtaE/WrwR8oKOtg+1c1a8uidXEK9IerNby7NGVQUE/KsFJA== FcYa+F2LT32D43AoaPZxEHIyJCYUeGpD7Z9rcI822u4pOpCvuoKiRg==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
lastmodified: "2025-12-23T21:31:15Z" lastmodified: "2025-12-28T17:02:38Z"
mac: ENC[AES256_GCM,data:iNr37OmqniV2cmyDZSrP+N6Ni7lxFeFkwOM1CknVZ9Bl8nW7UE8dmKOzzK/Lt9YZi6KPzld1RnOqZIKWXY8dpr+XAStUQsxQOOQbeuZqTchJgCYIdRAViDJeFtIY3m4Vubtk7PllFwVk6b6Fb6hZT1Clj15gW1EZLDols9nIdX0=,iv:GEFc+7PR3cEe5OPAq5TF//cZp7IJ0E9lOuiAYA02QnQ=,tag:ORo1UxBzm5s87r0mM8qJ4g==,type:str] mac: ENC[AES256_GCM,data:uWBbdr10CpCUsn6TcaqewwqnXlICizTGW+arCLZz5S0b+Nc8iznq98Ev/G4M9mg4f79JRSwXnL6KgtVyf0Hd5LJuEhmViv2wTNfOTBffN3AV/Bvz2qCuwhD14GzPGUH3oYijfx+EB1LaGLniE2rx85h+q1hasRUlUY8UE/ndzus=,iv:rIM5T3PkzTsJYRjvWWbJyEcKu3evRcYJhVNeGCtOlms=,tag:pCYvDaI0qLIvJJzwT08nwQ==,type:str]
unencrypted_suffix: _unencrypted unencrypted_suffix: _unencrypted
version: 3.11.0 version: 3.11.0