1
Fork 0
mirror of https://github.com/thegeneralist01/config.git synced 2026-07-21 19:05:19 +02:00

Compare commits

...

4 commits

2 changed files with 192 additions and 13 deletions

View file

@ -1,19 +1,30 @@
{ 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;
}];
home-manager.sharedModules = [
{
programs = {
home-manager.enable = true;
man.generateCaches = isLinux;
};
}
];
}

View file

@ -86,7 +86,7 @@ let
is_keyboard = true;
};
# Swap the G213's Windows/Alt modifiers.
# Swap the G213's Windows/Alt modifiers and map Application to Fn.
logitechG213SimpleModifications = [
{
from.key_code = "left_command";
@ -96,6 +96,10 @@ 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 = {
@ -104,12 +108,8 @@ let
is_pointing_device = true;
};
# Middle click sends Fn; side buttons navigate back and forward.
# 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,6 +133,172 @@ 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;
@ -143,7 +309,9 @@ let
{
from = {
key_code = "caps_lock";
modifiers = { optional = [ "any" ]; };
modifiers = {
optional = [ "any" ];
};
};
to = [
{