Commit Graph

485 Commits

Author SHA1 Message Date
Kovid Goyal
f50660bb30 Remote control: Allow matching by neighbor of active window 2023-08-25 13:48:53 +05:30
Kovid Goyal
59b47a3a8f A facility to easily have child programs print to kitty stdout
Works better than the kitty-print DCS escape code as that tends to get
interleaved with other writes to the tty since the loop infrastructure
writes in a separate I/O thread.
2023-07-30 19:49:44 +05:30
Kovid Goyal
950fbfbd73 Sanitize user vars 2023-07-27 19:00:21 +05:30
Kovid Goyal
2dfad8e854 Allow matching on user vars 2023-07-27 16:54:50 +05:30
Kovid Goyal
c767dd0d0d kitty @ ls: Add user variables set on windows to the output
These can be set by programs running in the window using the OSC 1337
escape code, as specified here:
https://iterm2.com/documentation-scripting-fundamentals.html#setting-user-defined-variables

Fixes #6502
2023-07-27 13:47:22 +05:30
Kovid Goyal
a1e5b72ca5 Remote control launch: Fix --env not implemented when using --cwd=current with the SSH kitten
Fixes #6438
2023-07-11 09:22:15 +05:30
Kovid Goyal
d2bdfbee9d Dont require kitten to be in PATH when opening at cwd 2023-07-10 18:02:09 +05:30
Kovid Goyal
d3f14ffbf4 macOS: Fix window shadows not being drawn for transparent windows
Re-organize the whole infrastructure for setting window chrome, doing it
in a single function that has access to all settings.

Fixes #2827
Fixes #6416
2023-07-04 11:59:50 +05:30
Kovid Goyal
97746a26f5 Move loading of shader programs into shaders module 2023-06-13 18:08:39 +05:30
Kovid Goyal
9f377c5ccb Cache shader source code loading 2023-06-13 17:58:17 +05:30
Kovid Goyal
85a955a796 Move shader loading code into its own module 2023-06-13 17:09:38 +05:30
Kovid Goyal
444ec2484d Infrastructure for loading shaders from multiple source files
Can eventually be used to share source code (functions) across many shaders
2023-06-13 12:55:00 +05:30
Kovid Goyal
d3fc8a2897 Remove a bunch of option processing code and directly define the threshold in the shader 2023-05-24 21:23:39 +05:30
Kovid Goyal
42edc3ebc8 Calculate only one composition strategy in the fragment shader
Use defines instead of mix() avoiding doing a bunch or per pixel work on
the GPU
2023-05-24 21:09:28 +05:30
Kovid Goyal
b45d7ae21f Dont require restart to change text_fg_override_threshold from zero to non-zero 2023-05-24 13:50:19 +05:30
Kovid Goyal
53073f34d7 Cleanup previous PR 2023-05-24 13:31:29 +05:30
Luna McNulty
9bd97b090d Remove glsl if-else, add macro, separate new opt
This adds a config option called text_fg_override_threshold that
specifies a percentage difference luminance below which the
foreground color will be overridden. The foreground color is set
to white if the background is dark or black if the background is
light. The default is 0, and the computations will only be
performed if the option is set.

Many programs output colors that look good with the author's
terminal's color scheme but which are completely illegible with
other color schemes. This allows the user ensure that there is
always sufficient contrast to read the text on the screen.

I originally implemented this is as a parameter on
text_composition_strategy. For that to work, the option needed to
take _up to_ rather than _exactly_ the number of available
parameters. While it now has nothing to do with the new feature,
it seems like that change should be made anyway, so I'm leaving
it in for now.
2023-05-20 11:13:53 -04:00
Kovid Goyal
5b8b91b6a3 Add support for OSC 1337 SetUserVar
See https://github.com/kovidgoyal/kitty/discussions/6229
2023-05-11 17:57:45 +05:30
Kovid Goyal
061c444f20 ... 2023-05-08 16:36:47 +05:30
Kovid Goyal
eab3b2a689 Reduce the number of spurious focus events
1) When performing operations known to cause lots of focus changes such
   as creating new sessions/windows or moving windows, forcibly ignore focus events

2) Track window focus state and dont report focus events when the state
   is unchanged by a focus_changed() call

This allows focus specific code to be restricted to just 2-3 places
instead of having to track every possible function that could change
focus.

Fixes #6083
2023-03-02 13:30:26 +05:30
Kovid Goyal
fccd776732 Fix overlay windows not inheriting the per-window padding and margin settings of their parents
Fixes #6063
2023-03-01 21:45:17 +05:30
Kovid Goyal
22f6728fed Do not buffer PNG data to disk when setting window background or logo images 2023-03-01 17:34:38 +05:30
Kovid Goyal
bf79940a13 When reloading config also reload all GPU data
Fixes some config options such as text_composition_strategy not being
reloaded.
2023-03-01 11:14:03 +05:30
Kovid Goyal
00b3437a05 Remove python implementation of SSH kitten 2023-02-28 12:42:30 +05:30
Kovid Goyal
525caff938 Move get_connection_data to utils module as it is not needed for the actual kitten 2023-02-26 08:01:03 +05:30
Kovid Goyal
7c8c7fe3a2 launch: When using --cwd=current for a remote system support running non shell commands as well 2023-02-08 17:52:28 +05:30
Kovid Goyal
682428fb54 Optimize the services implementation
Dont construct the selection string when we are merely checking if a
selection exists.
2023-02-01 12:46:19 +05:30
Kovid Goyal
865fc24975 When reporting unused activity in a window, ignore activity that occurs soon after a window resize
Fixes #5881
2023-01-15 09:09:07 +05:30
Kovid Goyal
7fe5d7b58f Replace isort with ruff 2023-01-09 16:47:42 +05:30
Kovid Goyal
c18bff7821 Remote control: Allow matching the parent of an overlay window 2022-12-30 11:29:05 +05:30
Kovid Goyal
4f9ed6546a Pass key events mapped to scroll actions to the program running in the terminal when the terminal is in alternate screen mode
Fixes #5839
2022-12-30 08:54:31 +05:30
Kovid Goyal
c76bbeabd6 ... 2022-12-30 08:34:58 +05:30
Kovid Goyal
468b6fab02 Also use sanitized URL for allow_hyperlinks=ask 2022-12-29 17:05:18 +05:30
Kovid Goyal
68cf9f7514 Switch to tracking linewrap on the last cell in a line
This allows us to have newline not affect the wrap status of a line.

Now a lines wrapping status is changed only when the last cell
in the line is changed. This actually matches the behavior of many other
terminal emulators so is probably a good thing from a ecosystem
compatibility perspective.

The fish shell expects this weird behavior of newline not changing
wrapping status, for unknown reasons, which is the actual motivation for
doing all this work.

Fixes #5766
2022-12-26 20:26:21 +05:30
pagedown
91576cc42f Remote control: Keep the same naming style for ls command output 2022-12-12 12:53:58 +08:00
Kovid Goyal
11724c8a5f Terminal end of OSC 5522 read requests 2022-11-29 14:55:40 +05:30
Kovid Goyal
3ee9f723f2 The legacy osc 52 protocol now works with the new clipboard requests manager class 2022-11-28 20:53:56 +05:30
Kovid Goyal
a8725d6307 Start work on a new clipboard protocol to allow terminal programs to access more than just text/plain content from the clipboard 2022-11-28 14:23:03 +05:30
pagedown
6a1b456bac DRYer: Get hostname 2022-11-26 16:08:40 +08:00
Kovid Goyal
402c8b6803 Use ANSI C escapes rather than python string literals 2022-11-25 19:10:15 +05:30
Kovid Goyal
dd4051bfd5 Allow getting the exe name of the active foreground process in the tab title template 2022-11-17 22:06:06 +05:30
Kovid Goyal
f3b3d6c0ef Workaround for mypy bug 2022-11-15 22:47:53 +05:30
Kovid Goyal
d9215feda5 Allow using the cwd of the original process for launch --cwd
Fixes #5672
2022-11-15 22:18:19 +05:30
Kovid Goyal
59ded41f7a When no OS Window is focused the active_* should return those belonging to the last focused OS Window 2022-11-05 11:34:10 +05:30
Kovid Goyal
10ad56885e Properly specify semantics of active and focused
active means active in parent. focused means actually has keyboard
focus.
2022-11-04 10:38:18 +05:30
Kovid Goyal
a856c64104 Have the semantics of is_focused match that of state:focused otherwise things are liable to get confusing
The previous value is now available as is_active_window
2022-11-03 22:32:07 +05:30
Kovid Goyal
935c4ded6b Remote control: When matching window by state:focused match the window belonging to the OS window that was last focused
Fixes #5602
2022-11-03 21:52:20 +05:30
Kovid Goyal
26b8ab9adf Use a regex for bracketed paste sanitization 2022-09-23 22:18:03 +05:30
Kovid Goyal
7e1380cc0d Start work on giving GLFW a proper clipboard API 2022-09-08 12:45:34 +05:30
Kovid Goyal
f05783e64d Sanitize notifications ids as they are retransmitted over the TTY 2022-09-05 10:41:19 +05:30