diff --git a/hosts/fw/configuration.nix b/hosts/fw/configuration.nix index ca70cb3..7b36b46 100644 --- a/hosts/fw/configuration.nix +++ b/hosts/fw/configuration.nix @@ -77,7 +77,8 @@ with lib; networking.extraHosts = '' # 204.168.170.249 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 @@ -163,6 +164,7 @@ with lib; "libvirtd" "docker" "video" + "ydotool" ]; packages = with pkgs; [ ]; }; @@ -182,6 +184,92 @@ with lib; programs.fuse.userAllowOther = 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.clients.wt0 = { # login = { @@ -348,10 +436,27 @@ with lib; ntfsprogs-plus sshfs yash + ksh dash glow 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;