GoodStuff(1)

โœจ GoodStuff(1) โ€” General Commands Manual โœจ

Okay bestie, this is the manual page for GoodStuff(1) ๐ŸŽ€ It's the FVWM button panel module and it is absolutely iconic ๐Ÿ’…


๐Ÿ’– NAME ๐Ÿ’–

GoodStuff - the FVWM button panel module ๐Ÿฆ‹

๐Ÿงš SYNOPSIS ๐Ÿงš

GoodStuff

GoodStuff gets spawned by fvwm, so typing it in the command line is a no-go ๐Ÿ™ˆ

Heads up: no command line invocation will work. fvwm is the one that starts it, so don't try to run it yourself ๐Ÿ’€

๐ŸŒธ DESCRIPTION ๐ŸŒธ

Okay so, the GoodStuff module gives you a button panel that sits right on the X terminal's root window โœจ You can press the buttons whenever you want, and each one tells the window manager to run a command you picked. It's giving main character energy ๐Ÿ‘‘

GoodStuff only works when fvwm is your window manager, so make sure that's the vibe you're going for ๐Ÿซถ

The panel can be any layout or size you dream up, and the icons can be monochrome or colour. Whatever action a button stands for can have its own look ๐ŸŒˆ

๐ŸŽ€ COPYRIGHTS ๐ŸŽ€

The GoodStuff program, and the idea for hooking this module up to the Window Manager, are both original work by Robert Nation ๐Ÿ’œ

Copyright 1993, Robert Nation. There are no guarantees or warranties of any kind, implied or otherwise, so use this program at your own risk ๐Ÿ˜ญ You're allowed to use it for any purpose, as long as the copyright stays intact.

๐Ÿฆ‹ INITIALIZATION ๐Ÿฆ‹

When GoodStuff starts up, it goes hunting for a configuration file that describes the panel's geometry, colours, icons, and actions โœจ The format of that file gets covered later on. It's the same configuration file that fvwm used when it started up, so everyone's on the same page ๐Ÿ“–

Here's a fun trick ๐Ÿ“ If you make a link to the GoodStuff executable with a different name, like ln -s GoodStuff TermStuff, then a module called TermStuff will start up with a totally different configuration than GoodStuff. You just swap the keywords Good??? for Term??? in your config. That's how you get multiple button-bars going at once, and it's so good โœจ

๐ŸŒˆ INVOCATION ๐ŸŒˆ

To invoke GoodStuff, pop the line 'Module GoodStuff' into your .fvwmrc file ๐Ÿ’… You can put it on its own line if you want GoodStuff to start during fvwm's initialization. Or you can attach it to a menu, a mouse button, or a keystroke so it shows up later, whenever you want ๐Ÿซถ

Fvwm searches the directory listed in the ModulePath configuration option to find GoodStuff, so make sure that path is set right ๐Ÿ”ฅ

๐ŸŒŸ CONFIGURATION OPTIONS ๐ŸŒŸ

The following options can be placed in the .fvwmrc file ๐Ÿ’–

  • *GoodStuffGeometry geometry โ€” This sets where the GoodStuff window lives and/or how big it is. If you don't give it a size, GoodStuff will auto-size itself in a reasonable way โœจ The geometry has to be a standard X11 window geometry specification.
  • *GoodStuffFont font โ€” Picks the font used to label the buttons ๐ŸŽ€
  • *GoodStuffRows rows โ€” Sets how many rows of buttons get made. If you skip this, you get 2 rows ๐ŸŒธ
  • *GoodStuffColumns columns โ€” Sets how many columns of buttons get made. If you skip this, the column count is set to the number of buttons requested, divided by the number of rows ๐Ÿงฎ
    • If you specify both rows and columns but they don't add up to as many buttons as you've defined, then your columns setting gets ignored ๐Ÿ™ˆ
  • *GoodStuffFore color โ€” The colour for the button label text and monochrome icons ๐Ÿ–ค
  • *GoodStuffBack color โ€” The colour for the buttons themselves ๐Ÿ’œ
  • *GoodStuff[(w x h)] label icon command โ€” This is the big one ๐Ÿ‘‘ It sets up a window manager built-in command, the kind described in the fvwm man page, that runs when a button gets pressed.
    • The label is the text written on the button.
    • The icon is either an X11 bitmap file or an XPM colour icon file. GoodStuff hunts through the path from the fvwm IconPath or PixmapPath configuration items to find it ๐Ÿ”
    • The optional (w x h) makes the button w times the normal button width and h times the normal button height. Big buttons, big vibes ๐Ÿฆ‹
    • If label is "-", then no label gets displayed on the button.

If command is an fvwm Exec command, the button stays pushed in until a window whose name or class matches the quoted part of the command shows up ๐ŸŒˆ This is there to give the user visual feedback that the action they asked for is actually happening. If the quoted part has no characters in it, the button pops right back out.

Tea spill: users can keep pressing the button and re-running the command, even when it looks "pressed in." Be careful out there ๐Ÿ’€

GoodStuff also has one extra trick on top of the fvwm built-in commands โœจ If you write something like *GoodStuff junk clock.xpm Swallow "Clock" rclock &, GoodStuff spawns an rclock process, grabs the first window whose name or resource is "Clock", and shows it right in the button-bar ๐Ÿ•ฐ๏ธ This is perfect for stuff like xclock, xbiff, and xload. You can swallow modules too, by writing SwallowModule instead of "swallow".

NOTE, very important: if you use xclock for this, you'll want to specify xclock -padding 0 ๐Ÿ™ˆ

๐Ÿ“ SAMPLE CONFIGURATION ๐Ÿ“

These are excerpts from a .fvwmrc file, showing the GoodStuff initialization commands ๐Ÿงš

##############################################################
# Load any modules which should be started during
# fvwm initialization
ModulePath /usr/lib/fvwm:/usr/bin/X11
Module GoodStuff

# Make goodstuff title-bar-less, sticky, and give it an icon
NoTitle GoodStuff
Sticky GoodStuff
Icon "GoodStuff"    toolbox.xpm

##############################################################
##############################################################
#Definitions used by the modules
*GoodStuffFore Black
*GoodStuffBack #908090

*GoodStuffGeometry -135-5
*GoodStuffRows 1
*GoodStuffFont -adobe-helvetica-medium-r-*-*-12-*-*-*-*-*-*-*

*GoodStuff Resize  resize.xpm  Resize
*GoodStuff Move    arrows2.xpm Move
*GoodStuff Lower   Down        Lower
*GoodStuff Raise   Up          Raise
*GoodStuff Kill    bomb.xpm    Destroy

*GoodStuff Dopey   rterm.xpm   Exec "big_win" xterm -T big_win -geometry 80x50&
*GoodStuff Snoopy  rterm.xpm   Exec "small_win" xterm -T small_wi &
*GoodStuff Xcalc   rcalc.xpm   Exec "Calculator" xcalc &
*GoodStuff XMag    magnifying_glass2.xpm    Exec "xmag" xmag &
*GoodStuff Mail    mail2.xpm   Exec "xmh" xmh &
*GoodStuff(4x1) - whatever SwallowModule "Fvwm Pager" FvwmPager 0 3

The last line is a little tricky, so pay attention ๐Ÿ‘€ It spawns an FvwmPager module and captures it so it displays in a quadruple width button ๐Ÿคฏ Since "-" is used for the button label, the Pager gets resized to be as big as it can possibly be within the button's borders. And whatever? That's a non-existent icon file, so GoodStuff just ignores it ๐Ÿ’…

๐Ÿ‘‘ AUTHOR ๐Ÿ‘‘

Robert Nation ๐Ÿ’–


Thanks for reading, bestie ๐Ÿซถ This page came from the 3rd Berkeley Distribution, dated Jan 28 1994, and it's all about GoodStuff(1) ๐ŸŒˆโœจ