Skip to content

Releases: project-gauntlet/gauntlet

v19

11 May 14:23
Compare
Choose a tag to compare

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
Compare
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
Compare
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
Compare
Choose a tag to compare
v16
  • Fixed application plugin being broken on non-macos platforms

v15

22 Feb 19:08
Compare
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
Compare
Choose a tag to compare
v14
  • Fixed mouse actions like scrolling or clicking not working on macOS

v13

19 Jan 13:00
Compare
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
Compare
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

v11

16 Nov 20:24
Compare
Choose a tag to compare
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

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 and remove: (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 to assetDataSync
  • Added async variant of assetDataSync helper function named assetData which returns Promise<ArrayBuffer>
  • Added Plugin Environment API
    • Environment.gauntletVersion - number, current Gauntlet version
    • Environment.isDevelopment - boolean, true if plugin was added with npm run dev as opposed to Settings UI
    • Environment.pluginCacheDir - string, path to plugin cache directory, corresponds to {common:plugin-cache} variable in permissions
    • Environment.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 to simple-theme.json
    • "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 to complex-theme.json
    • It is now possible to customize color, width and radius of borders in 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() or Clipboard.writeText("") is still not working on KDE due to upstream bug
  • 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

13 Oct 15:56
Compare
Choose a tag to compare
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 vs 15.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 to permissions.filesystem.read
    • BREAKING CHANGE: Plugin manifest property permissions.fs_write_access renamed to permissions.filesystem.write
    • BREAKING CHANGE: Plugin manifest property permissions.run_subprocess has been split into 2 properties: permissions.exec.command and permissions.exec.executable
      • command is for commands on PATH, 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 and permissions.exec.executable) now can only contain absolute paths
    • Path permissions (permissions.filesystem.read, permissions.filesystem.write and permissions.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
        • {linux:user-home}
          • Resolves to $HOME, i.e. /home/<username>
          • Only available if plugin supports Linux
        • {windows:user-home}
          • Resolves to {FOLDERID_Profile}, i.e. C:\Users\<username>
          • Only available if plugin supports Windows
        • {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>
        • {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>
  • <Grid.Item/>'s title property is now optional
  • <Grid.Item/> have a new accessory property, which provides an ability to specify text and/or icon under the grid cell
  • <List.Item/> have a new accessories 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>'s title property renamed to label
  • Added entrypoint.icon plugin manifest property that accepts path to image inside plugin's assets 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