Add A JWM Bookmarks Menu or Submenu/Messing Around With JWM

How to do things, solutions, recipes, tutorials
Message
Author
User avatar
Puppus Dogfellow
Posts: 1667
Joined: Tue 08 Jan 2013, 01:39
Location: nyc

#141 Post by Puppus Dogfellow »

p573, p573-L

just put together a couple of pups that use most of what's been developed here.
...you could also copy and rename the items in the folder to make access easier by controlling their placement/sort order.
it actually includes copies of desktop files and scripts (two by mochi (speeddials and winswitcher) are 1 and 2) in the applications folder renamed and prepended with numbers. you have to remember the forward slash or to use the arrow key or the speed dial function will just shoot you out of the folder altogether. and too many loaded in front as speed dials could end up taking longer to access than the lettered ones.

User avatar
Puppus Dogfellow
Posts: 1667
Joined: Tue 08 Jan 2013, 01:39
Location: nyc

nifty tray tweak

#142 Post by Puppus Dogfellow »

if you have a stock or close to stock taskbar, you have a line similar to this in /root/jwmrc-tray:

Code: Select all

	<Tray  autohide="false" insert="right" valign="botton" x="1" y="-1" border="1" height="24" >
except that the value for x is set at zero. by making it 1, you can drop the main menu button, gaining a little extra space on the taskbar. this also would allow you to access (throw the mouse into the lower left corner) all five mouse menus. it actually requires less precision and care than clicking an actual virtual button, though i can see having a preference for the left button over the other two and the scroll wheel. you can copy the menu in /etc/xdg/templates/_root_.jwmrc over to your root:1 menu to compensate for this.

Code: Select all

	<!-- 	<TrayButton label="" icon="mini-dog.xpm">root:3</TrayButton>-->
you can either comment out the root:3 menu button as shown above, delete it, or repurpose it (exec:program-name).

you can further gain space by moving the dock to a hidden upper taskbar, which is also a convenient location for the other five menu buttons. since the menus all contain a <Desktops/> tag, you don't really need the pager, at least not to see which desktop you're on or to get to another one. no visual representation of the windows with this method though.

here's a tray for that:

Code: Select all


<JWM>
	<Tray  autohide="true" insert="right" valign="top" x="280" y="-1" border="1" height="28" >
	<TrayButton popup="Show Desktop" icon="mini-desktop.xpm">showdesktop</TrayButton>
<TrayButton label="6">root:6</TrayButton> 

<TrayButton label="7">root:7</TrayButton> 
<TrayButton label="8">root:8</TrayButton> 
<TrayButton label="9">root:9</TrayButton> 
<TrayButton label="0">root:0</TrayButton> 

			<Dock/>
			
	</Tray>
</JWM>

here's a screen shot of a desktop using the above (optionally top) tray but without the default tray (it's been commented out of /etc/xdg/templates/_root_.jwmrc) and an additional left side vertical tray containing the pager and tasklist.

User avatar
Puppus Dogfellow
Posts: 1667
Joined: Tue 08 Jan 2013, 01:39
Location: nyc

you can have more than ten desktops...

#143 Post by Puppus Dogfellow »

the following screen shot is from a large (26 inch) monitor with relatively poor resolution (1024x768). giving it three rows of eight seemed to take up much more room than two of twelve, though this set up could take three times that and still give more tasklist space than stock. all you need to do to go beyond the ten the jwm gui offers you is edit the

Code: Select all

<!-- Number of virtual desktops -->
<Desktops width="5" height="2"/>
line in jwmrc-personal. i found 4x6 manageable even on a default sized tray--play around with it keeping in mind it will scale to fit your screens (dual monitor set ups eat a lot of width and stretch the pager somewhat more than single setups).

Image

Image


to get the seamless htop window (covering the drive icons in the pic), add

Code: Select all

<Group>
     <Name>urxvt</Name>
        <Option>noborder</Option>
        <Option>notitle</Option>
      <Option>sticky</Option>
    </Group>	
to jwmrc-personal (works when using the htOPuRXVT script in Startup or Startup/quar). to change the color of htop's fonts and set the transparency, use urxvtset, which will also allow you to set the size and background/foreground combos should you decide to forgo transparency/"transparency" (window actually covers the desktop with a corresponding blank (iconless) patch of virtual wallpaper and completely hides whatever is beneath it).


i used a resource similar to this to change the clock codes from default.


trays autohide and eye-space is an invisible icon for lxtask, rox /mnt, and partview. a few icons poke out underneath the htop window and are accessible beneath maximized windows thanks to a one pixel border. without a titlebar or anything to grab onto, the htop/urxvt windows are most easily moved with the shortcut keys or Alt+ Left Click.

User avatar
Puppus Dogfellow
Posts: 1667
Joined: Tue 08 Jan 2013, 01:39
Location: nyc

insist on ignoring the warning atop /root/.jwmrc?

#144 Post by Puppus Dogfellow »

to gain control of the main (root:3, right click) menu, i began fiddling around with the .jwmrc file in root despite the warning and the advice of those who know better than i. anyway, close to a year later, it's still working well, though now that i have nine others, letting it be wouldn't be and isn't so hard. but still, if you want your menu your way and you are getting annoyed by fixmenus making you rename your despitethewarning.jwmrc to .jwmrc to overwrite the new one it creates each time you install or remove something, here's an easy way around the nuisance.

Code: Select all

#!/bin/sh
# name this one my3 and place in /root/my-applications/bin
# add <Program label="my3">my3</Program> to /etc/xdg/templates/_root_.jwmrc right below <RootMenu label="Menu" [...] onroot="3">

cd /root/my-applications/root3 
cp -f .jwmrc /root
jwm -reload

# (yes i'm just getting around to learning some basic commands)
# pretty sure the following would do the same:
#cp -f /root/my-applications/root3/.jwmrc /root
#jwm -reload

# so enter  mkdir /root/my-applications/root3 into a terminal and copy your despitethewarning.jwmrc file there, but rename it .jwmrc. run fixmenus and you should now have a one click solution to return to the menu the way you wanted it.


as it says in the somewhat harder to read code-text font, name it my3 and place in /root/my-applications/bin, add <Program label="my3">my3</Program> to /etc/xdg/templates/_root_.jwmrc right below the <RootMenu label="Menu" [...] onroot="3"> part. enter mkdir /root/my-applications/root3 into a terminal, copy your despitethewarning.jwmrc file there as .jwmrc, run fixmenus, right click, bask in your lack of annoyance.


:D


in case you want to copy some newly generated menu files over to your custom jobbie,

Code: Select all

#!/bin/sh 
#gea3

geany /root/.jwmrc /root/my-applications/root3/.jwmrc

# for menu: <Program label="gea3">gea3</Program>
will open them both up in geany for easy search-copy-paste. (do that before you run my3, may as well add <Program label="gea3">gea3</Program> to /etc/xdg/templates/_root_.jwmrc when you add the similar line for my3.)

User avatar
Puppus Dogfellow
Posts: 1667
Joined: Tue 08 Jan 2013, 01:39
Location: nyc

switch sets of shortcut keys and/or custom menus on the fly

#145 Post by Puppus Dogfellow »

jwm10config-quickswitch.tar.gz

jwm-switch-configs-on-the-fly.readme:
allows easy switching of alternate menu layouts and keyboard shortcut configurations by swapping out .jwmrc in /root and replacing it on the fly with one of your (here's a set for ten) alternates. they are set to use jwmrc.personal for customizations by default, but each new root menu has a line (by default commented out) for one of the new jwmrc-personal files that sits with it in its folder in /root/my-applications/root3. you could alter that and switch root menus by sets of ten rather than just one at a time.

all the templates in /root/my-applications/root3 are copies of the original puppy menu from /initrd/pup_ro2 compressed to one line, with the desktops goto, rox opening the applications folder in usr/share, and a jwm config switch (which should also be added atop/etc/xdg/templates/_root_.jwmrc as well) menu added:


<Menu label="jwm config switch" icon="" height="16">
<Program label="gjwm"">gjwm</Program>
<Program label="my3"">my3</Program>
<Program label="my30"">my30</Program>
<Program label="my31"">my31</Program>
<Program label="my32"">my32</Program>
<Program label="my33"">my33</Program>
<Program label="my34"">my34</Program>
<Program label="my35"">my35</Program>
<Program label="my36"">my36</Program>
<Program label="my37"">my37</Program>
<Program label="my38"">my38</Program>
<Program label="my39"">my39</Program>
<Program label="orig3"">orig3</Program>
</Menu>


the terminal shortcut for each of the additional configurations is the same as their purposely short program names i.e. enter my38 into a terminal or gexec-like launcher and that menu system and its associated shortcut keys will now be activated. comment out the jwmrc-personal line atop the .jwmrc file you are using and uncomment the one corresponding to your new customizations (keyboard, group, etc.)


overwrite the .jwmrc file in /root/my-applications/root3 to use your own current right click menu in place of the puppy original from ro2 (without having to use fixmenus, which is what "orig3" is, more or less.) gjwm opens the jwm files in geany for easy access.

here are the scripts contained in the "copy this to /root/my-applications/bin" folder:

Code: Select all

#!/bin/sh
# name my3 and place in /root/my-applications/bin
cp -f /root/my-applications/root3/.jwmrc /root
jwm -reload 

_____________

#!/bin/sh
# name my30 and place in /root/my-applications/bin
cp -f /root/my-applications/root3/root30menu/.jwmrc /root
jwm -reload 

_____________
#!/bin/sh
# name my31 and place in /root/my-applications/bin
cp -f /root/my-applications/root3/root31menu/.jwmrc /root
jwm -reload 

_____________
#!/bin/sh
# name my32 and place in /root/my-applications/bin
cp -f /root/my-applications/root3/root32menu/.jwmrc /root
jwm -reload 

_____________
#!/bin/sh
# name my33 and place in /root/my-applications/bin
cp -f /root/my-applications/root3/root33menu/.jwmrc /root
jwm -reload 

_____________
#!/bin/sh
# name my34 and place in /root/my-applications/bin
cp -f /root/my-
applications/root3/root34menu/.jwmrc /root
jwm -reload 

_____________
#!/bin/sh
# name my35 and place in /root/my-applications/bin
cp -f /root/my-applications/root3/root35menu/.jwmrc /root
jwm -reload 

_____________
#!/bin/sh
# name my36 and place in /root/my-applications/bin
cp -f /root/my-applications/root3/root36menu/.jwmrc /root
jwm -reload 

_____________
#!/bin/sh
# name my37 and place in /root/my-applications/bin
cp -f /root/my-applications/root3/root37menu/.jwmrc /root
jwm -reload 

_____________
#!/bin/sh
# name my38 and place in /root/my-applications/bin
cp -f /root/my-applications/root3/root38menu/.jwmrc /root
jwm -reload 

_____________
#!/bin/sh
# name my39 and place in /root/my-applications/bin
cp -f /root/my-applications/root3/root39menu/.jwmrc /root
jwm -reload 
#jwm -restart 
_____________

#!/bin/sh
# name orig3 and place in /root/my-applications/bin
fixmenus
jwm -restart 
#jwm -reload 
_____________


#!/bin/sh
#name gjwm and place in  /root/my-applications/bin
geany /root/.jwm/jwmrc-personal /root/.jwm/jwmrc-theme /root/.jwm/jwmrc-personal2 /root/.jwmrc /root/.jwmrc-tray /root/my-applications/root3/.jwmrc /root/my-applications/root3/jwmrc-personal3 /root/my-applications/root3/root30menu/.jwmrc /root/my-applications/root3/root30menu/jwmrc-personal30 /root/my-applications/root3/root31menu/.jwmrc /root/my-applications/root3/root31menu/jwmrc-personal31 /root/my-applications/root3/root32menu/.jwmrc /root/my-applications/root3/root32menu/jwmrc-personal32 /root/my-applications/root3/root33menu/.jwmrc /root/my-applications/root3/root33menu/jwmrc-personal33 /root/my-applications/root3/root34menu/.jwmrc /root/my-applications/root3/root34menu/jwmrc-personal34 /root/my-applications/root3/root35menu/.jwmrc /root/my-applications/root3/root35menu/jwmrc-personal35 /root/my-applications/root3/root36menu/.jwmrc /root/my-applications/root3/root36menu/jwmrc-personal36 /root/my-applications/root3/root37menu/.jwmrc /root/my-applications/root3/root37menu/jwmrc-personal37 /root/my-applications/root3/root38menu/.jwmrc /root/my-applications/root3/root38menu/jwmrc-personal38 /root/my-applications/root3/root39menu/.jwmrc /root/my-applications/root3/root39menu/jwmrc-personal39 

_____________

enjoy.


--puppus dogfellow, 3/15



so, long story short, you enter my3 or my30 (will currently work with my3 and my30-my39) into a terminal and you get a compressed original menu, a shortcut to the desktops and applications folder, and an opportunity to try out 10 or so alternate layouts. seamless, virtually instant switching between menu sets and keyboard shortcut sets. can also be used to switch between tray layouts. have your menus more wholly honed to the task at hand. or something.

:lol:

enjoy.


___________________________


edit: you may want to change the code in the above examples from jwm -reload to jwm -restart if your configuration changes involve keyboard shortcuts and the trays as -reload only works for the menus/menu entries themselves. if you're only changing the menus then keep it as is as -reload is smoother, quicker, and more pleasant (2-3 second delay at most, no flicker; jwm -restart, 3-5 second delay, harsh flicker that rearranges the task bar. not sure if other glipper installations are similarly affected, but on my machines it also almost always knocks the glipper icon from the dock as well, necessitating an alt+spacebar, 2, /, g, enter to fix it. [jwm shortcut for rox ~, (my) rox speeddial for Start up, a slash to activate path/file search (also handy for copying the path, which appears at the bottom of the rox window), g for glipper, enter.])
Last edited by Puppus Dogfellow on Sun 08 Mar 2015, 22:34, edited 2 times in total.

User avatar
Puppus Dogfellow
Posts: 1667
Joined: Tue 08 Jan 2013, 01:39
Location: nyc

embedding trays in the wallpaper

#146 Post by Puppus Dogfellow »

you can set additional jwm trays into the background to get them out of your way, or allow the dock, pager, or menus to be activated from/become a part of the wallpaper/backdrop. first example sets five menus [roots 6-(1)0], the clock, and the pager into the cluster with the drive icons:

Image


here are some other shots:


Image

centrally located menu strip (you can use large images and have the clock determine the width (or use width=""), though here i just stuck with numbers). note how the menu when launched sits above though activated from below:

Image

random placements:

Image

messing with sizes (in this case, large, 48 desktop pager):

Image


here's an example of how to do it (this is the one for the little vertical five menu button strip):

Code: Select all

<JWM>
	<Tray  autohide="false" insert="right"  layer="below" layout="vertical" x="306" y="440" border="1">
	



<!--<TrayButton label="1">root:1</TrayButton> 
 <TrayButton label="2">root:2</TrayButton> 
 <TrayButton label="3">root:3</TrayButton> 
<TrayButton label="4">root:4</TrayButton> 

 <TrayButton label="r5.png">root:5</TrayButton> -->

<TrayButton icon="r6.png">root:6</TrayButton> 



<TrayButton icon="r7.png">root:7</TrayButton> 
 <TrayButton icon="r8.png">root:8</TrayButton> 
 <TrayButton icon="r9.png">root:9</TrayButton> 
 <TrayButton icon="r0.png">root:0</TrayButton>

			
	</Tray>
	
<!-- five menu buttons are commented out since they're also the five mouse "buttons"--you could make rows of buttons comprised of any photos of your choice and use them for scripts, programs, folders, etc. -->

<!--name (for example) trayv6 and place in (for example) /root. activate by placing <Include>/root/trayv6</Include> in the  jwmrc-personal file in /root/.jwm and restart jwm -->
	
</JWM>

______________

(probably should've been posted earlier, but...)



here are some shots of the placement menus:

Image

Image

Image


Image

User avatar
Puppus Dogfellow
Posts: 1667
Joined: Tue 08 Jan 2013, 01:39
Location: nyc

move and click the mouse with the arrow keys

#147 Post by Puppus Dogfellow »

Code: Select all

<Key mask="AC" key="Up">exec:xdotool mousemove_relative -- 0 -10</Key>
<Key mask="AC" key="Down">exec:xdotool mousemove_relative -- 0 10</Key>
<Key mask="AC" key="Right">exec:xdotool mousemove_relative -- 10 0</Key>
<Key mask="AC" key="Left">exec:xdotool mousemove_relative -- -10 0</Key>

<Key mask="AS" key="Up">exec:xdotool click 2</Key>
<Key mask="AS" key="Down">showdesktop</Key>
<Key mask="AS" key="Right">exec:xdotool click 3</Key>
<Key mask="AS" key="Left">exec:xdotool click 1</Key>


<Key mask="SAC" key="Up">exec:xdotool mousemove_relative -- 0 -50</Key>
<Key mask="SAC" key="Down">exec:xdotool mousemove_relative -- 0 50</Key>
<Key mask="SAC" key="Right">exec:xdotool mousemove_relative -- 50 0</Key>
<Key mask="SAC" key="Left">exec:xdotool mousemove_relative -- -50 0</Key>


click 1 is left, 2 is middle, 3 is right. alt+ctrl moves, alt+shift clicks, alt+shift+ctrl moves the mouse at quintuple time.

earlier, alt and these keys were made into a quick scoot cluster for active windows. swap shift for control if the assonance of shift click is less helpful a mnemonic than the alliteration of control click, which has the advantage of also working alphabetically (click comes before move, ctrl comes before shift. i use the windows move shortcut most so it gets the cushiest cut. hopefully the alt plus combination will prevent interference with word processing and other programs that sometimes heavily rely on the arrow keys).

User avatar
Puppus Dogfellow
Posts: 1667
Joined: Tue 08 Jan 2013, 01:39
Location: nyc

quickly reach the choicest menu bits

#148 Post by Puppus Dogfellow »

Image

some of my menus are very long, and often i don't feel like deleting or restructuring parts that helped me build better versions, in the way though they may be. a simple work around is a script like the following, which can be added to jwmrc-personal as a shortcut, a menu as a wormhole, /root/my-applications/bin for a terminal shortcut (name it something short such as w5 or wp and activate with grun or a terminal), dragged to the desktop or a panel, or made into a tray button:

Code: Select all

#!/bin/sh
xdotool key alt+9 Up Right Down Down Down Down Right

this is the menu item version of one of the two lines of code depicted in the gif:

Code: Select all

	 <Program label="manipR9windows" icon="">xdotool key alt+9 Up Right Up Right Right</Program>

what it the two menu shortcuts look like as key codes:

Code: Select all


<Key mask="A" key="h">prev</Key>
<Key mask="A" key="j">next</Key>

<Key mask="A" key="k">exec:xdotool key alt+9 Up Right Down Down Down Down Right</Key>
<Key mask="A" key="l">exec:xdotool key alt+9 Up Right Up Right Right</Key>
something like this can save keys in the long run--rather than have a shortcut for each particular panel, pinboard, or program set, just use one or two shortcut keys to instantly access submenus containing whatever you'll be looking for. place helpful things near where you're planning to end up. let xdotool handle the drudgery of accessing the menus and pressing the up and down and left and right arrows. saves seconds, reduces demands on one's concentration (the gif depicts it accessing two of the root 9 menu's submenus). terminal shortcuts only require a shortcut to launch the terminal or grun/prun/gexec--the tersely named scripts can multiply exponentially and their easy to remember four character or so launching combinations will cost no additional keys. the two submenus pictured are mainly to give text editors/viewers word processor functionality (an ongoing project) and to provide users with an easy way to organize, size, and position windows (link above has the menu code for both plus a single monitor version of the windows manipulation menu).


edit: calling the submenus from the terminal appears to always work--not so with the shortcut keys. not sure if it's sending the keys too fast or if there's some other shortcuts i've forgotten about that are interfering, but called from a terminal or launcher such as gexec or grun or called from a menu wormhole or clicked on as a script or desktop icon all appear to work more consistently than the shortcut keys for some reason. (i recommend spacebar plus a single modifier for the shortcut that calls the terminal or terminal-caller).

User avatar
Puppus Dogfellow
Posts: 1667
Joined: Tue 08 Jan 2013, 01:39
Location: nyc

alternate method for accessing rox bookmarks through jwm

#149 Post by Puppus Dogfellow »

requiresxdotool-2.20110530.1-3.pet
64 bit version: xdotool-2.20110530.1-3.1.2.x86_64.rpm

Code: Select all

 rox /mnt; xdotool key ctrl+b

Code: Select all

 rox /tmp; xdotool key ctrl+b Down Down Down Down Down Down Down Down 	 
the above code will allow you to quickly access your rox bookmarks. you can designate what folder you want to extend its bookmarks menu by adding a path after a space after the rox (by itself, it opens /root); you can position the select-highlight by adding (a series of) Down to the latter part of the line (without it, the position defaults to Add New Bookmark).

example for the keyboard shortcuts in jwmrc-personal:

Code: Select all

 <Key mask="CS" key="b">exec:rox /mnt; xdotool key ctrl+b</Key>

example for a/the menu:

Code: Select all

	  	 <Program label="rox bookmarks" icon="">rox /tmp; xdotool key ctrl+b Down Down Down Down Down Down Down Down </Program>

script for terminal shortcut (place in /root/my-applications/bin):

Code: Select all

#!/bin/sh

rox /mnt; xdotool key ctrl+b
#rox bookmarks. for a terminal shortcut, place in /root/my-applications/bin and name rb/something apt and brief.
#make quick links to folders by adding (a series of) Down to the latter part of line and renaming the resultant scripts rb1, rb2...
right or middle clicking on the list will leave the original folder open when the bookmark is called. left clicking closes the original folder.


______

two more samples:

Code: Select all

#!/bin/sh 
#name rup
rox /mnt/home; xdotool key ctrl+b Up Up Up
#^three up from last bookmark

Code: Select all

#!/bin/sh 
# name rr
rox /usr/share; xdotool key ctrl+b Down Down Right Down
#^one down on the recently visited list
tips/reminders: escape will shut the list, ctrl+Home takes you to /root(~), and Backspace moves to parent folder--you don't really need a speed dial (designate by ctrl+0-9, access by 0-9) for / or ~ because of this (ctrl+Home followed by Backspace reaches / from any folder). call the bookmarks list with ctrl+b; left click and enter close the original, middle and right click open the bookmark as an additional folder. \ is the right click menu, / opens the path search bar at the bottom of the window.

User avatar
Puppus Dogfellow
Posts: 1667
Joined: Tue 08 Jan 2013, 01:39
Location: nyc

active versions of the window manipulations packs

#150 Post by Puppus Dogfellow »

here and hereyou can find windows manipulation scripts that work on a window to be selected by the next click. for the select (turn your mouse to crosshairs) versions it doesn't matter much how you launch the command, but for the active versions, gexec or similar launchers work on the active window whereas terminals become the active window (and merely distort themselves/bounce themselves around). use the following pack of scripts to get the active versions of the windows manipulation commands you can see on the menus. making (gexec) an easily pressed key combo (alt+spacebar) allows you to resize windows quickly and in a way you yourself find memorable. for the most part and as examples of the general naming convention, 650 will make a 650 pixel square of a window to be selected, 650a will turn the active window into a 650 pixel square; y450 moves the selected to that position, y450a moves the active window to that position. the scripts are easily customizable if the presets and titles don't suit you. comments included in them and in this thread should help out. you can use something like the vgt to make your window templates. i haven't as yet made a pack of the active versions of the (now up to) 24 send-to-desktop scripts, but changing the :SELECT: to :ACTIVE: in each and renaming a copy (for example) s15a will give a terminal shortcut for send-tos for active windows. the lba, lma, laa are to layer the active window below, middle (normal, there's already a system script named lna...), and above respectively. were i to do it again, i'd rename everything with active as the default (i.e. if you want to send the thing you select to desktop 16 or the upper right quadrant, you'd have to type the final s for SELECT--the shorter titles (s15, urq, 650, la) would work on the active windows. currently only the a and b series (halves and quadrants) are set up this way).

nwpfor~572 plus the earlier windows placement packs and the placement pack active add in will give you everything necessary to use the menus shown in the above post, and which you can find versions of here and the two posts that follow.

____


i discovered that gexec launches the rox bookmarks shortcuts, the extra menu entry ways, and the resize/reposition scripts especially well while trying to get used to openbox/fatdog. eventually i realized you can switch to jwm in fatdog as a built in feature, but the two systems aren't quite laid out the same way. easiest work around was to just keep all the code the same, adding the missing my-applications folder. it isn't part of the PATH, and i don't know if i was supposed to have restarted x after looking online to find the code to add something to the PATH, but having failed that way, i ended up just symlinking all the my-applications/bin files to one of fatdog's PATH folders, /usr/local/bin. there were relatively few scripts in the folder, so i chose it figuring it would be easy to keep track of things. the few hundred or so kb of files symlink virtually instantly, though i suppose correcting adding to the PATH would be just as fast. so far everything seems to work except WinSwitcher and SpeedDials, but that's likely due to 32/64 bit differences (wmctrl and xdotool work in other capacities--most of these scripts require either xdotool or wmctrl).

edit: the size and reposition scripts work mostly well in fatdog, the send tos and desktop hopping scripts work fine, but move along the x and y axis without resizing anything and list all the windows commands are working inconsistently or not at all...

User avatar
Puppus Dogfellow
Posts: 1667
Joined: Tue 08 Jan 2013, 01:39
Location: nyc

active and select resize, active send to gexec* shortcuts

#151 Post by Puppus Dogfellow »

Puppus Dogfellow wrote:haven't as yet made a pack of the active versions of the (now up to) 24 send-to-desktop scripts, but changing the :SELECT: to :ACTIVE: in each and renaming a copy (for example) s15a will give a terminal shortcut for send-tos for active windows. the lba, lma, laa are to layer the active window below, middle (normal, there's already a system script named lna...), and above respectively. were i to do it again, i'd rename everything with active as the default (i.e. if you want to send the thing you select to desktop 16 or the upper right quadrant, you'd have to type the final s for SELECT--the shorter titles (s15, urq, 650, la) would work on the active windows. currently only the a and b series (halves and quadrants) are set up this way).
here ya go: sendtoAhwAS.tar.gz

scripts included:

Code: Select all

h1000   h1225s  h1475   h1700s  h325   h550s  h800   s0a   s4a     w1100s  w1350   w1575s  w200   w425s  w675   w900s
h1000s  h1250   h1475s  h1725   h325s  h575   h800s  s10a  s5a     w1125   w1350s  w1600   w200s  w450   w675s  w925
h1025   h1250s  h1500   h1725s  h350   h575s  h825   s11a  s6a     w1125s  w1375   w1600s  w225   w450s  w700   w925s
h1025s  h1275   h1500s  h1750   h350s  h600   h825s  s12a  s7a     w1150   w1375s  w1625   w225s  w475   w700s  w950
h1050   h1275s  h1525   h1750s  h375   h600s  h850   s13a  s8a     w1150s  w1400   w1625s  w250   w475s  w725   w950s
h1050s  h1300   h1525s  h1775   h375s  h625   h850s  s14a  s9a     w1175   w1400s  w1650   w250s  w500   w725s  w975
h1075   h1300s  h1550   h1775s  h400   h625s  h875   s15a  shade   w1175s  w1425   w1650s  w275   w500s  w750   w975s
h1075s  h1325   h1550s  h1800   h400s  h650   h875s  s16a  stk     w1200   w1425s  w1675   w275s  w525   w750s
h1100   h1325s  h1575   h1800s  h425   h650s  h900   s17a  ushade  w1200s  w1450   w1675s  w300   w525s  w775
h1100s  h1350   h1575s  h200    h425s  h675   h900s  s18a  ustk    w1225   w1450s  w1700   w300s  w550   w775s
h1125   h1350s  h1600   h200s   h450   h675s  h925   s19a  w1000   w1225s  w1475   w1700s  w325   w550s  w800
h1125s  h1375   h1600s  h225    h450s  h700   h925s  s1a   w1000s  w1250   w1475s  w1725   w325s  w575   w800s
h1150   h1375s  h1625   h225s   h475   h700s  h950   s20a  w1025   w1250s  w1500   w1725s  w350   w575s  w825
h1150s  h1400   h1625s  h250    h475s  h725   h950s  s21a  w1025s  w1275   w1500s  w1750   w350s  w600   w825s
h1175   h1400s  h1650   h250s   h500   h725s  h975   s22a  w1050   w1275s  w1525   w1750s  w375   w600s  w850
h1175s  h1425   h1650s  h275    h500s  h750   h975s  s23a  w1050s  w1300   w1525s  w1775   w375s  w625   w850s
h1200   h1425s  h1675   h275s   h525   h750s  laa    s24a  w1075   w1300s  w1550   w1775s  w400   w625s  w875
h1200s  h1450   h1675s  h300    h525s  h775   lba    s2a   w1075s  w1325   w1550s  w1800   w400s  w650   w875s
h1225   h1450s  h1700   h300s   h550   h775s  lma    s3a   w1100   w1325s  w1575   w1800s  w425   w650s  w900
(the more or less self-describing titles (or launch codes, if you prefer) do what they say they will).


from 290easybake.sendtoAhwAS.readme:

active and select resize scripts, active send-to, stick, and layer scripts, plus the code i found that made it easier to put together and why i recommend gexec:

grep -lr --exclude-dir=".excludedsub(repeat for each subtree)" -e "SELECT" . | xargs sed -i "s/SELECT/ACTIVE/g"

i used the above to flip a directory worth of files from select scripts to active scripts. here's the reverse, in case you find yourself making your own versions and want to spare yourself from needlessly doubling the effort involved getting a set for each:

grep -lr --exclude-dir=".excludedsub" -e "ACTIVE" . | xargs sed -i "s/ACTIVE/SELECT/g"

adapted from here:

http://www.isaacsukin.com/news/2013/06/ ... -directory

(i used the built-in gnfrename to batch rename a directory of copies, then copied the new scripts back into /root/my-applications/bin. remember to check the permissions if something won't run.)


--------------------
#!/bin/sh
for file in *
do
cat negones >> $file
done#!/bin/sh

#(negones being a file in the same directory consisting of:

#!/bin/sh
wmctrl -r :ACTIVE: -b remove,maximized_vert,maximized_horz && wmctrl -r :ACTIVE: -e 0,-1,-1,-1,-1

# --a general way to make template files/fill a directory of files with given content)

#adapted from http://www.unix.com/shell-programming-a ... files.html
--------------------

find and replace (space) with (space)/root/my-applications/bin/
touch command to make them real files. [i typed out a series of numbers (200 -1800 by 25s; echo {200..1800..25} would've produced the same sequence), replaced the space (through geany's find and replace function) with space plus path, added touch infront of the resulting list, and got a batch of files that way. used gfnrename to rename copies of the originals in separate folders for height, width, select, and active (the included active send-tos were done with the grep line that starts this readme). included the content with the little script above, placed in and activated from the same folder that held the originals (spare yourself some work and copy them after the content's been added. to do: learn the code for transposing values after commas--that'd make the process more automated still...you could also i'm sure have sed/awk/grep (tr, cut?) take the values from a list and put them in the proper place in each file. this'll do for now...)

--------------------

gfnrename
--------------------

#!/bin/sh
#name fnr
findnrun
#--------------------
#^findnrun is probably the best thing to choose when you can only remember three characters in the title of the program, but it appears to only search the desktops files and so can't launch the terminal shortcuts. it gets a launch shortcut of its own, but i recommend gexec to launch the mini-scripts, whether resize, reposition, or just in general. the lack of a zealous highlight/replace-predict action may mean you need an extra tab-press to complete something like sak into sakura compared to say, gRun, but that same thing allows shorter two and three character scripts to be run without the launcher automatically predicting some longer-titled items, apparently by default interpreting those titles as fragments of longer titles outside /root/my-applications/bin--you won't be able to access them if there's a conflict. gexec's dropdown history window (which you can preload and make into a menu of sorts) also appears to work better than gRun's. i haven't done much testing with Prun, but it seems to work very well for all the non-resize/reposition shortcuts--it fails with them in the same way the terminals do (as discussed earlier, terminals are out for launching the resize reposition scripts on active windows since they'll only be resizing/repositioning themselves).
edit: pexec works as well as gexec (and also has a pull down menu you can preload)

User avatar
Puppus Dogfellow
Posts: 1667
Joined: Tue 08 Jan 2013, 01:39
Location: nyc

The Gexec Pexack update to the terminal shortcuts

#152 Post by Puppus Dogfellow »

Puppus Dogfellow wrote:terminal_shortcuts.tar.gz
cadi close all instances on all desktops
ccdi close all instances on current desktop
cg close all current geany
cl close all current leafpad
closeallrox
close instances template and explanation
cm close all current mtpaint
cr close all current rox
cs close all current sakura
ct close all current rxvt
cu close all current urxvt
cx close all current xpad
d1
d10
d2
d3
d4
d5 [all the d- series will take you to the desktop number indicated]
d6
d7
d8
d9
hlx [launch htop and lx task at the same time]
mps exit to prompt
mrs reboot
mss shutdown [m-series are Mochi-Moppel's gentler shutdown scripts,which i've not yet used. mss is the original...]
mxs restart xserver
p0
p1
p2

p3 [p- series is a (configurable) four panel toggle--like a menu for all sides. good for cadi, ccdi, and the launching scripts. also the NWPT]
p4
p5
p7
p8
p9

wg wmctrl list plus window geometry
wh wmctrl help
wl wmctrl list
wmctrl-1.07-6_i386.pet [needed by most of the stuff here]
wmctrlh wmctrl help, clickable (thanks to disciple)
wmctrll wmctrl list plus window geometry, clickable (thanks to disciple) [these two make it somewhat easier to learn about this very useful program]

because i've now made my terminal the keyboard shortcut of spacebar+shift[<Key mask="S" key="space">exec:sakura</Key>], i'm finding it's actually faster to do many things through it. because "cs" entered into it closes it, it's also unobtrusive and the action flows as smoothly as typing in a document. i also just discovered that the up and down arrow keys will allow you to scroll back and forth through all the commands you've ever entered into a terminal, so you could get away with longer, more descriptive titles without too much loss in speed, though

Code: Select all

shift+space, two or three characters, cs. 
can be done while looking elsewhere or one's eyes closed. i decided to gain back some of my keyboard shortcuts (regained ten with the desktops) and made a few happy discoveries along the way, the main one being that you can use the terminal in the same way we've been customizing the menu to launch specific folders and files. here are two templates and three examples:

Code: Select all

#!/bin/bash

geany /mnt/mmcblk0p2/Dropbox/MMMMMMMMM/supl/leafpad/leafpad1.txt /mnt/mmcblk0p2/Dropbox/MMMMMMMMM/supl/leafpad/leafpad2.txt /mnt/mmcblk0p2/Dropbox/MMMMMMMMM/supl/leafpad/leafpad3.txt /mnt/mmcblk0p2/Dropbox/MMMMMMMMM/supl/leafpad/leafpad4.txt /mnt/mmcblk0p2/Dropbox/MMMMMMMMM/supl/leafpad/leafpad5.txt /mnt/mmcblk0p2/Dropbox/MMMMMMMMM/supl/leafpad/leafpad6.txt /mnt/mmcblk0p2/Dropbox/MMMMMMMMM/supl/leafpad/leafpad7.txt /mnt/mmcblk0p2/Dropbox/MMMMMMMMM/supl/leafpad/leafpad8.txt /mnt/mmcblk0p2/Dropbox/MMMMMMMMM/supl/leafpad/leafpad9.txt /mnt/mmcblk0p2/Dropbox/MMMMMMMMM/supl/leafpad/leafpad10.txt /mnt/mmcblk0p2/Dropbox/MMMMMMMMM/supl/leafpad/leafpad11.txt

Code: Select all

#!/bin/bash
rox /mnt/mmcblk0p2/Dropbox/MMMMMMMMM /mnt/mmcblk0p2/Dropbox /mnt/mmcblk0p2/Dropbox/ANCN /mnt/mmcblk0p2/Dropbox/feb /mnt/sda2/downloadsFFFsda2 /mnt/mmcblk0p2/Dropbox/MMMMMMMMM/supl/leafpad 

Code: Select all

#!/bin/bash

leafpad /mnt/mmcblk0p2/Dropbox/MMMMMMMMM/supl/leafpad/leafpad1.txt| leafpad /mnt/mmcblk0p2/Dropbox/MMMMMMMMM/supl/leafpad/leafpad2.txt| leafpad /mnt/mmcblk0p2/Dropbox/MMMMMMMMM/supl/leafpad/leafpad3.txt| leafpad /mnt/sda1/dropboxondell571/Dropbox/MMMMMMMMM/supl/leafpad/leafpad4.txt| leafpad /mnt/mmcblk0p2/Dropbox/MMMMMMMMM/supl/leafpad/leafpad5.txt
the first one and second share the same syntax--program name, then the files or folders you want to open. naming the geany one gl and copying it (i suppose symlinking would also do) to a bin folder (/bin, usr/bin, /root/my-applications/bin, etc--all of them need to be copied to a bin folder in order for the terminal to pick them up as commands) will launch geany with those files opened when "gl" is entered into a terminal. you could also make these things themselves into shortcut keys or menu items. the rox one will open up multiple rox folders. the leafpad situation is a bit different and some programs may need this technique. it's not merely a question of whether or not the program opens with a file list/tree or as individual windows, because for libreoffice, the geany syntax [#!/bin/sh
libreoffice4.2 --writer fileone'sfullpath filetwo'sfullpath] will work. anyway, for leafpad and others, making the shortcut file is a bit more involved than simply highlighting a bunch in a folder then dragging the list to a leafpad or xpad file and then adding the crunchbang and program name on top of it. you need to use the | character to separate the individual items you want launched. you can also add more than one program launching more than one file this way. once you're done or have done a few of these, you may find

Code: Select all

shift+space, two to five characters, ct
is faster than many other keyboard shortcuts (flows better, easier to remember, less hand contorting) and is an appreciable deal faster than hunting and pecking for things on the menus or panels.

...

of course, you could still use these scripts without ever having to touch the the terminal. if you've copied the contents of the downloaded zip into my-applications/bin, making <Key mask="A" key="space">exec:rox /root/my-applications/bin</Key> the alt+spacebar shortcut for that folder allows any of them to be activated at a click, including cr, which will then close all the open rox windows, including the one it itself is in. cadi and ccdi can't be used this way (beyond functioning as cr and closeallrox) as they will both just offer to shut the active window, which is in this case rox.

to further speed things along, you could add MochiMoppel's excellent ROX-Filer: Superfast bookmarks script to the folder, perhaps calling it m1 or something brief/terminal-route friendly. it's a good idea to get familiar with rox's built in speed dials anyway--it's the fastest way to open individual folders, but you need to already be in a rox window to use it. so anyway, you get 10 (with alt+spacebar as the eleventh and only two-key item) folders you can access with the press of 0-9 on your keyboard. these scripts, as well as individual folders or scripts made to launch batches of them, can also be dragged to a panel, which can be itself made into a button, a keyboard shortcut, or a terminal shortcut. they can't be instantly closed with a c- script, but reentering the name of/reclicking the script for the same panel as the one that's opened will close it (the other panel scripts will just cover the previous one). for this reason, dragging the folder that contains the panel scripts to the panels is a good idea.

edit: updated download to include accidentally omitted p6.
following updates nwp, the above, and the placement and size packs:

The_Gexec_Pexack.

further info


__________

some of the mini scripts are dependent on a particular jwm configuration. i will attach my double and single monitor jwmrc-personal files and the menus that go with these programs in the near future.
for now here's a the double monitor jwmrc.personal file:

Code: Select all

<!-- Personally configurable options for JWM: these override default settings and theme settings -->

<JWM>

 <Include>/root/traylvert</Include>
 <!-- <Include>/root/traymidvert</Include>-->
 <!-- <Include>/root/trayrt</Include>-->
 <Include>/root/bottomtrayr</Include>
  <Include>toprighttrayr2</Include>
   <!-- <Include>/root/bottomtrayr2</Include>-->
<Include>/root/root1menu</Include>
<Include>/root/root4menu</Include>
<Include>/root/root5menu</Include>
<Include>/root/root2menu</Include>
<Include>/root/root9menu</Include>
<Include>/root/root8menu</Include>
<Include>/root/root7menu</Include>
<Include>/root/root6menu</Include>
<Include>/root/root0menu</Include>
<!-- <TrayButton label="1">root:1</TrayButton> -->
<!-- <TrayButton label="4">root:4</TrayButton> -->
<!-- <TrayButton label="5">root:5</TrayButton> -->
<!-- <TrayButton label="7">root:7</TrayButton> -->
<!-- <TrayButton label="6">root:6</TrayButton> -->
<!-- <TrayButton label="2">root:2</TrayButton> -->
<!-- <TrayButton label="8">root:8</TrayButton> -->
<!-- <TrayButton label="9">root:9</TrayButton> -->
<!-- <TrayButton label="0">root:0</TrayButton> -->

    
<!-- Number of virtual desktops  BK: syntax change with jwm 500... -->
<Desktops width="8" height="3"/>

<!-- Double click speed (in milliseconds) -->
<DoubleClickSpeed>400</DoubleClickSpeed>

<!-- Double click delta (in pixels) -->
<DoubleClickDelta>3</DoubleClickDelta>

<!-- The focus model (sloppy or click) -->
<FocusModel>click</FocusModel>

<!-- The snap mode (none, screen, or border) -->
<SnapMode distance="10">none</SnapMode>

<!-- The move mode (outline or opaque) -->
<MoveMode>outline</MoveMode>

<!-- The resize mode (outline or opaque) -->
<ResizeMode>outline</ResizeMode>


	<!-- keycode 22 BackSpace -->
<!-- Key bindings -->

<Key key="Up">up</Key>
<Key key="Down">down</Key>
<Key key="Right">right</Key>
<Key key="Left">left</Key>

<Key key="h">left</Key>
<Key key="j">down</Key>
<Key key="k">up</Key>
<Key key="l">right</Key>

<Key mask="AC" key="g">exec:geany /root/.jwm/jwmrc-personal /usr/share/applications/appsastext</Key>
<Key mask="SAC" key="g">exec:xdotool key alt+1 Down Return</Key>

<Key mask="A" key="z">exec:xdotool key alt+1 Down Return</Key>	
<Key mask="AC" key="z">exec:geany /usr/share/applications/appsastext /root/.jwm/jwmrc-personal</Key>



<Key key="F8">window</Key>


<Key mask="A" key="h">prev</Key>
<Key mask="A" key="j">next</Key>
<Key mask="A" key="k">exec:xdotool key alt+9 Up Right Down Down Down Down Right</Key>
<Key mask="A" key="l">exec:xdotool key alt+9 Up Right Up Right Right</Key>


<Key mask="AC" key="h">window</Key>
<Key mask="AC" key="j">move</Key>
<Key mask="AC" key="k">resize</Key>
<Key mask="AC" key="l">exec:leafpad</Key>


<Key mask="SC" key="h">exec:winswitcher</Key>
<Key mask="SC" key="j">exec:closeallrox</Key>
<Key mask="SC" key="k">maximize</Key>
<Key mask="SC" key="l">minimize</Key>

<Key mask="SC" key="a">exec:lxtask</Key>
<Key mask="SC" key="s">exec:lxterminal</Key>
<Key mask="SC" key="d">exec:grun</Key>
<Key mask="SC" key="f">exec:gexec</Key>





<Key mask="SA" key="h">exec:ccdi</Key>
<Key mask="SA" key="j">close</Key>
<Key mask="SA" key="k">exec:kill</Key>
<Key mask="SA" key="l">exec:cadi</Key>


<Key mask="SAC" key="h">ldesktop</Key>
<Key mask="SAC" key="j">ddesktop</Key>
<Key mask="SAC" key="k">udesktop</Key>
<Key mask="SAC" key="l">rdesktop</Key>



<Key mask="AC" key="F1">exec:d1</Key>
<Key mask="AC" key="F2">exec:d2</Key>
<Key mask="AC" key="F3">exec:d3</Key>	
<Key mask="AC" key="F4">exec:d4</Key>	
<Key mask="AC" key="F5">exec:d5</Key>	
<Key mask="AC" key="F6">exec:d6</Key>
<Key mask="AC" key="F7">exec:d7</Key>
<Key mask="AC" key="F8">exec:d8</Key>
<Key mask="AC" key="F9">exec:d9</Key>	
<Key mask="AC" key="F10">exec:d10</Key>
<Key mask="AC" key="F11">exec:d11</Key>
<Key mask="AC" key="F12">exec:d12</Key>	
<Key mask="SA" key="F1">exec:d13</Key>
<Key mask="SA" key="F2">exec:d14</Key>
<Key mask="SA" key="F3">exec:d15</Key>	
<Key mask="SA" key="F4">exec:d16</Key>	
<Key mask="SA" key="F5">exec:d17</Key>	
<Key mask="SA" key="F6">exec:d18</Key>
<Key mask="SA" key="F7">exec:d19</Key>
<Key mask="SA" key="F8">exec:d20</Key>
<Key mask="SA" key="F9">exec:d21</Key>	
<Key mask="SA" key="F10">exec:d22</Key>
<Key mask="SA" key="F11">exec:d23</Key>
<Key mask="SA" key="F12">exec:d24</Key>




<Key mask="SC" key="F1">exec:wmctrl -r :ACTIVE: -t0</Key>
<Key mask="SC" key="F2">exec:wmctrl -r :ACTIVE: -t1</Key>
<Key mask="SC" key="F3">exec:wmctrl -r :ACTIVE: -t2</Key>	
<Key mask="SC" key="F4">exec:wmctrl -r :ACTIVE: -t3</Key>	
<Key mask="SC" key="F5">exec:wmctrl -r :ACTIVE: -t4</Key>	
<Key mask="SC" key="F6">exec:wmctrl -r :ACTIVE: -t5</Key>
<Key mask="SC" key="F7">exec:wmctrl -r :ACTIVE: -t6</Key>
<Key mask="SC" key="F8">exec:wmctrl -r :ACTIVE: -t7</Key>
<Key mask="SC" key="F9">exec:wmctrl -r :ACTIVE: -t8</Key>	
<Key mask="SC" key="F10">exec:wmctrl -r :ACTIVE: -t9</Key>
<Key mask="SC" key="F11">exec:wmctrl -r :ACTIVE: -t10</Key>
<Key mask="SC" key="F12">exec:wmctrl -r :ACTIVE: -t11</Key>	
<Key mask="SAC" key="F1">exec:wmctrl -r :ACTIVE: -t12</Key>
<Key mask="SAC" key="F2">exec:wmctrl -r :ACTIVE: -t13</Key>
<Key mask="SAC" key="F3">exec:wmctrl -r :ACTIVE: -t14</Key>	
<Key mask="SAC" key="F4">exec:wmctrl -r :ACTIVE: -t15</Key>	
<Key mask="SAC" key="F5">exec:wmctrl -r :ACTIVE: -t16</Key>	
<Key mask="SAC" key="F6">exec:wmctrl -r :ACTIVE: -t17</Key>
<Key mask="SAC" key="F7">exec:wmctrl -r :ACTIVE: -t18</Key>
<Key mask="SAC" key="F8">exec:wmctrl -r :ACTIVE: -t19</Key>
<Key mask="SAC" key="F9">exec:wmctrl -r :ACTIVE: -t20</Key>	
<Key mask="SAC" key="F10">exec:wmctrl -r :ACTIVE: -t21</Key>
<Key mask="SAC" key="F11">exec:wmctrl -r :ACTIVE: -t22</Key>
<Key mask="SAC" key="F12">exec:wmctrl -r :ACTIVE: -t23</Key>





<Key mask="AC" key="m">move</Key>
<Key mask="AC" key="w">exec:window</Key>

<Key mask="AC" key="r">resize</Key>

<Key mask="AC" key="p">exec:/root/.Pup-Shots/.PupShots</Key>


<Key mask="AC" key="x">exec:xpad</Key>

<Key mask="AC" key="e">exec:mtpaint "/mnt/mmcblk0p2/Dropbox/small empty.png"</Key>
<Key mask="AC" key="d">exec:"/mnt/sda2/downloadsFFFsda2/GoldenDict 1.5.0-RC-154-gc7cc9e4-i386"</Key>
<Key mask="AC" key="n">exec:notecase /mnt/mmcblk0p2/Dropbox/ANCN/Scaffolding/ncdSCAFF01/ncdSCAFF01.ncd</Key>
<Key mask="AC" key="s">exec:sakura</Key>
<Key mask="AC" key="t">exec:rxvt</Key>

<Key mask="AC" key="b">exec:sd</Key>
<Key mask="AC" key="v">exec:partview</Key>
<Key mask="AC" key="u">exec:urxvt</Key>

<Key mask="AC" key="o">exec:libreoffice4.4 --writer /mnt/mmcblk0p2/Dropbox/ANCN/OOoODT1CLAMSILVER.odt /mnt/mmcblk0p2/Dropbox/ANCN/sc3.odt</Key>


<Key mask="SAC" key="d">showdesktop</Key>

<Key mask="SAC" key="c">exec:closeallrox</Key>
<Key mask="SAC" key="s">exec:s0a</Key>
<Key mask="SAC" key="r">exec:roxterm</Key>
<Key mask="SAC" key="m">move</Key>
<Key mask="SAC" key="p">exec:tas</Key>
<Key mask="SAC" key="w">window</Key>




<Key mask="A" key="1">root:1</Key>
<Key mask="A" key="2">root:2</Key>
<Key mask="A" key="3">root:3</Key>
<Key mask="A" key="4">root:4</Key>
<Key mask="A" key="5">root:5</Key>
<Key mask="A" key="6">root:6</Key>
<Key mask="A" key="7">root:</Key>
<Key mask="A" key="8">root:8</Key>
<Key mask="A" key="9">root:9</Key>
<Key mask="A" key="0">root:0</Key>

<Key mask="AC" key="1">exec:a1</Key>
<Key mask="AC" key="2">exec:a2</Key>
<Key mask="AC" key="3">exec:a3</Key>
<Key mask="AC" key="4">exec:a4</Key>
<Key mask="AC" key="5">exec:a5</Key>
<Key mask="AC" key="6">exec:a6</Key>
<Key mask="AC" key="7">exec:a7</Key>
<Key mask="AC" key="8">exec:a8</Key>
<Key mask="AC" key="9">exec:a9</Key>
<Key mask="AC" key="0">exec:a10</Key>

<Key mask="AS" key="1">exec:b1</Key>
<Key mask="AS" key="2">exec:b2</Key>
<Key mask="AS" key="3">exec:b3</Key>
<Key mask="AS" key="4">exec:b4</Key>
<Key mask="AS" key="5">exec:b5</Key>
<Key mask="AS" key="6">exec:b6</Key>
<Key mask="AS" key="7">exec:b7</Key>
<Key mask="AS" key="8">exec:b8</Key>
<Key mask="AS" key="9">exec:b9</Key>
<Key mask="AS" key="0">exec:b10</Key>



<Key mask="SC" key="1">exec:winswitcher</Key>
<Key mask="SC" key="2">exec:vgt</Key>
<Key mask="SC" key="3">exec:3but</Key>
<Key mask="SC" key="4">window</Key>
<Key mask="SC" key="5">move</Key>
<Key mask="SC" key="6">resize</Key>
<Key mask="SC" key="7">minimize</Key>
<Key mask="SC" key="8">maximize</Key>
<Key mask="SC" key="9">prev</Key>
<Key mask="SC" key="0">next</Key>	


<Key mask="SAC" key="1">exec:laa</Key>
<Key mask="SAC" key="2">exec:lma</Key>
<Key mask="SAC" key="3">exec:lba</Key>
<Key mask="SAC" key="4">exec:wmctrl -r :ACTIVE: -b add,sticky</Key>
<Key mask="SAC" key="5">exec:wmctrl -r :ACTIVE: -b remove,sticky</Key>
<Key mask="SAC" key="6">exec:wmctrl -r :ACTIVE: -b toggle,shaded</Key>
<Key mask="SAC" key="7">showdesktop</Key>
<Key mask="SAC" key="8">fullscreen</Key>
<Key mask="SAC" key="9">minimize</Key>
<Key mask="SAC" key="0">maximize</Key>




<Key mask="A" key="Tab">next</Key>
<Key mask="C" key="Tab">prev</Key>
<Key mask="AC" key="Tab">window</Key>
<Key mask="AS" key="Tab">exec:xdotool key alt+1 Down Return</Key>
<Key mask="CS" key="Tab">fullscreen</Key>
<Key mask="SAC" key="Tab">showdesktop</Key>


<Key mask="A" key="space">exec:rox</Key>
<Key mask="C" key="space">exec:winswitcher</Key>
<Key mask="S" key="space">exec:gexec</Key>
<Key mask="CA" key="space">exec:lxterminal</Key>
<Key mask="CS" key="space">exec:sd</Key>
<Key mask="AS" key="space">exec:rb</Key>
<Key mask="CAS" key="space">exec:closeallrox</Key>





<Key mask="A" key="Up">exec:supup</Key>
<Key mask="A" key="Down">exec:supdown</Key>
<Key mask="A" key="Right">exec:supright</Key>
<Key mask="A" key="Left">exec:supleft</Key>

<Key mask="AC" key="Up">exec:rb1</Key>
<Key mask="AC" key="Down">exec:sd</Key>
<Key mask="AC" key="Right">exec:rb</Key>
<Key mask="AC" key="Left">exec:rr</Key>

<Key mask="AS" key="Up">exec:xdotool click 2</Key>
<Key mask="AS" key="Down">showdesktop</Key>
<Key mask="AS" key="Right">exec:xdotool click 3</Key>
<Key mask="AS" key="Left">exec:xdotool click 1</Key>


<Key mask="SAC" key="Up">exec:xdotool mousemove_relative -- 0 -50</Key>
<Key mask="SAC" key="Down">exec:xdotool mousemove_relative -- 0 50</Key>
<Key mask="SAC" key="Right">exec:xdotool mousemove_relative -- 50 0</Key>
<Key mask="SAC" key="Left">exec:xdotool mousemove_relative -- -50 0</Key>


<Key mask="A" key="Escape">fullscreen</Key>
<Key mask="C" key="Escape">showdesktop</Key>
<Key mask="S" key="Escape">exec:3b</Key>
<Key mask="AC" key="Escape">exec:winswitcher</Key>
<Key mask="AS" key="Escape">exec:rox /usr/share/applications</Key>
<Key mask="CS" key="Escape">window</Key>   
<Key mask="SAC" key="Escape">exec:partview| rox /mnt</Key> 



      <Tray x="300" y="1">
      <Spacer width="1" height="1"/>
   </Tray>

   <Tray x="1" y="300">
      <Spacer width="1" height="1"/>
   </Tray>

   	<Group>
		<Name>roxterm</Name>
	<Option>sticky</Option>
		<Option>notitle</Option>
		<Option>noborder</Option>
	</Group>
	
<Group>
 <Name>xpad</Name>
 <Option>sticky</Option>
 </Group>
 
 <Group>
 <Name>libreoffice4.4 --writer</Name>
 <Option>sticky</Option>
 </Group>
 
 


</JWM>
here's the nwp and the single and double monitor submenus (comment out the appropriate one) that fit on it:

nwp:

Code: Select all

<JWM>
<Menu label="nwp" icon="" height="16">
<Program label="poetry" icon="">htmltemplatepref</Program>
<Program label="other" icon="">htmltxtwptemplate</Program>
<Program label="#!/bin/sh" icon="">scripttemplate</Program>
<Separator/>
<Program label="NWP/VGT help" icon="">geany /root/my-applications/bin/nwp.readme /root/my-applications/bin/vgt.readme</Program>
<Menu label="paste and place" icon="" height="16">
<Program label="Bold" icon="">swnwpb</Program>
<Program label="Italics" icon="">swnwpi</Program>
<Program label="Underline" icon="">swnwpu</Program>
<Program label="Subscript" icon="">swnwpsub</Program>
<Program label="Superscript" icon="">swnwpsup</Program>
<Program label="Strikethrough" icon="">swnwpstrk</Program>
<Program label="Big" icon="">swnwpbig</Program>
<Program label="Small" icon="">swnwpsm</Program>
<Program label="linebreak" icon="">linebreak</Program>
<Program label="comment" icon="">snwpcomment</Program>
<Separator/>
<Program label="preserved breaks and spaces" icon="">preotry</Program>
<Separator/>
<Program label="paragraph" icon="">paragraph</Program>
<Program label="parleft" icon="">parleft</Program>
<Program label="parright" icon="">parright</Program>
<Program label="parcenter" icon="">parcenter</Program>
<Program label="parjustify" icon="">parjustify</Program>
<Separator/>
<Program label="nwpbkmrk" icon="">nwpbkmrk</Program>
<Program label="blockquote" icon="">nwpblockquote</Program>
<Program label="quote" icon="">quote</Program>
<Separator/>
<Program label="heading1" icon="">snwph1</Program>
<Program label="heading2" icon="">snwph2</Program>
<Program label="heading3" icon="">snwph3</Program>
<Program label="heading4" icon="">snwph4</Program>
<Program label="heading5" icon="">snwph5</Program>
<Program label="heading6" icon="">snwph6</Program>
</Menu>
<Program label="get css codes" icon="">defaultbrowser http://www.w3schools.com/html/html_css.asp</Program>
<Separator/>
<Program label="5 copies template--directories">xdotool type 'for f in TTT{2..6} ; do cp -r TTT ; done'</Program>
<Program label="5 copies template">xdotool type 'for f in TTT{2..6}.txt ; do cp TTT.txt ; done'</Program>
<Separator/>
<Separator/>
<Menu label="highlight text then click to apply" icon="" height="16">
<Program label="preserved breaks and spaces" icon="">preformatted</Program>
<Program label="heading1" icon="">nwph1</Program>
<Program label="heading2" icon="">nwph2</Program>
<Program label="heading3" icon="">nwph3</Program>
<Program label="heading4" icon="">nwph4</Program>
<Program label="heading5" icon="">nwph5</Program>
<Program label="heading6" icon="">nwph6</Program>
<Separator/>
<Program label="comment" icon="">nwpcomment</Program>
<Program label="Bold" icon="">nwpb</Program>
<Program label="Italics" icon="">nwpi</Program>
<Program label="Underline" icon="">nwpu</Program>
<Program label="Subscript" icon="">nwpsub</Program>
<Program label="Superscript" icon="">nwpsup</Program>
<Program label="Strikethrough" icon="">nwpstrk</Program>
<Program label="Big" icon="">nwpbig</Program>
<Program label="Small" icon="">nwpsm</Program>
<Program label="paragraph" icon="">paragraphhl</Program>
<Program label="nwpleft" icon="">nwpleft</Program>
<Program label="nwpright" icon="">nwpright</Program>
<Program label="nwpcenter" icon="">nwpcenter</Program>
<Program label="nwpjustify" icon="">nwpjust</Program>
</Menu>
<Menu label="NWP supplemental" icon="" height="16">
<Program label="xpad--backup" icon="">xpad-backup</Program>
<Program label="xpad--clear" icon="">xpad-clear</Program>
<Program label="xpad" icon="">xpad</Program>
<Program label="geany" icon="">geany</Program>
<Program label="leafpad" icon="">leafpad</Program>
<Program label="Search_files_databases" icon="/usr/share/icons/sportsbag32-vert.png">/root/my-applications/SLocate/SrchFilesLst-01l.sh</Program>
<Program label="Update_files_databases" icon="/usr/share/icons/sportsbag32-vert.png">/root/my-applications/SLocate/MntFilesLst-01l.sh</Program>
<Program label="pfind" icon="">pfind</Program>
<Program label="recoll" icon="">recoll</Program>
<Program label="pm css" icon="">palemoon http://www.w3schools.com/html/html_css.asp</Program>
<Program label="ffdrive" icon="">firefox https://docs.google.com/document/u/0/</Program>
<Program label="pmdrive" icon="">palemoon https://docs.google.com/document/u/0/</Program>
<Program label="goldendict" icon="">goldendict</Program>
<Program label="gFnRenam" icon="">gfnrename</Program>
<Program label="gfontsel" icon="">gfontsel</Program>
<Program label="gcolor" icon="">gcolor2</Program>
<Program label="overview 1: mnt, partview, treesize" icon="">treesize| rox /mnt| partview</Program>
<Program label="overview2: lxtask, Pup Control" icon="">lxtask| PupControl</Program>
<Program label="hardinfo" icon="">hardinfo</Program>
</Menu>
<Menu label="menus submenu" icon="" height="16">
<Program label="VTG" icon="">vtg</Program>
<Program label="showdesktop" icon="" >xdotool key alt+shift+Down</Program>
<Program label="windows menu" icon="" >xdotool key alt+ctrl+shift+w</Program>
<Program label="winswitcher" icon="">winswitcher</Program>
<Include>/root/places_submenu</Include>
<Desktops></Desktops>
<Program label="r1" icon="" >xdotool key alt+1</Program>
<Program label="r2" icon="" >xdotool key alt+2</Program>
<Program label="r3" icon="" >xdotool key alt+3</Program>
<Program label="r4" icon="" >xdotool key alt+4</Program>
<Program label="r5" icon="" >xdotool key alt+5</Program>
<Program label="r6" icon="" >xdotool key alt+6</Program>
<Program label="r7" icon="" >xdotool key alt+7</Program>
<Program label="r8" icon="" >xdotool key alt+8</Program>
<Program label="r9" icon="" >xdotool key alt+9</Program>
<Program label="r0" icon="" >xdotool key alt+0</Program>
<Program label="3but" icon="">3but</Program>
<Menu label="jwm config switch" icon="" height="16">
<Program label="gjwm">gjwm</Program>
<Program label="my3">my3</Program>
<Program label="my30">my30</Program>
<Program label="my31">my31</Program>
<Program label="my32">my32</Program>
<Program label="my33">my33</Program>
<Program label="my34">my34</Program>
<Program label="my35">my35</Program>
<Program label="my36">my36</Program>
<Program label="my37">my37</Program>
<Program label="my38">my38</Program>
<Program label="my39">my39</Program>
<Program label="orig3">orig3</Program>
</Menu>
<Menu label="terminals and launchers" icon="" height="16">
<Program label="ROXTerm" icon="roxterm.xpm">roxterm</Program>
<Program label="lxterminal" icon="console.xpm">lxterm</Program>
<Program label="urxvt" icon="console.xpm">urxvt</Program>
<Program label="rxvt" icon="console.xpm">rxvt</Program>
<Program label="evilvte" icon="console.xpm">evilvte</Program>
<Program label="sakura" icon="console.xpm">sakura</Program>
<Program label="prun" icon="console.xpm">prun</Program>
<Program label="pupcontrol" icon="console.xpm">pcp</Program>
<Program label="grun" icon="console.xpm">grun</Program>
<Program label="gexec" icon="console.xpm">prun</Program>
<Program label="pexec" icon="console.xpm">pcp</Program>
<Program label="findnrun" icon="console.xpm">grun</Program>
<Program label="NWP/VGT help2" icon="">geany /root/my-applications/bin/nwp.readme /root/my-applications/bin/vgt.readme</Program>
<Program label="applications folder" icon="">rox /usr/share/applications</Program>
</Menu>
<Menu label="panels" icon="" height="16">
<Program label="p1">p1</Program>
<Program label="p2">p2</Program>
<Program label="p3">p3</Program>
<Program label="p4">p4</Program>
<Program label="p5">p5</Program>
<Program label="p6">p6</Program>
<Program label="p7">p7</Program>
<Program label="p8">p8</Program>
<Program label="p9">p9</Program>
</Menu>
<Menu label="pinboards" icon="" height="16">
<Program label="pp1">pp1</Program>
<Program label="pp2">pp2</Program>
<Program label="ppold">ppo</Program>
<Program label="pp3">pp3</Program>
<Program label="pp4">pp4</Program>
<Program label="pp5">pp5</Program>
<Program label="pp6">pp6</Program>
</Menu>
<Menu label="make bookmarks and launchables" icon="" height="16">
<Program label="template: list dir paths as txt" icon="">xdotool type 'find $PWD /root/my-applications/bin > /root/myapbin1; geany /root/myapbin1'</Program>
<Program label="template: list dir contents by name (all, w/ subdir)" icon="">xdotool type 'ls -a -R /usr/share/applications > /root/pupaps1; geany /root/pupaps1'</Program>
<Program label="template: list dir contents by name" icon="">xdotool type 'ls /usr/share/applications > /root/pupaps1; geany /root/pupaps1'</Program>
<Program label="to open with rox" icon="">rxmkr</Program>
<Program label="to open with geany" icon="">gmkr</Program>
<Program label="to open with leafpad" icon="">lpmkr</Program>
<Program label="to open with libreoffice--writer" icon="">lowmkr</Program>
<Program label="plain quotation marks around path" icon="">plainquotesmkr</Program>
<Program label="to open with firefox" icon="">ffmkr</Program>
<Program label="to open with palemoon" icon="">pmmkr</Program>
<Program label="to open with seamonkey " icon="">smmkr</Program>
<Program label="to open with mtpaint" icon="">mtmkr</Program>
<Program label="to open with viewnoir" icon="">vnmkr</Program>
<Program label="to open with vlc" icon="">vlcmkr</Program>
</Menu>
 <Menu label="Send To, Layer, Stick--SELECT"> 
 <Menu label="Send To">
 <Program label="1">wmctrl -r :SELECT: -t0</Program>
 <Program label="2">wmctrl -r :SELECT: -t1</Program>
 <Program label="3">wmctrl -r :SELECT: -t2</Program>
 <Program label="4">wmctrl -r :SELECT: -t3</Program>
 <Program label="5">wmctrl -r :SELECT: -t4</Program>
 <Program label="6">wmctrl -r :SELECT: -t5</Program>
 <Program label="7">wmctrl -r :SELECT: -t6</Program>
 <Program label="8">wmctrl -r :SELECT: -t7</Program>
 <Program label="9">wmctrl -r :SELECT: -t8</Program>
 <Program label="10">wmctrl -r :SELECT: -t9</Program>
 <Program label="11">wmctrl -r :SELECT: -t10</Program>
 <Program label="12">wmctrl -r :SELECT: -t11</Program>
 <Program label="13">wmctrl -r :SELECT: -t12</Program>
 <Program label="14">wmctrl -r :SELECT: -t13</Program>
 <Program label="15">wmctrl -r :SELECT: -t14</Program>
 <Program label="16">wmctrl -r :SELECT: -t15</Program>
 <Program label="17">wmctrl -r :SELECT: -t16</Program>
 <Program label="18">wmctrl -r :SELECT: -t17</Program>
 <Program label="19">wmctrl -r :SELECT: -t18</Program>
 <Program label="20">wmctrl -r :SELECT: -t19</Program>
 <Program label="21">wmctrl -r :SELECT: -t20</Program>
 <Program label="22">wmctrl -r :SELECT: -t21</Program>
 <Program label="23">wmctrl -r :SELECT: -t22</Program>
 <Program label="24">wmctrl -r :SELECT: -t23</Program>
 </Menu> 
 
 
 <Menu label="Layer">
 <Program label="below">wmctrl -r :SELECT: -b add,below</Program>
 <Program label="normal">wmctrl -r :SELECT: -b remove,above,below</Program>
 <Program label="above">wmctrl -r :SELECT: -b add,above</Program>
 </Menu>
 
<Program label="Stick/Unstick">wmctrl -r :SELECT: -b toggle,sticky</Program>
 <Program label="Stick">wmctrl -r :SELECT: -b add,sticky</Program>
 <Program label="Unstick">wmctrl -r :SELECT: -b remove,sticky</Program>
<Minimize/>
<Maximize/>
<Close/>
<Kill/>
</Menu>
<Menu label="Send To, Layer, Stick--ACTIVE" icon="" height="16">
<Program label="showdesktop" icon="" >xdotool key alt+shift+Down</Program>
<Program label="windows menu" icon="" >xdotool key alt+ctrl+shift+w</Program>
 <Menu label="Send To" icon="" height="16">
 <Program label="1">wmctrl -r :ACTIVE: -t0</Program>
 <Program label="2">wmctrl -r :ACTIVE: -t1</Program>
 <Program label="3">wmctrl -r :ACTIVE: -t2</Program>
 <Program label="4">wmctrl -r :ACTIVE: -t3</Program>
 <Program label="5">wmctrl -r :ACTIVE: -t4</Program>
 <Program label="6">wmctrl -r :ACTIVE: -t5</Program>
 <Program label="7">wmctrl -r :ACTIVE: -t6</Program>
 <Program label="8">wmctrl -r :ACTIVE: -t7</Program>
 <Program label="9">wmctrl -r :ACTIVE: -t8</Program>
 <Program label="10">wmctrl -r :ACTIVE: -t9</Program>
 <Program label="11">wmctrl -r :ACTIVE: -t10</Program>
 <Program label="12">wmctrl -r :ACTIVE: -t11</Program>
 <Program label="13">wmctrl -r :ACTIVE: -t12</Program>
 <Program label="14">wmctrl -r :ACTIVE: -t13</Program>
 <Program label="15">wmctrl -r :ACTIVE: -t14</Program>
 <Program label="16">wmctrl -r :ACTIVE: -t15</Program>
 <Program label="17">wmctrl -r :ACTIVE: -t16</Program>
 <Program label="18">wmctrl -r :ACTIVE: -t17</Program>
 <Program label="19">wmctrl -r :ACTIVE: -t18</Program>
 <Program label="20">wmctrl -r :ACTIVE: -t19</Program>
 <Program label="21">wmctrl -r :ACTIVE: -t20</Program>
 <Program label="22">wmctrl -r :ACTIVE: -t21</Program>
 <Program label="23">wmctrl -r :ACTIVE: -t22</Program>
 <Program label="24">wmctrl -r :ACTIVE: -t23</Program>
 
 <Program label="Stick/Unstick">wmctrl -r :ACTIVE: -b toggle,sticky</Program>
 </Menu> 
 <Program label="Stick">wmctrl -r :ACTIVE: -b add,sticky</Program>
 <Program label="Unstick">wmctrl -r :ACTIVE: -b remove,sticky</Program>
 
 <Menu label="Layer">
 <Program label="below">wmctrl -r :ACTIVE: -b add,below</Program>
 <Program label="normal">wmctrl -r :ACTIVE: -b remove,above,below</Program>
 <Program label="above">wmctrl -r :ACTIVE: -b add,above</Program>
 </Menu>
 </Menu>
</Menu>
<Program label="close all active instances of program" icon="">cadi</Program>
<Program label="close all current desktop's instances of program" icon="">ccdi</Program>
<Include>/root/singmon2</Include>
<!-- <Include>/root/singmon2</Include> -->
<!-- <Include>/root/dubmon2</Include> -->
<Program label="close all rox windows" icon="">rox -D /</Program>
</Menu>
</JWM>

User avatar
Puppus Dogfellow
Posts: 1667
Joined: Tue 08 Jan 2013, 01:39
Location: nyc

(updated) singmon and dubmon menus

#153 Post by Puppus Dogfellow »

dubmon:

Code: Select all

<JWM>

<Menu label="dub mon 2 Double Monitors Menu" icon="" height="16">
   <Menu label="for double monitors ACTIVE " icon="" height="16">

<Program label="upper left quadrant of left screen" icon="a1.png">a1</Program>
<Program label="upper right quadrant of left screen " icon="a2.png">a2</Program>
<Program label="lower left quadrant of left screen " icon="a3.png">a3</Program>
<Program label="lower right quadrant of left screen " icon="a4.png">a4</Program>
<Program label="quadrant-sized window placed at center of left screen " icon="a5.png">a5</Program>
 <Separator/>
<Program label="upper left quadrant of right screen" icon="a6.png">a6</Program>
<Program label="upper right quadrant of right screen" icon="a7.png">a7</Program>
<Program label="lower left quadrant of right screen " icon="a8.png">a8</Program>
<Program label="lower right quadrant of right screen" icon="a9.png">a9</Program>
<Program label="quadrant-sized window placed at center of right screen " icon="a10.png">a10</Program>
 <Separator/>
 
<Menu label="size and placement 2, active">
<Menu label="Left to Right" icon="" height="16">   
<Program label="x=0" icon="">x0a</Program>
<Program label="x=100" icon="">x100</Program>
<Program label="x=200" icon="">x200</Program>
<Program label="x=300" icon="">x300</Program>
<Program label="x=400" icon="">x400</Program>
<Program label="x=500" icon="">x500</Program>
<Program label="x=600" icon="">x600</Program>
<Program label="x=700" icon="">x700</Program>
<Program label="x=800" icon="">x800</Program>
<Program label="x=900" icon="">x900</Program>
<Menu label="more" icon="" height="16">
<Program label="x=1000" icon="">x1000</Program>
<Program label="x=1100" icon="">x1100</Program>
<Program label="x=1200" icon="">x1200</Program>
<Program label="x=1300" icon="">x1300</Program>
<Program label="x=1400" icon="">x1400</Program>
<Program label="x=1500" icon="">x1500</Program>
<Program label="x=1600" icon="">x1600</Program>
<Program label="x=1800" icon="">x1800</Program>
<Program label="x=2000" icon="">x2000</Program>
<Program label="x=2200" icon="">x2200</Program>
</Menu>
</Menu>
 
<Menu label="Top to Bottom" icon="" height="16">
<Program label="y=0" icon="">y0</Program>
<Program label="y=50" icon="">y50</Program>
<Program label="y=100" icon="">y100</Program>
<Program label="y=150" icon="">y150</Program>
<Program label="y=200" icon="">y200</Program>
<Program label="y=250" icon="">y250</Program>
<Program label="y=300" icon="">y300</Program>
<Program label="y=350" icon="">y350</Program>
<Program label="y=400" icon="">y400</Program>
<Program label="y=450" icon="">y450</Program>
<Menu label="more" icon="" height="16">
<Program label="y=550" icon="">y550</Program>
<Program label="y=650" icon="">y650</Program>
<Program label="y=750" icon="">y750</Program>
<Program label="y=850" icon="">y850</Program>
<Program label="y=950" icon="">y950</Program>
</Menu>
</Menu> 

 <Menu label="Square" icon="" height="16">
<Program label="250" icon="">250</Program>
<Program label="300" icon="">300</Program>
<Program label="350" icon="">350</Program>
<Program label="450" icon="">450</Program>
<Program label="500" icon="">500</Program>
<Program label="550" icon="">550</Program>
<Program label="650" icon="">650</Program>
<Program label="750" icon="">750</Program>
<Program label="850" icon="">850</Program>   
</Menu>
   
<Menu label="Landscape" icon="" height="16">
<Program label="w400h300" icon="">w400h300a</Program>
<Program label="w450h300" icon="">w450h300a</Program>
<Program label="w500h400" icon="">w500h400a</Program>
<Program label="w550h400" icon="">w550h400a</Program>
<Program label="w600h500" icon="">w600h500a</Program>
<Program label="w650h500" icon="">w650h500a</Program>
 </Menu> 
       
<Menu label="Portrait" icon="" height="16">
<Program label="w300h400" icon="">w300h400a</Program>
<Program label="w300h450" icon="">w300h450a</Program>
<Program label="w400h500" icon="">w400h500a</Program>
<Program label="w400h550" icon="">w400h550a</Program>
<Program label="w500h600" icon="">w500h600a</Program>
<Program label="w500h650" icon="">w500h650a</Program>
</Menu>
   
<Menu label="Window Size and Placement" icon="" height="16">
<Menu label="Left Side Placement" icon="" height="16">
<Program label="upper left /2" icon="">upl2a</Program>
<Program label="upper left /3" icon="">upl3a</Program>
<Program label="upper left /4" icon="">upl4a</Program>
<Program label="upper left /5" icon="">upl5a</Program>
<Program label="lower left /2" icon="">lwl2a</Program>
<Program label="lower left /3" icon="">lwl3a</Program>
<Program label="lower left /4" icon="">lwl4a</Program>
<Program label="lower left /5" icon="">lwl5a</Program>
</Menu>
<Menu label="Right Side Placement" icon="" height="16">
<Program label="upper right /2" icon="">upr2a</Program>
<Program label="upper right /3" icon="">upr3a</Program>
<Program label="upper right /4" icon="">upr4a</Program>
<Program label="upper right /5" icon="">upr5a</Program>
<Program label="lower right /2" icon="">lwr2a</Program>
<Program label="lower right /3" icon="">lwr3a</Program>
<Program label="lower right /4" icon="">lwr4a</Program>
<Program label="lower right /5" icon="">lwr5a</Program>
</Menu>

</Menu>
</Menu>

    <Separator/>
 
<Program label="left half of left screen" icon="b1.png">b1</Program>
<Program label="right half of left screen" icon="b2.png">b2</Program>
<Program label="top half of left screen" icon="b3.png">b3</Program>
<Program label="bottom half of left screen" icon="b4.png">b4</Program>
<Program label="full screen left " icon="b5.png">b5</Program>
 <Separator/>
<Program label="left half of right screen" icon="b6.png">b6</Program>
<Program label="right half of right screen" icon="b7.png">b7</Program>
<Program label="top half of right screen " icon="b8.png">b8</Program>
<Program label="bottom half of right screen" icon="b9.png">b9</Program>
<Program label="full screen right  " icon="b10.png">b10</Program>

<Menu label="Send To, Layer, Stick--ACTIVE" icon="" height="16">
 <Menu label="Send To" icon="" height="16">
   <Program label="1">wmctrl -r :ACTIVE: -t0</Program>
   <Program label="2">wmctrl -r :ACTIVE: -t1</Program>
      <Program label="3">wmctrl -r :ACTIVE: -t2</Program>
   <Program label="4">wmctrl -r :ACTIVE: -t3</Program>
      <Program label="5">wmctrl -r :ACTIVE: -t4</Program>
   <Program label="6">wmctrl -r :ACTIVE: -t5</Program>
      <Program label="7">wmctrl -r :ACTIVE: -t6</Program>
   <Program label="8">wmctrl -r :ACTIVE: -t7</Program>
      <Program label="9">wmctrl -r :ACTIVE: -t8</Program>
   <Program label="10">wmctrl -r :ACTIVE: -t9</Program>
         <Program label="11">wmctrl -r :ACTIVE: -t10</Program>
   <Program label="12">wmctrl -r :ACTIVE: -t11</Program>
      <Program label="13">wmctrl -r :ACTIVE: -t12</Program>
   <Program label="14">wmctrl -r :ACTIVE: -t13</Program>
      <Program label="15">wmctrl -r :ACTIVE: -t14</Program>
   <Program label="16">wmctrl -r :ACTIVE: -t15</Program>
      <Program label="17">wmctrl -r :ACTIVE: -t16</Program>
   <Program label="18">wmctrl -r :ACTIVE: -t17</Program>
      <Program label="19">wmctrl -r :ACTIVE: -t18</Program>
   <Program label="20">wmctrl -r :ACTIVE: -t19</Program>
   <Program label="21">wmctrl -r :ACTIVE: -t20</Program>
      <Program label="22">wmctrl -r :ACTIVE: -t21</Program>
   <Program label="23">wmctrl -r :ACTIVE: -t22</Program>
      <Program label="24">wmctrl -r :ACTIVE: -t23</Program>
   
    <Program label="Stick/Unstick">wmctrl -r :ACTIVE: -b toggle,sticky</Program>
 </Menu>   

 <Program label="Stick">wmctrl -r :ACTIVE: -b add,sticky</Program>
 <Program label="Unstick">wmctrl -r :ACTIVE: -b remove,sticky</Program>
 
 <Menu label="Layer">
   <Program label="below">wmctrl -r :ACTIVE: -b add,below</Program>
   <Program label="normal">wmctrl -r :ACTIVE: -b remove,above,below</Program>
   <Program label="above">wmctrl -r :ACTIVE: -b add,above</Program>
 </Menu>

 </Menu>
</Menu>
   
   
   
<Menu label="for double monitors: SELECT (crosshairs) version" icon="" height="16">

<Program label="upper left quadrant of left screen" icon="as1.png">as1</Program>
<Program label="upper right quadrant of left screen " icon="as2.png">as2</Program>
<Program label="lower left quadrant of left screen " icon="as3.png">as3</Program>
<Program label="lower right quadrant of left screen " icon="as4.png">as4</Program>
<Program label="quadrant-sized window placed at center of left screen " icon="as5.png">as5</Program>
   <Separator/>
<Program label="upper left quadrant of right screen" icon="as6.png">as6</Program>
<Program label="upper right quadrant of right screen" icon="as7.png">as7</Program>
<Program label="lower left quadrant of right screen " icon="as8.png">as8</Program>
<Program label="lower right quadrant of right screen" icon="as9.png">as9</Program>
<Program label="quadrant-sized window placed at center of right screen " icon="as10.png">as10</Program>
   <Separator/>
   
   
   
<Menu label="size and placement 2, select">



<Menu label="Left to Right" icon="" height="16">   
<Program label="x=0" icon="">x0</Program>
<Program label="x=100" icon="">x100s</Program>
<Program label="x=200" icon="">x200s</Program>
<Program label="x=300" icon="">x300s</Program>
<Program label="x=400" icon="">x400s</Program>
<Program label="x=500" icon="">x500s</Program>
<Program label="x=600" icon="">x600s</Program>
<Program label="x=700" icon="">x700s</Program>
<Program label="x=800" icon="">x800s</Program>
<Program label="x=900" icon="">x900s</Program>
<Menu label="more" icon="" height="16">
<Program label="x=1000" icon="">x1000s</Program>
<Program label="x=1100" icon="">x1100s</Program>
<Program label="x=1200" icon="">x1200s</Program>
<Program label="x=1300" icon="">x1300s</Program>
<Program label="x=1400" icon="">x1400s</Program>
<Program label="x=1500" icon="">x1500s</Program>
<Program label="x=1600" icon="">x1600s</Program>
<Program label="x=1800" icon="">x1800s</Program>
<Program label="x=2000" icon="">x2000s</Program>
<Program label="x=2200" icon="">x2200s</Program>
</Menu>
</Menu>
 
<Menu label="Top to Bottom" icon="" height="16">
<Program label="y=0" icon="">y0s</Program>
<Program label="y=50" icon="">y50s</Program>
<Program label="y=100" icon="">y100s</Program>
<Program label="y=150" icon="">y150s</Program>
<Program label="y=200" icon="">y200s</Program>
<Program label="y=250" icon="">y250s</Program>
<Program label="y=300" icon="">y300s</Program>
<Program label="y=350" icon="">y350s</Program>
<Program label="y=400" icon="">y400s</Program>
<Program label="y=450" icon="">y450s</Program>
<Menu label="more" icon="" height="16">
<Program label="y=550" icon="">y550s</Program>
<Program label="y=650" icon="">y650s</Program>
<Program label="y=750" icon="">y750s</Program>
<Program label="y=850" icon="">y850s</Program>
<Program label="y=950" icon="">y950s</Program>
</Menu>
</Menu> 

 <Menu label="Square" icon="" height="16">
<Program label="250" icon="">250s</Program>
<Program label="300" icon="">300s</Program>
<Program label="350" icon="">350s</Program>
<Program label="450" icon="">450s</Program>
<Program label="500" icon="">500s</Program>
<Program label="550" icon="">550s</Program>
<Program label="650" icon="">650s</Program>
<Program label="750" icon="">750s</Program>
<Program label="850" icon="">850s</Program>   
</Menu>
   
<Menu label="Landscape" icon="" height="16">
<Program label="w400h300" icon="">w400h300</Program>
<Program label="w450h300" icon="">w450h300</Program>
<Program label="w500h400" icon="">w500h400</Program>
<Program label="w550h400" icon="">w550h400</Program>
<Program label="w600h500" icon="">w600h500</Program>
<Program label="w650h500" icon="">w650h500</Program>
 </Menu> 
       
<Menu label="Portrait" icon="" height="16">
<Program label="w300h400" icon="">w300h400</Program>
<Program label="w300h450" icon="">w300h450</Program>
<Program label="w400h500" icon="">w400h500</Program>
<Program label="w400h550" icon="">w400h550</Program>
<Program label="w500h600" icon="">w500h600</Program>
<Program label="w500h650" icon="">w500h650</Program>
</Menu>
   
<Menu label="Window Size and Placement" icon="" height="16">
<Menu label="Left Side Placement" icon="" height="16">
<Program label="upper left /2" icon="">upl2</Program>
<Program label="upper left /3" icon="">upl3</Program>
<Program label="upper left /4" icon="">upl4</Program>
<Program label="upper left /5" icon="">upl5</Program>
<Program label="lower left /2" icon="">lwl2</Program>
<Program label="lower left /3" icon="">lwl3</Program>
<Program label="lower left /4" icon="">lwl4</Program>
<Program label="lower left /5" icon="">lwl5</Program>
</Menu>
<Menu label="Right Side Placement" icon="" height="16">
<Program label="upper right /2" icon="">upr2</Program>
<Program label="upper right /3" icon="">upr3</Program>
<Program label="upper right /4" icon="">upr4</Program>
<Program label="upper right /5" icon="">upr5</Program>
<Program label="lower right /2" icon="">lwr2</Program>
<Program label="lower right /3" icon="">lwr3</Program>
<Program label="lower right /4" icon="">lwr4</Program>
<Program label="lower right /5" icon="">lwr5</Program>
</Menu>   
<Separator/>

</Menu>
</Menu>
<Program label="left half of left screen" icon="bs1.png">bs1</Program>
<Program label="right half of left screen" icon="bs2.png">bs2</Program>
<Program label="top half of left screen" icon="bs3.png">bs3</Program>
<Program label="bottom half of left screen" icon="bs4.png">bs4</Program>
<Program label="full screen left " icon="bs5.png">bs5</Program>
   <Separator/>
<Program label="left half of right screen " icon="bs6.png">bs6</Program>
<Program label="right half of right screen" icon="bs7.png">bs7</Program>
<Program label="top half of right screen " icon="bs8.png">bs8</Program>
<Program label="bottom half of right screen" icon="bs9.png">bs9</Program>
<Program label="full screen right  " icon="bs10.png">bs10</Program>


 <Menu label="Send To, Layer, Stick--SELECT">   
 <Menu label="Send To">
   <Program label="1">wmctrl -r :SELECT: -t0</Program>
   <Program label="2">wmctrl -r :SELECT: -t1</Program>
    <Program label="3">wmctrl -r :SELECT: -t2</Program>
    <Program label="4">wmctrl -r :SELECT: -t3</Program>
    <Program label="5">wmctrl -r :SELECT: -t4</Program>
    <Program label="6">wmctrl -r :SELECT: -t5</Program>
     <Program label="7">wmctrl -r :SELECT: -t6</Program>
    <Program label="8">wmctrl -r :SELECT: -t7</Program>
    <Program label="9">wmctrl -r :SELECT: -t8</Program>
     <Program label="10">wmctrl -r :SELECT: -t9</Program>
      <Program label="11">wmctrl -r :SELECT: -t10</Program>
   <Program label="12">wmctrl -r :SELECT: -t11</Program>
    <Program label="13">wmctrl -r :SELECT: -t12</Program>
    <Program label="14">wmctrl -r :SELECT: -t13</Program>
    <Program label="15">wmctrl -r :SELECT: -t14</Program>
    <Program label="16">wmctrl -r :SELECT: -t15</Program>
     <Program label="17">wmctrl -r :SELECT: -t16</Program>
    <Program label="18">wmctrl -r :SELECT: -t17</Program>
    <Program label="19">wmctrl -r :SELECT: -t18</Program>
     <Program label="20">wmctrl -r :SELECT: -t19</Program>
         <Program label="21">wmctrl -r :SELECT: -t20</Program>
    <Program label="22">wmctrl -r :SELECT: -t21</Program>
    <Program label="23">wmctrl -r :SELECT: -t22</Program>
     <Program label="24">wmctrl -r :SELECT: -t23</Program>
  </Menu>   
     
   
      <Menu label="Layer">
   <Program label="below">wmctrl -r :SELECT: -b add,below</Program>
   <Program label="normal">wmctrl -r :SELECT: -b remove,above,below</Program>
   <Program label="above">wmctrl -r :SELECT: -b add,above</Program>
 </Menu>
 
<Program label="Stick/Unstick">wmctrl -r :SELECT: -b toggle,sticky</Program>
 <Program label="Stick">wmctrl -r :SELECT: -b add,sticky</Program>
 <Program label="Unstick">wmctrl -r :SELECT: -b remove,sticky</Program>

<Minimize/>
<Maximize/>
<Close/>
<Kill/>
</Menu>


</Menu>
</JWM>




singmon:

Code: Select all


	
<JWM>
<Menu label="Single Monitor Menu (alt version)" icon="" height="16">
<Menu label="for single monitors :ACTIVE:" icon="" height="16">
<Program label="top half" icon="tha.png">tophalf2</Program>
<Program label="bottom half" icon="bha.png">bottomhalf2</Program>
<Program label="left half" icon="lha.png">lefthalf2</Program>
<Program label="right half" icon="rha.png">righthalf2</Program>
<Program label="full" icon="fulla.png">fulla</Program>
<Separator/>


<Menu label="size and placement 2, active">
<Menu label="Left to Right" icon="" height="16">
<Program label="x=0" icon="">x0</Program>
<Program label="x=100" icon="">x100</Program>
<Program label="x=200" icon="">x200</Program>
<Program label="x=300" icon="">x300</Program>
<Program label="x=400" icon="">x400</Program>
<Program label="x=500" icon="">x500</Program>
<Program label="x=600" icon="">x600</Program>
<Program label="x=700" icon="">x700</Program>
<Program label="x=800" icon="">x800</Program>
<Program label="x=900" icon="">x900</Program>
<Menu label="more" icon="" height="16">
<Program label="x=1000" icon="">x1000</Program>
<Program label="x=1100" icon="">x1100</Program>
<Program label="x=1200" icon="">x1200</Program>
<Program label="x=1300" icon="">x1300</Program>
<Program label="x=1400" icon="">x1400</Program>
<Program label="x=1500" icon="">x1500</Program>
<Program label="x=1600" icon="">x1600</Program>
<Program label="x=1800" icon="">x1800</Program>
<Program label="x=2000" icon="">x2000</Program>
<Program label="x=2200" icon="">x2200</Program>
</Menu>
</Menu>

<Menu label="Top to Bottom" icon="" height="16">
<Program label="y=0" icon="">y0</Program>
<Program label="y=50" icon="">y50</Program>
<Program label="y=100" icon="">y100</Program>
<Program label="y=150" icon="">y150</Program>
<Program label="y=200" icon="">y200</Program>
<Program label="y=250" icon="">y250</Program>
<Program label="y=300" icon="">y300</Program>
<Program label="y=350" icon="">y350</Program>
<Program label="y=400" icon="">y400</Program>
<Program label="y=450" icon="">y450</Program>
<Menu label="more" icon="" height="16">
<Program label="y=550" icon="">y550</Program>
<Program label="y=650" icon="">y650</Program>
<Program label="y=750" icon="">y750</Program>
<Program label="y=850" icon="">y850</Program>
<Program label="y=950" icon="">y950</Program>
</Menu>
</Menu>

<Menu label="Square" icon="" height="16">
<Program label="250" icon="">250</Program>
<Program label="300" icon="">300</Program>
<Program label="350" icon="">350</Program>
<Program label="450" icon="">450</Program>
<Program label="500" icon="">500</Program>
<Program label="550" icon="">550</Program>
<Program label="650" icon="">650</Program>
<Program label="750" icon="">750</Program>
<Program label="850" icon="">850</Program>
</Menu>

<Menu label="Landscape" icon="" height="16">
<Program label="w400h300" icon="">w400h300a</Program>
<Program label="w450h300" icon="">w450h300a</Program>
<Program label="w500h400" icon="">w500h400a</Program>
<Program label="w550h400" icon="">w550h400a</Program>
<Program label="w600h500" icon="">w600h500a</Program>
<Program label="w650h500" icon="">w650h500a</Program>
</Menu>

<Menu label="Portrait" icon="" height="16">
<Program label="w300h400" icon="">w300h400a</Program>
<Program label="w300h450" icon="">w300h450a</Program>
<Program label="w400h500" icon="">w400h500a</Program>
<Program label="w400h550" icon="">w400h550a</Program>
<Program label="w500h600" icon="">w500h600a</Program>
<Program label="w500h650" icon="">w500h650a</Program>
</Menu>

<Menu label="Window Size and Placement" icon="" height="16">
<Menu label="Left Side Placement" icon="" height="16">
<Program label="upper left /2" icon="">upl2a</Program>
<Program label="upper left /3" icon="">upl3a</Program>
<Program label="upper left /4" icon="">upl4a</Program>
<Program label="upper left /5" icon="">upl5a</Program>
<Program label="lower left /2" icon="">lwl2a</Program>
<Program label="lower left /3" icon="">lwl3a</Program>
<Program label="lower left /4" icon="">lwl4a</Program>
<Program label="lower left /5" icon="">lwl5a</Program>
</Menu>
<Menu label="Right Side Placement" icon="" height="16">
<Program label="upper right /2" icon="">upr2a</Program>
<Program label="upper right /3" icon="">upr3a</Program>
<Program label="upper right /4" icon="">upr4a</Program>
<Program label="upper right /5" icon="">upr5a</Program>
<Program label="lower right /2" icon="">lwr2a</Program>
<Program label="lower right /3" icon="">lwr3a</Program>
<Program label="lower right /4" icon="">lwr4a</Program>
<Program label="lower right /5" icon="">lwr5a</Program>
</Menu>

</Menu>
</Menu>
<Separator/>


<Program label="upper left quadrant" icon="ul.png">upperleftquadrant2</Program>
<Program label="upper right quadrant" icon="ur.png">upperrightquadrant2</Program>
<Program label="lower left quadrant" icon="ll.png">lowerleftquadrant2</Program>
<Program label="lower right quadrant" icon="lr.png">lowerrightquadrant2</Program>
<Program label="centered" icon="c.png">lp5a</Program>




<Menu label="Send To, Layer, Stick--ACTIVE" icon="" height="16">
<Menu label="Send To" icon="" height="16">
<Program label="1">wmctrl -r :ACTIVE: -t0</Program>
<Program label="2">wmctrl -r :ACTIVE: -t1</Program>
<Program label="3">wmctrl -r :ACTIVE: -t2</Program>
<Program label="4">wmctrl -r :ACTIVE: -t3</Program>
<Program label="5">wmctrl -r :ACTIVE: -t4</Program>
<Program label="6">wmctrl -r :ACTIVE: -t5</Program>
<Program label="7">wmctrl -r :ACTIVE: -t6</Program>
<Program label="8">wmctrl -r :ACTIVE: -t7</Program>
<Program label="9">wmctrl -r :ACTIVE: -t8</Program>
<Program label="10">wmctrl -r :ACTIVE: -t9</Program>
<Program label="11">wmctrl -r :ACTIVE: -t10</Program>
<Program label="12">wmctrl -r :ACTIVE: -t11</Program>
<Program label="13">wmctrl -r :ACTIVE: -t12</Program>
<Program label="14">wmctrl -r :ACTIVE: -t13</Program>
<Program label="15">wmctrl -r :ACTIVE: -t14</Program>
<Program label="16">wmctrl -r :ACTIVE: -t15</Program>
<Program label="17">wmctrl -r :ACTIVE: -t16</Program>
<Program label="18">wmctrl -r :ACTIVE: -t17</Program>
<Program label="19">wmctrl -r :ACTIVE: -t18</Program>
<Program label="20">wmctrl -r :ACTIVE: -t19</Program>
<Program label="21">wmctrl -r :ACTIVE: -t20</Program>
<Program label="22">wmctrl -r :ACTIVE: -t21</Program>
<Program label="23">wmctrl -r :ACTIVE: -t22</Program>
<Program label="24">wmctrl -r :ACTIVE: -t23</Program>

<Program label="Stick/Unstick">wmctrl -r :ACTIVE: -b toggle,sticky</Program>
</Menu>

<Program label="Stick">wmctrl -r :ACTIVE: -b add,sticky</Program>
<Program label="Unstick">wmctrl -r :ACTIVE: -b remove,sticky</Program>

<Menu label="Layer">
<Program label="below">wmctrl -r :ACTIVE: -b add,below</Program>
<Program label="normal">wmctrl -r :ACTIVE: -b remove,above,below</Program>
<Program label="above">wmctrl -r :ACTIVE: -b add,above</Program>
</Menu>

</Menu>




</Menu>

<Menu label="for single monitors :SELECT:" icon="" height="16">
<Program label="top half" icon="th.png">tophalf</Program>
<Program label="bottom half" icon="bh.png">bottomhalf</Program>
<Program label="left half" icon="lh.png">lefthalf</Program>
<Program label="right half" icon="rh.png">righthalf</Program>
<Program label="full" icon="fulls.png">fulls</Program>

<Separator/>

<Menu label="size and placement 2, select">



<Menu label="Left to Right" icon="" height="16">
<Program label="x=0" icon="">x0s</Program>
<Program label="x=100" icon="">x100s</Program>
<Program label="x=200" icon="">x200s</Program>
<Program label="x=300" icon="">x300s</Program>
<Program label="x=400" icon="">x400s</Program>
<Program label="x=500" icon="">x500s</Program>
<Program label="x=600" icon="">x600s</Program>
<Program label="x=700" icon="">x700s</Program>
<Program label="x=800" icon="">x800s</Program>
<Program label="x=900" icon="">x900s</Program>
<Menu label="more" icon="" height="16">
<Program label="x=1000" icon="">x1000s</Program>
<Program label="x=1100" icon="">x1100s</Program>
<Program label="x=1200" icon="">x1200s</Program>
<Program label="x=1300" icon="">x1300s</Program>
<Program label="x=1400" icon="">x1400s</Program>
<Program label="x=1500" icon="">x1500s</Program>
<Program label="x=1600" icon="">x1600s</Program>
<Program label="x=1800" icon="">x1800s</Program>
<Program label="x=2000" icon="">x2000s</Program>
<Program label="x=2200" icon="">x2200s</Program>
</Menu>
</Menu>

<Menu label="Top to Bottom" icon="" height="16">
<Program label="y=0" icon="">y0s</Program>
<Program label="y=50" icon="">y50s</Program>
<Program label="y=100" icon="">y100s</Program>
<Program label="y=150" icon="">y150s</Program>
<Program label="y=200" icon="">y200s</Program>
<Program label="y=250" icon="">y250s</Program>
<Program label="y=300" icon="">y300s</Program>
<Program label="y=350" icon="">y350s</Program>
<Program label="y=400" icon="">y400s</Program>
<Program label="y=450" icon="">y450s</Program>
<Menu label="more" icon="" height="16">
<Program label="y=550" icon="">y550s</Program>
<Program label="y=650" icon="">y650s</Program>
<Program label="y=750" icon="">y750s</Program>
<Program label="y=850" icon="">y850s</Program>
<Program label="y=950" icon="">y950s</Program>
</Menu>
</Menu>

<Menu label="Square" icon="" height="16">
<Program label="250" icon="">250s</Program>
<Program label="300" icon="">300s</Program>
<Program label="350" icon="">350s</Program>
<Program label="450" icon="">450s</Program>
<Program label="500" icon="">500s</Program>
<Program label="550" icon="">550s</Program>
<Program label="650" icon="">650s</Program>
<Program label="750" icon="">750s</Program>
<Program label="850" icon="">850s</Program>
</Menu>

<Menu label="Landscape" icon="" height="16">
<Program label="w400h300" icon="">w400h300</Program>
<Program label="w450h300" icon="">w450h300</Program>
<Program label="w500h400" icon="">w500h400</Program>
<Program label="w550h400" icon="">w550h400</Program>
<Program label="w600h500" icon="">w600h500</Program>
<Program label="w650h500" icon="">w650h500</Program>
</Menu>

<Menu label="Portrait" icon="" height="16">
<Program label="w300h400" icon="">w300h400</Program>
<Program label="w300h450" icon="">w300h450</Program>
<Program label="w400h500" icon="">w400h500</Program>
<Program label="w400h550" icon="">w400h550</Program>
<Program label="w500h600" icon="">w500h600</Program>
<Program label="w500h650" icon="">w500h650</Program>
</Menu>

<Menu label="Window Size and Placement" icon="" height="16">
<Menu label="Left Side Placement" icon="" height="16">
<Program label="upper left /2" icon="">upl2</Program>
<Program label="upper left /3" icon="">upl3</Program>
<Program label="upper left /4" icon="">upl4</Program>
<Program label="upper left /5" icon="">upl5</Program>
<Program label="lower left /2" icon="">lwl2</Program>
<Program label="lower left /3" icon="">lwl3</Program>
<Program label="lower left /4" icon="">lwl4</Program>
<Program label="lower left /5" icon="">lwl5</Program>
</Menu>
<Menu label="Right Side Placement" icon="" height="16">
<Program label="upper right /2" icon="">upr2</Program>
<Program label="upper right /3" icon="">upr3</Program>
<Program label="upper right /4" icon="">upr4</Program>
<Program label="upper right /5" icon="">upr5</Program>
<Program label="lower right /2" icon="">lwr2</Program>
<Program label="lower right /3" icon="">lwr3</Program>
<Program label="lower right /4" icon="">lwr4</Program>
<Program label="lower right /5" icon="">lwr5</Program>
</Menu>
</Menu>


<Separator/>

</Menu>
<Program label="upper left quadrant" icon="uls.png">upperleftquadrant</Program>
<Program label="upper right quadrant" icon="urs.png">upperrightquadrant</Program>
<Program label="lower left quadrant" icon="lls.png">lowerleftquadrant</Program>
<Program label="lower right quadrant" icon="lrs.png">lowerrightquadrant</Program>
<Program label="centered" icon="cs.png">lp5</Program>



<Menu label="Send To, Layer, Stick--SELECT">
<Menu label="Send To">
<Program label="1">wmctrl -r :SELECT: -t0</Program>
<Program label="2">wmctrl -r :SELECT: -t1</Program>
<Program label="3">wmctrl -r :SELECT: -t2</Program>
<Program label="4">wmctrl -r :SELECT: -t3</Program>
<Program label="5">wmctrl -r :SELECT: -t4</Program>
<Program label="6">wmctrl -r :SELECT: -t5</Program>
<Program label="7">wmctrl -r :SELECT: -t6</Program>
<Program label="8">wmctrl -r :SELECT: -t7</Program>
<Program label="9">wmctrl -r :SELECT: -t8</Program>
<Program label="10">wmctrl -r :SELECT: -t9</Program>
<Program label="11">wmctrl -r :SELECT: -t10</Program>
<Program label="12">wmctrl -r :SELECT: -t11</Program>
<Program label="13">wmctrl -r :SELECT: -t12</Program>
<Program label="14">wmctrl -r :SELECT: -t13</Program>
<Program label="15">wmctrl -r :SELECT: -t14</Program>
<Program label="16">wmctrl -r :SELECT: -t15</Program>
<Program label="17">wmctrl -r :SELECT: -t16</Program>
<Program label="18">wmctrl -r :SELECT: -t17</Program>
<Program label="19">wmctrl -r :SELECT: -t18</Program>
<Program label="20">wmctrl -r :SELECT: -t19</Program>
<Program label="21">wmctrl -r :SELECT: -t20</Program>
<Program label="22">wmctrl -r :SELECT: -t21</Program>
<Program label="23">wmctrl -r :SELECT: -t22</Program>
<Program label="24">wmctrl -r :SELECT: -t23</Program>
</Menu>


<Menu label="Layer">
<Program label="below">wmctrl -r :SELECT: -b add,below</Program>
<Program label="normal">wmctrl -r :SELECT: -b remove,above,below</Program>
<Program label="above">wmctrl -r :SELECT: -b add,above</Program>
</Menu>

<Program label="Stick/Unstick">wmctrl -r :SELECT: -b toggle,sticky</Program>
<Program label="Stick">wmctrl -r :SELECT: -b add,sticky</Program>
<Program label="Unstick">wmctrl -r :SELECT: -b remove,sticky</Program>

<Minimize/>
<Maximize/>
<Close/>
<Kill/>
</Menu>





</Menu>
</JWM>

User avatar
Puppus Dogfellow
Posts: 1667
Joined: Tue 08 Jan 2013, 01:39
Location: nyc

single monitor setup's jwmrc-personal

#154 Post by Puppus Dogfellow »

dash-0.5.6.pet, which is required by pexec-001.pet.

gexec-0.4-pup1.pet

wmctrl-1.07-6_i386.pet

(check your package manager if you need the 64 bit wmctrl).

xdotool-2.20110530.1-3.pet

xdotool-2.20110530.1-3.1.2.x86_64.rpm

____

single monitor setup jwmrc-personal. vgt, ten menus, etc:

Code: Select all

<!-- Personally configurable options for JWM: these override default settings and theme settings -->

<JWM>
<!--<Include>/root/trayv67</Include>-->
<Include>/root/topright</Include>	
<!--<Include>/root/vtray2</Include>-->
<Include>/root/vtray1</Include>
<!--<Include>/root/topmid</Include>-->
<!--<Include>/root/topleft</Include>-->
<Include>/root/trayv6</Include>
<Include>/root/root0menu</Include>
<Include>/root/root1menu</Include>
<Include>/root/root2menu</Include>
<Include>/root/root4menu</Include>
<Include>/root/root5menu</Include>
<Include>/root/root6menu</Include>
<Include>/root/root7menu</Include>
<Include>/root/root8menu</Include>
<Include>/root/root9menu</Include>

<!-- <TrayButton label="1">root:1</TrayButton> -->
<!-- <TrayButton label="2">root:2</TrayButton> -->
<!-- <TrayButton label="4">root:4</TrayButton> -->
<!-- <TrayButton label="5">root:5</TrayButton> -->
<!-- <TrayButton label="6">root:6</TrayButton> -->
<!-- <TrayButton label="7">root:7</TrayButton> -->
<!-- <TrayButton label="8">root:8</TrayButton> -->
<!-- <TrayButton label="9">root:9</TrayButton> -->
<!-- <TrayButton label="0">root:0</TrayButton> --> 
<Key mask="CA" key="r">exec:prun</Key>

<Group>
     <Name>urxvt</Name>
        <Option>noborder</Option> 
        <Option>notitle</Option>
		<Option>sticky</Option>
    </Group>
    
  <Group>

     <Name>libreoffice4.3 --writer </Name>

		<Option>sticky</Option>
    </Group>  
    
  <Group>
     <Name>geany</Name>
         
       
		<Option>sticky</Option>
    </Group>     
    



<!-- Number of virtual desktops -->
<Desktops width="13" height="2"/>

<!-- Double click speed (in milliseconds) -->
<DoubleClickSpeed>400</DoubleClickSpeed>

<!-- Double click delta (in pixels) -->
<DoubleClickDelta>3</DoubleClickDelta>

<!-- The focus model (sloppy or click) -->
<FocusModel>click</FocusModel>

<!-- The snap mode (none, screen, or border) -->
<SnapMode distance="10">none</SnapMode>

<!-- The move mode (outline or opaque) -->
<MoveMode>outline</MoveMode>

<!-- The resize mode (outline or opaque) -->
<ResizeMode>outline</ResizeMode>

<WindowStyle>
  <Height>16</Height>
</WindowStyle>

<!-- Key bindings -->
<Key key="F1">window</Key>
<Key key="F2">exec:xdotool key alt+1 Down Return</Key>
<Key mask="A" key="z">exec:xdotool key alt+1 Down Return</Key> 
<Key mask="AC" key="z">exec:geany /usr/share/applications/aplist /root/.jwm/jwmrc-personal</Key> 
<Key key="F3">exec:geany /root/.jwm/jwmrc-personal /usr/share/applications/aplist</Key>
<Key key="Up">up</Key>
<Key key="Down">down</Key>
<Key key="Right">right</Key>
<Key key="Left">left</Key>
<Key key="h">left</Key>
<Key key="j">down</Key>
<Key key="k">up</Key>
<Key key="l">right</Key>
<Key key="Return">select</Key>
<Key key="Escape">escape</Key>	
<Key key="F12">root:3</Key>
<Key mask="A" key="BackSpace">exec:xdotool key alt+1 Down Return</Key>	
<Key mask="C" key="Tab">prev</Key>
<Key mask="A" key="Tab">next</Key>
<Key mask="A" key="F4">close</Key>

<Key mask="A" key="F1">root:3</Key>
<Key mask="SAC" key="w">window</Key>
<Key mask="A" key="F3">root:1</Key>
<Key mask="AC" key="w">window</Key>
<Key mask="S" key="F2">root:2</Key>
<Key mask="S" key="F1">showdesktop</Key>


 <Key mask="AC" key="r">resize</Key>
 <Key mask="AC" key="m">move</Key>
  <Key mask="SAC" key="r">resize</Key>
 <Key mask="SAC" key="m">move</Key>
 
 
 
<Key mask="C" key="F12">exec:lp25</Key
<Key mask="C" key="F11">exec:lp24</Key>
<Key mask="C" key="F10">exec:lp23</Key>
<Key mask="C" key="F9">exec:lp22</Key
<Key mask="C" key="F8">exec:lp21</Key>
<Key mask="C" key="F7">exec:righthalf2</Key>
<Key mask="C" key="F6">exec:lefthalf2</Key
<Key mask="C" key="F5">exec:bottomhalf2</Key>
<Key mask="C" key="F4">exec:tophalf2</Key>
<Key mask="C" key="F3">exec:sakura</Key
<Key mask="C" key="F2">exec:cr</Key>
<Key mask="C" key="F1">exec:3but</Key>
<Key mask="4" key="p">exec:partview</Key>
<Key mask="4" key="v">exec:xdotool key alt+1 Down Return</Key>

<Key mask="A" key="Escape">showdesktop</Key>
<Key mask="C" key="Escape">window</Key>
<Key mask="S" key="Escape">exec:xdotool key alt+1 Down Return</Key>
<Key mask="AC" key="Escape">root:6</Key>
<Key mask="AS" key="Escape">root:7</Key>
<Key mask="CS" key="Escape">root:8</Key>   
<Key mask="SAC" key="Escape">root:9</Key> 

<Key keycode="160">exec:amixer sset Master toggle</Key>
<Key keycode="176">exec:amixer sset Master 1+,1+</Key>
<Key keycode="174">exec:amixer sset Master 1-,1-</Key>
<Key keycode="178">exec:defaultbrowser</Key>
<Key keycode="236">exec:defaultbrowser</Key>
<Key keycode="111">exec:defaultscreenshot</Key>

<Key mask="A" key="Up">exec:supup</Key>
<Key mask="A" key="Down">exec:supdown</Key>
<Key mask="A" key="Right">exec:supright</Key>
<Key mask="A" key="Left">exec:supleft</Key> 

<Key mask="AC" key="Up">maximize</Key>
<Key mask="AC" key="Down">minimize</Key>
<Key mask="AC" key="Right">next</Key>
<Key mask="AC" key="Left">prev</Key> 

<Key mask="CAS" key="Up">fullscreen</Key>
<Key mask="CAS" key="Down">showdesktop</Key>
<Key mask="CAS" key="Right">resize</Key>
<Key mask="CAS" key="Left">move</Key> 

<Key mask="SA" key="Up">exec:xdotool mousemove_relative -- 0 -10</Key>
<Key mask="SA" key="Down">exec:xdotool mousemove_relative -- 0 10</Key>
<Key mask="SA" key="Right">exec:xdotool mousemove_relative -- 10 0</Key>
<Key mask="SA" key="Left">exec:xdotool mousemove_relative -- -10 0</Key> 


<Key mask="A" key="1">root:1</Key>
<Key mask="A" key="2">root:2</Key>
<Key mask="A" key="3">root:3</Key>
<Key mask="A" key="4">root:4</Key>
<Key mask="A" key="5">root:5</Key>
<Key mask="A" key="6">root:6</Key>
<Key mask="A" key="7">root:7</Key>
<Key mask="A" key="8">root:8</Key>
<Key mask="A" key="9">root:9</Key>
<Key mask="A" key="0">root:0</Key>



<Key mask="SA" key="1">exec:cr</Key>
<Key mask="SA" key="2">exec:sakura</Key>
<Key mask="SA" key="3">exec:3but</Key>
<Key mask="SA" key="4">exec:lma</Key>
<Key mask="SA" key="5">exec:laa</Key>
<Key mask="SA" key="6">exec:lba</Key>
<Key mask="SA" key="7">exec:ccdi</Key>
<Key mask="SA" key="8">close</Key>
<Key mask="SA" key="9">exec:kill</Key>
<Key mask="SA" key="0">exec:cadi</Key>


<Key mask="SC" key="1">exec:lefthalf2</Key>
<Key mask="SC" key="2">exec:righthalf2</Key>
<Key mask="SC" key="3">exec:tophalf2</Key>
<Key mask="SC" key="4">exec:bottomhalf2</Key>
<Key mask="SC" key="5">exec:fulla</Key>
<Key mask="SC" key="6">exec:lp21</Key>
<Key mask="SC" key="7">exec:lp22</Key>
<Key mask="SC" key="8">exec:lp23</Key>
<Key mask="SC" key="9">exec:lp24</Key>
<Key mask="SC" key="0">exec:lp25</Key>



<Key mask="SAC" key="1">exec:wmctrl -r :ACTIVE: -t0</Key>
<Key mask="SAC" key="2">exec:wmctrl -r :ACTIVE: -t1</Key>
<Key mask="SAC" key="3">exec:wmctrl -r :ACTIVE: -t2</Key>
<Key mask="SAC" key="4">exec:wmctrl -r :ACTIVE: -t3</Key>
<Key mask="SAC" key="5">exec:wmctrl -r :ACTIVE: -t4</Key>
<Key mask="SAC" key="6">exec:wmctrl -r :ACTIVE: -t5</Key>
<Key mask="SAC" key="7">exec:wmctrl -r :ACTIVE: -t6</Key>
<Key mask="SAC" key="8">exec:wmctrl -r :ACTIVE: -t7</Key>
<Key mask="SAC" key="9">exec:wmctrl -r :ACTIVE: -t8</Key>
<Key mask="SAC" key="0">exec:wmctrl -r :ACTIVE: -t9</Key>

#sendto d#



<Key key="h">left</Key>
<Key key="j">down</Key>
<Key key="k">up</Key>
<Key key="l">right</Key>

<Key mask="A" key="h">prev</Key>
<Key mask="A" key="j">next</Key>
<Key mask="A" key="k">move</Key>
<Key mask="A" key="l">resize</Key>

<Key mask="SC" key="h">exec:cr</Key>
<Key mask="SC" key="j">exec:winswitcher</Key>
<Key mask="SC" key="k">maximize</Key>
<Key mask="SC" key="l">minimize</Key>

<!-- exec:wmctrl -r :ACTIVE: -b add,sticky-->
<Key mask="AC" key="h">window</Key>
<Key mask="AC" key="j">exec:gexec</Key>
<Key mask="AC" key="k">showdesktop</Key>
<Key mask="AC" key="l">exec:leafpad</Key>


<Key mask="SA" key="h">exec:ccdi</Key>
<Key mask="SA" key="j">close</Key>
<Key mask="SA" key="k">exec:kill</Key>
<Key mask="SA" key="l">exec:cadi</Key>



<Key mask="SAC" key="h">fullscreen</Key>
<Key mask="SAC" key="j">exec:3but</Key>
<Key mask="SAC" key="k">maximize</Key>
<Key mask="SAC" key="l">minimize</Key> 



<Key mask="A" key="space">exec:rox</Key>
<Key mask="C" key="space">exec:winswitcher</Key>
<Key mask="S" key="space">exec:gexec</Key>
<Key mask="CA" key="space">window</Key>
<Key mask="CS" key="space">exec:sakura</Key>
<Key mask="AS" key="space">exec:closeallrox</Key>



<ButtonClose>/usr/share/pixmaps/close.png</ButtonClose>
<ButtonMax>/usr/share/pixmaps/max.png</ButtonMax>
<ButtonMaxActive>/usr/share/pixmaps/maxact.png</ButtonMaxActive>
<ButtonMin>/usr/share/pixmaps/min.png</ButtonMin>

   <Tray x="200" y="1">
      <Spacer width="1" height="1"/>
   </Tray>
#t



   <Tray x="1" y="200">
      <Spacer width="1" height="1"/>
   </Tray>
#l

   <Tray x="-1" y="200">
      <Spacer width="1" height="1"/>
   </Tray>
   #r

<!--<Tray x="200" y="-27">-->
 <!--      <Spacer width="1" height="1"/>-->
 <!--   </Tray> -->
#d


   <Tray x="200" y="-1">
      <Spacer width="1" height="1"/>
   </Tray>
#d

</JWM>
final :roll:/ :wink: / :? jwm tweak pack shortly after i get the trays and extra menus together/sorted out. change the personal files,menus, keys, scripts the keys and menus point to continually it seems. i spend an awful lot of time thinking of ways to save time...

:P

User avatar
greengeek
Posts: 5789
Joined: Tue 20 Jul 2010, 09:34
Location: Republic of Novo Zelande

#155 Post by greengeek »

I feel lost when I read your recent posts :-) I wish I could keep up with them but sadly my brain is too small. Anyhow, I keep watching them because something in my head tells me that your methods will help spawn some way that use of a mouse could be replaced by variations on mouseclicks represented by a finger press on a touchscreen.

Android works because a single touch on the screen is interpreted in more ways than a simple left click, and I feel that there may be some way to use your methods to make puppy interpret a leftclick as much more than just a leftclick - which I consider the major barrier to using touchsceens in puppy.

In my mind I see some method where a press on a touchscreen would trigger a script that would then interpret the next press as an 'argument' by which the first press would be defined (almost like the "NextClick" menu that appears when you rightclick the open space in a directory). Maybe the second press could be above, below, or to left or right of the first click and thereby trigger a selection of menus or functions depending on direction. (First tap = location, second tap = function etc etc).

It would be a new concept in driving a touchscreen without needing multitouch detection - and it could apply to mouse use aswell.

Maybe I'm not expressing this clearly, but oh well, never mind. I shouldn't be on the keyboard when I'm this tired :)
Time for bed...

User avatar
Puppus Dogfellow
Posts: 1667
Joined: Tue 08 Jan 2013, 01:39
Location: nyc

#156 Post by Puppus Dogfellow »

greengeek wrote:I feel lost when I read your recent posts :-) I wish I could keep up with them but sadly my brain is too small. Anyhow, I keep watching them because something in my head tells me that your methods will help spawn some way that use of a mouse could be replaced by variations on mouseclicks represented by a finger press on a touchscreen.

Android works because a single touch on the screen is interpreted in more ways than a simple left click, and I feel that there may be some way to use your methods to make puppy interpret a leftclick as much more than just a leftclick - which I consider the major barrier to using touchsceens in puppy.

In my mind I see some method where a press on a touchscreen would trigger a script that would then interpret the next press as an 'argument' by which the first press would be defined (almost like the "NextClick" menu that appears when you rightclick the open space in a directory). Maybe the second press could be above, below, or to left or right of the first click and thereby trigger a selection of menus or functions depending on direction. (First tap = location, second tap = function etc etc).

It would be a new concept in driving a touchscreen without needing multitouch detection - and it could apply to mouse use aswell.

Maybe I'm not expressing this clearly, but oh well, never mind. I shouldn't be on the keyboard when I'm this tired :)
Time for bed...
not sure if this is what you mean, but if you can make it so that each direction out of hub (say every 30 or 45 degree slice of pie) was like the jwm up and down four and five root menus, you could have eight or nine menus pop up, each with it's own set of submenus or as possibly that same type of action could be eight or nine modifiers for subsequent "keycuts" that are really finger gestures.

or you could use one, two, or three fingers down and now you have 24-27 additional primary menus...

:D


as far as recent posts, the most recent thing is just mostly an update to what i used to refer to as "terminal shortcuts." turns out the terminal can't send wmctrl commands to resize and move the active window because it itself is the active window. i discovered gexec and pexec don't have this limitation, so i'm offering an expanded select-to-move or resize set and adding an active version for each. i use jwm to access gexec/pexec, so shift+space pops it up (it appears and autocloses basically instantly on three of four machines) and (apologize for quoting myself--i really could use some sleep myself):

naming convention's a little different for these. first part (with or without the s for select, the 1-16 part that comes before the dot) is rung down the y axis, 100 pixels per step (i.e first rung is y=0, second is y=100, etc). the second part is x-axis times 100. so,

1.20 and 5s.16 are active window to 2000x,0y and selected window to 1600x,400y. 1.0 is upper left corner.

seems to me i could've started at 0 for the y value and the period is unnecessary for the select values, but it already more or less feels natural to me, though i've discovered that some windows, or, sometimes windows can in fact be pushed past the screen edge...

pack includes active and select versions of x2300,2500,2800,and 3000 and the 1._ series goes to 30 (the others go to 20 and the y# scripts from earlier cover down to 2000 (which'd be 21._).
so that's a bunch of mini scripts that attempts to grid out the screen. many things are pretty self explanatory--bare numbers are squares-- you can make 100 to 1200 pixel squares (increments of 10 pixels) by entering 100 to 1200 into gexec or pexec. 1140s will give you cross hairs that will square the next thing you click. w800 h455s--make the window 800 pixels wide, make the next window i click 455 pixels high.

convention is:

i've come to rely on a shortcut key (shift plus space) for gexec quite a bit lately and so i decided to use it to make it as quick and easy as possible (given what little i know about computers, that is) to resize and reposition windows with the keyboard. send along the x axis and y axis go from 0-2000 by tens, height and width go from 200 to 2000 by fives. basic launch code is

x# move along x axis to #
y# move along y axis to #
w# adjust width to #pixels
h# adjust height to #pixels

add an s to make the code work on a window to be clicked rather than the active one (examples: x440, y750s, w435, h1275s)

caveat: the only two launchers i've found to work with this type of script are pexec and gexec--all the others morph and send themselves for a walk.

s# send active window to desktop#
s#s send next clicked window to desktop#
d# go to desktop#
c plus a single letter is normally a close command--cr, close rox; cu, close urxvt terminals; ct, close rxvt Terminal.
pp# --change pinboard
p# --change/toggle four panel set frame (can be altered down to one)
my# --swap out custom jwm configurations
gea3 --edit custom jwm configurations
la, lb, lm ---layer above, below, middle/normal for active window
las,lbs, lms ---layer above, below, middle/normal for selected window
stk, ustk --stick unstick active (add an s for the click to select version)
pv2--partview and rox /mnt
rr --rox recently visited
rb1 --four (iirc) rungs down on the rox bookmarks menu
rup --three rungs up from the bottom of the rox bookmarks menu
wp-- access the nwp area of one of the root menus
w5 --access the quadrants, halves, and wholes area of one of the menus
pcp --access pup control
fnr --find and run
hlx -- htop in an urvxt window and lx task ...
ppm is a built in for package manager...

1.0-1.20 grid out the screen. first number is down the y axis in steps of 100, starting with 0; second number is x axis divided by 100. select versions place an s before the dot: 1.0 is upper left corner, 7s.20 sends the next thing clicked to 600y, 2000x. increments of 100 for the grid, 10 for movement along x and y axes, 5 for height and width though square presets are by tens.

sd -- speeddials
sdr -- speed dials recent list only
gnysys -- open a slew of config files in geany
3but -- speed dials and a version of winswitcher

^ recommend also making a ws shortcut from a copy of winswitcher (i've already got it ingrained as ctrl plus spacebar).
...

keyboard's the full machine's strength and the tablet/phone's weakness. not sure if there's as much overlap as you're hoping for, greengreek...think 9 menus may be a bit much, but i suppose there's no reason why there couldn't be versions of gexec/pexec that pop up along with one of those swypey virtual keyboards...different strokes in different guis/guis launched from different menus have different results from given input...haven't played around with virtual keyboards enough to say (i buy phones with slide out keyboards and don't spend much time with tablets), but you may be onto something...

---

another possibility for the miniscripts is to use them as building blocks for your own custom resize/relocate scripts:

Code: Select all

#!/bin/sh 

w555| h765| x900| y300

is a much simpler syntax than the original
(which would be

Code: Select all

 wmctrl -r :ACTIVE: -b remove,maximized_vert,maximized_horz
wmctrl -r :ACTIVE: -e 0,900,300,555,765
and which would need to always receive values (though here unrestricted in practical range and specificity) in a specific order.)

for the vgt (launch a line with geany) version you'd need to use the s versions unless you want to move geany around:

Code: Select all

w555s| h765s| x900s| y300s
____

in writing this post, i used the nwp "xdotool type ' '" menu entry for script to get the #!/bin/sh entered. i then tried to do it with gexec, found "scripttemplate" too long a name, changed it to scrept, used it for this paragraph, am contemplating renaming it scrz even though it's now in the gexec history....scz is better...scz enter and i wouldn't even need to look up at the screen...
Last edited by Puppus Dogfellow on Thu 21 May 2015, 16:21, edited 8 times in total.

User avatar
greengeek
Posts: 5789
Joined: Tue 20 Jul 2010, 09:34
Location: Republic of Novo Zelande

#157 Post by greengeek »

Puppus Dogfellow wrote:not sure if this is what you mean, but if you can make it so that each direction out of hub (say every 30 or 45 degree slice of pie) was like the jwm up and down four and five root menus, you could have eight or nine menus pop up, each with it's own set of submenus or as possibly that same type of action could be eight or nine modifiers for subsequent "keycuts" that are really finger gestures. .
Yes, that sounds like the sort of concept that popped into my head.

I had another thought too - and this is something i have tried to do in the past without success - imagine your desktop wallpaper was an image that contained a picture of a machine (eg a moog synthesiser or similar) and it was possible to "activate" each of the buttons/controls on the image to do something that a mouse normally would.
Example: say you pressed the slider that says "vol" - it would bring up retrovol.
Say you pressed (or clicked) the big red button - it would bring up the power down menu
- so this would be a way of allowing the user to "visualise" the function rather than "textualise" it. I reckon this might have application for people who struggle with words (maybe some aspergers? People with dyslexia, stroke, or in systems where foreign language speakers would prefer to navigate by image/icon rather than text...)

The image would become a doorway into the functionality - using jwm instead of html.

Anyway - just spitballin' here..
Attachments
moog_backgrnd.jpg
(85.68 KiB) Downloaded 825 times

User avatar
Puppus Dogfellow
Posts: 1667
Joined: Tue 08 Jan 2013, 01:39
Location: nyc

#158 Post by Puppus Dogfellow »

greengeek wrote:
I had another thought too - and this is something i have tried to do in the past without success - imagine your desktop wallpaper was an image that contained a picture of a machine (eg a moog synthesiser or similar) and it was possible to "activate" each of the buttons/controls on the image to do something that a mouse normally would.
Example: say you pressed the slider that says "vol" - it would bring up retrovol.
Say you pressed (or clicked) the big red button - it would bring up the power down menu
- so this would be a way of allowing the user to "visualise" the function rather than "textualise" it. I reckon this might have application for people who struggle with words (maybe some aspergers? People with dyslexia, stroke, or in systems where foreign language speakers would prefer to navigate by image/icon rather than text...)

The image would become a doorway into the functionality - using jwm instead of html.

Anyway - just spitballin' here..
well, other than maybe limiting the choice of wallpaper/pinboard and involving rox, that seems pretty doable through jwm. you could have invisible icons (link's a blank 100 pixel square--i'm so terrible with mtpaint that i've been using versions of the same hollowed out moblin stark desktop icon for two years--i still don't know how to make one from scratch) overlay the image in places and set them to activate a program, script, or menu no problem (menus and submenus can be activated with a script calling xdotool). you can populate the menus with whatever you want (optionally making them large and giving each slot some large, illustrative icon) and set it so a central/obvious/consistent part of the desktop swaps out pinboards--not many other ways around being able to have more than one backdrop and still be able to use it the way you describe (unless they make a memory game out of it or simply get used to the positions. i suppose they could learn to make their own custom fit jobbies, work a given set of features into their designs and come up with backdrops based on set(s) of programs shown or icon forms they've come up with for functions they've come up with, or...). i figure if you make the icons/areas large enough, there's not much danger of them being accidentally moved out of position (perhaps there could be a lock out/some file (the pinboards?) can be made read only).

the pinboards could swap the menu sets and themselves, the menus could swap the pinboards and themselves, the panels could do either and contain their own images or color coded areas...

User avatar
Puppus Dogfellow
Posts: 1667
Joined: Tue 08 Jan 2013, 01:39
Location: nyc

more launcher shortcuts

#159 Post by Puppus Dogfellow »

make each of the following into individual files/scripts (suggested launch code/title after the second #) and copy to /root/my-applications/bin:

Code: Select all

#!/bin/sh
#min
xdotool key alt+shift+Escape
_______________________________________

#!/bin/sh
#max
xdotool key ctrl+shift+Escape
_______________________________________
#!/bin/sh
#fs   --full screen (my function keys are messed up and/or remapped)
xdotool key alt+Escape
_______________________________________
#!/bin/sh
#desk --show desktop (this one usually needs two passes, especially if there are many windows open)
xdotool key ctrl+Escape

_______________________________________
#!/bin/sh
#mov --move active window 
xdotool key alt+ctrl+Escape
_______________________________________
#!/bin/sh
#res --resize active window
xdotool key shift+alt+ctrl+Escape
_______________________________________
#!/bin/sh
#win --windows menu
xdotool key shift+Escape
_______________________________________

and add the following keyboard codes (what the scripts are pressing for you) to your jwmrc-personal file (make sure it's not conflicting with older keyboard shortcuts).


Code: Select all

<Key mask="A" key="Escape">fullscreen</Key>
<Key mask="C" key="Escape">showdesktop</Key>
<Key mask="S" key="Escape">window</Key>
<Key mask="AC" key="Escape">move</Key>
<Key mask="AS" key="Escape">minimize</Key>
<Key mask="CS" key="Escape">maximize</Key>   
<Key mask="SAC" key="Escape">resize</Key> 



you'll get:

fs --full screen
win --windows menu
res --resize active window
mov --move active window
min --minimize active window
max --maximize active window
desk --show desktop

__________

@greengreek: the above is basically the same script you would use to access the menus with (images overlaid by) invisible icons. add Down Left Up Right to go deeper into the menus/access submenus, repeating when necessary (i.e. Up Up Up). you could also put the dock, volume slider, and pager on the lowest level, basically making them part of the wallpaper. you can make a newbie or custom interface by having text or arrows nearby explaining what the things do. you can also make it so that there is more than one jwm configuration coming into play...

User avatar
Puppus Dogfellow
Posts: 1667
Joined: Tue 08 Jan 2013, 01:39
Location: nyc

an attempt to automate the making of jwm menus and submenus

#160 Post by Puppus Dogfellow »

thanks to musher0 for the ae menu tutorial. for the aemenu method, you'll need aemenu.tar.bz2, unpacked and placed in a /bin.

the following menu and the two letter launching code that will pop it up should be placed in /root and /root/my-applications/bin respectively. in addition to the defaults, some rox items, and the supplemental menus, you'll get a submenu that makes it easy to make your own ae or jwm menus from executable commands or full paths to progs/scripts, etc.

Code: Select all

menu "defaults/original puppy desktop"
cmd " audiomixer" defaultaudiomixer
cmd " audioplayer" defaultaudioplayer
cmd " browser" defaultbrowser
cmd " calendar" defaultcalendar
cmd " cdplayer" defaultcdplayer
cmd " chat" defaultchat
cmd " chmviewer" defaultchmviewer
cmd " ~ 'Chooser' ~" /usr/bin/defaults-chooser
cmd " connect" defaultconnect
cmd "console" "urxvt"
cmd " contact" defaultcontact
cmd " draw" defaultdraw
cmd " email" defaultemail
cmd " htmleditor" defaulthtmleditor
cmd " htmlviewer" defaulthtmlviewer
cmd " imageviewer" defaultimageviewer
cmd " mediaplayer" defaultmediaplayer
cmd " notecase" notecase
cmd " paint" defaultpaint
cmd "puppy package manager" "ppm"
cmd "puppy control panel" "pcp"
cmd " spreadsheet" defaultspreadsheet
cmd "screen shot" "tas"
cmd " texteditor" defaulttexteditor
cmd " textviewer" defaulttextviewer
cmd " videoplayer" defaultvideoplayer
cmd " wizardwizard" wizardwizard
cmd " wordprocessor" defaultwordprocessor
cmd "Xlock setup" "/usr/local/apps/Xlock/AppRun -configure"
cmd  "Xlock lock screen" "/usr/local/apps/Xlock/AppRun -locknow"
end

 menu "rox"
 cmd "rox /" "rox /"
  cmd " ~ ROX-Filer ~" "rox ~"
 cmd " Close All Rox" "cr"
  cmd "  rox Recents  " "rr"
  cmd " rox Bookmarks" "rb"
  cmd "applications" "rox /usr/share/applications" 
  cmd "/etc" "rox /etc"
 cmd "/mnt" "rox /mnt"
 cmd "/mnt/home" "rox /mnt/home"
cmd "my-applications" "rox /root/my-applications/bin"
cmd "my-documents" "rox /root/my-documents"
cmd "rox /tmp" "rox /tmp"
cmd "rox /root/.Trash" "rox /root/.Trash"

end   
 
menu "launchers and consoles" # beginning of menu
cmd "findnrun" "fnr"
cmd "gexec" "gexec"
cmd "grun" "grun"
cmd "lxterminal" "lxterminal"
 cmd "pexec" "pexec"
cmd "prun" "prun"
cmd "roxterm" "roxterm"
cmd "rxvt" "rxvt"
cmd "sakura" "sakura" # program to launch
cmd "urxvt" "urxvt"
end # end of menu   



menu "supplemental 1" # beginning of menu
cmd "close all desktop instances" "cadi" # program to launch
cmd "close current desktop instances" "ccdi" # program to launch
cmd "partview" "partview" # program to launch
cmd "lxtask" "lxtask" # program to launch
cmd "htop" "htop" # program to launch
cmd "winswitcher" "winswitcher"
cmd "jwm -restart" "jwm -restart"
cmd "5copies" "5copies"
cmd "5copiesDir" "5copiesDir"
cmd "nwp" "wp"
cmd "left full" "b5"
cmd "right full" "b10"
cmd "slocate search all" "slac"
cmd "slocate search limited" "sloc"
cmd "slocate update databases" "sluc"
cmd "spacefm" "spacefm"
end # end of menu   

menu "supplemental 2" # beginning of menu
cmd "chromium" "chromium"
cmd "firefox" "firefox"
cmd "galculator" "galculator"
cmd "gcolor2" "gcolor2"
cmd "gfnrename" "gfnrename"
cmd "gfontsel" "gfontsel"
cmd "goldendict" "goldendict"
cmd "google-chrome" "google-chrome"
cmd "palemoon" "palemoon"
cmd "pfind" "pfind"
cmd "recoll" "recoll"
cmd "xpad-backup" "xpad-backup"
cmd "xpad-clear" "xpad-clear"
cmd "xpad" "xpad"
end # end of menu
 menu "jwm menu maker" # beginning of menu
cmd "jwmxx-leafpad-grab executables" "cd  /usr/share/applications; grep Exec= *.desktop | grep -o 'Exec=.*' | cut -f2- -d'=' > /root/my-documents/Text/jwmxx; leafpad /root/my-documents/Text/jwmxx
cmd "jwmxx-geany-grab executables" "cd  /usr/share/applications; grep Exec= *.desktop | grep -o 'Exec=.*' | cut -f2- -d'=' > /root/my-documents/Text/jwmxx; geany /root/my-documents/Text/jwmxx
 cmd "make a menu entry" "jwmkr"
cmd "add the menu template" "jwmenuplate"

 menu "ae menu maker"
cmd "ae menu item maker" "aeae"
cmd "ae menu slot maker" "aeaem"
end


end # end of menu 

#menu "supplemental 3" # beginning of menu

#end # end of menu


#name mushu1 and place in /root to be able to launch it with the mm script below/change location in mm to reflect change in location or title of mushu1

#launcher

Code: Select all

#!/bin/sh

#aemenu -rc /root/mushu1   
#name mm and place in /root/my-applications/bin/
killall -q aemenu
sleep 0.1s
aemenu -rc /root/mushu1    

the jwmxx scripts strip the executable commands from /usr/share/applications and open a file (saved in my-documents/Text) containing them in either leafpad or geany. highlight and choose which type of menu item you want to make.


convenient to launch with a gexec or terminal shortcut, but it's so easy to modify you may want to have even more direct access and give it proper keycut---alt+ctrl plus a used for anything?

further details here. i wasn't able to get the jwmkr, jwmenuplate, aeae, or aeaem scripts to work correctly from either a jwm menu or an ae menu as bare code, but they all work fine if you call them from /root/my-applications/bin by the titles the above ae menu uses.


aeae

Code: Select all

#! /bin/sh
# name aeae
# turn an executable into a menu item (aemenu)

xclip -o | sed 's/^/cmd "title-here" "/' | sed 's/$/\"/' | xclip -selection clipboard
xdotool type "`xclip -out -selection clipboard`"	



aeaem

Code: Select all

#! /bin/sh
# name aeaem
# ae menu slot template


xdotool type 'menu "title"
(your menu here)
end
'
jwmkr

Code: Select all

#! /bin/sh
# name jwmkr
#  use on executables/ paths to executables
# adds jwm menu tags around a selection of text in any text editor
xclip -o | sed 's/^/<Program label="" icon="">/' | sed 's/$/<\/Program>/' | xclip -selection clipboard
xdotool type "`xclip -out -selection clipboard`"



jwmenuplate


Code: Select all

#! /bin/sh
 #name jwmenuplate

xdotool type "<Menu label="pick a better title" icon="/path/to/img_wots_opt_icon.jpgpngsvg" height="16">


[delete this and place your entries here]

</Menu>
"



the two jwmxx entries (jwmxx-leafpad/geany-grab executables) strip the executable commands from the .desktop files in usr/share/applications. to make an off PATH executable, program, or script into a menu item for either aemenu or jwm, highlight its full path and click the appropriate menu-item maker. works for individual commands/paths or batches, separated by line break or space doesn't seem to matter though i usually rely on the former and i'm relying on memory to attest the latter works. you can mix commands and paths--the script (based on miriam's ht-b) appears to be looking for breaks in the continuity of the text...(i think this is called whitespace)


:D


---------------

for the jwm menu, add the following two scripts to /root/my-applications/bin/
(more to play it safe--the code may actually work when directly added to the menu between <program> tags, but i know for sure it works this way...

Code: Select all

#! /bin/sh 
#name gge (for geany-grabexec) and place in /root/my-applications/bin
cd  /usr/share/applications; grep Exec= *.desktop | grep -o 'Exec=.*' | cut -f2- -d'=' > /root/my-documents/Text/jwmxx; geany /root/my-documents/Text/jwmxx

Code: Select all

#! /bin/sh 
#name lge (for leafpad-grabexec) and place in /root/my-applications/bin
cd  /usr/share/applications; grep Exec= *.desktop | grep -o 'Exec=.*' | cut -f2- -d'=' > /root/my-documents/Text/jwmxx; leafpad /root/my-documents/Text/jwmxx


highlighting
aeae
aeaem
lge
gge
jwmkr
jwmenuplate

and then using the aemenu to select "make a menu entry" yields:

Code: Select all

<Program label="" icon="">aeae</Program>
<Program label="" icon="">aeaem</Program>
<Program label="" icon="">lge</Program>
<Program label="" icon="">gge</Program>
<Program label="" icon="">jwmkr</Program>
<Program label="" icon="">jwmenuplate</Program>

the jwmenutemplate is just typing/remembering the following for you when you select "add the menu template":

Code: Select all

<Menu label="pick a better title" icon="/path/to/img_wots_opt_icon.jpgpngsvg" height="16">


[delete this and place your entries here]

</Menu> 

for both the menu and its entries, the icon="" slot will take the path to an image of your choice and use it to add it to the menu, whether huge or small, jpg, png, svg--so far every image i've tried works (don't expect to see many details if you're squishing a screen or two down to a pinky nail).

the default is to fill in the program (you could alter it to do the name or image on the menu instead), leaving the name and icon slots blank. fill those in and optionally surround the whole thing with <JWM> at the beginning and </JWM> at the end. this will allow you to paste the singe line <Include>path/to/menu</Include> into the target root menu instead of having to paste the whole thing/open the whole thing to edit this one piece.

so, putting the two pieces together and adding titles for the menu slots gives us

Code: Select all

<Menu label="JWM Menu Maker" icon="" height="16">


<Program label="make an aewm menu item" icon="">aeae</Program>
<Program label="make an aewm menu/submenu" icon="">aeaem</Program>
<Program label="leafpad--grab execs" icon="">lge</Program>
<Program label="geany--grab execs" icon="">gge</Program>
<Program label="make a JWM menu item" icon="">jwmkr</Program>
<Program label="make an JWM menu/submen" icon="">jwmenuplate</Program>

</Menu> 

a menu that will make menu making even easier.

:D


______


path gathering tip:

when making menus, it's often helpful to be able to easily grab the paths of one or more files (full paths always work if the permissions are set and the file's okay--the bare name may not). an easy way using a combination of rox filer and either leafpad or xpad is to highlight the file(s) you want in a rox window and then either middle click-pasting or dragon dropping the highlight to the x- or leafpad window. for geany, only the middle click pasting method works--dragging the files to the geany window will open them in geany (i.e. same behavior as a desktop icon).

Post Reply