{"id":28485972,"url":"https://github.com/typovrak/nixos-screenkey","last_synced_at":"2025-08-11T20:12:01.333Z","repository":{"id":290432110,"uuid":"964182386","full_name":"typovrak/nixos-screenkey","owner":"typovrak","description":"⌨️ Declarative NixOS module to install and configure Screenkey for per-user keystroke visualization with secure settings","archived":false,"fork":false,"pushed_at":"2025-07-02T18:10:17.000Z","size":13,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-06T01:24:25.048Z","etag":null,"topics":["automation","declarative","keyboard","keystroke-visualization","nix","nixos","screenkey"],"latest_commit_sha":null,"homepage":"https://typovrak.tv/nixos","language":"Nix","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/typovrak.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.md","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":".github/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"buy_me_a_coffee":"typovrak"}},"created_at":"2025-04-10T20:17:15.000Z","updated_at":"2025-07-02T18:10:21.000Z","dependencies_parsed_at":"2025-04-28T20:33:34.666Z","dependency_job_id":"1466e5b6-0aa2-415b-9859-704ce38463ba","html_url":"https://github.com/typovrak/nixos-screenkey","commit_stats":null,"previous_names":["typovrak/nixos-screenkey"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/typovrak/nixos-screenkey","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/typovrak%2Fnixos-screenkey","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/typovrak%2Fnixos-screenkey/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/typovrak%2Fnixos-screenkey/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/typovrak%2Fnixos-screenkey/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/typovrak","download_url":"https://codeload.github.com/typovrak/nixos-screenkey/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/typovrak%2Fnixos-screenkey/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269948859,"owners_count":24501821,"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","status":"online","status_checked_at":"2025-08-11T02:00:10.019Z","response_time":75,"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":["automation","declarative","keyboard","keystroke-visualization","nix","nixos","screenkey"],"created_at":"2025-06-08T01:00:47.347Z","updated_at":"2025-08-11T20:12:01.326Z","avatar_url":"https://github.com/typovrak.png","language":"Nix","funding_links":["https://buymeacoffee.com/typovrak"],"categories":[],"sub_categories":[],"readme":"[![NixOS 24.11+](https://img.shields.io/badge/NixOS-24.11%2B-a6e3a1?labelColor=45475a)](https://nixos.org/)\n[![License MIT](https://img.shields.io/badge/License-MIT-cba6f7.svg?labelColor=45475a)](LICENSE.md)\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-☕-fab387?labelColor=45475a)](https://typovrak.tv/coffee)\n[![Portal](https://img.shields.io/badge/Portal-typovrak.tv%2Fnixos-eba0ac?labelColor=45475a)](https://typovrak.tv/nixos)\n[![Discord join us](https://img.shields.io/badge/Discord-Join%20us-74c7ec?labelColor=45475a\u0026logo=discord\u0026logoColor=white)](https://typovrak.tv/discord)\n\n# ⌨️ NixOS Screenkey\n\n\u003e Declarative NixOS module to install and configure Screenkey, a keystroke visualization, with secure per-user settings.\n\n## 🧩 Part of the Typovrak NixOS ecosystem\n\nThis module is part of ```Typovrak NixOS```, a fully modular and declarative operating system configuration built entirely with :\n\n- 🧱 **30+ standalone modules :** Each managing a specific tool, feature or aesthetic like ```zsh```, ```i3```, ```lighdm```, ```polybar```, ```gtk``` and more.\n- 🎨 **Catppuccin Mocha :** The default theme across terminal, GUI, and login interfaces.\n- 🛡️ **100% FOSS compliant :** No proprietary software included unless explicitly chosen.\n- 🧑‍💻 **Built for developers :** Optimized for speed, keyboard-centric workflows and expressive CLI tooling.\n\n*Explore the full system : 👉 [github.com/typovrak/nixos](https://github.com/typovrak/nixos)*\n\n\u003e [!CAUTION]\n\u003e This module is opinionated, it may **override**, **replace**, or **remove** files and settings **without** prompt. To avoid unexpected changes, **back up** your existing files or **fork** this module to take full control. **Follow this documentation** to avoid any of this problem.\n\n## 📦 Features\n\n- 🔒 **Secure config directory :** Creates ```~/.config/screenkey``` with ```700``` permissions and correct ownership.\n- ⚙️ **Customizable settings :** Deploys your ```screenkey.json``` into the user’s config folder with ```600``` permissions.\n- 📦 **Package management :** Installs ```screenkey``` via ```environment.systemPackages```.\n- 🔄 **Idempotent :** Cleans and reconfigures on every rebuild to maintain consistent state.\n- ✨ **Zero-friction :** Works out-of-the-box, no manual setup required beyond import.\n- 💾 **Backup guidance :** Documentation includes commands to back up existing config before changes.\n\n## 📂 Repository structure\n\n```bash\n❯ tree -a -I \".git*\"\n.\n├── configuration.nix # module configuration\n├── LICENSE.md        # MIT licen\n├── README.md         # this documentation\n└── screenkey.json    # screenkey configuration\n\n1 directory, 4 files\n```\n\n## ⚙️ Prerequisites\n\n### 1. NixOS version\nRequires NixOS 24.11 or newer.\n\n### 2. User validation\nthe target user must be defined in ```config.username```. See [typovrak main nixos configuration](https://github.com/typovrak/nixos) for more details.\n\n### 3. Backup\nBefore proceeding, back up existing configuration if needed\n```bash\ncp ~/.config/screenkey.json{,.bak}\n```\n\n## ⬇️ Installation\n\n### 🚀 Method 1 : Out-of-the-box\n\nFetch the module directly in your [main nixos configuration](https://github.com/typovrak/nixos) at ```/etc/nixos/configuration.nix``` using fetchGit\n```nix\n# /etc/nixos/configuration.nix\n\nlet\n  nixos-screenkey = fetchGit {\n    url = \"https://github.com/typovrak/nixos-screenkey.git\";\n    ref = \"main\";\n    rev = \"744197b2e31c2d6a0e1885cf87930e73f1b6ded1\"; # update to the desired commit\n  };\nin\n{\n  imports = [\n    /etc/nixos/hardware-configuration.nix # system hardware settings\n    /etc/nixos/variables.nix # defines config.username and other variables, see https://github.com/typovrak/nixos for more details\n    (import \"${nixos-screenkey}/configuration.nix\")\n  ];\n}\n```\n\nOnce imported, rebuild your system to apply changes\n```bash\nsudo nixos-rebuild switch\n```\n\n### 🍴 Method 2 : Fork\n\nWant to **personalize** this module ?\n\nFork it and add this custom module in your [main nixos configuration](https://github.com/typovrak/nixos) at ```/etc/nixos/configuration.nix``` using fetchGit\n```nix\nlet\n  nixos-screenkey = fetchGit {\n    url = \"https://github.com/\u003cYOUR_USERNAME\u003e/nixos-screenkey.git\";\n    ref = \"main\";\n    rev = \"\u003cCOMMIT\u003e\"; # see below\n  };\nin {\n  imports = [\n    /etc/nixos/hardware-configuration.nix # system hardware settings\n    /etc/nixos/variables.nix # defines config.username and other variables, see https://github.com/typovrak/nixos for more details\n    (import \"${nixos-screenkey}/configuration.nix\")\n  ];\n}\n```\n\nGet the latest commit hash by executing\n```bash\ngit clone https://github.com/\u003cYOUR_USERNAME\u003e/nixos-screenkey.git \u0026\u0026\ncd nixos-screenkey \u0026\u0026\ngit log -1 --pretty=format:\"%H\"\n```\n\n## 🎬 Usage\n\nLaunch ```screenkey``` in a terminal or with the dmenu in i3.\n\n## 📚 Learn more\n\n- 🧠 [Screenkey GitHub repository](https://github.com/wavexx/screenkey) : Official source, latest code updates, and usage instructions.\n- 📦 [Screenkey on NixOS](https://search.nixos.org/packages?channel=unstable\u0026show=screenkey\u0026from=0\u0026size=50\u0026sort=relevance\u0026query=screenkey) : Nix package details including version and available options.\n\n## 🌐 Discover my NixOS system portal\n\nDive into [typovrak.tv/nixos](https://typovrak.tv/nixos) Catppuccin mocha green themed **gateway** to my GitHub and NixOS setup.\n\nBrowse **every module**, example and config in a sleek with an interactive interface that feels just like your desktop.\n\n## ❤️ Support\n\nIf this module saved you time, please ⭐️ the repo and share feedback.  \nYou can also support me on ☕ [Buy me a coffee](https://typovrak.tv/coffee)\n\n## 💬 Join the Typovrak community on Discord 🇫🇷\n\nIf you've ever ```rm -rf```ed your config by mistake or rebuilt for the 42nd time because a semicolon was missing…\n\nYou're not alone, **Welcome home !**\n\n🎯 [Join us on Discord »](https://typovrak.tv/discord)\n\n🧭 What you’ll find is :\n\n- ```💻 #nixos-setup``` - get help with modules, rebuilds and configs.\n- ```🌐 #web-dev``` - talk JS, TypeScript, React, Node and more.\n- ```🧠 #open-source``` - share your repos, contribute to others and discuss FOSS culture.\n- ```⌨️ #typing``` - layouts, mechanical keyboards and speed goals.\n- ```🎨 #ricing``` - dotfiles, theming tips and desktop screenshots.\n\n*Everyone's welcome no matter how many times you've broken your system ~~(except for Windows users)~~ 😄*\n\n---\n\n\u003cp align=\"center\"\u003e\u003ci\u003eMade with 💜 by \u003ca href=\"https://typovrak.tv\"\u003etypovrak\u003c/a\u003e\u003c/i\u003e\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftypovrak%2Fnixos-screenkey","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftypovrak%2Fnixos-screenkey","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftypovrak%2Fnixos-screenkey/lists"}