{"id":50371757,"url":"https://github.com/lemlnn/internal-kbd","last_synced_at":"2026-05-30T07:30:23.321Z","repository":{"id":356601157,"uuid":"1233268050","full_name":"lemlnn/internal-kbd","owner":"lemlnn","description":"Small Linux utility for disabling the internal laptop keyboard","archived":false,"fork":false,"pushed_at":"2026-05-08T19:28:21.000Z","size":6,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-08T21:29:05.416Z","etag":null,"topics":["linux-shell"],"latest_commit_sha":null,"homepage":"","language":"Shell","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/lemlnn.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,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-08T19:19:59.000Z","updated_at":"2026-05-08T19:33:39.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/lemlnn/internal-kbd","commit_stats":null,"previous_names":["lemlnn/internal-kbd"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/lemlnn/internal-kbd","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lemlnn%2Finternal-kbd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lemlnn%2Finternal-kbd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lemlnn%2Finternal-kbd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lemlnn%2Finternal-kbd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lemlnn","download_url":"https://codeload.github.com/lemlnn/internal-kbd/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lemlnn%2Finternal-kbd/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33684413,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-30T02:00:06.278Z","response_time":92,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["linux-shell"],"created_at":"2026-05-30T07:30:22.572Z","updated_at":"2026-05-30T07:30:23.316Z","avatar_url":"https://github.com/lemlnn.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# internal-kbd\n\nA small Linux utility script for temporarily disabling the internal laptop keyboard by grabbing its input event device.\n\nThis is mainly useful when using an external keyboard, cleaning the keyboard, or avoiding accidental input from a damaged/internal keyboard.\n\n## What it does\n\n`internal-kbd` finds or uses an internal keyboard input device and grabs it through Python `evdev`, preventing key events from reaching the desktop session.\n\nIt works at the Linux input-device level, so it should work on both Wayland and X11.\n\n## Features\n\n- Disable the internal keyboard\n- Re-enable the keyboard\n- Check current status\n- Toggle on/off\n- Optional timeout safety\n- Optional manual device override\n- Uses a PID file to track the grab process\n- Cleans up stale PID files\n\n## Requirements\n\n- Linux\n- Python 3\n- `python-evdev`\n- `sudo` access\n\nOn Arch/EndeavourOS:\n\n```bash\nsudo pacman -S python-evdev\n```\nOn Fedora:\n```bash\nsudo dnf install python3-evdev\n```\nUsage  \n```bash\n./internal-kbd disable\n./internal-kbd enable\n./internal-kbd status\n./internal-kbd toggle\n```\n## Device override\n\nBy default, the script tries to find a keyboard device automatically.\n\nTo manually choose a device:\n```bash\nDEV=/dev/input/event2 ./internal-kbd disable\n```\nYou can inspect input devices with:\n```bash\nls -l /dev/input/by-path/\ncat /proc/bus/input/devices\n```\n## Timeout safety\n\nTo automatically re-enable the keyboard after a set number of seconds:\n```bash\nTIMEOUT=60 ./internal-kbd disable\n```\nThis is useful for testing so you do not accidentally lock yourself out.\n\n## Safety notes\n\nMake sure you have another way to control the computer before disabling the internal keyboard, such as:\n\n- an external keyboard\n- SSH access\n- a touchscreen\n- a known timeout value\n\nThis script grabs the input device and does not record keystrokes.\n\n## Example\n\nDisable the internal keyboard for 5 minutes:\n```bash\nTIMEOUT=300 ./internal-kbd disable\n```\nRe-enable it manually:\n```bash\n./internal-kbd enable\n```\nCheck whether it is currently active:\n```bash\n./internal-kbd status\n```\n\n## Disclaimer\n\nThis is a personal utility script. Use carefully, especially when testing new device paths.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flemlnn%2Finternal-kbd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flemlnn%2Finternal-kbd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flemlnn%2Finternal-kbd/lists"}