Different icons on different virtual desktops?

New to FVWM. Have Googled unsuccessfully (and also searched this forum) trying to find an answer to whether different icons (application and folder shortcuts) can be placed on different virtual desktops; or if not, if there is some other means of enabling similar functionality, i.e. launchers that differ by desktop.

You need to be a bit more precise on what exactly you are trying to achieve.

If you talk about desktop icons in the same fashion than nautilus does in gnome, then beware that fvwm don’t support this functionality by itself. So, you need to look into idesk or something similar. You could emulate something similar using transparents FvwmButtons, and putting them in Layer 0. Look into “man FvwmButtons” and search for “STYLE COMMAND” in “man fvwm” if you want to know more about that.

If you mean button panels/launchers, the solution is FvwmButtons as well. You can create as much FvwmButtons as you want, each one with a different name. And put them in any place you like. As long as you dont Style them with Sticky, they will only reside in one page.

If you talk about the tipical fvwm icons (those appear when you Iconify an application, kind of “minimize”), they will reside in the page you minimize them, or in all of them depending on how you style the window, though I am not totally sure about this, since I use no desktop icons at all (no sticky settings, Sticky, StickyAcrossDesks, StickyAcrossPages or OnlyStickyAcrossDesks). The descriptions for those are in “man fvwm”.

– Jesús Guerrero

I guess I mean icons as supported by idesk - but I want to distribute them across different virtual desktops, rather than have an icon that appears on one desktop automatically show up on all other desktops.

I don’t know if idesk can handle different icon sets for different desktops natively. You would need to read the idesk documentations or ask into their mailing lists or whatever support channel they have.

If it can’t, a workaround could be to use FvwmEvents (new_page/new_desk, see FvwmEvent man page) to reload idesk with a different configuration each time you enter a new page/desktop.

You’d need to create a function to check the fvwm variables $[desk.n], $[page.nx] and $[page.ny] to know what iconset is going to be in the new page/desktop you entered. I don’t know how could we handle that on idesk. If it can have multible config files, then it’s trivial. If not, the function would need to maintain those files and rename them or whatever.

I am also new to FVMW. I have got here searching for the same functionality: to be able to have desktop/pages that differ in the applications and folder shortcuts they offer (I have been a WindowMaker user for a while). I use my desktop/pages as different workspaces and I need different shortcuts there (configuration/mail/work/web/konsole/games).

I have been able to achieve this using fluxbox + fluxspace + rox (or fluxbox + fluxspace + idesk), but the mix of applications made it difficult to clearly define what was going on. Fluxspace allows to have different rox/idesk for each desktop/page.

From the documentation I have read so far, and this post confirms it, I believe this can be achieved with FvwmButtons: you could have different buttons in each page with sortcuts to folders/applications.

I plan to work in that direction when I manage to get a better understanding of fvwm language (it has been a few days and I am a bit lost :confused:).

My question: how do you tell FvwmButtons to be in a particular Desktop/page? I have looked at the FvwmButtons man page and I could not find the trick. I have been able to start applications in a particular desktop/page with:

Style Konsole StartsOnPage 0 1 1

Nevertheless I still cannot figure how to do the same with FvwmButtons.

Congratulations for this marvellous WindowManager! I love it (despite I have just managed to get the window raised when I click onto it with MouseFocusClickRaises :o ).


  • UPDATE *

I have been testing and I believe I will manage to have different FvwmButtons in different pages by the same style instruction. For example:

Module FvwmButtons Main Style Main StartsOnPage 0 1 1

The more I play with fvwm the more I like it.


Yes, that’s exactly how it works. Most modules allow for the use of aliases so you can make multiple instances of them and apply different styles to these different instances. You should however make sure that you use an unique alias for your module otherwise styles intended for other applications might be applied to it if they share the same name/class…

Swap those two around, would you?

– Thomas Adam

Thanks for the tip! I was using a FvwmButtons called “konsole” and the style was being applied to konsole’s application window.

Thanks for mentioning it. I believe I got the right format:

[code]Style Confi StartsOnPage 0 0 0,!Button 1,!Button 2,!Button 4,!Borders,WindowListSkip
Style Internet StartsOnPage 0 0 1,!Button 1,!Button 2,!Button 4,!Borders,WindowListSkip
Style Consola StartsOnPage 0 1 1,!Button 1,!Button 2,!Button 4,!Borders,WindowListSkip
Style Jocs StartsOnPage 0 2 2,!Button 1,!Button 2,!Button 4,!Borders,WindowListSkip

DestroyModuleConfig Confi: *
Module FvwmButtons Confi
*Confi: Rows 3
*Confi: Columns 2
*Confi: Geometry 60x90+0+40
*Confi: Back rgb:ff/ff/99
*Confi: (1x1, Icon konqueror.png, Action(Mouse 1) ‘Exec konqueror --profile filemanagement’)
*Confi: (1x1)
*Confi: (1x1)
*Confi: (1x1)
*Confi: (1x1)

DestroyModuleInternetg Internet: *
Module FvwmButtons Internet
… and so on …[/code]


It’s good practise to define the module alias before you start it, as in:

DestroyModuleConfig Confi:*
*Confi: ...
*Confi: ....

Module FvwmButtons Confi

You mean:

DestroyModuleConfig Internet:*

– Thomas Adam

I have managed to have different FvwmButtons on each page, but I now realised that I can have different menus on each page. This is more than I expected…!!!

On each desktop/page, I have a tear-off menu with the most used applications on that page, with a sub-menu with all the applications I could use in that page. The most-used-menu uses icons (without text), so I get something similar to FvwmButtons.

Here is what I have done, if it is of interest to anyone:
1.- I activate the menus I am interested on inside StartFunction

[code]AddToFunc StartFunction

  • I Menu Oficina root 0p 0p TearOffImmediately
  • I Menu Internet root 0p 0p TearOffImmediately[/code]
    2.- The definition of the menus:

[code]AddToMenu Internet

  • “Internet” Title
  • %konqueror.png% Exec konqueror &
  • %/usr/share/icewm/icons/iceicons/firefox_16x16.xpm% Exec firefox &
  • %folder-open.xpm% Popup AltresInternet[/code]
    3.- The style of the menus, defining in which desktop/page they should be.

Style Oficina UsePPosition,StartsOnPage 0 2 0,!Button 1,!Button 2,!Borders,WindowListSkip Style Internet UsePPosition,StartsOnPage 0 0 1,!Button 1,!Button 2,!Borders,WindowListSkip


Now that I have different menus on each page, I would also like to have different styles for each menu. I have a menu called “Ordina”:

[code]AddToMenu Ordina

  • “5_Ordina” Title
  • %konsole.png% Exec konsole &
  • %folder-open.xpm% Popup SistAlt[/code]

The style of the menu-window “ordina” is:

Style 5_Ordina		UsePPosition,StartsOnPage 0 1 1,!Button 1,!Button 2,!Borders,WindowListSkip,Colorset 44

I would also like to change the background of the menu “Ordina”. This is where I get lost. My default menu style is:

MenuStyle * MenuColorset 10

The menu “Ordina” is a tear off menu created by the StartFunction and it gets the default menu style:

[code]AddToFunc StartFunction

  • I Menu Ordina root 0p 0p TearOffImmediately[/code]

I can change the default menu style on the fvwm console, but not the style of the tear-off menus (as they are already created).

I would like to have all my different menus with different styles. I have tried without success different (embarrassing) syntaxes of the MenuStyle command like: “MenuStyle Ordina MenuColorset 44”, “MenuStyle Page5 MenuColorset 44/ChangeMenuStyle Ordina Page5”,…

What would be the best way of doing this?


If you want to change the style of a tearoff menu:

Style fvwm_menu ....

If you want to assign different styles to different menus which aren’t tear-offs:

CopyMenuStyle * mymenu
ChangeMenuStyle mymenu mymenu
MenuStyle mymenu ActiveColorset 2, ....

– Thomas Adam

I believe this only changes the style of the window that has swallowed the tear-off menu. For example, following the previous post, this will not change the background colorset of the tearoff menu:

Style 5_Ordina          UsePPosition,StartsOnPage 0 1 1,!Button 1,!Button 2,!Borders,WindowListSkip,Colorset 44,MenuColorset 44

I assume I should give the style to the menu before it tears off:

CopyMenuStyle * Page5 MenuStyle Page5 MenuColorset 44 ChangeMenuStyle Page5 Ordina

The previous code works when in the StartFunction that tears-off the menu:

[code]AddToFunc StartFunction

  • I CopyMenuStyle * Page5
  • I MenuStyle Page5 MenuColorset 44
  • I ChangeMenuStyle Page5 Ordina
  • I Menu Ordina root 0p 0p TearOffImmediately[/code]

It works now…!!! :smiley: :smiley: :smiley: Is this the easy way of doing it?

Thanks very much…!!!

(I am getting addicted to this… :laughing: )