mirror of
https://github.com/DreamMaoMao/maomaowm.git
synced 2026-06-06 03:01:52 -04:00
commit
8a92184667
5 changed files with 34 additions and 2 deletions
|
|
@ -88,7 +88,7 @@ bindr=Super,Super_L,spawn,rofi -show run
|
|||
|
||||
| Command | Param | Description |
|
||||
| :--- | :--- | :--- |
|
||||
| `killclient` | - | Close the focused window. |
|
||||
| `killclient` | `force` | Close the focused window. If `force` is specified, sends `SIGKILL`. |
|
||||
| `togglefloating` | - | Toggle floating state. |
|
||||
| `toggle_all_floating` | - | Toggle all visible clients floating state. |
|
||||
| `togglefullscreen` | - | Toggle fullscreen. |
|
||||
|
|
|
|||
|
|
@ -86,4 +86,10 @@ void client_active(Client *c) {
|
|||
target = get_tags_first_tag(c->tags);
|
||||
view_in_mon(&(Arg){.ui = target}, true, c->mon, true);
|
||||
focusclient(c, 1);
|
||||
}
|
||||
|
||||
void client_pending_force_kill(Client *c) {
|
||||
if (!c)
|
||||
return;
|
||||
kill(c->pid, SIGKILL);
|
||||
}
|
||||
|
|
@ -559,6 +559,26 @@ int32_t parse_direction(const char *str) {
|
|||
}
|
||||
}
|
||||
|
||||
int32_t parse_force(const char *str) {
|
||||
// 将输入字符串转换为小写
|
||||
char lowerStr[10];
|
||||
int32_t i = 0;
|
||||
while (str[i] && i < 9) {
|
||||
lowerStr[i] = tolower(str[i]);
|
||||
i++;
|
||||
}
|
||||
lowerStr[i] = '\0';
|
||||
|
||||
// 根据转换后的小写字符串返回对应的枚举值
|
||||
if (strcmp(lowerStr, "unforce") == 0) {
|
||||
return UNFORCE;
|
||||
} else if (strcmp(lowerStr, "force") == 0) {
|
||||
return FORCE;
|
||||
} else {
|
||||
return UNFORCE;
|
||||
}
|
||||
}
|
||||
|
||||
int32_t parse_fold_state(const char *str) {
|
||||
// 将输入字符串转换为小写
|
||||
char lowerStr[10];
|
||||
|
|
@ -1029,6 +1049,7 @@ FuncType parse_func_name(char *func_name, Arg *arg, char *arg_value,
|
|||
(*arg).i = atoi(arg_value);
|
||||
} else if (strcmp(func_name, "killclient") == 0) {
|
||||
func = killclient;
|
||||
(*arg).i = parse_force(arg_value);
|
||||
} else if (strcmp(func_name, "centerwin") == 0) {
|
||||
func = centerwin;
|
||||
} else if (strcmp(func_name, "focuslast") == 0) {
|
||||
|
|
|
|||
|
|
@ -345,7 +345,11 @@ int32_t setmfact(const Arg *arg) {
|
|||
int32_t killclient(const Arg *arg) {
|
||||
Client *c = arg->tc ? arg->tc : (selmon ? selmon->sel : NULL);
|
||||
if (c) {
|
||||
pending_kill_client(c);
|
||||
if (arg->i == FORCE) {
|
||||
client_pending_force_kill(c);
|
||||
} else {
|
||||
pending_kill_client(c);
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -190,6 +190,7 @@ enum { NONE, OPEN, MOVE, CLOSE, TAG, FOCUS, OPAFADEIN, OPAFADEOUT, OVERVIEW };
|
|||
enum { UNFOLD, FOLD, INVALIDFOLD };
|
||||
enum { PREV, NEXT };
|
||||
enum { STATE_UNSPECIFIED = 0, STATE_ENABLED, STATE_DISABLED };
|
||||
enum { FORCE, UNFORCE };
|
||||
|
||||
enum tearing_mode {
|
||||
TEARING_DISABLED = 0,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue