Adopted action propagation from tabbedex
(https://github.com/mina86/urxvt-tabbedex). Actions can be used from
outside of tabbedalt extension, so there is no need for hardcoding
keyboard shortcuts, or inventing a wheel with keysym reimplementation.
Tab commands support has been dropped. Since actions are now the only
way for creating tab classes, there would be a simple way for defining
shortcuts to mimic old behavior. So, given there was class called root
defined:
URxvt.tabbedalt.tabcmds.2: r|root|su -
now it can be defined using keysym:
URxvt.keysym.Control-Shift-R: tabbedalt:new_tab:root:su -
The gain is that there is no need for creating index for every tab
command, and, what is more important, user can assign whatever prefix he
want, not just hard coded control+shift.
Original code had a function for copying height related parameters from
WM_NORMAL_HINTS which was modified than by adding the height of tabs.
Rest of the hints was simply removed. Using geometry command line
parameter with urxvt and tabbedalt plugin results that provided window
position was ignored.
This patch is fixing that behaviour.
In my derivation I arbitrary choose ctrl+shift+n as a shortcut for
creating new shell tab. There was a bug, when user created some other
class (for example for midnight commander and root) and with such
configuration it will unable to create default shell tabs.
This change introduces standard shortcut from original tabbed extension
(shift+down) as a default one for creating shell tabs. All the shell
classes can be configured and used as before.
Shift+down shortcut can be disabled, and now, "new style" - ctrl+shift+n
shortcut would be used for that purpose, unless user provide its own
class definition for that shortcut, than user responsibility is to make
appropriate shortcut for default shell.
Added modeline with proper vim settings for urxvt perl lib. For some
reason, author of the urxvt choose 3 space indent for extension perl
files. I'd like to keep those for an ease of merging upstream changes.
There was is bug regarding sessions implementation, where there is no
way to run particular program using -e switch for urxvt in command line.
So, having urxvt.session set to something in .Xdefaults, there was no
way to run some program, i.e.
$ urxvt -e htop
This patch fixing this issue.
To quickly switch to the desired tab, there is a shortcut ctrl-0 to
ctrl-9, where ctrl-0 will switch to tab 10, ctrl-1 to tab 1 and so on.
There is a range in the code, which detect which tab to pick up to jump.
Range was to wide, this commit is fixing that.
Currently, there was a command used:
ps x|grep " urxvt "|grep -v grep|wc -l
which was checking if there is only one instance of urxvt during start,
so that it will be possible to initialize session. The `grep -v grep`
is in excess. This patch is fixing that.