A Dux Shell widget plugin that displays near-live market prices and charts directly in your desktop shell through configurable market data providers.
| Dark Theme | Light Theme |
|---|---|
![]() |
![]() |
- Pin to bar - display live prices for selected symbols directly in
DankBar. - Popup panel - list showing name, price, change percentage, and charts.
- Manual symbol entry - open the selected provider in your browser, then add the provider symbol manually.
- Per-symbol configuration - independent data provider, price resolution, chart resolution, chart range, change display, and price inversion. Each dropdown only offers what the selected provider can actually serve.
- Custom colors - configurable up/down color indicators.
- Reorder & edit - rearrange symbol order, click to edit, hover to pin or delete.
- Adjustable popup height - set the number of visible rows.
| Settings (1) | Settings (2) |
|---|---|
![]() |
![]() |
Dux Shell (DMS)≥ 2.0.0, running onQt≥ 6.7.curlinstalled and available in$PATHbashinstalled and available in$PATHGNU coreutils(or compatible:sh,ls,mkdir,rm,mktemp,cat,tail) in$PATH, used to fetch data and manage cache.Node.jsonly whenStooqprovider is used (currently disabled).- Internet access.
- Optional:
ioniceandrenice(util-linux), used to run the fetches at low priority when present.- Writable cache directory (
$XDG_CACHE_HOMEor~/.cache), caching will not work without.
Currently supported providers:
-
Yahoo Finance No credentials required, provides data for stock, exchange rates, commodities, crypto.
-
Stooq (Disabled, due to unstable
API). Publishes quotes for a wide range of instruments. -
Wise No credentials required. Provides rates for most world currencies, including exotic pairs.
Limitation: Wise publishes hourly and daily rates only (no sub-hour, weekly or monthly data). Price resolutions are
1 Hourand1 Day; the API serves up to 1 month of hourly and 5 years of daily data, however available chart ranges will be caped due to the chart drawing size limits.Limitation: Some Stooq symbols (usually futures that has symbols of
*.fformat) shown on the website do not return CSV data through the public API. If a symbol stays empty in the widget, open Stooq in your browser and try the cash/index variant shown there (i.e. symbols of*.ior*.cformat).
Currently the available providers can reveal your
IPaddress when the request is sent to them. It is recommended to useVPNto anonymize it. No other private data can be inferred by the providers currently.
- URLs are passed as separate process arguments.
- Providers' privacy:
Yahoo Financeprovider quiresquery1.finance.yahoo.com, clicking a chart or symbol search opensfinance.yahoo.comin your browse. See Privacy Policy, Yahoo Finance privacy practices, and Terms of ServiceWisecontactswise.com, clicking a chart or symbol search openswise.comin your browser. See Privacy Policy and Terms of Use- (Disabled)
Stooqcontactsstooq.com, and stores a cookie jar at~/.cache/dms-markets-stooq.cookies, and usesNode.jsfor a browser verification proof-of-work challenge. It is operated fromPolandand is presumablyGDPR-compliant. See their Privacy & Cookie Policy and Terms of Service.
- Configured symbols and the fetched candles are cached on disk in
~/.cache/dms-markets-plugin/(or$XDG_CACHE_HOME/dms-markets-plugin/). - Responses are written to
mktemptemporary files and cleaned up when the fetch script exits. - No endpoints are contacted other than the above mentioned.
- Provider credentials (currently only
Stooq) are stored locally in plugin settings, with simple and reversible XOR obfuscation.
- v2.0.0 :
- New: data provider
Wise, covering exotic pairsYahoo Financedoes not offer. No credentials required, thx for brunofin. - New: per-symbol
Change Resolutionsetting, to adjust the shown change is in what range. - New:
Chart Resolutionthat can be set per symbol (before chart resolution was same as price resolution). - New:
Show Provider Aliassetting (three-letter provider codes on the charts, short chart ranges like1M). - New: Fetched data is now cached on disk, so prices and data will stay visible even without internet connection.
- New: Open plugin settings directly from the popup header.
- New: Clear cached market data, and/or clear all symbols from settings.
- Improvement: Full refactoring for first class support of self-declarative multiprovider setup. Note: the saved symbols will be migrated to new formats on first load.
- Improvement: Migrated widgets to the Dux 2 API; hence the new Dux versions is now required.
- Improvement: Various optimizations and tests added.
- Improvement: Some cosmetic improvements to comply with
Duxtheme. - Fix: Symbol change is now calculated correctly against the close of the previous period.
- New: data provider
- v1.0.4 :
- A maintenance release with small fixes, to comply with
DMScomments published here and here. - Enforce all command execution via
bashto not break when user's default shell is notbash.
- A maintenance release with small fixes, to comply with
- v1.0.3 :
Stooqchanged theirAPIyet again, and broken data fetching.- Added
Yahoo Financeprovider as a, probably less privacy respecting, but working alternative forStooq. - Disabled
Stooqtill they stabilize theirAPI. - If you previously configured
Stooqsymbols, delete them and re-add the same markets using another provider. Provider symbols can differ, so use the symbol search link in settings to find the correct Yahoo Finance symbol.
- v1.0.2 :
- Now
StooqrequiresAPIkey to provide historic data, updated backend and widget settings to supportAPIkey. - In-settings search for symbols is removed due to unreliability, replaced with a button to open provider's symbols search web page.
- Now
- v1.0.1 (Not published to
DMS, due to changes fromStooqprovider):- Fixed the issue with charts for previously working symbols, are not displayed (Unfortunately,
Stooqnow requires using cookies). - Added logging capability.
- Refactoring.
- Fixed the issue with charts for previously working symbols, are not displayed (Unfortunately,
- v1.0.0 :
- Initial version.
In Dux Shell:
- Open
Settings -> Plugins - Click
Scan for Plugins - Enable
Markets - Add widget to DankBar
Or clone repo, and run (this will add Symlink to plugin folder):
chmod +x support/setup-symlink.sh
support/setup-symlink.sh- The developer has no affiliation with any data provider.
- This plugin was vibe-coded under my supervision as a software engineer.
Feel free to submit your PR, and please follow Code Requirements.
The plugin has isDevMode in src/QML/Helpers/Constants.qml, that when true, logging will be enabled, useful for debugging.



