Comments (5)
This is a bug in shpool it is not setting the full window size struct
(the latter two pixel size fields to be precise) to the kernel via
TIOCWINSZ for tty's it creates.
That said, I will fix the kitten to at least not panic, though mouse
interactions will not work.
from kitty.
Thank you for the prompt investigation and fix, @kovidgoyal!
from kitty.
+1 about the quick diagnosis @kovidgoyal!
I'm the shpool maintainer and I've started looking into fixing this. It is pretty easy to just forward the xpixel and ypixel fields along side the rows and column fields, but one weird thing is that I notice that man ioctl_tty
on my system claims that the fields are unused. In particular, here is the relevant bit of the man page
Get and set window size
Window sizes are kept in the kernel, but not used by the kernel (except in the case of virtual consoles, where the kernel will update
the window size when the size of the virtual console changes, for example, by loading a new font).
TIOCGWINSZ
Argument: struct winsize *argp
Get window size.
TIOCSWINSZ
Argument: const struct winsize *argp
Set window size.
The struct used by these ioctls is defined as
struct winsize {
unsigned short ws_row;
unsigned short ws_col;
unsigned short ws_xpixel; /* unused */
unsigned short ws_ypixel; /* unused */
};
When the window size changes, a SIGWINCH signal is sent to the foreground process group.
are those /* unused */
comments just mistaken? I think this is why I elided these fields in the first place.
from kitty.
yes, they are mistaken. These days many terminals fill them in,
including the venerable xterm. And they are used by terminal programs
that need pixel sizes for example to display graphics or have pixel
precision mouse handling.
from kitty.
Ok good to know. Thanks! Shpool will now forward the pixel widths correctly so it should play nice with kitty.
from kitty.
Related Issues (20)
- Tab Bar Does Not Immediately Redraw After Keyboard Mode Change HOT 3
- List processes that are keeping a tab open when a close is requested HOT 2
- Build failure on arm64 with gcc14
- Cannot chang input method,get erro: [glfw error 65544]: Failed to open IBUS address file HOT 3
- Ctrl+Shift + other key stops working after first press HOT 4
- kitty: error while loading shared libraries: libpython3.12.so.1.0: cannot open shared object file: No such file or directory how to fix in garuda linux HOT 2
- Inconsistent background_opacity HOT 2
- vim 9's popup features not working HOT 8
- Interrupt signal kills window when launch --hold is used in a startup session
- detach_window enhancements HOT 5
- Changing colors in traditional MacOS fullscreen displays titlebar
- Questions about modal map best practices HOT 1
- Scrollback pager shows extra characters in prompt with the starship prompt HOT 1
- Multiplayer / session sharing HOT 2
- Yabai not handling kitty's windows HOT 2
- regression: Horizontal scrolling is reversed on macOS
- v0.35.0 has rendering issues HOT 2
- When only r or c is specified, the behavior is still strange HOT 2
- `icat` selective image removal support HOT 2
- regression: Horizontal scrolling is reversed on X11
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from kitty.