diff --git a/modules/darwin/karabiner.nix b/modules/darwin/karabiner.nix index e41cd7b..102ccac 100644 --- a/modules/darwin/karabiner.nix +++ b/modules/darwin/karabiner.nix @@ -68,7 +68,8 @@ let ]) numbers ); - simple_modifications = [ + # Swap Fn/Globe and left Control only on the built-in keyboard. + builtinKeyboardSimpleModifications = [ { from.apple_vendor_top_case_key_code = "keyboard_fn"; to = [ { key_code = "left_control"; } ]; @@ -85,6 +86,7 @@ let is_keyboard = true; }; + # Swap the G213's Windows/Alt modifiers. logitechG213SimpleModifications = [ { from.key_code = "left_command"; @@ -96,6 +98,38 @@ let } ]; + logitechMouseIdentifiers = { + vendor_id = 1133; + product_id = 50503; + is_pointing_device = true; + }; + + # Middle click sends Fn; side buttons navigate back and forward. + logitechMouseSimpleModifications = [ + { + from.pointing_button = "button3"; + to = [ { apple_vendor_top_case_key_code = "keyboard_fn"; } ]; + } + { + from.pointing_button = "button4"; + to = [ + { + key_code = "open_bracket"; + modifiers = [ "left_command" ]; + } + ]; + } + { + from.pointing_button = "button5"; + to = [ + { + key_code = "close_bracket"; + modifiers = [ "left_command" ]; + } + ]; + } + ]; + complex_modifications = { name = "Complex Modifications"; rules = [ @@ -319,16 +353,24 @@ let name = "default"; selected = true; virtual_hid_keyboard.keyboard_type_v2 = "ansi"; - inherit simple_modifications; inherit complex_modifications; devices = [ + { + identifiers = { + is_keyboard = true; + is_built_in_keyboard = true; + }; + simple_modifications = builtinKeyboardSimpleModifications; + } { identifiers = logitechG213Identifiers; simple_modifications = logitechG213SimpleModifications; } { - identifiers.is_keyboard = true; + identifiers = logitechMouseIdentifiers; + ignore = false; + simple_modifications = logitechMouseSimpleModifications; } ]; } diff --git a/modules/linux/dns.nix b/modules/linux/dns.nix index d900e1f..deb39ec 100644 --- a/modules/linux/dns.nix +++ b/modules/linux/dns.nix @@ -1,14 +1,13 @@ { config, lib, ... }: let - inherit (lib) mkIf concatStringsSep; + inherit (lib) mkIf; in { services.resolved = mkIf (!config.isServer) { enable = true; - extraConfig = config.dnsServers - |> map (server: "DNS=${server}") - |> concatStringsSep "\n"; - - dnssec = "true"; - dnsovertls = "true"; + settings.Resolve = { + DNS = config.dnsServers; + DNSSEC = true; + DNSOverTLS = true; + }; }; }