X3YT2N2UOHHYPS6KZAXR6HKQZFHZ3THNJW2B7WXNBEYOECHKQ4EQC
6FUMTPHUSH56QJ3TIMBBOVQOT5N7KOX2TUYREZTDGZE4H33ADJGQC
7KXA3TU3MHMSCV742PDUTKPKQPBNCFB3LVK2O5YMKHHKBL36GWRQC
JBP6XU3XZ7FRBNRWY2BFSYGTTTKS4QZOCDUYRA6NOOHCEGWTCPBQC
SXB57HHWBQQIOEUXK65JKGXX4ZNSGXU55XHSEXU2YZSTFH3PYZRQC
HLXA5JC7DDDZOMLM6LTGTVULIJTLVUW5GPMNNTUPKUXYKPBJBZYAC
HT2XOP4QWSOZYYCJCLY6KRWL34DWVO2LNMCPBDY2Z5E73AYPHMAAC
TZP6PT5SUMQJO4YUGALUU3R4RYQREDLZXWAOKD6N3QDROICWHRBAC
W3D3L7ZTJYAC4PN3UJAXCGTSHIAX36HJ5CLHLKXM6QTJ3YQDA6XAC
7B74AT3BXYB7PVW4F6SGQNPMHOU5TEV5TZ54CG6VSQI46XSEKWXQC
6LVZRZGDURMWBUBXHFGV4HGB7L5M2FKCYGJCAU3X2PK74VJQ6RCAC
PLJJLNS7E2UXW2YARGBSV6IHZEBGL5EW354IMMHPDATY5DQD77DAC
PMRSYJRYQAXZ3OEDD7ANMXTECMT2DNJEC3XQABRNA63SAOUZWA3AC
MO5ORR7VSER3YUNO77DZJVKGOVYC2KNDCSC72J4NF7JYOHHTLRQAC
CD2JEM3MH5BXN7ADZAWLJFTRZG7PMDCKISDNJEO472PIBEJHBH2AC
S7RXJJZG4IEIVLPHEWFT5M2T3SRRO5US5SYBPXSYSWJJLXAKNNPAC
DGJFEKNKYTSZNU4VGJXLHBOQGRGKYQVDN6IHN25DPKPDEGYQBBAQC
VB73LHGDVI7ZDLCT35D7TICLZAAVEFSDIAJXBJTT5HYMMNMFHJKQC
EUJMBPB6W6ADQS4ZFMODC4S5WWH6SZIVM5OW46Z6CPMPDOL4HM7QC
BOH54DATFCM5ZC6GDQKEU23PQSIOOINLX3UAI47STL7PP56PQUYAC
RTTCZDXQ2CFK2KZPTRON2NZUQVYURJJTEHFWUKQ43QSNBCNAAC7QC
BFWKVWAIUKHCZVRA62GW6QZUEUKQLW365HUWIVKTEIPJNJSOZBAQC
2GP4MXKEDQMZ7E6TCRSMV2AGN7HLEAHR3QEAC2QFCQQNPMNJSIHQC
24ZMBWYLMODPBAVLT4XNOSETHQXVLXNASYXUIGG2435IT7WIZC5AC
QEW4JPCS73HQFUXWFNYZBVERHQKMW245GDEPN5LMH6SRYPFH6ZYAC
XIAMPUB7PQ6TUFYVO557BXILF7E7BZ23BVYPQ3C3NO2MDQOGZWXAC
3QLNDZIQWOPZ7XN6GBZO7YBLFWXI6TJM74EV75T45ZQJVGJAV2IQC
7L3TU7JVWPBPHN7WF4TJ263BZ6BC3AYRRW6PULFUP5JZUGWWNUSAC
DVIBBDIRHCREHHOHZNQ2L3JJTW6GRSUGBHDJD2OKUBHWIBJ5WJUQC
EQRGODLKSVSPFSUZU7BV5ER72U4QS4ATSBKV544XXQVKKTOSC7EAC
CFECX3NOTBCQGTC7ZJOF2IAEJF55SZPHZJN57OZLPMZT24ERFIXQC
2ZRKX4A24W4WNSLJNPKP3FWB3Y3UCYLWWESTC65P45BQFSJKS4PQC
#define VISIBLEON(C, M) ((M) && (C)->mon == (M) && ((C)->tags & (M)->tagset[(M)->seltags]))
#define VISIBLEON(C, M) ((M) && ((!(M)->wlr_output && (C)->scratchkey != 0 && (C)->scratchkey == current_scratch) \
|| ((C)->mon == (M) && ((C)->tags & (M)->tagset[(M)->seltags]))))
Monitor scratchmon = *m;
scratchmon.tagset[0] = 0;
scratchmon.tagset[1] = 0;
scratchmon.wlr_output = NULL;
scratchmon.w.x += (int)(scratchmon.w.width * (1 - scratchfactor)/2);
scratchmon.w.y += (int)(scratchmon.w.height * (1 - scratchfactor)/2);
scratchmon.w.width = (int)(scratchmon.w.width * scratchfactor);
scratchmon.w.height = (int)(scratchmon.w.height * scratchfactor);
focusortogglescratch(const Arg *arg)
{
Client *c;
const char next = ((char**)arg->v)[0][0];
unsigned int off = next == current_scratch;
if (((c = focustop(selmon)) && c->scratchkey == next) || current_scratch != next)
{
togglescratch(arg);
focusclient(NULL, 0);
}
if (current_scratch == 0)
return;
wl_list_for_each(c, &clients, link)
if (c->scratchkey == current_scratch) {
focusclient(c, 0);
return;
}
if (off) current_scratch = 0;
}
void
togglescratch(const Arg *arg)
{
Client *c;
const char next = ((char**)arg->v)[0][0];
unsigned int found = 0;
current_scratch = current_scratch == next ? 0 : next;
wl_list_for_each(c, &clients, link) {
if (c->scratchkey == current_scratch) {
found = 1;
c->tags = selmon ->tagset[selmon->seltags];
}
if (c->scratchkey == next && current_scratch == 0)
{
c->tags = 0;
}
}
if (!found && current_scratch)
spawnscratch(arg);
else
arrange(selmon);
}
void
{ "Gimp_EXAMPLE", NULL, 0, 1, -1 }, /* Start on currently visible tags floating, not tiled */
{ "firefox_EXAMPLE", NULL, 1 << 8, 0, -1 }, /* Start on ONLY tag "9" */
{ "Gimp_EXAMPLE", NULL, 0, 1, -1, 0 }, /* Start on currently visible tags floating, not tiled */
{ "firefox_EXAMPLE", NULL, 1 << 8, 0, -1, 0 }, /* Start on ONLY tag "9" */
{ NULL, "scratchpad", 0, 1, -1, 's' },