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
- 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
-r|R BORDERCOLOR colors should be specified in typical hex web-format i.e. "#rrggbb"
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.
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.
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"
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