mirror of
https://github.com/labwc/labwc.git
synced 2025-10-29 05:40:24 -04:00
workspaces: add ability to set prefix when using number argument
This commit is contained in:
parent
e837445114
commit
4ecac26548
4 changed files with 27 additions and 5 deletions
|
|
@ -313,10 +313,9 @@ extending outward from the snapped edge.
|
||||||
## WORKSPACES
|
## WORKSPACES
|
||||||
|
|
||||||
*<desktops number=""><names><name>*
|
*<desktops number=""><names><name>*
|
||||||
Define workspaces. A workspace covers all outputs. The OSD only shows
|
Define workspaces. A workspace covers all outputs. Workspaces can be
|
||||||
windows on the current workspace. Workspaces can be switched to with
|
switched to with GoToDesktop and windows can be moved with SendToDesktop.
|
||||||
GoToDesktop and windows can be moved with SendToDesktop. See
|
See labwc-actions(5) for more information about their arguments.
|
||||||
labwc-actions(5) for more information about their arguments.
|
|
||||||
|
|
||||||
The number attribute defines the minimum number of workspaces. Default
|
The number attribute defines the minimum number of workspaces. Default
|
||||||
is 1. The number attribute is optional. If the number attribute is
|
is 1. The number attribute is optional. If the number attribute is
|
||||||
|
|
@ -326,6 +325,9 @@ extending outward from the snapped edge.
|
||||||
Define the timeout after which to hide the workspace OSD.
|
Define the timeout after which to hide the workspace OSD.
|
||||||
A setting of 0 disables the OSD. Default is 1000 ms.
|
A setting of 0 disables the OSD. Default is 1000 ms.
|
||||||
|
|
||||||
|
*<desktops><prefix>*
|
||||||
|
Set the prefix to use when using "number" above. Default is "Workspace"
|
||||||
|
|
||||||
## THEME
|
## THEME
|
||||||
|
|
||||||
*<theme><name>*
|
*<theme><name>*
|
||||||
|
|
|
||||||
|
|
@ -100,9 +100,21 @@
|
||||||
Or it can also be configured like this:
|
Or it can also be configured like this:
|
||||||
<desktops number="4" />
|
<desktops number="4" />
|
||||||
|
|
||||||
|
Or like this:
|
||||||
|
<desktops>
|
||||||
|
<popupTime>500</popupTime>
|
||||||
|
<number>5</number>
|
||||||
|
<prefix>ws</prefix>
|
||||||
|
</desktops>
|
||||||
|
|
||||||
|
Or:
|
||||||
|
<desktops number="4" popupTime="500" prefix="ws" />
|
||||||
|
|
||||||
popupTime defaults to 1000 so could be left out.
|
popupTime defaults to 1000 so could be left out.
|
||||||
Set to 0 to completely disable the workspace OSD.
|
Set to 0 to completely disable the workspace OSD.
|
||||||
|
|
||||||
|
prefix defaults to "Workspace" when using number instead of names.
|
||||||
|
|
||||||
Use GoToDesktop left | right to switch workspaces.
|
Use GoToDesktop left | right to switch workspaces.
|
||||||
Use SendToDesktop left | right to move windows.
|
Use SendToDesktop left | right to move windows.
|
||||||
See man labwc-actions for further information.
|
See man labwc-actions for further information.
|
||||||
|
|
|
||||||
|
|
@ -129,6 +129,7 @@ struct rcxml {
|
||||||
struct {
|
struct {
|
||||||
int popuptime;
|
int popuptime;
|
||||||
int min_nr_workspaces;
|
int min_nr_workspaces;
|
||||||
|
char *prefix;
|
||||||
struct wl_list workspaces; /* struct workspace.link */
|
struct wl_list workspaces; /* struct workspace.link */
|
||||||
} workspace_config;
|
} workspace_config;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -934,6 +934,8 @@ entry(xmlNode *node, char *nodename, char *content)
|
||||||
rc.workspace_config.popuptime = atoi(content);
|
rc.workspace_config.popuptime = atoi(content);
|
||||||
} else if (!strcasecmp(nodename, "number.desktops")) {
|
} else if (!strcasecmp(nodename, "number.desktops")) {
|
||||||
rc.workspace_config.min_nr_workspaces = MAX(1, atoi(content));
|
rc.workspace_config.min_nr_workspaces = MAX(1, atoi(content));
|
||||||
|
} else if (!strcasecmp(nodename, "prefix.desktops")) {
|
||||||
|
rc.workspace_config.prefix = xstrdup(content);
|
||||||
} else if (!strcasecmp(nodename, "popupShow.resize")) {
|
} else if (!strcasecmp(nodename, "popupShow.resize")) {
|
||||||
if (!strcasecmp(content, "Always")) {
|
if (!strcasecmp(content, "Always")) {
|
||||||
rc.resize_indicator = LAB_RESIZE_INDICATOR_ALWAYS;
|
rc.resize_indicator = LAB_RESIZE_INDICATOR_ALWAYS;
|
||||||
|
|
@ -1465,10 +1467,14 @@ post_processing(void)
|
||||||
|
|
||||||
int nr_workspaces = wl_list_length(&rc.workspace_config.workspaces);
|
int nr_workspaces = wl_list_length(&rc.workspace_config.workspaces);
|
||||||
if (nr_workspaces < rc.workspace_config.min_nr_workspaces) {
|
if (nr_workspaces < rc.workspace_config.min_nr_workspaces) {
|
||||||
|
if (!rc.workspace_config.prefix) {
|
||||||
|
rc.workspace_config.prefix = xstrdup("Workspace");
|
||||||
|
}
|
||||||
struct workspace *workspace;
|
struct workspace *workspace;
|
||||||
for (int i = nr_workspaces; i < rc.workspace_config.min_nr_workspaces; i++) {
|
for (int i = nr_workspaces; i < rc.workspace_config.min_nr_workspaces; i++) {
|
||||||
workspace = znew(*workspace);
|
workspace = znew(*workspace);
|
||||||
workspace->name = strdup_printf("Workspace %d", i + 1);
|
workspace->name = strdup_printf("%s %d",
|
||||||
|
rc.workspace_config.prefix, i + 1);
|
||||||
wl_list_append(&rc.workspace_config.workspaces, &workspace->link);
|
wl_list_append(&rc.workspace_config.workspaces, &workspace->link);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1638,6 +1644,7 @@ rcxml_finish(void)
|
||||||
zfree(rc.font_menuitem.name);
|
zfree(rc.font_menuitem.name);
|
||||||
zfree(rc.font_osd.name);
|
zfree(rc.font_osd.name);
|
||||||
zfree(rc.theme_name);
|
zfree(rc.theme_name);
|
||||||
|
zfree(rc.workspace_config.prefix);
|
||||||
|
|
||||||
struct usable_area_override *area, *area_tmp;
|
struct usable_area_override *area, *area_tmp;
|
||||||
wl_list_for_each_safe(area, area_tmp, &rc.usable_area_overrides, link) {
|
wl_list_for_each_safe(area, area_tmp, &rc.usable_area_overrides, link) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue