Compare commits
10 Commits
6da8588e40
...
679f51e6da
| Author | SHA1 | Date | |
|---|---|---|---|
| 679f51e6da | |||
| b099248489 | |||
|
|
1b2c5dc7cc | ||
| b7400098b0 | |||
|
|
6231373ebc | ||
| 354c7c38bd | |||
| 50b20197b8 | |||
| 702f5cb2ea | |||
| 2ff6ff45bf | |||
| 56adbf671f |
10
.github/workflows/weekly-build-cache.yml
vendored
10
.github/workflows/weekly-build-cache.yml
vendored
@ -2,8 +2,7 @@ name: Weekly NixOS Build & Cache
|
||||
|
||||
on:
|
||||
schedule:
|
||||
# Run every Sunday at 2 AM UTC
|
||||
- cron: "0 2 * * 0"
|
||||
- cron: "30 09 * * 1,5"
|
||||
workflow_dispatch: # Allow manual trigger
|
||||
|
||||
jobs:
|
||||
@ -53,6 +52,12 @@ jobs:
|
||||
echo "Building server configuration..."
|
||||
nix build .#nixosConfigurations.server.config.system.build.toplevel --quiet
|
||||
|
||||
- name: Build emacs-vm configuration
|
||||
if: steps.check_changes.outputs.changes == 'true'
|
||||
run: |
|
||||
echo "Building emacs-vm configuration..."
|
||||
nix build .#emacs-vm --quiet
|
||||
|
||||
- name: Push to cache
|
||||
if: steps.check_changes.outputs.changes == 'true'
|
||||
run: |
|
||||
@ -65,6 +70,7 @@ jobs:
|
||||
# Push the specific system derivations we just built
|
||||
nix build .#nixosConfigurations.workstation.config.system.build.toplevel --print-out-paths | attic push servidos:nixos --stdin
|
||||
nix build .#nixosConfigurations.server.config.system.build.toplevel --print-out-paths | attic push servidos:nixos --stdin
|
||||
nix build .#emacs-vm --print-out-paths | attic push servidos:nixos --stdin
|
||||
|
||||
- name: Commit updated flake.lock
|
||||
if: steps.check_changes.outputs.changes == 'true'
|
||||
|
||||
@ -35,5 +35,8 @@ _final: prev: {
|
||||
withVencord = true;
|
||||
withOpenASAR = true;
|
||||
};
|
||||
waybar = prev.waybar.overrideAttrs (old: {
|
||||
mesonFlags = old.mesonFlags ++ [ "-Dexperimental=true" ];
|
||||
});
|
||||
inherit (pkgsU) symbola mealie flaresolver;
|
||||
}
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
{ pkgs }:
|
||||
{ pkgs, inputs }:
|
||||
let
|
||||
inherit (inputs) wallpapers;
|
||||
mkScheme =
|
||||
{
|
||||
color ? null,
|
||||
@ -26,12 +27,12 @@ in
|
||||
name = "mocha";
|
||||
color = "brown";
|
||||
polarity = "dark";
|
||||
image = ../wallpapers/la_fragua_de_vulcano.jpg;
|
||||
image = "${wallpapers}/la_fragua_de_vulcano.jpg";
|
||||
};
|
||||
who = mkScheme {
|
||||
name = "catppuccin-frappe";
|
||||
polarity = "dark";
|
||||
image = ../wallpapers/Nikolay_Kasatkin_Who.jpeg;
|
||||
image = "${wallpapers}/Nikolay_Kasatkin_Who.jpeg";
|
||||
iconPackage = pkgs.catppuccin-papirus-folders.override {
|
||||
flavor = "frappe";
|
||||
accent = "peach";
|
||||
@ -41,25 +42,25 @@ in
|
||||
name = "solarflare";
|
||||
color = "darkcyan";
|
||||
polarity = "dark";
|
||||
image = ../wallpapers/space.jpg;
|
||||
image = "${wallpapers}/space.jpg";
|
||||
};
|
||||
jesus = mkScheme {
|
||||
color = "red";
|
||||
name = "equilibrium-light";
|
||||
polarity = "light";
|
||||
image = ../wallpapers/jesus.png;
|
||||
image = "${wallpapers}/jesus.png";
|
||||
};
|
||||
ballerinas = mkScheme {
|
||||
color = "brown";
|
||||
name = "mocha";
|
||||
polarity = "dark";
|
||||
image = ../wallpapers/Waay-Ballerinas.jpeg;
|
||||
image = "${wallpapers}/Waay-Ballerinas.jpeg";
|
||||
};
|
||||
paul = mkScheme {
|
||||
color = "green";
|
||||
name = "valua";
|
||||
polarity = "light";
|
||||
image = ../wallpapers/paul1.jpg;
|
||||
image = "${wallpapers}/paul1.jpg";
|
||||
base16Scheme = {
|
||||
base00 = "#1a1f16"; # dark forest floor (was deep green-black)
|
||||
base01 = "#23291a"; # bark shadow
|
||||
@ -79,29 +80,29 @@ in
|
||||
base0F = "#5c8b55"; # swamp olive
|
||||
};
|
||||
};
|
||||
};
|
||||
cheems = mkScheme {
|
||||
color = "yellow";
|
||||
name = "equilibrium-light";
|
||||
polarity = "light";
|
||||
image = ../wallpapers/cheems.png;
|
||||
base16Scheme = {
|
||||
base00 = "#f5f0e9"; # very light cream
|
||||
base01 = "#e8ddd4"; # light beige
|
||||
base02 = "#d4c4b0"; # warm tan
|
||||
base03 = "#b8a082"; # golden brown
|
||||
base04 = "#9c7c5a"; # medium brown
|
||||
base05 = "#7a5f3f"; # darker brown
|
||||
base06 = "#5c4328"; # dark brown
|
||||
base07 = "#3e2d1a"; # very dark brown
|
||||
base08 = "#d2691e"; # golden orange
|
||||
base09 = "#cd853f"; # peru
|
||||
base0A = "#daa520"; # goldenrod
|
||||
base0B = "#228b22"; # forest green
|
||||
base0C = "#20b2aa"; # light sea green
|
||||
base0D = "#4169e1"; # royal blue
|
||||
base0E = "#8b008b"; # dark magenta
|
||||
base0F = "#dc143c"; # crimson
|
||||
cheems = mkScheme {
|
||||
color = "yellow";
|
||||
name = "equilibrium-light";
|
||||
polarity = "light";
|
||||
image = "${wallpapers}/cheems.png";
|
||||
base16Scheme = {
|
||||
base00 = "#f5f0e9"; # very light cream
|
||||
base01 = "#e8ddd4"; # light beige
|
||||
base02 = "#d4c4b0"; # warm tan
|
||||
base03 = "#b8a082"; # golden brown
|
||||
base04 = "#9c7c5a"; # medium brown
|
||||
base05 = "#7a5f3f"; # darker brown
|
||||
base06 = "#5c4328"; # dark brown
|
||||
base07 = "#3e2d1a"; # very dark brown
|
||||
base08 = "#d2691e"; # golden orange
|
||||
base09 = "#cd853f"; # peru
|
||||
base0A = "#daa520"; # goldenrod
|
||||
base0B = "#228b22"; # forest green
|
||||
base0C = "#20b2aa"; # light sea green
|
||||
base0D = "#4169e1"; # royal blue
|
||||
base0E = "#8b008b"; # dark magenta
|
||||
base0F = "#dc143c"; # crimson
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@ -2,11 +2,14 @@
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
schemesFile = import ./schemes.nix { inherit pkgs; };
|
||||
scheme = schemesFile.schemes.who;
|
||||
schemesFile = import ./schemes.nix {
|
||||
inherit pkgs inputs;
|
||||
};
|
||||
scheme = schemesFile.schemes.cheems;
|
||||
cfg = config.my.stylix;
|
||||
in
|
||||
{
|
||||
|
||||
@ -1,6 +1,5 @@
|
||||
{
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
@ -8,22 +7,102 @@ let
|
||||
${pkgs.waybar}/bin/waybar &
|
||||
${pkgs.swww}/bin/swww init &
|
||||
sleep 1
|
||||
${pkgs.swww}/bin/swww img ${./wallpaper.jpeg} &
|
||||
'';
|
||||
in
|
||||
{
|
||||
config = {
|
||||
home-manager.users.jawz = {
|
||||
programs = {
|
||||
kitty.enable = true;
|
||||
};
|
||||
wayland.windowManager.hyprland = {
|
||||
enable = true;
|
||||
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
|
||||
systemd.variables = [ "--all" ];
|
||||
settings = {
|
||||
exec-once = "${startupScript}/bin/start";
|
||||
programs.hyprland.enable = true;
|
||||
services.greetd = {
|
||||
enable = true;
|
||||
settings.default_session = {
|
||||
command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --cmd Hyprland";
|
||||
user = "greeter";
|
||||
};
|
||||
};
|
||||
xdg.portal = {
|
||||
enable = true;
|
||||
extraPortals = [
|
||||
pkgs.xdg-desktop-portal-hyprland
|
||||
pkgs.xdg-desktop-portal-gtk
|
||||
];
|
||||
};
|
||||
users.users.jawz.packages = builtins.attrValues {
|
||||
inherit (pkgs)
|
||||
# Wayland utilities
|
||||
wl-clipboard
|
||||
wf-recorder
|
||||
grim
|
||||
slurp
|
||||
|
||||
wofi # Application launcher
|
||||
mako # Notification daemon
|
||||
libnotify # dependency of mako
|
||||
swaylock-effects # Screen locker
|
||||
nautilus # File manager
|
||||
;
|
||||
};
|
||||
home-manager.users.jawz = {
|
||||
programs.kitty.enable = true;
|
||||
wayland.windowManager.hyprland = {
|
||||
enable = true;
|
||||
settings = {
|
||||
"$mainMod" = "SUPER";
|
||||
exec-once = "${startupScript}/bin/start";
|
||||
general = {
|
||||
gaps_in = 5;
|
||||
gaps_out = 10;
|
||||
border_size = 2;
|
||||
layout = "dwindle";
|
||||
};
|
||||
dwindle = {
|
||||
pseudotile = true;
|
||||
preserve_split = true;
|
||||
force_split = 2;
|
||||
};
|
||||
bind = [
|
||||
"$mainMod, return, exec, kitty"
|
||||
"$mainMod, Q, killactive,"
|
||||
"$mainMod SHIFT, F, togglefloating,"
|
||||
"$mainMod, F, fullscreen,"
|
||||
"$mainMod, T, pin,"
|
||||
"$mainMod, G, togglegroup,"
|
||||
"$mainMod, bracketleft, changegroupactive, b"
|
||||
"$mainMod, bracketright, changegroupactive, f"
|
||||
"$mainMod, S, exec, wofi --show drun icons"
|
||||
"$mainMod, P, pin, active"
|
||||
|
||||
",XF86AudioRaiseVolume, exec, wpctl set-volume -l 1.4 @DEFAULT_AUDIO_SINK@ 5%+"
|
||||
",XF86AudioLowerVolume, exec, wpctl set-volume -l 1.4 @DEFAULT_AUDIO_SINK@ 5%-"
|
||||
|
||||
"$mainMod, left, movefocus, l"
|
||||
"$mainMod, right, movefocus, r"
|
||||
"$mainMod, up, movefocus, u"
|
||||
"$mainMod, down, movefocus, d"
|
||||
|
||||
"$mainMod, h, movefocus, l"
|
||||
"$mainMod, l, movefocus, r"
|
||||
"$mainMod, k, movefocus, u"
|
||||
"$mainMod, j, movefocus, d"
|
||||
|
||||
"$mainMod SHIFT, h, movewindow, l"
|
||||
"$mainMod SHIFT, l, movewindow, r"
|
||||
"$mainMod SHIFT, k, movewindow, u"
|
||||
"$mainMod SHIFT, j, movewindow, d"
|
||||
];
|
||||
binde = [
|
||||
"$mainMod SHIFT, h, moveactive, -20 0"
|
||||
"$mainMod SHIFT, l, moveactive, 20 0"
|
||||
"$mainMod SHIFT, k, moveactive, 0 -20"
|
||||
"$mainMod SHIFT, j, moveactive, 0 20"
|
||||
|
||||
"$mainMod CTRL, l, resizeactive, 30 0"
|
||||
"$mainMod CTRL, h, resizeactive, -30 0"
|
||||
"$mainMod CTRL, k, resizeactive, 0 -10"
|
||||
"$mainMod CTRL, j, resizeactive, 0 10"
|
||||
];
|
||||
bindm = [
|
||||
"$mainMod, mouse:272, movewindow"
|
||||
"$mainMod, mouse:273, resizewindow"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
35
flake.lock
generated
35
flake.lock
generated
@ -456,11 +456,11 @@
|
||||
"xdph": "xdph"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1759076381,
|
||||
"narHash": "sha256-ZWAsJnJvjjLMjH6hl5o4zVOTEuL3tmBzaJcoQYJE+aE=",
|
||||
"lastModified": 1759094452,
|
||||
"narHash": "sha256-j7IOTFnQRDjX4PzYb2p6CPviAc8cDrcorzGpM8J89uM=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "Hyprland",
|
||||
"rev": "c30036bdacbe5e87b49d6de6df652d56681ef457",
|
||||
"rev": "f854b5bffbdd13cfe7edad0ee157d6947ff99619",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -655,11 +655,11 @@
|
||||
"rev": "64a81ca78d03816ddcbbdc8a7b6186c975c6653a",
|
||||
"revCount": 104,
|
||||
"type": "git",
|
||||
"url": "https://git.servidos.lat/lebubu/scripts.git"
|
||||
"url": "https://git.servidos.lat/jawz/scripts.git"
|
||||
},
|
||||
"original": {
|
||||
"type": "git",
|
||||
"url": "https://git.servidos.lat/lebubu/scripts.git"
|
||||
"url": "https://git.servidos.lat/jawz/scripts.git"
|
||||
}
|
||||
},
|
||||
"nix-gaming": {
|
||||
@ -845,11 +845,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1759084735,
|
||||
"narHash": "sha256-G0m1drJGmQS2okeT6j33NzVKBbKPgb6+B786kzCjSiI=",
|
||||
"lastModified": 1759091793,
|
||||
"narHash": "sha256-BBeGZR3lbAp9x1CJxjQ2FkUZX4iOf5UIRvwUPQrSfFw=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nur",
|
||||
"rev": "1eac073db3f04be9eca753c8f0bf54b341e85e14",
|
||||
"rev": "e88fd7766e9b1af996a438341cbbd51d6ca1c621",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -922,7 +922,8 @@
|
||||
"nur": "nur",
|
||||
"sops-nix": "sops-nix",
|
||||
"stylix": "stylix",
|
||||
"ucodenix": "ucodenix"
|
||||
"ucodenix": "ucodenix",
|
||||
"wallpapers": "wallpapers"
|
||||
}
|
||||
},
|
||||
"sops-nix": {
|
||||
@ -1178,6 +1179,22 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"wallpapers": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1759117171,
|
||||
"narHash": "sha256-Oyp4MKcld+tlZISm2HvuRErgHUb2mztpOH6v3g8B9uA=",
|
||||
"ref": "refs/heads/main",
|
||||
"rev": "0bc27e282a4c13d43139c4794e80a5951e4787b8",
|
||||
"revCount": 1,
|
||||
"type": "git",
|
||||
"url": "https://git.servidos.lat/jawz/wallpapers.git"
|
||||
},
|
||||
"original": {
|
||||
"type": "git",
|
||||
"url": "https://git.servidos.lat/jawz/wallpapers.git"
|
||||
}
|
||||
},
|
||||
"xdph": {
|
||||
"inputs": {
|
||||
"hyprland-protocols": [
|
||||
|
||||
@ -10,9 +10,13 @@
|
||||
inputs.nixpkgs.follows = "";
|
||||
};
|
||||
jawz-scripts = {
|
||||
url = "git+https://git.servidos.lat/lebubu/scripts.git";
|
||||
url = "git+https://git.servidos.lat/jawz/scripts.git";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
wallpapers = {
|
||||
url = "git+https://git.servidos.lat/jawz/wallpapers.git";
|
||||
flake = false;
|
||||
};
|
||||
nur = {
|
||||
url = "github:nix-community/nur";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
|
||||
@ -6,6 +6,7 @@
|
||||
imports = [
|
||||
../../config/base.nix
|
||||
../../config/stylix.nix
|
||||
../../environments/hyprland.nix
|
||||
];
|
||||
virtualisation.vmVariant.virtualisation = {
|
||||
memorySize = 4096;
|
||||
@ -44,10 +45,5 @@
|
||||
];
|
||||
};
|
||||
networking.hostName = "emacs";
|
||||
services.xserver = {
|
||||
enable = true;
|
||||
displayManager.lightdm.enable = true;
|
||||
windowManager.i3.enable = true;
|
||||
};
|
||||
environment.systemPackages = [ ];
|
||||
}
|
||||
|
||||
@ -24,8 +24,8 @@
|
||||
};
|
||||
in
|
||||
[
|
||||
(buildMachine "workstation" 16 40)
|
||||
(buildMachine "server" 16 17)
|
||||
(buildMachine "workstation" 8 40)
|
||||
(buildMachine "server" 6 17)
|
||||
];
|
||||
networking = {
|
||||
hostName = "miniserver";
|
||||
|
||||
@ -1,32 +1,50 @@
|
||||
{
|
||||
emacs.enable = true;
|
||||
apps.dictionaries.enable = true;
|
||||
websites.portfolio.enableProxy = true;
|
||||
services.network.enable = true;
|
||||
enableProxy = true;
|
||||
shell = {
|
||||
tools.enable = true;
|
||||
multimedia.enable = true;
|
||||
let
|
||||
mkEnabled = name: {
|
||||
inherit name;
|
||||
value.enable = true;
|
||||
};
|
||||
dev = {
|
||||
nix.enable = true;
|
||||
python.enable = true;
|
||||
sh.enable = true;
|
||||
};
|
||||
units = {
|
||||
download.enable = true;
|
||||
stream-dl.enable = true;
|
||||
};
|
||||
scripts = {
|
||||
split-dir.enable = true;
|
||||
pika-list.enable = true;
|
||||
update-dns.enable = true;
|
||||
};
|
||||
servers = {
|
||||
audiobookshelf = {
|
||||
mkEnabledWithProxy = name: {
|
||||
inherit name;
|
||||
value = {
|
||||
enable = true;
|
||||
enableProxy = true;
|
||||
};
|
||||
qbittorrent.enable = true;
|
||||
};
|
||||
enableList = func: list: list |> map func |> builtins.listToAttrs;
|
||||
in
|
||||
{
|
||||
emacs.enable = true;
|
||||
enableProxy = true;
|
||||
websites.portfolio.enableProxy = true;
|
||||
apps = enableList mkEnabled [
|
||||
"dictionaries"
|
||||
];
|
||||
services = enableList mkEnabled [
|
||||
"network"
|
||||
];
|
||||
shell = enableList mkEnabled [
|
||||
"tools"
|
||||
"multimedia"
|
||||
];
|
||||
dev = enableList mkEnabled [
|
||||
"nix"
|
||||
"python"
|
||||
"sh"
|
||||
];
|
||||
units = enableList mkEnabled [
|
||||
"download"
|
||||
"stream-dl"
|
||||
];
|
||||
scripts = enableList mkEnabled [
|
||||
"split-dir"
|
||||
"pika-list"
|
||||
"update-dns"
|
||||
];
|
||||
servers =
|
||||
enableList mkEnabled [
|
||||
"qbittorrent"
|
||||
]
|
||||
// enableList mkEnabledWithProxy [
|
||||
"audiobookshelf"
|
||||
];
|
||||
}
|
||||
|
||||
@ -31,8 +31,8 @@
|
||||
hostName = "workstation";
|
||||
system = "x86_64-linux";
|
||||
sshUser = "nixremote";
|
||||
maxJobs = 12;
|
||||
speedFactor = 1;
|
||||
maxJobs = 8;
|
||||
speedFactor = 2;
|
||||
supportedFeatures = config.my.nix.features;
|
||||
}
|
||||
];
|
||||
|
||||
@ -18,6 +18,7 @@ in
|
||||
emacs.enable = true;
|
||||
stylix.enable = true;
|
||||
enableProxy = true;
|
||||
enableContainers = true;
|
||||
apps.dictionaries.enable = true;
|
||||
shell = enableList mkEnabled [
|
||||
"tools"
|
||||
|
||||
@ -1,20 +1,5 @@
|
||||
{ lib, config, ... }:
|
||||
let
|
||||
enableContainers = lib.any (opt: opt) [
|
||||
config.my.servers.collabora.enable
|
||||
config.my.servers.ryot.enable
|
||||
config.my.servers.lidarr.enable
|
||||
config.my.servers.prowlarr.enable
|
||||
config.my.servers.maloja.enable
|
||||
config.my.servers.multi-scrobbler.enable
|
||||
config.my.servers.flame.enable
|
||||
config.my.servers.flameSecret.enable
|
||||
config.my.servers.metube.enable
|
||||
config.my.servers.go-vod.enable
|
||||
config.my.servers.tranga.enable
|
||||
config.my.servers.drpp.enable
|
||||
config.my.servers.plex-discord-bot.enable
|
||||
];
|
||||
filterNames = file: file != "librewolf.nix";
|
||||
autoImport =
|
||||
dir:
|
||||
@ -182,7 +167,7 @@ in
|
||||
virtualisation = {
|
||||
containers.enable = true;
|
||||
oci-containers.backend = "podman";
|
||||
podman = lib.mkIf (enableContainers || config.my.enableContainers) {
|
||||
podman = lib.mkIf config.my.enableContainers {
|
||||
enable = true;
|
||||
dockerCompat = true;
|
||||
dockerSocket.enable = true;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user