big changes

This commit is contained in:
fwastring 2025-10-17 09:51:35 +02:00
parent ac9462c677
commit 51de7ef3a2
14 changed files with 481 additions and 105 deletions

140
flake.lock generated
View file

@ -100,9 +100,29 @@
"type": "github"
}
},
"bbk": {
"inputs": {
"flake-utils": "flake-utils",
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1760346178,
"narHash": "sha256-t/pGM7gQCXNbXusokzBegL3B0e/zXs9PUZ93k5hJV60=",
"ref": "main",
"rev": "268fa2ba6f22dd8f8d8b1efae8068cf94830ca8f",
"revCount": 6,
"type": "git",
"url": "https://git.wastring.com/fw/bbk"
},
"original": {
"ref": "main",
"type": "git",
"url": "https://git.wastring.com/fw/bbk"
}
},
"catppuccin": {
"inputs": {
"nixpkgs": "nixpkgs"
"nixpkgs": "nixpkgs_2"
},
"locked": {
"lastModified": 1759572023,
@ -120,7 +140,7 @@
},
"confetti": {
"inputs": {
"nixpkgs": "nixpkgs_2"
"nixpkgs": "nixpkgs_3"
},
"locked": {
"lastModified": 1759854845,
@ -245,7 +265,25 @@
},
"flake-utils": {
"inputs": {
"systems": "systems_3"
"systems": "systems"
},
"locked": {
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_2": {
"inputs": {
"systems": "systems_4"
},
"locked": {
"lastModified": 1731533236,
@ -474,9 +512,9 @@
"hyprlang": "hyprlang",
"hyprutils": "hyprutils",
"hyprwayland-scanner": "hyprwayland-scanner",
"nixpkgs": "nixpkgs_3",
"nixpkgs": "nixpkgs_4",
"pre-commit-hooks": "pre-commit-hooks",
"systems": "systems",
"systems": "systems_2",
"xdph": "xdph"
},
"locked": {
@ -692,7 +730,7 @@
"git-hooks": "git-hooks",
"hercules-ci-effects": "hercules-ci-effects",
"neovim-src": "neovim-src",
"nixpkgs": "nixpkgs_4",
"nixpkgs": "nixpkgs_5",
"treefmt-nix": "treefmt-nix"
},
"locked": {
@ -726,6 +764,22 @@
}
},
"nixpkgs": {
"locked": {
"lastModified": 1760038930,
"narHash": "sha256-Oncbh0UmHjSlxO7ErQDM3KM0A5/Znfofj2BSzlHLeVw=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "0b4defa2584313f3b781240b29d61f6f9f7e0df3",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1759381078,
"narHash": "sha256-gTrEEp5gEspIcCOx9PD8kMaF1iEmfBcTbO0Jag2QhQs=",
@ -741,7 +795,7 @@
"type": "github"
}
},
"nixpkgs_2": {
"nixpkgs_3": {
"locked": {
"lastModified": 1759733170,
"narHash": "sha256-TXnlsVb5Z8HXZ6mZoeOAIwxmvGHp1g4Dw89eLvIwKVI=",
@ -757,7 +811,7 @@
"type": "github"
}
},
"nixpkgs_3": {
"nixpkgs_4": {
"locked": {
"lastModified": 1759381078,
"narHash": "sha256-gTrEEp5gEspIcCOx9PD8kMaF1iEmfBcTbO0Jag2QhQs=",
@ -773,7 +827,7 @@
"type": "github"
}
},
"nixpkgs_4": {
"nixpkgs_5": {
"locked": {
"lastModified": 1759632233,
"narHash": "sha256-krgZxGAIIIKFJS+UB0l8do3sYUDWJc75M72tepmVMzE=",
@ -789,7 +843,7 @@
"type": "github"
}
},
"nixpkgs_5": {
"nixpkgs_6": {
"locked": {
"lastModified": 1759733170,
"narHash": "sha256-TXnlsVb5Z8HXZ6mZoeOAIwxmvGHp1g4Dw89eLvIwKVI=",
@ -805,7 +859,23 @@
"type": "github"
}
},
"nixpkgs_6": {
"nixpkgs_7": {
"locked": {
"lastModified": 1760038930,
"narHash": "sha256-Oncbh0UmHjSlxO7ErQDM3KM0A5/Znfofj2BSzlHLeVw=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "0b4defa2584313f3b781240b29d61f6f9f7e0df3",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_8": {
"locked": {
"lastModified": 1744536153,
"narHash": "sha256-awS2zRgF4uTwrOKwwiJcByDzDOdo3Q1rPZbiHQg/N38=",
@ -846,6 +916,25 @@
"type": "github"
}
},
"playerctl-gtk": {
"inputs": {
"nixpkgs": "nixpkgs_7"
},
"locked": {
"lastModified": 1760272643,
"narHash": "sha256-F6Zh5eCm31QdAnV6JQS/4EhBj8TkqlHkiZpdZ6Ne1Pc=",
"ref": "main",
"rev": "3b2edf9af206704d6b79b3d6174752ce3e506726",
"revCount": 4,
"type": "git",
"url": "https://git.wastring.com/fw/playerctl-gtk"
},
"original": {
"ref": "main",
"type": "git",
"url": "https://git.wastring.com/fw/playerctl-gtk"
}
},
"pre-commit-hooks": {
"inputs": {
"flake-compat": "flake-compat",
@ -871,13 +960,15 @@
},
"root": {
"inputs": {
"bbk": "bbk",
"catppuccin": "catppuccin",
"confetti": "confetti",
"home-manager": "home-manager",
"hyprland": "hyprland",
"minimal-tmux": "minimal-tmux",
"neovim-nightly-overlay": "neovim-nightly-overlay",
"nixpkgs": "nixpkgs_5",
"nixpkgs": "nixpkgs_6",
"playerctl-gtk": "playerctl-gtk",
"sops-nix": "sops-nix",
"stylix": "stylix",
"typsite": "typsite"
@ -885,7 +976,7 @@
},
"rust-overlay": {
"inputs": {
"nixpkgs": "nixpkgs_6"
"nixpkgs": "nixpkgs_8"
},
"locked": {
"lastModified": 1749004659,
@ -934,7 +1025,7 @@
"nixpkgs"
],
"nur": "nur",
"systems": "systems_2",
"systems": "systems_3",
"tinted-foot": "tinted-foot",
"tinted-kitty": "tinted-kitty",
"tinted-schemes": "tinted-schemes",
@ -956,6 +1047,21 @@
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_2": {
"locked": {
"lastModified": 1689347949,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
@ -970,7 +1076,7 @@
"type": "github"
}
},
"systems_2": {
"systems_3": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
@ -985,7 +1091,7 @@
"type": "github"
}
},
"systems_3": {
"systems_4": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
@ -1104,7 +1210,7 @@
},
"typsite": {
"inputs": {
"flake-utils": "flake-utils",
"flake-utils": "flake-utils_2",
"nixpkgs": [
"nixpkgs"
],

View file

@ -19,6 +19,8 @@
catppuccin.url = "github:catppuccin/nix";
confetti.url = "git+https://git.wastring.com/fw/confetti?ref=main";
playerctl-gtk.url = "git+https://git.wastring.com/fw/playerctl-gtk?ref=main";
bbk.url = "git+https://git.wastring.com/fw/bbk?ref=main";
# Neovim
neovim-nightly-overlay.url = "github:nix-community/neovim-nightly-overlay";
@ -44,6 +46,8 @@
sops-nix,
catppuccin,
confetti,
playerctl-gtk,
bbk,
...
}@inputs:
let
@ -63,6 +67,7 @@
stylix.nixosModules.stylix
./maskiner/legacy/configuration.nix
sops-nix.nixosModules.sops
bbk.nixosModules.default
];
};
node = nixpkgs.lib.nixosSystem {
@ -73,6 +78,7 @@
modules = [
./maskiner/node/configuration.nix
sops-nix.nixosModules.sops
bbk.nixosModules.default
];
};
core = nixpkgs.lib.nixosSystem {
@ -87,6 +93,8 @@
sops-nix.nixosModules.sops
catppuccin.nixosModules.catppuccin
confetti.nixosModules.default
playerctl-gtk.nixosModules.default
bbk.nixosModules.default
];
};
@ -95,7 +103,10 @@
inherit inputs outputs;
myhostname = "archive";
};
modules = [ ./maskiner/archive/configuration.nix ];
modules = [
./maskiner/archive/configuration.nix
bbk.nixosModules.default
];
};
};
};

View file

@ -31,10 +31,17 @@ in
];
kubernetes-tools.enable = true;
networking.networkmanager = {
enable = true;
plugins = with pkgs; [
networkmanager-openvpn
];
};
stylix = {
enable = true;
base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-mocha.yaml";
# base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-mocha.yaml";
base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-latte.yaml";
};
programs.ssh.knownHosts = {

View file

@ -30,6 +30,7 @@ in
( modulesDirectory + /services/actual )
( modulesDirectory + /services/forgejo )
( modulesDirectory + /services/wishlist )
( modulesDirectory + /services/glance )
];
sops.defaultSopsFile = ../../secrets/sops.yaml;
@ -43,6 +44,11 @@ in
mpd = {
enable = true;
};
glance = {
enable = true;
host = "127.0.0.1";
domain = "home.wastring.com";
};
wishlist = {
enable = true;
host = "127.0.0.1";

View file

@ -94,11 +94,11 @@ in
splash = false;
splash_offset = 2.0;
preload = [ "/home/fw/nix/wallpapers/nix-wallpaper-nineish-catppuccin-mocha.png" ];
preload = [ "/home/fw/nix/wallpapers/nix-wallpaper-nineish-catppuccin-mocha.png" "/home/fw/nix/wallpapers/blue.png" ];
wallpaper = [
"DP-1,/home/fw/nix/wallpapers/nix-wallpaper-nineish-catppuccin-mocha.png"
"eDP-1,/home/fw/nix/wallpapers/nix-wallpaper-nineish-catppuccin-mocha.png"
"DP-1,/home/fw/nix/wallpapers/blue.png"
"eDP-1,/home/fw/nix/wallpapers/blue.png"
];
};
};
@ -286,10 +286,14 @@ in
windowrulev2 = [
"float, class:^(org.pulseaudio.pavucontrol)$"
"size 500 400, class:^(org.pulseaudio.pavucontrol)"
"move onscreen cursor -250 0, class:^(org.pulseaudio.pavucontrol)"
"move onscreen cursor -250 10, class:^(org.pulseaudio.pavucontrol)"
"float, title:^(Bluetooth Devices)$"
"size 500 400, title:^(Bluetooth Devices)"
"move onscreen cursor -250 0, title:^(Bluetooth Devices)"
"move onscreen cursor -250 10, title:^(Bluetooth Devices)"
"float, class:^(.playerctl-gtk-wrapped)$"
"size 300 50, class:^(.playerctl-gtk-wrapped)"
"move onscreen cursor -150 30, class:^(.playerctl-gtk-wrapped)"
];
env = [

View file

@ -15,7 +15,8 @@
shellIntegration = {
mode = "no-cursor";
};
themeFile = "Catppuccin-Mocha";
# themeFile = "Catppuccin-Mocha";
themeFile = "Catppuccin-Latte";
settings = {
confirm_os_window_close = 2;
cursor_shape = "block";

View file

@ -6,29 +6,29 @@
settings = {
"$schema"= "https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json";
# Macchiato
"palette" = {
"os"= "#ACB0BE";
"closer"= "p:os";
"pink"= "#F5BDE6";
"lavender"= "#B7BDF8";
"blue"= "#8aadf4";
"peach" = "#f5a97f";
"red" = "#ed8796";
"green" = "#a6da95";
"mauve" = "#c6a0f6";
};
# Latte
# "palette" = {
# "os"= "#ACB0BE";
# "closer"= "p:os";
# "pink" = "#ea76cb";
# "lavender" = "#7287FD";
# "blue" = "#1e66f5";
# "peach" = "#fe640b";
# "red" = "#d20f39";
# "green" = "#40a02b";
# "mauve" = "#8839ef";
# "pink"= "#F5BDE6";
# "lavender"= "#B7BDF8";
# "blue"= "#8aadf4";
# "peach" = "#f5a97f";
# "red" = "#ed8796";
# "green" = "#a6da95";
# "mauve" = "#c6a0f6";
# };
# Latte
"palette" = {
"os"= "#ACB0BE";
"closer"= "p:os";
"pink" = "#ea76cb";
"lavender" = "#7287FD";
"blue" = "#1e66f5";
"peach" = "#fe640b";
"red" = "#d20f39";
"green" = "#40a02b";
"mauve" = "#8839ef";
};
"blocks"= [
{
"alignment"= "left";

View file

@ -36,8 +36,9 @@
drawio
freecad-wayland
evince
angryipscanner
openboard
vlc
vscode
# TUI
mpc

View file

@ -31,7 +31,7 @@ with lib;
};
};
xdg.configFile."waybar/config.jsonc".source = config.waybar.configPath;
xdg.configFile."waybar/style.css".source = ./waybar.css;
xdg.configFile."waybar/style.css".source = ./waybar-latte.css;
};
# catppuccin.waybar = {
# enable = true;

View file

@ -0,0 +1,146 @@
/* -------- Catppuccin Latte Palette -------- */
@define-color base #EFF1F5;
@define-color mantle #E6E9EF;
@define-color crust #DCE0E8;
@define-color text #4C4F69;
@define-color subtext0 #6C6F85;
@define-color green #40A02B;
@define-color yellow #DF8E1D;
@define-color sky #04A5E5;
@define-color rose #D20F39;
@define-color blue #1E66F5;
@define-color surface2 #ACB0BE;
@define-color peach #FE640B;
/* -------- Base Styles -------- */
* {
font-family: "FiraCode Nerd Font", "Font Awesome 7 Free";
font-size: 15px;
}
window#waybar {
/* background: @base; */
background: transparent;
box-shadow: 0 6px 18px rgba(0, 0, 0, 0.35);
transition: background-color .35s ease, color .35s ease;
}
window#waybar.hidden { opacity: 0.2; }
window#waybar.termite { background: @base; }
window#waybar.chromium { background: @base; border: none; }
/* -------- Module “pill” look -------- */
#workspaces, #clock, #mpris, #pulseaudio, #bluetooth, #upower {
background: @base;
border: none;
border-radius: 5px;
padding: 3px 8px;
}
/* consistent gaps between modules */
.modules-left > widget, .modules-right > widget {
margin: 0 15px;
}
.modules-left > widget:first-child { margin-left: 0; }
.modules-right > widget:last-child { margin-right: 0; }
/* -------- Buttons (generic) -------- */
/* Buttons */
button {
border: none;
border-radius: 8px;
background: transparent;
color: @text;
transition: background-color .2s ease, box-shadow .2s ease;
box-shadow: inset 0 -3px transparent;
}
/* hover */
button:hover {
background: rgba(255,255,255,0.08);
box-shadow: inset 0 -3px @green;
}
/* active (no CSS transform in GTK; simulate press with padding + shadow) */
button:active {
padding-top: 1px; /* nudge down visually */
padding-bottom: 1px; /* keep height stable */
box-shadow: inset 0 -2px @green;
color: @base;
}
/* -------- Workspaces -------- */
#workspaces {
background: @base;
}
#workspaces button {
padding: 2px 8px;
margin: 0 2px;
border-radius: 8px;
transition: background-color .2s ease, box-shadow .2s ease;
}
#workspaces button:hover {
background: rgba(255,255,255,0.08);
}
#workspaces button.active, #workspaces button.focused {
background: @green;
color: @base;
box-shadow: inset 0 -3px @green;
}
#workspaces button.urgent {
background: @rose;
color: @base;
box-shadow: inset 0 -3px rgba(0,0,0,0.2);
}
/* -------- Clock -------- */
#clock {
background: @green;
color: @base;
font-weight: 600;
letter-spacing: 0.2px;
}
/* -------- Mpris -------- */
#mpris {
background: @green;
color: @base;
font-weight: 600;
letter-spacing: 0.2px;
}
/* -------- Pavu -------- */
#pulseaudio {
background: @green;
color: @base;
font-weight: 600;
letter-spacing: 0.2px;
}
/* -------- Bluetooth -------- */
#bluetooth {
background: @green;
color: @base;
font-weight: 600;
letter-spacing: 0.2px;
}
/* -------- Upower -------- */
#bluetooth {
background: @green;
color: @base;
font-weight: 600;
letter-spacing: 0.2px;
}
/* -------- Helpers -------- */
@keyframes blink {
to { background-color: @green; color: @base; }
}

View file

@ -1,17 +1,17 @@
/* -------- Catppuccin Mocha Palette -------- */
@define-color mocha-base #1E1E2E;
@define-color mocha-mantle #181825;
@define-color mocha-crust #11111B;
@define-color mocha-text #CDD6F4;
@define-color mocha-subtext0 #A6ADC8;
@define-color base #1E1E2E;
@define-color mantle #181825;
@define-color crust #11111B;
@define-color text #CDD6F4;
@define-color subtext0 #A6ADC8;
@define-color mocha-green #A6E3A1;
@define-color mocha-yellow #F9E2AF;
@define-color mocha-sky #89DCEB;
@define-color mocha-rose #F38BA8;
@define-color mocha-blue #89B4FA;
@define-color mocha-surface2 #585B70;
@define-color mocha-peach #fab387;
@define-color green #A6E3A1;
@define-color yellow #F9E2AF;
@define-color sky #89DCEB;
@define-color rose #F38BA8;
@define-color blue #89B4FA;
@define-color surface2 #585B70;
@define-color peach #fab387;
/* -------- Base Styles -------- */
* {
@ -20,7 +20,7 @@
}
window#waybar {
/* background: @mocha-base; */
/* background: @base; */
background: transparent;
box-shadow: 0 6px 18px rgba(0, 0, 0, 0.35);
transition: background-color .35s ease, color .35s ease;
@ -28,12 +28,12 @@ window#waybar {
window#waybar.hidden { opacity: 0.2; }
window#waybar.termite { background: @mocha-base; }
window#waybar.chromium { background: @mocha-base; border: none; }
window#waybar.termite { background: @base; }
window#waybar.chromium { background: @base; border: none; }
/* -------- Module “pill” look -------- */
#workspaces, #clock, #mpris, #pulseaudio, #bluetooth, #upower {
background: @mocha-base;
background: @base;
border: none;
border-radius: 5px;
padding: 3px 8px;
@ -52,7 +52,7 @@ button {
border: none;
border-radius: 8px;
background: transparent;
color: @mocha-text;
color: @text;
transition: background-color .2s ease, box-shadow .2s ease;
box-shadow: inset 0 -3px transparent;
}
@ -60,20 +60,20 @@ button {
/* hover */
button:hover {
background: rgba(255,255,255,0.08);
box-shadow: inset 0 -3px @mocha-peach;
box-shadow: inset 0 -3px @peach;
}
/* active (no CSS transform in GTK; simulate press with padding + shadow) */
button:active {
padding-top: 1px; /* nudge down visually */
padding-bottom: 1px; /* keep height stable */
box-shadow: inset 0 -2px @mocha-peach;
color: @mocha-base;
box-shadow: inset 0 -2px @peach;
color: @base;
}
/* -------- Workspaces -------- */
#workspaces {
background: @mocha-base;
background: @base;
}
#workspaces button {
@ -88,58 +88,58 @@ button:active {
}
#workspaces button.active, #workspaces button.focused {
background: @mocha-peach;
color: @mocha-base;
box-shadow: inset 0 -3px @mocha-peach;
background: @peach;
color: @base;
box-shadow: inset 0 -3px @peach;
}
#workspaces button.urgent {
background: @mocha-rose;
color: @mocha-base;
background: @rose;
color: @base;
box-shadow: inset 0 -3px rgba(0,0,0,0.2);
}
/* -------- Clock -------- */
#clock {
background: @mocha-peach;
color: @mocha-base;
background: @peach;
color: @base;
font-weight: 600;
letter-spacing: 0.2px;
}
/* -------- Mpris -------- */
#mpris {
background: @mocha-peach;
color: @mocha-base;
background: @peach;
color: @base;
font-weight: 600;
letter-spacing: 0.2px;
}
/* -------- Pavu -------- */
#pulseaudio {
background: @mocha-peach;
color: @mocha-base;
background: @peach;
color: @base;
font-weight: 600;
letter-spacing: 0.2px;
}
/* -------- Bluetooth -------- */
#bluetooth {
background: @mocha-peach;
color: @mocha-base;
background: @peach;
color: @base;
font-weight: 600;
letter-spacing: 0.2px;
}
/* -------- Upower -------- */
#bluetooth {
background: @mocha-peach;
color: @mocha-base;
background: @peach;
color: @base;
font-weight: 600;
letter-spacing: 0.2px;
}
/* -------- Helpers -------- */
@keyframes blink {
to { background-color: @mocha-peach; color: @mocha-base; }
to { background-color: @peach; color: @base; }
}

View file

@ -27,9 +27,8 @@
"interval": 1,
"tooltip": true,
"tooltip-format": "{player} — {status}\n{artist}\n{title}\n{album}",
"on-click": "playerctl -p Feishin play-pause",
"on-scroll-up": "playerctl -p Feishin next",
"on-scroll-down": "playerctl -p Feishin previous"
// "on-click": "playerctl -p Feishin play-pause",
"on-click": "pgrep playerctl-gtk && pkill playerctl-gtk || playerctl-gtk &",
},
"bluetooth": {
"format": " {status}",

View file

@ -68,25 +68,25 @@ with lib;
sops.secrets.forgejo-runner-token = {};
services.gitea-actions-runner = {
package = pkgs.forgejo-actions-runner;
instances.default = {
enable = true;
name = "monolith";
url = "https://git.wastring.com";
# Obtaining the path to the runner token file may differ
# tokenFile should be in format TOKEN=<secret>, since it's EnvironmentFile for systemd
tokenFile = config.sops.secrets.forgejo-runner-token.path;
labels = [
"ubuntu-latest:docker://node:20-bullseye"
# "ubuntu-22.04:docker://node:16-bullseye"
# "ubuntu-20.04:docker://node:16-bullseye"
# "ubuntu-18.04:docker://node:16-buster"
## optionally provide native execution on the host:
# "native:host"
];
};
};
# services.gitea-actions-runner = {
# package = pkgs.forgejo-actions-runner;
# instances.default = {
# enable = true;
# name = "monolith";
# url = "https://git.wastring.com";
# # Obtaining the path to the runner token file may differ
# # tokenFile should be in format TOKEN=<secret>, since it's EnvironmentFile for systemd
# tokenFile = config.sops.secrets.forgejo-runner-token.path;
# labels = [
# "ubuntu-latest:docker://node:20-bullseye"
# # "ubuntu-22.04:docker://node:16-bullseye"
# # "ubuntu-20.04:docker://node:16-bullseye"
# # "ubuntu-18.04:docker://node:16-buster"
# ## optionally provide native execution on the host:
# # "native:host"
# ];
# };
# };
services.forgejo = {
enable = true;

View file

@ -0,0 +1,95 @@
{
lib,
pkgs,
config,
...
}:
with lib;
{
options = {
glance = {
enable = mkEnableOption "enables glance";
port = lib.mkOption {
type = lib.types.int;
default = 8857;
description = "The port glance listens on.";
};
host = mkOption {
type = types.str;
defaultText = literalExpression "127.0.0.1";
description = "The hostname that glance binds to";
};
domain = mkOption {
type = types.str;
defaultText = literalExpression "home.wastring.com";
description = "The hostname that glance binds to";
};
};
};
config = mkMerge [
(mkIf config.glance.enable {
services.glance = {
enable = true;
settings = {
theme = {
background-color = "240 21 15";
contrast-multiplier = 1.2;
primary-color = "217 92 83";
positive-color = "115 54 76";
negative-color = "347 70 65";
};
server = {
host = config.glance.host;
port = config.glance.port;
};
pages = [
{
name = "Home";
columns = [
{
size = "small";
widgets = [
{ type = "calendar"; }
];
}
{
size = "full";
widgets = [
{
type = "videos";
style = "vertical-list";
channels = [
"UCwHwDuNd9lCdA7chyyquDXw"
"UC7YOGHUfC1Tb6E4pudI9STA"
"UCs76MNovGkuNYNZCmrxcb3Q"
];
}
];
}
{
size = "small";
widgets = [
{
type = "weather";
location = "Malmö, Sweden";
}
];
}
];
}
];
};
};
services.nginx.virtualHosts.${config.glance.domain} = {
forceSSL = true;
enableACME = true;
locations."/" = {
proxyPass = "http://${toString config.glance.host}:${toString config.glance.port}";
proxyWebsockets = true;
};
};
})
];
}