Commit Graph
130 Commits
Author SHA1 Message Date
雷电芽衣 f3601432c4 CI: Linux tests in the Gitea job's image, since the hosted image's zsh and fish break the shell tests
CI / macos (push) Canceled after 0s
CI / windows (push) Canceled after 0s
CI / linux (push) Canceled after 0s
2026-10-19 20:30:26 -04:00
雷电芽衣 616bec2615 Move to GitHub: ELY-Open-Source/ELYTerminal, Ely from GitHub, CI on the org's runners, releases and the update check through GitHub 2026-10-19 20:26:38 -04:00
ZacharyZhang-NY 0a30760453 T65: a window property marks a move from WM_ENTERSIZEMOVE to WM_EXITSIZEMOVE, so a window blurred mid-move, which gpui gives acrylic at once, takes the clear accent again until the move ends 2026-10-19 19:47:55 -04:00
ZacharyZhang-NY 1384ef5dbe T65: on Windows 10 a blurred window's acrylic clears while it moves or sizes, which a user asked for in issue #3, where a drag trailed the pointer by seconds: below build 22000 the main window's procedure takes gpui's clear accent at WM_ENTERSIZEMOVE and its acrylic again at WM_EXITSIZEMOVE; Windows 11 keeps its acrylic 2026-10-19 19:37:10 -04:00
ZacharyZhang-NY ca3809b37c T63: a rename's field that closes while it still holds the window's focus gives it to the shown terminal, since a window that goes inactive blurs the field yet keeps the focus there, which left the terminal deaf to keys once the window came back 2026-10-19 19:28:02 -04:00
ZacharyZhang-NY 3085a940ad T63: a double press on a session's row renames it, which a user asked for after 0.1.6: Ely's ListItem::editor, added for this, draws a field in the title's place; Enter keeps the name, Escape drops it, a blur keeps it; the name stands over the program's title in the row, the header and the window's title until renamed again, and an empty one gives the title back; Ely pinned to 7f7a715 2026-10-19 19:19:09 -04:00
ZacharyZhang-NY 760f054976 T62: Ely's shirt and back hair run on below the edge she holds, past her highest lift, which a user asked for after 0.1.6, where a hop lifted her off the window and showed a gap under her collar and hands 2026-10-19 19:00:31 -04:00
ZacharyZhang-NY 0aee06dc27 T61: the terminal logs each caret the input method asks for and each move of the caret; on the owner's Windows PC, WeType put the candidate box at the caret in 23 compositions, so the owner closed the jump a user found unreproduced 2026-10-19 18:51:41 -04:00
ZacharyZhang-NY 5d131e51d8 T60: each fallback picker is keyed by its input, not its place, since Ely's combobox keeps its state by id and listens to the input it first met; after a removal moved the inputs, a picker keyed by place wrote another row's family into its new input at the next blur 2026-10-19 17:48:06 -04:00
ZacharyZhang-NY 5f8ea89838 T60: removing a fallback drops that row's input and the focus, so no input keeps, or saves on Enter, the family removed; gpui's Linux path, which carries a second fallback into the next character, is recorded as the owner chose 2026-10-19 17:38:32 -04:00
ZacharyZhang-NY cb32f00623 T60: fallback fonts, which a user asked for after 0.1.6: font_fallbacks lists installed families the terminal tries in order for a character Font family lacks, through gpui's Font::fallbacks; each must load as the terminal draws it; Settings › Appearance lists them under Family, each a FontPicker with a remove button, then Add fallback 2026-10-19 17:08:54 -04:00
ZacharyZhang-NY 566056257f T66: cmd doubles the backslashes ending a dropped path, since a program's parser reads one before the closing quote as a quote, as C:\ ends, and a path holding !, which cmd expands inside quotes under /v:on, stops the drop 2026-10-19 16:59:47 -04:00
ZacharyZhang-NY 887378ade3 T66: a dropped path stays literal for the session's own shell, as its name says: POSIX shells escape ^ and ~ too, which zsh's extendedglob reads; PowerShell, Windows' default, single-quotes it with its quotes doubled, so $, $( ) and ; stay text; cmd double-quotes it and refuses a %, which it expands inside quotes 2026-10-19 16:51:51 -04:00
ZacharyZhang-NY 545fb46249 T66: files dropped on the terminal type their paths, which a user asked for after 0.1.6, as macOS Terminal does: each escaped for the shell, or quoted on Windows when it holds a space, followed by a space, sent as a paste; a path not in UTF-8 or holding a control character stops the drop; the font code moves from view.rs to fonts.rs, which view.rs needed room for; shot plays a drop with drop@x,y 2026-10-19 16:40:49 -04:00
ZacharyZhang-NY 28d761572d T59: the newest line typed is the one of the highest number, not the lowest on the screen, so a prompt drawn at the top over older lines takes its clicks; a press goes no lower than that line's last row or the cursor's 2026-10-19 16:22:50 -04:00
ZacharyZhang-NY 84364ce03e T59: OSC 133 B stamps the line typed after a prompt with a link of its own, numbered by the commands ended, so a shell whose prompt prints nothing, as fish's empty prompt, takes clicks from its first typed cell, and fish's right prompt drawn again at each key keeps the line 2026-10-19 16:09:11 -04:00
ZacharyZhang-NY e74ea745fe T59: a click goes to a shell that takes clicks only past its prompt's last cell before the cursor, never on a prompt cell, so a click on fish's $ leaves its cursor where it stood 2026-10-19 15:40:51 -04:00
ZacharyZhang-NY 0c55d41026 T59: a shell whose prompt says click_events, as fish from 4.1 does, hears the click as an SGR press and moves its own cursor, since fish moves by code point and its redraws drop the wrap flags a count follows; a press let go in another cell, or released while the program tracks the mouse, moves nothing 2026-10-19 15:34:17 -04:00
ZacharyZhang-NY 82cfe91810 T59: a plain click on the line the shell reads moves its cursor there, which a user asked for after 0.1.6, as Ghostty's cursor-click-to-move: while OSC 133 says the shell reads a line, a click that stays in its cell, past the prompt the cursor's line shows, sends Left or Right arrows through the key encoder, one per character, soft wraps joined; never on the alternate screen, under mouse tracking or with a selection 2026-10-19 15:18:17 -04:00
ZacharyZhang-NY 8a9941bfd2 T58: the terminal shows a scrollbar over its history, which a user asked for in issue #2 after 0.1.5, since a program that takes the mouse takes the wheel: a thumb along the right edge, in Ely's sizes and colors, stands where the view stands, and a drag moves the view through the history; none shows without history
CI / platforms (windows-latest) (push) Successful in 1m35s
CI / platforms (ubuntu-24.04) (push) Successful in 2m44s
CI / macos (push) Successful in 14m37s
2026-10-19 11:04:48 -04:00
ZacharyZhang-NY 55250f49f5 T56: Settings › Terminal checks for updates, which the owner asked for after 0.1.5: under Ely, a switch, on by default, checks at start and once a day through curl and Gitea's API, and Check now checks at once; the row says what the check found, a newer release brings Download, which opens its page, and one an automatic check finds posts a notification whose press opens it
CI / macos (push) Canceled after 0s
CI / platforms (windows-latest) (push) Canceled after 1m24s
CI / platforms (ubuntu-24.04) (push) Canceled after 1m32s
2026-10-19 10:39:13 -04:00
ZacharyZhang-NY 17e91aafef T55: a drag moves Ely along the edge she stands on, which the owner asked for after 0.1.5: on macOS, Windows and X11 her window follows the pointer's place on the screen, on Wayland her popup opens again where she is let go; she moves by whole points inside the pane, and the settings keep where she stands as ely_left, 140 by default
CI / platforms (ubuntu-24.04) (push) Successful in 1m11s
CI / platforms (windows-latest) (push) Successful in 1m33s
CI / macos (push) Canceled after 11m8s
2026-10-19 10:30:19 -04:00
ZacharyZhang-NY a6c044f009 T53: Ely's window shows nothing but her, which the owner asked for after a user's 0.1.4 drew a hairline along the top of her box on macOS: her panel turns borderless as it is glued, style mask 0x8081 to 0x80, without the titled frame gpui's popup carries, whose edge macOS draws; a failed glue closes her window, where it stayed open, unplaced, while the log said she did not show
CI / platforms (windows-latest) (push) Successful in 1m32s
CI / platforms (ubuntu-24.04) (push) Successful in 1m39s
CI / macos (push) Canceled after 0s
2026-10-19 02:50:23 -04:00
ZacharyZhang-NY 0eb8fc5c4e T52: a press wakes Ely from her doze, which the owner asked for after 0.1.4, where only a new mood woke her: calm lasts 5 minutes from her mood's start or the last press before she dozes, so after a press she stays awake 5 minutes, then dozes again
CI / platforms (ubuntu-24.04) (push) Successful in 1m29s
CI / platforms (windows-latest) (push) Successful in 1m31s
CI / macos (push) Canceled after 0s
2026-10-19 02:35:13 -04:00
ZacharyZhang-NY 8b647982ef T51: round 2 fix: on X11 the room above runs to the top of the RandR monitor holding most of the pane, as Windows and macOS pick a window's display, where the monitor under her bottom left corner put her over the gap beside a staggered monitor
CI / platforms (ubuntu-24.04) (push) Successful in 1m30s
CI / platforms (windows-latest) (push) Successful in 1m47s
CI / macos (push) Successful in 11m54s
2026-10-19 02:30:45 -04:00
ZacharyZhang-NY e6c0c14d1b T51: round 1 fix: on X11 the room above runs to the top of the RandR monitor under her, or of _NET_WORKAREA where that lies lower, since the work area spans every monitor; on Wayland she checks twice a second where the window's size and state put her anchor, counted from the pane as gpui counts it, and opens there again when it moved, since gpui hears a change of state alone as no change of bounds and gives an unseen popup no frames; tiling counts where gpui reports it, for a window it draws itself; her tests move to pet/tests.rs, keeping pet.rs under 500 lines
CI / platforms (windows-latest) (push) Successful in 1m33s
CI / platforms (ubuntu-24.04) (push) Successful in 1m42s
CI / macos (push) Successful in 12m44s
2026-10-19 02:23:59 -04:00
ZacharyZhang-NY 15ef5d52d0 T51: Ely stands inside the main window on its pane's bottom edge while her box would not fit above it, which the owner asked for after 0.1.4, where on a window at the screen's top or full screen she stuck between the menu bar and the terminal: each platform measures the room above the pane up to its display's work area, macOS's visibleFrame, Windows' rcWork, X11's _NET_WORKAREA, and on Wayland, which tells a client no place, she stands inside while the window is full screen, maximized or tiled at its top
CI / platforms (windows-latest) (push) Successful in 1m38s
CI / platforms (ubuntu-24.04) (push) Successful in 2m21s
CI / macos (push) Successful in 12m50s
2026-10-19 01:55:59 -04:00
ZacharyZhang-NY a9be8ab8c4 T49: round 1 fix: a change of mood, though the act stays as inside a wink, and a press each ease her from the pose she was in, where a mood that changed mid-hop dropped her 12 points and an old finish cleared mid-glance snapped her eyes back; her brows ease with her
CI / platforms (ubuntu-24.04) (push) Successful in 1m16s
CI / platforms (windows-latest) (push) Successful in 1m52s
CI / macos (push) Successful in 16m9s
2026-10-18 14:49:34 -04:00
ZacharyZhang-NY 9d9144f25e T49: Ely moves all the time, as the films move her, which the owner asked for after 0.1.4, where she stood still but for a press: rigged from the icon's paths in layers of one color, each a mask gpui moves with a matrix of its own at every frame, she breathes, sways, blinks and glances, and each mood moves her, easing from one act to the next; shot's snap writes a child window's frames
CI / platforms (ubuntu-24.04) (push) Successful in 1m38s
CI / platforms (windows-latest) (push) Successful in 2m2s
CI / macos (push) Successful in 13m50s
2026-10-18 14:36:57 -04:00
ZacharyZhang-NY e4b0107a88 T48: a place carries her bottom left corner, and her window sizes her at the DPI it has when the place lands, where a place sized when it was posted, waiting behind one that changed her DPI, left her the old DPI's size on the new; a keep's log names both DPIs
CI / platforms (ubuntu-24.04) (push) Successful in 1m46s
CI / platforms (windows-latest) (push) Successful in 2m4s
CI / macos (push) Successful in 13m59s
2026-10-18 14:13:51 -04:00
ZacharyZhang-NY 47826ee262 T48: round 3 fix: a keep moves her only while its DPI is still hers, so it changes no DPI and posts no other, where a keep whose DPI had passed while two places piled up set her DPI back and forth
CI / platforms (windows-latest) (push) Successful in 1m59s
CI / platforms (ubuntu-24.04) (push) Successful in 2m44s
CI / macos (push) Successful in 14m3s
2026-10-18 13:24:49 -04:00
ZacharyZhang-NY f7e5563a71 T48: round 2 fix: at a new DPI her corner follows once the move that brought it is done, and only where her box would lie mostly on a display of that DPI; else Windows' rect stands, since between two displays side by side a corner kept always set her DPI back and forth; the tests move beside the module
CI / platforms (windows-latest) (push) Successful in 1m55s
CI / platforms (ubuntu-24.04) (push) Successful in 2m27s
CI / macos (push) Successful in 16m13s
2026-10-18 13:16:13 -04:00
ZacharyZhang-NY 8ddf470f73 T48: round 1 fix: her height is her own DPI's and her bottom the pane's top whatever the two windows' DPI, where the main window's scale had put her 62 pixels into the terminal or above it; and when a move takes her to a display of another DPI, gpui takes the rect Windows suggests while she keeps her bottom left corner
CI / platforms (windows-latest) (push) Successful in 1m58s
CI / platforms (ubuntu-24.04) (push) Successful in 2m15s
CI / macos (push) Successful in 14m3s
2026-10-18 12:55:30 -04:00
ZacharyZhang-NY c1cdddf07e T48: Ely on Windows in a box her own size, as a user found her broken in 0.1.4: gpui opened her popup as large as the display when the middle of the box asked for lay off it, as an overlapped window Windows framed, so she sat at its bottom over the terminal and it took the clicks; her window becomes a bare popup, and the glue posts it her size, from her own DPI, with her place on the pane's top edge, since gpui hears a new size only outside its own updates
CI / platforms (windows-latest) (push) Successful in 2m2s
CI / platforms (ubuntu-24.04) (push) Successful in 2m30s
CI / macos (push) Successful in 13m37s
2026-10-18 12:43:25 -04:00
ZacharyZhang-NY 6df7534e7f T46: round 1 fixes: Ely's window never takes the keys, a panel key only if needed on macOS and on Windows a window that answers a press's activation with none; she opens with the sessions' mood; she stands 140 points in or less on a narrow pane, so she holds its edge at any width, and on Wayland, whose popup keeps the place it opened at, she opens again when a new width moves her
CI / platforms (ubuntu-24.04) (push) Successful in 1m53s
CI / platforms (windows-latest) (push) Successful in 2m2s
CI / macos (push) Canceled after 9m52s
2026-10-18 05:26:13 -04:00
ZacharyZhang-NY 9aeb3f3552 T46: Ely peeks over the main window's top edge from behind it, as the owner asked after the 0.1.3 film: her head and fingers from the icon's paths in a transparent window of her own, kept on the edge as each platform allows, macOS's child window, Windows' owned popup, X11's popup moved and stacked above the frame, Wayland's anchored popup; ten faces follow the most pressing of the sessions' marks, with hops, a shake and a rise; a press winks; Settings, Terminal, Ely turns her off
CI / platforms (windows-latest) (push) Failing after 10s
CI / platforms (ubuntu-24.04) (push) Successful in 1m52s
CI / macos (push) Successful in 12m52s
2026-10-18 05:06:59 -04:00
ZacharyZhang-NY c30bd51fba T45: round 2 fix: while herdr takes the mouse every link press is herdr's again, its rules with it, as its client and docs say: it keeps its panes' OSC 8 targets from the terminal so that it alone answers Ctrl-press, and opens web links only, so the terminal opening a file:// label it sees opened the wrong target; Shift with the press, herdr's named way past it, lets the terminal open what it sees, a file:// link too
CI / platforms (windows-latest) (push) Failing after 10s
CI / platforms (ubuntu-24.04) (push) Successful in 1m44s
CI / macos (push) Canceled after 0s
2026-10-18 04:54:55 -04:00
ZacharyZhang-NY af66a70947 T45: round 1 fix: herdr's client opens only http and https links, so inside herdr a link the app finds of another kind, file:// among them, the app opens itself; web links and links the app cannot see still go to herdr
CI / platforms (windows-latest) (push) Failing after 10s
CI / platforms (ubuntu-24.04) (push) Successful in 1m57s
CI / macos (push) Canceled after 0s
2026-10-18 04:46:06 -04:00
ZacharyZhang-NY ae3de244c2 T45: Cmd-press, Ctrl-press off macOS, opens links inside herdr too: herdr wraps a long URL at its pane's edge and passes no OSC 8 target on, so the app opened a cut URL or nothing; while herdr's client leads the session and tracks the mouse the press goes to herdr, which opens its pane's link whole and underlines it under the key, Cmd heard as Ctrl on macOS; elsewhere the app opens links as before
CI / platforms (windows-latest) (push) Failing after 11s
CI / platforms (ubuntu-24.04) (push) Successful in 1m24s
CI / macos (push) Canceled after 0s
2026-10-18 04:35:49 -04:00
ZacharyZhang-NY 3f47134928 T44: round 2 fix: on Windows a repeat goes as a record where its press did, one that types after its modifiers came up too, so its release still goes as a record and herdr frees the key; the choice is one function, records, tested on every system
CI / platforms (windows-latest) (push) Failing after 11s
CI / platforms (ubuntu-24.04) (push) Successful in 10m38s
CI / macos (push) Successful in 14m37s
2026-10-18 04:28:55 -04:00
ZacharyZhang-NY 6f8bfaeff8 T44: round 1 fixes: under kitty's flags the legacy bytes a key falls back to keep gpui's character, so Option-Shift-[ with only events set sends ESC { again; a key that is down is known by its key code on macOS and its virtual key on Windows, so its release goes out, as a record where its press did, though Shift came up first; shot posts a press or a release alone with down: and up:
CI / platforms (windows-latest) (push) Failing after 11s
CI / platforms (ubuntu-24.04) (push) Successful in 9m23s
CI / macos (push) Successful in 24m8s
2026-10-18 04:21:52 -04:00
ZacharyZhang-NY fc10c4d491 T44: herdr's shortcuts work, which a user found dead: under kitty's flags a key Shift makes a symbol of goes as its own key with Shift, the symbol its alternate, as Ghostty sends it, read from the layout gpui reads on macOS and Windows; on Windows keys that type no text go as win32-input-mode records, which ConPTY asks for and herdr reads, as Windows Terminal sends them; on Linux gpui keeps no key code, which the docs say; shot learns wait, n and ]
CI / platforms (windows-latest) (push) Failing after 19s
CI / macos (push) Failing after 2m56s
CI / platforms (ubuntu-24.04) (push) Successful in 6m41s
2026-10-18 04:00:24 -04:00
ZacharyZhang-NY eb9610988e T42: a session's status mark moves, as the owner asked after aicss.dev's orbs: 3 by 3 dots in the state's color; work ripples from the centre, progress fills the outer ring clockwise from the top, waiting stays lit and dips twice, error, done and idle draw an X, a check and a ring, then hold; the window draws at the marks' 80 ms steps only while one moves; no review, as the owner asked
CI / platforms (windows-latest) (push) Successful in 1m44s
CI / platforms (ubuntu-24.04) (push) Successful in 3m16s
CI / macos (push) Successful in 14m14s
2026-10-17 22:38:46 -04:00
ZacharyZhang-NY 140c2a5741 T40: review round 2: the session's title comes from the tap alone, in the output's order, so the row, the window and a notification name it alike: OSC 0 and 2 read as vte splits them, 15 parts past the number, and up to 65536 bytes; alacritty's title events, which come later, pass by, and a full reset no longer sets the options again to send one
CI / platforms (ubuntu-24.04) (push) Successful in 1m31s
CI / platforms (windows-latest) (push) Successful in 1m37s
CI / macos (push) Canceled after 0s
2026-10-17 16:17:55 -04:00
ZacharyZhang-NY 22752a28db T40: review round 1: a notification names the session as the output stands at its place: the tap follows OSC 0 and 2, the title stack's CSI 22 t and 23 t and a full reset as alacritty does, and sends each title in order, since alacritty's own title events come after the tap's; one write and split writes post the same
CI / platforms (ubuntu-24.04) (push) Successful in 1m21s
CI / platforms (windows-latest) (push) Successful in 1m48s
CI / macos (push) Canceled after 7m24s
2026-10-17 16:06:10 -04:00
ZacharyZhang-NY 52576bb8ee T40: a press whose record went, a twin Linux stacked or one past the 64 kept, still shows its session; on Linux the body goes as markup's text; only a command C started posts its end, so a prompt bash 3.2 draws again posts nothing; the posting conditions are pure and tested; the decision says what macOS, Wayland and gpui's log do at a press and outside the bundle
CI / platforms (ubuntu-24.04) (push) Successful in 1m29s
CI / platforms (windows-latest) (push) Successful in 1m34s
CI / macos (push) Successful in 14m7s
2026-10-17 15:51:46 -04:00
ZacharyZhang-NY efda50f142 T40: a session posts at each turn of its row to waiting, done or error, as the row's waiting mark is set, so one output posts as two would
CI / platforms (ubuntu-24.04) (push) Successful in 1m23s
CI / platforms (windows-latest) (push) Successful in 1m48s
CI / macos (push) Successful in 12m44s
2026-10-17 15:43:12 -04:00
ZacharyZhang-NY 3aaeb36bd1 T39: review round 2: a hidden session whose row turns to waiting marks it until shown, though it went on within the same output, so one output marks as two would; a change of herdr's records draws the view again, so an open hover follows them though the state holds 2026-10-17 15:41:39 -04:00
ZacharyZhang-NY 31de5e44ef T40: sessions post system notifications through gpui's: each terminal posts its own in the order its output asks, when its row turns to waiting, done or error, when a command ends, and when a program asks through OSC 9, 777 or 99, only while its window is inactive or it is hidden, one every 3 seconds, titled with the session's name; a press goes to the window whose session posted it and shows it; OSC 99 hears untracked closes, alive lists what lives, in order before a later DA1, a close and w take one back where gpui can, a closed session's too, and the query says what holds where
CI / platforms (windows-latest) (push) Successful in 1m51s
CI / platforms (ubuntu-24.04) (push) Successful in 2m2s
CI / macos (push) Successful in 12m36s
2026-10-17 15:36:28 -04:00
ZacharyZhang-NY 53b8978dff T39: review round 1: the view notes the state its row shows after each change it hears and tells the workspace of each, so a hidden session that waits, works and waits again in one output starts waiting again; hover reads the records and the last command's status, which the view now keeps, at each frame, stays under the pointer and scrolls within the window; the progress ring holds Ely's loader, since its track can match a selected row's ground
CI / platforms (windows-latest) (push) Successful in 1m34s
CI / platforms (ubuntu-24.04) (push) Successful in 2m8s
CI / macos (push) Successful in 16m38s
2026-10-17 15:12:29 -04:00