# # == Tags # # Tags are generally used in subtle for placement of windows. This placement is # strict, that means that - aside from other tiling window managers - windows # must have a matching tag to be on a certain view. This also includes that # windows that are started on a certain view will not automatically be placed # there. # # There are to ways to define a tag: # # === Simple # # The simple way just needs a name and a regular expression to just handle the # placement: # # Example: # # tag "terms", "terms" # # === Extended # # Additionally tags can do a lot more then just control the placement - they # also have properties than can define and control some aspects of a window # like the default gravity or the default screen per view. # # Example: # # tag "terms" do # match "xterm|[u]?rxvt" # gravity :center # end # # === Default # # Whenever a window has no tag it will get the default tag and be placed on the # default view. The default view can either be set by the user with adding the # default tag to a view by choice or otherwise the first defined view will be # chosen automatically. # # === Properties # # [*borderless*] This property enables the borderless mode for tagged clients. # # Example: borderless true # Links: http://subforge.org/projects/subtle/wiki/Tagging#Borderless # http://subforge.org/projects/subtle/wiki/Clients#Borderless # # [*fixed*] This property enables the fixed mode for tagged clients. # # Example: fixed true # Links: http://subforge.org/projects/subtle/wiki/Tagging#Fixed # http://subforge.org/projects/subtle/wiki/Clients#Fixed # # [*float*] This property enables the float mode for tagged clients. # # Example: float true # Links: http://subforge.org/projects/subtle/wiki/Tagging#Float # http://subforge.org/projects/subtle/wiki/Clients#Float # # [*full*] This property enables the fullscreen mode for tagged clients. # # Example: full true # Links: http://subforge.org/projects/subtle/wiki/Tagging#Fullscreen # http://subforge.org/projects/subtle/wiki/Clients#Fullscreen # # [*geometry*] This property sets a certain geometry as well as floating mode # to the tagged client, but only on views that have this tag too. # It expects an array with x, y, width and height values whereas # width and height must be >0. # # Example: geometry [100, 100, 50, 50] # Link: http://subforge.org/projects/subtle/wiki/Tagging#Geometry # # [*gravity*] This property sets a certain to gravity to the tagged client, # but only on views that have this tag too. # # Example: gravity :center # Link: http://subforge.org/projects/subtle/wiki/Tagging#Gravity # # [*match*] This property adds matching patterns to a tag, a tag can have # more than one. Matching works either via plaintext, regex # (see man regex(7)) or window id. Per default tags will only # match the WM_NAME and the WM_CLASS portion of a client, this # can be changed with following possible values: # # [*:name*] Match the WM_NAME # [*:instance*] Match the first (instance) part from WM_CLASS # [*:class*] Match the second (class) part from WM_CLASS # [*:role*] Match the window role # [*:type*] Match the window type # # Examples: match instance: "urxvt" # match [:role, :class] => "test" # match "[xa]+term" # Link: http://subforge.org/projects/subtle/wiki/Tagging#Match # # [*position*] Similar to the geometry property, this property just sets the # x/y coordinates of the tagged client, but only on views that # have this tag, too. It expects an array with x and y values. # # Example: position [ 10, 10 ] # Link: http://subforge.org/projects/subtle/wiki/Tagging#Position # # [*resize*] This property enables the float mode for tagged clients. When set, # subtle honors size hints, that define various size constraints like # sizes for columns and rows of a terminal. # # Example: resize true # Links: http://subforge.org/projects/subtle/wiki/Tagging#Resize # http://subforge.org/projects/subtle/wiki/Clients#Resize # # [*stick*] This property enables the stick mode for tagged clients. When set, # clients are visible on all views, even when they don't have matching # tags. On multihead, sticky clients keep the screen they are assigned # on. # # Supported values are either true or a number to specify a screen. # # Example: stick true # stick 1 # Links: http://subforge.org/projects/subtle/wiki/Tagging#Stick # http://subforge.org/projects/subtle/wiki/Clients#Stick # # [*type*] This property sets the tagged client to be treated as a specific # window type though as the window sets the type itself. Following # types are possible: # # [*:desktop*] Treat as desktop window (_NET_WM_WINDOW_TYPE_DESKTOP) # Link: http://subforge.org/projects/subtle/wiki/Clients#Desktop # [*:dock*] Treat as dock window (_NET_WM_WINDOW_TYPE_DOCK) # Link: http://subforge.org/projects/subtle/wiki/Clients#Dock # [*:toolbar*] Treat as toolbar windows (_NET_WM_WINDOW_TYPE_TOOLBAR) # Link: http://subforge.org/projects/subtle/wiki/Clients#Toolbar # [*:splash*] Treat as splash window (_NET_WM_WINDOW_TYPE_SPLASH) # Link: http://subforge.org/projects/subtle/wiki/Clients#Splash # [*:dialog*] Treat as dialog window (_NET_WM_WINDOW_TYPE_DIALOG) # Link: http://subforge.org/projects/subtle/wiki/Clients#Dialog # # Example: type :desktop # Link: http://subforge.org/projects/subtle/wiki/Tagging#Type # # [*urgent*] This property enables the urgent mode for tagged clients. When set, # subtle automatically sets this client to urgent. # # Example: urgent true # Links: http://subforge.org/projects/subtle/wiki/Tagging#Stick # http://subforge.org/projects/subtle/wiki/Clients#Urgent # # [*zaphod*] This property enables the zaphod mode for tagged clients. When set, # the client spans across all connected screens. # # Example: zaphod true # Links: http://subforge.org/projects/subtle/wiki/Tagging#Zaphod # http://subforge.org/projects/subtle/wiki/Clients#Zaphod # # # === Link # # http://subforge.org/projects/subtle/wiki/Tagging # # Simple tags tag "terms" do match "xterm|[u]?rxvt" gravity :left60 end tag "browser", "uzbl|opera|firefox|navigator" tag "feh", "feh" # Placement tag "editor" do match "[g]?vim" resize true end tag "fixed" do geometry [ 10, 10, 100, 100 ] stick true end tag "resize" do match "sakura|gvim" resize true end tag "gravity" do gravity :center end # Modes tag "stick" do match "mplayer" float true stick true end tag "float" do match "display" float true end # Gimp tag "gimp_image" do match :role => "gimp-image-window" gravity :gimp_image end tag "gimp_toolbox" do match :role => "gimp-toolbox$" gravity :gimp_toolbox end tag "gimp_dock" do match :role => "gimp-dock" gravity :gimp_dock end tag "gimp_scum" do match role: "gimp-.*|screenshot" end