- Add --setup-shortcut flag to configure a desktop keybinding - Wizard runs automatically on first run after config creation - Supports Hyprland (bindings.conf + hyprctl conflict check), GNOME (gsettings) and KDE (kglobalshortcutsrc) - Hyprland: prefers omarchy-launch-tui, falls back to xdg-terminal-exec - Conflict detection with fallback combo suggestions - Add tmuxido.desktop and install icon + .desktop in install.sh - 157 tests passing
5.5 KiB
5.5 KiB
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
[0.8.0] - 2026-03-01
Added
- Keyboard shortcut setup wizard on first run and via
tmuxido --setup-shortcut - Auto-detects desktop environment from
XDG_CURRENT_DESKTOP/HYPRLAND_INSTANCE_SIGNATURE - Hyprland: appends
binddentry to~/.config/hypr/bindings.conf; prefersomarchy-launch-tuiwhen available, falls back toxdg-terminal-exec - GNOME: registers a custom keybinding via
gsettings - KDE: appends a
[tmuxido]section to~/.config/kglobalshortcutsrc - Conflict detection per DE (Hyprland via
hyprctl binds -j, KDE via config file, GNOME via gsettings); suggests next free combo from a fallback list shortcutmodule (src/shortcut.rs) with full unit and integration test coverage- Icon and
.desktopfile installed byinstall.shfor launcher and window-rule integration
[0.7.1] - 2026-03-01
Fixed
- Interactive setup wizard now asks for a tmux layout when a window has 2 or more panes
- Layout selection shown in post-wizard summary
Changed
- README: Added ASCII art previews for each available tmux layout
[0.7.0] - 2026-03-01
Changed
install.shnow downloads from GitHub Releases- Self-update now queries the GitHub Releases API for new versions
- Releases are published to both Gitea and GitHub
[0.6.0] - 2026-03-01
Added
- Periodic update check: on startup, if
update_check_interval_hourshave elapsed since the last check, tmuxido fetches the latest release tag from the Gitea API and prints a notice when a newer version is available (silent on network failure or no update found) - New
update_checkmodule (src/update_check.rs) with injected fetcher for testability update_check_interval_hoursconfig field (default 24, set to 0 to disable)- Cache file
~/.cache/tmuxido/update_check.jsontracks last-checked timestamp and latest known version across runs
[0.5.2] - 2026-03-01
Added
- Test for
detect_archasserting asset name followstmuxido-{arch}-linuxformat
[0.5.1] - 2026-03-01
Fixed
- Tmux window creation now targets windows by name instead of numeric index, eliminating
"index in use" and "can't find window" errors when
base-indexis not 0 - Self-update asset name corrected from
x86_64-linuxtotmuxido-x86_64-linuxto match what CI actually uploads, fixing 404 on--update - CI release pipeline now deletes any existing release for the tag before recreating, preventing 409 Conflict errors on retagged releases
[0.5.0] - 2026-03-01
Added
- Interactive configuration wizard on first run with styled prompts
lipglossdependency for beautiful terminal UI with Tokyo Night theme colors- Emoji-enhanced prompts and feedback during setup
- Configure project paths interactively with comma-separated input
- Configure
max_depthfor project discovery scanning - Configure cache settings (
cache_enabled,cache_ttl_hours) - Configure default session windows interactively
- Configure panes within each window with custom names
- Configure startup commands for each pane (e.g.,
nvim .,npm run dev) - New
uimodule with styled render functions for all prompts - Comprehensive summary showing all configured settings after setup
[0.4.2] - 2026-03-01
Fixed
- Version mismatch: bumped Cargo.toml version to match release tag, fixing
--updatefalse positive
[0.4.1] - 2026-03-01
Added
- Self-update feature (
tmuxido --update) to update binary from latest GitHub release
[0.4.0] - 2026-03-01
Added
- Self-update feature (
tmuxido --update) to update binary from latest GitHub release - New
self_updatemodule with version comparison and atomic binary replacement --updateCLI flag for in-place binary updates- Backup and rollback mechanism if update fails
[0.3.0] - 2026-03-01
Added
- Dependency check for
fzfandtmuxat startup, before any operation - Automatic Linux package manager detection (apt, pacman, dnf, yum, zypper, emerge, xbps, apk)
- Interactive installation prompt when required tools are missing
depsmodule with injectableBinaryCheckertrait for unit testing without hitting the real system- Integration tests in
tests/deps.rs(11 tests using realSystemBinaryChecker) - Docker test suite in
tests/docker/with 15 scenarios simulating a fresh Ubuntu 24.04 user
Fixed
- Release pipeline
publishstep now readsDRONE_TAGvia awkENVIRONto prevent Drone's${VAR}substitution from wiping local shell variables before the shell runs
[0.2.4] - 2026-03-01
Fixed
- Coverage percentage calculation in CI (correct field from tarpaulin JSON output)
- Release pipeline trigger now matches
v*tag format instead of[0-9]*
[0.2.2] - 2026-02-28
Added
- Coverage badge generated by
cargo-tarpaulinin CI, hosted in Gitea Generic Package Registry - CI status, coverage, version, and Rust edition badges in README
[0.2.1] - 2026-02-28
Added
- Drone CI pipeline (
ci) runningcargo fmt --check,cargo clippy, andcargo teston every push and pull request
[0.2.0] - 2026-02-28
Added
- Unit tests for
cache,session, andconfigmodules - Integration tests for scan, session config, and cache lifecycle
Changed
- Refactored business logic into
lib.rsfor better testability;main.rsis now a thin entrypoint
[0.1.1] - 2026-02-28
Fixed
- Removed personal path references from default configuration and examples
[0.1.0] - 2026-02-28
Added
- Initial release of tmuxido