Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adds immersive mode for Samsung Dex #3908

Open
wants to merge 17 commits into
base: master
Choose a base branch
from

Conversation

shmatt
Copy link

@shmatt shmatt commented Apr 5, 2024

Hides the top bar when using full screen mode in Samsung Dex

MatanZ and others added 17 commits September 4, 2022 19:01
- In TerminalEmulator, interpret sixel sequences, and send them to
  TerminalBuffer for constructing a bitmap.
- Sixel sequences may be longer than 8192 characters, so break them in
  natural places ($,-,#), rather than collecting all in the buffer.
- The bitmap is sliced to character cell sized slices, and each the
  the style attribute is used to store which bitmap slice is displayed
  in place of this character.
- In TerminalRenderer the style is interpreted, and drawn using
  drawBitmap, instead of drawText.

Support iTerm inline image protocol (OSC 1337):

- Using the same bitmap display infrastructure introduced for sixels.
- Collects the image data outside of the OSC buffer.
- Ignoring some parameters.

Small emulator changes:

- Also eat APC sequences, not echoing to screen.
- Fix `CSI 14 t` to give actual size
- Add `CSI 16 t`
- Add `4` (sixel) to device attributes
Add missing {} that change the logic.
- For iterm2 images - catch the error, and cancel the image.
- For sixels - if it happens when resizing the bitmap, than ignore drawing
  outside of the current image.
- Move working bitmap code (drawing current bitmap) to
  WorkingTerminalBitmap class.
- Move bitmap handling code to TerminalBitmap class.
To avoid removing elements from the map while iterating over it.
This should solve the Concurrent Modification Exception in the bitmap
garbage collection.
Avoid crash when BitmapFactory cannot decode image
…last column.

This creates a zero length text run, so skip it.
@afonsoft
Copy link

afonsoft commented Jun 8, 2024

Nice

@gutierri
Copy link

gutierri commented Jul 3, 2024

What would this immersive mode be? Does it hide some components (such as shortcuts footer [CTRL, Pg Up...]) from the interface only when in full screen mode?

@shmatt
Copy link
Author

shmatt commented Jul 3, 2024

What would this immersive mode be? Does it hide some components (such as shortcuts footer [CTRL, Pg Up...]) from the interface only when in full screen mode?

Samsung Dex usually displays a titlw bar across the top of an app (similar to any desktop OS) showing minimise, maximise and close buttons.

This PR hides that bar. A similar change has been implemented in Termux-X11

@gutierri
Copy link

gutierri commented Jul 5, 2024

What would this immersive mode be? Does it hide some components (such as shortcuts footer [CTRL, Pg Up...]) from the interface only when in full screen mode?

Samsung Dex usually displays a titlw bar across the top of an app (similar to any desktop OS) showing minimise, maximise and close buttons.

This PR hides that bar. A similar change has been implemented in Termux-X11

Yes, there is indeed something similar to this in X11 (I use it daily), but there it is possible to enable it through the settings. It would be interesting to have something like that here too.

From what I understand, it would be a fullscreen mode (F11).

Thanks for the clarifications!

@shmatt
Copy link
Author

shmatt commented Jul 8, 2024

Yes, there is indeed something similar to this in X11 (I use it daily), but there it is possible to enable it through the settings. It would be interesting to have something like that here too.

From what I understand, it would be a fullscreen mode (F11).

Thanks for the clarifications!

Termux has an immersive flag already, which does a similar thing in normal android mode (hides the system bar)

This piggy back on that same flag, as it is the same intention but in different environments

Copy link

@Navisystem77 Navisystem77 left a comment

Choose a reason for hiding this comment

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

Ok

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.

None yet

5 participants