Commit Graph
95 Commits
Author SHA1 Message Date
Aram Drevekenin a6dbdad8ae feat: allow opting-out of scroll mode sync (#5532)
* feat: allow opting-out of scroll mode sync

* add pr
2026-08-25 11:02:57 +02:00
Aram Drevekenin 070b9c3d1c Fixes before 045 (#5492)
* fix: keep single-pane tabs when serializing, stop the busy-spin on IPC disconnect, and make client-less CLI actions either work or fail loudly

* fix: some tab closing/ordering issues

* test: integration coverage for OSC 133 selection, scroll retention, paste-read opt-in, theme actions, and input fragmentation

* rendering-width regression tests

* fix: forward alt+mouse events into a guest pane the client is descended into

* fix: alt + [] delay in non-kitty

* allow disabling mouse hover tips while keeping the other effects

* more osc133 actions

* fix: base mode race when changing keybinding presets

* fix compilation warnings

* make releases drafts and remove diagnostic logging

* add pr
2026-08-20 08:04:12 +02:00
Aram Drevekenin 3239d37b40 Native web mobile UI (#5441)
* initial chrome

* mobile state

* feat(mobile-web): implement browser→server actions (fit toggle, single-pane fullscreen, pane/tab focus) with fullscreen-truth reconciliation

* panning

* remove mobile plugin

* fix first load race

* improve web handshake

* rustfmt

* cleanups

* moar cleanups

* add bundle asset check to ci

* fix(mobile-web): tab-scope co-presence, yield single-pane to desktop clients, fix render-mode desync

* make mobile use no-ui fullscreen

* client side welcome screen for mobile

* attach web clients to first tab on tiles surface

* fix: opening new pane in mobile single mode no longer exits mobile single mode

* mobile chrome light theme support

* fix server races and flaky tests

* rustfmt

* fix flakes

* add pr
2026-08-05 15:32:53 +02:00
Aram Drevekenin 0e6e440402 Support the Kitty Image Protocol (#5428)
* initial implementation - kinda working

* tests and fixes

* fix bounds

* tests and compatibility fixes

* fix: cursor scroll, clears, deletes, key tolerance, and host id range

* fix: keep images alive across resize, relayout and history scroll

* anchor to lines, not pixels

* fix image/text alignments

* config to allow disabling

* fix pinned pane issue

* never let host graphics replies reach the keyboard parser

* fix nested session

* properly handle fullscreening a pane

* rustfmt

* cleanup of ignored test

* add pr
2026-07-31 19:19:49 +02:00
Aram Drevekenin ea07e2d5b6 Nested session handling (#5417)
* fix: theme query and updated pixel dimensions

* add no-ui-fullscreen key/action/capability

* protocol core

* integration test harness

* fix integration tests

* fix flaky tests

* nested ui (dimming) and directional focus initial implementation

* integration tests for nested ui dimming and directional focus

* initial full screen nesteed implementation

* fix: keep hidden floating panes hidden across nested no-ui fullscreen

* fix integration tests

* no ui fullscreen integration tests

* hardening behavior/tests

* fix(nested): re-derive descend/dim on host tab switch and new-tab so clicking dimmed chrome ascends

* initial modal implementation

* initial ui improvements

* fix integration tests

* improve nested selection ui

* nested session modal refactoring and tests

* improve integration test speed somewhat

* some ui adjustments

* simplify full/auto nested session handling

* hints in compact-bar

* guest stdin leak fix

* allow floating panes to be fullscreen

* make nested session handling configurable

* protocol reannounce

* refactor: naming confusion

* improve ux somewhat

* rustfmt

* merge fixes

* improve integration test rate limiting (fix ci)

* add pr
2026-07-27 18:24:37 +02:00
WeZZard cd50d723b5 feat(config): add mouse_scroll_resize option (#5283) 2026-07-17 09:20:38 +02:00
Aram Drevekenin 82c4a24d70 Stacked lists (#5331)
* initial implementation

* improve ui

* fix: stacked resize interaction

* title list boundaries fix

* fix BEL

* mouse parity

* float/embed + bulk-op features

* fix in-place bug

* improve ui

* config live reload

* improve ui

* fix issues, add exit status

* fix for serialization

* fix tests

* integration tests

* comments

* refactor: duplicate title logic

* refactor: consolidate logic

* fix: flaky tests

* add a stacked swap layout

* rustfmt

* fix e2e

* add pr
2026-07-04 16:27:08 +02:00
DawidPietrykowskiandAram Drevekenin ebd731b0ff feat(panes): FocusLastPane action (#4241)
* feat(panes): focus last pane (#4142)

* add tests

* add client id parameter to `add_floating_pane`

* add action for floating panes

* add tests for floating panes

* add keybinds to configs

* rebase fixes

* simplify focus logic when adding stacked pane

* formatting fix

* formatting fix 2

* fix: make sure expanding pane always focuses it for all clients in stack

* add pr

* fix rebase

---------

Co-authored-by: Aram Drevekenin <aram@poor.dev>
2026-06-25 18:12:51 +02:00
Aram Drevekenin b6a5ad0e5a Mobile layout (#5241)
* phase 2+3

* initial mobile plugin (phases 4 + 5 + 6)

* some bugfixes

* implement stage 7

* mobile interface improvements

* improve mobile pane/tab picker

* more ui improvements and fixes

* various mobile fixes

* some mobile fixes

* mobile keyboard triggering fix

* some cleanups

* initial plugin keyboard implementation

* improve keyboard hit zones

* improve keyboard

* pinch resize

* pinching fixes

* implement scrolling + panning

* initial keyboard resizing

* fix: mobile first render issues

* keyboard responsiveness

* fix some issues with the keyboard

* implement fit

* fix mobile scrolling

* add tilde cell to compact

* improve mobile keyboard

* fix starting mobile terminal font to natural keyboard size

* fix mobile resize blank screen flash

* shadow focus for mobile

* more keyboard fixes

* improve mobile status bar

* fix: render plugins to mobile clients

* allow opening new panes/tabs from the mobile plugin

* allow configuring

* fix dot slash

* improve mobile native soft keyboard interaction

* switch to native keyboard - initial implementation

* dirty hacks, but phone keyboard works now

* adjust keyboard help strip

* fix cursor in mobile

* fix keyboard and help line

* rename keyboard to modifier bar

* allow starting new session

* make clicking session name bring us to new session menu

* allow switching to desktop from the mobile ui

* mobile welcome screen initial implementation

* mobile welcome screen fixes

* various welcome screen fixes

* more mobile fixes

* moar mobile fixes

* mobile ui redesign

* fix: swallowed backspace bug

* switch session screen improvement

* touch up some interfaces

* refactor: move mobile state to own struct

* refactor: move fit resizing to the server

* remove dead flash code

* some cleanups

* refactor: clear fit on close

* refactor: improve fit api

* refactor: pane sync functions

* refactor: mouse

* refactor: break into modules

* some cleanups for the sessions screen

* fix scrolling and other stuff

* refactor: sessions screen

* refactor: panes screen

* refactor: new session screen

* refactor: menu screen

* refactor: render

* cleanups

* refactor: plugin structure

* remove unused welcome screen path

* Rename api

* refactor input.js

* cleanup useless comments

* fit/mobile refactoring

* take out the garbage

* remove more comments

* remove mobile flash on startup/attach

* fix: various mobile startup issues

* fix space bugs

* cleanup

* rustfmt

* fix windows build

* adjust modifier bar ui

* add pr
2026-06-10 16:50:55 +02:00
Aram Drevekenin e7fbd985cb chore(release): v0.44.0 2026-03-23 09:03:25 +01:00
f77cdec298 feat: add per-pane default foreground/background color support (#4737)
* feat: add per-pane default foreground/background color support

Add per-pane default foreground and background colors, configurable
through four surfaces:

- OSC 10/11 escape sequences (set/query) and OSC 110/111 (reset)
- CLI action: zellij action set-pane-color --pane-id <id> --fg/--bg
- Layout config: default_fg/default_bg properties on pane nodes
- Plugin API: set_pane_color() SDK function and PaneInfo read-side

Colors are applied at render time as a fallback when cells have no
explicit foreground/background, without mutating stored grid data.

Closes #4712

* refactor: address review feedback for pane color support

- Extract adjust_styles_for_custom_bg_fg in output/mod.rs
- Move color parsing (xparse_color) from tab into Grid
- Move color serialization (ansi_code_to_color_string) into Grid
- Pane trait now uses Option<String> for color getters/setters
- Add colors to session serialization (dump-layout)
- Add default_fg/default_bg to protobuf IPC schema to fix
  layout-in-session color loss
- Update example layout with tab-bar and status-bar

* fix stack overflow and ordering

* rustfmt

* update e2e snapshots

---------

Co-authored-by: Karl Bunch <karl@karlbunch.com>
Co-authored-by: Aram Drevekenin <aram@poor.dev>
2026-03-04 14:26:26 +01:00
Aram Drevekenin 8cd6286c3f remove sequence plugin (#4761) 2026-02-24 13:10:40 +01:00
Aram Drevekenin 690a1e4506 Allow resizing panes with the mouse (#4678)
* initial implementation

* improve edge detection

* fix up/down resize increment bug

* temporarily disable alt-mouse grouping

* fix inverting strategies and simplify edge detection

* resize of floating -> ctrl click, resize of tiled -> (ctrl)click

* fix old functionality and tests

* refactor and fixes

* refactor mouse click handling

* move mouse click handling to separate module

* resize scroll up/down with scroll wheel

* tests for scroll resize

* implement hover help

* fix occlusion bug

* allow disabling with config

* fix focus pinned pane on frame

* use strategy invert resize directly rather than function parameter

* remove annoying log message

* cleanups and formatting

* add pr
2026-02-04 11:59:21 +01:00
Aram Drevekenin 4a27ceea0d Layout manager (#4601)
* ad plugin override_layout command

* watch available layouts and report to plugin thread

* Event::AvailableLayoutInfo

* save layout command

* refactor save_layout

* fix api and permissions

* delete_layout API command

* edit layout in place API

* edit layout response through api

* propagate layout parsing errors

* generate random name plugin api

* dump stringified layout API

* synchronicity dump_session_layout and include LayoutMetadata in sync response

* parse_layout plugin api

* fix: default to default layout dir in plugin api

* rename_layout plugin command API

* initial implementation of multi-tab override

* apply to multiple tabs

* allow applying to only the active tab

* add tab/pane names to layout parsing metadata

* indicate is_builtin_plugin in PaneMetadata

* get_layout_dir plugin API command

* consolidate (and fix) is_builtin_plugin logic

* fix bad ret

* allow dumping the layout for just a specific tab in the session

* get focused pane and tab sync api

* color last substring variants

* add plugin

* update assets

* fix tests

* add e2e tests for new plugin apis

* update ui with new shortcut

* rustfmt

* docs(changelog): add PR
2026-01-13 11:27:07 +01:00
Aram Drevekenin 693fa082de Command Sequences, Blocking CLI Commands, New Plugin APIs (#4546)
* fix deadlocks

* initial logging to plugin implementation

* only log actions, include keys as Action::Write

* send actions to plugins as a new Event::UserAction

* add Action::Write metadata to plugin API

* run_action plugin command and permission

* block-until-exit/success/failure in the cli

* fix tests

* add NewBlockingPane to the plugin API

* run actions in a different thread so as not to block plugin execution

* add custom context to run_action flow

* fixes for floating pane z_index sorting and unknown protobuf events not crashing plugins

* always render the frame of pinned panes

* macros module

* add macros to config

* KDL macro parsing

* thread macros to the plugin thread

* get/update/delete macros from plugins

* add macros updated event

* add ability to rename macros

* fix deadlock

* fix z_indices with pinned unselectable panes bug

* allow plugins to opt-in to show_cursor

* change show_cursor(bool) to show_cursor(Option<coordinates>)

* test

* upgrade strum to allow proper enum iteration and case insensitive fromstr implementation for Actions

* better cwd tracking for exited command panes

* add initial panes to NewTab Action (no-op for now)

* add initial panes to cli newtab action

* make initial panes work

* add close_on_exit and start_suspended to the cli

* properly convert newtab action (potentially breaking for plugins)

* allow first pane in tab to block

* make distinction between opening panes with the last active client and the current pane in the cli

* improve some apis

* fix fixed size closing pane bug

* fix plugin cursor coordinates

* fix issues with launch-or-focus-plugin having to do with in-place and suppressed panes

* fix: set affected pane in replace pane

* allow setting a pane in place when it is suppressed and being focused (tests failing)

* fix tests

* some fixes for unsuppression of panes

* some fixes for completion_tx in new tab action

* allow replace/suppressed rather than replace/close only

* fixes for inserting suppressed panes without conflicts

* pane focus history and explicit unsuppress plugin api

* fix: prefer explicitly provided pane id in placement in actions that provide it

* fix floating pane coordinate change and z_index

* fix plugin cache dir to persist between sessions

* fix some stack focusing issues when adding panes without a client id

* make sure pinned panes are always above non-pinned floating panes

* allow plugins to copy to clipboard

* initial text styling additions implementations - buggy

* fix dimming issues

* remove extras, stay with just dim and unbold

* unbold and dim as indices

* allow ui components to render success/error colors

* allow plugins to send sigint/sigkill to processes, as well as receive their pid

* ui component fixes and send originating plugin context with run_action

* originating plugin for new tab too

* make plugn show pane command also expand stacked panes

* add sequence plugin

* remove macros

* remove snapshots

* add shortcut for sequence plugin

* fix plugin tests

* plugin tests for new apis

* update snapshots for sequence shortcut

* cleanups and formatting

* Event::CwdChanged

* moar cleanups

* remove some warnings

* remove mroe warnings

* remove dead code

* remove more dead code

* fix minor bugs in sequence plugin

* update sequence help and format codebase

* fix conditional blocking cli commands

* fix initial-command new-tab cli flag

* add client_ids to CwdChanged Event

* last fixes

* add pr
2025-12-11 14:25:42 +01:00
Aram Drevekenin 23bb542548 chore(release): v0.43.0 2025-08-05 08:56:42 +02:00
Aram DrevekeninandThomas Linford c5ac796880 Feature: web-client/server to share your sessions in the browser (#4242)
* work

* moar work

* notes

* work

* separate to terminal and control channels

* stdin working

* serve html web client initial

* serve static assets loaded with include_dir

* merge

* enable_web_server config parameter

* compile time flag to disable web server capability

* rustfmt

* add license to all xterm.js assets

* mouse working except copy/paste

* helpful comment

* web client improvements

- move script to js file
- add favicon
- add nerd font
- change title

TODO: investigate if font license embedded in otf is sufficient

* get mouse to work properly

* kitty keyboard support initial

* fix wrong type in preload link

* wip axum websocket handlers

- upgrade axum to v0.8.1, enable ws feature
- begin setup of websocket handlers
- tidy up imports

* replace control listener

* handle terminal websocket with axum

* cleanup Cargo.toml

* kitty fixes and bracketed paste

* fix(mouse): pane not found crash

* initial session switching infra

* add `web_client_font` option

* session switching, creation and resurrection working through the session manager

* move session module to zellij-utils and share logic with web-client

* some cleanups

* require restart for enable-web-server

* use session name from router

* write config to disk and watch for config changes

* rename session name to ipc path

* add basic panic handler, make render_to_client exit on channel close

* use while let instead of loop

* handle websocket close

* add mouse motions

* make clipboard work

* add weblink handling and webgl rendering

* add todo

* fix: use session name instead of patch on session switch

* use "default" layout for new sessions

* ui indication for session being shared

* share this session ui

* plugin assets

* Fix process crash on mac with notify watcher.

Use poll watcher instead of recommended as a workaround.

* make url session switching and creation work

* start welcome screen on root url

* scaffold control messages, set font from config

* set dimensions on session start

* bring back session name from url

* send bytes on terminal websocket instead of json

- create web client os input and id before websocket connection

* draft ui

* work

* refactor ui

* remove otf font, remove margins to avoid scrollbar

* version query endpoint for server status

* web session info query endpoint

* refactor: move stuff around

* add web client info to session metadata

* make tests pass

* populate real data in session list

* remove unnecessary endpoint

* add web_client node to config, add font option

* remove web_client_font

* allow disabling the web session through the config - WIP

* formalize sharing/not-sharing configuration

* fix tests

* allow shutting down web server

* display error when web clients are forbidden to attach

* only show sessions that allow web clients if this is a web client

* style(fmt): rustfmt

* fix: query web server from Zellij rather than from each plugin

* remove log spam

* handle some error paths better in the web client

* allow controlling the web server through the cli

* allow configuring the web server's ip/port

* fix tests and format code

* use direct WebServerStatus event instead of piggy-backing on SessionInfo

* plugin revamp initial

* make plugin responsive

* adjust plugin title

* refactor: share plugin

* refactor: share plugin

* add cors middleware

* some fixes for running without a compiled web server capability

* display error when starting the share plugin without web server support

* clarify config

* add pipelines to compile zellij without web support

* display error when unable to start web server

* only query web server when share plugin is running

* refactor(web-client): connection table

* give zellij_server_listener access to the control channel

* fixes and clarifications

* refactor: consolidate generate_unique_session_name

* give proper error when trying to attach to a forbidden session

* change browser URL when switching sessions

* add keyboard shortcut

* enforce https when bound to non-loopback ip

* initial authentication token implementation

* background color from theme

* initial web client theme config

* basic token generation ui

* refactor set config message creation

* also set body background

* allow editing scrollback for plugins too

* set scrollback to 0

* properly parse colors in config

* generate token from plugin

* nice login modals

* initial token management screen

* implement token authentication

* refactor(share): token management screen

* style(fmt): rustfmt

* fix(plugin): some minor bugs

* refactor(share): main screen

* refactor(share): token screen

* refactor(share): main

* refactor(share): ui components

* fix(responsiveness): properly send usage_width to the render function

* fix cli commands and add some verbosity

* add support for settings ansi and selection colors

* add cursor and cursor accent

* basic web client tests

* fix tests

* refactor: web client

* use session tokens for authentication

* improve modals

* move shutdown to ipc

* refactor: ipc logic

* serialize theme config for web client

* update tests

* refactor: move some stuff around to prepare for config hot reload

* config live reloading for the web clients

* change remember-me UI wording

* improve xterm.js link handling

* make sure terminal is focused on mousemove

* remove deprecated sharing indication from compact-bar

* gate deps and functionality behind the web_server_compatibility feature

* feat(build): add --no-web flag in all the places

* fix some other build flows

* add new assets

* update CI for no-web (untested)

* make more dependencies optional

* update axum-extra

* add web client configuration options

* gracefully close connections on server exit

* tests for graceful connection closing

* handle client-side reconnect when server is down

* fix: make sure ipc bus folder exists before starting

* add commands to manage login tokens from the cli

* style(fmt): rustfmt

* some cleanups

* fix(ux): allow alt-right-click on the web client without opening the context menu

* fix: prevent attaching to welcome screen

* fix: reload config issues

* fix long socket path on macos

* normalize config conversion and fix color gap in browser

* revoke session_token cookie if it is not valid

* fix: visual bug with multiple clients in extremely small screen sizes

* fix: only include rusqlite for the web server capability builds

* update e2e snapshots

* refactor(web): client side js

* some cleanups

* moar cleanups

* fix(tests): wait for server instead of using a fixed timeout

* debug CI

* fix(tests): use spawn_blocking for running the test web server

* fix(tests): wait for http rather than tcp port

* fix(tests): properly pass config path - hopefully this is the issue...

* success! bring back the rest of the tests

* attempt to fix the macos CI issue

* docs(changelog): add PR

---------

Co-authored-by: Thomas Linford <linford.t@gmail.com>
2025-06-23 19:19:37 +02:00
Aram Drevekenin a9f8bbcd19 feat(ux): improve multiple select (#4221)
* intercept/clear-intercept key APIs

* allow opening a pinned unfocused floating pane

* rework plugin

* improve some apis

* fix tests

* tests for pane groups

* more exact placement and tests

* plugin command permission and cleanup

* improve some multiselect ux

* improve plugin ui

* remove old status indicator

* allow moving plugin out of the way

* style(fmt): rustfmt

* update plugins

* remove old keybinding

* cleanups

* fix: only rename pane if needed

* changelog and some cleanups

* style(fmt): rustfmt
2025-06-03 17:15:32 +02:00
Aram Drevekenin 27c8986939 feat: multiple Select and Bulk Pane Actions (#4169)
* initial implementation with break panes to new tab

* break pane group left/right

* group embed/eject panes

* stack pane group on resize

* close pane group

* style(fmt): rustfmt

* fix tests

* group drag and ungroup with the mouse

* fix mouse hover for multiple clients

* fix for multiple clients

* multiple select plugin initial

* use real data in plugin

* adjust functionality

* fix some ux issues

* reflect group mouse group selections in plugin

* group/ungroup panes in Zellij

* highlight frames when marked by the plugin

* refactor: render function in plugin

* some ui responsiveness

* some more responsiveness and adjust hover text

* break out functionality

* stack functionality

* break panes left/right and close multiple panes

* fix(tab): only relayout the relevant layout when non-focused pane is closed

* status bar UI

* embed and float panes

* work

* fix some ui/ux issues

* refactor: move stuff around

* some responsiveness and fix search result browsing bug

* change plugin pane title

* differentiate group from focused pane

* add keyboard shortcut

* add ui to compact bar

* make boundary colors appear properly without pane frames

* get plugins to also display their frame color

* make hover shortcuts appear on command panes

* fix: do not render search string component if it's empty

* BeforeClose Event and unhighlight panes on exit

* some UI/UX fixes

* some fixes to the catppuccin-latte theme

* remove ungroup shortcut

* make some ui components opaque

* fix more opaque elements

* fix some issues with stacking pane order

* keyboard shortcuts for grouping

* config to opt out of advanced mouse actions

* make selected + focused frame color distinct

* group marking mode

* refactor: multiple-select plugin

* adjust stacking group behavior

* adjust flashing periods

* render common modifier in group controls

* add to compact bar

* adjust key hint wording

* add key to presets and default config

* some cleanups

* some refactoring

* fix tests

* fix plugin system tests

* tests: group/ungroup/hover

* test: BeforeClose plugin event

* new plugin assets

* style(fmt): rustfmt

* remove warnings

* tests: give plugin more time to load
2025-04-29 20:52:17 +02:00
Aram Drevekenin cad0888920 chore(release): v0.42.0 2025-03-17 09:06:01 +01:00
Aram Drevekenin 7aaa7aea8f feat(ux): tips on startup (#3988)
* add some tips

* refactoring and max tip index

* add config to disable release notes and startup tips

* allow dismissing startup tips from plugin

* random tip at startup

* custom launch about

* fix tests

* style(fmt): rustfmt
2025-02-13 17:12:47 +01:00
Aram Drevekenin 407120b872 feat(ui): stacked resize (#3957)
* work

* tests and initial notes for refactoring

* refactor(stacked-panes): break out pane

* vertical functionality working with a single stack

* refactor: break out pane from stack

* fix: properly support multiple stacks in tab

* combining multiple stacks vertically

* vertical resizing working for all cases

* base functionality and tests

* some UX tweaking

* final functionality for directionless stacked increase

* some cleanups

* moar cleanups

* refactor: stacked resize

* fix: issue where resizing stacked geoms to 0 would cause them to overflow afterwards

* fix: handle uneven stacking

* functionality with tombstones

* new open new pane functionality

* match decrease increment behavior to increase one and fix some issues

* set fullscreen if maxed out

* allow splitting stacks

* fix tests mostly by parameterizing stacked_resize

* add tests

* some cleanups

* style(fmt): rustfmt

* add to config

* disable ci cache

* is_stacked => stacked

* docs(config): remove duplication
2025-01-28 21:24:07 +01:00
Aram Drevekenin dd291e2a1f feat(ux): pin floating panes (#3876)
* working

* ui indication

* add keybinding

* add to plugin panes

* fix with multiple cursors

* toggle with the mouse

* fix e2e tests and add new one

* some cleanups

* add to layouts

* make mouse click more lenient

* allow setting a new floating pane as pinned

* make toggle work throughthe command line

* add to plugin api

* get tests to pass

* style(fmt): rustfmt
2024-12-16 16:03:20 +01:00
Aram Drevekenin 4b806795c3 chore(release): v0.41.0 2024-11-04 09:18:03 +01:00
Aram Drevekenin 45cc452b04 chore(release): v0.40.0 2024-04-16 09:15:13 +02:00
Aram Drevekenin 4e34c503d0 chore(release): v0.39.0 2023-11-07 08:36:31 +01:00
Aram Drevekenin 11fe4b3fb7 chore(release): v0.38.0 2023-08-28 09:38:52 +02:00
Aram Drevekenin 9c4c78d5a3 chore(release): v0.37.0 2023-06-18 14:17:39 +02:00
Jae-Heon Ji ff36798c9e feat: provide default themes (#2307)
* refactor: move themes to zellij-assets

* feat: add theme to the binary

* chore: move new theme from example to assets
2023-04-27 00:26:07 +09:00
EdenEast 76805cb529 feat(themes): add nightfox themes (#2384) 2023-04-26 23:26:08 +09:00
Cale Flatley 2f0b4d048e chore(assets): update layout examples to .kdl from .yaml (#2250) 2023-03-15 18:18:29 +01:00
Oleks GnatovskyiandOleks Pickle 96b3ce29a2 chore(themes): add menace (#2257)
Co-authored-by: Oleks Pickle <aleks.work2222+gh@gmail.com>
2023-03-15 16:47:05 +01:00
Aram Drevekenin 01777ebaad chore(release): v0.35.0 2023-03-07 09:23:57 +01:00
Aram Drevekenin d0a780dd7c chore(repo): revert theme pr (#2229)
* Revert "feat: add self-provided themes (#2224)"

This reverts commit 63bfe9c5e4.

* Revert "docs(changelog): add self-provided themes"

This reverts commit 364f0e7c44.
2023-03-06 21:56:49 +01:00
Jae-Heon Ji 63bfe9c5e4 feat: add self-provided themes (#2224)
* chore: move themes to default assets

* feat: add self-provided themes

* fix: embed themes into binary
2023-03-06 23:36:12 +09:00
Aral Balkan 199e566bf7 feat(themes): add pencil light (#2157) 2023-02-13 18:01:33 +01:00
Cason AdamsandJae-Heon Ji ad21f81ac0 add tmux close pane key (#2058)
* add tmux close pane key

* chore: update snapshots for new keybind

Co-authored-by: Jae-Heon Ji <atx6419@gmail.com>
2023-01-03 22:47:39 +09:00
Aram Drevekenin 66593ec41a chore(release): v0.34.0 2022-12-09 09:14:03 +01:00
Jae-Heon Ji 924488de6f fix(themes): missing tokyo-night-dark theme (#1972) 2022-11-30 21:51:21 +09:00
Jae-Heon Ji d4ae16ed58 fix(themes/catppuccin): black and white inverted (#1953) 2022-11-17 23:16:09 +09:00
Jae-Heon Ji c344902e5e feat(themes): add catppuccin themes (#1937)
* feat(themes): add catppuccin themes

* chore: add official link
2022-11-16 21:47:01 +09:00
Aram Drevekenin c086e33ed3 chore(release): v0.33.0 2022-11-10 09:50:57 +01:00
Serif-7andAram Drevekenin 46dae69f56 docs(examples): create kanagawa.kdl (#1913)
* Create kanagawa.kdl

* style(format): adjust indentation

Co-authored-by: Aram Drevekenin <aram@poor.dev>
2022-11-08 16:30:20 +01:00
matu3ba ec023197f6 fix(examples): convert ALT-centered config to kdl and smoothify (#1910)
- Alt-hjkl for pane movements everywhere
- faster pane creation in pane mode with hjkl
- add space to exit mode, if it does not break workflow
- dense: only 127 LOC keybindings, 7 LOC general config
- comment-heavy (for potential useful things): 61 LOC comments
2022-11-08 15:56:16 +01:00
Jae-Heon Ji 9f0b2ce3e6 docs(example): update README.md (#1877) 2022-10-29 01:01:23 +09:00
Jae-Heon Ji 38d23d7218 feat: support multiple themes in one file (#1855)
* feat: support multiple themes in a one file

* chore: update example of multiple themes to gruvbox
2022-10-28 22:48:51 +09:00
Thomas Linford 0857ac1f8a fix(themes): fix error in everforest themes (#1874) 2022-10-28 13:30:14 +02:00
Nrishinghananda Roy 587a0d2f5a Add everforest theme in theme examples (#1873) 2022-10-28 13:11:48 +02:00
Aram Drevekenin 5793af7655 chore(version): bump development version 2022-10-25 11:43:53 +02:00
Aram Drevekenin 79bf6ab868 feat(config): switch to kdl (#1759)
* chore(config): default kdl keybindings config

* tests

* work

* refactor(config): move stuff around

* work

* tab merge layout

* work

* work

* layouts working

* work

* layout tests

* work

* work

* feat(parsing): kdl layouts without config

* refactor(kdl): move stuff around

* work

* tests(layout): add cases and fix bugs

* work

* fix(kdl): various bugs

* chore(layouts): move all layouts to kdl

* feat(kdl): shared keybidns

* fix(layout): do not count fixed panes toward percentile

* fix(keybinds): missing keybinds and actions

* fix(config): adjust default tips

* refactor(config): move stuff around

* fix(tests): make e2e tests pass

* fix(kdl): add verbose parsing errors

* fix(kdl): focused tab

* fix(layout): corret default_tab_template behavior

* style(code): fix compile warnings

* feat(cli): send actions through the cli

* fix(cli): exit only when action is done

* fix(cli): open embedded pane from floating pane

* fix(cli): send actions to other sessions

* feat(cli): command alias

* feat(converter): convert old config

* feat(converter): convert old layout and theme files

* feat(kdl): pretty errors

* feat(client): convert old YAML files on startup

* fix: various bugs and styling issues

* fix: e2e tests

* fix(screen): propagate errors after merge

* style(clippy): lower clippy level

* fix(tests): own session_name variable

* style(fmt): rustfmt

* fix(cli): various action fixes

* style(fmt): rustfmt

* fix(themes): loading of theme files

* style(fmt): rustfmt

* fix(tests): theme fixtures

* fix(layouts): better errors on unknown nodes

* fix(kdl): clarify valid node terminator error

* fix(e2e): adjust close tab test

* fix(e2e): adjust close tab test again

* style(code): cleanup some comments
2022-10-05 07:44:00 +02:00