Page 1 of 1

Navig8or

Posted: Sat 19 Mar 2011, 23:28
by WarMocK
Hello dear desktop tweakers,
if you like a fancy startmenu or want to add some simple widgets without a truckload of dependencies then I probably got something for you. ;-)

What Navig8or is:
By default, Navig80r is a borderless, pseudo-transparent window which may be populated with a few widgets specified in a config file.

Currently available widgets are:
1) Shaped button
2) label
3) image
4) launch entry field
5) application menu
6) monitoring display
7) drop target

What the widgets do:
1) Shaped buttons launch an application linked to them when clicked. If they are not set as persistent, the Navig8or window they are attached to will be closed.
2) Labels are good for displaying some text - what else? ;-)
3) Images - well - no explanation necessary I think
4) Type the name of your application into the field, press ENTER, and your program starts
5) Basically what you already know from JWM's startmenu, but as a widget ready to be added to your customized menu window.
6) The monitoring display reads the content of the text file linked to it (once per second), and displays that content.
7) The drop target retrieves the drop item's full path and launches an associated program with it.

How to control them:
Navig8or is started with the following parameters:

"/usr/local/navig8or $POSX $POSY /path/to/config"

$POSX and $POSY determine the position of the top left corner of the windoe on the screen

The Config file:
Every widget to be displayed requires a little one-liner in the config file, among with a few important window settings. The config options are:

<property>unfocusquit</property>
--- Closes the window whenever it loses the focus

<geometry>x=xSize y=ySize</geometry>
--- Determines the window's width and height

<showimage>Image="/path/to/image" x=xPos y=yPos</showimage>
--- Displays the linked image at position xPos yPos (from the top left of the navig8or window)

<shapedbutton>Image="/path/to/image" x=xPos y=yPos command="/path/to/application" Kill=yes/no</shapedbutton>
--- A button shaped according to the mask generated from the icon dusplayed on it, which starts the linked application when pressed. The Kill option may be yes or no. If it's yes the application window will be closed if the button is pressed, otherwise it will stay open and active afterwards.

<showmenu>x=xPos y=yPos</showmenu>
--- Shows the main menu

<showentry>x=xPos y=yPos</showentry>
--- Shows the launcher entry

<showlabel>Text="Insert text here" x=xPos y=yPos color=whatever</showlabel>
--- Shows a text at the specified position in the specified color

<monitor>File="/path/to/textfile" x=xPos y=yPos color=whatever</monitor>
--- Constantly monitors the content of the linked textfile and displays it as a text in the specified color.

<droptarget>Image="/path/to/file" x=xPos y=yPos color=whatever command="application"</droptarget>
--- Provides a drop target widget which launches programs and associates the dropped file to it.

EXAMPLES:
The screenshot shows a few things you can do with Navig8or, I included a few configs in the dotpet (the ones that made most sense).

- Monitoring widgets (top right)
--->image + monitoring from a text file in /root/.navig8or/datafiles

- Menu (bottom left)
---> included everything except for monitoring stuff. The window will close if it loses focus, after a certain amount of time, and when one of the widgets included is triggered

- Launcher icons (bottom left, behind the menu, and bottom right)
---> shaped button: the left one starts the menu, the right one immediately opens the TinyLogout window I included in the package

Stuff I didn't include:
- Wallpaper "widget"
--->simply a window scaled up to fit the screen with a scaled version of the wallpaper I wanted to use. My pic2root program is more effective, however, so I didn't bother including this one in the mix.

- Dock (top)
---> an image with lots of shaped buttons on it. Just a copy of my wbar launcher, no need to include it either.


TODO:
- try to improve it's speed


Well, so much from my side. Any suggestions and feedback is very welcome. Have fun with it, I did already. :D

UPDATE:
Repacked the dotpet as I forgot to remove the theme skelleton I used for the older version.

Posted: Fri 25 Mar 2011, 20:35
by r1tz
I cant believe no one replied to this yet!

This is very initersting

This uses pesodo transparency, which fails epic-ly on my dwm. Try to spot navig8tor :P
EDIT:IMG REMOVED :P

Anyways. nice :)

Posted: Sat 26 Mar 2011, 15:33
by harii4
This looks great. 8)
i planning to use it with yeahwm on White Fang (3.01) but i get an error:
# /usr/local/navig8or/navig8or
no config file found. Exiting ...
The navig8or(s) in the backup do show up when called but the menu do not work.
menu might need an configured?
i'll play more :P

logout errors:
# /usr/local/logout/logout

(logout:19360): Gtk-WARNING **: GModule initialization check failed: Gtk+ version too old (micro mismatch)
/usr/local/logout/logout: symbol lookup error: /usr/local/logout/logout: undefined symbol: gtk_widget_set_tooltip_text
My gtk too old?
It would help if i was not using an deadpup on an old laptop that will not die. :D :D

Posted: Wed 30 Mar 2011, 07:33
by WarMocK
harii4:
You'll find working configs in /root/.navig8or. I'll still need to clean up a few things and repack the dotpet, as I changed a lot of features and options after packing that backup config into /usr/local.
As for your error: I compiled navig8or on Puppy 5.00, which has a newer version of GTK. You either need to update GTK on your machine, or install a newer version of Puppy Linux. You could also try to recompile navig8or (the sourcecode's included, after all), but I have my doubts it'll fix the lack of a feature. ;-)

Posted: Thu 31 Mar 2011, 01:09
by harii4
Thanks WarMocK
Did you compiled Logout-1.2.pet on Puppy 5.00 as well?
Because i installed the Logout-1.2.pet and now it works. :D
What icon set used with logout?

I have not had time to play with navig8or yet.

Keep up the good work.

Posted: Thu 31 Mar 2011, 21:36
by WarMocK
Yep, compiled it on 5.00 as well. And you can find the icons used under /usr/local/logout/icons if you want to edit them, as well as the header/footer image and the image for the canvel button.

Posted: Sun 03 Apr 2011, 22:24
by seaside
WarMock,

Really fascinating. A tree menu system, launcher, panel maker, wallpaperer, and conky - all rolled into one lightweight package. Nicely done.

A few comments:

I tested it on pup431 and found the following-

The default "config" would not run the left hand file commands unless the " Kill=" were added to the <shapedbutton> as follows;

Code: Select all

<showimage>Image="/root/menutheme/back.png" x=0 y=0</showimage>
<showimage>Image="/usr/local/navig8or/images/avatar.png" x=20 y=20</showimage>
<showimage>Image="/usr/local/navig8or/images/frame.png" x=12 y=12</showimage>
<shapedbutton>Image="/usr/local/navig8or/images/folder-home.png" x=20 y=80 command="/usr/local/navig8or/scripts/home.sh" Kill=no</shapedbutton>
<shapedbutton>Image="/usr/local/navig8or/images/folder-documents.png" x=20 y=130 command="/usr/local/navig8or/scripts/downloads.sh" Kill=no</shapedbutton>
<shapedbutton>Image="/usr/local/navig8or/images/folder-downloads.png" x=20 y=180 command="/usr/local/navig8or/scripts/docs.sh" Kill=no</shapedbutton>
<shapedbutton>Image="/usr/local/navig8or/images/folder-media.png" x=20 y=230 command="/usr/local/navig8or/scripts/media.sh" Kill=no</shapedbutton>
<shapedbutton>Image="/usr/local/navig8or/images/folder-pictures.png" x=20 y=280 command="/usr/local/navig8or/scripts/pictures.sh" Kill=no</shapedbutton>
<shapedbutton>Image="/usr/local/navig8or/images/button.png" x=10 y=370 command="/usr/local/logout/logout" Kill=no</shapedbutton>
<shapedbutton>Image="/usr/local/navig8or/images/search.png" x=52 y=370 command="/usr/local/bin/pfind" Kill=no</shapedbutton>
<showimage>Image="/usr/local/navig8or/images/menu.png" x=77 y=77</showimage>
<showmenu>x=80 y=80 Kill=no</showmenu>
<showentry>x=80 y=370 Kill=no</showentry>
<showlabel>Text="Welcome," x=80 y=20 color=white</showlabel>
<showlabel>Text="Puppy Linux user" x=90 y=40 color=white</showlabel>
I was hoping that adding " Kill-no" would make the <showmenu> and <showentry> items also persistent, but apparently it's not applicable there.

Also, the <unfocusquit> doesn't seem to work- or maybe I don't understand how to use it.

Anyway, this is real "swiss-army-knife" menuing and screening utility with promise. Thanks.

By the way, what kind of tool do you use to place x,y coordinates for the items in a program like this?

Regards,
s
(I don't know what Gtk+ level pup431 has, and don't even know how to check that.... also, just looked at the source code and the parsing for finding "commands" uses " Kill=" as the ending point, so if that's missing, the "command" given to "run" isn't correct)

Posted: Mon 04 Apr 2011, 09:22
by WarMocK
seaside:

Yes, the menu and the entry aren't persistent - yet. I probably will change that pretty soon, though. I wanted to tweak the entry widget anyway, so I can use it in conjunction with shaped button widgets as well.
Also, if you add the line "<property>unfocusquit</property>" to your config, the application will close as soon as the window loses the focus. If you change the line to something else, the window will stay even if it loses the focus.
And yes, the "kill=yes/no" option is mandatory, otherwise parsing the commands won't work properly. The package needs to be cleaned up a bit, I might have mixed a few incompatible configs by accident.

Posted: Sun 10 Jul 2011, 16:16
by harii4
Any new updates :D

Posted: Mon 11 Jul 2011, 11:22
by WarMocK
Not yet, but I'm working on it. Prob is I still gotta finish my work on two Desktop Environments atm, and I'm writing a simulator for a browser game as well. ;-)
Turned out that drag&drop fields are far more complicated than I expected, but I'm certain that I'll crack that nut as well.

Posted: Sat 28 Jan 2012, 04:18
by musher0
Interesting....

Posted: Sat 10 Mar 2012, 19:09
by sc0ttman
is this still being worked on? if not, is the source anywhere? I'm sure a few people would like to play with this further... It seems a little buggy out of the box, yet to play with it seriously, but very nice indeed!

Posted: Fri 11 May 2012, 13:32
by WarMocK
sc0ttman wrote:is this still being worked on?
Yep, don't worry. Navig8or is not dead. ^^
However I had lots and lots of work to do in the past few months, and I have a lot of linux projects running, so I had no time to add the last feature, the Drag&Drop field which gets the absolute path to a file being dropped onto it (still gotta figure out how this works).
As soon as I finished my work on the basic system of my multi-user patch for Puppy Linux, I give Navig8or another shot (just solved the mounting issue for physical devices, now I need to test whether my security system works with loopback devices as well, and tweak quite a few programs which deal with mounting).

Posted: Fri 13 Jul 2012, 02:24
by harii4
a tiny launcher interface I've written for a minimalistiv Desktop Environment called veRTix
Are there any DotPets of veRTix yet? :)
looks useful.

Posted: Fri 13 Jul 2012, 10:00
by WarMocK
harii4 wrote:
a tiny launcher interface I've written for a minimalistiv Desktop Environment called veRTix
Are there any DotPets of veRTix yet? :)
looks useful.
Not yet, but I can create one once I get home today. ;-)

Posted: Fri 24 Aug 2012, 18:02
by WarMocK
FINALLY! The Drag&Drop widget is finished! :D

<droptarget>Image="/path/to/file" x=$VALUE y=$VALUE color=$COLOR command="$COMMAND"</droptarget>

What it does:
It generates a 128x128 pixel area with a background made of the image you added in it's config string, at the position x-value y-value.
Whenever you drop a file onto it, the widget will get that file's absolute path and launch the given command in association with the dropped file.
You can use it for generating small helpers like:

- a quick archiver that packs the dropped file into an archive
- a d&d mediaplayer (using madplay or whatever)
- an email wizard for sending attachments
- etc.

That pretty much concludes my work on this project for now. Time for the other stuff I still need to work on. Enjoy! ^^