{"id":13500422,"url":"https://github.com/RasmusLindroth/i3keys","last_synced_at":"2025-03-29T07:30:52.693Z","repository":{"id":57512070,"uuid":"181934333","full_name":"RasmusLindroth/i3keys","owner":"RasmusLindroth","description":"Lists available bindings for i3 or Sway with a graphical or text keyboard","archived":false,"fork":false,"pushed_at":"2023-10-16T20:54:40.000Z","size":97,"stargazers_count":137,"open_issues_count":10,"forks_count":8,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-27T11:51:22.852Z","etag":null,"topics":["i3","i3-conf","i3-config","i3wm","sway","sway-config","swaywm"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RasmusLindroth.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2019-04-17T17:00:14.000Z","updated_at":"2025-01-31T03:44:30.000Z","dependencies_parsed_at":"2024-01-13T19:19:16.921Z","dependency_job_id":"a15cbdf2-3b44-432a-81c6-9b8993132589","html_url":"https://github.com/RasmusLindroth/i3keys","commit_stats":null,"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RasmusLindroth%2Fi3keys","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RasmusLindroth%2Fi3keys/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RasmusLindroth%2Fi3keys/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RasmusLindroth%2Fi3keys/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RasmusLindroth","download_url":"https://codeload.github.com/RasmusLindroth/i3keys/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246155984,"owners_count":20732355,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["i3","i3-conf","i3-config","i3wm","sway","sway-config","swaywm"],"created_at":"2024-07-31T22:01:00.166Z","updated_at":"2025-03-29T07:30:52.391Z","avatar_url":"https://github.com/RasmusLindroth.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"# i3keys\nA program for the tiling window manager [i3](https://i3wm.org/).\nIt also supports [Sway](https://swaywm.org/).\n\nThis is program lists all the keys that are bound to some action in i3 or sway, and \nall keys that are not bound to any actions. Now you don't have to search \nthrough your configuration file or going down the track of trial and error \nanymore.\n\nThe program will output one separate keyboard for all of your different modifier \ncombinations. It will also output each combination for all of your modes.\nThe keyboard should look like your keymap if everything works as expected :)\n\nYou can see the results in three ways. By opening a local web page,\noutput the keyboards as text in the terminal or generate SVG files.\n\n### Example of the output for Mod4 + any key\n![Example image](https://i.imgur.com/4J1fbdQ.png)\n* Green = the modifier key(s)\n* Red = the binding is occupied\n* White = one free key to use\n\n\n## How to\nCurrently there is one binary for Linux amd64. You can find it under [releases](https://github.com/RasmusLindroth/i3keys/releases). Download it and make it exacutable with `chmod +x i3keys` and then you can run it with `./i3keys`. If you want to use it \"everywhere\" you must move it to somewhere in your $PATH.\n\n### Using Arch?\n\nYou can find it in the Arch User Repository (AUR).\n\nhttps://aur.archlinux.org/packages/i3keys/\n\n#### Go getting and installing\n\nIf your version of Go have support for modules\n```\n//Get this project\ngit clone https://github.com/RasmusLindroth/i3keys.git\n\n//Install\ngo install\n\n//If starting doesn't work try running it from $HOME/go/bin\n```\n\nAlternative way to install\n```\n//Get this program\ngo get -u github.com/RasmusLindroth/i3keys\n\n//Go to the project directory\ncd $HOME/go/src/github.com/RasmusLindroth/i3keys\n\n//Install\ngo install\n\n//If starting doesn't work try running it from $HOME/go/bin\n```\n\nExample usage\n```\n//Run web interface with a random port\ni3keys web \n\n//Run web interface on port 8080\ni3keys web 8080\n\n//or output text to the terminal\ni3keys text ISO\n\n//or filter text output\ni3keys text ISO Mod4+Ctrl\n\n//or output json to the terminal\ni3keys json ISO\n\n//or output SVG to the current directory\ni3keys svg ISO ./\n\n//or filter SVG\ni3keys svg ISO ./ Mod4+Ctrl\n```\n\nIf you still having problems see the \n[installation guide for Go](https://golang.org/doc/install#install) or open \nup an issue.\n\n### You don't want autodetection of WM\n\nYou can use the following flags to disable autodetection, `-i` for i3 and `-s` for Sway.\nThis can be useful if you're running both at the same time, or if the\nautodetection doesn't work. But then you should file an issue.\n\n#### You have started i3keys\n\nFor web output you will need to start your browser and head over to the URL \nprinted in  your terminal e.g. http://localhost:8080. This is is the most \nfeature-rich option. Because here you can see the command bound to each key.\n\nIf you have selected to out SVG files. Open them with a program that supports \nSVG files. For example your program for viewing images, InkScape or a browser.\nNote that each mode will be located in a folder named mode\\\u003cint\\\u003e-name-of-mode.\nInside that folder you will find a file named `mode-full-name` where you can see\nthe real name of the mode. Because this program removes some characters and \nshortens the name of the folder.\n\nIf you have selected text output, you should already have seen the result in \nyour terminal.\n\n### Text example\n\n```\n$ i3keys text iso\n\nAvailable keybindings per modifier group\n\nMod4:\n-----\nEscape, F1, F4, F6, F7, F8, F9, F10, F11, F12, Scroll_Lock, Pause\nsection, plus, dead_acute, BackSpace, Insert, Home, Page_Up, Num_Lock, KP_Divide, KP_Multiply, KP_Subtract\ni, o, dead_diaeresis, Delete, End, Page_Down, KP_Home, KP_Up, KP_Page_Up, KP_Add\nCaps_Lock, g, quoteright, KP_Left, KP_Begin, KP_Right\nShift_L, less, x, Shift_R, KP_End, KP_Down, KP_Page_Down, KP_Enter\nControl_L, Super_L, Alt_L, ISO_Level3_Shift, Super_R, Menu, Control_R, KP_Insert, KP_Delete\n\n\nMod4+Shift:\n-----------\nEscape, F1, F2, F4, F5, F6, F7, F8, F9, F10, F11, F12, Scroll_Lock, Pause\nsection, 9, 0, plus, dead_acute, BackSpace, Insert, Home, Page_Up, Num_Lock, KP_Divide, KP_Multiply, KP_Subtract\nTab, w, t, y, u, i, o, p, dead_diaeresis, Return, Delete, End, Page_Down, KP_Home, KP_Up, KP_Page_Up, KP_Add\nCaps_Lock, a, f, g, quoteright, KP_Left, KP_Begin, KP_Right\nShift_L, less, z, x, v, n, comma, period, Shift_R, KP_End, KP_Down, KP_Page_Down, KP_Enter\nControl_L, Super_L, Alt_L, ISO_Level3_Shift, Super_R, Menu, Control_R, KP_Insert, KP_Delete\n```\n\n### Help message\n\n```\nUsage:\n\n\ti3keys [-i|-s] \u003ccommand\u003e [arguments]\n\tAdd the flag -i for i3 and -s for Sway if you don't want autodetection\n\nThe commands are:\n\n\tweb [port]\n\t\tstart the web ui and listen on random port or [port]\n\n\tsvg \u003clayout\u003e [dest] [mods]\n\t\toutputs one SVG file for each modifier group\n\n\tjson \u003clayout\u003e\n\t\toutput all keybindings as json\n\n\ttext \u003clayout\u003e [mods]\n\t\toutput available keybindings in the terminal\n\n\tversion\n\t\tprint i3keys version\n\nArguments:\n\n\t\u003clayout\u003e\n\t\tis required. Can be ISO or ANSI\n\n\t[mods]\n\t\tis optional. Can be a single modifier or a group of modifiers. Group them with a plus sign, e.g. Mod4+Ctrl\n\n\t[dest]\n\t\tis optional. Where to output files, defaults to the current directory\n```\n\n### Disclaimer\n* It's only tested with evdev handling input. So maybe you get the wrong \n mappings. Open an issue in that case and I will look in to it.\n* There are no tests right now. So you might run into some issues.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FRasmusLindroth%2Fi3keys","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FRasmusLindroth%2Fi3keys","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FRasmusLindroth%2Fi3keys/lists"}