Releases: project-gauntlet/gauntlet
Releases · project-gauntlet/gauntlet
v21
General
- When opening
Opened windows
view second item is now focused by default- Because the window ordering is "most recently focused on the top", second can be considered as an "alternative" application that was focused before the last one
- Implemented native hud notifications on Linux
- Enabled by default
linux.native_hud
boolean configuration option is available to disable this
- Restricted JavaScript runtime heap size to 50 MB per plugin
Plugins
- It is now possible to programmatically control which item in grid/list is focused
<List/>
and<Grid/>
now have new propertyfocusedItemId
- If
focusedItemId
property isundefined
the focus is uncontrolled - if
focusedItemId
property isnull
the focus is controlled and unset - if
focusedItemId
property isstring
the focus is controlled and set to item with specifiedid
- Refine nullability of event function arguments on React components
- BREAKING CHANGE: Following function properties now return
null
as an argument instead ofundefined
<Action/>
'sonAction
<List/>
'sonItemFocusChange
<Gird/>
'sonItemFocusChange
- For following function property arguments
undefined
was removed from type signature<SearchBar/>
'sonChange
<TextField/>
'sonChange
<PasswordField/>
'sonChange
<Select/>
'sonChange
- BREAKING CHANGE: Following function properties now return
UI/UX improvements
- Text in main view search results, plugin view, action panel and bottom panel right side is now smaller
- Removed padding from content paragraph text
- Keyboard shortcuts in UI now use Lucide icons
Fixes
- Settings are now part of the main application instead of the separate process
- Only single settings window can now exist at the same time.
- Fixed inline view being recreated each time key is pressed in search bar, causing useRef not preserve the value
- Fixed back navigation being treated as whole separate view session
- This also fixed state leaking between views when changing views very quickly
- Fixed panic if state of the widget under specific id changed type
- Fixed blurry window on Linux Wayland LayerShell due to missing fractional scaling support
- Reworked viewport scrolling when using keyboard navigation
- Fixed incorrect scrolling distance for long lists/grids
- Fixed scrolling position sometimes not being reset correctly
- Fixed
Opened Windows
view often not showing any windows
v20
General
- Linux Gnome Wayland support
zwlr_layer_shell_v1
Wayland protocol is no longer required. It is still preferred, but if not supported application falls back to regularxdg_shell
window- Added
wayland.main_window_surface
config option to allow customization of this behavior
- Linux Wayland LayerShell improvements
- BREAKING CHANGE: Changed LayerShell surface namespace from
Gauntlet
togauntlet
for main window, and set namespace togauntlet-hud
for hud window - Migrated to yet another LayerShell implementation
- Fixes event/keystroke duplication after suspend
- BREAKING CHANGE: Changed LayerShell surface namespace from
- Disabled global shortcuts by default on Linux Wayland
- Added
wayland.global_shortcuts_api
config option to allow usage of legacy x11 api if supported by given environment - Global Shortcuts XDG Portal is not and will not be supported until there will be major changes to it
- Added
- Input Method Editor (IME) support for input fields
- Changed action panel shortcut from ALT + K to CTRL + K (Windows/Linux) and CMD + K (macOS), to match similar pattern in other apps
gauntlet open
CLI command now hides window when executed while window is open, matching behavior of global shortcut- Lots of internal dependency updates
Plugins
- Updated Deno to 2.3.3
- BREAKING CHANGE: Remove
<DatePicker/>
component- It caused difficulties when updating dependencies and needs a complete rework
Fixes
- Reduced glibc requirement from 2.38 to 2.35
- Fixed systray open main and settings windows actions causing deadlock
- Fixed LayerShell window taking exclusive keyboard focus preventing any desktop interactions while window was open
- Fixed
useStorage
anduseCache
hooks crashing plugin runtime when closing the view - Fixed
npm run dev
not showing full error cause (contributed by @Gabrielbdd) - Fixed nix applications not being detected on macOS by following links inside
/Applications
(contributed by @deadbaed)
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