nixos: gen 169 @ nix-pad — 2026-07-30 23:55

26.05.20260724.597283a (Yarara)

on screen keyboard via wvkbd
This commit is contained in:
2026-07-30 23:55:39 -06:00
parent 5f7bbf6e0d
commit 7b6d94dcf1
10 changed files with 11546 additions and 18 deletions
Generated
+18 -1
View File
@@ -188,7 +188,24 @@
"home-manager": "home-manager", "home-manager": "home-manager",
"niri": "niri", "niri": "niri",
"nixpkgs": "nixpkgs_2", "nixpkgs": "nixpkgs_2",
"nixpkgs-unstable": "nixpkgs-unstable" "nixpkgs-unstable": "nixpkgs-unstable",
"wvkbd-src": "wvkbd-src"
}
},
"wvkbd-src": {
"flake": false,
"locked": {
"lastModified": 1784927765,
"narHash": "sha256-Et1k3M8L/r5WnoNOuiCzVVgJrpXtWSbIUI+2/njiwj0=",
"owner": "jjsullivan5196",
"repo": "wvkbd",
"rev": "6b41504a0cb58fd1163fa44692398fbd61f8905f",
"type": "github"
},
"original": {
"owner": "jjsullivan5196",
"repo": "wvkbd",
"type": "github"
} }
}, },
"xwayland-satellite-stable": { "xwayland-satellite-stable": {
+6 -1
View File
@@ -11,6 +11,11 @@
niri.url = "github:sodiboo/niri-flake"; niri.url = "github:sodiboo/niri-flake";
wvkbd-src = {
url = "github:jjsullivan5196/wvkbd";
flake = false;
};
dms-plugin-registry = { dms-plugin-registry = {
url = "github:AvengeMedia/dms-plugin-registry"; url = "github:AvengeMedia/dms-plugin-registry";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
@@ -22,7 +27,7 @@
}; };
}; };
outputs = { nixpkgs, home-manager, niri, dms-plugin-registry, danksearch, ... }@inputs: { outputs = { nixpkgs, home-manager, niri, dms-plugin-registry, danksearch, wvkbd-src, ... }@inputs: {
nixosConfigurations = { nixosConfigurations = {
thinkpad = nixpkgs.lib.nixosSystem { thinkpad = nixpkgs.lib.nixosSystem {
system = "x86_64-linux"; system = "x86_64-linux";
+8 -13
View File
@@ -14,28 +14,23 @@ let
-g "3,UD,*,*,P,niri msg action focus-workspace-up && sleep 0.4" \ -g "3,UD,*,*,P,niri msg action focus-workspace-up && sleep 0.4" \
-g "3,DU,*,*,P,niri msg action focus-workspace-down && sleep 0.4" \ -g "3,DU,*,*,P,niri msg action focus-workspace-down && sleep 0.4" \
-g "4,DU,*,*,P,dms ipc spotlight toggle && sleep 0.4" -g "4,DU,*,*,P,dms ipc spotlight toggle && sleep 0.4"
-g "2,DU,B,*,pkill -RTMIN wvkbd-mobintl"
fi fi
''; '';
launch-wvkbd = pkgs.writeShellScriptBin "launch-wvkbd" '' launch-wvkbd = pkgs.writeShellScriptBin "launch-wvkbd" ''
# Adjust this path to wherever dank-material-shell drops its color file
THEME_CACHE="$HOME/.cache/DankMaterialShell/dms-colors.json" THEME_CACHE="$HOME/.cache/DankMaterialShell/dms-colors.json"
if [ -f "$THEME_CACHE" ]; then if [ -f "$THEME_CACHE" ]; then
# Parse hex tokens directly out of the active shell profile BG=$(jq -r '.["colors"]["dark"]["background"]' "$THEME_CACHE" | tr -d '#')
BG=$(jq -r '.colors.surface' "$THEME_CACHE") FG=$(jq -r '.["colors"]["dark"]["surface_container_lowest"]' "$THEME_CACHE" | tr -d '#')
FG=$(jq -r '.colors.surface_container' "$THEME_CACHE") TXT=$(jq -r '.["colors"]["dark"]["on_background"]' "$THEME_CACHE" | tr -d '#')
TXT=$(jq -r '.colors.on_surface' "$THEME_CACHE") PRIMARY=$(jq -r '.["colors"]["dark"]["surface_container_lowest"]' "$THEME_CACHE" | tr -d '#')
PRIMARY=$(jq -r '.colors.primary' "$THEME_CACHE") ON_PRIMARY=$(jq -r '.["colors"]["dark"]["on_background"]' "$THEME_CACHE" | tr -d '#')
ON_PRIMARY=$(jq -r '.colors.on_primary' "$THEME_CACHE")
${pkgs.wvkbd}/bin/wvkbd-mobintl --layer overlay --hidden \ wvkbd-mobintl --hidden --bg "$BG" --press "$BG" --fg "$FG" --text "$TXT" --fg-sp "$PRIMARY" --text-sp "$ON_PRIMARY" -L 300
--bg "$BG" --fg "$FG" --text "$TXT" \
--fg-sp "$PRIMARY" --text-sp "$ON_PRIMARY" \
-L 300
else else
# Default fallback if the shell cache isn't built yet wvkbd-mobintl --hidden
${pkgs.wvkbd}/bin/wvkbd-mobintl --layer overlay --hidden
fi fi
''; '';
in in
+5
View File
@@ -0,0 +1,5 @@
{ pkgs, config, ... }:
{
}
+22 -1
View File
@@ -1,5 +1,23 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, inputs, ... }:
let
# Compile your custom wvkbd build
custom_wvkbd = pkgs.wvkbd.overrideAttrs (oldAttrs: {
# Pin the package version to the exact commit from your flake input
src = inputs.wvkbd-src;
version = "custom-git";
# Choose your preferred layout layout (e.g., mobintl, standard, cyrillic)
makeFlags = (oldAttrs.makeFlags or []) ++ [ "LAYOUT=mobintl" ];
# Optional: Swap out the layout with your own config.h file if you have one
preBuild = ''
cp ${./programs/layout.custom.h} layout.mobintl.h
cp ${./programs/config.custom.h} config.mobintl.h
cp ${./programs/keymap.custom.h} keymap.mobintl.h
'';
});
in
{ {
imports = [ imports = [
./programs ./programs
@@ -38,8 +56,11 @@
steam steam
spotify spotify
vlc vlc
wtype
yt-dlp yt-dlp
custom_wvkbd
(pkgs.writeShellScriptBin "find-open-port" '' (pkgs.writeShellScriptBin "find-open-port" ''
if [ -z "$1" ]; then if [ -z "$1" ]; then
echo "Please provide an application name, project directory, or other identifier." echo "Please provide an application name, project directory, or other identifier."
+50
View File
@@ -0,0 +1,50 @@
#ifndef config_h_INCLUDED
#define config_h_INCLUDED
#define DEFAULT_FONT "Sans 14"
#define DEFAULT_ROUNDING 5
#define SHIFT_SPACE_IS_TAB
static const int transparency = 255;
struct clr_scheme schemes[] = {
{
/* colors */
.bg = {.bgra = {15, 15, 15, transparency}},
.fg = {.bgra = {45, 45, 45, transparency}},
.high = {.bgra = {100, 100, 100, transparency}},
.swipe = {.bgra = {100, 255, 100, 64}},
.text = {.color = UINT32_MAX},
.text_press = {.color = UINT32_MAX},
.text_swipe = {.color = UINT32_MAX},
.font = DEFAULT_FONT,
.rounding = DEFAULT_ROUNDING,
},
{
/* colors */
.bg = {.bgra = {15, 15, 15, transparency}},
.fg = {.bgra = {32, 32, 32, transparency}},
.high = {.bgra = {100, 100, 100, transparency}},
.swipe = {.bgra = {100, 255, 100, 64}},
.text_press = {.color = UINT32_MAX},
.text_swipe = {.color = UINT32_MAX},
.text = {.color = UINT32_MAX},
.font = DEFAULT_FONT,
.rounding = DEFAULT_ROUNDING,
}
};
/* layers is an ordered list of layouts, used to cycle through */
static enum layout_id layers[] = {
Full, // First layout is the default layout on startup
Special,
NumLayouts // signals the last item, may not be omitted
};
/* layers is an ordered list of layouts, used to cycle through */
static enum layout_id landscape_layers[] = {
Landscape, // First layout is the default layout on startup
LandscapeSpecial,
NumLayouts // signals the last item, may not be omitted
};
#endif // config_h_INCLUDED
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
-1
View File
@@ -36,7 +36,6 @@
v4l-utils v4l-utils
vim vim
wget wget
wvkbd
xclip xclip
xournalpp xournalpp
Executable
+19
View File
@@ -0,0 +1,19 @@
#!/bin/sh
# Adjust this path to wherever dank-material-shell drops its color file
THEME_CACHE="$HOME/.cache/DankMaterialShell/dms-colors.json"
if [ -f "$THEME_CACHE" ]; then
# Parse hex tokens directly out of the active shell profile
BG=$(jq -r '.["colors"]["dark"]["background"]' "$THEME_CACHE" | tr -d '#')
FG=$(jq -r '.["colors"]["dark"]["surface_container_lowest"]' "$THEME_CACHE" | tr -d '#')
TXT=$(jq -r '.["colors"]["dark"]["on_background"]' "$THEME_CACHE" | tr -d '#')
PRIMARY=$(jq -r '.["colors"]["dark"]["surface_container_lowest"]' "$THEME_CACHE" | tr -d '#')
ON_PRIMARY=$(jq -r '.["colors"]["dark"]["on_background"]' "$THEME_CACHE" | tr -d '#')
echo -e "BG: $BG\nFG: $FG\nText: $TXT\nFG-Special: $PRIMARY\nText-Special: $ON_PRIMARY\n"
wvkbd-mobintl --hidden --bg "$BG" --press "$BG" --fg "$FG" --text "$TXT" --fg-sp "$PRIMARY" --text-sp "$ON_PRIMARY" -L 300
else
# Default fallback if the shell cache isn't built yet
wvkbd-mobintl --hidden
fi