Commit Graph

11 Commits

Author SHA1 Message Date
Mihir Lad
3b430ee962 dwm: Rename layout token from %layout% to %symbol%
This token name is more indicative of what the token will be replaced with.
2020-12-19 19:43:05 -05:00
Mihir Lad
02bd2e060d dwm: Add label-floating
This label is visible when the currently focused client is in floating mode and
detached from the layout. It uses the focused_state_change_event as well as the
focused_client_change_event to check if the focused client is floating and
updates m_is_floating accordingly which will enable/disbale the floating label
in the final output.

update_floating_label is called when the floating state of the client is not
known. The function queries dwm for the properties of the focused client and
sets m_is_floating accordingly.

This fixes issue #2.
2020-12-19 19:43:05 -05:00
Mihir Lad
f3047ab1e5 dwm: Add layout-reverse-scroll option
This option simply reverses the direction in which the scroll cycles through the
layouts.
2020-12-19 19:43:05 -05:00
Mihir Lad
a22b2ffcc3 dwm: Add layout scroll; rename settings
Rename settings and allow more flexible configuration by allowing the user to
enable click handlers for the tags and the layout label separately.

Add a scroll handler for the layout label so the user can scroll through the
available layouts. Enabling layout-scroll-wrap allows wrapping back to the
beginning/end of the array of available layouts.

next_layout and prev_layout take the address of a layout and returns the
next/previous layout in the m_layouts array if possible, wrapping if specified,
otherwise returns the same layout. This is used to for the layout scroll
handlers to cycle through layouts.
2020-12-19 19:43:05 -05:00
Mihir Lad
33a8226827 dwm: Rename label-state to label-tags
label-tags is more indicative of what the label represents.
2020-12-19 19:43:05 -05:00
Mihir Lad
bc16268d30 dwm: Add click handlers to label-layout
secondary-layout-symbol is the symbol of the layout to switch to when the layout
symbol is left-clicked. This symbol is used to look up the memory address of the
layout to set. The default is the monocle layout.

setlayoutsafe is the dwm command name for setting layouts. The argument is the
layout memory address. Left-clicking switches to the layout represented by
secondary-layout-symbol, and right-clicking switches to the previous layout
(specified by an argument of 0).

To keep track of the different layouts, the layouts are retrieved in the
constructor if the layout label is included and stored in m_layouts.
m_current_layout is updated with the address of the current layout.
m_default_layout is updated in the constructor to the first layout in the array
which is the default layout in dwm. m_secondary_layout is updated to the address
of the layout identified by secondary-layout-symbol.

The builder adds click handlers (if layout label is included) to the layout
symbol as described above. Left-clicking toggles between the secondary layout
and the default layout. Right-clicking toggles between the previous layout and
the current layout.

find_layout are a pair of functions for finding a layout by address or symbol
from the m_layouts array.
2020-12-19 19:43:05 -05:00
Mihir Lad
a30a9b1e1b dwm: Replace pin-tags with label-empty
If pin-tags is set, there is no format defined for tags that are not occupied.
However defining a format for unoccupied tags makes the pin-tags setting
redundant since then the label can just be set to empty to not show unoccupied
tags.

Following the above reasoning, the pin tags setting is removed, and
state_t::NONE is renamed to state_t::EMPTY. This way if a user wants to display
empty tags, they can specify the format, otherwise they can simply set the label
to an empty string.
2020-12-19 19:43:05 -05:00
Mihir Lad
64aa2013c2 Add dwm example config to config.cmake
label-state will be the label used for each tag. label-layout will show the
current layout. label-title will show the current window title.

label-title allows each monitor to show its selected window's title on the bar.
The xwindow module only shows the currently focused window on all monitors.

pin-tags will show all tags whether or not they are selected.

label-separator is inserted between workspaces.

enable-click will allow the user to view tags and toggle the view on tags.
2020-12-19 19:30:04 -05:00
patrick96
2b0bf463b1 config: Remove bspwm variable references
This confuses lots of people when removing the bspwm module from the
sample config and trying to use the i3 module
2019-06-02 15:36:26 +02:00
patrick96
4cc836fa66 migration: Update URLs
jaagr/polybar -> polybar/polybar

Travis changed their url for new projects to travis-ci.com
2019-05-08 12:20:33 +02:00
patrick96
bfaeb71cb8 build: create config even when docs are disabled
Fixes #1733
2019-04-24 08:11:27 +02:00