Compare commits

...

3 Commits

Author SHA1 Message Date
Noah Masur
842f373101
switch from keyd to kanata
more reliable, doesn't break on update. also allows the escape key to
timeout and turn into lctrl after 1 second, which might be nicer
behavior
2024-08-07 23:24:28 -04:00
Noah Masur
65aa25b213
add moonlight for game streaming 2024-08-07 22:58:58 -04:00
Noah Masur
5b2fef7e01
comment on choosing not to switch to ddclient 2024-08-07 22:57:31 -04:00
6 changed files with 40 additions and 26 deletions

View File

@ -118,6 +118,7 @@ inputs.nixpkgs.lib.nixosSystem {
dwarf-fortress.enable = true; dwarf-fortress.enable = true;
enable = true; enable = true;
steam.enable = true; steam.enable = true;
moonlight.enable = true;
legendary.enable = true; legendary.enable = true;
lutris.enable = true; lutris.enable = true;
ryujinx.enable = true; ryujinx.enable = true;

View File

@ -12,6 +12,7 @@
./legendary.nix ./legendary.nix
./lutris.nix ./lutris.nix
./minecraft-server.nix ./minecraft-server.nix
./moonlight.nix
./ryujinx.nix ./ryujinx.nix
./steam.nix ./steam.nix
]; ];

View File

@ -0,0 +1,14 @@
{
config,
pkgs,
lib,
...
}:
{
options.gaming.moonlight.enable = lib.mkEnableOption "Enable Moonlight game streaming client.";
config = lib.mkIf config.gaming.moonlight.enable {
environment.systemPackages = with pkgs; [ moonlight-qt ];
};
}

View File

@ -209,12 +209,6 @@
label-foreground = config.theme.colors.base06; label-foreground = config.theme.colors.base06;
# format-background = colors.background; # format-background = colors.background;
}; };
"module/keyboard" = {
type = "custom/text";
content = "󰌌";
click-left = "doas systemctl restart keyd";
content-foreground = config.theme.colors.base04;
};
"module/power" = { "module/power" = {
type = "custom/text"; type = "custom/text";
content = " "; content = " ";

View File

@ -1,9 +1,4 @@
{ { config, lib, ... }:
config,
pkgs,
lib,
...
}:
{ {
config = lib.mkIf config.physical { config = lib.mkIf config.physical {
@ -17,24 +12,30 @@
autoRepeatInterval = 40; autoRepeatInterval = 40;
}; };
# Use capslock as escape and/or control # Swap Caps-Lock with Escape when pressed or LCtrl when held/combined with others
services.keyd = { # Inspired by: https://www.youtube.com/watch?v=XuQVbZ0wENE
services.kanata = {
enable = true; enable = true;
keyboards = { keyboards.default = {
default = { devices = [
ids = [ "*" ]; "/dev/input/by-id/usb-Logitech_Logitech_G710_Keyboard-event-kbd"
settings = { "/dev/input/by-id/usb-Logitech_Logitech_G710_Keyboard-if01-event-kbd"
main = { ];
capslock = "overload(control, esc)"; extraDefCfg = "process-unmapped-keys yes";
}; config = ''
}; (defsrc
}; caps
)
(defalias
escctrl (tap-hold-press 1000 1000 esc lctrl)
)
(deflayer base
@escctrl
)
'';
}; };
}; };
# For some reason, keyd doesn't restart properly when updating
system.activationScripts.keyd.text = "${pkgs.systemd}/bin/systemctl restart keyd.service";
# Enable num lock on login # Enable num lock on login
home-manager.users.${config.user}.xsession.numlock.enable = true; home-manager.users.${config.user}.xsession.numlock.enable = true;
}; };

View File

@ -116,6 +116,9 @@ in
[ "127.0.0.1" ] ++ cloudflareIpRanges [ "127.0.0.1" ] ++ cloudflareIpRanges
); );
# Using dyn-dns instead of ddclient because I can't find a way to choose
# between proxied and non-proxied records for Cloudflare using just
# ddclient.
services.cloudflare-dyndns = services.cloudflare-dyndns =
lib.mkIf ((builtins.length config.services.cloudflare-dyndns.domains) > 0) lib.mkIf ((builtins.length config.services.cloudflare-dyndns.domains) > 0)
{ {