### Install RustCast from Source Source: https://github.com/rustcastlabs/rustcast/blob/master/docs/index.html Clone the RustCast repository and install it locally using Cargo. ```shell git clone https://github.com/RustCastLabs/rustcast.git cd rustcast cargo install --path . ``` -------------------------------- ### Install RustCast via Homebrew Source: https://github.com/rustcastlabs/rustcast/blob/master/README.md Use this command to install RustCast using Homebrew. Ensure you have Homebrew installed. ```bash brew install --cask unsecretised/tap/rustcast ``` -------------------------------- ### Download and Install RustCast DMG Source: https://context7.com/rustcastlabs/rustcast/llms.txt Use curl to download the latest RustCast DMG and then open it to install. ```bash curl -L -o rustcast.dmg \ https://github.com/RustCastLabs/rustcast/releases/latest/download/rustcast.dmg open rustcast.dmg ``` -------------------------------- ### File Search Example Source: https://context7.com/rustcastlabs/rustcast/llms.txt Demonstrates how to search for files by typing a filename or partial name in the launcher. Results are opened with the default application. ```text # In the launcher, type a filename or partial name: project proposal → shows matching files under search_dirs rustcast config → finds ~/.config/rustcast/config.toml ``` -------------------------------- ### RustCast Configuration Example (config.toml) Source: https://github.com/rustcastlabs/rustcast/blob/master/docs/index.html Example TOML configuration file for RustCast, showing global hotkeys, search URLs, custom modes, aliases, and theme settings. ```toml # Global hotkey toggle_hotkey = "ALT+SHIFT+1" clipboard_hotkey = "SUPER+SHIFT+2" search_url = "https://google.com/search?q=%s" haptic_feedback = true clear_on_enter = true show_trayicon = true # Define your custom modes [modes] presentation = "~/.config/rustcast/scripts/presentation.sh" dev = "~/.config/rustcast/scripts/dev.sh" focus = "~/scripts/focus-mode.sh" othermodes = "~/some/path/to/script" # Any shell script. Unlimited power. # Add aliases for super speed searching [aliases] ff = "firefox" code = "Visual Studio Code" [theme] font = "Fira Code" text_color = [0.95, 0.95, 0.96] background_color = [0.11, 0.11, 0.13] background_opacity = 1.0 show_icons = true show_scroll_bar = true [[shells]] command = "echo " alias = "Variables 1" alias_lc = "var test" ``` -------------------------------- ### Installation via Homebrew Cask Source: https://context7.com/rustcastlabs/rustcast/llms.txt The recommended method for installing RustCast using Homebrew Cask. ```bash # Via Homebrew Cask (recommended) brew install --cask unsecretised/tap/rustcast ``` -------------------------------- ### RustCast URL Scheme Examples Source: https://context7.com/rustcastlabs/rustcast/llms.txt Provides examples of using the RustCast URL scheme (deeplinks) to control the application programmatically from external sources. ```bash # Show the RustCast launcher window open "rustcast://show" # Quit RustCast open "rustcast://quit" # Open an app by name (Spotlight-style matching) open "rustcast://open?target=obsidian" open "rustcast://open?target=safari" open "rustcast://open?target=terminal" ``` -------------------------------- ### Open Obsidian via RustCast URL Scheme Source: https://github.com/rustcastlabs/rustcast/blob/master/docs/index.html Use the `rustcast://` URL scheme to open applications. This example shows how to open Obsidian. ```shell open "rustcast://open?target=obsidian" ``` -------------------------------- ### Hotkey/Shortcut Format Examples Source: https://context7.com/rustcastlabs/rustcast/llms.txt Defines the format for hotkeys using modifier+key notation. Modifiers include SUPER, ALT, CTRL, SHIFT, and FN. ```text # Modifiers: # SUPER / CMD / COMMAND → ⌘ Command # ALT / OPT / OPTION → ⌥ Option # CTRL / CONTROL → ⌃ Control # SHIFT → ⇧ Shift # FN / FUNCTION → Fn # Examples: toggle_hotkey = "ALT+SPACE" # Option + Space toggle_hotkey = "SUPER+SHIFT+P" # Cmd + Shift + P toggle_hotkey = "CTRL+ALT+R" # Control + Option + R clipboard_hotkey = "SUPER+SHIFT+C" # Cmd + Shift + C # Shell command with direct hotkey (bypasses launcher) [[shells]] command = "open -a 'Finder'" alias = "Open Finder" alias_lc = "finder" hotkey = "cmd+shift+f" ``` -------------------------------- ### Example Aliases Configuration Source: https://github.com/rustcastlabs/rustcast/wiki/Aliases Define aliases for search terms in the TOML configuration file. This allows for shorthand searches, but be aware that aliases take precedence over direct searches. ```toml [aliases] ff = "firefox" vic = "voice" ``` -------------------------------- ### Emoji Search Examples Source: https://context7.com/rustcastlabs/rustcast/llms.txt Allows searching for emojis by typing keywords in the launcher. Selecting an emoji copies it to the clipboard. ```text # In the launcher, type: sparkle → ✨ sparkles rocket → 🚀 rocket heart → ❤️ red heart, 💙 blue heart, ... ``` -------------------------------- ### Unit Conversion Examples Source: https://context7.com/rustcastlabs/rustcast/llms.txt Converts values between different units for length, mass, volume, and temperature. Supports formats like ' ' or ' to '. ```text # Format: — shows all conversions in same category # — shows single conversion # to — shows single conversion (natural language) # Length 5 km → 5000 m, 3.10686 mi, 16404.199 ft, ... 100 ft to m → 30.48 m 12 in to cm → 30.48 cm # Mass 70 kg to lb → 154.324 lb 16 oz to g → 453.592 g # Volume 2 cups to ml → 473.177 ml 1 gal to l → 3.785 l # Temperature 100 c to f → 212 f 98.6 f to c → 37 c 0 k to c → -273.15 c ``` -------------------------------- ### Show Tab Functionality Source: https://github.com/rustcastlabs/rustcast/blob/master/docs/index.html This JavaScript function manages tabbed content by removing the 'active' class from all install blocks and tab buttons, then adding it to the selected tab and its corresponding button. It's useful for creating interactive tabbed interfaces. ```javascript function showTab(tab) { document.querySelectorAll(".install-block").forEach((el) => el.classList.remove("active") ); document.querySelectorAll(".tab-btn").forEach((el) => el.classList.remove("active") ); document.getElementById("tab-" + tab).classList.add("active"); event.target.classList.add("active"); } ``` -------------------------------- ### Base Configuration for RustCast Source: https://context7.com/rustcastlabs/rustcast/llms.txt Configure global hotkeys, placeholder text, search engine URLs, haptic feedback, tray icon visibility, log path, search directories, debounce delay, auto-update behavior, and the main page displayed on launch. ```toml # ~/.config/rustcast/config.toml # Global hotkey to show/hide the launcher (main search page) toggle_hotkey = "ALT+SPACE" # Global hotkey to open directly to clipboard history page clipboard_hotkey = "SUPER+SHIFT+C" # Placeholder text shown in the search input placeholder = "Time to be productive!" # Search engine URL — %s is replaced with the query # Examples: https://duckduckgo.com/search?q=%s | https://bing.com/search?q=%s search_url = "https://google.com/search?q=%s" # Enable macOS haptic feedback on each keystroke (macOS only) haptic_feedback = false # Show the RustCast menu bar icon show_trayicon = true # Path to the log file (release builds) log_path = "/tmp/rustcast.log" # Directories that the file search feature scans search_dirs = ["~/Documents", "~/Downloads", "~/Desktop"] # Input debounce delay in milliseconds (default: 300) debounce_delay = 300 # Enable automatic in-place updates from GitHub Releases auto_update = true # Page shown when launcher opens: "blank" | "favourites" | "frequentlyused" | "events" main_page = "blank" ``` -------------------------------- ### TOML Configuration for File Search Directories Source: https://context7.com/rustcastlabs/rustcast/llms.txt Configures the directories that RustCast will index for file search using macOS `mdfind` (Spotlight). ```toml # Configure which directories are indexed for file search search_dirs = ["~", "~/Documents", "~/Downloads", "~/Desktop"] ``` -------------------------------- ### Auto-Update Process Overview Source: https://context7.com/rustcastlabs/rustcast/llms.txt This comment block outlines the steps RustCast takes for its auto-update feature, including checking GitHub releases, downloading, verifying, replacing, and relaunching the application. ```bash # Auto-update checks this endpoint: # GET https://api.github.com/repos/RustCastLabs/rustcast/releases/latest # Downloads: Rustcast-universal-macos.app.zip # Verifies: SHA-256 digest from GitHub asset metadata # Replaces: current .app bundle path (determined from current executable path) # Relaunches: via `open ` ``` -------------------------------- ### Default Configuration for Buffer Rules and Theme Source: https://github.com/rustcastlabs/rustcast/wiki/Buffer-Rules-and-Theme-Config This TOML snippet shows the default configuration for buffer rules and theme settings. Adjust these values to customize the application's behavior and appearance. ```toml [buffer_rules] clear_on_hide = true clear_on_enter = true [theme] text_color = [1.0, 1.0, 1.0] background_color = [0.0, 0.0, 0.0] blur = false show_icons = true show_scroll_bar = true ``` -------------------------------- ### Base Configuration Fields Source: https://github.com/rustcastlabs/rustcast/wiki/Base-config Defines the core settings for Rustcast, including hotkeys, placeholder text, search URLs, and directory configurations. ```toml toggle_hotkey = "ALT+SPACE" clipboard_hotkey = "SUPER+SHIFT+C" placeholder = "Time to be productive!" search_url = "https://google.com/search?q=%s" haptic_feedback = false show_trayicon = true log_path = "/tmp/rustcast.log" search_dirs = [ "~/Documents", "~/Downloads", "~/Desktop" ] ``` -------------------------------- ### RustCast Project Structure Source: https://github.com/rustcastlabs/rustcast/blob/master/CONTRIBUTING.md Overview of the RustCast project's directory layout. Useful for understanding where different components are located. ```tree . ├── bundling # Bundling related stuff, ignore for the most bit │   ├── entitlements.plist │   ├── icon.icns │   └── Info.plist ├── docs # Website and documentation related stuff. If something new is added to config, then modify this as well before PR-ing ├── Cargo.lock ├── Cargo.toml ├── CONTRIBUTING.md # Contributing guidelines and codebase structure ├── EXTENSIONS.md # Discussions about extensions implementation ├── LICENSE.md # License file ├── README.md # Readme file ├── FEATURES.md # List of features currently implemented that should be updated when new └── src ├── app │   ├── apps.rs # Logic for the "apps" / commands that rustcast can perform │   ├── menubar.rs # All the code related to the tray icon / menu bar icon │   ├── tile # Logic for the tile (rustcast window) │   │   ├── elm.rs # Logic for the elm architecture of the rustcast window (New and View) │   │   └── update.rs # Logic for the updating (elm architecture update) of the rustcast window │   └── tile.rs # Tile definition ├── app.rs # All code related to the app ├── calculator.rs # Calculator logic ├── commands.rs # Logic for different commands ├── clipboard.rs # Logic for the clipboard history feature of rustcast ├── config.rs # Configuration related stuff ├── haptics.rs # All Haptics related code ├── macos.rs # Macos specific config ├── main.rs # Start app └── utils.rs # Common functions that are used across files ``` -------------------------------- ### Show RustCast Launcher via URL Scheme Source: https://github.com/rustcastlabs/rustcast/blob/master/docs/index.html Trigger the RustCast launcher to the foreground using its URL scheme. Useful for shortcuts or shell scripts. ```shell open "rustcast://show" ``` -------------------------------- ### Modes Configuration for RustCast Source: https://context7.com/rustcastlabs/rustcast/llms.txt Configure named modes, similar to macOS Focus modes, that can be shown in the menu bar and launcher footer. Switching to a mode executes an associated shell script, and switching away runs a default script. ```toml [modes] # Script to run when returning to the default mode default = "~/.config/rustcast/scripts/default.sh" # Custom mode: run when "presentation" mode is activated presentation = "~/.config/rustcast/scripts/presentation.sh" ``` -------------------------------- ### Shell Commands Configuration for RustCast Source: https://context7.com/rustcastlabs/rustcast/llms.txt Define custom shell commands that appear as searchable items in the launcher. Each command can have a custom icon, an alias (display name), a lowercase alias for searching, and an optional direct hotkey. ```toml # Advance to the next Spotify track [[shells]] command = "osascript -e 'tell application "Spotify" to play next track'" icon_path = "/Applications/Spotify.app/Contents/Resources/AppIcon.icns" alias = "Next Spotify Song" # Display name shown in results alias_lc = "next" # Lowercase search term # hotkey = "cmd+shift+n" # Optional: trigger without opening the launcher # Run a longer shell script [[shells]] command = "~/.config/rustcast/scripts/daily-standup.sh" icon_path = "~/Pictures/standup.png" # Supports .png, .jpg, .icns alias = "Start Daily Standup" alias_lc = "standup" # Echo with variable input (type "var test hello" → runs "echo hello") [[shells]] command = "echo " alias = "Echo Command" alias_lc = "var test" ``` -------------------------------- ### Default RustCast Configuration Source: https://github.com/rustcastlabs/rustcast/wiki/Home This is the default configuration file for RustCast. It outlines all available settings and their default values. Missing or erroneous settings in a user's config file will fall back to these defaults. ```toml toggle_hotkey = "ALT+SPACE" clipboard_hotkey = "SUPER+SHIFT+C" placeholder = "Time to be productive!" search_url = "https://google.com/search?q=%s" haptic_feedback = false show_trayicon = true shells = [] # remove this line if you want shell commands to work log_path = "/tmp/rustcast.log" [buffer_rules] clear_on_hide = true clear_on_enter = true [theme] text_color = [0.95, 0.95, 0.96] background_color = [0.0, 0.0, 0.0] blur = false show_icons = true show_scroll_bar = true [modes] [aliases] ``` -------------------------------- ### Theme Configuration for RustCast Source: https://context7.com/rustcastlabs/rustcast/llms.txt Customize the appearance of RustCast, including text and background colors, blur effects, icon visibility, scrollbar display, and custom fonts. Colors are defined as normalized RGB float arrays. ```toml [theme] # RGB text color (near-white) text_color = [0.95, 0.95, 0.96] # RGB background color (black) background_color = [0.0, 0.0, 0.0] # Blur the background window (currently not fully supported) blur = false # Show app icons next to search results show_icons = true # Show a scrollbar when the results list overflows show_scroll_bar = true # Custom font — must be installed on the system (check Font Book for the exact name) font = "Fira Code" ``` -------------------------------- ### Buffer Rules Configuration for RustCast Source: https://context7.com/rustcastlabs/rustcast/llms.txt Define rules for clearing the search input buffer. Options include clearing the input when the launcher is hidden or after pressing Enter to execute a result. ```toml [buffer_rules] # Clear the search input when the launcher is hidden clear_on_hide = true # Clear the search input after pressing Enter to execute a result clear_on_enter = true ``` -------------------------------- ### Configure Rustcast Modes Source: https://github.com/rustcastlabs/rustcast/wiki/Modes Define custom modes and override the default mode by specifying the paths to their corresponding shell scripts in the TOML configuration file. Ensure scripts are stored in the rustcast config directory. ```toml [modes] default = "~/.config/rustcast/hello_modes.sh" presentation = "~/.config/rustcast/presentation.sh" ``` -------------------------------- ### Calculator Expressions Source: https://context7.com/rustcastlabs/rustcast/llms.txt Supports basic arithmetic operators (+, -, *, /), exponentiation (^), parentheses, and mathematical functions like ln(x), log(x), and log(base, x). ```text # Supported operators: + - * / ^ (power) and parentheses # Supported functions: ln(x), log(x) [base-10], log(base, x) 2 + 3 * 4 → 14 2^(1+2) → 8 -(3 + 4) → -7 ln(2.7182818) → ~1 log(100) → 2 log(2, 8) → 3 (10 + 5) / 3 → 5 ``` -------------------------------- ### Configure Shell Command Source: https://github.com/rustcastlabs/rustcast/wiki/Shell-Commands Defines a shell command with its execution path, icon, and display/search aliases. The `command` field accepts shell scripts for complex operations. Ensure `alias_lc` is lowercase for optimal search functionality. ```toml [[shells]] # note that its encased in double square brackets command = "osascript -e 'tell application \"Spotify\" to play next track'" icon_path = "/Applications/Spotify.app/Contents/Resources/AppIcon.icns" alias = "Next Spotify Song" alias_lc = "next" ``` -------------------------------- ### TOML Configuration for Clipboard History Source: https://context7.com/rustcastlabs/rustcast/llms.txt Enables or disables clipboard history and sets the hotkey for accessing it. Both text and images are stored. ```toml # Enable or disable clipboard history in config cbhist = true # Set the hotkey to open clipboard history directly clipboard_hotkey = "SUPER+SHIFT+C" ``` -------------------------------- ### Enable Auto-Update in Configuration Source: https://context7.com/rustcastlabs/rustcast/llms.txt Set the `auto_update` flag to `true` in the TOML configuration file to enable automatic updates. ```toml # Enable or disable auto-update in config auto_update = true ``` -------------------------------- ### Bash Script for Presentation Mode Source: https://context7.com/rustcastlabs/rustcast/llms.txt This script disables notifications and hides the Dock for a distraction-free presentation. It uses AppleScript and `defaults` commands. ```bash # ~/.config/rustcast/scripts/presentation.sh #!/bin/bash # Disable notifications while presenting osascript -e 'tell application "System Events" to set do not disturb to true' # Hide the Dock defaults write com.apple.dock autohide -bool true && killall Dock ``` -------------------------------- ### TOML Configuration for Aliases Source: https://context7.com/rustcastlabs/rustcast/llms.txt Defines aliases in TOML format to map short search terms to longer application or result names. Aliases take precedence over literal search terms. ```toml [aliases] ff = "firefox" # typing "ff" searches as if you typed "firefox" vic = "voice" # typing "vic" searches as if you typed "voice" yt = "youtube" # useful for websites opened via shell commands ``` -------------------------------- ### Quit RustCast via URL Scheme Source: https://github.com/rustcastlabs/rustcast/blob/master/docs/index.html Gracefully quit the RustCast application from a script or automation flow using its URL scheme. ```shell open "rustcast://quit" ``` -------------------------------- ### Web Search Trigger Source: https://context7.com/rustcastlabs/rustcast/llms.txt To trigger a web search, append a question mark (?) to any query. This uses the configured `search_url`. ```text # In the RustCast launcher, type: how do I use iced in rust? # Result: opens https://google.com/search?q=how+do+I+use+iced+in+rust in the browser ``` -------------------------------- ### RustCast Easter Egg Triggers Source: https://context7.com/rustcastlabs/rustcast/llms.txt A list of search terms that activate built-in easter eggs within RustCast. ```text randomvar → generates a random number (0–100) and copies it to clipboard lemon → displays "lemon" in the launcher 67 → activates a hidden easter egg f → shows Ferris (the Rust mascot) as a search result ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.