[{"data":1,"prerenderedAt":224},["ShallowReactive",2],{"i-lucide:menu":3,"i-simple-icons:github":8,"device-\u002Fdevices\u002Fmx-keys":10,"device-others-\u002Fdevices\u002Fmx-keys":209,"i-lucide:scan-search":218,"i-lucide:arrow-right":220,"i-lucide:info":222},{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":7},0,24,false,"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M4 5h16M4 12h16M4 19h16\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":9},"\u003Cpath fill=\"currentColor\" d=\"M12 .297c-6.63 0-12 5.373-12 12c0 5.303 3.438 9.8 8.205 11.385c.6.113.82-.258.82-.577c0-.285-.01-1.04-.015-2.04c-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729c1.205.084 1.838 1.236 1.838 1.236c1.07 1.835 2.809 1.305 3.495.998c.108-.776.417-1.305.76-1.605c-2.665-.3-5.466-1.332-5.466-5.93c0-1.31.465-2.38 1.235-3.22c-.135-.303-.54-1.523.105-3.176c0 0 1.005-.322 3.3 1.23c.96-.267 1.98-.399 3-.405c1.02.006 2.04.138 3 .405c2.28-1.552 3.285-1.23 3.285-1.23c.645 1.653.24 2.873.12 3.176c.765.84 1.23 1.91 1.23 3.22c0 4.61-2.805 5.625-5.475 5.92c.42.36.81 1.096.81 2.22c0 1.606-.015 2.896-.015 3.286c0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12\"\u002F>",{"id":11,"title":12,"body":13,"description":198,"extension":199,"meta":200,"models":201,"navigation":202,"order":193,"path":203,"seo":204,"seoTitle":205,"status":206,"stem":207,"__hash__":208},"devices\u002Fdevices\u002F2.mx-keys.md","MX Keys on Linux",{"type":14,"value":15,"toc":189},"minimark",[16,20,27,32,35,39,46,57,60,77,81,149,153,168,172,185],[17,18,19],"p",{},"The MX Keys family works as a normal keyboard on Linux without any software.\nWhat is missing without Options+ is everything Logitech layers on top: battery\nlevel, remapping the function-row keys, and backlight settings. OpenLogi covers\npart of that over HID++.",[21,22,24],"callout",{"icon":23},"lucide:info",[17,25,26],{},"No MX Keys capture from real hardware has been published yet. What follows is\nhow OpenLogi treats the HID++ features a keyboard reports; run the probe on\nyours to see exactly what it has.",[28,29,31],"h2",{"id":30},"connections","Connections",[17,33,34],{},"MX Keys keyboards connect over a Logitech receiver (Unifying or Bolt,\ndepending on the model) or Bluetooth. OpenLogi reaches both the same way: it\nfinds the keyboard's HID++ endpoint by its report-descriptor shape, not by\nproduct id.",[28,36,38],{"id":37},"what-works-today","What works today",[17,40,41,45],{},[42,43,44],"strong",{},"Battery and device details."," Charge level, charging state, model name,\nfirmware version and serial number, read from the keyboard.",[17,47,48,51,52,56],{},[42,49,50],{},"Remapping keys the firmware allows."," Keyboards list their reprogrammable\nkeys through the same HID++ feature as mice (",[53,54,55],"code",{},"0x1B04","). OpenLogi shows each\none that is marked divertable — typically function-row keys — and lets you bind\nit to a keystroke, a media key, a shell command, a URL or a workspace action.\nWhich keys qualify is decided by the keyboard's firmware, and keyboards\ngenerally expose fewer than mice.",[17,58,59],{},"The probe shows the list for your unit:",[61,62,67],"pre",{"className":63,"code":64,"language":65,"meta":66,"style":66},"language-bash shiki shiki-themes github-light github-dark-dimmed",".\u002Ftarget\u002Frelease\u002Flogi-probe\n","bash","",[53,68,69],{"__ignoreMap":66},[70,71,74],"span",{"class":72,"line":73},"line",1,[70,75,64],{"class":76},"sOLd2",[28,78,80],{"id":79},"what-does-not-work-yet","What does not work yet",[82,83,84,100],"table",{},[85,86,87],"thead",{},[88,89,90,94,97],"tr",{},[91,92,93],"th",{},"Feature",[91,95,96],{},"HID++",[91,98,99],{},"Status",[101,102,103,117,127,139],"tbody",{},[88,104,105,109,114],{},[106,107,108],"td",{},"Backlight brightness and timeout",[106,110,111],{},[53,112,113],{},"0x1982",[106,115,116],{},"Not implemented",[88,118,119,122,125],{},[106,120,121],{},"Fn-lock toggle",[106,123,124],{},"—",[106,126,116],{},[88,128,129,132,137],{},[106,130,131],{},"Easy-Switch host selection",[106,133,134],{},[53,135,136],{},"0x1814",[106,138,116],{},[88,140,141,144,146],{},[106,142,143],{},"Per-application profiles",[106,145,124],{},[106,147,148],{},"Designed, not implemented",[28,150,152],{"id":151},"using-it-with-solaar","Using it with Solaar",[17,154,155,162,163,167],{},[156,157,161],"a",{"href":158,"rel":159},"https:\u002F\u002Fgithub.com\u002Fpwr-Solaar\u002FSolaar",[160],"nofollow","Solaar"," can run at the same time as\nOpenLogi, and offers keyboard settings OpenLogi does not have yet. It is also\nthe way to pair the keyboard with a receiver, which OpenLogi does not do. See\n",[156,164,166],{"href":165},"\u002Fdocs\u002Falternatives","Compared with Solaar and logiops",".",[28,169,171],{"id":170},"install","Install",[17,173,174,175,179,180,184],{},"OpenLogi is built from source for now; see ",[156,176,178],{"href":177},"\u002Fdocs\u002Finstallation","Installation","\nfor Ubuntu, Debian, Fedora and Arch. If the keyboard does not show up,\n",[156,181,183],{"href":182},"\u002Fdocs\u002Ftroubleshooting","Troubleshooting"," covers the usual causes.",[186,187,188],"style",{},"html pre.shiki code .sOLd2, html code.shiki .sOLd2{--shiki-default:#6F42C1;--shiki-dark:#F69D50}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":66,"searchDepth":190,"depth":190,"links":191},3,[192,194,195,196,197],{"id":30,"depth":193,"text":31},2,{"id":37,"depth":193,"text":38},{"id":79,"depth":193,"text":80},{"id":151,"depth":193,"text":152},{"id":170,"depth":193,"text":171},"What OpenLogi does with a Logitech MX Keys, MX Keys S or MX Keys Mini on Linux: battery, device details, key remapping, and what is not supported yet.","md",{},"MX Keys, MX Keys S, MX Keys Mini",true,"\u002Fdevices\u002Fmx-keys",{"title":12,"description":198},"Logitech MX Keys on Linux","discovered","devices\u002F2.mx-keys","q7zcaNMkL5zqq2ubbb1RK4PMxEwuvhwrDL7Wk9vjf_E",[210,214],{"path":211,"title":212,"models":213},"\u002Fdevices\u002Fmx-master","MX Master on Linux","MX Master 3S, MX Master 3, MX Master 2S",{"path":215,"title":216,"models":217},"\u002Fdevices\u002Fsignature-m650","Signature M650 on Linux","Signature M650",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":219},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M3 7V5a2 2 0 0 1 2-2h2m10 0h2a2 2 0 0 1 2 2v2m0 10v2a2 2 0 0 1-2 2h-2M7 21H5a2 2 0 0 1-2-2v-2\"\u002F>\u003Ccircle cx=\"12\" cy=\"12\" r=\"3\"\u002F>\u003Cpath d=\"m16 16l-1.9-1.9\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":221},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M5 12h14m-7-7l7 7l-7 7\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":223},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Ccircle cx=\"12\" cy=\"12\" r=\"10\"\u002F>\u003Cpath d=\"M12 16v-4m0-4h.01\"\u002F>\u003C\u002Fg>",1793128330106]