[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-1686":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":25,"hasPages":23,"topics":26,"createdAt":10,"pushedAt":10,"updatedAt":32,"readmeContent":33,"aiSummary":34,"trendingCount":16,"starSnapshotCount":16,"syncStatus":14,"lastSyncTime":35,"discoverSource":36},1686,"nirimod","srinivasr\u002Fnirimod","srinivasr","NiriMod – A visual, interactive configuration interface for the niri Wayland compositor.","",null,"Python",275,8,2,3,0,12,24,77,36,82.56,"MIT License",false,"main",true,[27,28,29,30,5,31],"configurator","gui","niri","niri-settings","wayland","2026-06-12 04:00:10","\u003Cdiv align=\"center\">\n  \u003Ch1>NiriMod\u003C\u002Fh1>\n  \n  **A GTK4\u002Flibadwaita config manager for the [niri](https:\u002F\u002Fgithub.com\u002Fniri-wm\u002Fniri) Wayland compositor.**\n\n  [![License: MIT](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-MIT-blue.svg)](LICENSE)\n  [![Python 3.12+](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPython-3.12%2B-blue?logo=python&logoColor=white)](https:\u002F\u002Fpython.org)\n  [![GTK4](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FGTK-4%20%2B%20libadwaita-4A90D9?logo=gnome&logoColor=white)](https:\u002F\u002Fgtk.org)\n  [![Wayland](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FWayland-native-orange)](https:\u002F\u002Fwayland.freedesktop.org)\n\u003C\u002Fdiv>\n\n\u003Cbr>\n\n![NiriMod Interface](media\u002F1.png)\n\nEditing Niri's configuration file by hand works perfectly fine—until you find yourself tweaking animation curves blindly, guessing the exact names of your monitors, or accidentally overlapping your keybinds. NiriMod steps in to provide a clean, native GUI for the tedious parts of configuration, while staying completely out of the way for everything else.\n\n---\n\n## What It Does\n\nNiriMod manages your Niri config via a clean interface, allowing you to easily adjust settings while leaving your custom scripts and comments alone.\n\n- **Display Outputs:** Visually arrange your monitors using drag-and-drop. Easily adjust your resolution, refresh rate, variable refresh rate (VRR), and fractional scaling without diving into the config file.\n- **Keybinds:** Manage your shortcuts through an interactive physical keyboard map that lights up bound keys, or use the searchable list view to quickly find and edit specific bindings.\n- **Layout & Rules:** Take control of Niri's column layout with a full editor for window rules, column proportions, gaps, struts, and workspaces.\n- **System & Input:** Adjust your mouse and touchpad settings, configure swipe gestures, change cursor themes, and manage the environment variables and startup commands Niri uses.\n- **Animations:** Stop guessing cubic-bezier values. The visual easing curve editor provides live previews for all of Niri's animation slots (like window open\u002Fclose or workspace switches).\n- **Raw Config Editor:** Sometimes you just want to type. The built-in KDL text editor comes with undo\u002Fredo functionality and runs live validation to ensure your manual tweaks are safe.\n\n![Keybinding Management](media\u002F2.png)\n\n---\n\n## Safe, Non-Destructive Editing\n\nWe built NiriMod to be strictly non-destructive. It is designed to never break your existing configuration:\n\n- **Strict Validation:** Before anything is written to disk, NiriMod runs `niri validate`. If the validation fails, nothing is saved, keeping your setup safe.\n- **Atomic Writes:** Configuration files are saved using temporary files first, which prevents corruption if a save is interrupted.\n- **Comment Preservation:** Your custom comments and whitespace formatting are kept completely intact. We don't overwrite your personal notes.\n- **Profile Management:** Easily save and switch between full configuration snapshots (like a \"work\" profile and a \"gaming\" profile) with a single click.\n\n### Third-Party Shells & Multi-File Configs\n\n![Multi-File Configurations](media\u002Fmultiple_configs.png)\n\nNiriMod natively supports advanced, multi-file setups. This includes custom visual layers and desktop shells like **Dank Material Shell (DMS)** and **Noctalia**. \n\nIf you like to split your configuration using `include` directives, NiriMod handles that transparently. It can parse included files up to 5 levels deep. When you make a change in the user interface, NiriMod is smart enough to track which file that specific setting came from, and it saves the change back to its exact origin. \n\nBecause NiriMod only touches the standard Niri settings it understands, your custom shell configurations, advanced scripts, and unrecognized blocks are perfectly preserved just the way you left them.\n\n---\n\n## Installation\n\n### AUR (Arch Linux)\n\n```bash\nyay -S nirimod-git\n```\n\n### Script (Other Distros)\n\n```bash\ncurl -sSL https:\u002F\u002Fraw.githubusercontent.com\u002Fsrinivasr\u002Fnirimod\u002Fmain\u002Finstall.sh | bash\n```\n\n*(You can use `--install` to skip the prompts, `--uninstall` to remove the application, or `--skip-deps` if you prefer to handle dependencies manually).*\n\n---\n\n## Requirements\n\nNiriMod works out of the box on Arch, Fedora, openSUSE, and Debian\u002FUbuntu. You will need:\n- Python 3.12+ and `uv` (the install script handles `uv` for you)\n- GTK4, libadwaita, PyGObject, and Pycairo\n- The niri Wayland compositor\n\n**Gentoo Users** (requires the [GURU overlay](https:\u002F\u002Fwiki.gentoo.org\u002Fwiki\u002FProject:GURU) for `niri`):\n```bash\nemerge dev-vcs\u002Fgit net-misc\u002Fcurl dev-lang\u002Fpython gui-libs\u002Fgtk gui-libs\u002Flibadwaita dev-python\u002Fpygobject dev-python\u002Fpycairo x11-libs\u002Flibxkbcommon x11-misc\u002Fxkeyboard-config\ncurl -sSL https:\u002F\u002Fraw.githubusercontent.com\u002Fsrinivasr\u002Fnirimod\u002Fmain\u002Finstall.sh | bash -s -- --install --skip-deps\n```\n\n---\n\n## Contributing\n\nContributions are always welcome. If you would like to help out, please check the [CONTRIBUTING.md](CONTRIBUTING.md) file for setup instructions. If you are planning a major change, please open an issue first so we can discuss it.\n\n\u003Ca href=\"https:\u002F\u002Fwww.star-history.com\u002F?repos=srinivasr%2Fnirimod&type=date&legend=top-left\">\n \u003Cpicture>\n   \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"https:\u002F\u002Fapi.star-history.com\u002Fchart?repos=srinivasr\u002Fnirimod&type=date&theme=dark&legend=top-left\" \u002F>\n   \u003Csource media=\"(prefers-color-scheme: light)\" srcset=\"https:\u002F\u002Fapi.star-history.com\u002Fchart?repos=srinivasr\u002Fnirimod&type=date&legend=top-left\" \u002F>\n   \u003Cimg alt=\"Star History Chart\" src=\"https:\u002F\u002Fapi.star-history.com\u002Fchart?repos=srinivasr\u002Fnirimod&type=date&legend=top-left\" \u002F>\n \u003C\u002Fpicture>\n\u003C\u002Fa>\n\n---\n\n*NiriMod is an independent project and is not affiliated with the official niri team.*\n","NiriMod 是一个为 niri Wayland 合成器设计的可视化、交互式配置界面。该项目采用 Python 编写，利用 GTK4 和 libadwaita 构建了一个直观的图形用户界面，用于管理显示输出、快捷键绑定、布局规则、系统输入设置以及动画效果等配置项，支持通过拖放操作调整显示器排列、物理键盘映射图管理和实时预览动画曲线等功能。特别适用于需要频繁调整窗口管理器设置但又不想直接编辑复杂配置文件的用户场景中。NiriMod 保证了非破坏性的编辑过程，确保自定义注释和格式得以保留，并且在保存前会进行严格验证以避免配置损坏。","2026-06-11 02:45:26","CREATED_QUERY"]