diff --git a/nixos/modules/config/terminfo.nix b/nixos/modules/config/terminfo.nix index 43bb633a1064..15f6ffb423b0 100644 --- a/nixos/modules/config/terminfo.nix +++ b/nixos/modules/config/terminfo.nix @@ -50,7 +50,6 @@ rxvt-unicode-unwrapped rxvt-unicode-unwrapped-emoji st - termite tmux wezterm yaft diff --git a/nixos/modules/programs/wayland/river.nix b/nixos/modules/programs/wayland/river.nix index 447d6d63368d..6e8a811e549c 100644 --- a/nixos/modules/programs/wayland/river.nix +++ b/nixos/modules/programs/wayland/river.nix @@ -51,7 +51,7 @@ in with pkgs; [ swaylock foot dmenu ]; ''; example = lib.literalExpression '' - with pkgs; [ termite rofi light ] + with pkgs; [ alacritty rofi light ] ''; description = '' Extra packages to be installed system wide. See diff --git a/nixos/modules/programs/wayland/sway.nix b/nixos/modules/programs/wayland/sway.nix index c764ade90c8a..14f695e1deab 100644 --- a/nixos/modules/programs/wayland/sway.nix +++ b/nixos/modules/programs/wayland/sway.nix @@ -116,7 +116,7 @@ in with pkgs; [ brightnessctl foot grim pulseaudio swayidle swaylock wmenu ]; ''; example = lib.literalExpression '' - with pkgs; [ i3status i3status-rust termite rofi light ] + with pkgs; [ i3status i3status-rust alacritty rofi light ] ''; description = '' Extra packages to be installed system wide. See diff --git a/nixos/tests/terminal-emulators.nix b/nixos/tests/terminal-emulators.nix index 68f265fa0286..e0913974b86d 100644 --- a/nixos/tests/terminal-emulators.nix +++ b/nixos/tests/terminal-emulators.nix @@ -92,8 +92,6 @@ let terminology.cmd = "SHELL=$command terminology --no-wizard=true"; terminology.colourTest = false; # broken by gloss effect - termite.pkg = p: p.termite; - termonad.pkg = p: p.termonad; tilda.pkg = p: p.tilda; diff --git a/pkgs/README.md b/pkgs/README.md index 4dc6008354c2..5578e8df3a96 100644 --- a/pkgs/README.md +++ b/pkgs/README.md @@ -327,7 +327,7 @@ A (typically large) program with a distinct user interface, primarily used inter - **If it’s a _terminal emulator_:** - - `applications/terminal-emulators` (e.g. `alacritty` or `rxvt` or `termite`) + - `applications/terminal-emulators` (e.g. `alacritty` or `rxvt`) - **If it’s a _file manager_:** diff --git a/pkgs/applications/terminal-emulators/termite/add_errno_header.patch b/pkgs/applications/terminal-emulators/termite/add_errno_header.patch deleted file mode 100644 index 81283f86a21d..000000000000 --- a/pkgs/applications/terminal-emulators/termite/add_errno_header.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 95c90f302c384f410dc92e64468ac7061b57fe2d Mon Sep 17 00:00:00 2001 -From: Michael Hoang -Date: Fri, 13 Jul 2018 19:03:09 +1000 -Subject: [PATCH] Add errno.h header which isn't always included automatically. - ---- - termite.cc | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/termite.cc b/termite.cc -index 160fe82..13e2572 100644 ---- a/termite.cc -+++ b/termite.cc -@@ -21,6 +21,7 @@ - #include - #include - #include -+#include - #include - #include - #include --- -2.17.1 - diff --git a/pkgs/applications/terminal-emulators/termite/default.nix b/pkgs/applications/terminal-emulators/termite/default.nix deleted file mode 100644 index f5e814132df6..000000000000 --- a/pkgs/applications/terminal-emulators/termite/default.nix +++ /dev/null @@ -1,112 +0,0 @@ -{ - lib, - stdenv, - fetchFromGitHub, - fetchpatch, - pkg-config, - vte, - gtk3, - ncurses, - pcre2, - wrapGAppsHook3, - nixosTests, -}: - -let - - # termite requires VTE with some internals exposed - # https://github.com/thestinger/vte-ng - # - # three of the patches have been locally modified to cleanly apply on 0.62 - vte-ng = vte.overrideAttrs (attrs: { - patches = attrs.patches or [ ] ++ [ - (fetchpatch { - name = "0001-expose-functions-for-pausing-unpausing-output.patch"; - url = "https://github.com/thestinger/vte-ng/commit/342e26574f50dcd40bbeaad9e839c2a6144d0c1c.patch"; - sha256 = "1b0k9ys545q85vfki417p21kis9f36yd0hyp12phayynss6fn715"; - }) - # Derived from https://github.com/thestinger/vte-ng/commit/5ae3acb69474fe5bc43767a4a3625e9ed23607a1.patch - ./vte-ng-modified-patches/vte-0002-expose-function-for-setting-cursor-position.patch - # Derived from https://github.com/thestinger/vte-ng/commit/742d57ecf15e24f6a5f2133a81b6c70acc8ff03c.patch - ./vte-ng-modified-patches/vte-0003-add-function-for-setting-the-text-selections.patch - (fetchpatch { - name = "0004-add-functions-to-get-set-block-selection-mode.patch"; - url = "https://github.com/thestinger/vte-ng/commit/08748fd9cb82bd191e5c476b1682ca71f7732572.patch"; - sha256 = "1cnhd8f7ywdgcyd6xmcd2nn39jjxzkxp4d0zsj2k7m5v74nhcs1g"; - }) - # Derived from "https://github.com/thestinger/vte-ng/commit/dd74ae7c06e8888af2fc090ac6f8920a9d8227fb.patch"; - ./vte-ng-modified-patches/vte-0005-expose-function-for-getting-the-selected-text.patch - ]; - }); - -in -stdenv.mkDerivation rec { - pname = "termite"; - version = "15"; - - src = fetchFromGitHub { - owner = "thestinger"; - repo = "termite"; - rev = "v${version}"; - sha256 = "0hp1x6lj098m3jgna274wv5dv60lnzg22297di68g4hw9djjyd2k"; - fetchSubmodules = true; - }; - - # https://github.com/thestinger/termite/pull/516 - patches = [ - ./url_regexp_trailing.patch - ./add_errno_header.patch - # Fix off-by-one in select_text() on libvte >= 0.55.0 - # Expected to be included in next release (16). - (fetchpatch { - url = "https://github.com/thestinger/termite/commit/7e9a93b421b9596f8980645a46ac2ad5468dac06.patch"; - sha256 = "0vph2m5919f7w1xnc8i6z0j44clsm1chxkfg7l71nahxyfw5yh4j"; - }) - ] - ++ lib.optional stdenv.hostPlatform.isDarwin ./remove_ldflags_macos.patch; - - makeFlags = [ - "VERSION=v${version}" - "PREFIX=" - "DESTDIR=$(out)" - ]; - - buildInputs = [ - vte-ng - gtk3 - ncurses - pcre2 - ]; - - nativeBuildInputs = [ - wrapGAppsHook3 - pkg-config - ]; - - outputs = [ - "out" - "terminfo" - ]; - - passthru = { - inherit vte-ng; - tests = nixosTests.terminal-emulators.termite; - }; - - postInstall = '' - mkdir -p $terminfo/share - mv $out/share/terminfo $terminfo/share/terminfo - - mkdir -p $out/nix-support - echo "$terminfo" >> $out/nix-support/propagated-user-env-packages - ''; - - meta = { - description = "Simple VTE-based terminal"; - license = lib.licenses.lgpl2Plus; - homepage = "https://github.com/thestinger/termite/"; - maintainers = with lib.maintainers; [ koral ]; - platforms = lib.platforms.all; - mainProgram = "termite"; - }; -} diff --git a/pkgs/applications/terminal-emulators/termite/remove_ldflags_macos.patch b/pkgs/applications/terminal-emulators/termite/remove_ldflags_macos.patch deleted file mode 100644 index f8c68518bb4d..000000000000 --- a/pkgs/applications/terminal-emulators/termite/remove_ldflags_macos.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 1b5a6934635c55472eb7949bd87ab3f45fa1b2f3 Mon Sep 17 00:00:00 2001 -From: Michael Hoang -Date: Fri, 13 Jul 2018 19:01:51 +1000 -Subject: [PATCH] Remove --as-needed flag from ld to fix compilation on macOS. - ---- - Makefile | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/Makefile b/Makefile -index b115f42..ab301ba 100644 ---- a/Makefile -+++ b/Makefile -@@ -29,7 +29,7 @@ ifeq (${CXX}, clang++) - CXXFLAGS += -Wimplicit-fallthrough - endif - --LDFLAGS := -s -Wl,--as-needed ${LDFLAGS} -+LDFLAGS := -s -Wl ${LDFLAGS} - LDLIBS := ${shell pkg-config --libs ${GTK} ${VTE}} - - termite: termite.cc url_regex.hh util/clamp.hh util/maybe.hh util/memory.hh --- -2.17.1 - diff --git a/pkgs/applications/terminal-emulators/termite/url_regexp_trailing.patch b/pkgs/applications/terminal-emulators/termite/url_regexp_trailing.patch deleted file mode 100644 index 96deaa073d71..000000000000 --- a/pkgs/applications/terminal-emulators/termite/url_regexp_trailing.patch +++ /dev/null @@ -1,27 +0,0 @@ -Based on https://github.com/thestinger/termite/pull/516 -Modified to apply to v13 - -From 65a454ffa8e681f3f14729cba7c42e1570a85e8a Mon Sep 17 00:00:00 2001 -From: Paul Baecher -Date: Thu, 7 Sep 2017 22:58:51 +0200 -Subject: [PATCH] Do not match punctuation at the end of URLs - -Punctuation at the end of URLs is most likely part of natural language -or markup (for example in Markdown). Do not match it as part of the URL. ---- - url_regex.hh | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/url_regex.hh b/url_regex.hh -index 2ec6be8..3039b53 100644 ---- a/url_regex.hh -+++ b/url_regex.hh -@@ -9,7 +9,7 @@ - #define PORT "(?:\\:[[:digit:]]{1,5})?" - #define SCHEME "(?:[[:alpha:]][+-.[:alnum:]]*:)" - #define USERPASS USERCHARS_CLASS "+(?:\\:" PASSCHARS_CLASS "+)?" --#define URLPATH "(?:/[[:alnum:]\\Q-_.!~*'();/?:@&=+$,#%\\E]*)?" -+#define URLPATH "(?:/[[:alnum:]\\Q-_.!~*'();/?:@&=+$,#%\\E]*(? -Date: Sat, 13 Feb 2016 22:18:01 +0100 -Subject: [PATCH] expose function for setting cursor position - ---- - src/vte/vteterminal.h | 5 +++++ - src/vtegtk.cc | 24 ++++++++++++++++++++++++ - 2 files changed, 29 insertions(+) - -diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h -index a607e5da..9701320d 100644 ---- a/src/vte/vteterminal.h -+++ b/src/vte/vteterminal.h -@@ -378,6 +378,11 @@ _VTE_PUBLIC - void vte_terminal_get_cursor_position(VteTerminal *terminal, - glong *column, - glong *row) _VTE_CXX_NOEXCEPT _VTE_GNUC_NONNULL(1); -+_VTE_PUBLIC -+void vte_terminal_set_cursor_position(VteTerminal *terminal, -+ glong column, -+ glong row) _VTE_CXX_NOEXCEPT _VTE_GNUC_NONNULL(1); -+ - - _VTE_PUBLIC - char *vte_terminal_hyperlink_check_event(VteTerminal *terminal, -diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index b11b780b..bdf36eac 100644 ---- a/src/vtegtk.cc -+++ b/src/vtegtk.cc -@@ -2415,6 +2415,30 @@ vte_terminal_get_cursor_position(VteTerminal *terminal, - } - } - -+/** -+ * vte_terminal_set_cursor_position -+ * @terminal: a #VteTerminal -+ * @column: the new cursor column -+ * @row: the new cursor row -+ * -+ * Set the location of the cursor. -+ */ -+void -+vte_terminal_set_cursor_position(VteTerminal *terminal, -+ long column, long row) noexcept -+{ -+ g_return_if_fail(VTE_IS_TERMINAL(terminal)); -+ -+ auto impl = IMPL(terminal); -+ impl->invalidate_cursor_once(FALSE); -+ impl->m_screen->cursor.col = column; -+ impl->m_screen->cursor.row = row; -+ impl->invalidate_cursor_once(FALSE); -+ impl->check_cursor_blink(); -+ impl->queue_cursor_moved(); -+ -+} -+ - /** - * vte_terminal_pty_new_sync: - * @terminal: a #VteTerminal diff --git a/pkgs/applications/terminal-emulators/termite/vte-ng-modified-patches/vte-0003-add-function-for-setting-the-text-selections.patch b/pkgs/applications/terminal-emulators/termite/vte-ng-modified-patches/vte-0003-add-function-for-setting-the-text-selections.patch deleted file mode 100644 index 203228dae34d..000000000000 --- a/pkgs/applications/terminal-emulators/termite/vte-ng-modified-patches/vte-0003-add-function-for-setting-the-text-selections.patch +++ /dev/null @@ -1,56 +0,0 @@ -From 742d57ecf15e24f6a5f2133a81b6c70acc8ff03c Mon Sep 17 00:00:00 2001 -From: Jelle van der Waa -Date: Sat, 13 Feb 2016 22:25:19 +0100 -Subject: [PATCH] add function for setting the text selections - ---- - src/vte/vteterminal.h | 4 ++++ - src/vtegtk.cc | 20 ++++++++++++++++++++ - 2 files changed, 24 insertions(+) - -diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h -index 9701320d..a11b4cb7 100644 ---- a/src/vte/vteterminal.h -+++ b/src/vte/vteterminal.h -@@ -196,6 +196,10 @@ _VTE_PUBLIC - void vte_terminal_select_all(VteTerminal *terminal) _VTE_CXX_NOEXCEPT _VTE_GNUC_NONNULL(1); - _VTE_PUBLIC - void vte_terminal_unselect_all(VteTerminal *terminal) _VTE_CXX_NOEXCEPT _VTE_GNUC_NONNULL(1); -+_VTE_PUBLIC -+void vte_terminal_select_text(VteTerminal *terminal, long start_col, long start_row, -+ long end_col, long end_row) _VTE_CXX_NOEXCEPT _VTE_GNUC_NONNULL(1); -+ - - /* By-word selection */ - _VTE_PUBLIC -diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index bdf36eac..d9e9f2ed 100644 ---- a/src/vtegtk.cc -+++ b/src/vtegtk.cc -@@ -2390,6 +2390,26 @@ vte_terminal_unselect_all(VteTerminal *terminal) - IMPL(terminal)->deselect_all(); - } - -+/** -+ * vte_terminal_select_text: -+ * @terminal: a #VteTerminal -+ * @start_col: the starting column for the selection -+ * @start_row: the starting row for the selection -+ * @end_col: the end column for the selection -+ * @end_row: the end row for the selection -+ * -+ * Sets the current selection region. -+ */ -+void -+vte_terminal_select_text(VteTerminal *terminal, -+ long start_col, long start_row, -+ long end_col, long end_row) noexcept -+{ -+ g_return_if_fail (VTE_IS_TERMINAL (terminal)); -+ -+ IMPL(terminal)->select_text(start_col, start_row, end_col, end_row); -+} -+ - /** - * vte_terminal_get_cursor_position: - * @terminal: a #VteTerminal diff --git a/pkgs/applications/terminal-emulators/termite/vte-ng-modified-patches/vte-0005-expose-function-for-getting-the-selected-text.patch b/pkgs/applications/terminal-emulators/termite/vte-ng-modified-patches/vte-0005-expose-function-for-getting-the-selected-text.patch deleted file mode 100644 index fe04434f4a2c..000000000000 --- a/pkgs/applications/terminal-emulators/termite/vte-ng-modified-patches/vte-0005-expose-function-for-getting-the-selected-text.patch +++ /dev/null @@ -1,29 +0,0 @@ ---- a/src/vte/vteterminal.h -+++ b/src/vte/vteterminal.h -@@ -204,7 +204,9 @@ - _VTE_PUBLIC - void vte_terminal_select_text(VteTerminal *terminal, long start_col, long start_row, - long end_col, long end_row) _VTE_CXX_NOEXCEPT _VTE_GNUC_NONNULL(1); -- -+_VTE_PUBLIC -+char * -+vte_terminal_get_selection(VteTerminal *terminal) _VTE_CXX_NOEXCEPT _VTE_GNUC_NONNULL(1); - - /* By-word selection */ - _VTE_PUBLIC ---- a/src/vtegtk.cc -+++ b/src/vtegtk.cc -@@ -2435,6 +2435,13 @@ - IMPL(terminal)->select_text(start_col, start_row, end_col, end_row); - } - -+char * -+vte_terminal_get_selection(VteTerminal *terminal) noexcept -+{ -+ g_return_val_if_fail(VTE_IS_TERMINAL(terminal), NULL); -+ return g_strdup (IMPL(terminal)->m_selection[vte::to_integral(vte::platform::ClipboardType::PRIMARY)]->str); -+} -+ - /** - * vte_terminal_get_cursor_position: - * @terminal: a #VteTerminal diff --git a/pkgs/applications/terminal-emulators/termite/wrapper.nix b/pkgs/applications/terminal-emulators/termite/wrapper.nix deleted file mode 100644 index ff4d329e52f3..000000000000 --- a/pkgs/applications/terminal-emulators/termite/wrapper.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ - makeWrapper, - symlinkJoin, - configFile ? null, - termite, -}: - -if configFile == null then - termite -else - symlinkJoin { - name = "termite-with-config-${termite.version}"; - - paths = [ termite ]; - nativeBuildInputs = [ makeWrapper ]; - - postBuild = '' - wrapProgram $out/bin/termite \ - --add-flags "--config ${configFile}" - ''; - - passthru.terminfo = termite.terminfo; - } diff --git a/pkgs/by-name/vt/vte/package.nix b/pkgs/by-name/vt/vte/package.nix index 21e5d6e42162..3cec20862b25 100644 --- a/pkgs/by-name/vt/vte/package.nix +++ b/pkgs/by-name/vt/vte/package.nix @@ -151,7 +151,6 @@ stdenv.mkDerivation (finalAttrs: { sakura stupidterm terminator - termite xfce4-terminal ; inherit blackbox-terminal; diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index 79f3d954d168..26528fc0f279 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -2080,6 +2080,7 @@ mapAliases { tepl = throw "'tepl' has been renamed to/replaced by 'libgedit-tepl'"; # Converted to throw 2025-10-27 termbook = throw "'termbook' has been removed because it is not maintained upstream and has insecure dependencies."; # Added 2025-12-01 terminus-nerdfont = throw "'terminus-nerdfont' has been renamed to/replaced by 'nerd-fonts.terminess-ttf'"; # Converted to throw 2025-10-27 + termite = throw "'termite' has been removed as it was broken and unmaintained upstream"; # Added 2026-05-22 testVersion = throw "'testVersion' has been renamed to/replaced by 'testers.testVersion'"; # Converted to throw 2025-10-27 tet = throw "'tet' has been removed for lack of maintenance"; # Added 2025-10-12 tewi-font = throw "'tewi-font' has been removed because it was removed from upstream"; # Added 2025-12-18 diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 830b0307bcb4..78a9fda5b799 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1352,11 +1352,6 @@ with pkgs; emojiSupport = true; }; - termite = callPackage ../applications/terminal-emulators/termite/wrapper.nix { - termite = termite-unwrapped; - }; - termite-unwrapped = callPackage ../applications/terminal-emulators/termite { }; - twine = with python3Packages; toPythonApplication twine; inherit (callPackages ../development/tools/ammonite { })