mirror of
https://github.com/0intro/wmii
synced 2025-03-14 02:33:15 +03:00
removed /tags, renamed /clients/ to /client/, changed /view, it contains now all avaiable views, to address the selected view, you have to substitute /view with /view/sel
This commit is contained in:
parent
5c0fb002b6
commit
6d878a1b71
259
cmd/wm/fs.c
259
cmd/wm/fs.c
@ -31,37 +31,36 @@ enum { WMII_IOUNIT = 2048 };
|
||||
|
||||
/*
|
||||
* filesystem specification
|
||||
* / FsDroot
|
||||
* /def/ FsDdef
|
||||
* /def/border FsFborder 0..n
|
||||
* /def/font FsFfont xlib font name
|
||||
* /def/selcolors FsFselcolors selected colors
|
||||
* /def/normcolors FsFnormcolors normal colors
|
||||
* /def/rules FsFrules rules
|
||||
* /def/keys FsFkeys keys
|
||||
* /def/grabmod FsFgrabmod grab modifier
|
||||
* /tags FsFtags
|
||||
* /bar/ FsDbar
|
||||
* /bar/lab/ FsDlabel
|
||||
* /bar/lab/data FsFdata <arbitrary data which gets displayed>
|
||||
* /bar/lab/colors FsFcolors <#RRGGBB> <#RRGGBB> <#RRGGBB>
|
||||
* /clients/ FsDclients
|
||||
* /clients/1/ FsDGclient see /view/X/X/ namespace below
|
||||
* /event FsFevent
|
||||
* /ctl FsFctl command interface (root)
|
||||
* /view/ FsDview view
|
||||
* /view/ctl FsFctl command interface (tag)
|
||||
* /view/name FsFname current view name
|
||||
* /view/sel/ FsDarea
|
||||
* /view/1/ FsDarea
|
||||
* /view/1/ctl FsFctl command interface (area)
|
||||
* /view/1/mode FsFmode column mode
|
||||
* /view/1/sel/ FsDclient
|
||||
* /view/1/1/class FsFclass class:instance of client
|
||||
* /view/1/1/name FsFname name of client
|
||||
* /view/1/1/tags FsFtags tag of client
|
||||
* /view/1/1/geom FsFgeom geometry of client
|
||||
* /view/1/1/ctl FsFctl command interface (client)
|
||||
* / FsDroot
|
||||
* /def/ FsDdef
|
||||
* /def/border FsFborder 0..n
|
||||
* /def/font FsFfont xlib font name
|
||||
* /def/selcolors FsFselcolors selected colors
|
||||
* /def/normcolors FsFnormcolors normal colors
|
||||
* /def/rules FsFrules rules
|
||||
* /def/keys FsFkeys keys
|
||||
* /def/grabmod FsFgrabmod grab modifier
|
||||
* /bar/ FsDbars
|
||||
* /bar/lab/ FsDbar
|
||||
* /bar/lab/data FsFdata <arbitrary data which gets displayed>
|
||||
* /bar/lab/colors FsFcolors <#RRGGBB> <#RRGGBB> <#RRGGBB>
|
||||
* /client/ FsDclients
|
||||
* /client/1/ FsDGclient see /view/X/X/X/ namespace below
|
||||
* /event FsFevent
|
||||
* /ctl FsFctl command interface (root)
|
||||
* /view/ FsDviews views
|
||||
* /view/X/ctl FsFctl command interface (tag)
|
||||
* /view/X/name FsFname current view name
|
||||
* /view/X/sel/ FsDarea
|
||||
* /view/X/1/ FsDarea
|
||||
* /view/X/1/ctl FsFctl command interface (area)
|
||||
* /view/X/1/mode FsFmode column mode
|
||||
* /view/X/1/sel/ FsDclient
|
||||
* /view/X/1/1/class FsFclass class:instance of client
|
||||
* /view/X/1/1/name FsFname name of client
|
||||
* /view/X/1/1/tags FsFtags tag of client
|
||||
* /view/X/1/geom FsFgeom geometry of client
|
||||
* /view/X/1/ctl FsFctl command interface (client)
|
||||
*/
|
||||
|
||||
Qid root_qid;
|
||||
@ -122,7 +121,7 @@ decode_qpath(Qid *qid, unsigned char *type, int *i1, int *i2, int *i3)
|
||||
switch(*type) {
|
||||
case FsFdata:
|
||||
case FsFcolors:
|
||||
case FsDlabel: *i1 = idx_of_bar_id(i1id); break;
|
||||
case FsDbar: *i1 = idx_of_bar_id(i1id); break;
|
||||
default: *i1 = idx_of_view_id(i1id); break;
|
||||
}
|
||||
}
|
||||
@ -146,14 +145,17 @@ qid2name(Qid *qid)
|
||||
switch(type) {
|
||||
case FsDroot: return "/"; break;
|
||||
case FsDdef: return "def"; break;
|
||||
case FsDclients: return "clients"; break;
|
||||
case FsDbar: return "bar"; break;
|
||||
case FsDclients: return "client"; break;
|
||||
case FsDbars: return "bar"; break;
|
||||
case FsDviews: return "view"; break;
|
||||
case FsDview:
|
||||
if(qid->dir_type == FsDroot)
|
||||
return "view";
|
||||
return nil;
|
||||
if(qid->dir_type != FsDroot)
|
||||
return nil;
|
||||
if(i1 == sel)
|
||||
return "sel";
|
||||
return view.data[i1]->name;
|
||||
break;
|
||||
case FsDlabel:
|
||||
case FsDbar:
|
||||
if(i1 == -1)
|
||||
return nil;
|
||||
return label.data[i1]->name;
|
||||
@ -203,21 +205,17 @@ qid2name(Qid *qid)
|
||||
break;
|
||||
case FsFclass:
|
||||
case FsFname:
|
||||
case FsFtags:
|
||||
if((qid->dir_type == FsDclient) && (i1 == -1 || i2 == -1 || i3 == -1))
|
||||
return nil;
|
||||
else if(i1 == -1)
|
||||
return nil;
|
||||
if(type == FsFname)
|
||||
return "name";
|
||||
else
|
||||
else if(type == FsFclass)
|
||||
return "class";
|
||||
break;
|
||||
case FsFtags:
|
||||
if((qid->dir_type == FsDclient) && (i1 == -1 || i2 == -1 || i3 == -1))
|
||||
return nil;
|
||||
else if((qid->dir_type == FsDGclient) && (i1 == -1))
|
||||
return nil;
|
||||
return "tags";
|
||||
else
|
||||
return "tags";
|
||||
break;
|
||||
case FsFmode:
|
||||
if(i1 == -1 || i2 == -1)
|
||||
@ -237,12 +235,12 @@ name2type(char *name, unsigned char dir_type)
|
||||
return FsDroot;
|
||||
if(!strncmp(name, "tags", 5))
|
||||
return FsFtags;
|
||||
if(!strncmp(name, "clients", 8))
|
||||
if(!strncmp(name, "client", 7))
|
||||
return FsDclients;
|
||||
if(!strncmp(name, "view", 5) && (dir_type == FsDroot))
|
||||
return FsDview;
|
||||
if(!strncmp(name, "view", 5))
|
||||
return FsDviews;
|
||||
if(!strncmp(name, "bar", 4))
|
||||
return FsDbar;
|
||||
return FsDbars;
|
||||
if(!strncmp(name, "def", 4))
|
||||
return FsDdef;
|
||||
if(!strncmp(name, "ctl", 4))
|
||||
@ -275,8 +273,10 @@ name2type(char *name, unsigned char dir_type)
|
||||
return FsFdata;
|
||||
if(!strncmp(name, "mode", 5))
|
||||
return FsFmode;
|
||||
if((dir_type == FsDbar) && bar_of_name(name))
|
||||
return FsDlabel;
|
||||
if((dir_type == FsDbars) && bar_of_name(name))
|
||||
return FsDbar;
|
||||
if((dir_type == FsDviews) && view_of_name(name))
|
||||
return FsDview;
|
||||
if(!strncmp(name, "sel", 4))
|
||||
goto dyndir;
|
||||
i = (unsigned short) cext_strtonum(name, 0, 0xffff, &err);
|
||||
@ -285,7 +285,8 @@ name2type(char *name, unsigned char dir_type)
|
||||
dyndir:
|
||||
/*fprintf(stderr, "nametotype: dir_type = %d\n", dir_type);*/
|
||||
switch(dir_type) {
|
||||
case FsDbar: return FsDlabel; break;
|
||||
case FsDviews: return FsDview; break;
|
||||
case FsDbars: return FsDbar; break;
|
||||
case FsDview: return FsDarea; break;
|
||||
case FsDclients: return FsDGclient; break;
|
||||
case FsDarea: return FsDclient; break;
|
||||
@ -311,15 +312,25 @@ mkqid(Qid *dir, char *wname, Qid *new)
|
||||
break;
|
||||
case FsDdef:
|
||||
case FsDclients:
|
||||
case FsDbar:
|
||||
case FsDbars:
|
||||
case FsDviews:
|
||||
if(dir_type != FsDroot)
|
||||
return -1;
|
||||
new->type = IXP_QTDIR;
|
||||
new->path = mkqpath(type, 0, 0, 0);
|
||||
break;
|
||||
case FsDview:
|
||||
if(dir_type != FsDviews)
|
||||
return -1;
|
||||
new->type = IXP_QTDIR;
|
||||
new->path = mkqpath(FsDview, view.size ? view.data[sel]->id : 0, 0, 0);
|
||||
if(!strncmp(wname, "sel", 4))
|
||||
new->path = mkqpath(FsDview, view.data[sel]->id, 0, 0);
|
||||
else {
|
||||
View *v;
|
||||
if(!(v = view_of_name(wname)))
|
||||
return -1;
|
||||
new->path = mkqpath(FsDview, v->id, 0, 0);
|
||||
}
|
||||
break;
|
||||
case FsDarea:
|
||||
if(dir_i1 == -1 || dir_type != FsDview)
|
||||
@ -366,20 +377,20 @@ mkqid(Qid *dir, char *wname, Qid *new)
|
||||
return -1;
|
||||
new->path = mkqpath(FsDGclient, client.data[i]->id, 0, 0);
|
||||
break;
|
||||
case FsDlabel:
|
||||
if(dir_type != FsDbar)
|
||||
case FsDbar:
|
||||
if(dir_type != FsDbars)
|
||||
return -1;
|
||||
{
|
||||
Bar *l;
|
||||
if(!(l = bar_of_name(wname)))
|
||||
return -1;
|
||||
new->type = IXP_QTDIR;
|
||||
new->path = mkqpath(FsDlabel, l->id, 0, 0);
|
||||
new->path = mkqpath(FsDbar, l->id, 0, 0);
|
||||
}
|
||||
break;
|
||||
case FsFdata:
|
||||
case FsFcolors:
|
||||
if((dir_i1 == -1) || (dir_type != FsDlabel))
|
||||
if((dir_i1 == -1) || (dir_type != FsDbar))
|
||||
return -1;
|
||||
goto Mkfile;
|
||||
break;
|
||||
@ -394,12 +405,11 @@ mkqid(Qid *dir, char *wname, Qid *new)
|
||||
if(dir_type == FsDroot)
|
||||
return -1;
|
||||
case FsFtags:
|
||||
if((dir_type != FsDroot) && (dir_type != FsDview)
|
||||
&& (dir_type != FsDGclient) && (dir_type != FsDclient))
|
||||
if((dir_type != FsDGclient) && (dir_type != FsDclient))
|
||||
return -1;
|
||||
if((dir_type == FsDclient) && ((dir_i1 == -1 || dir_i2 == -1 || dir_i3 == -1)))
|
||||
return -1;
|
||||
else if(((dir_type == FsDview) || (dir_type == FsDGclient)) && (dir_i1 == -1))
|
||||
else if((dir_type == FsDGclient) && (dir_i1 == -1))
|
||||
return -1;
|
||||
goto Mkfile;
|
||||
break;
|
||||
@ -458,14 +468,15 @@ type2stat(Stat *stat, char *wname, Qid *dir)
|
||||
case FsDclient:
|
||||
case FsDGclient:
|
||||
case FsDarea:
|
||||
case FsDviews:
|
||||
case FsDview:
|
||||
case FsDdef:
|
||||
case FsDclients:
|
||||
case FsDlabel:
|
||||
case FsDbar:
|
||||
case FsDroot:
|
||||
return mkstat(stat, dir, wname, 0, IXP_DMDIR | IXP_DMREAD | IXP_DMEXEC);
|
||||
break;
|
||||
case FsDbar:
|
||||
case FsDbars:
|
||||
return mkstat(stat, dir, wname, 0, IXP_DMDIR | IXP_DMREAD | IXP_DMWRITE | IXP_DMEXEC);
|
||||
break;
|
||||
case FsFctl:
|
||||
@ -510,23 +521,12 @@ type2stat(Stat *stat, char *wname, Qid *dir)
|
||||
return mkstat(stat, dir, wname, strlen(client.data[dir_i1]->name), IXP_DMREAD);
|
||||
break;
|
||||
case FsFtags:
|
||||
switch(dir_type) {
|
||||
case FsDclient:
|
||||
if(dir_type == FsDclient) {
|
||||
f = view.data[dir_i1]->area.data[dir_i2]->frame.data[dir_i3];
|
||||
return mkstat(stat, dir, wname, strlen(f->client->tags), IXP_DMREAD | IXP_DMWRITE);
|
||||
break;
|
||||
case FsDGclient:
|
||||
return mkstat(stat, dir, wname, strlen(client.data[dir_i1]->tags), IXP_DMREAD | IXP_DMWRITE);
|
||||
break;
|
||||
default:
|
||||
{
|
||||
unsigned int i, len = 0;
|
||||
for(i = 0; i < view.size; i++)
|
||||
len += strlen(view.data[i]->name) + 1;
|
||||
return mkstat(stat, dir, wname, len, IXP_DMREAD);
|
||||
}
|
||||
break;
|
||||
}
|
||||
else if(dir_type == FsDGclient)
|
||||
return mkstat(stat, dir, wname, strlen(client.data[dir_i1]->tags), IXP_DMREAD | IXP_DMWRITE);
|
||||
break;
|
||||
case FsFdata:
|
||||
return mkstat(stat, dir, wname, (dir_i1 == label.size) ? 0 : strlen(label.data[dir_i1]->data),
|
||||
@ -631,7 +631,7 @@ xcreate(IXPConn *c, Fcall *fcall)
|
||||
return "illegal file name";
|
||||
type = qpath_type(m->qid.path);
|
||||
switch(type) {
|
||||
case FsDbar:
|
||||
case FsDbars:
|
||||
create_bar(fcall->name, False);
|
||||
break;
|
||||
default:
|
||||
@ -674,13 +674,13 @@ xremove(IXPConn *c, Fcall *fcall)
|
||||
decode_qpath(&m->qid, &type, &i1, &i2, &i3);
|
||||
if((i1 == -1) || (i2 == -1) || (i3 == -1))
|
||||
return Enofile;
|
||||
if(type != FsDlabel)
|
||||
if(type != FsDbar)
|
||||
return Enoperm;
|
||||
/* clunk */
|
||||
cext_vdetach(ixp_map2vector(&c->map), m);
|
||||
free(m);
|
||||
switch(type) {
|
||||
case FsDlabel:
|
||||
case FsDbar:
|
||||
{
|
||||
Bar *l = label.data[i1];
|
||||
if(l->intern)
|
||||
@ -740,7 +740,7 @@ xread(IXPConn *c, Fcall *fcall)
|
||||
p = ixp_enc_stat(p, &stat);
|
||||
}
|
||||
break;
|
||||
case FsDbar:
|
||||
case FsDbars:
|
||||
/* jump to offset */
|
||||
len = 0;
|
||||
for(i = 0; i < label.size; i++) {
|
||||
@ -758,6 +758,26 @@ xread(IXPConn *c, Fcall *fcall)
|
||||
p = ixp_enc_stat(p, &stat);
|
||||
}
|
||||
break;
|
||||
case FsDviews:
|
||||
/* jump to offset */
|
||||
len = 0;
|
||||
if(view.size)
|
||||
len += type2stat(&stat, "sel", &m->qid);
|
||||
for(i = 0; i < view.size; i++) {
|
||||
len += type2stat(&stat, view.data[i]->name, &m->qid);
|
||||
if(len <= fcall->offset)
|
||||
continue;
|
||||
break;
|
||||
}
|
||||
/* offset found, proceeding */
|
||||
for(; i < view.size; i++) {
|
||||
len = type2stat(&stat, view.data[i]->name, &m->qid);
|
||||
if(fcall->count + len > fcall->iounit)
|
||||
break;
|
||||
fcall->count += len;
|
||||
p = ixp_enc_stat(p, &stat);
|
||||
}
|
||||
break;
|
||||
case FsDview:
|
||||
/* jump to offset */
|
||||
len = 0;
|
||||
@ -841,26 +861,6 @@ xread(IXPConn *c, Fcall *fcall)
|
||||
else if(fcall->count)
|
||||
memcpy(p, def.rules + fcall->offset, fcall->count);
|
||||
break;
|
||||
case FsFtags:
|
||||
if(m->qid.dir_type == FsDroot) {
|
||||
len = 0;
|
||||
/* jump to offset */
|
||||
for(i = 0; i < view.size; i++) {
|
||||
len += strlen(view.data[i]->name) + 1;
|
||||
if(len <= fcall->offset)
|
||||
continue;
|
||||
}
|
||||
/* offset found, proceeding */
|
||||
for(; i < view.size; i++) {
|
||||
len = strlen(view.data[i]->name) + 1;
|
||||
if(fcall->count + len > fcall->iounit)
|
||||
break;
|
||||
memcpy(p + fcall->count, view.data[i]->name, len - 1);
|
||||
memcpy(p + fcall->count + len - 1, "\n", 1);
|
||||
fcall->count += len;
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@ -876,16 +876,14 @@ xread(IXPConn *c, Fcall *fcall)
|
||||
p = ixp_enc_stat(p, &stat);
|
||||
fcall->count += type2stat(&stat, "bar", &m->qid);
|
||||
p = ixp_enc_stat(p, &stat);
|
||||
if(view.size) {
|
||||
fcall->count += type2stat(&stat, "tags", &m->qid);
|
||||
p = ixp_enc_stat(p, &stat);
|
||||
}
|
||||
if(client.size) {
|
||||
fcall->count += type2stat(&stat, "clients", &m->qid);
|
||||
fcall->count += type2stat(&stat, "client", &m->qid);
|
||||
p = ixp_enc_stat(p, &stat);
|
||||
}
|
||||
if(view.size) {
|
||||
fcall->count += type2stat(&stat, "view", &m->qid);
|
||||
p = ixp_enc_stat(p, &stat);
|
||||
}
|
||||
fcall->count += type2stat(&stat, "view", &m->qid);
|
||||
p = ixp_enc_stat(p, &stat);
|
||||
break;
|
||||
case FsDclients:
|
||||
for(i = 0; i < client.size; i++) {
|
||||
@ -897,7 +895,20 @@ xread(IXPConn *c, Fcall *fcall)
|
||||
p = ixp_enc_stat(p, &stat);
|
||||
}
|
||||
break;
|
||||
case FsDbar:
|
||||
case FsDviews:
|
||||
if(view.size) {
|
||||
fcall->count = type2stat(&stat, "sel", &m->qid);
|
||||
p = ixp_enc_stat(p, &stat);
|
||||
}
|
||||
for(i = 0; i < view.size; i++) {
|
||||
len = type2stat(&stat, view.data[i]->name, &m->qid);
|
||||
if(fcall->count + len > fcall->iounit)
|
||||
break;
|
||||
fcall->count += len;
|
||||
p = ixp_enc_stat(p, &stat);
|
||||
}
|
||||
break;
|
||||
case FsDbars:
|
||||
for(i = 0; i < label.size; i++) {
|
||||
len = type2stat(&stat, label.data[i]->name, &m->qid);
|
||||
if(fcall->count + len > fcall->iounit)
|
||||
@ -906,7 +917,7 @@ xread(IXPConn *c, Fcall *fcall)
|
||||
p = ixp_enc_stat(p, &stat);
|
||||
}
|
||||
break;
|
||||
case FsDlabel:
|
||||
case FsDbar:
|
||||
if(i1 >= label.size)
|
||||
return Enofile;
|
||||
fcall->count = type2stat(&stat, "colors", &m->qid);
|
||||
@ -1035,28 +1046,14 @@ xread(IXPConn *c, Fcall *fcall)
|
||||
}
|
||||
break;
|
||||
case FsFtags:
|
||||
switch(m->qid.dir_type) {
|
||||
case FsDclient:
|
||||
{
|
||||
Client *c = view.data[i1]->area.data[i2]->frame.data[i3]->client;
|
||||
if((fcall->count = strlen(c->tags)))
|
||||
memcpy(p, c->tags, fcall->count);
|
||||
}
|
||||
break;
|
||||
case FsDGclient:
|
||||
if(m->qid.dir_type == FsDclient) {
|
||||
Client *c = view.data[i1]->area.data[i2]->frame.data[i3]->client;
|
||||
if((fcall->count = strlen(c->tags)))
|
||||
memcpy(p, c->tags, fcall->count);
|
||||
}
|
||||
else if(m->qid.dir_type == FsDGclient) {
|
||||
if((fcall->count = strlen(client.data[i1]->tags)))
|
||||
memcpy(p, client.data[i1]->tags, fcall->count);
|
||||
break;
|
||||
default:
|
||||
for(i = 0; i < view.size; i++) {
|
||||
len = strlen(view.data[i]->name) + 1;
|
||||
if(fcall->count + len > fcall->iounit)
|
||||
break;
|
||||
memcpy(p + fcall->count, view.data[i]->name, len - 1);
|
||||
memcpy(p + fcall->count + len - 1, "\n", 1);
|
||||
fcall->count += len;
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case FsFdata:
|
||||
|
@ -37,13 +37,14 @@ enum {
|
||||
enum {
|
||||
FsDroot,
|
||||
FsDdef,
|
||||
FsDviews,
|
||||
FsDview,
|
||||
FsDarea,
|
||||
FsDclients,
|
||||
FsDclient,
|
||||
FsDGclient,
|
||||
FsDbars,
|
||||
FsDbar,
|
||||
FsDlabel,
|
||||
FsFdata,
|
||||
FsFcolors,
|
||||
FsFfont,
|
||||
@ -58,9 +59,9 @@ enum {
|
||||
FsFctl,
|
||||
FsFname,
|
||||
FsFrules,
|
||||
FsFtags,
|
||||
FsFclass,
|
||||
FsFmode
|
||||
FsFmode,
|
||||
FsFtags
|
||||
};
|
||||
|
||||
enum { MIN_COLWIDTH = 64 };
|
||||
|
42
rc/wmiirc
42
rc/wmiirc
@ -111,51 +111,51 @@ do
|
||||
Key)
|
||||
case "$1" in
|
||||
$MODKEY-$LEFT)
|
||||
xwrite /view/ctl select prev;;
|
||||
$MODKEY-$RIGHT)
|
||||
xwrite /view/ctl select next;;
|
||||
$MODKEY-$DOWN)
|
||||
xwrite /view/sel/ctl select next;;
|
||||
$MODKEY-$UP)
|
||||
xwrite /view/sel/ctl select prev;;
|
||||
$MODKEY-$RIGHT)
|
||||
xwrite /view/sel/ctl select next;;
|
||||
$MODKEY-$DOWN)
|
||||
xwrite /view/sel/sel/ctl select next;;
|
||||
$MODKEY-$UP)
|
||||
xwrite /view/sel/sel/ctl select prev;;
|
||||
$MODKEY-space)
|
||||
xwrite /view/ctl select toggle;;
|
||||
xwrite /view/sel/ctl select toggle;;
|
||||
$MODKEY-d)
|
||||
xwrite /view/sel/mode default;;
|
||||
xwrite /view/sel/sel/mode default;;
|
||||
$MODKEY-s)
|
||||
xwrite /view/sel/mode stack;;
|
||||
xwrite /view/sel/sel/mode stack;;
|
||||
$MODKEY-m)
|
||||
xwrite /view/sel/mode max;;
|
||||
xwrite /view/sel/sel/mode max;;
|
||||
$MODKEY-a)
|
||||
`proglist CONFPREFIX/wmii-3:$HOME/.wmii-3 | wmiimenu` &;;
|
||||
$MODKEY-p)
|
||||
extern `wmiimenu </tmp/ns.$USER.$DISPLAY/progs` &;;
|
||||
$MODKEY-t)
|
||||
xwrite /ctl view "`wmiir read /tags | sort | wmiimenu`" &;;
|
||||
xwrite /ctl view "`wmiir read /view | awk '{print $10}' | grep -v sel | wmiimenu`" &;;
|
||||
$MODKEY-[0-9])
|
||||
xwrite /ctl view `echo $1 | sed 's/.*-//'`;;
|
||||
$MODKEY-Return)
|
||||
extern xterm &;;
|
||||
$MODKEY-Shift-h)
|
||||
xwrite /view/sel/sel/ctl sendto prev;;
|
||||
xwrite /view/sel/sel/sel/ctl sendto prev;;
|
||||
$MODKEY-Shift-l)
|
||||
xwrite /view/sel/sel/ctl sendto next;;
|
||||
xwrite /view/sel/sel/sel/ctl sendto next;;
|
||||
$MODKEY-Shift-space)
|
||||
xwrite /view/sel/sel/ctl sendto toggle;;
|
||||
xwrite /view/sel/sel/sel/ctl sendto toggle;;
|
||||
$MODKEY-Shift-c)
|
||||
xwrite /view/sel/sel/ctl kill;;
|
||||
xwrite /view/sel/sel/sel/ctl kill;;
|
||||
$MODKEY-Shift-t)
|
||||
xwrite /view/sel/sel/tags "`wmiir read /view/sel/sel/tags | wmiimenu`" &;;
|
||||
xwrite /view/sel/sel/sel/tags "`wmiir read /view/sel/sel/sel/tags | wmiimenu`" &;;
|
||||
$MODKEY-Shift-[0-9])
|
||||
xwrite /view/sel/sel/tags `echo $1 | sed 's/.*-//'`;;
|
||||
xwrite /view/sel/sel/sel/tags `echo $1 | sed 's/.*-//'`;;
|
||||
$MODKEY-Control-$LEFT)
|
||||
xwrite /view/sel/sel/ctl swap prev;;
|
||||
xwrite /view/sel/sel/sel/ctl swap prev;;
|
||||
$MODKEY-Control-$RIGHT)
|
||||
xwrite /view/sel/sel/ctl swap next;;
|
||||
xwrite /view/sel/sel/sel/ctl swap next;;
|
||||
$MODKEY-Control-$DOWN)
|
||||
xwrite /view/sel/sel/ctl swap down;;
|
||||
xwrite /view/sel/sel/sel/ctl swap down;;
|
||||
$MODKEY-Control-$UP)
|
||||
xwrite /view/sel/sel/ctl swap up;;
|
||||
xwrite /view/sel/sel/sel/ctl swap up;;
|
||||
esac;;
|
||||
esac
|
||||
done
|
||||
|
Loading…
x
Reference in New Issue
Block a user