Releases: project-gauntlet/gauntlet
Releases · project-gauntlet/gauntlet
v19
General
- It is now possible to assign custom alias to entrypoints which is used for search
- Windows in "Opened windows" view entrypoint are now sorted following "most recently focused on the top" order
Plugins
- Plugin manifest property
entrypoint.*.actions.*.shortcut
is now optional - Added
<Content.Svg/>
component to display SVG images - BREAKING CHANGE: Renamed TypeScript types:
ImageSource
toDataSource
,ImageSourceUrl
toDataSourceUrl
,ImageSourceAsset
toDataSourceAsset
UI/UX improvements
- Made font size in the Settings UI a little smaller
Fixes
- Fixed crash when closing inline view due to Action being run, again...
- Fixed shortcut assignment error not being shown for global entrypoint shortcuts
- Fixed crash on X11 when trying to assign shortcut that is already used by another application
- Fixed
icon
inEntrypointGenerator
requiringnumber[]
instead of declaredArrayBuffer
- Fixed text selection not being visible when selecting text in form view text fields
- Fixed plugin runtime crash when using
assetDataSync()
function
v18
General
- Entrypoints can now be run or opened using global shortcut set Settings UI
- On Linux X11 there is a known bug which will cause a crash and prevent server startup if attempted to register global shortcut that is already registered by another application
- Generated Entrypoints are now listed in the Settings UI
Plugins
- Added authors field to Plugin Manifest
gauntlet.authors.*.name
- Stringgauntlet.authors.*.uris
- List of strings. URIs that identify the author. Can be a link to social media page or an email (if email it should begin withmailto:
schema)
- Added
$schema
field to Plugin Manifest which takes URL to the JSON Schema file- Some editors use it to validate the content of the file
- Currently, the schema file is located inside the repository at path
https://raw.githubusercontent.com/project-gauntlet/gauntlet/refs/heads/main/docs/schema/plugin_manifest.schema.json
but at some point this will change
Themes
- Tweaked window border color of macOS Dark theme on non-macos platforms to be not as bright
UI/UX improvements
- Reworked shortcut selector widget in Setting UI
Fixes
- Fixed window sometimes not being hidden on X11
- Main view search list is now refreshed when window being hidden instead of when it is shown, to avoid the list being changed after window was opened (contributed by @BennoCrafter)
- Fixed plugin view being empty if the window is closed by toggling global shortcut
- Fixes plugin view not being opened properly if it is created using global shortcut or cli command (contributed by @BennoCrafter)
v17
- Fixed crash when typing/clicking fast in React-created plugin ui
- Fixed events sometimes overwriting other parallel events when typing/clicking fast in React-created plugin ui
- Fixes mouse clicks sometimes being ignored in high refresh rate views
- Fixes keystrokes being rewritten/ignored when holding down keys or typing fast in input fields
- Fixed crash when closing inline view due to Action being run
- Fixed zombie processes being left over after closing Settings UI
v16
- Fixed application plugin being broken on non-macos platforms
v15
General
- Published macOS
.dmg
file is now universal and can run onx86_64
CPU architecture- BREAKING CHANGE: Name of published macOS
.dmg
file was changed fromgauntlet-aarch64-macos.dmg
togauntlet-universal-macos.dmg
- BREAKING CHANGE: Name of published macOS
- Pressing global shortcut while window is open now preserves search bar value when window is opened next time (contributed by @Kalin8900)
- Global shortcut now hides the main window if it is already open (contributed by @BennoCrafter)
- Global shortcut is now executed on key press, instead of key release
- It is now possible to run commands and open views using CLI command
- Format:
gauntlet run <plugin-id> <entrypoint-id> <action-id>
- Action ID can be found in Plugin Manifest
- Action ID option also accepts special values
:primary
- to run primary action of the entrypoint:secondary
- to run secondary action of the entrypoint
- Format:
- Slightly improved
--help
documentation of CLI command - Added
--version
flag to CLI to display Gauntlet version - Added localization support for macOS application names (contributed by @BennoCrafter)
- Added plugin preference
Bundle Name Lang
of enum typelocalized
option - use localized name of bundle if available - this is the defaultdefault
option - use default name of bundle (usually english)
- Added plugin preference
- Added shortcut to open Settings UI (contributed by @BennoCrafter)
- Ctrl + , on Windows and Linux
- Cmd + , on macOS
UI/UX Improvements
- In main window search result, moved plugin name next to entrypoint name
- In main window search result, displayed type of entrypoint in place of plugin name, use generator entrypoint name if generated
Fixes
- Fixed database becoming corrupted after changing theme setting, preventing application server startup
- If you encounter this issue you have to remove application database, file which can be found at
- Linux:
/home/alice/.local/share/gauntlet/data.db
- macOS:
/Users/Alice/Library/Application Support/dev.project-gauntlet.Gauntlet/data.db
- Windows:
C:\Users\Alice\AppData\Roaming\project-gauntlet\Gauntlet\data\data.db
- Linux:
- If you encounter this issue you have to remove application database, file which can be found at
- Slightly improved close-on-unfocus behaviour of main window on X11
- On macOS use app stem name as a fallback if the bundle name is empty (contributed by @BennoCrafter)
- Fixes empty names of some apps, like "Creality Print" which have an empty bundle name
- When using active screen setting for window positioning, position calculated is now relative to size of the screen
- Fixes unexpected position when using monitors of different size (contributed by @BennoCrafter)
- Fixed no plugins starting on Windows in release mode
- Fixed all global shortcut registrations failing if one shortcut registration failed
- Fixed error when registering shortcut erroring whole settings window instead of adding an icon
v14
- Fixed mouse actions like scrolling or clicking not working on macOS
v13
General
- Window Tracking
- Gauntlet now tracks opened windows and assigns them to specific application entry in results
- If application has window open, primary action now instead focuses the window
- If there are multiple windows open, primary action opens view which contains list of windows that can be focused
- If application has window open, it is still possible to open new application instance by using separate new action
- It is experimental, and it is possible to disable window tracking by unchecking checkbox in Application entrypoint preferences in Settings UI
- Currently supported on
- Linux X11
- wlroots-based window managers
- Hyprland
- Cosmic
- Added "Show all opened windows" entrypoint to bundled plugin
- Application plugin is now implemented on Windows
- macOS native-like dark and light mode themes are now available
- On macOS theme is now auto-selected based on system theme
- On macOS window can now be dragged to change its position
- Window position is saved and will be used after restart
- Binary size has been reduced by around 40% (contributed by @davfsa)
- Added
main_window.close_on_unfocus
boolean option to config file to disable "close on unfocus" functionality of main window- Intended to be used when using "window focus follows mouse" functionality of OS, Desktop Environment or Window Manager
- Added option in Settings UI to choose were main window appears when opening it
- Current options
Static
- Window always opens in the same location (on macOS location can be changed by dragging the window)
Active Monitor
- Windows opens on monitor which has currently focused window
- Currently supported only on macOS
- Current options
- Improve config and theme config error parsing logs
Theming
- Themes have been reworked
- Removed complex themes
- Removed theme versioning
- Removed sample generation commands
- Themes are now defined in TOML format
- Theme file is located in config directory (varies based on OS) with name
theme.toml
- Theme file is located in config directory (varies based on OS) with name
- Format of theme file has been reworked, see bundled themes for examples
- 3 bundled themes are now available: Bundled themes
- Legacy (previous default theme)
- macOS Light
- macOS Dark
- It is possible to change theme in Settings UI
- By default, theme is auto-detected to use one of the bundled ones
- Setting is locked if theme config file exists
Plugins
- Entrypoint Generator improvements
- BREAKING CHANGE: Renamed
"command-generator"
entrypoint type into"entrypoint-generator"
, as well as all types related to it - BREAKING CHANGE: Removed
GeneratedEntrypoint
'sfn: () => void
actions: GeneratedEntrypointAction[]
field now is required to have at least one element- It is now possible to specify label displayed on bottom row panel for primary action
- BREAKING CHANGE: Renamed
GeneratedEntrypointAction
'sfn
field intorun
- It is now possible to have
GeneratedEntrypointAction
which opens view instead of running command by specifyingview
field with value of ReactFC
type instead ofrun
- Renamed
GeneratorProps
toGeneratorContext
- Added
pluginPreferences
andentrypointPreferences
properties toGeneratorContext
to access preferences from Entrypoint Generator - Added
get: (id: string) => GeneratedEntrypoint | undefined
function toGeneratorContext
to get added entrypoint - Added
getAll: () => GeneratedEntrypoint[]
function toGeneratorContext
to get all added entrypoints - Generated Entrypoints can now have accessories similar to
<List/>
component
- BREAKING CHANGE: Renamed
- Removed
pluginPreferences
andentrypointPreferences
helper functions - Added
usePluginPreferences
anduseEntrypointPreferences
React Hooks - Command function now receives
CommandContext
as first argument- Object contains
pluginPreferences
andentrypointPreferences
properties to access preferences from Command
- Object contains
- Unified primary and secondary action execution in
<List.Item/>
and<Grid.Item/>
- BREAKING CHANGE: Removed
onClick
property on<List.Item/>
and<Grid.Item/>
components - BREAKING CHANGE:
<List.Item/>
and<Grid.Item/>
now has howid: string
required property - If primary or secondary action is executed when
<List.Item/>
and<Grid.Item/>
is focused,onAction
handler first parameter will be value ofid
prop of focused item
- BREAKING CHANGE: Removed
- Added
onItemFocusChange?: (itemId: string | undefined) => void
property on<List.Item/>
and<Grid.Item/>
. Function is called when focused item changes - BREAKING CHANGE: Renamed
Image
type toImageLike
to avoid conflict with<Image/>
component - When entrypoint is enabled/disabled or preference value is changed whole plugin runtime is restarted instead of just reloading the search index
- It is now possible to control whether the action closes main window by returning
{ close: true }
object fromonAction
property function- For
<Inline/>
view and commands (including generated commands) action always closes window without possibility to keep it open
- For
- Improved rejected promise error log
UI/UX Improvements
- On macOS main window now uses native window decorations
- Show name of generator entrypoint near plugin name of entrypoints generated by it in main view search results
- Improved styling of action panel popup
- Tweaked padding between sections
- Added shadow around it
- Tweak height of
<List.Detail.Metadata/>
to be slightly taller - Values of fields in
<List.Detail.Metadata/>
are now positioned on the same row as labels
Fixes
- Fixed one thread having close to 100% CPU usage while main window is hidden
- Fixed icons in main search view sometimes not loading when window is opened or disappearing after scrolling
- Fixed commands in
permissions.exec.command
in Plugin Manifest not being resolved properly - Fixed zombie processes being left over after plugin runtime is stopped
- Fixed
npm run dev
failing to reload in some cases - Fixed
<Grid.EmptyView/>
not displaying the image - Fixed image in
<List.EmptyView/>
being too big so labels are not shown - Fixed action not being run if
<List/>
or<Grid/>
view has focused<SearchBar/>
- Fixed
npm run dev
failing because of missing log files when run for the first time
v12
General
- Each plugin Deno runtime now runs in separate OS process
- Nix package, dev shell and home-manager modules are now available (contributed by @schradert)
- Replaced wayland layer-shell implementation, fixing several long-standing issues
- Fixed icons not being rendered properly
- Fixed Ctrl + A shortcut not working in text inputs
- Fixed Backspace only removing single character at a time
- Improved window handling on macOS
- Main window is now non-activating, so it doesn't take away focus from front-most application
- Main window no longer shows up in macOS Dock panel
- Fixed application not receiving keyboard input if front-most application is using Secure Event Input (e.g. Terminal)
- Main window is now closed automatically when plugin action is executed
- A lot of internal dependency updates
Plugin API
- Internal JS functions are no longer accessible from plugins
- BREAKING CHANGE: Deno updated from
v1.37.0
tov2.1.1
- BREAKING CHANGE: Clipboard api now uses
ArrayBuffer
instead ofBlob
@project-gauntlet/deno
is deprecated in favor of@types/deno
UI/UX Improvements
- Hud window was moved lower (below main window) on non-wayland platforms
Fixes
- Fixed possible freeze when spamming keys or buttons in plugin view
- Fixed separator in
<Inline/>
view not being horizontally centered
v11
General
- Primary action label on bottom bar is now a clickable button
- It is now possible to unset global shortcut in settings
- Implemented keyboard navigation support for
<List/>
and<Grid/>
- Note:
<Grid/>
scrolling while using keyboard navigation is still quite buggy and is work in progress
- Note:
Bundled plugin
Applications
- Applications commands are now automatically added or removed when application is installed or uninstalled respectively
- When loading the list of applications from OS, loading bar and "Indexing..." text in bottom panel is shown in main window
Plugin API
- Added
<SearchBar/>
component in<List/>
and<Grid/>
which is text input field above content of the respective view "command-generator"
entrypoints have been reworked- Now it is possible to update list of generated entrypoints (add or remove) after the main command generator function has finished running
- BREAKING CHANGE: Command Generator entrypoint function now accepts an object with
add: (id: string, data: GeneratedCommand) => void
andremove: (id: string) => void
functions - BREAKING CHANGE: Command Generator entrypoint function now should return nothing or a cleanup function e.g. close file watcher. Currently, it is called when disabling/enabling any of entrypoints in plugin, but it is not called when whole plugin is stopped
- While generator function itself is running (given that the function is async) the loading bar and "Indexing..." text in bottom panel will be shown in main window
- BREAKING CHANGE: Validation of React Component children is now a lot more strict with respect to what amount of children of specific type is allowed
- BREAKING CHANGE:
assetData
helper function renamed toassetDataSync
- Added async variant of
assetDataSync
helper function namedassetData
which returnsPromise<ArrayBuffer>
- Added Plugin Environment API
Environment.gauntletVersion
-number
, current Gauntlet versionEnvironment.isDevelopment
-boolean
,true
if plugin was added withnpm run dev
as opposed to Settings UIEnvironment.pluginCacheDir
-string
, path to plugin cache directory, corresponds to{common:plugin-cache}
variable in permissionsEnvironment.pluginDataDir
-string
, path to plugin data directory, corresponds to{common:plugin-data}
variable in permissions
Theming API
- Themes slightly reworked
- "Color Theme" is renamed into "Simple Theme"
- BREAKING CHANGE: Sample generation CLI command was changed to
gauntlet generate-sample-simple-theme
- BREAKING CHANGE: Theme file is renamed from
color_theme.json
tosimple-theme.json
- BREAKING CHANGE: Sample generation CLI command was changed to
- "Everything Theme" or just "Theme" is renamed into "Complex Theme"
- BREAKING CHANGE: Sample generation CLI command was changed to
gauntlet generate-sample-complex-theme
- BREAKING CHANGE: Theme file is renamed from
theme.json
tocomplex-theme.json
- BREAKING CHANGE: Sample generation CLI command was changed to
- It is now possible to customize color, width and radius of borders in Simple Theme
- "Color Theme" is renamed into "Simple Theme"
- BREAKING CHANGE: Current Simple Theme version increased to
4
- BREAKING CHANGE: Current Complex Theme version increased to
4
UI/UX Improvements
- Loading bar is now shown if opening plugin view takes more than 300 milliseconds
- Pressed button state now has distinct styling, providing more clear indication that button was pressed
- When registering global shortcut in settings fails, instead of showing error on whole settings screen now icon with on hover text is shown to the right of the setting field
- If registering global shortcut on application startup fails, error is now also shown in settings
- Fixed padding of grid and list section being too far down if it is first in the view
- Fixed incorrect supported schemas label in Settings UI, http(s), ssh and git are the only supported schemas for plugin IDs
- Better error for not supported plugin ID schemas
<Grid.Item/>
height is now dynamic and is based on<Grid/>
or<Grid.Section/>
columns
property
Fixes
- Fixed global shortcut not working on Windows
- Fixed emojis not working in a lot of places across the application
- Fixed hud window not disappearing on Wayland
- Fixed clipboard operations not working on KDE
- Note:
Clipboard.clear()
orClipboard.writeText("")
is still not working on KDE due to upstream bug
- Note:
- Fixed clipboard operations not working on Wayland
- Fix primary action of first search result being called if primary action of inline view is called using enter key
- Fix scrollable resetting when clicking action panel button in bottom panel
v10
General
- Main view now has action bar and action panel
- Action bar displays current primary action depending on focused result item
- ALT + K (OPT + K on macOS) is available to open action panel
- Content of action panel can be defined by plugins
"inline-view"
and"command-generator"
entrypoint types can now specify custom actions on main view- Plugin can also provide shortcut that will be available depending on focused result item without opening the action panel
- Primary and secondary actions
- First action in action panel is now considered primary and can be run using ENTER without opening action panel
- Second action in action panel is now considered secondary and can be run using SHIFT + ENTER without opening action panel
- Works for all places that can define actions:
"inline-view"
,"command-generator"
and"view"
entrypoint types
- Action panel now supports keyboard navigation
- All bundled plugins are merged into one
- It is now possible to update plugin using "Check for updates" button in settings
Bundled plugin
Applications
- Add Flatpak application support on Linux
- Fixed no applications being shown on macOS Sequoia (15)
- Fixed crash on macOS if macOS version only contains two segments, e.g.
15.0
vs15.0.1
- Fixed some applications not having icons on macOS
Calculator
- It is now possible to copy result of calculation using primary action and its shortcut
- After copying, popup is shown to indicate that the result was copied
- Updated
numbat
dependency to 1.14.0- Notable change: "Add lowercase aliases for currency units"
Plugin API
- Plugin permissions reworked
- BREAKING CHANGE: Plugin manifest property
permissions.ffi
removed- FFI in Deno is an unstable feature
- May be brought back in future
- BREAKING CHANGE: Plugin manifest property
permissions.high_resolution_time
removed- This is done in preparation for Deno update, newer versions of which removed this permission
- BREAKING CHANGE: Plugin manifest property
permissions.fs_read_access
renamed topermissions.filesystem.read
- BREAKING CHANGE: Plugin manifest property
permissions.fs_write_access
renamed topermissions.filesystem.write
- BREAKING CHANGE: Plugin manifest property
permissions.run_subprocess
has been split into 2 properties:permissions.exec.command
andpermissions.exec.executable
command
is for commands onPATH
, e.g."ls"
executable
is for absolute paths to binary, e.g."/usr/bin/ls"
- BREAKING CHANGE: Windows-style paths are not allowed in plugins that do not support Windows
- BREAKING CHANGE: Unix-style paths are not allowed in plugins that do not support Linux or macOS
- BREAKING CHANGE: Plugin manifest property
permissions.network
now can only contain domain and optionally port of URL - BREAKING CHANGE: Path permissions (
permissions.filesystem.read
,permissions.filesystem.write
andpermissions.exec.executable
) now can only contain absolute paths - Path permissions (
permissions.filesystem.read
,permissions.filesystem.write
andpermissions.exec.executable
) can now contain variables which will be replaced at plugin load time- Examples:
{linux:user-home}/.local/share
,{common:plugin-cache}/my-plugin-cache
- Variables can only be used at the beginning of the path
- List of currently available variables
{macos:user-home}
- Resolves to
$HOME
, i.e./Users/<username>
- Only available if plugin supports macOS
- Resolves to
{linux:user-home}
- Resolves to
$HOME
, i.e./home/<username>
- Only available if plugin supports Linux
- Resolves to
{windows:user-home}
- Resolves to
{FOLDERID_Profile}
, i.e.C:\Users\<username>
- Only available if plugin supports Windows
- Resolves to
{common:plugin-data}
- On Windows:
{FOLDERID_RoamingAppData}\Gauntlet\data\plugins\<plugin-uuid>
- On Linux:
$XDG_DATA_HOME/gauntlet/plugins/<plugin-uuid>
- On macOS:
$HOME/Library/Application Support/dev.project-gauntlet.gauntlet/plugins/<plugin-uuid>
- On Windows:
{common:plugin-cache}
- On Windows:
{FOLDERID_LocalAppData}\Gauntlet\cache\plugins\<plugin-uuid>
- On Linux:
$XDG_CACHE_HOME/gauntlet/plugins/<plugin-uuid>
- On macOS:
$HOME/Library/Application Support/dev.project-gauntlet.gauntlet/plugins/<plugin-uuid>
- On Windows:
- Examples:
- BREAKING CHANGE: Plugin manifest property
<Grid.Item/>
'stitle
property is now optional<Grid.Item/>
have a newaccessory
property, which provides an ability to specify text and/or icon under the grid cell<List.Item/>
have a newaccessories
property, which provides an ability to specify one or multiple text and/or icon items on the right side of list item- BREAKING CHANGE:
<Action>
'stitle
property renamed tolabel
- Added
entrypoint.icon
plugin manifest property that accepts path to image inside plugin'sassets
directory - Added
showHud
function that will create a simple popup window with text provided to that function
Theming API
- BREAKING CHANGE: Current color theme version increased to
3
- BREAKING CHANGE: Current everything theme version increased to
3
UI/UX Improvements
- Grid styling refined
- Inline view styling refined
- Plugin and entrypoint names of rendered inline view are now shown above that inline view
- Made color of text slightly more bright
- Focused (by keyboard navigation) and hovered (by hovering with mouse) search items now have distinct styling
- Slightly increased size of icons in main search view
- Plugin ID is now shown in sidebar in settings when plugin is selected
- "Remove plugin" button has been moved to the bottom of the sidebar in settings
- In settings required preferences that do not have value provided or do not have default value are now highlighted
- Names of keys of shortcuts were changed from all upper-case to first letter only upper-case
Fixes
- Fixed panic when trying to stop already stopped plugin
- Fixed crash on macOS if
openssl@v3
library is not installed - Fixed inline view still being shown after main view was closed and reopened
- Fixed download info panel in settings sometimes going outside of window size and being cut off