diff --git a/modules/common/home-manager.nix b/modules/common/home-manager.nix index 0302853..3c068ef 100644 --- a/modules/common/home-manager.nix +++ b/modules/common/home-manager.nix @@ -1,30 +1,19 @@ -{ - inputs, - lib, - os, - ... -}: +{ inputs, lib, os, ... }: let isDarwin = os == "darwin"; isLinux = os == "linux"; -in -{ +in { imports = lib.optional isDarwin inputs.home-manager.darwinModules.home-manager ++ lib.optional isLinux inputs.home-manager.nixosModules.home-manager; home-manager = { - useGlobalPkgs = true; + useGlobalPkgs = true; useUserPackages = true; backupFileExtension = lib.mkDefault "home.bak"; }; - home-manager.sharedModules = [ - { - programs = { - home-manager.enable = true; - man.generateCaches = isLinux; - }; - } - ]; + home-manager.sharedModules = [{ + programs.home-manager.enable = true; + }]; } diff --git a/modules/darwin/karabiner.nix b/modules/darwin/karabiner.nix index 3edc55b..102ccac 100644 --- a/modules/darwin/karabiner.nix +++ b/modules/darwin/karabiner.nix @@ -86,7 +86,7 @@ let is_keyboard = true; }; - # Swap the G213's Windows/Alt modifiers and map Application to Fn. + # Swap the G213's Windows/Alt modifiers. logitechG213SimpleModifications = [ { from.key_code = "left_command"; @@ -96,10 +96,6 @@ let from.key_code = "left_option"; to = [ { key_code = "left_command"; } ]; } - { - from.key_code = "application"; - to = [ { apple_vendor_top_case_key_code = "keyboard_fn"; } ]; - } ]; logitechMouseIdentifiers = { @@ -108,8 +104,12 @@ let is_pointing_device = true; }; - # Side buttons navigate back and forward. + # 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 = [ @@ -133,172 +133,6 @@ let complex_modifications = { name = "Complex Modifications"; rules = [ - { - description = "Logitech mouse Button3 sends Fn, or middle click with Hyper, Shift, Button1, or Button2"; - manipulators = [ - # Keep the forwarded button as the only `to` event so Karabiner - # preserves its down state. A variable in the same `to` sequence - # either releases the button immediately or resets too early, so - # detect Button3 through `to_if_other_key_pressed` instead. - { - from.pointing_button = "button1"; - to = [ { from_event = true; } ]; - to_if_other_key_pressed = [ - { - other_keys = [ - { - pointing_button = "button3"; - modifiers.optional = [ "any" ]; - } - ]; - to = [ - { - set_variable = { - name = "logitech_mouse_button1_held"; - value = 1; - }; - } - ]; - } - ]; - to_after_key_up = [ - { - set_variable = { - name = "logitech_mouse_button1_held"; - value = 0; - }; - } - ]; - conditions = [ - { - type = "device_if"; - identifiers = [ logitechMouseIdentifiers ]; - } - ]; - type = "basic"; - } - { - from.pointing_button = "button2"; - to = [ { from_event = true; } ]; - to_if_other_key_pressed = [ - { - other_keys = [ - { - pointing_button = "button3"; - modifiers.optional = [ "any" ]; - } - ]; - to = [ - { - set_variable = { - name = "logitech_mouse_button2_held"; - value = 1; - }; - } - ]; - } - ]; - to_after_key_up = [ - { - set_variable = { - name = "logitech_mouse_button2_held"; - value = 0; - }; - } - ]; - conditions = [ - { - type = "device_if"; - identifiers = [ logitechMouseIdentifiers ]; - } - ]; - type = "basic"; - } - { - from = { - pointing_button = "button3"; - modifiers.optional = [ "any" ]; - }; - to = [ { pointing_button = "button3"; } ]; - conditions = [ - { - type = "device_if"; - identifiers = [ logitechMouseIdentifiers ]; - } - { - type = "variable_if"; - name = "logitech_mouse_button1_held"; - value = 1; - } - ]; - type = "basic"; - } - { - from = { - pointing_button = "button3"; - modifiers.mandatory = hyperModifiers; - }; - to = [ { pointing_button = "button3"; } ]; - conditions = [ - { - type = "device_if"; - identifiers = [ logitechMouseIdentifiers ]; - } - ]; - type = "basic"; - } - { - from = { - pointing_button = "button3"; - modifiers = { - mandatory = [ "shift" ]; - optional = [ "any" ]; - }; - }; - to = [ { pointing_button = "button3"; } ]; - conditions = [ - { - type = "device_if"; - identifiers = [ logitechMouseIdentifiers ]; - } - ]; - type = "basic"; - } - { - from = { - pointing_button = "button3"; - modifiers.optional = [ "any" ]; - }; - to = [ { pointing_button = "button3"; } ]; - conditions = [ - { - type = "device_if"; - identifiers = [ logitechMouseIdentifiers ]; - } - { - type = "variable_if"; - name = "logitech_mouse_button2_held"; - value = 1; - } - ]; - type = "basic"; - } - { - from = { - pointing_button = "button3"; - modifiers.optional = [ "any" ]; - }; - to = [ { apple_vendor_top_case_key_code = "keyboard_fn"; } ]; - conditions = [ - { - type = "device_if"; - identifiers = [ logitechMouseIdentifiers ]; - } - ]; - type = "basic"; - } - ]; - } # { # description = "Change numbers to symbols and vice versa"; # manipulators = manipulators; @@ -309,9 +143,7 @@ let { from = { key_code = "caps_lock"; - modifiers = { - optional = [ "any" ]; - }; + modifiers = { optional = [ "any" ]; }; }; to = [ {