Add ydotool shortcuts and lots of useful tools and oepnssh

This commit is contained in:
cubernetes 2026-10-03 17:15:08 +02:00
parent 39578b5beb
commit 59d2cedafc

View file

@ -77,7 +77,8 @@ with lib;
networking.extraHosts = '' networking.extraHosts = ''
# 204.168.170.249 talk.timo.social # 204.168.170.249 talk.timo.social
# 204.168.170.249 turn.talk.timo.social # 204.168.170.249 turn.talk.timo.social
# 127.0.0.1 m.youtube.com www.youtube.com youtube.com # 127.0.0.1 yt.be m.youtube.com youtube.com
# 127.0.0.1 www.youtube.com
''; '';
# Configure network proxy if necessary # Configure network proxy if necessary
@ -163,6 +164,7 @@ with lib;
"libvirtd" "libvirtd"
"docker" "docker"
"video" "video"
"ydotool"
]; ];
packages = with pkgs; [ ]; packages = with pkgs; [ ];
}; };
@ -182,6 +184,92 @@ with lib;
programs.fuse.userAllowOther = true; programs.fuse.userAllowOther = true;
services.pcscd.enable = true; services.pcscd.enable = true;
systemd.services.keyd.environment = {
YDOTOOL_SOCKET = "/run/ydotoold/socket";
};
services.keyd =
let
mouseMove = pkgs.writeShellScript "mouse-move" ''
${pkgs.ydotool}/bin/ydotool mousemove -- "$1" "$2"
'';
mouseScroll = pkgs.writeShellScript "mouse-scroll" ''
${pkgs.ydotool}/bin/ydotool mousemove -w -- "$1" "$2"
'';
mouseClick = pkgs.writeShellScript "mouse-click" ''
${pkgs.ydotool}/bin/ydotool click "$1"
'';
in
{
enable = true;
keyboards.default = {
ids = [ "*" ];
extraConfig = ''
[main]
leftcontrol = layer(lctrl)
leftalt = layer(lalt)
leftshift = layer(lshift)
leftmeta = layer(lsuper)
altgr = layer(rightalt)
[lctrl:C]
[lalt:A]
[lshift:S]
[lsuper:M]
[altgr:G]
[lalt+lctrl]
h = left
j = down
k = up
l = right
[altgr]
h = command(${mouseScroll} -1 0)
j = command(${mouseScroll} 0 -1)
k = command(${mouseScroll} 0 1)
l = command(${mouseScroll} 1 0)
[lctrl+lsuper]
h = C-left
j = C-down
k = C-up
l = C-right
[lalt+lctrl+lsuper]
h = command(${mouseMove} -200 0)
j = command(${mouseMove} 0 200)
k = command(${mouseMove} 0 -200)
l = command(${mouseMove} 200 0)
enter = rightmouse
[lctrl+lshift+lsuper]
h = C-S-left
j = C-S-down
k = C-S-up
l = C-S-right
[lalt+lctrl+lshift]
h = S-left
j = S-down
k = S-up
l = S-right
[lalt+lctrl+lshift+lsuper]
h = command(${mouseMove} -20 0)
j = command(${mouseMove} 0 20)
k = command(${mouseMove} 0 -20)
l = command(${mouseMove} 20 0)
enter = leftmouse
'';
};
};
services.netbird.enable = true; services.netbird.enable = true;
#services.netbird.clients.wt0 = { #services.netbird.clients.wt0 = {
# login = { # login = {
@ -348,10 +436,27 @@ with lib;
ntfsprogs-plus ntfsprogs-plus
sshfs sshfs
yash yash
ksh
dash dash
glow glow
tt tt
obs-studio
ydotool
tree
fastfetch
yq
jless
ijq
lynx
virtualenv
openssh
scli
signal-cli
neomutt
patchelf
yt-dlp
]; ];
programs.ydotool.enable = true;
documentation.dev.enable = true; documentation.dev.enable = true;