mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-25 15:11:35 +00:00
Merge pull request #4154 from k0ral/termite
Added termite package and updated vte to be compatible.
This commit is contained in:
commit
76c4278014
26
pkgs/applications/misc/termite/default.nix
Normal file
26
pkgs/applications/misc/termite/default.nix
Normal file
|
@ -0,0 +1,26 @@
|
|||
{ stdenv, fetchgit, pkgconfig, vte, gtk, ncurses }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "termite-${version}";
|
||||
version = "v7";
|
||||
|
||||
src = fetchgit {
|
||||
url = "https://github.com/thestinger/termite";
|
||||
rev = "f0ff025c1bb6a1e3fd83072f00c2dc42a0701f46";
|
||||
sha256 = "057yzlqvp84fkmhn4bz9071glj4rh4187xhg48cdppf2w6phcbxp";
|
||||
};
|
||||
|
||||
makeFlags = "VERSION=${version}";
|
||||
|
||||
buildInputs = [pkgconfig vte gtk ncurses];
|
||||
|
||||
installFlags = "PREFIX=$(out)";
|
||||
|
||||
meta = {
|
||||
description = "A simple VTE-based terminal";
|
||||
license = stdenv.lib.licenses.lgpl2Plus;
|
||||
homepage = https://github.com/thestinger/termite/;
|
||||
maintainers = with stdenv.lib.maintainers; [koral];
|
||||
platforms = stdenv.lib.platforms.all;
|
||||
};
|
||||
}
|
|
@ -1,7 +1,7 @@
|
|||
{ stdenv, fetchurl, intltool, pkgconfig, gnome3, ncurses, gobjectIntrospection }:
|
||||
{ stdenv, fetchurl, intltool, pkgconfig, gnome3, ncurses, gobjectIntrospection, vala, libxml2
|
||||
, selectTextPatch ? false }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
|
||||
versionMajor = "0.36";
|
||||
versionMinor = "3";
|
||||
moduleName = "vte";
|
||||
|
@ -13,6 +13,8 @@ stdenv.mkDerivation rec {
|
|||
sha256 = "54e5b07be3c0f7b158302f54ee79d4de1cb002f4259b6642b79b1e0e314a959c";
|
||||
};
|
||||
|
||||
patches = with stdenv.lib; optional selectTextPatch ./expose_select_text.patch;
|
||||
|
||||
buildInputs = [ gobjectIntrospection intltool pkgconfig gnome3.glib gnome3.gtk3 ncurses ];
|
||||
|
||||
configureFlags = [ "--enable-introspection" ];
|
||||
|
|
214
pkgs/desktops/gnome-3/3.12/core/vte/expose_select_text.patch
Normal file
214
pkgs/desktops/gnome-3/3.12/core/vte/expose_select_text.patch
Normal file
|
@ -0,0 +1,214 @@
|
|||
diff -aur vte-0.32.2-old/src/vte.c vte-0.32.2/src/vte.c
|
||||
--- vte-0.32.2-old/src/vte.c 2012-07-13 21:09:04.003969877 -0400
|
||||
+++ vte-0.32.2/src/vte.c 2012-08-30 04:30:04.285924831 -0400
|
||||
@@ -129,7 +129,6 @@
|
||||
gpointer data,
|
||||
GArray *attributes,
|
||||
gboolean include_trailing_spaces);
|
||||
-static void _vte_terminal_disconnect_pty_read(VteTerminal *terminal);
|
||||
static void _vte_terminal_disconnect_pty_write(VteTerminal *terminal);
|
||||
static void vte_terminal_stop_processing (VteTerminal *terminal);
|
||||
|
||||
@@ -3508,8 +3507,8 @@
|
||||
_vte_debug_print (VTE_DEBUG_IO, "removed poll of vte_terminal_io_read\n");
|
||||
terminal->pvt->pty_input_source = 0;
|
||||
}
|
||||
-static void
|
||||
-_vte_terminal_connect_pty_read(VteTerminal *terminal)
|
||||
+void
|
||||
+vte_terminal_connect_pty_read(VteTerminal *terminal)
|
||||
{
|
||||
if (terminal->pvt->pty_channel == NULL) {
|
||||
return;
|
||||
@@ -3560,8 +3559,8 @@
|
||||
}
|
||||
}
|
||||
|
||||
-static void
|
||||
-_vte_terminal_disconnect_pty_read(VteTerminal *terminal)
|
||||
+void
|
||||
+vte_terminal_disconnect_pty_read(VteTerminal *terminal)
|
||||
{
|
||||
if (terminal->pvt->pty_input_source != 0) {
|
||||
_vte_debug_print (VTE_DEBUG_IO, "disconnecting poll of vte_terminal_io_read\n");
|
||||
@@ -3708,8 +3707,8 @@
|
||||
return NULL;
|
||||
}
|
||||
|
||||
-static char *
|
||||
-_vte_terminal_get_user_shell_with_fallback (void)
|
||||
+char *
|
||||
+vte_terminal_get_user_shell_with_fallback (void)
|
||||
{
|
||||
char *command;
|
||||
const gchar *env;
|
||||
@@ -3744,7 +3743,7 @@
|
||||
char **argv2;
|
||||
char *shell = NULL;
|
||||
|
||||
- argv2 = __vte_pty_get_argv(command ? command : (shell = _vte_terminal_get_user_shell_with_fallback ()),
|
||||
+ argv2 = __vte_pty_get_argv(command ? command : (shell = vte_terminal_get_user_shell_with_fallback ()),
|
||||
argv,
|
||||
flags);
|
||||
g_free(shell);
|
||||
@@ -6545,6 +6544,28 @@
|
||||
}
|
||||
}
|
||||
|
||||
+/**
|
||||
+ * 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)
|
||||
+{
|
||||
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
|
||||
+
|
||||
+ _vte_invalidate_cursor_once(terminal, FALSE);
|
||||
+ terminal->pvt->screen->cursor_current.col = column;
|
||||
+ terminal->pvt->screen->cursor_current.row = row;
|
||||
+ _vte_invalidate_cursor_once(terminal, FALSE);
|
||||
+ _vte_check_cursor_blink(terminal);
|
||||
+ vte_terminal_queue_cursor_moved(terminal);
|
||||
+}
|
||||
+
|
||||
static GtkClipboard *
|
||||
vte_terminal_clipboard_get(VteTerminal *terminal, GdkAtom board)
|
||||
{
|
||||
@@ -6676,7 +6697,7 @@
|
||||
terminal->pvt->selection_start.row);
|
||||
|
||||
/* Temporarily stop caring about input from the child. */
|
||||
- _vte_terminal_disconnect_pty_read(terminal);
|
||||
+ vte_terminal_disconnect_pty_read(terminal);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
@@ -6693,7 +6714,7 @@
|
||||
terminal->pvt->selecting = FALSE;
|
||||
|
||||
/* Reconnect to input from the child if we paused it. */
|
||||
- _vte_terminal_connect_pty_read(terminal);
|
||||
+ vte_terminal_connect_pty_read(terminal);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
@@ -8994,7 +9015,7 @@
|
||||
#endif
|
||||
kill(terminal->pvt->pty_pid, SIGHUP);
|
||||
}
|
||||
- _vte_terminal_disconnect_pty_read(terminal);
|
||||
+ vte_terminal_disconnect_pty_read(terminal);
|
||||
_vte_terminal_disconnect_pty_write(terminal);
|
||||
if (terminal->pvt->pty_channel != NULL) {
|
||||
g_io_channel_unref (terminal->pvt->pty_channel);
|
||||
@@ -14384,7 +14405,7 @@
|
||||
g_object_freeze_notify(object);
|
||||
|
||||
if (pvt->pty != NULL) {
|
||||
- _vte_terminal_disconnect_pty_read(terminal);
|
||||
+ vte_terminal_disconnect_pty_read(terminal);
|
||||
_vte_terminal_disconnect_pty_write(terminal);
|
||||
|
||||
if (terminal->pvt->pty_channel != NULL) {
|
||||
@@ -14440,7 +14461,7 @@
|
||||
_vte_terminal_setup_utf8 (terminal);
|
||||
|
||||
/* Open channels to listen for input on. */
|
||||
- _vte_terminal_connect_pty_read (terminal);
|
||||
+ vte_terminal_connect_pty_read (terminal);
|
||||
|
||||
g_object_notify(object, "pty");
|
||||
g_object_notify(object, "pty-object");
|
||||
@@ -14567,6 +14588,50 @@
|
||||
}
|
||||
}
|
||||
|
||||
+/**
|
||||
+ * vte_terminal_get_selection_block_mode:
|
||||
+ * @terminal: a #VteTerminal
|
||||
+ *
|
||||
+ * Checks whether or not block selection is enabled.
|
||||
+ *
|
||||
+ * Returns: %TRUE if block selection is enabled, %FALSE if not
|
||||
+ */
|
||||
+gboolean
|
||||
+vte_terminal_get_selection_block_mode(VteTerminal *terminal) {
|
||||
+ g_return_val_if_fail(VTE_IS_TERMINAL(terminal), FALSE);
|
||||
+ return terminal->pvt->selection_block_mode;
|
||||
+}
|
||||
+
|
||||
+/**
|
||||
+ * vte_terminal_set_selection_block_mode:
|
||||
+ * @terminal: a #VteTerminal
|
||||
+ * @block_mode: whether block selection is enabled
|
||||
+ *
|
||||
+ * Sets whether or not block selection is enabled.
|
||||
+ */
|
||||
+void
|
||||
+vte_terminal_set_selection_block_mode(VteTerminal *terminal, gboolean block_mode) {
|
||||
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
|
||||
+ terminal->pvt->selection_block_mode = block_mode;
|
||||
+}
|
||||
+
|
||||
+/**
|
||||
+ * 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) {
|
||||
+ _vte_terminal_select_text(terminal, start_col, start_row, end_col, end_row, 0, 0);
|
||||
+}
|
||||
+
|
||||
void
|
||||
_vte_terminal_select_text(VteTerminal *terminal,
|
||||
long start_col, long start_row,
|
||||
diff -aur vte-0.32.2-old/src/vte.h vte-0.32.2/src/vte.h
|
||||
--- vte-0.32.2-old/src/vte.h 2012-07-13 21:09:04.003969877 -0400
|
||||
+++ vte-0.32.2/src/vte.h 2012-08-30 04:30:09.695999432 -0400
|
||||
@@ -296,6 +296,15 @@
|
||||
/* simple manipulation of selection */
|
||||
void vte_terminal_select_all(VteTerminal *terminal);
|
||||
void vte_terminal_select_none(VteTerminal *terminal);
|
||||
+gboolean vte_terminal_get_selection_block_mode(VteTerminal *terminal);
|
||||
+void vte_terminal_set_selection_block_mode(VteTerminal *terminal, gboolean block_mode);
|
||||
+void vte_terminal_select_text(VteTerminal *terminal,
|
||||
+ long start_col, long start_row,
|
||||
+ long end_col, long end_row);
|
||||
+
|
||||
+/* pause and unpause output */
|
||||
+void vte_terminal_disconnect_pty_read(VteTerminal *vte);
|
||||
+void vte_terminal_connect_pty_read(VteTerminal *vte);
|
||||
|
||||
/* Set the terminal's size. */
|
||||
void vte_terminal_set_size(VteTerminal *terminal,
|
||||
@@ -435,6 +444,8 @@
|
||||
GArray *attributes);
|
||||
void vte_terminal_get_cursor_position(VteTerminal *terminal,
|
||||
glong *column, glong *row);
|
||||
+void vte_terminal_set_cursor_position(VteTerminal *terminal,
|
||||
+ long column, long row);
|
||||
/* Display string matching: clear all matching expressions. */
|
||||
void vte_terminal_match_clear_all(VteTerminal *terminal);
|
||||
|
||||
@@ -484,6 +495,7 @@
|
||||
VtePty *vte_terminal_get_pty_object(VteTerminal *terminal);
|
||||
|
||||
char *vte_get_user_shell (void);
|
||||
+char *vte_terminal_get_user_shell_with_fallback(void);
|
||||
|
||||
/* Accessors for bindings. */
|
||||
#if !GTK_CHECK_VERSION (2, 91, 2)
|
|
@ -168,6 +168,8 @@ rec {
|
|||
|
||||
vte = callPackage ./core/vte { };
|
||||
|
||||
vte-select-text = callPackage ./core/vte { selectTextPatch = true; };
|
||||
|
||||
vino = callPackage ./core/vino { };
|
||||
|
||||
yelp = callPackage ./core/yelp { };
|
||||
|
@ -232,7 +234,7 @@ rec {
|
|||
libgit2-glib = callPackage ./misc/libgit2-glib { };
|
||||
|
||||
libmediaart = callPackage ./misc/libmediaart { };
|
||||
|
||||
|
||||
gexiv2 = callPackage ./misc/gexiv2 { };
|
||||
|
||||
gnome-tweak-tool = callPackage ./misc/gnome-tweak-tool { };
|
||||
|
|
|
@ -10103,6 +10103,11 @@ let
|
|||
inherit (pythonPackages) notify;
|
||||
};
|
||||
|
||||
termite = callPackage ../applications/misc/termite {
|
||||
gtk = gtk3;
|
||||
vte = gnome3_12.vte-select-text;
|
||||
};
|
||||
|
||||
tesseract = callPackage ../applications/graphics/tesseract { };
|
||||
|
||||
thinkingRock = callPackage ../applications/misc/thinking-rock { };
|
||||
|
|
Loading…
Reference in a new issue