Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a695aa408b | ||
|
|
c5b6c7a809 |
4 changed files with 497 additions and 440 deletions
8
flake.lock
generated
8
flake.lock
generated
|
|
@ -373,11 +373,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1788095523,
|
"lastModified": 1788113629,
|
||||||
"narHash": "sha256-UwtknsxJg5tGtEeCBLPkjeQgbREf9FiPrruzz9RxGC4=",
|
"narHash": "sha256-8aJW0wQK4zKA0XmpJQ8wNZNV5yiT1xuNI2ZR8wkdQqc=",
|
||||||
"ref": "refs/heads/main",
|
"ref": "refs/heads/main",
|
||||||
"rev": "1e4399d49e86fa46a4ccc073af83097dd3e08508",
|
"rev": "f14056996e7317953145814a523b26dd3df6ce1c",
|
||||||
"revCount": 4045,
|
"revCount": 4073,
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://forge.darkest.space/hyperhive/hyperhive.git"
|
"url": "https://forge.darkest.space/hyperhive/hyperhive.git"
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,12 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
|
device,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
config = {
|
config = lib.mkMerge [
|
||||||
|
{
|
||||||
home.sessionVariables.NIXOS_OZONE_WL = "1";
|
home.sessionVariables.NIXOS_OZONE_WL = "1";
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
xwayland-satellite
|
xwayland-satellite
|
||||||
|
|
@ -433,5 +435,41 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
# lpt2's keyboard is flaky, so give it an on-screen keyboard.
|
||||||
|
# squeekboard auto-shows on focused text fields via the input-method
|
||||||
|
# protocol, but that doesn't catch every app, so Mod+K force-toggles it
|
||||||
|
# over D-Bus (sm.puri.OSK0), which is squeekboard's own control interface.
|
||||||
|
(
|
||||||
|
let
|
||||||
|
squeekboard-toggle = pkgs.writeShellApplication {
|
||||||
|
name = "squeekboard-toggle";
|
||||||
|
runtimeInputs = [ pkgs.systemd ];
|
||||||
|
text = ''
|
||||||
|
dest=sm.puri.OSK0
|
||||||
|
path=/sm/puri/OSK0
|
||||||
|
iface=sm.puri.OSK0
|
||||||
|
current=$(busctl --user get-property "$dest" "$path" "$iface" Visible | cut -d' ' -f2)
|
||||||
|
if [ "$current" = "true" ]; then
|
||||||
|
busctl --user call "$dest" "$path" "$iface" SetVisible b false
|
||||||
|
else
|
||||||
|
busctl --user call "$dest" "$path" "$iface" SetVisible b true
|
||||||
|
fi
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
in
|
||||||
|
lib.mkIf (device == "muede-lpt2") {
|
||||||
|
home.packages = [ pkgs.squeekboard ];
|
||||||
|
|
||||||
|
programs.niri.settings = {
|
||||||
|
spawn-at-startup = [
|
||||||
|
{ command = [ (lib.getExe' pkgs.squeekboard "squeekboard") ]; }
|
||||||
|
];
|
||||||
|
|
||||||
|
binds."Mod+K".action.spawn = lib.getExe squeekboard-toggle;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
)
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,16 +1,16 @@
|
||||||
{ pkgs, config, lib, ... }:
|
{
|
||||||
|
pkgs,
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./containers.nix
|
./containers.nix
|
||||||
./hardware.nix
|
./hardware.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
config =
|
config = lib.mkMerge [
|
||||||
let
|
|
||||||
gw = config.services.hyperhive.gateway;
|
|
||||||
old = "forge.pr1ma.darkest.space";
|
|
||||||
new = "forge.constellation.darkest.space";
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
my = {
|
my = {
|
||||||
# keep-sorted start
|
# keep-sorted start
|
||||||
|
|
@ -67,22 +67,46 @@
|
||||||
];
|
];
|
||||||
|
|
||||||
boot.binfmt.emulatedSystems = [ "aarch64-linux" ];
|
boot.binfmt.emulatedSystems = [ "aarch64-linux" ];
|
||||||
|
}
|
||||||
|
|
||||||
|
(
|
||||||
|
let
|
||||||
|
old = "forge.pr1ma.darkest.space";
|
||||||
|
new = "forge.constellation.darkest.space";
|
||||||
|
in
|
||||||
|
{
|
||||||
my.constellation-swarm = {
|
my.constellation-swarm = {
|
||||||
enable = true;
|
enable = true;
|
||||||
hiveName = "pr1ma";
|
hiveName = "pr1ma";
|
||||||
};
|
};
|
||||||
services.hyperhive.enableAllLocalDefaults = true;
|
services.hyperhive = {
|
||||||
services.nginx.enable = true;
|
deploy = {
|
||||||
|
singleHostSwarm = true;
|
||||||
|
forgejo.ci = {
|
||||||
|
enable = true;
|
||||||
|
concurrency = 2;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
# DNS: the hive's resolver must still answer for the old name, or
|
# DNS: the hive's resolver must still answer for the old name, or
|
||||||
# nothing ever reaches the redirect. The forge module drops it from
|
# nothing ever reaches the redirect. The forge module drops it from
|
||||||
# this list the moment you change `swarm.forge.domain`.
|
# this list the moment you change `swarm.forge.domain`.
|
||||||
services.hyperhive.gateway.localNames = [ old ];
|
gateway.localNames = [ old ];
|
||||||
|
};
|
||||||
|
services.nginx.enable = true;
|
||||||
|
|
||||||
services.nginx.virtualHosts.${old} = (gw.lib.tlsFor old) // {
|
services.nginx.virtualHosts.${old} =
|
||||||
|
let
|
||||||
|
gw = config.services.hyperhive.gateway;
|
||||||
|
in
|
||||||
|
(gw.lib.tlsFor old)
|
||||||
|
// {
|
||||||
listen = gw.lib.listen;
|
listen = gw.lib.listen;
|
||||||
locations."/".return = "301 https://${new}$request_uri";
|
locations."/".return = "301 https://${new}$request_uri";
|
||||||
};
|
};
|
||||||
};
|
|
||||||
|
#containers.swarm-authelia.config.services.authelia.instances.swarm.settings.log.level =lib.mkForce "debug";
|
||||||
|
}
|
||||||
|
)
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -36,11 +36,6 @@ in
|
||||||
swarm = {
|
swarm = {
|
||||||
name = "constellation";
|
name = "constellation";
|
||||||
domain = "constellation.darkest.space";
|
domain = "constellation.darkest.space";
|
||||||
enableRequiredServices = true;
|
|
||||||
forge.ci = {
|
|
||||||
enable = true;
|
|
||||||
concurrency = 2;
|
|
||||||
};
|
|
||||||
matrix = {
|
matrix = {
|
||||||
# not default - both still on hive domain
|
# not default - both still on hive domain
|
||||||
gatewayHost = "matrix.pr1ma.darkest.space";
|
gatewayHost = "matrix.pr1ma.darkest.space";
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue