From 51de7ef3a2498a22752ccda1c68b589667d4ae05 Mon Sep 17 00:00:00 2001 From: fwastring Date: Fri, 17 Oct 2025 09:51:35 +0200 Subject: [PATCH] big changes --- flake.lock | 140 +++++++++++++++-- flake.nix | 13 +- maskiner/core/configuration.nix | 9 +- maskiner/node/configuration.nix | 6 + moduler/hyprland.nix | 14 +- moduler/kitty.nix | 3 +- moduler/oh-my-posh.nix | 38 ++--- moduler/programs.nix | 3 +- moduler/programs/waybar/default.nix | 2 +- moduler/programs/waybar/waybar-latte.css | 146 ++++++++++++++++++ .../waybar/{waybar.css => waybar-mocha.css} | 74 ++++----- moduler/programs/waybar/waybar.jsonc | 5 +- moduler/services/forgejo/default.nix | 38 ++--- moduler/services/glance/default.nix | 95 ++++++++++++ 14 files changed, 481 insertions(+), 105 deletions(-) create mode 100644 moduler/programs/waybar/waybar-latte.css rename moduler/programs/waybar/{waybar.css => waybar-mocha.css} (63%) create mode 100644 moduler/services/glance/default.nix diff --git a/flake.lock b/flake.lock index debf9ca..e75a350 100644 --- a/flake.lock +++ b/flake.lock @@ -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" ], diff --git a/flake.nix b/flake.nix index e5cba7b..ac9fd5e 100644 --- a/flake.nix +++ b/flake.nix @@ -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 + ]; }; }; }; diff --git a/maskiner/core/configuration.nix b/maskiner/core/configuration.nix index 0d4faee..649018d 100644 --- a/maskiner/core/configuration.nix +++ b/maskiner/core/configuration.nix @@ -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 = { diff --git a/maskiner/node/configuration.nix b/maskiner/node/configuration.nix index 53abd72..ce15598 100644 --- a/maskiner/node/configuration.nix +++ b/maskiner/node/configuration.nix @@ -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"; diff --git a/moduler/hyprland.nix b/moduler/hyprland.nix index 0b2793e..0a086f5 100644 --- a/moduler/hyprland.nix +++ b/moduler/hyprland.nix @@ -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 = [ diff --git a/moduler/kitty.nix b/moduler/kitty.nix index 5059f61..d604faa 100644 --- a/moduler/kitty.nix +++ b/moduler/kitty.nix @@ -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"; diff --git a/moduler/oh-my-posh.nix b/moduler/oh-my-posh.nix index 9cae598..215fbef 100644 --- a/moduler/oh-my-posh.nix +++ b/moduler/oh-my-posh.nix @@ -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"; diff --git a/moduler/programs.nix b/moduler/programs.nix index 84dbe8a..57f401e 100644 --- a/moduler/programs.nix +++ b/moduler/programs.nix @@ -36,8 +36,9 @@ drawio freecad-wayland evince - angryipscanner + openboard vlc + vscode # TUI mpc diff --git a/moduler/programs/waybar/default.nix b/moduler/programs/waybar/default.nix index 5ea72a2..8527262 100644 --- a/moduler/programs/waybar/default.nix +++ b/moduler/programs/waybar/default.nix @@ -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; diff --git a/moduler/programs/waybar/waybar-latte.css b/moduler/programs/waybar/waybar-latte.css new file mode 100644 index 0000000..a020540 --- /dev/null +++ b/moduler/programs/waybar/waybar-latte.css @@ -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; } +} diff --git a/moduler/programs/waybar/waybar.css b/moduler/programs/waybar/waybar-mocha.css similarity index 63% rename from moduler/programs/waybar/waybar.css rename to moduler/programs/waybar/waybar-mocha.css index 007030e..b7e7dde 100644 --- a/moduler/programs/waybar/waybar.css +++ b/moduler/programs/waybar/waybar-mocha.css @@ -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; } } diff --git a/moduler/programs/waybar/waybar.jsonc b/moduler/programs/waybar/waybar.jsonc index ce4c371..a454e0d 100644 --- a/moduler/programs/waybar/waybar.jsonc +++ b/moduler/programs/waybar/waybar.jsonc @@ -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}", diff --git a/moduler/services/forgejo/default.nix b/moduler/services/forgejo/default.nix index 8b82304..abe2f49 100644 --- a/moduler/services/forgejo/default.nix +++ b/moduler/services/forgejo/default.nix @@ -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=, 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=, 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; diff --git a/moduler/services/glance/default.nix b/moduler/services/glance/default.nix new file mode 100644 index 0000000..817d5ee --- /dev/null +++ b/moduler/services/glance/default.nix @@ -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; + }; + }; + }) + ]; + +}