FvwmPager(1)

🌸 FvwmPager(1) · Fvwm Modules 🌸

✨ NAME ✨

FvwmPager is the Fvwm Pager module πŸ’–

πŸŽ€ SYNOPSIS πŸŽ€

FvwmPager [ -transient ] [ name ] [ first desk [ last desk ] ]

Okay bestie, FvwmPager gets spawned by fvwm, so no command line invocation will work πŸ’€ Don't even try it πŸ™ˆ

All desks with numbers between first desk and last desk get displayed πŸ¦‹ If you leave out last desk, only first desk shows up. If you leave out both, the pager uses the current desk instead ✨ And if you put an asterisk * in place of first desk, the pager will always show the current desktop, even when you switch desks. Main character energy πŸ‘‘

Here are some example lines for your .fvwm2rc 🧚

Module FvwmPager 0 3

or

Module FvwmPager *

Or, if you want it in an fvwm pop-up menu πŸ’…

AddToMenu Module-Popup Modules Title
+ Audio        Module FvwmAudio
+ Auto         Module FvwmAuto 200
+ Buttons      Module FvwmButtons
+ Console      Module FvwmConsole
+ Ident        Module FvwmIdent
+ Banner       Module FvwmBanner
+ Pager        Module FvwmPager 0 3

or

+ Pager        Module FvwmPager *

Now the -transient option 🌈 If you start the pager with -transient, the pager closes the next time a button gets released. This only works if the pager window's style is sticky (check the fvwm man page for that). You should use the StaysOnTop style too 🫢

Heads up: -transient is only reliable when the pager window is sticky, so set that up first or it won't behave 😭

Here's an example πŸ“

Style FvwmPager Sticky, StaysOnTop
*FvwmPager: Rows       1
*FvwmPager: Columns    1
Mouse 3 R C Module FvwmPager -transient

With that in your .fvwm2rc, pressing control and button 3 on the root window pops the pager up right under your mouse, and the viewport moves along with the mouse as you go πŸ”₯

πŸ’– DESCRIPTION πŸ’–

The FvwmPager module gives you a tiny little view of the Fvwm desktops you listed on the command line πŸ¦‹ It's super useful as a reminder of where your active windows are. Pager windows wear the same color as their fvwm decorations, so it's giving cohesive 🌈

The pager can move your viewport into the current desktop, switch desktops, or move windows around πŸ’…

Pressing mouse button 1 in the pager moves your viewport to the page you picked on the desk you picked ✨ If you click button 1 in the desk-label area instead, you switch desks but don't change pages within the desk.

Dragging mouse button 2 on a miniature window drops that window wherever you release the button, and your viewport stays put 🧚 If you drag the window out of the pager and onto your actual desktop, a full-size image of it shows up so you can place it. There's no way to grab a full-size window and drag it into the pager, though 😭 Since some mice don't have button 2, the author added a workaround: hold modifier-1 (usually Alt) and drag with button 3 to move windows in the pager 🫢

Clicking mouse button 3 on a spot moves the viewport to that spot and switches desks if it needs to, but it won't snap the viewport to a page boundary πŸ¦‹ Dragging button 3 moves the viewport as you drag, but it won't switch desktops, even if your pointer wanders onto another desktop πŸ’œ

With the *FvwmPager: SloppyFocus option, focus follows your mouse. Whatever window the pointer is over gets focus while the pointer is inside the pager πŸ‘‘

When the pager is iconified, it turns into a fully functional pager for the current desk only 🌸 You can move windows and viewports around inside the pager's icon too. Make sure you don't have any lines like this in your .fvwm2rc files:

Icon "Fvwm Pager" whatever
Watch out: lines like the one above can mess with the iconified pager, so double-check your .fvwm2rc πŸ™ˆ

πŸ¦‹ COPYRIGHTS πŸ¦‹

The FvwmPager program, plus the concept for hooking this module up to the Window Manager, are all original work by Robert Nation πŸ‘‘

Copyright 1994, Robert Nation. No guarantees, warranties, or anything like that are provided or implied in any way whatsoever. Use this program at your own risk πŸ’€ You're allowed to use it for any purpose, as long as the copyright stays intact ✨


🧚 INITIALIZATION 🧚

During initialization, FvwmPager pulls its config info from fvwm's module configuration database (see fvwm(1), section MODULE COMMANDS) πŸ’–

Want several different pager setups? Pass an optional parameter, and FvwmPager uses that as its name instead 🌈 For example: Module FvwmPager OtherPager. OtherPager then reads only the lines in the config file that start with *OtherPager, and skips the lines that belong to FvwmPager. That way you can run multiple pager instances πŸŽ€

Note: the old way to get several configurations was to link the executable to another name, like this:

ln -s FvwmPager OtherPager

Honestly this might work, but this method is not supported 😭


πŸ”₯ KEYBOARD FOCUS CONTROL πŸ”₯

You can send keyboard focus to any window on the current desktop by clicking button 2 on its image in the pager πŸ’… The window doesn't have to be visible, but it does have to be on the current page.


πŸ“ INVOCATION πŸ“

The invocation method was already shown in the synopsis section 🫢

✨ CONFIGURATION OPTIONS ✨

  • *FvwmPager: Geometry geometry β€” πŸ“ Pins down the pager window's location and size, either fully or partly, using standard X11 notation. To keep the aspect ratio from getting squished, you might wanna leave out either the width or the height in your geometry spec. πŸ’…
  • *FvwmPager: Rows rows β€” Tells fvwm how many rows of desks to lay out in the pager window. 🌸
  • *FvwmPager: Columns columns β€” Tells fvwm how many columns of desks to lay out in the pager window. 🌈
  • *FvwmPager: IconGeometry geometry β€” Sets a size (optional) and a spot (optional) for the pager's icon window. FvwmPager has no easy way to figure out how tall the icon's label is, so if you use negative y-coordinates (which count from the bottom of the screen instead of the top), you've gotta make room for that label height yourself. πŸ™ˆ
  • *FvwmPager: StartIconic β€” Makes the pager start out iconified. πŸ¦‹
  • *FvwmPager: NoStartIconic β€” Makes the pager start normally. Super handy for undoing the StartIconic option. ✨
  • *FvwmPager: LabelsBelow β€” Has the pager draw desk labels below their desk. πŸ“
  • *FvwmPager: LabelsAbove β€” Has the pager draw desk labels above their desk. Useful for canceling the effect of LabelsBelow. 🫢
  • *FvwmPager: ShapeLabels β€” Hides the labels of every desk except the current one. This also turns off label hilighting. 🧚
  • *FvwmPager: NoShapeLabels β€” Shows the labels of all visible desks. Useful for undoing ShapeLabels. πŸ‘‘
  • *FvwmPager: Font font-name β€” Picks the font used to label the desktops. If font_name is "none", no desktop labels get shown. πŸŽ€
  • *FvwmPager: SmallFont font-name β€” Picks the font used to label window names in the pager. If you don't set this, the window labels get left out. Ngl, window labels seem pretty useless at desktop scales of 32 or greater. If font_name is "none", no window names get shown. πŸ™ˆ
  • *FvwmPager: Fore color β€” Sets the color for writing the desktop labels and drawing the page-grid lines. πŸ’œ
  • *FvwmPager: Back color β€” Sets the background color for the window. 🌸
  • *FvwmPager: Hilight color β€” The active page and desk label get highlighted with this background instead of the normal one. Main character energy. πŸ”₯
  • *FvwmPager: HilightPixmap pixmap β€” The active page gets highlighted with this background pattern instead of the normal one. πŸ¦‹
  • *FvwmPager: DeskHilight β€” Hilights the active page with the current hilight color or pixmap. Useful for undoing NoDeskHilight. ✨
  • *FvwmPager: NoDeskHilight β€” Don't hilight the active page. πŸ’€
  • *FvwmPager: WindowColors fore back hiFore hiBack β€” Changes the normal and highlight colors of the windows. fore and hiFore are the colors for the font inside the windows, and back and hiBack are what fill the windows. 🎨
  • *FvwmPager: WindowLabelFormat format β€” Sets a printf()-like format for the labels in the mini windows. The flags are %t, %i, %c, and %r, which stand for the window's title, icon title, class, or resource name, respectively. The default is "%i". 🧾
  • *FvwmPager: Label desk label β€” Gives the text label to desk desk (or the current desk, if desk is "*") in the pager window. This is so good for giving your desktops symbolic names, like this:
*FvwmPager: Label 1 Mail
*FvwmPager: Label 2 Maker
*FvwmPager: Label * Matlab
🚫 Heads up: there's currently a much better way to name desks globally (not just in FvwmPager), using the DesktopName command, so you shouldn't use this option anymore.
  • *FvwmPager: DeskColor desk color β€” Gives the color color to desk desk (or the current desk, if desk is "*") in the pager window. This replaces the background color for that particular desk. It only works when the pager is full sized. When it's iconified, the pager uses whatever color you set with *FvwmPager: Back. 🌈

TIP: Try using *FvwmPager: DeskColor together with FvwmCpp (or FvwmM4) and FvwmBacker to give your various desktops and their pager representations identical colors. Bestie, the matching is everything. πŸ’…

  • *FvwmPager: Pixmap pixmap β€” Uses pixmap as the background for the pager. πŸ–ΌοΈ
  • *FvwmPager: DeskPixmap desk pixmap β€” Assigns the pixmap to desk desk (or the current desk, if desk is "*") in the pager window. This replaces the background pixmap for that particular desk. ✨

TIP: Try using *FvwmPager: DeskPixmap together with FvwmCpp (or FvwmM4) and FvwmBacker to give your various desktops and their pager representations identical pixmaps. Same matching energy, different vibe. 🫢

  • *FvwmPager: DeskTopScale number β€” If you don't set the geometry, a desktop reduction factor gets used to work out the pager's size. Things in the pager window show up at 1/number of their actual size. πŸ“
  • *FvwmPager: MiniIcons β€” Lets the pager show a window's mini icon in the pager (if it has one) instead of the window's name. 🧸
  • *FvwmPager: MoveThreshold pixels β€” Sets how far the pointer has to move before a window being dragged with button 2 actually moves. The default is three pixels. If the pointer moves less than that, the window snaps back to where it started when you let go of the button. If pixels is less than zero, the default value is used. The MoveThreshold command in fvwm gets inherited by FvwmPager, but this option can override it. 🎯
  • *FvwmPager: SloppyFocus β€” With this option, you don't have to click into the mini window in the pager to give the real window focus. Just hovering over the window inside the pager is enough. ✨
⚠️ Note: this option interferes a little with the MouseFocus and SloppyFocus styles of fvwm. Sometimes, if you click into the pager window to change pages or desks and then move the pointer to a spot where a window on the new page will appear, that new window doesn't get the input focus. This can happen if you drag the pointer over one of the mini windows in the pager. There's nothing that can be done about this, except not using SloppyFocus in the pager. 😭
  • *FvwmPager: SolidSeparators β€” By default, the pages of the virtual desktop are separated by dashed lines in the pager window. This option makes FvwmPager use solid lines instead. πŸ–€
  • *FvwmPager: NoSeparators β€” Turns off the lines separating the pages of the virtual desktop. 🫧
  • *FvwmPager: Balloons [type] β€” Shows a balloon describing the window when the pointer moves into a window in the pager. The default format (the window's icon name) can be changed with BalloonStringFormat. If type is Pager, balloons only show up for an un-iconified pager. If type is Icon, balloons only show up for an iconified pager. If type is anything else (or null), balloons always show up. 🎈
  • *FvwmPager: BalloonFore color β€” Sets the color for the text in the balloon window. If you leave it out, it defaults to the foreground color of the window being described. 🩷
  • *FvwmPager: BalloonBack color β€” Sets the background color for the balloon window. If you leave it out, it defaults to the background color of the window being described. 🩡
  • *FvwmPager: BalloonFont font-name β€” Picks the font for the balloon text. Defaults to fixed. πŸ”€
  • *FvwmPager: BalloonBorderWidth number β€” Sets the width of the balloon window's border. Defaults to 1. πŸ–οΈ
  • *FvwmPager: BalloonBorderColor color β€” Sets the color of the balloon window's border. Defaults to black. πŸ–€
  • *FvwmPager: BalloonYOffset number β€” The balloon window gets positioned so it's horizontally centered against the pager window it's describing, and you can set its vertical position as an offset. Negative offsets of -n put it n pixels above the pager window, and positive offsets of +n put it n pixels below. Offsets of -1 and 1 put the balloon window right next to the original window with no gap. Offsets of 0 aren't allowed, because that would let you move directly from the pager window to the balloon window, which causes an event loop. πŸ” It defaults to +3. The offset flips its sign automatically when needed, so the balloon stays on the screen. 🫧
  • *FvwmPager: BalloonStringFormat format β€” Same as WindowLabelFormat. It just sets the string that shows up in the balloons. The default is "%i". 🧾
  • *FvwmPager: Colorset desk colorset β€” Tells the module to use colorset for desk. If you put an asterisk * in place of desk, the colorset gets used on all desks. 🌈
  • *FvwmPager: BalloonColorset desk colorset β€” Tells the module to use colorset for balloons on desk. If you put an asterisk * in place of desk, the colorset gets used on all desks. 🎈
  • *FvwmPager: HilightColorset desk colorset β€” Tells the module to use colorset for hilighting on desk. If you put an asterisk * in place of desk, the colorset gets used on all desks. ✨
  • *FvwmPager: WindowColorsets colorset activecolorset β€” Works just like WindowColors, but with colorsets. The shadow and hilight colors of the colorset only get used for the window borders if Window3DBorders is specified too. πŸŽ€
  • *FvwmPager: WindowBorderWidth n β€” Sets the width of the border around the mini windows. This also sets the minimum size of the mini windows to (2 * n + 1). The default is 1. πŸ“
  • *FvwmPager: Window3DBorders β€” Gives the mini windows 3D borders based on the mini window background. This option only works if WindowColorsets is specified. 🧊
  • *FvwmPager: UseSkipList β€” Tells FvwmPager to hide windows that use the WindowListSkip style. πŸ™ˆ

✨ AUTHOR ✨

okay so the main brains behind this bad boy are πŸ‘‘

  • Robert Nation πŸ’–, the OG creator
  • DeskColor patch πŸŽ€, contributed by Alan Wild
  • MiniIcons & WindowColors patch πŸ¦‹, contributed by Rob Whapham
  • Balloons patch 🌸, by Ric Lister <ric@giccs.georgetown.edu>
  • fvwm-workers 🫢, Dominik, Olivier, Hippo and others

bestie that's the whole crew 🌈✨ this page came from the 3rd Berkeley Distribution, version 2.7.0, dated 19 October 2022 πŸ’… ily, now go pager-hop your desktop πŸ§šπŸ’œ