Skip to content

Integrate omni menu#4

Merged
tylerthecoder merged 5 commits intomainfrom
integrate-omni-menu
Dec 31, 2025
Merged

Integrate omni menu#4
tylerthecoder merged 5 commits intomainfrom
integrate-omni-menu

Conversation

@tylerthecoder
Copy link
Owner

@tylerthecoder tylerthecoder commented Dec 31, 2025

Note

Integrates a new GTK4-based launcher and associated tooling, plus selective menu-script behavior.

  • Add omni-menu binary (src/omni_menu/*) with submenus: main, search, projects, scripts, launch_tool, switch_bench, desk, emoji
  • Update Cargo.toml with second binary and new deps (gtk4, fuzzy-matcher, dirs, regex)
  • Wire into setups: setups/menu/setup.json links target/release/omni-menu to ~/.local/bin/omni-menu; remove old install script
  • i3 config: change hotkeys to use omni-menu (launch_tool, main) and rofi -show window
  • Nest framework-sway: add bg-picker.sh and menu entry; set only_own_menu_scripts: true
  • Core CLI: support only_own_menu_scripts in setup.json and skip linking inherited menu scripts in dependency traversal
  • Sway desk script: adjust display scale (1.5) and keyboard repeat settings; Kitty config adds Shift+Enter mapping
  • Add CLAUDE.md with repo guidance and omni-menu architecture

Written by Cursor Bugbot for commit d4e2b9f. This will update automatically on new commits. Configure here.

tylerthecoder and others added 5 commits December 30, 2025 19:11
- Added omni-menu source code from more_rust branch to src/omni_menu/
- Updated Cargo.toml with gtk4, fuzzy-matcher, dirs, regex dependencies
- Added omni-menu as second binary target alongside owl
- Updated menu setup to link binary instead of cloning external repo
- Updated i3 config keybindings to use new command names
- Removed external repo install script

Features included:
- Main menu with keyboard shortcuts
- Search menu (Google, ChatGPT, Notes)
- Projects menu (local/remote dev projects)
- Scripts menu (owl scripts)
- Launch tool menu
- Switch bench menu (yard integration)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <[email protected]>
- Created desk_menu module that integrates with owl's desk system
  - Detects Sway vs i3 environment (via SWAYSOCK env var)
  - Lists desk scripts from ~/.config/desks-sway/ or ~/.config/desks-i3/
  - Provides GTK4 UI with search/filter and keyboard navigation

- Created emoji_menu module that launches rofi emoji picker
  - Simple wrapper around rofi -modi emoji -show emoji

- Updated main menu to include desk (d key) and emoji (e key) options
- Updated main.rs to support 'desk' and 'emoji' subcommands

All features from the original omni-menu bash script are now in Rust.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <[email protected]>
- Added comprehensive omni-menu section documenting:
  - Module architecture and organization
  - Usage commands for all submenus
  - Integration points with owl (desk system, scripts)
  - Build and linking process
  - Design patterns (self-contained modules, spawning pattern)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <[email protected]>
Data Model Changes:
- Added 'only_own_menu_scripts' boolean field to setup.json schema
- When set to true on a nest/setup, only its own menu scripts are linked
- Dependencies' menu scripts are skipped during linking
- This allows nests to have curated menu script lists without inheritance

Framework-Sway Updates:
- Changed display scale from 1.4 to 1.5
- Reduced keyboard repeat rate from 40 to 25 (delay 200→300ms)
- Created background picker script using swww
  - Lists all images from $WALL_DIR in rofi
  - Sets selected image as wallpaper with fade transition
- Enabled only_own_menu_scripts to hide inherited scripts
- Added Background Picker as the only menu script

Implementation:
- Modified Setup struct to store only_own_menu_scripts flag
- Updated apply_operation_once to accept skip_menu_scripts parameter
- Modified run_op to pass flag down to dependencies

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <[email protected]>
- Update scripts_menu.rs to read from ~/.config/owl/menu-scripts/ instead of ~/owl/common/scripts/
- Change menu setup to use release binary instead of debug

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <[email protected]>
@tylerthecoder
Copy link
Owner Author

@copilot fix the build issues

Copy link

Copilot AI commented Dec 31, 2025

@tylerthecoder I've opened a new pull request, #5, to work on those changes. Once the pull request is ready, I'll request review from you.

@tylerthecoder tylerthecoder merged commit 79596bc into main Dec 31, 2025
1 of 2 checks passed
@tylerthecoder tylerthecoder deleted the integrate-omni-menu branch December 31, 2025 03:53
println!("App activated");
let no_args: [&str; 0] = [];
app.run_with_args(&no_args);
glib::ExitCode::SUCCESS
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Exit code from GTK app silently discarded

The run_app() function discards the return value from app.run_with_args(&no_args) by using a semicolon instead of returning it directly. It then unconditionally returns glib::ExitCode::SUCCESS, ignoring any errors the GTK application may have encountered. All other menu modules (desk_menu, launch_tool_menu, main_menu, projects_menu, scripts_menu, switch_bench_menu) correctly return the result of app.run_with_args() directly.

Fix in Cursor Fix in Web

let app = Application::builder().application_id(APP_ID).build();
println!("App built");
app.connect_activate(build_ui);
println!("App activated");
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Debug println statements left in production code

The run_app() function contains step-by-step debugging statements ("Running app", "App built", "App activated") and build_ui() has "Building UI". No other menu module has these statements in their equivalent functions. These appear to be development debugging traces that were not removed before committing.

Additional Locations (1)

Fix in Cursor Fix in Web

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants