ICEWMHINT(1)

πŸ’… ICEWMHINT(1) β€” like, the manual page, but make it make sense

okay so real talk, this is the icewmhint(1) page from the User Commands section, and I'm gonna walk you through it like we're texting at 2am because honestly? it's giving "small utility, big power" and I need you to get it. πŸŽ€


✨ NAME ✨

icewmhint β€” sets IceWM hints by window class and instance. that's the whole thing bestie, that's the assignment 🫢


🌸 SYNOPSIS 🌸

icewmhint CLASS.INSTANCE OPTION VALUE ...

πŸ¦‹ DESCRIPTION πŸ¦‹

so icewmhint is this little utility for passing IceWM hints along to icewm(1). and the way it works is genuinely iconic: icewm holds onto those hints for the first X11 client that gets started after that. periodt. πŸ’…

and listen, they take precedence over hints from the icewm-winoptions(1) file. like, they win. main character energy fr fr.

a hint is a triplet β€” say it with me β€” a class.instance, an IceWM winoption, and its value. and you can pass multiple hints in a single invocation of icewmhint. multiple!! we love an efficient queen. ✨

how do they actually travel? over the "_ICEWM_WINOPTHINT" property on the root window. icewmhint appends hints to this property, and icewm removes the property after it reads it. teamwork, no cap. 🀝


πŸ’– OPTIONS πŸ’–

icewmhint recognizes the following options:

πŸŽ€ COMMAND OPTIONS πŸŽ€

only one command option can be specified per invocation. and if you specify no command option at all? then argument parsing and processing is performed. iykyk.

  • -h, --help β€” prints a brief usage statement to stdout and exits.
  • -V, --version β€” prints the program version to stdout and exits.
  • -C, --copying β€” prints copying permissions to stdout for the program and exits.

⭐ GENERAL OPTIONS ⭐

  • -d, --display=DISPLAY β€” specifies the X11 DISPLAY. if you don't specify it, it defaults to $DISPLAY.

🌈 ARGUMENTS 🌈

these next three arguments are required for each hint. all three. every time. no skipping πŸ™ˆ

  • CLASS.INSTANCE β€” specifies the ICCCM 2.0 WM_CLASS property, in terms of resource class and resource name separated by a period ("."). for example: "XTerm.xterm". and guess what, just the resource class or resource name without a dot is also acceptable β€” like "XTerm" or "xterm". flexible icon behavior πŸ’…
  • OPTION β€” specifies the OPTION to affect.
  • VALUE β€” gives the VALUE for the option.

and yeah, multiple hints can be given. go off. πŸŽ‰


🧚 GENERAL OPTION ARGUMENTS 🧚

  • icon NAME β€” specifies the icon name for windows of CLASS.INSTANCE. NAME should be the name of the icon, and icewm(1) will use its usual method to locate the icon. the default is the name provided by window manager hints.
  • workspace WORKSPACE β€” specifies the workspace on which a window of CLASS.INSTANCE will be initially placed. the default is the current workspace. WORKSPACE should be a workspace number counting from 0 (yes, from zero, they're programmers).
  • geometry GEOMETRY β€” specifies the initial geometry for windows of the given CLASS.INSTANCE. GEOMETRY must be a geometry that can be parsed by XParseGeometry(3). the default is the geometry provided by window manager hints.
  • order NUMBER β€” the sorting order of task buttons and tray icons. the default value is zero. increasing positive values go farther right, while decreasing negative values go farther left. the order option applies to the task pane, the tray pane and the system tray. so like, it's a whole vibe across three panes 🫢
  • opacity NUMBER β€” sets the _NET_WM_WINDOW_OPACITY property if NUMBER is a value between 1 and 100. NUMBER is interpreted as percentage of maximum opaqueness.
  • layer {LAYER|NUMBER} β€” specifies the layer to be associated with a CLASS.INSTANCE. the default is the "Normal" layer. VALUE is either a layer number or a symbolic layer name. the symbolic layer names are:
    • Desktop (0) β€” Desktop window.
    • Below (2) β€” Below the default layer.
    • Normal (4) β€” Default layer for windows.
    • OnTop (6) β€” Above the default layer.
    • Dock (8) β€” Docked windows at edge of screen.
    • AboveDock (10) β€” Windows above the dock.
    • Menu (12) β€” The layer for menu's.
    • Fullscreen (14) β€” When fullscreen and focused.
    • AboveAll (15) β€” Always above anything.
  • tray {Ignore|Minimized|Exclusive|NUMBER} β€” specifies the tray handling to be applied to windows with CLASS.INSTANCE. this option is specific to icewm(1) and sets the "_ICEWM_TRAY" property associated with the window. the default is "Ignore". VALUE can be an option number or a symbolic name as follows:
    • Ignore (0) β€” only in task list.
    • Minimized (1) β€” icon in tray, task list unminimized.
    • Exclusive (2) β€” only in tray, not in task list.
  • frame label (default: none) β€” all windows with the same frame label become tabs in a single frame. tabs!! like a browser but make it window manager πŸ’€βœ¨

πŸ’œ FUNCTION OPTION ARGUMENTS πŸ’œ

these specify which functions are disabled or enabled (0/1) for windows with CLASS.INSTANCE. every function has a default value of enabled (1) unless overridden by the application. the Motif-like functions are as follows, and yes I'm listing every single one because they all matter:

  • fClose β€” can be closed: (default: 1).
  • fHide β€” can be hidden: (default: 1).
  • fMaximize β€” can be maximized: (default: 1).
  • fMinimize β€” can be minimized: (default: 1).
  • fMove β€” can be moved: (default: 1).
  • fResize β€” can be resized: (default: 1).
  • fRollup β€” can be shaded: (default: 1).

πŸ”₯ DECOR OPTION ARGUMENTS πŸ”₯

these specify which decorations are disabled or enabled (0/1) for windows with CLASS.INSTANCE. all decor options have a default value of enabled (1) unless overridden by the application. the Motif-like decorations are:

  • dBorder β€” has border: (default: 1).
  • dClose β€” has close button: (default: 1).
  • dDepth β€” has depth button: (default: 1).
  • dHide β€” has hide button: (default: 1).
  • dMaximize β€” has maximize button: (default: 1).
  • dMinimize β€” has minimize button: (default: 1).
  • dResize β€” has resize grips: (default: 1).
  • dRollup β€” has shade button: (default: 1).
  • dSysMenu β€” has window menu: (default: 1).
  • dTitleBar β€” has title bar: (default: 1).

πŸ‘‘ FEATURE OPTION ARGUMENTS πŸ‘‘

these specify which advanced features are enabled/disabled (1/0) for windows with CLASS.INSTANCE. heads up bestie: all advanced features have a default value of disabled (0) unless overridden by the application. note the flip from the ones above, it's giving plot twist 😭

  • allWorkspaces β€” on all workspaces.
  • appTakesFocus β€” let application take focus.
  • doNotCover β€” limits workspace if sticky.
  • doNotFocus β€” do not focus.
  • doNotManage β€” do not manage.
  • forcedClose β€” no close dialog.
  • fullKeys β€” provided more keys.
  • ignoreNoFocusHint β€” focus even no-input.
  • ignorePagerPreview β€” do not show in pager preview.
  • ignorePositionHint β€” place automatically.
  • ignoreQuickSwitch β€” not on quick switch.
  • ignoreTaskBar β€” not on task bar.
  • ignoreUrgentHint β€” ignore urgent hints.
  • ignoreWinList β€” not on window list.
  • ignoreActivationMessages β€” only user can focus window.
  • ignoreOverrideRedirect β€” ignore the override redirect flag.
  • ignoreUserTime: β€” ignore wm_user_time and startup_id.
  • noFocusOnAppRaise β€” no focus on raise.
  • noFocusOnMap β€” do not focus when mapped.
  • noIgnoreTaskBar β€” on task bar.
  • startClose β€” close the window immediately.
  • startFullscreen β€” start full screen.
  • startMaximized β€” start maximized.
  • startMaximizedHorz β€” start maximized horizontal.
  • startMaximizedVert β€” start maximized vertical.
  • startMinimized β€” start minimized.

🌟 EXAMPLE 🌟

here's how to preload an invisible background process of chromium on the fourth workspace which is only visible on the Window List. copy it exactly, it's perfect:

# Here is how to preload an invisible background process of chromium
# on the fourth workspace which is only visible on the Window List.

icewmhint Chromium-browser startMinimized 1 \
          Chromium-browser workspace 3 \
          Chromium-browser ignorePagerPreview 1 \
          Chromium-browser ignorePositionHint 1 \
          Chromium-browser ignoreTaskBar 1 \
          Chromium-browser ignoreQuickSwitch 1 \
          Chromium-browser ignoreUrgentHint 1 \
          Chromium-browser noFocusOnAppRaise 1
chromium

πŸ“ BUGS πŸ“

please report bugs at <https://github.com/ice-wm/icewm/issues>. we love a feedback loop 🫢


πŸ’€ AUTHOR πŸ’€

Brian Bidulock <mailto:bidulock@openss7.org>.

see --copying for full copyright notice and copying permissions.


🧊 LICENSE 🧊

IceWM is licensed under the GNU Library General Public License. see the COPYING file in the distribution or use the --copying flag to display copying permissions.


ok that's literally the whole page, you're so welcome, now go set some hints and slay πŸ’…βœ¨

signing off from the icewm 4.1.0 era, dated 2026-08-06 β€” ICEWMHINT(1), forever in our hearts πŸŽ€

πŸ“¦ where this page comes from