mirror of
https://github.com/DreamMaoMao/maomaowm.git
synced 2025-10-29 05:40:21 -04:00
feat: make ~0 tag own independent layout
This commit is contained in:
parent
4a8568639f
commit
31ac4bd6ed
5 changed files with 15 additions and 42 deletions
|
|
@ -30,13 +30,6 @@ enum corner_location set_client_corner_location(Client *c) {
|
||||||
|
|
||||||
bool is_horizontal_stack_layout(Monitor *m) {
|
bool is_horizontal_stack_layout(Monitor *m) {
|
||||||
|
|
||||||
if (!m->pertag->curtag &&
|
|
||||||
(strcmp(m->pertag->ltidxs[m->pertag->prevtag]->name, "tile") == 0 ||
|
|
||||||
strcmp(m->pertag->ltidxs[m->pertag->prevtag]->name, "spiral") == 0 ||
|
|
||||||
strcmp(m->pertag->ltidxs[m->pertag->prevtag]->name, "dwindle") == 0 ||
|
|
||||||
strcmp(m->pertag->ltidxs[m->pertag->prevtag]->name, "deck") == 0))
|
|
||||||
return true;
|
|
||||||
|
|
||||||
if (m->pertag->curtag &&
|
if (m->pertag->curtag &&
|
||||||
(strcmp(m->pertag->ltidxs[m->pertag->curtag]->name, "tile") == 0 ||
|
(strcmp(m->pertag->ltidxs[m->pertag->curtag]->name, "tile") == 0 ||
|
||||||
strcmp(m->pertag->ltidxs[m->pertag->curtag]->name, "spiral") == 0 ||
|
strcmp(m->pertag->ltidxs[m->pertag->curtag]->name, "spiral") == 0 ||
|
||||||
|
|
|
||||||
|
|
@ -418,12 +418,10 @@ void restore_minimized(const Arg *arg) {
|
||||||
void // 17
|
void // 17
|
||||||
setlayout(const Arg *arg) {
|
setlayout(const Arg *arg) {
|
||||||
int jk;
|
int jk;
|
||||||
unsigned int target_tag = selmon->pertag->curtag ? selmon->pertag->curtag
|
|
||||||
: selmon->pertag->prevtag;
|
|
||||||
|
|
||||||
for (jk = 0; jk < LENGTH(layouts); jk++) {
|
for (jk = 0; jk < LENGTH(layouts); jk++) {
|
||||||
if (strcmp(layouts[jk].name, arg->v) == 0) {
|
if (strcmp(layouts[jk].name, arg->v) == 0) {
|
||||||
selmon->pertag->ltidxs[target_tag] = &layouts[jk];
|
selmon->pertag->ltidxs[selmon->pertag->curtag] = &layouts[jk];
|
||||||
|
|
||||||
arrange(selmon, false);
|
arrange(selmon, false);
|
||||||
printstatus();
|
printstatus();
|
||||||
|
|
@ -823,17 +821,17 @@ void switch_layout(const Arg *arg) {
|
||||||
int jk, ji;
|
int jk, ji;
|
||||||
char *target_layout_name = NULL;
|
char *target_layout_name = NULL;
|
||||||
unsigned int len;
|
unsigned int len;
|
||||||
unsigned int target_tag = selmon->pertag->curtag ? selmon->pertag->curtag
|
|
||||||
: selmon->pertag->prevtag;
|
|
||||||
|
|
||||||
if (config.circle_layout_count != 0) {
|
if (config.circle_layout_count != 0) {
|
||||||
for (jk = 0; jk < config.circle_layout_count; jk++) {
|
for (jk = 0; jk < config.circle_layout_count; jk++) {
|
||||||
|
|
||||||
len = MAX(strlen(config.circle_layout[jk]),
|
len = MAX(
|
||||||
strlen(selmon->pertag->ltidxs[target_tag]->name));
|
strlen(config.circle_layout[jk]),
|
||||||
|
strlen(selmon->pertag->ltidxs[selmon->pertag->curtag]->name));
|
||||||
|
|
||||||
if (strncmp(config.circle_layout[jk],
|
if (strncmp(config.circle_layout[jk],
|
||||||
selmon->pertag->ltidxs[target_tag]->name, len) == 0) {
|
selmon->pertag->ltidxs[selmon->pertag->curtag]->name,
|
||||||
|
len) == 0) {
|
||||||
target_layout_name = jk == config.circle_layout_count - 1
|
target_layout_name = jk == config.circle_layout_count - 1
|
||||||
? config.circle_layout[0]
|
? config.circle_layout[0]
|
||||||
: config.circle_layout[jk + 1];
|
: config.circle_layout[jk + 1];
|
||||||
|
|
@ -848,7 +846,7 @@ void switch_layout(const Arg *arg) {
|
||||||
for (ji = 0; ji < LENGTH(layouts); ji++) {
|
for (ji = 0; ji < LENGTH(layouts); ji++) {
|
||||||
len = MAX(strlen(layouts[ji].name), strlen(target_layout_name));
|
len = MAX(strlen(layouts[ji].name), strlen(target_layout_name));
|
||||||
if (strncmp(layouts[ji].name, target_layout_name, len) == 0) {
|
if (strncmp(layouts[ji].name, target_layout_name, len) == 0) {
|
||||||
selmon->pertag->ltidxs[target_tag] = &layouts[ji];
|
selmon->pertag->ltidxs[selmon->pertag->curtag] = &layouts[ji];
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
@ -861,8 +859,8 @@ void switch_layout(const Arg *arg) {
|
||||||
|
|
||||||
for (jk = 0; jk < LENGTH(layouts); jk++) {
|
for (jk = 0; jk < LENGTH(layouts); jk++) {
|
||||||
if (strcmp(layouts[jk].name,
|
if (strcmp(layouts[jk].name,
|
||||||
selmon->pertag->ltidxs[target_tag]->name) == 0) {
|
selmon->pertag->ltidxs[selmon->pertag->curtag]->name) == 0) {
|
||||||
selmon->pertag->ltidxs[target_tag] =
|
selmon->pertag->ltidxs[selmon->pertag->curtag] =
|
||||||
jk == LENGTH(layouts) - 1 ? &layouts[0] : &layouts[jk + 1];
|
jk == LENGTH(layouts) - 1 ? &layouts[0] : &layouts[jk + 1];
|
||||||
arrange(selmon, false);
|
arrange(selmon, false);
|
||||||
printstatus();
|
printstatus();
|
||||||
|
|
|
||||||
|
|
@ -140,12 +140,10 @@ void dwl_ipc_output_printstatus_to(DwlIpcOutput *ipc_output) {
|
||||||
title = focused ? client_get_title(focused) : "";
|
title = focused ? client_get_title(focused) : "";
|
||||||
appid = focused ? client_get_appid(focused) : "";
|
appid = focused ? client_get_appid(focused) : "";
|
||||||
|
|
||||||
if (monitor->pertag->curtag) {
|
if (monitor->isoverview) {
|
||||||
symbol = monitor->pertag->ltidxs[monitor->pertag->curtag]->symbol;
|
|
||||||
} else if (monitor->isoverview) {
|
|
||||||
symbol = overviewlayout.symbol;
|
symbol = overviewlayout.symbol;
|
||||||
} else {
|
} else {
|
||||||
symbol = monitor->pertag->ltidxs[monitor->pertag->prevtag]->symbol;
|
symbol = monitor->pertag->ltidxs[monitor->pertag->curtag]->symbol;
|
||||||
}
|
}
|
||||||
|
|
||||||
keyboard = &kb_group->wlr_group->keyboard;
|
keyboard = &kb_group->wlr_group->keyboard;
|
||||||
|
|
@ -238,7 +236,6 @@ void dwl_ipc_output_set_layout(struct wl_client *client,
|
||||||
unsigned int index) {
|
unsigned int index) {
|
||||||
DwlIpcOutput *ipc_output;
|
DwlIpcOutput *ipc_output;
|
||||||
Monitor *monitor;
|
Monitor *monitor;
|
||||||
unsigned int target_tag;
|
|
||||||
|
|
||||||
ipc_output = wl_resource_get_user_data(resource);
|
ipc_output = wl_resource_get_user_data(resource);
|
||||||
if (!ipc_output)
|
if (!ipc_output)
|
||||||
|
|
@ -248,10 +245,7 @@ void dwl_ipc_output_set_layout(struct wl_client *client,
|
||||||
if (index >= LENGTH(layouts))
|
if (index >= LENGTH(layouts))
|
||||||
index = 0;
|
index = 0;
|
||||||
|
|
||||||
target_tag = monitor->pertag->curtag ? monitor->pertag->curtag
|
monitor->pertag->ltidxs[monitor->pertag->curtag] = &layouts[index];
|
||||||
: monitor->pertag->prevtag;
|
|
||||||
|
|
||||||
monitor->pertag->ltidxs[target_tag] = &layouts[index];
|
|
||||||
arrange(monitor, false);
|
arrange(monitor, false);
|
||||||
printstatus();
|
printstatus();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -17,21 +17,13 @@ Monitor *dirtomon(enum wlr_direction dir) {
|
||||||
|
|
||||||
bool is_scroller_layout(Monitor *m) {
|
bool is_scroller_layout(Monitor *m) {
|
||||||
|
|
||||||
if (!m->pertag->curtag &&
|
if (strcmp(m->pertag->ltidxs[m->pertag->curtag]->name, "scroller") == 0)
|
||||||
strcmp(m->pertag->ltidxs[m->pertag->prevtag]->name, "scroller") == 0)
|
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
if (!m->pertag->curtag &&
|
|
||||||
strcmp(m->pertag->ltidxs[m->pertag->prevtag]->name,
|
|
||||||
"vertical_scroller") == 0)
|
|
||||||
return true;
|
|
||||||
|
|
||||||
if (m->pertag->curtag &&
|
|
||||||
strcmp(m->pertag->ltidxs[m->pertag->curtag]->name, "scroller") == 0)
|
|
||||||
return true;
|
|
||||||
if (strcmp(m->pertag->ltidxs[m->pertag->curtag]->name,
|
if (strcmp(m->pertag->ltidxs[m->pertag->curtag]->name,
|
||||||
"vertical_scroller") == 0)
|
"vertical_scroller") == 0)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1391,12 +1391,8 @@ arrange(Monitor *m, bool want_animation) {
|
||||||
|
|
||||||
if (m->isoverview) {
|
if (m->isoverview) {
|
||||||
overviewlayout.arrange(m);
|
overviewlayout.arrange(m);
|
||||||
} else if (m && m->pertag->curtag &&
|
} else {
|
||||||
m->pertag->ltidxs[m->pertag->curtag]->arrange) {
|
|
||||||
m->pertag->ltidxs[m->pertag->curtag]->arrange(m);
|
m->pertag->ltidxs[m->pertag->curtag]->arrange(m);
|
||||||
} else if (m && m->pertag->prevtag &&
|
|
||||||
m->pertag->ltidxs[m->pertag->prevtag]->arrange) {
|
|
||||||
m->pertag->ltidxs[m->pertag->prevtag]->arrange(m);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
motionnotify(0, NULL, 0, 0, 0, 0);
|
motionnotify(0, NULL, 0, 0, 0, 0);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue