Logitech G13 - Tipp - M-Shift Taste programmieren - dadurch gleichwertig zu MadCatz Command Unit

Altaya

BdW-Veteran
Liebe Bewahrer,

Es hat mich jetzt 3 Stunden gekostet herauszufinden wie das Folgende genau funktioniert und einen funktionierenden Code zu finden. Deshalb präsentiere ich alles nun auch Euch. Das findet bestimmt jemand anderes auch nützlich ;)

Es ist vollbracht!

Nun kann die G13 von Logitech meine alten Saitek Command Units voll und eventuell sogar besser ersetzen!

Die G13 (und natürlich auch alle über die Logitech Gaming Software programmierbaren Geräte die verschiedene M-Modi anbieten) kann mittels LUA-Programming so programmiert werden, dass beliebige Tasten als M-Shift Tasten dienen, während man sie gedrückt hält.

Damit ist es nun möglich, die geräteeigene (!) Shift-Taste meiner bisherigen MadCatz/Saitek Command Unit auch auf den Logitech-Tastaturen zu imitieren.
Der einzige Nachteil: Auf der Command Unit kann man die Shift Taste mit dem Handballen bedienen, bei der Logitech G13 braucht man den Daumen.
Ein Vorteil: Durch insgesamt 3 M-Modi bei der G-13 habe ich die Tastenzahl, die direkt mit den 4 Fingern der linken Hand erreichbar sind nochmal um ein komplettes Set erweitert, zusätzlich zu den eh schon mehr Tasten der G13 im Vergleich zur MadCatz/Saitek Command Unit.

Wie funktioniert das alles nun?
Man muss in der LGS Software ein LUA-Script zusätzlich zum normalen Profil schreiben.

So kommt man ins Script Fenster:

LGS starten/maximieren.
Die Logitech G13 als Gerät unten links auswählen.
Rechtsklick auf das zu bearbeitende Profil, dann "Skript erstellen".
Script Fenster öffnet sich.

Hier hat man nun auch Zugang zur LUA-Dokumentation über den Hilfe-Button oben rechts.
- Skript-API

Normale Hilfe zur LGS erhält man durch Klick auf das Fragezeichen unten rechts im normalen Softwarefenster.

Generisches Beispiel für das Einrichten einer M-Shift Taste mittels LUA Script aus der Skript API-pdf-Datei:

-- Set the current M Key state to M1 when G1 is pressed
function OnEvent(event, arg)
if (event == "G_PRESSED" and arg == 1) then
SetMkeyState(1);
end
end


Die G-Tasten werden also angesprochen durch diese Zeile:
(event == "G_PRESSED" and arg == 1)
im Beispiel ist G1 gemeint.

Das Script selbst funktioniert beim ausprobieren so leider nicht, ich konnte dann aber ein Funktionierendes finden was auch noch genau das macht, was ich möchte:

https://hokage.org/content/keiyas-logitech-g13-wow-setup/

Dort findet sich zum Glück auch die Antwort auf die Frage, wie man die beiden Daumentasten neben dem Stick auf der G13 anspricht, die ja keine G-Bezeichnung haben.

Sie heißen, wie ich mir schon gedacht habe, so:
"Nr" "23" und "Nr" "24"

und ein funktionierendes Script um sie als M-Shift-Tasten zu benutzen sieht so aus (copy und paste von der eben genannten Seite!)
function OnEvent(event, arg, family)
if ( family == "lhc" ) then
if ( event == "G_PRESSED" ) then
if ( arg == 23 ) then
SetMKeyState(2, family);
end
if ( arg == 24 ) then
SetMKeyState(3, family);
end
elseif ( event == "G_RELEASED" ) then
if ( arg == 23 ) then
SetMKeyState(1, family);
end
if ( arg == 24 ) then
SetMKeyState(1, family);
end
end
end
end

Nun habe ich, was ich wollte:
Während Taste Nr. 23, die links neben dem Daumenstick, gedrückt ist, bin ich im Tastaturmodus "M2" und kann dort nochmal andere programmierte Tasten ansprechen.
Drücke ich die Taste unter dem Dauemnstick bin ich solange im M3-Modus bis ich sie wieder loslasse.

Genial.

Dazu muss man das Script nur, wie im zweiten Zitat, in das Scriptfenster beim gewünschten Profil reinkopieren und einmal auf "Speichern" oben links im Menü klicken.


Eine Anmerkung.
Das Script überschreibt wohl die über das Interface mögliche, "einfache" Belegung von Tasten. Man sollte daher vor oder nach dem Schreiben des Scripts die über ein Script geregelten Tasten am besten im normalen Userinterface auf "unbelegt" stellen, damit das Label verschwindet.

Wie man ein Custom Label programmiert habe ich noch nicht nachgeschaut, das geht aber sicher auch...

Hoffe jemand anderes findet das alles so toll wie ich ;)
lg
Altaya

Edit: Ein Ausdruck des Profils das ich für PoE erstellt habe hat folgendes ergeben was die Nummern der nicht beschrifteten Tasten betrifft:

23 Taste mit Punkt links neben Stick
24 Taste mit Punkt unter Stick
25 Druck auf Stick
26 Stick nach Oben
27 Stick nach Rechts
28 Stick nach Unten
29 Stick nach Links
 
Zuletzt bearbeitet:

Altaya

BdW-Veteran
Jetzt müsste man nur noch Logitech dazu kriegen 2 zusätzliche Tasten so zu legen dass
- eine am handballen unter dem daumen grundgelenk lieg
- eine zweite links quasi etwas unterhalb des kleinfingergrundgelenks.
Dann könnte man sogar beim Drücken der M-Shift-Tasten noch den Daumen für die zwei Tasten neben dem 4-Wegestick nehmen und fü den Wegestick selbst.

Bisher habe ich neben z.B. immer bei der Saitek Command Unit die Hand nach rechts gekippt, dadurch die Shift - Taste am Daumen/Handgelenksübergang gedrückt und dann zusätzlich mit der Daumenkuppe die Taste unter dem 4-Wege-Stick geklickt. Das war immer "Inventar öffnen" ;)
 
Oben