One of the primary purposes of Shipyard is to allow you to quickly find and launch a given app. To make this as quick as possible, there is no need to touch the mouse, or press a certain key to begin searching - just start typing. Results will be filtered in real-time. No need to worry about case, special characters or small typos, these are taken care of, and your results should appear.
You can navigate through your items or search results using the keyboard. You can use Tab to cycle through results, and Shift + Tab to go backwards. Or use the arrow keys, ↑, →, ↓ and ←.
You can launch a elected app by hitting Enter. This will open the app using your default opening method, specified in target
(either newtab
, sametab
, modal
, top
or workspace
). You can also use Alt + Enter to open the app in a pop-up modal, or Ctrl + Enter to open it in a new tab. For all available opening methods, just right-click on an item, to bring up the context menu.
By default, items are filtered by the title
attribute, as well as the hostname (extracted from url
), the provider
and description
. If you need to find results based on text which isn't included in these attributes, then you can add tags
to a given item.
items:
- title: Plex
description: Media library
icon: favicon
url: https://plex.lab.local
tags: [ movies, videos, music ]
- title: FreshRSS
description: RSS Reader
icon: favicon
url: https://freshrss.lab.local
tags: [ news, updates, blogs ]
In the above example, Plex will be visible when searching for 'movies', and FreshRSS with 'news'
For apps that you use regularly, you can set a custom keybinding. Use the hotkey
parameter on a certain item to specify a numeric key, between 0 - 9
. You can then launch that app, by just pressing that key, which is much quicker than searching for it, if it's an app you use frequently.
- title: Bookstack
icon: far fa-books
url: https://bookstack.lab.local/
hotkey: 2
- title: Git Tea
icon: fab fa-git
url: https://git.lab.local/
target: workspace
hotkey: 3
In the above example, pressing 2 will launch Bookstack. Or hitting 3 will open Git in the workspace view.
It's possible to search the web directly from Shipyard, which might be useful if you're using Shipyard as your start page. This can be done by typing your query as normal, and then pressing ⏎. Web search options are configured under appConfig.webSearch
.
Set your default search engine using the webSearch.searchEngine
property. This defaults to DuckDuckGo. Search engine must be referenced by their key, the following providers are supported:
duckduckgo
,google
,whoogle
,qwant
,startpage
,searx-bar
,searx-info
searx-tiekoetter
,searx-bissisoft
,ecosia
,metager
,swisscows
,mojeek
wikipedia
,wolframalpha
,stackoverflow
,github
,reddit
,youtube
,bbc
You can also use a custom search engine, that isn't included in the above list (like a self-hosted instance of Whoogle or Searx). Set searchEngine: custom
, and then specify the URL (plus query params) to you're search engine under customSearchEngine
.
For example:
appConfig:
webSearch:
searchEngine: custom
customSearchEngine: 'https://searx.local/search?q='
In a similar way to opening apps, you can specify where you would like search results to be opened. This is done under the openingMethod
attribute, and can be set to either newtab
, sametab
or workspace
. By default results are opened in a new tab.
An insanely useful feature of DDG is Bangs, where you type a specific character combination at the start of your search query, and it will be redirected the that website, such as '!w Docker' will display the Docker wikipedia page. Shipyard has a similar feature, enabling you to define your own custom bangs to redirect search results to a specific app, website or search engine.
This is done under the searchBangs
property, with a list of key value pairs. The key is what you will type, and the value is the destination, either as an identifier or a URL with query parameters.
For example:
appConfig:
webSearch:
searchEngine: 'duckduckgo'
openingMethod: 'newtab'
searchBangs:
/r: reddit
/w: wikipedia
/s: https://whoogle.local/search?q=
/a: https://www.amazon.co.uk/s?k=
':wolf': wolframalpha
':so': stackoverflow
':git': github
Note that bangs begging with !
or :
must be surrounded them in quotes
Web search can be disabled, by setting disableWebSearch
, for example:
appConfig:
webSearch: { disableWebSearch: true }
You can clear your search term at any time, resting the UI to it's initial state, by pressing Esc. This can also be used to close any open pop-up modals.