Skip to content

Hey, check this out. #45

Open
OrelSokolov wants to merge 20 commits intoHarzu:mainfrom
OrelSokolov:main
Open

Hey, check this out. #45
OrelSokolov wants to merge 20 commits intoHarzu:mainfrom
OrelSokolov:main

Conversation

@OrelSokolov
Copy link
Copy Markdown

Actually this is AI ( not human ) fixes for some common terminal features, but you can take a few ones if you like.

OlegKrakenTeam2 and others added 15 commits February 5, 2026 21:14
This method allows applications to reset the terminal scroll position
to the bottom, which is useful after clearing the terminal screen.

Fixes scrolling issues after clear command.
This method allows clearing the terminal scrollback history,
which is useful after clear command to reset terminal size
and scroll position.
Fixes mouse wheel scrolling in ncurses-based applications (opencode, tmux, less, vim) that use alternate screen mode.

Changes:
- Fix terminal mode priority: MOUSE_MODE now takes precedence over ALTERNATE_SCROLL
- Separate keyboard/mouse event handling: keyboard requires focus, mouse only requires pointer over widget
- Rewrite process_mouse_wheel() to send correct SGR mouse wheel reports when MOUSE_MODE is active
- Simplify backend::scroll() to only handle viewport scrolling
- Invert scroll direction to match standard behavior

This matches alacrity's scroll handling priority order and allows applications with mouse support to receive proper mouse wheel events instead of arrow key sequences.
…h in tabs example

- Allow passing shell arguments via BackendSettings.args API
- Tabs example now uses SHELL env var with fallback to bash
- Automatically adds --login argument for bash shells
- Fix scroll behavior when display_offset is not zero
- Store JoinHandle for threads to prevent them from being detached
- Add Drop implementation that kills child process with SIGKILL
- Add libc dependency for kill system call
- This fixes orphaned opencode processes when closing tabs
Add Event::Cut handling to properly send ^X (0x18) to terminal
when Ctrl+X is pressed without text selection. This fixes the
issue where Ctrl+X was intercepted by egui and never reached
the terminal.
Replace the broken ^V hotfix with proper bracketed paste implementation:
- Detect when terminal is in BRACKETED_PASTE mode
- Wrap pasted text with \e[200~ and \e[201~ markers
- Filter escape sequences that could terminate paste early
- In normal mode, replace newlines with carriage returns

This fixes the issue where pasting multi-line text would insert
it character-by-character instead of as a block.
Previously, selectable_content() only appended characters without adding
newlines between rows, causing multi-line selections to copy as a single line.
Now adds '\n' when transitioning to a new line in the terminal grid.
Comment thread README.md
# egui_term fork gives you:

# egui_term
## Bug Fixes
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like AI Slop that was not double checked by human

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Harzu
I am using this fixes every hour for about a week. Yes, I am not rust developer, I use LLM to create Rust Code.

But saying this is AI slop... Hm... Okay, but it works for me very well.

Never mind then.

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Your AI Agent is override README.md file, so I made a conclusion that you don't recheck this, so I made the second conclusion that this is AI Slop

Copy link
Copy Markdown
Author

@OrelSokolov OrelSokolov Feb 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Harzu , oh, this is MY WISH to override readme.md file. This is not for PR, this is just highlight of what I've found and fixed and what my fork does. This is readme for my fork.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Harzu I am not asking to merge this code, I am asking to view and may be you can find some good things and fixes for the main repository.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

https://github.com/OrelSokolov/yaaa I use your repo here, thank you!

Comment thread src/backend/settings.rs
Comment on lines 1 to 27
@@ -7,14 +8,20 @@ pub struct BackendSettings {
pub shell: String,
pub args: Vec<String>,
pub working_directory: Option<PathBuf>,
pub env: HashMap<String, String>,
}

impl Default for BackendSettings {
fn default() -> Self {
let mut env = HashMap::new();
env.insert("TERM".to_string(), "xterm-256color".to_string());
env.insert("COLORTERM".to_string(), "truecolor".to_string());

Self {
shell: DEFAULT_SHELL.to_string(),
args: vec![],
working_directory: None,
env,
}
}
}
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, I know AI can be pretty straight forward and hardcode something stupid. This is just highlight of bugs I found while using your repository.
May be you know how to fix this better, this is just "check this out, please".

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I got it now thanks, if think about it as an issue highlights rather than of code contribution, it might make sense, could you please create an issues and link this PR?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do you suggest to make separate Pull requests for each issue?

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you split it to small different issues with MRs (for examples). I'll really appreciate. You can also create several issues and link this big MR to each of them, I think the second variant is better

- Add SearchState to track search query, matches, and current match
- Add search panel with text input, Search Up/Down buttons
- Add orange highlight for search matches
- Support CTRL+F to toggle search panel
- Support F3/Shift+F3 and Enter/Shift+Enter for navigation
- Support Escape to close search
- Auto-scroll to found matches
- Use self.has_focus instead of layout.has_focus() for keyboard events
- Only handle search-related keys (Escape, F3, Ctrl+Enter, Ctrl+F) when search is active
- Let TextEdit receive regular text input when search panel is open
- Terminal surrenders focus when search panel is active
- Search input requests focus via ctx.memory_mut like settings window
- Added id to TextEdit for focus tracking
- Removed search panel UI - should be implemented in consumer app
- Keep SearchState and backend search methods
- Keep search highlight rendering (orange color)
- Consumer app can build its own UI using search_set_query, search_next, search_prev, scroll_to_point
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants