5 Commits

Author SHA1 Message Date
9d637a9378 Screenshot feature (text + PNG) and keybind editor tab in settings
- New screenshot action (default alt+p, bindable like any action):
  renders the current workspace to a buffer and saves it as plain text
  and/or PNG (screenshot_format = text|png|both, screenshot_dir
  configurable, default skärmbilder/ under the config dir). The PNG is
  rasterized cell by cell with an embedded DejaVu Sans Mono font
  (vendored, ~340 kB); glyphs missing from the font (color emoji)
  render as filled boxes. A popup confirms the saved paths
- Settings dialog gains a 'Tangenter' row: lists all keybinds with
  label and scope, Enter captures the next keypress as the new chord
  (persisted by rewriting [[keybind]] via toml_edit), Delete removes
  a binding — changes take effect immediately
- Integration suite: 48/48 (screenshot files + validity, keybind list,
  live rebind ctrl+space→alt+z)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-16 00:30:56 +02:00
ca13abc9b7 Reliable letter-based default keybinds + kitty keyboard protocol
alt+tab is grabbed by desktop WMs and alt+arrows are re-encoded or
swallowed by several terminals, leaking plain arrow keys into the
focused window. Primary defaults are now letter chords which every
terminal delivers via ESC-prefix: alt+w (switcher), alt+h/alt+l
(snap), alt+m (maximize). The alt+tab/arrow variants stay as extra
bindings, and standalone/client now enable the kitty keyboard
protocol (DISAMBIGUATE_ESCAPE_CODES) when the terminal supports it
so even those are delivered unambiguously (Konsole 23.08+, kitty,
foot, wezterm, ghostty). 34/34 integration checks.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 20:15:17 +02:00
8296081557 Ship default config/panels/themes with the app: --init, XDG discovery, build/CI bundling
- tui-wm --init [DIR] writes an embedded default config.toml,
  panels/topbar.toml and themes/{dark,light}.toml (default target
  ~/.config/tui-wm, existing files untouched)
- Config discovery: ./config.toml wins, otherwise ~/.config/tui-wm/
  is used (process switches working dir there so panels/themes/saves/
  hot-reload all resolve consistently); spawned PTYs still start in
  the user's original working directory
- VS Code build tasks copy themes/ into builds/, dist/ sample configs
  refreshed with all new keys and the settings gear
- CI release now also uploads tui-wm-config.tar.gz (config + panels +
  themes) alongside the binaries

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 20:12:13 +02:00
3a9e292088 Add build output dependency file for mouse-test application
Add standard menu fore keybinds
2026-03-28 03:18:41 +01:00
Björn Blomberg
4440ad79bd feat: add configuration management and panel rendering
- Introduced a new `Config` struct for loading application configuration from a TOML file.
- Added support for keybindings and panel configurations, including status widgets.
- Implemented `PtyTerminal` for handling pseudo-terminal interactions.
- Created a rendering module to manage the display of application windows, panels, and dropdowns.
- Refactored the main application loop to utilize the new configuration and rendering logic.
- Removed legacy code related to event handling and rendering from `main.rs`.
2026-03-27 17:01:06 +01:00