debian/0000755000000000000000000000000012141765565007202 5ustar debian/postinst0000644000000000000000000000150412141765320010775 0ustar #! /bin/sh # postinst script for ratpoison set -e case "$1" in configure|abort-remove|abort-deconfigure) # 20 to start with, ## when depending again on 9menu: ## plus 20 as we have menu support configured ## plus 10 as it can restart other wm's with :newwm or menu update-alternatives --install /usr/bin/x-window-manager \ x-window-manager /usr/bin/ratpoison 20 \ --slave /usr/share/man/man1/x-window-manager.1.gz \ x-window-manager.1.gz /usr/share/man/man1/ratpoison.1.gz ;; abort-upgrade) ;; *) echo "postinst called with unknown argument \`$1'" >&2 exit 1 ;; esac # taken from dh_pysupport if [ "$1" = "configure" ] && which update-python-modules >/dev/null 2>&1; then update-python-modules -i /usr/share/python-support/ratpoison fi #DEBHELPER# exit 0 debian/ratpoison.doc-base0000644000000000000000000000043512141765320012606 0ustar Document: ratpoison Title: Debian ratpoison Manual Author: Shawn Betts Abstract: This manual describes the ratpoison window manager Section: Window Managers Format: info Index: /usr/share/info/ratpoison.info.gz Files: /usr/share/info/ratpoison.info.gz debian/watch0000644000000000000000000000015712141765320010223 0ustar # See uscan(1) for format version=2 http://savannah.nongnu.org/download/ratpoison/ratpoison-([0-9.]*)\.tar\.gz debian/compat0000644000000000000000000000000212141765320010365 0ustar 5 debian/README.Debian0000644000000000000000000000125512141765320011233 0ustar ratpoison for Debian -------------------- Beside some patches stolen from the ratpoison mailinglist or directly from ratpoison's cvs to fix some bugs, the Debian version of ratpoison has the following feature-extending patches applied: brl-enlarge.diff: Add remove{left,right,up,down} extending the current frame deleting frames in the given direction. brl-menu.diff: add default alias "menu" with binding "." and advertise it. For information how to tweak the menu (setting your favorite colours, using another program or how it works at all, read the comments within /etc/X11/ratpoison/ratpoisonmenu ) -- Bernhard R. Link , Sat, 20 May 2006 13:45:34 +0200 debian/rules0000755000000000000000000001001112141765320010240 0ustar #!/usr/bin/make -f # Uncomment this to turn on verbose mode. #export DH_VERBOSE=1 # These are used for cross-compiling and for saving the configure script # from having to guess our platform (since we know it already) DEB_HOST_GNU_TYPE := $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) DEB_BUILD_GNU_TYPE := $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) ifeq ($(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE)) BUILD_SYSTEM = --build $(DEB_BUILD_GNU_TYPE) else BUILD_SYSTEM = --build $(DEB_BUILD_GNU_TYPE) --host $(DEB_HOST_GNU_TYPE) endif CFLAGS := $(shell dpkg-buildflags --get CFLAGS) CPPFLAGS := $(shell dpkg-buildflags --get CPPFLAGS) LDFLAGS := $(shell dpkg-buildflags --get LDFLAGS) CFLAGS += -Wall LDFLAGS += -Wl,-z,syms ifneq (,$(filter ratpoison:gendeps,$(DEB_BUILD_OPTIONS))) CONFIG_OPTIONS = else CONFIG_OPTIONS = --disable-dependency-tracking endif ifneq (,$(filter ratpoison:noxft,$(DEB_BUILD_OPTIONS))) CONFIG_OPTIONS += --without-xft else CONFIG_OPTIONS += --with-xft endif ifneq (,$(filter ratpoison:readline,$(DEB_BUILD_OPTIONS))) CONFIG_OPTIONS += --enable-history else CONFIG_OPTIONS += --disable-history endif ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) MAKEFLAGS += -j$(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) endif autoreconf-stamp: configure.ac Makefile.am src/Makefile.am contrib/Makefile.am doc/Makefile.am dh_testdir autoreconf -i touch autoreconf-stamp config.status: autoreconf-stamp dh_testdir ./configure $(BUILD_SYSTEM) \ --prefix=/usr \ --mandir=\$${prefix}/share/man --infodir=\$${prefix}/share/info \ --with-xterm=x-terminal-emulator \ --with-menu="/etc/X11/ratpoison/ratpoisonmenu debian.menu" \ $(CONFIG_OPTIONS) \ --x-includes="" --x-libraries="" \ CFLAGS='$(CFLAGS)' CPPFLAGS='$(CPPFLAGS)' LDFLAGS='$(LDFLAGS)' # libXext is not needed for dynamic linking: sed -i -e '/^X_LIBS =/s/-lXext //' src/Makefile # do not delete config.status if above rule failed, # as that might hide other left over files that need cleaning .PRECIOUS: config.status build-arch: build-arch-stamp build-arch-stamp: config.status dh_testdir $(MAKE) # bindings for the different languages unset RATPOISON ; cd contrib && ./genrpbindings # manpage for rpws pod2man contrib/rpws rpws.1 touch build-arch-stamp build-indep: build-indep-stamp build-indep-stamp: touch build-indep-stamp build: build-arch build-indep clean: dh_testdir dh_testroot rm -f build-arch-stamp build-indep-stamp autoreconf-stamp if [ -e config.status ] ; then $(MAKE) maintainer-clean ; fi rm -f m4/pkg.m4 ! test -f config.log -rm -f contrib/Ratpoison.pm contrib/ratpoison-cmd.el contrib/ratpoison.lisp contrib/ratpoison.py contrib/ratpoison.rb m4/package.m4 -rm -rf build-aux -rm -f rpws.1 -rm -f config.sub config.guess dh_clean # Build architecture-independent files binary-indep: build-indep-stamp # We have nothing to do # Build architecture-dependent files binary-arch: build-arch-stamp dh_testdir dh_testroot dh_prep dh_installdirs $(MAKE) install pkgdatadir=/usr/share/doc/ratpoison/examples DESTDIR=$(CURDIR)/debian/ratpoison # since Debian uses gnu install-info, this seems to need manual removing... find debian/ratpoison -name "dir" -print -delete # Those are installed to different places already by dh_* rm debian/ratpoison/usr/share/doc/ratpoison/COPYING rm debian/ratpoison/usr/share/doc/ratpoison/ChangeLog # not needed two times: rm debian/ratpoison/usr/share/doc/ratpoison/examples/rpws # The menu command: install -D -m 0755 debian/callmenu.sh debian/ratpoison/etc/X11/ratpoison/ratpoisonmenu dh_install dh_installchangelogs ChangeLog dh_installdocs dh_installexamples dh_installemacsen dh_installmenu dh_installinfo doc/ratpoison.info dh_installman rpws.1 dh_link dh_strip dh_compress find debian/ratpoison -name "dir.gz" -print -delete dh_fixperms dh_installdeb dh_shlibdeps dh_gencontrol dh_md5sums dh_builddeb binary: binary-indep binary-arch .PHONY: build-arch build-indep build clean binary-indep binary-arch binary maintainer-clean maintainer-unclean debian/emacsen-remove0000644000000000000000000000037512141765320012025 0ustar #!/bin/sh -e # /usr/lib/emacsen-common/packages/remove/ratpoison FLAVOR=$1 PACKAGE=ratpoison if [ ${FLAVOR} != emacs ]; then echo remove/${PACKAGE}: purging byte-compiled files for ${FLAVOR} rm -rf /usr/share/${FLAVOR}/site-lisp/${PACKAGE} fi debian/patches/0000755000000000000000000000000012141765322010620 5ustar debian/patches/series0000644000000000000000000000011212141765320012025 0ustar 0001-add-with-menu.patch 0002-add-removeleft-up-right-down-commands.patch debian/patches/0002-add-removeleft-up-right-down-commands.patch0000644000000000000000000004265112141765322021427 0ustar From 83aab149d2d17b0cfc6749631a6fc928d8067d42 Mon Sep 17 00:00:00 2001 From: "Bernhard R. Link" Date: Tue, 12 Feb 2013 22:50:17 +0100 Subject: add removeleft/up/right/down commands This patch adds new removeleft/up/right/down commands to extend the current frame in the given direction, removing all frames in the way. Default key-bindings are C-t M-arrow-keys. * src/split.c: new functions enlarge_frame_{left,up,right,down} to enlarge a frame in a given direction, optionally removing all direct adjacent frames. (remove_frame): moved code to new rotine maximaize_all_in_frame. (find_frame_{left,up,right,down}): try harder to find a frame in the specified direction. (So that it also works with parts of the screen not beeing in any frame). * src/split.h: added prototypes for enlarge_frame_{left,up,right,down} * src/actions.{c,h}: Added cmd_remove{left,up,right,down} calling enlarge_frame_*, added C-t M-{Left,Right,Up,Down} as keybindings. * doc/ratpoison.1: Document the new commands and keybindings. --- doc/ratpoison.1 | 12 ++ src/actions.c | 40 +++++++ src/actions.h | 4 + src/split.c | 347 ++++++++++++++++++++++++++++++++++++++++++++++++++++--- src/split.h | 4 + 5 files changed, 392 insertions(+), 15 deletions(-) diff --git a/doc/ratpoison.1 b/doc/ratpoison.1 index 8b53288..fcac104 100644 --- a/doc/ratpoison.1 +++ b/doc/ratpoison.1 @@ -510,6 +510,18 @@ Use "\fBlisthook\fP \fIhook\fP" to get a list of all attached commands. .cmd remove ( C\-t R ) Remove the current frame and extend some frames around to fill the remaining gap. +.cmd removedown ( C\-t M\-Down ) +Kill frames directly below the current frame, extending the current +frame as much as possible. +.cmd removeleft ( C\-t M\-Left ) +Kill frames directly left of the current frame, extending the current +frame as much as possible. +.cmd removeup ( C\-t M\-Up ) +Kill frames directly above the current frame, extending the current +frame as much as possible. +.cmd removeright ( C\-t M\-Right ) +Kill frames directly right of the current frame, extending the current +frame as much as possible. .cmd resize [ deltax deltay ] ( C\-t r ) If \fIdeltax\fP and \fIdeltay\fP are supplied, resize the current frame by that (i.e. move the bottom right corner by the given offsets and then diff --git a/src/actions.c b/src/actions.c index a1ff236..0ec8dab 100644 --- a/src/actions.c +++ b/src/actions.c @@ -324,6 +324,10 @@ init_user_commands(void) "Hook: ", arg_HOOK, "Command: ", arg_COMMAND); add_command ("remove", cmd_remove, 0, 0, 0); + add_command ("removeup", cmd_removeup, 0, 0, 0); + add_command ("removedown", cmd_removedown, 0, 0, 0); + add_command ("removeleft", cmd_removeleft, 0, 0, 0); + add_command ("removeright", cmd_removeright, 0, 0, 0); add_command ("resize", cmd_resize, 2, 0, 2, "", arg_NUMBER, "", arg_NUMBER); @@ -788,6 +792,10 @@ initialize_default_keybindings (void) add_keybinding (XK_Down, 0, "focusdown", map); add_keybinding (XK_Q, 0, "only", map); add_keybinding (XK_R, 0, "remove", map); + add_keybinding (XK_Left, RP_META_MASK, "removeleft", map); + add_keybinding (XK_Right, RP_META_MASK, "removeright", map); + add_keybinding (XK_Up, RP_META_MASK, "removeup", map); + add_keybinding (XK_Down, RP_META_MASK, "removedown", map); add_keybinding (XK_f, 0, "fselect", map); add_keybinding (XK_f, RP_CONTROL_MASK, "fselect", map); add_keybinding (XK_F, 0, "curframe", map); @@ -2991,6 +2999,38 @@ cmd_remove (int interactive UNUSED, struct cmdarg **args UNUSED) } cmdret * +cmd_removeup (int interactive UNUSED, struct cmdarg **args UNUSED) +{ + push_frame_undo (current_screen()); /* fdump to stack */ + enlarge_frame_up (current_frame(), 1); + return cmdret_new(RET_SUCCESS, NULL); +} + +cmdret * +cmd_removedown (int interactive UNUSED, struct cmdarg **args UNUSED) +{ + push_frame_undo (current_screen()); /* fdump to stack */ + enlarge_frame_down (current_frame(), 1); + return cmdret_new(RET_SUCCESS, NULL); +} + +cmdret * +cmd_removeleft (int interactive UNUSED, struct cmdarg **args UNUSED) +{ + push_frame_undo (current_screen()); /* fdump to stack */ + enlarge_frame_left (current_frame(), 1); + return cmdret_new(RET_SUCCESS, NULL); +} + +cmdret * +cmd_removeright (int interactive UNUSED, struct cmdarg **args UNUSED) +{ + push_frame_undo (current_screen()); /* fdump to stack */ + enlarge_frame_right (current_frame(), 1); + return cmdret_new(RET_SUCCESS, NULL); +} + +cmdret * cmd_shrink (int interactive UNUSED, struct cmdarg **args UNUSED) { push_frame_undo (current_screen()); /* fdump to stack */ diff --git a/src/actions.h b/src/actions.h index 5db4a56..ec26b01 100644 --- a/src/actions.h +++ b/src/actions.h @@ -168,6 +168,10 @@ RP_CMD (quit); RP_CMD (redisplay); RP_CMD (remhook); RP_CMD (remove); +RP_CMD (removedown); +RP_CMD (removeup); +RP_CMD (removeleft); +RP_CMD (removeright); RP_CMD (rename); RP_CMD (resize); RP_CMD (restart); diff --git a/src/split.c b/src/split.c index 1a8bf8e..b6d1bd7 100644 --- a/src/split.c +++ b/src/split.c @@ -701,6 +701,301 @@ frame_overlaps (rp_frame *frame) return 0; } + +static void +delete_frame (rp_frame *frame) +{ + rp_screen *s; + rp_window *win; + + if (frame == NULL) return; + + s = frames_screen (frame); + + list_del (&frame->node); + win = find_window_number (frame->win_number); + hide_window (win); + hide_others (win); + + frame_free (s, frame); +} + +static void +maximize_all_in_frame (rp_frame *frame) +{ + rp_window *win; + + /* The current frame fits into the new space so keep its + new frame parameters and maximize the window to fit + the new frame size. */ + if (frame->win_number != EMPTY) + { + win = find_window_number (frame->win_number); + maximize_all_windows_in_frame (frame); + XRaiseWindow (dpy, win->w); + } +} + +void +enlarge_frame_left (rp_frame *frame, int remove) +{ + rp_screen *s = frames_screen (frame); + rp_frame *cur; + struct list_head *tmp, *iter; + + int old_x = frame_left(frame); + int new_x = screen_left(s); + + list_for_each_entry (cur, &s->frames, node) + { + if (cur == frame) + continue; + if (frame_top(frame) < frame_bottom(cur) + && frame_top(cur) < frame_bottom(frame)) + { + int cur_border = frame_right (cur); + + if (cur_border > new_x && cur_border <= old_x && + (!remove || cur_border < old_x)) + new_x = cur_border; + } + } + if (remove) list_for_each_safe_entry (cur, iter, tmp, &s->frames, node) + { + if (cur == frame) + continue; + if (frame_top(frame) < frame_bottom(cur) + && frame_top(cur) < frame_bottom(frame)) + { + int cur_border = frame_right (cur); + int opposite_border = frame_left (cur); + + if (remove && cur_border == old_x) + { + if (opposite_border == new_x) + { + if (frame_top(frame) > frame_top(cur)) + { + cur->height = frame_top(frame) - frame_top(cur); + maximize_all_in_frame(cur); + } + else if (frame_bottom(frame) < frame_bottom(cur)) + { + cur->height = frame_bottom(cur) - frame_bottom(frame); + cur->y = frame_bottom(frame); + maximize_all_in_frame(cur); + } + else + delete_frame(cur); + } + else + { + cur->width -= old_x - new_x; + maximize_all_in_frame(cur); + } + } + } + } + frame->width += frame->x - new_x; + frame->x = new_x; + maximize_all_in_frame(frame); +} + +void +enlarge_frame_right (rp_frame *frame, int remove) +{ + rp_screen *s = frames_screen (frame); + rp_frame *cur; + struct list_head *tmp, *iter; + + int old_x = frame_right(frame); + int new_x = screen_right(s); + + list_for_each_entry (cur, &s->frames, node) + { + if (cur == frame) + continue; + if (frame_top(frame) < frame_bottom(cur) + && frame_top(cur) < frame_bottom(frame)) + { + int cur_border = frame_left (cur); + + if (cur_border < new_x && cur_border >= old_x && + (!remove || cur_border > old_x)) + new_x = cur_border; + } + } + if (remove) list_for_each_safe_entry (cur, iter, tmp, &s->frames, node) + { + if (cur == frame) + continue; + if (frame_top(frame) < frame_bottom(cur) + && frame_top(cur) < frame_bottom(frame)) + { + int cur_border = frame_left (cur); + int opposite_border = frame_right (cur); + + if (remove && cur_border == old_x) + { + if (opposite_border == new_x) + { + if (frame_top(frame) > frame_top(cur)) + { + cur->height = frame_top(frame) - frame_top(cur); + maximize_all_in_frame(cur); + } + else if (frame_bottom(frame) < frame_bottom(cur)) + { + cur->height = frame_bottom(cur) - frame_bottom(frame); + cur->y = frame_bottom(frame); + maximize_all_in_frame(cur); + } + else + delete_frame(cur); + } + else + { + cur->width -= new_x - old_x; + cur->x += new_x - old_x; + maximize_all_in_frame(cur); + } + } + } + } + frame->width = new_x - frame->x; + maximize_all_in_frame(frame); +} + +void +enlarge_frame_up (rp_frame *frame, int remove) +{ + rp_screen *s = frames_screen (frame); + rp_frame *cur; + struct list_head *tmp, *iter; + + int old_y = frame_top(frame); + int new_y = screen_top(s); + + list_for_each_entry (cur, &s->frames, node) + { + if (cur == frame) + continue; + if (frame_left(frame) < frame_right(cur) + && frame_left(cur) < frame_right(frame)) + { + int cur_border = frame_bottom (cur); + + if (cur_border > new_y && cur_border <= old_y && + (!remove || cur_border < old_y)) + new_y = cur_border; + } + } + if (remove) list_for_each_safe_entry (cur, iter, tmp, &s->frames, node) + { + if (cur == frame) + continue; + if (frame_left(frame) < frame_right(cur) + && frame_left(cur) < frame_right(frame)) + { + int cur_border = frame_bottom (cur); + int opposite_border = frame_top (cur); + + if (remove && cur_border == old_y) + { + if (opposite_border == new_y) + { + if (frame_left(frame) > frame_left(cur)) + { + cur->width = frame_left(frame) - frame_left(cur); + maximize_all_in_frame(cur); + } + else if (frame_right(frame) < frame_right(cur)) + { + cur->width = frame_right(cur) - frame_right(frame); + cur->x = frame_right(frame); + maximize_all_in_frame(cur); + } + else + delete_frame(cur); + } + else + { + cur->height -= old_y - new_y; + maximize_all_in_frame(cur); + } + } + } + } + frame->height += frame->y - new_y; + frame->y = new_y; + maximize_all_in_frame(frame); +} + +void +enlarge_frame_down (rp_frame *frame, int remove) +{ + rp_screen *s = frames_screen (frame); + rp_frame *cur; + struct list_head *tmp, *iter; + + int old_y = frame_bottom(frame); + int new_y = screen_bottom(s); + + list_for_each_entry (cur, &s->frames, node) + { + if (cur == frame) + continue; + if (frame_left(frame) < frame_right(cur) + && frame_left(cur) < frame_right(frame)) + { + int cur_border = frame_top (cur); + + if (cur_border < new_y && cur_border >= old_y && + (!remove || cur_border > old_y)) + new_y = cur_border; + } + } + if (remove) list_for_each_safe_entry (cur, iter, tmp, &s->frames, node) + { + if (cur == frame) + continue; + if (frame_left(frame) < frame_right(cur) + && frame_left(cur) < frame_right(frame)) + { + int cur_border = frame_top (cur); + int opposite_border = frame_bottom (cur); + + if (remove && cur_border == old_y) + { + if (opposite_border == new_y) + { + if (frame_left(frame) > frame_left(cur)) + { + cur->width = frame_left(frame) - frame_left(cur); + maximize_all_in_frame(cur); + } + else if (frame_right(frame) < frame_right(cur)) + { + cur->width = frame_right(cur) - frame_right(frame); + cur->x = frame_right(frame); + maximize_all_in_frame(cur); + } + else + delete_frame(cur); + } + else + { + cur->height -= new_y - old_y; + cur->y += new_y - old_y; + maximize_all_in_frame(cur); + } + } + } + } + frame->height = new_y - frame->y; + maximize_all_in_frame(frame); +} + void remove_frame (rp_frame *frame) { @@ -798,17 +1093,7 @@ remove_frame (rp_frame *frame) } if (fits) - { - /* The current frame fits into the new space so keep its - new frame parameters and maximize the window to fit - the new frame size. */ - if (cur->win_number != EMPTY) - { - rp_window *new = find_window_number (cur->win_number); - maximize_all_windows_in_frame (cur); - XRaiseWindow (dpy, new->w); - } - } + maximize_all_in_frame(cur); else { memcpy (cur, &tmp_frame, sizeof (rp_frame)); @@ -1004,16 +1289,24 @@ find_frame_up (rp_frame *frame) rp_screen *s = frames_screen (frame); rp_frame *cur; + rp_frame *best_frame_yet = NULL; + int best_x_yet = frame->x + frame->width + 1; + list_for_each_entry (cur, &s->frames, node) { if (frame->y == cur->y + cur->height) { if (frame->x >= cur->x && frame->x < cur->x + cur->width) return cur; + if (cur->x >= frame->x && cur->x < best_x_yet ) + { + best_x_yet = cur->x; + best_frame_yet = cur; + } } } - return NULL; + return best_frame_yet; } rp_frame * @@ -1022,16 +1315,24 @@ find_frame_down (rp_frame *frame) rp_screen *s = frames_screen (frame); rp_frame *cur; + rp_frame *best_frame_yet = NULL; + int best_x_yet = frame->x + frame->width + 1; + list_for_each_entry (cur, &s->frames, node) { if (frame->y + frame->height == cur->y) { if (frame->x >= cur->x && frame->x < cur->x + cur->width) return cur; + if (cur->x >= frame->x && cur->x < best_x_yet ) + { + best_x_yet = cur->x; + best_frame_yet = cur; + } } } - return NULL; + return best_frame_yet; } rp_frame * @@ -1040,16 +1341,24 @@ find_frame_left (rp_frame *frame) rp_screen *s = frames_screen (frame); rp_frame *cur; + rp_frame *best_frame_yet = NULL; + int best_y_yet = frame->y + frame->height + 1; + list_for_each_entry (cur, &s->frames, node) { if (frame->x == cur->x + cur->width) { if (frame->y >= cur->y && frame->y < cur->y + cur->height) return cur; + if (cur->y >= frame->y && cur->y < best_y_yet ) + { + best_y_yet = cur->y; + best_frame_yet = cur; + } } } - return NULL; + return best_frame_yet; } rp_frame * @@ -1058,16 +1367,24 @@ find_frame_right (rp_frame *frame) rp_screen *s = frames_screen (frame); rp_frame *cur; + rp_frame *best_frame_yet = NULL; + int best_y_yet = frame->y + frame->height + 1; + list_for_each_entry (cur, &s->frames, node) { if (frame->x + frame->width == cur->x) { if (frame->y >= cur->y && frame->y < cur->y + cur->height) return cur; + if (cur->y >= frame->y && cur->y < best_y_yet ) + { + best_y_yet = cur->y; + best_frame_yet = cur; + } } } - return NULL; + return best_frame_yet; } rp_frame * diff --git a/src/split.h b/src/split.h index 87bb660..b3096a4 100644 --- a/src/split.h +++ b/src/split.h @@ -33,6 +33,10 @@ void resize_shrink_to_window (rp_frame *frame); void resize_frame_horizontally (rp_frame *frame, int diff); void resize_frame_vertically (rp_frame *frame, int diff); void remove_frame (rp_frame *frame); +void enlarge_frame_left (rp_frame *frame, int remove); +void enlarge_frame_up (rp_frame *frame, int remove); +void enlarge_frame_right (rp_frame *frame, int remove); +void enlarge_frame_down (rp_frame *frame, int remove); rp_window *find_window_for_frame (rp_frame *frame); rp_frame *find_windows_frame (rp_window *win); rp_frame *find_frame_next (rp_frame *frame); debian/patches/0001-add-with-menu.patch0000644000000000000000000001042512141765322014664 0ustar From c9ae137c1e138e1c9aa71aee640d4839c6189b6f Mon Sep 17 00:00:00 2001 From: "Bernhard R. Link" Date: Sat, 15 Jan 2005 12:00:00 +0100 Subject: add --with-menu This patch adds an --with-menu that allows to specify a menu command that will be available with :menu and with "C-t ." * configure.in: add --with-menu to specify a menu program * src/action.c: add menu alias and binding if menu specified * src/main.c: tell menu command if menu specified --- configure.ac | 9 +++++++++ src/actions.c | 7 +++++++ src/main.c | 45 ++++++++++++++++++++++++++++++++++----------- src/messages.h | 1 + 4 files changed, 51 insertions(+), 11 deletions(-) diff --git a/configure.ac b/configure.ac index 742d9ba..a800272 100644 --- a/configure.ac +++ b/configure.ac @@ -76,6 +76,15 @@ fi AC_SUBST(XFT_CFLAGS) AC_SUBST(XFT_LIBS) +AC_ARG_WITH(menu, [ --with-menu=PROG set a external menu program to be advertised ], +menu_prog="$withval", menu_prog="") + +if test "$menu_prog" != "no" && ! test -z "$menu_prog" ; then +AC_DEFINE_UNQUOTED(MENU_PROG, "$menu_prog", external menu program to advertise) +AC_MSG_CHECKING(external menu program) +AC_MSG_RESULT($menu_prog) +fi + dnl Checks for programs. AC_PROG_CC diff --git a/src/actions.c b/src/actions.c index e61497e..a1ff236 100644 --- a/src/actions.c +++ b/src/actions.c @@ -721,6 +721,9 @@ initialize_default_keybindings (void) add_keybinding (prefix_key.sym, prefix_key.state, "other", map); add_keybinding (prefix_key.sym, 0, "meta", map); add_keybinding (XK_g, RP_CONTROL_MASK, "abort", map); +#ifdef MENU_PROG + add_keybinding (XK_period, 0, "menu", map); +#endif add_keybinding (XK_0, 0, "select 0", map); add_keybinding (XK_1, 0, "select 1", map); add_keybinding (XK_2, 0, "select 2", map); @@ -803,6 +806,10 @@ initialize_default_keybindings (void) add_alias ("unbind", "undefinekey " ROOT_KEYMAP); add_alias ("bind", "definekey " ROOT_KEYMAP); add_alias ("split", "vsplit"); + +#ifdef MENU_PROG + add_alias ("menu", "exec " MENU_PROG ); +#endif } cmdret * diff --git a/src/main.c b/src/main.c index eb2e804..0439a7c 100644 --- a/src/main.c +++ b/src/main.c @@ -471,7 +471,13 @@ show_welcome_message (void) { rp_action *help_action; char *prefix, *help; + const char *help_show; rp_keymap *map; +#ifdef MENU_PROG + rp_action *menu_action; + char *menu; + const char *menu_show; +#endif prefix = keysym_to_string (prefix_key.sym, prefix_key.state); @@ -480,27 +486,44 @@ show_welcome_message (void) /* Find the help key binding. */ help_action = find_keybinding_by_action ("help " ROOT_KEYMAP, map); if (help_action) - help = keysym_to_string (help_action->key, help_action->state); - else - help = NULL; - - - if (help) { + help = keysym_to_string (help_action->key, help_action->state); /* A little kludge to use ? instead of `question' for the help key. */ if (!strcmp (help, "question")) - marked_message_printf (0, 0, MESSAGE_WELCOME, prefix, "?"); + help_show = "?"; else - marked_message_printf (0, 0, MESSAGE_WELCOME, prefix, help); - - free (help); + help_show = help; } else { - marked_message_printf (0, 0, MESSAGE_WELCOME, prefix, ":help"); + help = NULL; + help_show = ":help"; + } +#ifdef MENU_PROG + /* Find the menu key binding. */ + menu_action = find_keybinding_by_action ("menu", map); + if (menu_action) + { + menu = keysym_to_string (menu_action->key, menu_action->state); + if (!strcmp (menu, "period")) + menu_show = "."; + else + menu_show = menu; + } + else + { + menu = NULL; + menu_show = ":menu"; } + marked_message_printf (0, 0, MESSAGE_WELCOME_MENU, prefix, help_show, + prefix, menu_show); + free(menu); +#else + marked_message_printf (0, 0, MESSAGE_WELCOME, prefix, help_show); +#endif + free(help); free (prefix); } diff --git a/src/messages.h b/src/messages.h index 47f2563..ce5ed90 100644 --- a/src/messages.h +++ b/src/messages.h @@ -50,6 +50,7 @@ #define MESSAGE_PROMPT_VAR_VALUE "Value: " #define MESSAGE_WELCOME "Welcome to ratpoison! Hit `%s %s' for help." +#define MESSAGE_WELCOME_MENU "Welcome to ratpoison! Hit `%s %s' for help. `%s %s' for menu." #define EMPTY_FRAME_MESSAGE "Current Frame" debian/changelog0000644000000000000000000004120012141765565011051 0ustar ratpoison (1.4.6-1) unstable; urgency=low * new upstream release (almost identical to rc1) -- Bernhard R. Link Mon, 06 May 2013 19:40:28 +0200 ratpoison (1.4.6~rc1-1) experimental; urgency=low * new upstream prerelease + obsoletes most patches * improve remove{left,right,up,down} extension to only resize frames instead of removing them where possible -- Bernhard R. Link Mon, 01 Apr 2013 20:02:07 +0200 ratpoison (1.4.5-4) unstable; urgency=low * always use utf-8 as encoding (as xft does not seem to support generic multibyte encodings) * make "info" show something even if the current window is not in the current group. * some small fixes in packaging -- Bernhard R. Link Sat, 30 Jun 2012 16:41:58 +0200 ratpoison (1.4.5-3) unstable; urgency=low * update VCS headers * use dpkg-buildflags * use autoreconf instead of patching configure * modernize patches * cherry-pick a number of patches from upstream, including: - handling of DISPLAY with dots - switching screens - C-t q wrongly documented as default keybinding (Closes: 627809) -- Bernhard R. Link Tue, 13 Sep 2011 16:31:23 +0200 ratpoison (1.4.5-2) unstable; urgency=low * switch to source format 3.0 (quilt) * add DEP3 headers to patches * cherry-pick fix to avoid getline problems with newer glibc (Closes: 552894) -- Bernhard R. Link Thu, 29 Oct 2009 16:38:10 +0100 ratpoison (1.4.5-1) unstable; urgency=low * new upstream version - non-interactive exec no longer adds to history (Closes: 478977) - fix fgcolor/bgcolor broken by libXft (Closes: 526174) * make bash-features using sh-script a bash-script (Closes: 530176) * manually remove info/dir.gz, as Debian now uses gnu install-info -- Bernhard R. Link Tue, 14 Jul 2009 15:40:00 +0200 ratpoison (1.4.4-1) unstable; urgency=low * new upstream version - now with libXft support, thus new dependencies - fixes tempwm issuses (Closes: 478979) - new prevscreen and nextscreen binding (Closes: 498348) - new input history: no longer needs libreadline and separate histories (Closes: 478977) * make patches compatible with v3 dsc (Closes: 484957) * bump Standards-Version - support parallel in DEB_BUILD_OPTIONS - noopt and nostrip only space delmited * no longer needs config.guess and config.sub (and thus no autotools-dev) -- Bernhard R. Link Mon, 27 Apr 2009 13:55:42 +0200 ratpoison (1.4.3-1) unstable; urgency=low * new upstream version * fix warning in manpage parsing -- Bernhard R. Link Thu, 21 Feb 2008 14:34:20 +0100 ratpoison (1.4.2-2) unstable; urgency=low * increase standards-version to 3.7.3 * recode debian/copyright to utf-8 * add Homepage and Vcs headers * clean up debian/rules a bit * don't link against libXext -- Bernhard R. Link Sun, 30 Dec 2007 15:01:18 +0100 ratpoison (1.4.2-1) unstable; urgency=low * new upstream version - obsoletes restorededication.patch, memoryhole.patch, noabortonvoncerterror.diff, nodoubleclassreading.diff, nodoubleclassreading.diff, utf8locale.diff - mimic emacs X key naming more closely. A modifier being both Hyper and Super should only be treated as one and not as both (Closes: 419882) -- Bernhard R. Link Sun, 7 Oct 2007 11:29:55 +0200 ratpoison (1.4.1-5) unstable; urgency=low * backport of some patches to 1.4.1: - nodoubleclassreading.diff: reduce X server communication a bit - noabortonconverterror.diff: don't abort (by requesting infinite amount of memory) if there is an string truncation error. (Closes: 423141) - utf8locale.diff: also handle utf8 window titles correctly if ratpoison itself is running in utf8 locale. (Closes: 438063) * adopt to new menu layout -- Bernhard R. Link Wed, 15 Aug 2007 12:24:28 +0200 ratpoison (1.4.1-4) unstable; urgency=low * close memory hole in dealing with utf-8 window titles (Closes: 423141) -- Bernhard R. Link Fri, 01 Jun 2007 20:04:18 +0200 ratpoison (1.4.1-3) unstable; urgency=low * change doc-base file to satisfy new doc-base package (Closes: 419783) -- Bernhard R. Link Wed, 18 Apr 2007 10:05:48 +0200 ratpoison (1.4.1-2) unstable; urgency=low * first upload to unstable of new upstream version - slit.sh fixed (Closes: 398048) - supports window titles in different encodings (Closes: 376067) * install rpws into /usr/bin instead of doc/examples/ * fix bug to not restore dedicateness of frames * some little cleanups of the packaging -- Bernhard R. Link Tue, 17 Apr 2007 12:09:14 +0200 ratpoison (1.4.1-1) experimental; urgency=low * new upstream version * re-add doc-base file listing info document. * update brl-menu.diff to current cvs. * drop texinfo build-dependency, update x-dev dependency -- Bernhard R. Link Tue, 20 Dec 2006 20:23:00 +0100 ratpoison (1.4.1~CVS20061026-1) experimental; urgency=low * experimental cvs snapshot - incorporates most of the previous patches - has some further fontset support needing testing -- Bernhard R. Link Sun, 29 Oct 2006 14:14:18 +0100 ratpoison (1.4.0.dfsg-7) unstable; urgency=medium * call dh_installinfo, so that info files get indexed at installation (Closes: 384910) -- Bernhard R. Link Sat, 28 Oct 2006 21:55:35 +0200 ratpoison (1.4.0.dfsg-6) unstable; urgency=low * fix bug in remove{left,up,right,down} which could corrupt the frame data. * document max width support in format string (Closes: 382299) * do not ignore exitcode of make distclean * give configure a --disable-dependency-tracking on normal compile * install python bindings using python-support if installed (Copied from dh_pysupport to avoid build-depending on python). -- Bernhard R. Link Sun, 3 Sep 2006 16:07:15 +0200 ratpoison (1.4.0.dfsg-5) unstable; urgency=low * add avoidupdates.diff to not update window name window on property events not changing anything. Thanks to Chris Lesniewski-Laas for this. (Closes: 375157) * add dontprolong.diff to not reset the timer when updateing window names window. (Makes the bug even more impossible to happen again) * remove windows_loop_workaround.diff (superseded by the two before) -- Bernhard R. Link Sun, 16 Jul 2006 21:58:46 +0200 ratpoison (1.4.0.dfsg-4) unstable; urgency=low * fix mention of 1.4.1 in info document * do not restart bar window when windows command is issued while the window is still active. (Works around: #375157) * patch doc/Makefile to not generate dir.gz files -- Bernhard R. Link Mon, 26 Jun 2006 10:56:35 +0200 ratpoison (1.4.0.dfsg-3) unstable; urgency=low * add info page from current cvs (minus the two commands not in this version) * downgrade depedency on 9menu to recommends (Closes: 368548) dropping x-w-m priority to 20 because of that * remove x-w-m alternative on deconfigure, readd on abort-remove and abort-deconfigure (Closes: 374474) * add example to manpage how to use -c (Closes: 369612) -- Bernhard R. Link Thu, 22 Jun 2006 15:00:58 +0200 ratpoison (1.4.0.dfsg-2) unstable; urgency=low * include ratpoison-cmd.el forgotten in the first try (Closes: 368317) * make emacsen-install script less sensitive * add debian/patches/avoid-segfault.diff working around segfault with remote commands -- Bernhard R. Link Sun, 21 May 2006 15:48:12 +0200 ratpoison (1.4.0.dfsg-1) unstable; urgency=low * new maintainer (Closes: 368067) * new upstream version (Closes: 364488) - fixes the tmpwm freeze (Closes: 357905) * removed the info page from the upstream tarball (GFDL and does not include the license as mandated by the license) * repackaged from scratch - change description (and include a Homepage:) - use 9menu to provide menus - install the bindings for emacs-lisp, perl, python and ruby - add a watch file - no longer ship a .desktop file as already registered in the Debian menu * add debian/patches/net_wm_pid.diff to work around problems of qt programs * add debian/patches/from-cvs-hook.diff from cvs to fix the hook command. * add debian/patches/from-cvs-raise.diff from cvs to fix raise notifiers. * add debian/patches/brl-enlarge.diff adding remove{left,right,up,down} * add debian/patches/brl-xchange.diff adding exchange{left,right,up,down} * add debian/patches/brl-menu.diff advertising the menu (configure changes in debian/patches/brl-menu.reconf) -- Bernhard R. Link Sat, 20 May 2006 17:18:22 +0200 ratpoison (1.4.0-beta4-10) unstable; urgency=low * Added Suggests: for xclip, a very cool program -- Jonathan Walther Sun, 12 Mar 2006 18:10:52 -0700 ratpoison (1.4.0-beta4-9) unstable; urgency=low * Fixed typo in package description. Thank you Dan Jacobson. * Added a versioned debhelper build-depends. Thank you lintian. -- Jonathan Walther Tue, 28 Feb 2006 13:31:52 -0700 ratpoison (1.4.0-beta4-8) unstable; urgency=low * Fixed installation of gdm/kdm support, as per Martin Samuelsson's suggestions. Closes: #348036 -- Jonathan Walther Sat, 14 Jan 2006 19:31:52 -0700 ratpoison (1.4.0-beta4-7) unstable; urgency=low * Added Martin Samuelsson's addhook patch to fix a crashing bug. Closes: #347023 -- Jonathan Walther Thu, 12 Jan 2006 12:21:52 -0700 ratpoison (1.4.0-beta4-6) unstable; urgency=low * Added dpatch as a Build-Depends to make buildd work. * Fixed typo in debian/rules that prevented building. -- Jonathan Walther Tue, 10 Jan 2006 14:54:52 -0700 ratpoison (1.4.0-beta4-5) unstable; urgency=low * Added Martin Samuelsson's numbering bug patch. * Added dpatch support to the package to manage any future patches. -- Jonathan Walther Mon, 9 Jan 2006 16:28:52 -0700 ratpoison (1.4.0-beta4-4) unstable; urgency=low * Added libxtst-dev Build-Depends to fix buildd breakage. -- Jonathan Walther Mon, 9 Jan 2006 10:46:52 -0700 ratpoison (1.4.0-beta4-3) unstable; urgency=low * Adding Mike O'Connor's suggested Build-Depends. Closes: #347023 -- Jonathan Walther Mon, 9 Jan 2006 10:20:52 -0700 ratpoison (1.4.0-beta4-2) unstable; urgency=low * Use most current config.guess and config.sub files, as explained in /usr/share/doc/autotools-dev/README.Debian.gz Closes: #347183 -- Jonathan Walther Mon, 9 Jan 2006 01:16:52 -0700 ratpoison (1.4.0-beta4-1) unstable; urgency=low * Updating to most recent upstream, which includes X.org fixes. Closes: #327196 * Adding more scripting examples. Closes: #343883 -- Jonathan Walther Sun, 8 Jan 2006 19:03:52 -0700 ratpoison (1.3.0-8) unstable; urgency=low * xlibs-dev depend no longer valid. See the following message. http://lists.debian.org/debian-devel-announce/2005/11/msg00022.html Closes: #347023 -- Jonathan Walther Sun, 8 Jan 2006 18:38:52 -0700 ratpoison (1.3.0-7) unstable; urgency=low * Applied Luca Capello's patch for GDM support. Closes: #307779 -- Jonathan Walther Thu, 5 May 2005 16:46:52 -0700 ratpoison (1.3.0-6) unstable; urgency=low * Applied Mike O'Connor's fix for tmpwm race. Closes: #305955 -- Jonathan Walther Sat, 23 Apr 2005 00:15:52 -0700 ratpoison (1.3.0-5) unstable; urgency=low * Fixed missing '=' in menu file. Closes: #294466 -- Jonathan Walther Wed, 9 Feb 2005 13:44:52 -0700 ratpoison (1.3.0-4) unstable; urgency=low * Fixed lintian warning about no DEBHELPER symbol in {pre,post}{rm,inst} * Removed ChangeLog from docs file, since dh_installchangelogs is now used. * Silenced other lintian warnings. -- Jonathan Walther Wed, 2 Feb 2005 14:15:12 -0700 ratpoison (1.3.0-3) unstable; urgency=low * Fixed lintian bitching about upstream changelogs -- Jonathan Walther Tue, 1 Feb 2005 19:40:36 -0700 ratpoison (1.3.0-2) unstable; urgency=low * Copied twm's alternative handling. Closes: #293221 -- Jonathan Walther Tue, 1 Feb 2005 18:36:52 -0700 ratpoison (1.3.0-1) unstable; urgency=low * Add a Build-Depends for autotools and use latest config.sub and config.guess. Allows compilation on amd64 platforms. Thank you for the patch, Andreas. Closes: #293172 * Created orig.tar.gz, because this isn't a native package. -- Jonathan Walther Tue, 1 Feb 2005 09:05:18 -0700 ratpoison (1.3.0) unstable; urgency=low * New upstream version. Closes: #257098 * Removed build-depends on automaken. Thank you Mike. Closes: #289743 * Fixed manpage installation. Thank you Shyamal and Jari. Closes: #267475, #292578 * Frameset management is in this version. Closes: #208427 * Bumped Standards-Version to 3.6.1.1 -- Jonathan Walther Mon, 31 Jan 2005 00:17:16 -0700 ratpoison (1.2.1) unstable; urgency=low * Removed version in Build-depends for automake (Closes: #166283) * Now suggests xbindkeys instead of keylaunch * Defaults to x-terminal-emulator instead of xterm (Closes: #196343) * Changed the doc-base section to WindowManagers (Closes: #186244) * Made this package from tarball, not CVS (Closes: #169662) -- Jonathan Walther Sun, 8 Jun 2003 12:20:37 -0700 ratpoison (1.2.0.cvs.20020425-3) unstable; urgency=low * Added Build-Depends for automake (Closes: #149500) -- Jonathan Walther Sun, 9 Jun 2002 22:32:41 -0700 ratpoison (1.2.0.cvs.20020425-2) unstable; urgency=low * Changed Maintainer field; Gergely has gotten busy with Real Life * Updated build dependancies * Cleaned up the rules file a bit -- Jonathan Walther Sat, 8 Jun 2002 12:25:33 -0700 ratpoison (1.2.0.cvs.20020425) unstable; urgency=low * CVS snapshot of release candidate 1.2.0 * Many bugfixes better described in the ChangeLog -- Jonathan Walther Wed, 5 Jun 2002 22:21:24 -0700 ratpoison (1.0.0.cvs.20020117-1) unstable; urgency=low * CVS snapshot release on 2002-01-17: + Documentation about `colon' corrected (Closes: #115158) + BadWindow misbehaviour fixed (Closes: #123942, #123379, #128563) -- Gergely Nagy Thu, 17 Jan 2002 21:13:03 +0100 ratpoison (1.0.0.cvs.20011208-1) unstable; urgency=low * CVS snapshot release on 2001-12-08 * Recommend ratmenu (Closes: #113624) * debian/control: Do not recommend xterm, but xvt, that fits better with the ratpoison idea * debian/control: Changed Maintainer field, and added SirDibos and myself to Uploaders * debian/ratpoison.examples: include most of contrib/ -- Gergely Nagy Sat, 8 Dec 2001 23:40:32 +0100 ratpoison (1.0.0-1) unstable; urgency=medium * New upstream release! + Contains a fixed ratpoison.texi (Closes: #107939) -- Gergely Nagy Thu, 6 Sep 2001 16:41:41 +0200 ratpoison (0.2.0.cvs.20010806-1) unstable; urgency=low * CVS snapshot release as of 2001-08-06. * Bumped Standards-Version to 3.5.6 * Changed maintainer e-mail address -- Gergely Nagy Mon, 6 Aug 2001 13:36:57 +0200 ratpoison (0.1.1-3) unstable; urgency=low * Do not try to send C-t to the underlying window if there is none (Closes: #101625) -- Gergely Nagy <8@free.bsd.hu> Wed, 20 Jun 2001 17:02:21 +0200 ratpoison (0.1.1-2) unstable; urgency=low * Build-Depend on x-terminal-emulator. (Closes: Bug#89272) -- Gergely Nagy <8@free.bsd.hu> Sun, 11 Mar 2001 18:22:21 +0100 ratpoison (0.1.1-1) unstable; urgency=low * New upstream release. -- Gergely Nagy <8@free.bsd.hu> Tue, 6 Mar 2001 19:36:45 +0100 ratpoison (0.1.0-1) unstable; urgency=low * New upstream release. -- Gergely Nagy <8@free.bsd.hu> Sun, 4 Mar 2001 01:09:29 +0100 ratpoison (0.0.5-20001216) unstable; urgency=low * CVS version as of 2000/12/16 -- Gergely Nagy <8@free.bsd.hu> Sat, 16 Dec 2000 18:13:19 +0100 ratpoison (0.0.5-2) unstable; urgency=low * Does not include /usr/info anymore. Whoops... * Modified menu entry (Closes: Bug#79072). * Fixed debian/rules#clean, I'm terribly sorry, won't happen again. -- Gergely Nagy <8@free.bsd.hu> Mon, 11 Dec 2000 12:33:55 +0100 ratpoison (0.0.5-1) unstable; urgency=low * Initial Release. -- Gergely Nagy <8@free.bsd.hu> Mon, 4 Dec 2000 21:52:54 +0100 debian/docs0000644000000000000000000000000512141765320010035 0ustar NEWS debian/source/0000755000000000000000000000000012141765320010467 5ustar debian/source/format0000644000000000000000000000001412141765320011675 0ustar 3.0 (quilt) debian/dirs0000644000000000000000000000023112141765320010047 0ustar usr/bin etc/X11/ratpoison var/lib/ratpoison/menu usr/share/emacs/site-lisp/ratpoison usr/share/perl5 usr/share/python-support/ratpoison usr/lib/ruby/1.8 debian/.git-dpm0000644000000000000000000000042612141765322010535 0ustar # see git-dpm(1) from git-dpm package 83aab149d2d17b0cfc6749631a6fc928d8067d42 83aab149d2d17b0cfc6749631a6fc928d8067d42 cf0802cec3033cefecbca8385457728367c8ac5e cf0802cec3033cefecbca8385457728367c8ac5e ratpoison_1.4.6.orig.tar.xz 8ee1157c799e2a382b59c45a1aca95b5111977df 344656 debian/README.source0000644000000000000000000000151412141765320011347 0ustar This Debian package uses the tar files upstream releases and applies some patches on top. Those patches are already applied in the Debian source package, so if you unpackaged the Debian source package, you can just modify what you want and build and ignore everything less. If you want to package a new upstream release: ---------------------------------------------- Just decide which patches from debian/patches you want to apply and build the package. If you want to build a package from git: ---------------------------------------- If you want to build from git, you might also want to apply some of the patches. Additionally you either need to increase the build dependencies (or ignore that your package has not enough) or generate an .orig.tar file with all the needed files processes. (This usually happens by calling make dist). debian/menu-method0000644000000000000000000000156712141765320011345 0ustar #!/usr/bin/install-menu !include menu.h compat="menu-1" function menufilename($s) = ifempty($s,"debian") replacewith($s," /","_.") ".menu" function runmenu($s) = "/etc/X11/ratpoison/ratpoisonmenu \"" esc(menufilename($s),"\"") "\"" startmenu="" genmenu=menufilename(ifelse($command,parent($section),parent($section))) endmenu="" rootsection="debian" rootprefix="/var/lib/ratpoison/menu" userprefix=".ratpoison_menu" treewalk="(m)c" function q($s) = replacewith($s,":",".") supported ratpoisonspecial = "\\" q(title()) ":exec " $command "\n" x11 = "\\" q(title()) ":exec " $command "\n" text= "\\" q(title()) ":exec " term() "\n" wm= "\\" q(title()) ":exec /usr/bin/ratpoison -c \"newwm " esc($command,"\"") "\"\n" endsupported submenutitle= "\\" q(title()) ":exec " runmenu($section) "\n" preoutput="#Automatically generated file. Do not edit (see /usr/share/doc/menu/html)\n#\n" debian/emacsen-install0000644000000000000000000000217412141765320012175 0ustar #! /bin/sh -e # /usr/lib/emacsen-common/packages/install/ratpoison # Written by Jim Van Zandt , borrowing heavily # from the install scripts for gettext by Santiago Vila # and octave by Dirk Eddelbuettel . # modified for ratpoison by Bernhard R. Link FLAVOR="$1" PACKAGE=ratpoison ELDIR=/usr/share/emacs/site-lisp/${PACKAGE} ELCDIR=/usr/share/${FLAVOR}/site-lisp/${PACKAGE} FILES=ratpoison-cmd.el if [ ${FLAVOR} = emacs ]; then exit 0 fi for file in ${FILES} ; do if [ ! -f ${ELDIR}/${file} ]; then echo "Warning: missing file ${ELDIR}/${file}!" >&2 exit 0 fi done echo install/${PACKAGE}: Handling install for emacsen flavor ${FLAVOR} FLAVORTEST=`echo $FLAVOR | cut -c-6` if [ ${FLAVORTEST} = xemacs ] ; then SITEFLAG="-no-site-file" else SITEFLAG="--no-site-file" fi FLAGS="${SITEFLAG} -q -batch -l path.el -f batch-byte-compile" install -m 755 -d ${ELCDIR} cd ${ELDIR} cp ${FILES} ${ELCDIR} cd ${ELCDIR} cat << EOF > path.el (setq load-path (cons "." load-path) byte-compile-warnings nil) EOF ${FLAVOR} ${FLAGS} ${FILES} rm -f *.el path.el exit 0 debian/prerm0000644000000000000000000000106012141765320010234 0ustar #! /bin/sh # prerm script for ratpoison set -e case "$1" in remove|deconfigure) update-alternatives --remove x-window-manager /usr/bin/ratpoison if [ -d /var/lib/ratpoison/menu ] ; then rm /var/lib/ratpoison/menu/*.menu || true fi ;; upgrade|failed-upgrade) ;; *) echo "prerm called with unknown argument \`$1'" >&2 exit 1 ;; esac # taken from dh_pysupport: if which update-python-modules >/dev/null 2>&1; then update-python-modules -c -i /usr/share/python-support/ratpoison fi #DEBHELPER# exit 0 debian/control0000644000000000000000000000222012141765320010566 0ustar Source: ratpoison Section: x11 Priority: extra Maintainer: Bernhard R. Link Build-Depends: debhelper (>= 7), libx11-dev, libxext-dev, x11proto-core-dev, libxinerama-dev, libxtst-dev, libxft-dev, perl, autoconf, automake Standards-Version: 3.9.3 Homepage: http://www.nongnu.org/ratpoison/ Vcs-Browser: http://anonscm.debian.org/gitweb/?p=users/brlink/ratpoison.git;a=shortlog;h=refs/heads/debian Vcs-Git: git://anonscm.debian.org/users/brlink/ratpoison.git Package: ratpoison Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends} Recommends: 9menu (>= 1.6), menu, rxvt | x-terminal-emulator Suggests: xbindkeys, xclip Provides: x-window-manager Description: keyboard-only window manager ratpoison is a simple window manager with no fancy graphics, no window decorations, and no rodent dependence. It is largely modelled after GNU Screen. . The screen can be split into non-overlapping frames. All windows are kept maximized inside their frames to take full advantage of your precious screen real estate. . All interaction with the window manager is done through keystrokes. ratpoison has a prefix map to minimize key clobbering. debian/callmenu.sh0000644000000000000000000000321712141765320011326 0ustar #! /bin/sh # ratpoison helper script to start up an menu # change this line to globally set options # (like -fg, -bg or -font) options="-popup" if [ "$#" -ne "1" ] ; then echo "Syntax: /etc/X11/ratpoison/ratpoisonmenu " exit 1 fi file="$1" parent="`echo "$file" | sed -e 's/\.[^.]*\.menu$/.menu/'`" if [ -f "$HOME/.ratpoison_menu/$file" ] ; then dir="$HOME/.ratpoison_menu" elif [ -f "/etc/X11/ratpoison/menu/$file" ] ; then # To allow a global override of single files... # (additionally to the easy changing of what # update-menus generates... dir="/etc/X11/ratpoison/menu" else dir="/var/lib/ratpoison/menu" fi if [ -f /etc/X11/ratpoison/ratpoisonmenu.options ] ; then # for those that do not like changing this file directly... . /etc/X11/ratpoison/ratpoisonmenu.options fi if [ -f "$HOME/.ratpoison_menu/options" ] ; then # parse file, so you can set $options # like options="$options -fg blue -bg black" # You can even exec in there, if you do not like 9menu . "$HOME/.ratpoison_menu/options" fi if ! which 9menu >/dev/null ; then if which ratmenu >/dev/null && [ -x "/etc/X11/ratmenu/$file" ] ; then ratpoison -c "echo 9menu not installed, using ratmenu instead" exec "/etc/X11/ratmenu/$file" else exec ratpoison -c "echo 9menu not installed" fi fi if ! [ -f "$dir/$file" ] ; then if [ "$file" = "debian.menu" ] ; then exec ratpoison -c "echo no menu definition found (package 'menu' missing?)" else exec ratpoison -c "echo no definition for $file found!" fi fi if [ "$file" = "debian.menu" ] ; then exec 9menu $options -file "$dir/$file" '(cancel):exec' else exec 9menu $options -file "$dir/$file" ..:"$0 \"$parent\"" fi debian/copyright0000644000000000000000000000662512141765320011133 0ustar This package was debianized by Bernhard R. Link on Sat, 20 May 2006 13:45:34 +0200. It was downloaded from http://savannah.nongnu.org/download/ratpoison/ Upstream Authors: Shawn Betts (sabetts@users.sourceforge.net) Ryan Yeske (rcyeske@vcn.bc.ca) Other Contributors: Ben Leslie Chr. v. Stuckrad Dan Aloni Doug Kearns Gergely Nagy Henrik Enberg Jonathan Walther Martin Samuelsson Mike Meyer Nicklas Lindgren Pasi Kallinen Rupert Tim Goodwin Joshua Neuheisel Thien-Thi Nguyen Joshua Neuheisel Sylvain BEUCLER Cameron Patrick Trent Buck jesus c. meyendriesch Bernhard R. Link Tobias C. Rittweiler Antti Nykänen rubikitch Florian E.J. Fruth Tim Cooijmans Andreas Seltenreich Steve Folta Midare Kiyura Joshua Neuheisel Philip Hudson Ali Gholami Rudi Hatem Nassrat J.R. Mauro Kipling Inscore Rob Paisley License: Copyright (C) 2000-2009 Shawn Betts ratpoison is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ratpoison is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this software; see the file COPYING. If not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. On Debian systems, the complete text of the GNU General Public License can be found in `/usr/share/common-licenses/GPL-2'. The autotools related files in the source are Copyright (C) 1994 X Consortium Copyright (C) 1996-2007 Free Software Foundation, Inc. and available under GPLv2 or more permissive licenses. src/getopt.h and src/getopt1.c are Copyright (C) 1989-97 Free Software Foundation, Inc. src/linkedlist.* is also Copyright (C) 2003 Linus Torvalds src/format.c is Copyright (C) 2006 Antti Nykänen src/xinerama.* is Copyright (C) 2003 Cameron Patrick rpws is: Copyright (c) 2009 Hatem Nassrat Copyright (c) 2005 Mike O'Connor Copyright (C) 2003 Shawn Betts and under GPLV2+ as everything else. rpshowall.sh is Copyright (C) 2003 Florian Cramer debian/menu0000644000000000000000000000015412141765320010056 0ustar ?package(ratpoison):needs="wm" section="Window Managers" \ title="ratpoison" command="/usr/bin/ratpoison" debian/ratpoison.install0000644000000000000000000000031012141765320012567 0ustar contrib/Ratpoison.pm /usr/share/perl5/ contrib/ratpoison.rb /usr/lib/ruby/1.8/ contrib/ratpoison.py /usr/share/python-support/ratpoison/ contrib/ratpoison-cmd.el /usr/share/emacs/site-lisp/ratpoison/