RaySharp is a powerful launcher application for Windows that provides quick access to applications, files, and custom commands through a sleek and customizable interface. Similar to other launchers like Alfred for Mac or Spotlight, RaySharp aims to boost your productivity by providing a fast way to search and execute commands.
- Quick Access: Launch applications, search files, and execute commands with just a few keystrokes
- Built-in Commands: Search the web, open applications, perform calculations, and more
- File Search: Quickly find files across your system
- Themes: Choose between Default, Light, and Dark themes
- Plugins: Extend functionality with custom plugins
- Math Calculations: Perform quick calculations directly in the search bar
- Windows 10 or later
- .NET 8.0 Runtime
RaySharp stores its settings in %LocalAppData%\RaySharp\settings.json
. The application manages this file, but advanced users can modify it directly when the application is closed.
- Press
Ctrl+Space
(default hotkey) to open RaySharp - Type your query or command
- Use arrow keys to navigate through results
- Press Enter to execute the selected command
g <query>
orgoogle <query>
: Search Googleopen notepad
: Open Notepadcalc
orcalculator
: Open Calculatorf <filename>
orfile <filename>
: Search for filessettings
: Open RaySharp settings<math expression>
: Calculate mathematical expressions
RaySharp supports plugins that implement the ICommand
interface. Here's how to create your own:
dotnet new classlib -n YourPluginName
Either reference the main RaySharp assembly or create the required interface:
public interface ICommand
{
string Name { get; }
string Description { get; }
bool Matches(string query);
void Execute(string query);
}
using System;
namespace YourPluginNamespace
{
public class YourCustomCommand : ICommand
{
public string Name => "Your Command Name";
public string Description => "Description of what your command does";
public bool Matches(string query)
{
// Define when your command should be shown in results
// For example, if command should be triggered by "yourcommand":
return query.StartsWith("yourcommand", StringComparison.OrdinalIgnoreCase);
}
public void Execute(string query)
{
// Implement what happens when your command is executed
// For example:
System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo
{
FileName = "https://www.example.com",
UseShellExecute = true
});
}
}
}
Build your project to create a DLL file.
- Open RaySharp
- Type "settings" and press Enter
- Click "Import Plugin" button
- Browse to and select your plugin DLL
- Ensure the plugin is enabled by checking the checkbox next to it
- Click "Save"
Your plugin should now be available in RaySharp!
RaySharp automatically assigns icons to common commands. You can take advantage of this by using specific command names:
- "google" or "g": 🌐
- "notepad": 📝
- "calculator" or "calc": 🧮
- "file" or "f": 📄
- "settings": ⚙️
- etc.
You can store and retrieve plugin-specific settings using the PluginSettings dictionary in the Settings class:
// Get settings from RaySharp.Models.Settings class
var settings = SettingsManager.LoadSettings();
// Store plugin settings
settings.PluginSettings["YourPluginName.SomeSetting"] = "value";
SettingsManager.SaveSettings(settings);
// Retrieve plugin settings
var value = settings.PluginSettings.TryGetValue("YourPluginName.SomeSetting", out var settingValue)
? settingValue.ToString()
: "default";
- Ensure your plugin DLL implements the ICommand interface correctly
- Verify that the plugin is enabled in Settings
- Check that the plugin file exists in the location specified in settings
- Make sure your plugin is built with a compatible .NET version
- Ensure RaySharp has write permissions to
%LocalAppData%\RaySharp
- Try running RaySharp as administrator if problems persist
Contributions are welcome! Feel free to fork the repository, make changes, and submit pull requests.