2 Replies - 2878 Views - Last Post: 03 November 2013 - 12:15 PM

#1 grimpirate  Icon User is offline

  • Pirate King
  • member icon

Reputation: 149
  • View blog
  • Posts: 714
  • Joined: 03-August 06

Big Menu - an Linux equivalent "Start" menu

Posted 08 May 2013 - 03:02 PM

What does it look like?
Posted Image

So what is it?
I'm not entirely sure what the "start" menu is called, be it in Windows, or contextually in OpenBox, JWM, SithWM, etc. but essentially, it's a launcher in a familiar menu form.

Why did I create it?
I settled on DWM as my window manager. While dmenu is great, it isn't what I want. I could not find a simplistic menu-functional launcher like the ones of OpenBox, JWM, etc. that was stand-alone and didn't involve some toolkit, user-prediction, attached window manager, or this or that. So I gave up hope of stumbling across one through a web search, and tinkered until this was made.

What are its goals?
  • Menu generation from an xml sheet
  • Font size can be altered
  • Expanders (the tiny arrows that appear before submenus) can be changed
  • Should hide/unhide itself due to a keybinding
  • Color scheme can be changed


Why Java, not C?
I don't know C. I'm familiar with Java.

What are the dependencies?
The java runtime environment, xbindkeys, and bash.

What's the set up?
  • Download the class files bigmenu.tar.bz[/*]
  • Extract the class files to a directory on your filesystem using tar -xvjf
  • The topmost directory will contain three files that are not relevant to java: bigmenu (an executable bash script), .xinitrc (a sample xinit configuration file), .xbindkeysrc (a sample xbindkeys configuration file)
  • The -cp parameter within the bash script should be changed to the directory where you extracted bigmenu.tar.gz
  • Move the bash script to /usr/bin, ensuring that its privileges/permissions are in order for your system
  • Take a look at .xinitrc, the relevant lines are: export BIG_MENU_PORT=32000 and bigmenu -p $BIG_MENU_PORT &, the temporary X session variable BIG_MENU_PORT has to be created such that it will be available to use for the keybinding in .xbindkeysrc, these lines have to be present, and they must precede the line xbindkeys &
  • The final step is to create a keybinding for hiding/unhiding Big Menu after it is launched. Take a look at .xbindkeysrc. DO NOT alter the command line, only alter the keybindings.


How do I make it look like I want?
To alter its "theme", the following parameters can be provided:
-e|E EXPANDERTYPE there are presently 17, defined as an integer in the range 0 to 16 inclusive
-i|I FONTSIZE
-r|R BORDERCOLOR colors should be specified in typical hex web-format i.e. "#rrggbb"
-b|B BACKGROUNDCOLOR
-f|F FOREGROUNDCOLOR
-l|L HIGHLIGHTCOLOR
-g|G GRADIENTCOLOR
-s|S SELECTIONCOLOR

To alter its menus, open menu/config/bigmenurc.xml in a text editor. The tag structure should be fairly apparent. Be sure to make a copy just in case you make a mistake. If there is a mistake in the XML file, Big Menu won't handle it elegantly. It will exit with an error and print a cryptic message. So be sure to make changes slowly and systematically.

Are you going to provide the source?
A the present time, no.

Can you make a PKGBUILD?
I've read through the PKGBUILD pages on the wiki, and I can't surmise where to even begin. Those pages seem geared for people who are Linux/Arch devs as opposed to just a guy who cobbled together some code to do what he wanted.

Why would I run software whose code isn't made available?
For those who are worried about security issues in regards to unreleased code and Java. You are welcome not to use the software as I assume no culpability for any damage incurred to your system through use of Big Menu. For the paranoid/daring I suggest you test it out in a sandboxed/virtualization environment.

Conclusion
I'm satisfied with how it works, functionally-speaking. The only things I can think to add are eye-candy, which is precisely what happened with the multitude of expanders I started coding. Things like gradient fills, or skinnable via images, etc. For now, that's a road I'm not looking to venture down as I don't know how deep that rabbit hole would go. If you have any problems/questions/concerns, feel free to add to the thread (also, bigmenu [-h|H] [-u|U]). I made this for myself, and I'm sharing it with the intent that there may be someone out there who was seeking something similar. Or perhaps, it will prompt a competent someone to take this idea and make it in C.

Themes
Ice: bigmenu -f "#005577" -b "#ccddff" -r "#004455"
Selection Gradient: bigmenu -g "#579be4"
Two-Tone Grey: bigmenu -r "#454545" -b "#efefef" -f "#454545" -l "#454545" -s "#efefef"
Office Subtle: bigmenu -r "#9e9e9e" -b "#ffffff" -f "#5e5e5e" -l "#579be4" -s "#e9ffff"
Office Contrast: bigmenu -r "#9e9997" -b "#3e4955" -f "#dbdeda" -l "#79b1ff" -s "#2f3944"
Pro Grey: bigmenu -r "#464b4d" -b "#303536" -f "#d1d1d1" -l "#626262" -s "#e8e8e8"
Smokey: bigmenu -r "#454545" -b "#000000" -f "#ffffff" -l "#454545" -s "#ffffff"
OS Classic: bigmenu -r "#808080" -b "#d4d0c8" -f "#000000" -l "#0a246a" -s "#ffffff"
USA: bigmenu -r "#000083" -b "#ffffff" -f "#000000" -l "#ff0000" -s "#ffffff"
Orange Selection Gradient: bigmenu -l "#ff3b00" -g "#ff6200"

Updates
2013.04.08.01 - bigmenu.tar.bz
Added a new parameter to the command line: -g|G GRADIENT, specifies a secondary color to use along with the highlight parameter (-l|L) to create a linear gradient on highlighted menu items.

Link to the imgur gallery.

This post has been edited by grimpirate: 08 May 2013 - 03:00 PM


Is This A Good Question/Topic? 0
  • +

Replies To: Big Menu - an Linux equivalent "Start" menu

#2 grimpirate  Icon User is offline

  • Pirate King
  • member icon

Reputation: 149
  • View blog
  • Posts: 714
  • Joined: 03-August 06

Re: Big Menu - an Linux equivalent "Start" menu

Posted 16 October 2013 - 02:46 PM

Update

What does it look like?
It no longer looks as such, as the current renewed code makes use of the default Java Metal theme. However, the idea/functionality is the same. Video demo.

So what is it?
For an equivalent, take a look at mygtkmenu.

What are the dependencies?
The java runtime environment.

What's the setup?
Download jrootmenu.tar.bz2 (18.85KB), and extract the contents. The help.html file is located in jrootmenu/menu/root/docs/ and explains pretty much everything, or it should anyhow.

Are you going to provide the source?
The source is included, though it is not heavily commented. The license provides for the modification of the source code but not for (re)distribution of changes or even the original code, therefore, no forking.

This post has been edited by grimpirate: 21 October 2013 - 08:25 PM

Was This Post Helpful? 0
  • +
  • -

#3 grimpirate  Icon User is offline

  • Pirate King
  • member icon

Reputation: 149
  • View blog
  • Posts: 714
  • Joined: 03-August 06

Re: Big Menu - an Linux equivalent "Start" menu

Posted 03 November 2013 - 12:15 PM

jrootmenu.tar.bz2 (171.8 KB)

3 November 2013
  • Additional expander icons
  • Allows for creation of Yes/No dialogs
  • New sample themes in the configuration file


6 November 2013
  • Custom icon support
  • XML configuration file's structure altered slightly


I had an issue while testing alternate themes wherein I meant to restart JRootMenu but instead inadvertently selected the option to restart my system. So as to avoid the same mistake twice, I figured the user should be prompted before executing a command if it happens to be a particularly important one (logout/restart/shutdown for instance). The way this is accomplished from the configuration file is by adding a caption="" attribute to the <Shell> element. Thus, when a user clicks that particular item in the menu, a dialog will appear with the user-defined message asking if he wishes to proceed with the action or decline it. Here's an example from the configuration file:
<Shell caption="Shut down computer?">sudo systemctl poweroff</Shell>

Screenshot of newest features
Posted Image

This post has been edited by grimpirate: 06 November 2013 - 09:26 PM

Was This Post Helpful? 0
  • +
  • -

Page 1 of 1