[{"data":1,"prerenderedAt":195},["ShallowReactive",2],{"i-lucide:menu":3,"i-simple-icons:github":8,"docs-\u002Fdocs":10,"docs-nav":171,"i-lucide:download":183,"i-lucide:shield-check":185,"i-lucide:layers":187,"i-lucide:arrow-right":189,"i-lucide:book-open":191,"i-lucide:wrench":193},{"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":162,"extension":163,"icon":164,"meta":165,"navigation":166,"order":4,"path":167,"seo":168,"stem":169,"__hash__":170},"docs\u002Fdocs\u002F0.index.md","Introduction",{"type":14,"value":15,"toc":153},"minimark",[16,21,34,39,46,52,58,62,127,131,134,138,144],[17,18,20],"h1",{"id":19},"openlogi-documentation","OpenLogi documentation",[22,23,24,25,29,30,33],"p",{},"OpenLogi configures Logitech mice and keyboards natively on Linux. It speaks\nLogitech's own HID++ protocol directly over the kernel's ",[26,27,28],"code",{},"hidraw"," interface, so\nit talks to your hardware the same way the official Windows and macOS software\ndoes — without a proprietary binary, a cloud account, or ",[26,31,32],{},"sudo",".",[35,36,38],"h2",{"id":37},"what-it-does","What it does",[22,40,41,45],{},[42,43,44],"strong",{},"Button remapping."," Any reprogrammable control on the device can be bound to\na keystroke, a media key, a mouse button, a shell command, a URL, or a\nworkspace action.",[22,47,48,51],{},[42,49,50],{},"Sensitivity."," DPI is written into the device's own flash, so it persists\nacross reboots and keeps working when OpenLogi is closed.",[22,53,54,57],{},[42,55,56],{},"Battery and device information."," Charge level, charging state, model,\nfirmware version and serial number, read directly from the device.",[35,59,61],{"id":60},"where-to-start","Where to start",[63,64,65,78],"table",{},[66,67,68],"thead",{},[69,70,71,75],"tr",{},[72,73,74],"th",{},"Guide",[72,76,77],{},"What it covers",[79,80,81,94,105,116],"tbody",{},[69,82,83,91],{},[84,85,86],"td",{},[87,88,90],"a",{"href":89},"\u002Fdocs\u002Finstallation","Installation",[84,92,93],{},"Packages, building from source, permission setup",[69,95,96,102],{},[84,97,98],{},[87,99,101],{"href":100},"\u002Fdocs\u002Fpermissions","Permissions",[84,103,104],{},"The privilege model, and why it looks the way it does",[69,106,107,113],{},[84,108,109],{},[87,110,112],{"href":111},"\u002Fdocs\u002Farchitecture","Architecture",[84,114,115],{},"How the protocol layer and input engine fit together",[69,117,118,124],{},[84,119,120],{},[87,121,123],{"href":122},"\u002Fdocs\u002Ftroubleshooting","Troubleshooting",[84,125,126],{},"Device not detected, buttons not responding, permissions",[35,128,130],{"id":129},"a-note-on-scope","A note on scope",[22,132,133],{},"OpenLogi covers device configuration. Features of Logitech Options+ that depend\non Logitech's cloud services — account sync and Flow cross-device control among\nthem — are deliberately out of scope, because implementing them would mean\nbuilding exactly the account-and-telemetry layer this project exists to avoid.",[35,135,137],{"id":136},"project-status","Project status",[22,139,140,141,143],{},"The HID++ protocol layer, the hardware probe and the desktop application are\nworking. Profile persistence and per-application profile switching are designed\nbut not yet implemented; see ",[87,142,112],{"href":111}," for how they\nfit in.",[22,145,146,147],{},"Source and issue tracker: ",[87,148,152],{"href":149,"rel":150},"https:\u002F\u002Fgithub.com\u002Fmohin7\u002Fopenlogi",[151],"nofollow","github.com\u002Fmohin7\u002Fopenlogi",{"title":154,"searchDepth":155,"depth":155,"links":156},"",3,[157,159,160,161],{"id":37,"depth":158,"text":38},2,{"id":60,"depth":158,"text":61},{"id":129,"depth":158,"text":130},{"id":136,"depth":158,"text":137},"What OpenLogi is, what it does today, and how the documentation is organised.","md","lucide:book-open",{},true,"\u002Fdocs",{"title":12,"description":162},"docs\u002F0.index","iUtw63knoFKEMhztLevnrkDT9g-akXko98cvr5sX3cY",[172,173,176,178,180],{"path":167,"title":12,"icon":164,"order":4},{"path":89,"title":90,"icon":174,"order":175},"lucide:download",1,{"path":100,"title":101,"icon":177,"order":158},"lucide:shield-check",{"path":111,"title":112,"icon":179,"order":155},"lucide:layers",{"path":122,"title":123,"icon":181,"order":182},"lucide:wrench",4,{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":184},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M12 15V3m9 12v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"\u002F>\u003Cpath d=\"m7 10l5 5l5-5\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":186},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z\"\u002F>\u003Cpath d=\"m9 12l2 2l4-4\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":188},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z\"\u002F>\u003Cpath d=\"M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12\"\u002F>\u003Cpath d=\"M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":190},"\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":192},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M12 5v16m8.001-2A2 2 0 0 0 22 17V5a2 2 0 0 0-1.999-2L16 3.002A5 5 0 0 0 12 5a5 5 0 0 0-4-2H4a2 2 0 0 0-2 2v12a2 2 0 0 0 1.999 2H8a5 5 0 0 1 4 2a5 5 0 0 1 4-2z\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":194},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z\"\u002F>",1789403123364]