New package: xbindkeys-config

The patch is borrowed verbatim from Debian. It is under the same
license as the rest of the package, and is necessary for the app to
work.

There does not seem to be a canonical upstream homepage for this app
other than Debian itself.

Change-Id: I4f0bec32a95778fb12a48bfb280386b65a0d0f9a

+169
+1
lib/maintainers.nix
··· 28 28 bbenoist = "Baptist BENOIST <return_0@live.com>"; 29 29 bdimcheff = "Brandon Dimcheff <brandon@dimcheff.com>"; 30 30 bennofs = "Benno Fünfstück <benno.fuenfstueck@gmail.com>"; 31 + benley = "Benjamin Staffin <benley@gmail.com>"; 31 32 berdario = "Dario Bertini <berdario@gmail.com>"; 32 33 bergey = "Daniel Bergey <bergey@teallabs.org>"; 33 34 bjg = "Brian Gough <bjg@gnu.org>";
+35
pkgs/tools/X11/xbindkeys-config/default.nix
··· 1 + { stdenv, fetchurl, libX11, gtk, pkgconfig, procps, makeWrapper, ... }: 2 + 3 + stdenv.mkDerivation rec { 4 + name = "xbindkeys-config-${version}"; 5 + version = "0.1.3"; 6 + 7 + buildInputs = [ gtk pkgconfig makeWrapper ]; 8 + 9 + src = fetchurl { 10 + url = "mirror://debian/pool/main/x/xbindkeys-config/xbindkeys-config_${version}.orig.tar.gz"; 11 + sha256 = "1rs3li2hyig6cdzvgqlbz0vw6x7rmgr59qd6m0cvrai8xhqqykda"; 12 + }; 13 + 14 + meta = { 15 + homepage = https://packages.debian.org/source/xbindkeys-config; 16 + description = "Graphical interface for configuring xbindkeys"; 17 + license = stdenv.lib.licenses.gpl2Plus; 18 + maintainers = with stdenv.lib.maintainers; [benley]; 19 + platforms = with stdenv.lib.platforms; linux; 20 + }; 21 + 22 + patches = [ ./xbindkeys-config-patch1.patch ]; 23 + 24 + # killall is dangerous on non-gnu platforms. Use pkill instead. 25 + postPatch = '' 26 + substituteInPlace middle.c --replace "killall" "pkill -x" 27 + ''; 28 + 29 + installPhase = '' 30 + mkdir -p $out/bin $out/share/man/man1 31 + gzip -c ${./xbindkeys-config.1} > $out/share/man/man1/xbindkeys-config.1.gz 32 + cp xbindkeys_config $out/bin/xbindkeys-config 33 + wrapProgram $out/bin/xbindkeys-config --prefix PATH ":" "${procps}/bin" 34 + ''; 35 + }
+108
pkgs/tools/X11/xbindkeys-config/xbindkeys-config-patch1.patch
··· 1 + --- 2 + Makefile | 6 +++--- 3 + menu.c | 11 ++++++++--- 4 + middle.c | 9 +++++++-- 5 + xbindkeys_config.c | 3 ++- 6 + 4 files changed, 20 insertions(+), 9 deletions(-) 7 + 8 + diff --git a/Makefile b/Makefile 9 + index 602875c..28e46cd 100644 10 + --- a/Makefile 11 + +++ b/Makefile 12 + @@ -1,9 +1,9 @@ 13 + # makefile cr�e par Laurent VUIBERT 14 + 15 + -CC= gcc -O3 -Wall 16 + +CC= gcc $(CFLAGS) 17 + STD= _GNU_SOURCE 18 + -GTK= `gtk-config --cflags --libs` 19 + -GTK2= `gtk-config --cflags` 20 + +GTK= `pkg-config --cflags --libs gtk+-2.0` 21 + +GTK2= `pkg-config --cflags gtk+-2.0` 22 + OBJS= xbindkeys_config.o menu.o middle.o speedc.o 23 + NOM= xbindkeys_config 24 + 25 + diff --git a/menu.c b/menu.c 26 + index ed3e7ec..f11526d 100644 27 + --- a/menu.c 28 + +++ b/menu.c 29 + @@ -283,6 +283,8 @@ void menu_manual (GtkMenuItem *menuitem, gpointer user_data) 30 + GtkWidget *window; 31 + GtkWidget *text; 32 + GtkWidget *vbox; 33 + + GtkTextBuffer *textbuffer; 34 + + GtkTextIter iter; 35 + 36 + window = gtk_window_new( GTK_WINDOW_TOPLEVEL ); 37 + gtk_window_set_title(GTK_WINDOW(window), 38 + @@ -293,10 +295,13 @@ void menu_manual (GtkMenuItem *menuitem, gpointer user_data) 39 + text = gtk_label_new("\nManual\n"); 40 + gtk_box_pack_start(GTK_BOX(vbox), text, FALSE, FALSE, 0); 41 + 42 + - text = gtk_text_new(NULL,NULL); 43 + +/* BDD - FIXME */ 44 + +/* text = gtk_text_new(NULL,NULL); */ 45 + + text = gtk_text_view_new(); 46 + + textbuffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (text)); 47 + + gtk_text_buffer_get_iter_at_offset (textbuffer, &iter, 0); 48 + 49 + - 50 + - gtk_text_insert (GTK_TEXT(text), NULL, NULL, NULL, 51 + + gtk_text_buffer_insert (textbuffer, &iter, 52 + MANUAL_TEXT, sizeof(MANUAL_TEXT)-1); 53 + gtk_box_pack_start(GTK_BOX(vbox), text, TRUE, TRUE, 0); 54 + gtk_widget_set_usize(text,300,250); 55 + diff --git a/middle.c b/middle.c 56 + index daa61aa..605ab10 100644 57 + --- a/middle.c 58 + +++ b/middle.c 59 + @@ -551,6 +551,8 @@ void view_generated_file() 60 + GtkWidget *window; 61 + GtkWidget *text; 62 + GtkWidget *src; 63 + + GtkTextBuffer *textbuffer; 64 + + GtkTextIter iter; 65 + char line [1024]; 66 + 67 + unlink(TEMP_FILE); 68 + @@ -561,11 +563,13 @@ void view_generated_file() 69 + gtk_window_set_title(GTK_WINDOW(window), "Generated File"); 70 + src = gtk_scrolled_window_new ( NULL, NULL ); 71 + gtk_widget_set_usize(src,500,400); 72 + - text = gtk_text_new (NULL, NULL); 73 + + text = gtk_text_view_new (); 74 + + textbuffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (text)); 75 + + gtk_text_buffer_get_iter_at_offset (textbuffer, &iter, 0); 76 + gtk_container_add (GTK_CONTAINER(src), text); 77 + 78 + while (fgets (line, sizeof(line), f)) 79 + - gtk_text_insert (GTK_TEXT(text), NULL, NULL, NULL, 80 + + gtk_text_buffer_insert (textbuffer, &iter, 81 + line, strlen(line)); 82 + 83 + gtk_container_add(GTK_CONTAINER(window),src); 84 + @@ -610,6 +614,7 @@ void save_file(char file_out[]) 85 + fprintf(f, "# m:xxx + c:xxx \n"); 86 + fprintf(f, "# Shift+... \n\n\n\n\n"); 87 + 88 + + 89 + if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(Flag_NumLock))) 90 + fprintf(f,"keystate_numlock = enable\n"); 91 + else 92 + diff --git a/xbindkeys_config.c b/xbindkeys_config.c 93 + index 75bad30..3c02a2b 100644 94 + --- a/xbindkeys_config.c 95 + +++ b/xbindkeys_config.c 96 + @@ -95,7 +95,8 @@ int main (int argc, char *argv[]) 97 + accel_group = gtk_accel_group_new(); 98 + menu=xbindkeys_config_menu(accel_group); 99 + gtk_box_pack_start(GTK_BOX(vbox),menu,FALSE,FALSE,0); 100 + - gtk_accel_group_attach(accel_group, GTK_OBJECT(window)); 101 + +/* BDD - FIXME - Don't need this? */ 102 + +/* gtk_accel_group_attach(accel_group, GTK_OBJECT(window)); */ 103 + 104 + middle= xbindkeys_config_middle(); 105 + gtk_box_pack_start(GTK_BOX(vbox),middle,TRUE,TRUE,0); 106 + -- 107 + 2.1.3 108 +
+21
pkgs/tools/X11/xbindkeys-config/xbindkeys-config.1
··· 1 + .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.27. 2 + .TH XBINDKEYS_CONFIG "1" "April 2002" "xbindkeys-config" "User Commands" 3 + .SH NAME 4 + xbindkeys-config \- GTK+ configuration tool for xbindkeys 5 + .SH "SYNOPSIS" 6 + xbindkeys-config 7 + [\-\-file|\-f file] 8 + [\-\-help|\-h] 9 + [\-\-show|\-s] 10 + .TP 11 + \fB\-h\fR, \fB\-\-help\fR 12 + This Help 13 + .TP 14 + \fB\-f\fR, \fB\-\-file\fR 15 + Use an alternative rc file 16 + .TP 17 + \fB\-s\fR, \fB\-\-show\fR 18 + show only the rc file 19 + .SH AUTHOR 20 + This manual page was written by Joerg Jaspert <joerg@debian.org>, 21 + for the Debian GNU/Linux system (but may be used by others).
+4
pkgs/top-level/all-packages.nix
··· 11798 11798 11799 11799 xbindkeys = callPackage ../tools/X11/xbindkeys { }; 11800 11800 11801 + xbindkeys-config = callPackage ../tools/X11/xbindkeys-config/default.nix { 11802 + gtk = gtk2; 11803 + }; 11804 + 11801 11805 xbmcPlain = callPackage ../applications/video/xbmc { 11802 11806 ffmpeg = ffmpeg_1; 11803 11807 };