Update git identity, Plasma shortcuts and wallpaper; remove lio hosts

This commit is contained in:
Joshua Bell 2026-01-17 00:35:18 -06:00
parent 9e472d4295
commit 3ed381fbe4
9 changed files with 20 additions and 322 deletions

12
hosts/lio/flake.lock generated
View file

@ -342,11 +342,11 @@
},
"nixpkgs_4": {
"locked": {
"lastModified": 1768302833,
"narHash": "sha256-h5bRFy9bco+8QcK7rGoOiqMxMbmn21moTACofNLRMP4=",
"lastModified": 1768456270,
"narHash": "sha256-NgaL2CCiUR6nsqUIY4yxkzz07iQUlUCany44CFv+OxY=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "61db79b0c6b838d9894923920b612048e1201926",
"rev": "f4606b01b39e09065df37905a2133905246db9ed",
"type": "github"
},
"original": {
@ -1273,11 +1273,11 @@
"nixpkgs": "nixpkgs_4"
},
"locked": {
"lastModified": 1768396176,
"narHash": "sha256-JqLZY6/s3O5IVNjZs4vi4BGQhA730aLLMA7DgENCTTU=",
"lastModified": 1768623515,
"narHash": "sha256-7rfFPs9rBXpNmnK77Lc8PBbdTQt6ITotwbJkL85qLIA=",
"owner": "anomalyco",
"repo": "opencode",
"rev": "ee6ca104e5eb1693b63901128ea315754f88f595",
"rev": "85ab9798c65dfb36b0f47de3b1fd786e7751f761",
"type": "github"
},
"original": {

View file

@ -1,10 +0,0 @@
{
config,
lib,
pkgs,
modulesPath,
...
}:
{
}

View file

@ -1,157 +0,0 @@
{ lib, pkgs, ... }:
let
# Exact descriptions as reported by: hyprctl -j monitors | jq '.[].description'
mainDesc = "ASUSTek COMPUTER INC ASUS PG43U 0x01010101";
secondaryDesc = "Samsung Electric Company C34J79x HTRM900776";
mainMonitor = "desc:${mainDesc}";
secondaryMonitor = "desc:${secondaryDesc}";
hyprlandExtraOptions = {
exec-once = [
# Wait a moment for monitors/workspaces to settle, then "prime" 6 and return to 1
"sh -lc 'sleep 0.2; hyprctl dispatch workspace 7; sleep 0.02; hyprctl dispatch workspace 1'"
];
monitor = [
"${mainMonitor},3840x2160@97.98,0x0,1,transform,0"
"${secondaryMonitor},3440x1440@99.98,-1440x-640,1,transform,1"
];
workspace =
let
inherit (builtins) map toString;
inherit (lib) range;
mkWs = monitor: i: "${toString i},monitor:${monitor},persistent:true";
in
(map (mkWs mainMonitor) (range 1 6)) ++ (map (mkWs secondaryMonitor) (range 7 10));
};
moveScript = pkgs.writeShellScriptBin "hyprland-move-workspaces" ''
#!/usr/bin/env bash
set -euo pipefail
HYPRCTL='${pkgs.hyprland}/bin/hyprctl'
JQ='${pkgs.jq}/bin/jq'
SOCAT='${pkgs.socat}/bin/socat'
MAIN_DESC='${mainDesc}'
SEC_DESC='${secondaryDesc}'
get_socket() {
# socket2 carries the event stream
echo "${"$"}{XDG_RUNTIME_DIR}/hypr/${"$"}{HYPRLAND_INSTANCE_SIGNATURE}/.socket2.sock"
}
wait_for_hypr() {
# Wait until hyprctl works (Hyprland is up)
until ''${HYPRCTL} -j monitors >/dev/null 2>&1; do
sleep 0.5
done
}
mon_name_by_desc() {
# Resolve Hyprland "name" (e.g., DP-2) from human-friendly description
local desc="${"$"}1"
''${HYPRCTL} -j monitors \
| ''${JQ} -r --arg d "${"$"}desc" '.[] | select(.description == $d) | .name' \
| head -n1
}
place_workspaces() {
local mainName secName
mainName="$(mon_name_by_desc "${"$"}MAIN_DESC")"
secName="$(mon_name_by_desc "${"$"}SEC_DESC" || true)"
# Always keep 16 on the main monitor
for ws in 1 2 3 4 5 6; do
''${HYPRCTL} dispatch moveworkspacetomonitor "${"$"}ws" "${"$"}mainName" || true
done
if [ -n "${"$"}{secName:-}" ]; then
# Secondary is present ➜ put 710 on secondary
for ws in 7 8 9 10; do
''${HYPRCTL} dispatch moveworkspacetomonitor "${"$"}ws" "${"$"}secName" || true
done
else
# No secondary ➜ keep 710 on main
for ws in 7 8 9 10; do
''${HYPRCTL} dispatch moveworkspacetomonitor "${"$"}ws" "${"$"}mainName" || true
done
fi
}
watch_events() {
local sock
sock="$(get_socket)"
# If socket2 is missing for some reason, fall back to polling
if [ ! -S "${"$"}sock" ]; then
while :; do
place_workspaces
sleep 5
done
return
fi
# Subscribe to Hyprland events and react to monitor changes
''${SOCAT} - "UNIX-CONNECT:${"$"}sock" | while IFS= read -r line; do
case "${"$"}line" in
monitoradded*|monitorremoved*|activemonitor*|layoutchange*|createworkspace*)
place_workspaces
;;
esac
done
}
if [ "${"$"}{1:-}" = "--oneshot" ]; then
wait_for_hypr
place_workspaces
else
wait_for_hypr
place_workspaces
watch_events
fi
'';
in
{
options = { };
config = {
environment.systemPackages = [ moveScript ];
ringofstorms_common.desktopEnvironment.hyprland.extraOptions = hyprlandExtraOptions;
ringofstorms_common.desktopEnvironment.hyprland.hyprpaperSettings = {
mode = "fill"; # Wallpaper display mode: fill, fit, stretch, center, tile
preload = [
"${../_shared_assets/wallpapers/pixel_neon.png}"
];
wallpaper = [
"${mainMonitor},${../_shared_assets/wallpapers/pixel_neon.png}"
"${secondaryMonitor},${../_shared_assets/wallpapers/pixel_neon_v.png}"
];
};
# User-level systemd service that follows your Hyprland session and watches for monitor changes
# systemd.user.services.hyprland-move-workspaces = {
# description = "Keep workspaces 16 on main and 710 on secondary; react to monitor changes";
#
# # Start/stop with Hyprland specifically
# wantedBy = [ "hyprland-session.target" ];
# after = [ "hyprland-session.target" ];
# partOf = [ "hyprland-session.target" ];
# bindsTo = [ "hyprland-session.target" ];
# # Only start once Hyprland's event socket exists
# unitConfig.ConditionPathExistsGlob = "%t/hypr/*/.socket2.sock";
#
# serviceConfig = {
# Type = "simple";
# ExecStart = "${moveScript}/bin/hyprland-move-workspaces";
# Restart = "always";
# RestartSec = "2s";
# };
# };
};
}

View file

@ -1,51 +0,0 @@
{ pkgs, ... }:
let
assignLines = ''
workspace 1 output DP-1
workspace 2 output DP-1
workspace 3 output DP-1
workspace 4 output DP-1
workspace 5 output DP-1
workspace 6 output DP-1
workspace 7 output DP-2
workspace 8 output DP-2
workspace 9 output DP-2
workspace 10 output DP-2
'';
bg1 = ../_shared_assets/wallpapers/pixel_neon.png;
bg2 = ../_shared_assets/wallpapers/pixel_neon_v.png;
# xrSetup = "xrandr --output DP-1 --mode 3840x2160 --rate 119.88 --pos 0x0 --primary; sleep 0.2; xrandr --output DP-2 --mode 3440x1440 --rate 99.98 --rotate left --left-of DP-1";
xrSetup = "xrandr --output DP-1 --mode 3840x2160 --rate 60 --pos 0x0 --primary; sleep 0.2; xrandr --output DP-2 --mode 3440x1440 --rate 99.98 --rotate left --left-of DP-1";
xwallpaperCmd = "xwallpaper --output DP-1 --zoom ${bg1} --output DP-2 --zoom ${bg2}";
startupCmd = "sh -c 'sleep 0.2; i3-msg workspace number 7; sleep 0.2; i3-msg workspace number 1'";
i3ExtraOptions = {
startup = [
{ command = "${xrSetup}"; }
{ command = "sh -c 'sleep 1; ${xwallpaperCmd}'"; }
{ command = "${startupCmd}"; }
];
};
in
{
options = { };
config = {
home-manager.sharedModules = [
(
{ lib, pkgs, ... }:
let
inherit (lib) mkAfter;
in
{
xsession.windowManager.i3.config.startup = mkAfter (i3ExtraOptions.startup ++ [
{ command = "nm-applet"; }
{ command = "blueman-applet"; }
{ command = "xfce4-power-manager"; }
{ command = "sh -c 'xset s off -dpms; xset s noblank'"; }
]);
xsession.windowManager.i3.extraConfig = mkAfter assignLines;
home.packages = [ pkgs.xwallpaper pkgs.xorg.xrandr pkgs.xorg.xset ];
}
)
];
};
}

View file

@ -1,88 +0,0 @@
{ ... }:
let
swayExtraOptions = {
startup = [
{
command = "exec sh -c 'sleep 0.01; swaymsg workspace number 7; sleep 0.02; swaymsg workspace number 1'";
}
];
# Example: map workspaces 16 to DP-1 and 710 to HDMI-A-1
workspaceOutputAssign = [
{
workspace = "1";
output = "DP-1";
}
{
workspace = "2";
output = "DP-1";
}
{
workspace = "3";
output = "DP-1";
}
{
workspace = "4";
output = "DP-1";
}
{
workspace = "5";
output = "DP-1";
}
{
workspace = "6";
output = "DP-1";
}
{
workspace = "7";
output = "DP-2";
}
{
workspace = "8";
output = "DP-2";
}
{
workspace = "9";
output = "DP-2";
}
{
workspace = "10";
output = "DP-2";
}
];
# Optional output settings
output = {
"DP-1" = {
scale = "1";
pos = "0 0";
mode = "3840x2160@97.983Hz";
bg = "${../_shared_assets/wallpapers/pixel_neon.png} fill";
};
"DP-2" = {
scale = "1";
transform = "270";
pos = "-1440 -640";
mode = "3440x1440@99.982Hz";
bg = "${../_shared_assets/wallpapers/pixel_neon_v.png} fill";
};
};
};
in
{
options = { };
config = {
# ringofstorms_common.desktopEnvironment.sway.extraOptions = swayExtraOptions;
home-manager.sharedModules = [
(
{ ... }:
{
wayland.windowManager.sway.config = swayExtraOptions;
}
)
];
};
}