diff options
Diffstat (limited to 'pkgs/applications/terminal-emulators')
10 files changed, 243 insertions, 54 deletions
diff --git a/pkgs/applications/terminal-emulators/alacritty/default.nix b/pkgs/applications/terminal-emulators/alacritty/default.nix index 72e00cb15a70..cd372b79c26b 100644 --- a/pkgs/applications/terminal-emulators/alacritty/default.nix +++ b/pkgs/applications/terminal-emulators/alacritty/default.nix @@ -52,16 +52,16 @@ let in rustPlatform.buildRustPackage rec { pname = "alacritty"; - version = "0.5.0"; + version = "0.6.0"; src = fetchFromGitHub { owner = "alacritty"; repo = pname; rev = "v${version}"; - sha256 = "1948j57xhqvc5y876s929x9rhd6j0xnw5c91g1zqw2rfncn602g2"; + sha256 = "vQdNwNiUvoJWRT1foPRadirI2zWjnzU3sGnIxeHKlj8="; }; - cargoSha256 = "17lyzcj07f0vyki3091vgjd0w8ki11sw5m8gb3bxdph1dl04rria"; + cargoSha256 = "1PQSg6EmwVMZj2ALw6qsbtPMCtALVHx5TR05FjGD/QE="; nativeBuildInputs = [ cmake @@ -74,7 +74,7 @@ rustPlatform.buildRustPackage rec { ]; buildInputs = rpathLibs - ++ lib.optionals stdenv.isDarwin [ + ++ lib.optionals stdenv.isDarwin [ AppKit CoreGraphics CoreServices @@ -136,7 +136,7 @@ rustPlatform.buildRustPackage rec { description = "A cross-platform, GPU-accelerated terminal emulator"; homepage = "https://github.com/alacritty/alacritty"; license = licenses.asl20; - maintainers = with maintainers; [ filalex77 mic92 cole-h ma27 ]; + maintainers = with maintainers; [ Br1ght0ne mic92 cole-h ma27 ]; platforms = platforms.unix; }; } diff --git a/pkgs/applications/terminal-emulators/hyper/default.nix b/pkgs/applications/terminal-emulators/hyper/default.nix index 1535b1a2568e..e5ea0a67f93a 100644 --- a/pkgs/applications/terminal-emulators/hyper/default.nix +++ b/pkgs/applications/terminal-emulators/hyper/default.nix @@ -11,11 +11,11 @@ let ]; in stdenv.mkDerivation rec { - version = "2.1.2"; + version = "3.0.2"; pname = "hyper"; src = fetchurl { url = "https://github.com/zeit/hyper/releases/download/${version}/hyper_${version}_amd64.deb"; - sha256 = "1n4qlbk7q9zkhhg72mdks95g15xgyrc6ixf882ghvrqghd4zxplm"; + sha256 = "0fv4wv5f8nc739bna83qxmgrvvbyq4w9ch764q2f12wjygrz336p"; }; buildInputs = [ dpkg ]; unpackPhase = '' diff --git a/pkgs/applications/terminal-emulators/kitty/default.nix b/pkgs/applications/terminal-emulators/kitty/default.nix index e2eda846d60f..b6a93aefb594 100644 --- a/pkgs/applications/terminal-emulators/kitty/default.nix +++ b/pkgs/applications/terminal-emulators/kitty/default.nix @@ -21,14 +21,14 @@ with python3Packages; buildPythonApplication rec { pname = "kitty"; - version = "0.19.1"; + version = "0.19.2"; format = "other"; src = fetchFromGitHub { owner = "kovidgoyal"; repo = "kitty"; rev = "v${version}"; - sha256 = "145fx4nnn0gszawllfwqf1h65ak0ij6ffargs7y0cgaxsc991s6m"; + sha256 = "06mlrc283k5f75y36fmmaxnj29jfc1s8vaykjph6a86m1gcl5wgi"; }; buildInputs = [ @@ -53,10 +53,10 @@ buildPythonApplication rec { nativeBuildInputs = [ pkgconfig sphinx ncurses + installShellFiles ] ++ stdenv.lib.optionals stdenv.isDarwin [ imagemagick libicns # For the png2icns tool. - installShellFiles ]; propagatedBuildInputs = stdenv.lib.optional stdenv.isLinux libGL; @@ -113,10 +113,10 @@ buildPythonApplication rec { wrapProgram "$out/bin/kitty" --prefix PATH : "$out/bin:${stdenv.lib.makeBinPath [ imagemagick xsel ncurses.dev ]}" runHook postInstall - mkdir -p "$out/share/"{bash-completion/completions,fish/vendor_completions.d,zsh/site-functions} - "$out/bin/kitty" + complete setup fish > "$out/share/fish/vendor_completions.d/kitty.fish" - "$out/bin/kitty" + complete setup bash > "$out/share/bash-completion/completions/kitty.bash" - "$out/bin/kitty" + complete setup zsh > "$out/share/zsh/site-functions/_kitty" + installShellCompletion --cmd kitty \ + --bash <("$out/bin/kitty" + complete setup bash) \ + --fish <("$out/bin/kitty" + complete setup fish) \ + --zsh <("$out/bin/kitty" + complete setup zsh) ''; postInstall = '' diff --git a/pkgs/applications/terminal-emulators/mlterm/default.nix b/pkgs/applications/terminal-emulators/mlterm/default.nix index 853fe22f0bf2..9c01430d6dfc 100644 --- a/pkgs/applications/terminal-emulators/mlterm/default.nix +++ b/pkgs/applications/terminal-emulators/mlterm/default.nix @@ -1,4 +1,4 @@ -{ stdenv, lib, fetchurl, pkgconfig, autoconf, makeDesktopItem +{ stdenv, lib, fetchFromGitHub, pkgconfig, autoconf, makeDesktopItem , libX11, gdk-pixbuf, cairo, libXft, gtk3, vte , harfbuzz #substituting glyphs with opentype fonts , fribidi, m17n_lib #bidi and encoding @@ -10,11 +10,13 @@ stdenv.mkDerivation rec { pname = "mlterm"; - version = "3.9.0"; + version = "3.9.1"; - src = fetchurl { - url = "mirror://sourceforge/project/mlterm/01release/${pname}-${version}/${pname}-${version}.tar.gz"; - sha256 = "17h6j4nmbyvsx2shm8mqm7smzq9i7mbqxjw19c2m0rhf5yzqhr3k"; + src = fetchFromGitHub { + owner = "arakiken"; + repo = pname; + rev = "rel-${lib.replaceStrings [ "." ] [ "_" ] version}"; # 3.9.1 -> rel-3_9_1 + sha256 = "1hh196kz2n3asv8r8r2bdk5b2w93zq7rw4880ciiq1554h0ib7fj"; }; nativeBuildInputs = [ pkgconfig autoconf wrapGAppsHook ]; diff --git a/pkgs/applications/terminal-emulators/roxterm/default.nix b/pkgs/applications/terminal-emulators/roxterm/default.nix index d02296f0e16d..88ff0dc460ec 100644 --- a/pkgs/applications/terminal-emulators/roxterm/default.nix +++ b/pkgs/applications/terminal-emulators/roxterm/default.nix @@ -1,7 +1,7 @@ { at-spi2-core, cmake, dbus, dbus-glib, docbook_xsl, epoxy, fetchpatch, fetchFromGitHub , glib, gtk3, harfbuzz, libXdmcp, libXtst, libpthreadstubs , libselinux, libsepol, libtasn1, libxkbcommon, libxslt, p11-kit, pcre2 -, pkgconfig, stdenv, utillinuxMinimal, vte, wrapGAppsHook, xmlto +, pkgconfig, stdenv, util-linuxMinimal, vte, wrapGAppsHook, xmlto }: stdenv.mkDerivation rec { @@ -29,7 +29,7 @@ stdenv.mkDerivation rec { buildInputs = [ gtk3 dbus dbus-glib vte pcre2 harfbuzz libpthreadstubs libXdmcp - utillinuxMinimal glib docbook_xsl xmlto libselinux + util-linuxMinimal glib docbook_xsl xmlto libselinux libsepol libxkbcommon epoxy at-spi2-core libXtst libtasn1 p11-kit ]; diff --git a/pkgs/applications/terminal-emulators/termite/default.nix b/pkgs/applications/terminal-emulators/termite/default.nix index 63565e207f77..2f991ca1c7e6 100644 --- a/pkgs/applications/terminal-emulators/termite/default.nix +++ b/pkgs/applications/terminal-emulators/termite/default.nix @@ -4,6 +4,8 @@ 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 { @@ -11,26 +13,17 @@ let url = "https://github.com/thestinger/vte-ng/commit/342e26574f50dcd40bbeaad9e839c2a6144d0c1c.patch"; sha256 = "1b0k9ys545q85vfki417p21kis9f36yd0hyp12phayynss6fn715"; }) - (fetchpatch { - name = "0002-expose-function-for-setting-cursor-position.patch"; - url = "https://github.com/thestinger/vte-ng/commit/5ae3acb69474fe5bc43767a4a3625e9ed23607a1.patch"; - sha256 = "091sb44g2pl0zbxnxidpfmsqqc65dmkakhjb0wvlnsjckqalhs89"; - }) - (fetchpatch { - name = "0003-add-function-for-setting-the-text-selections.patch"; - url = "https://github.com/thestinger/vte-ng/commit/742d57ecf15e24f6a5f2133a81b6c70acc8ff03c.patch"; - sha256 = "12rq3svbj1nzridbssxsvmmb8njky3w8qdnkymz7850b3kqg277x"; - }) + # 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"; }) - (fetchpatch { - name = "0005-expose-function-for-getting-the-selected-text.patch"; - url = "https://github.com/thestinger/vte-ng/commit/dd74ae7c06e8888af2fc090ac6f8920a9d8227fb.patch"; - sha256 = "0pbnbkwqxm4p9xsgvqwayvh8srk5z1kyjnigmahf9mlqn7hi6v27"; - }) + # 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 ]; }); diff --git a/pkgs/applications/terminal-emulators/termite/vte-ng-modified-patches/vte-0002-expose-function-for-setting-cursor-position.patch b/pkgs/applications/terminal-emulators/termite/vte-ng-modified-patches/vte-0002-expose-function-for-setting-cursor-position.patch new file mode 100644 index 000000000000..8f5c0dab39ad --- /dev/null +++ b/pkgs/applications/terminal-emulators/termite/vte-ng-modified-patches/vte-0002-expose-function-for-setting-cursor-position.patch @@ -0,0 +1,61 @@ +From 5ae3acb69474fe5bc43767a4a3625e9ed23607a1 Mon Sep 17 00:00:00 2001 +From: Jelle van der Waa <jelle@vdwaa.nl> +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 new file mode 100644 index 000000000000..203228dae34d --- /dev/null +++ b/pkgs/applications/terminal-emulators/termite/vte-ng-modified-patches/vte-0003-add-function-for-setting-the-text-selections.patch @@ -0,0 +1,56 @@ +From 742d57ecf15e24f6a5f2133a81b6c70acc8ff03c Mon Sep 17 00:00:00 2001 +From: Jelle van der Waa <jelle@vdwaa.nl> +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 new file mode 100644 index 000000000000..0a2c52722268 --- /dev/null +++ b/pkgs/applications/terminal-emulators/termite/vte-ng-modified-patches/vte-0005-expose-function-for-getting-the-selected-text.patch @@ -0,0 +1,29 @@ +--- 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_SELECTION_PRIMARY]->str); ++} ++ + /** + * vte_terminal_get_cursor_position: + * @terminal: a #VteTerminal diff --git a/pkgs/applications/terminal-emulators/xterm/default.nix b/pkgs/applications/terminal-emulators/xterm/default.nix index 109444fc5180..1ec704f5d438 100644 --- a/pkgs/applications/terminal-emulators/xterm/default.nix +++ b/pkgs/applications/terminal-emulators/xterm/default.nix @@ -1,29 +1,41 @@ -{ stdenv, fetchurl, fetchpatch, xorg, ncurses, freetype, fontconfig, pkgconfig, makeWrapper -, enableDecLocator ? true -}: +{ stdenv, fetchurl, fetchpatch, xorg, ncurses, freetype, fontconfig, pkgconfig +, makeWrapper, nixosTests, writeScript, common-updater-scripts, git, nixfmt, nix +, gnused, coreutils, enableDecLocator ? true }: stdenv.mkDerivation rec { - name = "xterm-353"; + pname = "xterm"; + version = "362"; src = fetchurl { urls = [ - "ftp://ftp.invisible-island.net/xterm/${name}.tgz" - "https://invisible-mirror.net/archives/xterm/${name}.tgz" - ]; - sha256 = "0s5pkfn4r8iy09s1q1y78zhnr9f3sm6wgbqir7azaqggkppd68g5"; + "ftp://ftp.invisible-island.net/xterm/${pname}-${version}.tgz" + "https://invisible-mirror.net/archives/xterm/${pname}-${version}.tgz" + ]; + sha256 = "HU/+Im+o8CGFm7wwB3iP9jpGoxJC2b2ae9fr4k6BrKI="; }; - buildInputs = - [ xorg.libXaw xorg.xorgproto xorg.libXt xorg.libXext xorg.libX11 xorg.libSM xorg.libICE - ncurses freetype fontconfig pkgconfig xorg.libXft xorg.luit makeWrapper - ]; + buildInputs = [ + xorg.libXaw + xorg.xorgproto + xorg.libXt + xorg.libXext + xorg.libX11 + xorg.libSM + xorg.libICE + ncurses + freetype + fontconfig + pkgconfig + xorg.libXft + xorg.luit + makeWrapper + ]; - patches = [ - ./sixel-256.support.patch - ] ++ stdenv.lib.optional stdenv.hostPlatform.isMusl - (fetchpatch { + patches = [ ./sixel-256.support.patch ] + ++ stdenv.lib.optional stdenv.hostPlatform.isMusl (fetchpatch { name = "posix-ptys.patch"; - url = "https://git.alpinelinux.org/aports/plain/community/xterm/posix-ptys.patch?id=3aa532e77875fa1db18c7fcb938b16647031bcc1"; + url = + "https://git.alpinelinux.org/aports/plain/community/xterm/posix-ptys.patch?id=3aa532e77875fa1db18c7fcb938b16647031bcc1"; sha256 = "0czgnsxkkmkrk1idw69qxbprh0jb4sw3c24zpnqq2v76jkl7zvlr"; }); @@ -62,10 +74,46 @@ stdenv.mkDerivation rec { install -D -t $out/share/icons/hicolor/48x48/apps icons/xterm-color_48x48.xpm ''; + passthru = { + tests = { inherit (nixosTests) xterm; }; + + updateScript = let + # Tags that end in letters are unstable + suffixes = stdenv.lib.concatStringsSep " " + (map (c: "-c versionsort.suffix='${c}'") + (stdenv.lib.stringToCharacters "abcdefghijklmnopqrstuvwxyz")); + in writeScript "update.sh" '' + #!${stdenv.shell} + set -o errexit + PATH=${ + stdenv.lib.makeBinPath [ + common-updater-scripts + git + nixfmt + nix + coreutils + gnused + ] + } + + oldVersion="$(nix-instantiate --eval -E "with import ./. {}; lib.getVersion ${pname}" | tr -d '"')" + latestTag="$(git ${suffixes} ls-remote --exit-code --refs --sort='version:refname' --tags git@github.com:ThomasDickey/xterm-snapshots.git 'xterm-*' | tail --lines=1 | cut --delimiter='/' --fields=3 | sed 's|^xterm-||g')" + + if [ ! "$oldVersion" = "$latestTag" ]; then + update-source-version ${pname} "$latestTag" --version-key=version --print-changes + nixpkgs="$(git rev-parse --show-toplevel)" + default_nix="$nixpkgs/pkgs/applications/terminal-emulators/xterm/default.nix" + nixfmt "$default_nix" + else + echo "${pname} is already up-to-date" + fi + ''; + }; + meta = { homepage = "https://invisible-island.net/xterm"; license = with stdenv.lib.licenses; [ mit ]; - maintainers = with stdenv.lib.maintainers; [vrthra]; + maintainers = with stdenv.lib.maintainers; [ nequissimus vrthra ]; platforms = with stdenv.lib.platforms; linux ++ darwin; }; } |