docs: update documentation for latest changes
- Add stt-ptt language support documentation - Add rofi-project-opener module documentation - Add rofi-project-opener package documentation - Update zellij-ps documentation - Update guides and reference patterns - Update AGENTS.md with latest commands
This commit is contained in:
219
docs/modules/home-manager/cli/rofi-project-opener.md
Normal file
219
docs/modules/home-manager/cli/rofi-project-opener.md
Normal file
@@ -0,0 +1,219 @@
|
||||
# rofi-project-opener Module
|
||||
|
||||
Home Manager module for configuring the rofi-project-opener package.
|
||||
|
||||
## Overview
|
||||
|
||||
This module provides declarative configuration for rofi-project-opener, a Rofi-based project launcher. It generates the necessary configuration files and installs the package.
|
||||
|
||||
## Quick Start
|
||||
|
||||
```nix
|
||||
{config, pkgs, ...}: {
|
||||
cli.rofi-project-opener = {
|
||||
enable = true;
|
||||
projectDirs = {
|
||||
dev = { path = "~/dev"; };
|
||||
work = { path = "~/work"; args = "--agent work-assistant"; };
|
||||
};
|
||||
};
|
||||
}
|
||||
```
|
||||
|
||||
## Options
|
||||
|
||||
### `cli.rofi-project-opener.enable`
|
||||
|
||||
Whether to enable rofi-project-opener.
|
||||
|
||||
**Type:** `boolean`
|
||||
**Default:** `false`
|
||||
|
||||
### `cli.rofi-project-opener.projectDirs`
|
||||
|
||||
Attribute set of base directories to scan for project subdirectories.
|
||||
|
||||
**Type:** `attrsOf (submodule)`
|
||||
|
||||
Each entry is a submodule with:
|
||||
|
||||
| Option | Type | Default | Description |
|
||||
|--------|------|---------|-------------|
|
||||
| `path` | `str` | required | Base directory path (supports `~`) |
|
||||
| `args` | `str` | `""` | Arguments to pass to command |
|
||||
|
||||
**Default:**
|
||||
```nix
|
||||
{
|
||||
dev = { path = "~/dev"; };
|
||||
projects = { path = "~/projects"; };
|
||||
}
|
||||
```
|
||||
|
||||
**Example:**
|
||||
```nix
|
||||
projectDirs = {
|
||||
nixpkgs = { path = "~/p/NIX"; args = "--agent nix-expert"; };
|
||||
chat = { path = "~/p/CHAT"; args = "--agent chiron"; };
|
||||
dev = { path = "~/dev"; };
|
||||
work = { path = "~/work"; args = "--profile work"; };
|
||||
};
|
||||
```
|
||||
|
||||
### `cli.rofi-project-opener.terminal`
|
||||
|
||||
Terminal emulator to use for launching projects.
|
||||
|
||||
**Type:** `either str package`
|
||||
**Default:** `"kitty"`
|
||||
|
||||
**Examples:**
|
||||
```nix
|
||||
# Using a package
|
||||
terminal = pkgs.kitty;
|
||||
terminal = pkgs.alacritty;
|
||||
|
||||
# Using a string (must be in PATH)
|
||||
terminal = "kitty";
|
||||
terminal = "wezterm";
|
||||
```
|
||||
|
||||
### `cli.rofi-project-opener.terminalCommand`
|
||||
|
||||
Command to run in the terminal after navigating to the project directory.
|
||||
|
||||
**Type:** `str`
|
||||
**Default:** `""` (runs `opencode` with args)
|
||||
|
||||
**Placeholders:**
|
||||
- `%s` - Project path
|
||||
- `%a` - Project args (from `projectDirs.<name>.args`)
|
||||
|
||||
**Examples:**
|
||||
```nix
|
||||
# Default behavior - run opencode with project args
|
||||
terminalCommand = "";
|
||||
|
||||
# Explicit opencode with args
|
||||
terminalCommand = "opencode %a";
|
||||
|
||||
# Different editor
|
||||
terminalCommand = "nvim";
|
||||
|
||||
# VSCode with path
|
||||
terminalCommand = "code %s";
|
||||
|
||||
# Custom application
|
||||
terminalCommand = "my-dev-tool --project %s %a";
|
||||
```
|
||||
|
||||
### `cli.rofi-project-opener.rofiPrompt`
|
||||
|
||||
Prompt text displayed in the Rofi menu.
|
||||
|
||||
**Type:** `str`
|
||||
**Default:** `"Select project"`
|
||||
|
||||
### `cli.rofi-project-opener.rofiArgs`
|
||||
|
||||
Arguments to pass to Rofi.
|
||||
|
||||
**Type:** `listOf str`
|
||||
**Default:** `["-dmenu" "-i"]`
|
||||
|
||||
**Example:**
|
||||
```nix
|
||||
rofiArgs = ["-dmenu" "-i" "-theme" "gruvbox" "-width" "50"];
|
||||
```
|
||||
|
||||
## Generated Files
|
||||
|
||||
The module generates these configuration files:
|
||||
|
||||
### `~/.config/rofi-project-opener/projects.json`
|
||||
|
||||
JSON file containing project directories:
|
||||
|
||||
```json
|
||||
{
|
||||
"dev": {"path": "~/dev", "args": ""},
|
||||
"work": {"path": "~/work", "args": "--agent work-assistant"}
|
||||
}
|
||||
```
|
||||
|
||||
### `~/.config/rofi-project-opener/config`
|
||||
|
||||
Shell configuration file:
|
||||
|
||||
```bash
|
||||
TERMINAL="/nix/store/.../bin/kitty"
|
||||
TERMINAL_CMD="opencode %a"
|
||||
ROFI_PROMPT="Select project"
|
||||
ROFI_ARGS="-dmenu -i"
|
||||
```
|
||||
|
||||
## Full Example
|
||||
|
||||
```nix
|
||||
{config, pkgs, ...}: {
|
||||
imports = [m3ta-nixpkgs.homeManagerModules.default];
|
||||
|
||||
cli.rofi-project-opener = {
|
||||
enable = true;
|
||||
|
||||
# Project directories with optional args
|
||||
projectDirs = {
|
||||
nixpkgs = {
|
||||
path = "~/p/NIX";
|
||||
args = "";
|
||||
};
|
||||
chat = {
|
||||
path = "~/p/CHAT";
|
||||
args = "--agent chiron";
|
||||
};
|
||||
dev = {
|
||||
path = "~/dev";
|
||||
args = "";
|
||||
};
|
||||
};
|
||||
|
||||
# Terminal configuration
|
||||
terminal = pkgs.kitty;
|
||||
terminalCommand = "opencode %a";
|
||||
|
||||
# Rofi configuration
|
||||
rofiPrompt = "Open Project";
|
||||
rofiArgs = ["-dmenu" "-i" "-theme" "nord"];
|
||||
};
|
||||
}
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
After enabling, run:
|
||||
|
||||
```bash
|
||||
rofi-project-opener
|
||||
```
|
||||
|
||||
Or bind to a keyboard shortcut in your window manager:
|
||||
|
||||
**Hyprland:**
|
||||
```nix
|
||||
wayland.windowManager.hyprland.settings.bind = [
|
||||
"$mod, P, exec, rofi-project-opener"
|
||||
];
|
||||
```
|
||||
|
||||
**Sway:**
|
||||
```nix
|
||||
wayland.windowManager.sway.config.keybindings = {
|
||||
"${modifier}+p" = "exec rofi-project-opener";
|
||||
};
|
||||
```
|
||||
|
||||
## Related
|
||||
|
||||
- [rofi-project-opener Package](../../../packages/rofi-project-opener.md) - Package documentation
|
||||
- [zellij-ps Module](./zellij-ps.md) - Similar project switcher for Zellij
|
||||
- [Home Manager Overview](../overview.md) - All Home Manager modules
|
||||
Reference in New Issue
Block a user