- Python 97.8%
- Shell 2.2%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
Second theme that rearranges Quisk's own controls after it builds them: hero bar with large frequency readout, status strip and an instrument cluster (S-meter scale, power and SWR arc gauges from the HL2 widgets file), a band ladder, receiver cards and a dock for views, memories, recording and the radio's own widgets. Themes are now named palettes in theme.py; GTK native widgets are styled with CSS so sliders and text entry match. Layout checks run before any control moves, so a failure leaves Quisk's stock layout intact. The preview can load the real HL2 widgets file and fake transmit. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> |
||
| bin | ||
| preview | ||
| quisk_ui | ||
| .gitignore | ||
| quisk_conf.py | ||
| README.md | ||
quisk-ui
Dark themes for Quisk, applied to Quisk's own wxPython UI at runtime. No Quisk files are modified, and settings are unchanged.
| Theme | Layout | Look |
|---|---|---|
panel |
Quisk's stock layout | graphite, amber frequency, cyan spectrum |
console |
new layout: hero bar, band ladder, receiver cards, dock | charcoal, orange and teal, power/SWR gauges |
Both themes share the restyled widgets: flat buttons with LED-strip toggles, a segmented S-meter, a filled spectrum trace and dark native sliders and text entry.
Choose the theme with _THEME in quisk_conf.py.
Console layout
- Hero bar: power button, large frequency readout, a status strip (mode, bandwidth, band, RX/TX, split, UTC), then an instrument cluster: S-meter with scale, and power and SWR arc gauges.
- Band ladder on the left, and receiver cards on the right: Mode, Filter, Receive, Transmit, Levels.
- Dock: View, Memory, Favorites, Record, and a Radio row for the hardware's own widgets (Hermes-Lite 2: PS, ATU, LNA, temperature).
The controls are Quisk's own, moved into new panels, so commands, shortcuts, MIDI and remote control keep working. A control the layout doesn't recognize appears in the dock's More card instead of being dropped.
The power and SWR gauges read the Hermes-Lite 2 widgets file, using its power calibration. SWR is scaled by reflection coefficient, from 1:1 to 5:1 at full scale. Radios that don't report power get no gauges.
Install
ln -s ~/src/quisk-ui/quisk_conf.py ~/.quisk_conf.py
~/src/quisk-ui/bin/quisk-themed # = GTK_THEME=Adwaita:dark uv run quisk, from ~
quisk-themed sets a dark GTK theme so the native controls (sliders, text entry,
menus, config tabs) match. Plain uv run quisk still gets the theme, just with light
native controls.
To uninstall, remove ~/.quisk_conf.py.
How it works
Quisk runs ~/.quisk_conf.py at startup, before it builds any widgets. The stub
calls quisk_ui.install(), which:
- sets every
color_*value and the waterfall palette fromquisk_ui/theme.py - reapplies them after the radio profile loads, so the profile's color scheme and empty typeface don't override the theme
- replaces paint methods on Quisk's self-drawn classes (
QuiskButtons,FrequencyDisplay,QuiskText1,GraphDisplay,Spacer) and softens the band plan strip - styles GTK's native widgets with CSS (
quisk_ui/gtk_css.py) - for
console: makes the graph narrower by the width of the side panels before Quisk builds it, then moves the controls into the new layout just before the window is shown (quisk_ui/layout_console.py)
To change colors, edit the theme's palette in quisk_ui/theme.py.
Preview without a radio
bin/quisk-preview # interactive window with fake signals
bin/quisk-preview shot.png # screenshot after ~6 s, then exit
QUISK_UI_THEME=console bin/quisk-preview # pick the theme
QUISK_PREVIEW_TX=tx QUISK_UI_THEME=console bin/quisk-preview # fake transmit (gauges)
QUISK_PREVIEW_HL2=1 QUISK_UI_THEME=console bin/quisk-preview # with the real HL2 widgets file
The preview uses its own config (preview/preview_conf.py) and keeps all state in
$QUISK_PREVIEW_DIR (default /tmp/quisk-ui-preview). It opens no sound devices,
serial ports or network ports, and never touches ~/quisk_settings.json.
Limits
- Tested against Quisk 4.2.51. The patches replace internal methods, so a Quisk
upgrade can break them. If Quisk fails to start after an upgrade, remove
~/.quisk_conf.pyand rerun it to see whether the theme is the cause. - While installed, the theme overrides the color scheme chosen in Quisk's config screen.
consoleassumes Quisk's "Large screen" button layout.- If you edit the band plan in Quisk's config dialog, the strip shows full-strength colors until the next restart.