Commit Graph

17052 Commits

Author SHA1 Message Date
Max Dexheimer
4e4d85bc59 Fix shell.nix 2026-01-20 17:09:01 +01:00
Kovid Goyal
a88cb2d14d Fix horizontal alignment of emoji incorrect becase rendered_width was not being set after switching to using cairo to render them
Fixes #9395
2026-01-20 20:01:20 +05:30
Kovid Goyal
a53d5b2fae Update changelog
Fixes #3732
2026-01-20 17:26:31 +05:30
Kovid Goyal
fccb06e4bf Merge branch 'dictation' of https://github.com/smorand/kitty 2026-01-20 17:24:58 +05:30
Sébastien MORAND
0bf307c95f macOS: Implement dictation support via accessibility and NSTextInputClient
This commit enables macOS dictation (triggered by pressing Fn twice) to work
in kitty by implementing the necessary accessibility methods.

The key fix is changing `selectedRange` to return `NSMakeRange(0, 0)` instead
of `kEmptyRange` (NSNotFound, 0). When selectedRange returns NSNotFound, macOS
dictation cannot determine where to insert text and fails silently.

Additional accessibility methods implemented:
- accessibilitySelectedTextRange: Returns cursor position for dictation
- accessibilityNumberOfCharacters: Returns 0 (terminal has no fixed buffer)
- accessibilityInsertionPointLineNumber: Returns 0
- accessibilityValue: Returns empty string
- setAccessibilityValue: Routes dictated text to keyboard input

This fix is inspired by the similar fix in Emacs v30 which restored dictation
by implementing selectedRange properly after migrating to NSTextInputClient.

Fixes: https://github.com/kovidgoyal/kitty/issues/3732
2026-01-20 10:35:54 +01:00
Kovid Goyal
60cee4d9a9 Merge branch 'dependabot/go_modules/all-go-deps-ade57708e7' of https://github.com/kovidgoyal/kitty 2026-01-19 09:53:08 +05:30
dependabot[bot]
10c6b26cda Bump the all-go-deps group with 2 updates
Bumps the all-go-deps group with 2 updates: [github.com/alecthomas/chroma/v2](https://github.com/alecthomas/chroma) and [github.com/bmatcuk/doublestar/v4](https://github.com/bmatcuk/doublestar).


Updates `github.com/alecthomas/chroma/v2` from 2.21.1 to 2.22.0
- [Release notes](https://github.com/alecthomas/chroma/releases)
- [Commits](https://github.com/alecthomas/chroma/compare/v2.21.1...v2.22.0)

Updates `github.com/bmatcuk/doublestar/v4` from 4.9.1 to 4.9.2
- [Release notes](https://github.com/bmatcuk/doublestar/releases)
- [Commits](https://github.com/bmatcuk/doublestar/compare/v4.9.1...v4.9.2)

---
updated-dependencies:
- dependency-name: github.com/alecthomas/chroma/v2
  dependency-version: 2.22.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-go-deps
- dependency-name: github.com/bmatcuk/doublestar/v4
  dependency-version: 4.9.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-go-deps
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-19 04:01:30 +00:00
Kovid Goyal
1ae6bd5c44 Merge branch 'fix-config-typo' of https://github.com/amitp970/kitty 2026-01-18 15:32:24 +05:30
Amit Peri
799452dd2e Fix typo 2026-01-18 09:49:41 +00:00
Kovid Goyal
e342f5ffab Ignore inapplicable CVE in python stdlib 2026-01-16 19:13:16 +05:30
Kovid Goyal
0d0ee5474d Cleanup previous PR 2026-01-15 19:26:27 +05:30
copilot-swe-agent[bot]
6436cda482 Add is_finger_based field to XIScrollDevice with detection logic
Fixes #9385
2026-01-15 19:18:27 +05:30
Kovid Goyal
9ef934cf54 Wayland: Remove usage of the Wayland color management protocol to inform compositors of the color space used by kitty
As is typical with Wayland, the protocol is poorly designed and
implemented even worse. Hyprland 0.53 has completely broken color
management.
https://github.com/hyprwm/Hyprland/discussions/12788
In addition it and mangowc crash when using color management with nouveau drivers.
https://github.com/kovidgoyal/kitty/issues/9030

KDE kwin does not support the sRGB transfer function. And the geniuses
at Wayland are any way planning to deprecate sRGB as a transfer function.

Only GNOME mutter seems to get it right.

Then there are people that are likely going to shoehorn this into EGL
instead of leaving it under application control via the protocol anyway.
https://github.com/KhronosGroup/EGL-Registry/issues/197

Sigh. Wayland.
2026-01-15 09:53:09 +05:30
Kovid Goyal
d35c786358 Bump imaging to fix #9376 2026-01-15 09:13:02 +05:30
Kovid Goyal
c389f4d5b8 Wayland: Fix doubled key repeat events when compositor sends repeat events
Fixes #9374
2026-01-15 08:13:37 +05:30
Kovid Goyal
f9e3de66d5 is_tab_bar_visible should return false when os window has no tabs 2026-01-15 07:51:53 +05:30
Kovid Goyal
edd466e5f7 Pygments does not need type checking globally ignored anymore 2026-01-14 22:18:11 +05:30
Kovid Goyal
2d32c1175c Make mypy + python 3.14 happy 2026-01-14 22:04:34 +05:30
Kovid Goyal
11775eb12b Make mypy happy 2026-01-14 21:52:49 +05:30
Kovid Goyal
407ac42f1d DRYer 2026-01-14 21:40:14 +05:30
Kovid Goyal
0cca5d1a10 Only update tab bar visibility after all tabs have been added from a session
Fixes #9382
2026-01-14 21:11:07 +05:30
Kovid Goyal
fbd03de54c Bump libpng version for CVE 2026-01-14 14:19:54 +05:30
Kovid Goyal
ac1d34eb0c Bump version of harfbuzz for CVE 2026-01-14 10:45:52 +05:30
Kovid Goyal
4cb3a13416 Merge branch 'dependabot/go_modules/all-go-deps-e2678a00b5' of https://github.com/kovidgoyal/kitty 2026-01-13 15:58:22 +05:30
dependabot[bot]
969d46ef4c Bump golang.org/x/sys from 0.39.0 to 0.40.0 in the all-go-deps group
Bumps the all-go-deps group with 1 update: [golang.org/x/sys](https://github.com/golang/sys).


Updates `golang.org/x/sys` from 0.39.0 to 0.40.0
- [Commits](https://github.com/golang/sys/compare/v0.39.0...v0.40.0)

---
updated-dependencies:
- dependency-name: golang.org/x/sys
  dependency-version: 0.40.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-go-deps
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-12 03:47:16 +00:00
Kovid Goyal
da170555fa Ignore master pointer device events since we use the slave devices 2026-01-11 12:57:56 +05:30
Kovid Goyal
1efded85bc Support for old compilers 2026-01-11 11:02:14 +05:30
Kovid Goyal
69a25691c5 X11: Fix mouse motion events not being handled
The code to use XI_Motion for scroll events needed to handle motion
events too
2026-01-11 10:44:47 +05:30
Kovid Goyal
8a10931f0e Download grype from my own server
Far higher reliability than githubj;wq
2026-01-10 12:42:09 +05:30
copilot-swe-agent[bot]
bfc21fc7a4 X11: handle XI device hotplugging
Fixes #9370
2026-01-10 09:00:37 +05:30
Kovid Goyal
813c560e29 Implement proper scroll event type detection in X11
Uses libinput scroll mode property to detect high res devices.
2026-01-10 08:38:45 +05:30
Kovid Goyal
15206eda0b Add XIGetQuery 2026-01-10 06:17:53 +05:30
Kovid Goyal
f8426d529c ... 2026-01-10 05:51:59 +05:30
Kovid Goyal
a9261fe529 ... 2026-01-10 05:21:12 +05:30
Kovid Goyal
21da5350d3 Update changelog 2026-01-09 17:22:26 +05:30
copilot-swe-agent[bot]
c1a54a0cc0 Add XI2 smooth scrolling support for X11 backend
Fixes #9369
2026-01-09 17:13:24 +05:30
Kovid Goyal
dd9c61e5f6 ... 2026-01-09 14:44:40 +05:30
Kovid Goyal
8fd0909e4a Invert momentum_scroll
Its nicer to have momentum_scroll 0 mean no momentum scrolling
2026-01-09 14:37:36 +05:30
Kovid Goyal
2ab0fcb373 Make Wayland momentum scrolling configurable 2026-01-09 13:46:49 +05:30
Kovid Goyal
1f43a75a07 DRYer 2026-01-09 13:26:44 +05:30
Kovid Goyal
c0add3198b Use logical pixels for momentum velocity settings 2026-01-09 13:21:04 +05:30
Kovid Goyal
779fb0d5c5 Cancel momentum scroll on button and key events 2026-01-09 13:15:37 +05:30
Kovid Goyal
3232551c39 Revert to using a fixed timer interval
Sadly, we cant rely on the Wayland compositor to send us reliably timed
scroll events.
2026-01-09 13:10:16 +05:30
Kovid Goyal
858240e324 Momentum scroller: discard unsuitable physical events 2026-01-09 12:56:05 +05:30
Kovid Goyal
3c250a741d Wayland: Fix line and v120 scroll event types being multiplied by screen scale
This does not match X11/macOS behavior. And I see no logical reason why
it should be so. The wheel_scroll_multiplier should be used to adjust
this by end users.
2026-01-09 12:50:07 +05:30
Kovid Goyal
48de08ded1 Derive timer interval in the momentum scroller from previous scroll events 2026-01-09 10:40:24 +05:30
Kovid Goyal
3637e31ca3 Fix goto_session not respecting the focus_tab session directive when creating a session in an existing OS window
Fixes #9366
2026-01-08 20:43:38 +05:30
Kovid Goyal
30ba15e6bc Fix first history line not being redered during pixel scroll 2026-01-08 20:04:27 +05:30
Kovid Goyal
683b59c876 Rely on compiler to produce 0 or 1 only for boolean expressions 2026-01-08 19:49:40 +05:30
Kovid Goyal
e442890523 More duplicated functions 2026-01-08 19:43:25 +05:30