add fht compositor

This commit is contained in:
Henry Hiles 2026-04-17 12:40:40 -04:00
commit badacda762
Signed by: Henry-Hiles
SSH key fingerprint: SHA256:VKQUdS31Q90KvX7EkKMHMBpUspcmItAh86a+v7PGiIs
7 changed files with 138 additions and 5 deletions

View file

@ -0,0 +1,6 @@
{
programs.dms-shell = {
enable = true;
systemd.enable = false;
};
}

View file

@ -0,0 +1,98 @@
{ inputs, pkgs, ... }:
{
imports = [ inputs.fht-compositor.nixosModules.default ];
programs.fht-compositor =
let
config = {
autostart = [ "dms run" ];
general = {
focus-follows-mouse = true;
inner-gaps = 10;
outer-gaps = 30;
};
decorations = {
border = {
thickness = 4;
radius = 12;
};
blur.disable = true;
};
keybinds = {
Alt-Tab = "focus-next-window";
Super-f = "fullscreen-focused-window";
Super-Ctrl-q = "quit";
Super-Ctrl-r = "reload-config";
Super-t = {
action = "run-command";
arg = "ptyxis";
};
Super-Down = {
action = "change-window-proportion";
arg = 0.5;
};
Super-Up = {
action = "change-window-proportion";
arg = -0.5;
};
Super-Left = {
action = "change-mwfact";
arg = -0.1;
};
Super-Right = {
action = "change-mwfact";
arg = 0.1;
};
keybindings = builtins.listToAttrs (
builtins.genList (i: {
name = "Super-${toString (i + 1)}";
value = {
action = "focus-workspace";
arg = i;
};
}) 9
);
};
mousebinds = {
Super-Left = "swap-tile";
Super-wheeldown = "focus-previous-workspace";
Super-wheelup = "focus-next-workspace";
};
rules = [
{
match-app-id = [ ".*" ];
floating = false;
}
];
outputs = {
HDMI-A-1.position.x = 0;
DP-3.position.x = 1920;
};
cursor = {
name = "GoogleDot-Blue";
size = 24;
};
};
in
{
enable = true;
package =
inputs.fht-compositor.packages.${pkgs.stdenv.hostPlatform.system}.default.overrideAttrs
(old: {
nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ pkgs.makeWrapper ];
postInstall = (old.postInstall or "") + ''
wrapProgram $out/bin/fht-compositor \
--add-flags "-c ${(pkgs.formats.toml { }).generate "config.toml" config}"
'';
});
};
}