From: Greg Ercolano <erco@(email surpressed)>
Subject: [Q+A] Is there a way to have more than 12 hotkeys programmed in irush?
   Date: Thu, 17 Nov 2011 18:52:31 -0500
Msg# 2151
View Complete Thread (1 article) | All Threads
Last Next
> We like making a lot of hotkey entries in Irush.
>
> Looks like we can define as many as we want and run them
> by clicking on Hotkeys -> [name of our command].
>
> But it seems for keyboard shortcuts, we're limited to the 12 function keys.
>
> Is there a way to define Ctrl-<functionkey> or Shift-<functionkey>
> in irush, so we can make use of more keyboard shortcuts?

	Yes.

	Although the menu in the Hotkey -> Edit is limited to F1 - F12,
	you can manually hack the ~/.irushrc file to assign other key combos.

	If you look in your ~/.irushrc file, there's a large numeric
	value that represents the key code for the shortcut of each Hotkey command.

	For instance, in my .irushrc file I have the F2 key
	assigned to run a python script, eg:

  name    My LAC Report
  command python /myserver/production/scripts/rush/my_lac_report.py
  fkey    65471
  output  Upper:AllCpus

	The 65471 in the above is irush key code for the F2 key.

	You can logically OR this value with values for the different
	Shift/Control/Alt/Meta keys, which are:

		Shift --  0x10000
		Ctrl  --  0x40000
		Alt   --  0x80000
		Meta  -- 0x400000

	So the Ctrl-F2 key would be 65471 | 0x40000.
	The following one-liner perl script tells us this is 327615:

$ perl -e 'printf("%d\n",65471|0x40000);'
327615	<--

	So if I *close* all the irush windows first (because it saves
	over the .irushrc on exit), then manually edit my .irushrc file
	and change the 65471 value to 327615, eg:
	
  name    My LAC Report
  command python /myserver/production/scripts/rush/my_lac_report.py
  fkey    327615
  output  Upper:AllCpus

	..Now when I open irush, I should see "Ctrl-F2" in the Hotkeys menu
	as the shortcut, and can hit Ctrl-F2 to invoke the command.

	Here's a quick table of the various shift key combos and their key codes:

 F1: 65470    Shift-F1: 131006   Ctrl-F1: 327614    Alt-F1: 589758    Meta-F1: 4259774
 F2: 65471    Shift-F2: 131007   Ctrl-F2: 327615    Alt-F2: 589759    Meta-F2: 4259775
 F3: 65472    Shift-F3: 131008   Ctrl-F3: 327616    Alt-F3: 589760    Meta-F3: 4259776
 F4: 65473    Shift-F4: 131009   Ctrl-F4: 327617    Alt-F4: 589761    Meta-F4: 4259777
 F5: 65474    Shift-F5: 131010   Ctrl-F5: 327618    Alt-F5: 589762    Meta-F5: 4259778
 F6: 65475    Shift-F6: 131011   Ctrl-F6: 327619    Alt-F6: 589763    Meta-F6: 4259779
 F7: 65476    Shift-F7: 131012   Ctrl-F7: 327620    Alt-F7: 589764    Meta-F7: 4259780
 F8: 65477    Shift-F8: 131013   Ctrl-F8: 327621    Alt-F8: 589765    Meta-F8: 4259781
 F9: 65478    Shift-F9: 131014   Ctrl-F9: 327622    Alt-F9: 589766    Meta-F9: 4259782
F10: 65479   Shift-F10: 131015  Ctrl-F10: 327623   Alt-F10: 589767   Meta-F10: 4259783
F11: 65480   Shift-F11: 131016  Ctrl-F11: 327624   Alt-F11: 589768   Meta-F11: 4259784
F12: 65481   Shift-F12: 131017  Ctrl-F12: 327625   Alt-F12: 589769   Meta-F12: 4259785

	..which was generated by the following one-liner perl script:

perl -e '$k=65470; for($f=1;$f<=12;$f++,$k++) { printf("F$f: %d\tShift-F$f: %d\tCtrl-F$f:%d\tAlt-F$f:%d\tMeta-F$f:%d\n",$k,$k|0x10000,$k|0x40000,$k|0x80000,$k|0x400000); }'

	You can also get other combos like Ctrl-Shift-F1 the same way
	by OR'ing several masks with the raw F-key codes.

	Note that your window manager may use some of those codes
	for itself, so you won't be able to use those. These vary
	from one window manager to the other, so be wary.

	This same technique works for the master rush/etc/.irushrc
	file as well.

	AFAIK, such modifications should remain in effect, and works
	for all versions of Irush.

	Other key codes are possible as well for /all/ the keys on the
	keyboard. If that's desired, I can follow up with a more complete
	list.

Last Next