Skip to content

Releases: project-gauntlet/gauntlet

v21

16 Aug 16:28

Choose a tag to compare

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 property focusedItemId
    • If focusedItemId property is undefined the focus is uncontrolled
    • if focusedItemId property is null the focus is controlled and unset
    • if focusedItemId property is string the focus is controlled and set to item with specified id
  • Refine nullability of event function arguments on React components
    • BREAKING CHANGE: Following function properties now return null as an argument instead of undefined
      • <Action/>'s onAction
      • <List/>'s onItemFocusChange
      • <Gird/>'s onItemFocusChange
    • For following function property arguments undefined was removed from type signature
      • <SearchBar/>'s onChange
      • <TextField/>'s onChange
      • <PasswordField/>'s onChange
      • <Select/>'s onChange

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

07 Jul 19:41

Choose a tag to compare

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 regular xdg_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 to gauntlet for main window, and set namespace to gauntlet-hud for hud window
    • Migrated to yet another LayerShell implementation
      • Fixes event/keystroke duplication after suspend
  • 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
  • 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 and useCache 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

11 May 14:23

Choose a tag to compare

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 to DataSource, ImageSourceUrl to DataSourceUrl, ImageSourceAsset to DataSourceAsset

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 in EntrypointGenerator requiring number[] instead of declared ArrayBuffer
  • Fixed text selection not being visible when selecting text in form view text fields
  • Fixed plugin runtime crash when using assetDataSync() function

v18

13 Apr 18:13

Choose a tag to compare

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 - String
    • gauntlet.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 with mailto: 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

15 Mar 07:53

Choose a tag to compare

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

23 Feb 13:46

Choose a tag to compare

v16
  • Fixed application plugin being broken on non-macos platforms

v15

22 Feb 19:08

Choose a tag to compare

v15

General

  • Published macOS .dmg file is now universal and can run on x86_64 CPU architecture
    • BREAKING CHANGE: Name of published macOS .dmg file was changed from gauntlet-aarch64-macos.dmg to gauntlet-universal-macos.dmg
  • 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
  • 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 type
      • localized option - use localized name of bundle if available - this is the default
      • default option - use default name of bundle (usually english)
  • 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
  • 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

19 Jan 19:40

Choose a tag to compare

v14
  • Fixed mouse actions like scrolling or clicking not working on macOS

v13

19 Jan 13:00

Choose a tag to compare

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
  • 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
    • 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's fn: () => 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's fn field into run
    • It is now possible to have GeneratedEntrypointAction which opens view instead of running command by specifying view field with value of React FC type instead of run
    • Renamed GeneratorProps to GeneratorContext
    • Added pluginPreferences and entrypointPreferences properties to GeneratorContext to access preferences from Entrypoint Generator
    • Added get: (id: string) => GeneratedEntrypoint | undefined function to GeneratorContext to get added entrypoint
    • Added getAll: () => GeneratedEntrypoint[] function to GeneratorContext to get all added entrypoints
    • Generated Entrypoints can now have accessories similar to <List/> component
  • Removed pluginPreferences and entrypointPreferences helper functions
  • Added usePluginPreferences and useEntrypointPreferences React Hooks
  • Command function now receives CommandContext as first argument
    • Object contains pluginPreferences and entrypointPreferences properties to access preferences from Command
  • 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 how id: 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 of id prop of focused item
  • 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 to ImageLike 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 from onAction property function
    • For <Inline/> view and commands (including generated commands) action always closes window without possibility to keep it open
  • 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

22 Dec 14:35

Choose a tag to compare

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 to v2.1.1
  • BREAKING CHANGE: Clipboard api now uses ArrayBuffer instead of Blob
  • @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