This commit is contained in:
Lin Xianyi 2026-05-09 07:45:19 -07:00 committed by GitHub
commit 4fe8d41a4f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 13 additions and 1 deletions

View file

@ -78,6 +78,7 @@ typedef struct {
int32_t ignore_maximize;
int32_t ignore_minimize;
int32_t isnosizehint;
int32_t atstartup;
int32_t indleinhibit_when_focus;
char *monitor;
int32_t offsetx;
@ -2086,6 +2087,7 @@ bool parse_option(Config *config, char *key, char *value) {
rule->isnosizehint = -1;
rule->indleinhibit_when_focus = -1;
rule->isterm = -1;
rule->atstartup = -1;
rule->allow_csd = -1;
rule->force_fakemaximize = -1;
rule->force_tiled_state = -1;
@ -2217,6 +2219,8 @@ bool parse_option(Config *config, char *key, char *value) {
rule->isfullscreen = atoi(val);
} else if (strcmp(key, "isfakefullscreen") == 0) {
rule->isfakefullscreen = atoi(val);
} else if (strcmp(key, "atstartup") == 0) {
rule->atstartup = atoi(val);
} else if (strcmp(key, "globalkeybinding") == 0) {
char mod_str[256], keysym_str[256];
sscanf(val, "%255[^-]-%255[a-zA-Z]", mod_str, keysym_str);

View file

@ -823,6 +823,7 @@ static void scroller_insert_stack(Client *c, Client *target_client,
/* variables */
static const char broken[] = "broken";
static pid_t child_pid = -1;
static uint32_t startup_time;
static int32_t locked;
static uint32_t locked_mods = 0;
static void *exclusive_focus;
@ -1496,10 +1497,14 @@ void applyrules(Client *c) {
if (!is_window_rule_matches(r, appid, title))
continue;
// rule is after 60s of startup, do not apply
if (r->atstartup && get_now_in_ms() - startup_time > 60 * 1000)
continue;
// set general properties
apply_rule_properties(c, r);
// // set tags
// set tags
if (r->tags > 0) {
newtags |= r->tags;
} else if (parent) {
@ -6036,6 +6041,9 @@ void setup(void) {
}
sync_keymap = wl_event_loop_add_timer(wl_display_get_event_loop(dpy),
synckeymap, NULL);
// store the startup time for at-startup rules to check against
startup_time = get_now_in_ms();
#endif
}