572 Commits

Author SHA1 Message Date
Kovid Goyal 42ab460db3 Only include -fno-plt if the compiler supports it 2025-04-02 11:12:07 +05:30
Kovid Goyal 66856e7b52 Use a multi-stage lookup table for grapheme segmentation 2025-03-31 21:51:28 +05:30
Firepup Sixfifty 7814869fc1 Handle the edge case of someone running a development go build 2025-03-18 12:20:30 -05:00
leiserfg 6171ca6859 Fix regression in setup.py 2025-03-08 12:23:51 +01:00
leiserfg 55bd074c01 Add support for xdg-terminal-exec
See proposal in https://gitlab.freedesktop.org/terminal-wg/specifications/-/merge_requests/3/diffs
2025-03-07 11:29:53 +01:00
Kovid Goyal 744145f392 Add cairo and pixman as deps on Linux
Needed to render COLRv1 fonts. Which are needed because bitmap emoji
fonts dont render well at large font sizes such as can be used with
multicell chars.
2025-02-03 11:06:38 +05:30
Kovid Goyal dc1bed1bd1 Use XXHash for hash table hashing of arbitrary sized keys
Much faster than FNV
2025-02-03 10:56:46 +05:30
Kovid Goyal d36a64087e Bump Go to 1.23
We need this because Go < 1.23 produces binaries that dont work on
modern OpenBSD because OpenBSD decided to remove syscall() from their
libc. Mad buggers, who removes functions from libc breaking all
binaries!!

Also increase minimum macOS version to 11.0 as Go 1.23 requires that
2024-08-24 08:06:02 +05:30
Kovid Goyal 81061a8d43 macOS: Bump the minimum required macOS version to Catalina released five years ago.
Catalina is actually already EOL as of July 2022 but we dont need
anything from newer releases that isn't detected at runtime. Going to
Catalina allows us to use a better format for the generated DMG (UMNO
instead of ULFO which compresses better).
2024-08-13 09:03:38 +05:30
Kovid Goyal 2c743dcdb2 Update sound support in desktop notifications spec
Add a short list of standard sound names.
2024-08-04 20:20:41 +05:30
Kovid Goyal 9b19f300fe Drop support for building without UserNotifications
Trying to maintain the two code paths is too much effort given all the
new features being added to notifications.
2024-07-30 07:39:53 +05:30
Kovid Goyal b8e6d6b058 fonts should not be removed by make clean
It is not generated by make
2024-07-05 12:04:48 +05:30
Kovid Goyal a54afe2433 make clean should remove copied in fonts 2024-07-02 19:13:34 +05:30
Kovid Goyal 71f96b3c83 Package the standalone NERD font 2024-07-02 19:08:52 +05:30
Kovid Goyal 15af20fa31 Copy in systemwide NERD font during build
Means it works when running from source and can be used as the
source for copying the font into built packages
2024-07-02 18:57:38 +05:30
Kovid Goyal 9b3bb05a3a Drop support for 32-bit x86 prebuilt binaries
SIMDe 0.8.2 doesnt build on 32 bit and while that will likely be fixed
eventually, 32bit isn't tested in CI and generally speaking there isn't
much use for this platform anymore. I dont know of any 32-bit computers
in common use these days.

As such the overhead of maintaining these is not worth it for me.
kitty itself remains buildable on 32-bit though no guarantees for how
long that will last. kitten remains available on 32bit.
2024-06-24 07:53:15 +05:30
Kovid Goyal b5cf999da9 Make kitty --single-instance fast
No longer pay the overhead of starting the Python interpreter
just to write a message to the single instance socket. This reduces
the time for kitty --single-instance (for second and later instances)
from 70ms to 3ms an almost 25x improvement.

Needs testing on macOS and also porting of the +open handling.
2024-06-23 15:45:41 +05:30
Kovid Goyal 581db0ab7a Make kitty --version fast
It's now approx 3ms on my system and 1.23 times faster than alacritty
--version
2024-06-22 12:27:29 +05:30
Kovid Goyal adc457ff0f Dynload libsystemd 2024-05-16 21:13:09 +05:30
Kovid Goyal f979c24add Move some defines to only the source files where they are needed 2024-05-16 17:38:26 +05:30
Kovid Goyal f30652c24a ... 2024-05-16 17:18:06 +05:30
Kovid Goyal 28a9f48786 Fix CI with systemd 2024-05-16 16:00:28 +05:30
Kovid Goyal 39ea084be9 Linux: Run all child processes in their own systemd scope to prevent the OOM killer from harvesting kitty when a child process misbehaves
Fixes #7427
2024-05-16 15:43:25 +05:30
Kovid Goyal a4c9cb6d28 Small performance increase in SIMD code
Use OpenMP annotations with simde as the simde docs recommend.
2024-05-04 09:47:02 +05:30
Kovid Goyal 8183e9d3ef Fix CI build failure on macOS
Also update simde to version 0.8. Accidental was using it to debug
issues with building against simde, but now that it's done, keep it.
2024-04-30 09:48:51 +05:30
Kovid Goyal 437fc0d8c2 Revert renaming of kitty.dekstop to kitty-terminal.desktop
Changing the default value for application id/WM_CLASS is a no go, since
existing scripts can depend on it and I try to avoid breaking people's
workflows wherever possible. Guess xdg-mime will just have to live with
the horror of an unhyphenated file name.

Fixes #7326
2024-04-09 12:47:14 +05:30
Kovid Goyal 597710dd53 Add StartupNotify to kitty.desktop
See https://gitlab.gnome.org/GNOME/mutter/-/issues/2739

Also rename kitty.desktop to kitty-terminal.desktop as otherwise
xdg-menu-install complains about no vendor prefix.
2024-04-08 10:00:06 +05:30
Kovid Goyal 20375ee77a Fix #7310 2024-04-04 15:08:58 +05:30
Kovid Goyal d260c0a679 ... 2024-03-29 13:31:31 +05:30
Kovid Goyal c72963dfc5 Use requires-python in pyproject.toml to specify python requirement 2024-03-29 13:23:09 +05:30
Kovid Goyal a0424bf1bd Dont omit frame pointer in debug and profile builds 2024-03-18 10:56:50 +05:30
Kovid Goyal 5e0185d3eb Ensure KITTY_NO_SIMD is defined for all files on arches without SIMD support 2024-03-15 12:19:47 +05:30
Kovid Goyal 0153c9bb85 Use -g3 for profiling rather than -g 2024-03-14 17:07:38 +05:30
Kovid Goyal 10cff577d6 Also get a backtrace when generating go code segfaults on CI 2024-03-14 16:25:52 +05:30
Kovid Goyal 77125798a4 Redirect to NULL instead of pipe since we dont use the output 2024-03-14 12:15:15 +05:30
Kovid Goyal c26954c69e ... 2024-03-14 12:05:57 +05:30
Kovid Goyal 9667da307c Print detected compiler type in verbose mode 2024-03-14 12:04:33 +05:30
Kovid Goyal baa3ec0a62 Explicitly detect compiler types gcc vs clang 2024-03-14 12:02:01 +05:30
Kovid Goyal 3950632517 Switch to detecting clang rather than gcc
gcc makes it impossible to detect that it is gcc via --version
so instead detect clang and assume gcc if not clang.

Fixes #7218
2024-03-14 10:48:27 +05:30
Kovid Goyal 297ac9c3fe ... 2024-03-14 08:54:39 +05:30
Kovid Goyal 17fe6b3373 Simplify sanitize args 2024-03-01 11:08:51 +05:30
Kovid Goyal f16c2a0d67 Move checking for compiler brand into Env 2024-02-25 09:57:43 +05:30
Kovid Goyal 29a574a4bc Prevent duplicate VZEROUPPER instructions 2024-02-25 09:57:43 +05:30
Kovid Goyal f1fe0bf40a Code to easily compare SIMD and scalar decode in a live instance
Also remove -mtune=intel as it fails with clang
2024-02-25 09:57:41 +05:30
Kovid Goyal 55c909c656 Use -mtune=intel for SIMD files when building without native optimizations 2024-02-25 09:57:40 +05:30
Kovid Goyal 68d800d4fa make clean should clean generated asm as well 2024-02-25 09:57:40 +05:30
Kovid Goyal 73342411bc Dont build any SIMD code when the target is neither ARM64 nor x86/amd64 2024-02-25 09:57:38 +05:30
Kovid Goyal 8dd6f9b07c Get universal builds working again
Now we use lipo and build individually so we can pass the correct
compiler flags per arch
2024-02-25 09:57:38 +05:30
Kovid Goyal 7e77a196e6 Build only the SIMD code with SIMD compiler flags 2024-02-25 09:57:38 +05:30
Kovid Goyal 465616223c Drop using the v2 microarch
No significant performance impact and small risk of breakage
2024-02-25 09:57:38 +05:30