-
Notifications
You must be signed in to change notification settings - Fork 0
/
plumbing
191 lines (149 loc) · 4.51 KB
/
plumbing
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
# to update: cp $home/lib/plumbing /mnt/plumb/rules
# don't fucking append to the file
editor = jam
browser = mothra
# man index entries are synthesized
type is text
data matches '([a-zA-Z¡-0-9_\-./]+)\(([0-9])\)'
plumb start window -dy 800 man $2 $1 '; read'
# images
type is text
data matches '[a-zA-Z¡-0-9_\-.,/]+'
data matches '([a-zA-Z¡-0-9_\-.,/]+)\.(jpe?g|JPE?G|gif|GIF|tiff?|TIFF?|ppm|PPM|bit|BIT|png|PNG|pgm|PGM|bmp|BMP|yuv|YUV|tga|TGA|svg|SVG)'
arg isfile $0
plumb to image
plumb client page -wi
# audio
plumb to audio
type is text
data matches '.+'
data matches '.+\.(mp3|MP3|ogg|OGG|flac|FLAC|wav|WAV|au|AU|mid|MID|mus|MUS|m3u|M3U|pls|PLS|opus|OPUS|aac|AAC|m4a|M4A|mod|MOD)'
arg isfile $0
plumb start window play -o /fd/1 ''''$file'''' >[2]/dev/null | audio/pplay -b
type is text
data matches '[a-zA-Z¡-0-9_\-.,/]+'
data matches '([a-zA-Z¡-0-9_\-.,/]+)\.(pcm|PCM)'
arg isfile $0
plumb start window audio/pplay -b $file
type is text
data matches '[a-zA-Z¡-0-9_\-.,/]+'
data matches '([a-zA-Z¡-0-9_\-.,/]+)\.(xm|XM)'
arg isfile $0
plumb start window audio/ft2 $file
# treason/yt
dst is video
plumb to video
plumb client window treason
type is text
data matches '.+\.(mkv|MKV|mp4|MP4|webm|WEBM)'
data set $file
plumb to video
plumb client window -dx 480 -dy 360 echo ''''rc -c ''''''''treason ''''''''''''$file''''''''''''''''| rc
#type is text
#data matches 'https?://(www\.youtube\.com/watch\?v=|youtu\.be/)...........'
#plumb start window -scroll 'ssh qwx@tcp!u11!17666 ''DISPLAY=:0 mpv 2>/dev/null '$0''''
type is text
data matches 'https?://www.youtube\.com/watch\?v=[^ "]+|https?://youtu\.be/[^ "]+'
plumb start window yv ''''$0''''
type is text
data matches 'youtube\.com/watch\?v=([^ "]+)|youtu\.be/([^ "]+)'
plumb start window yv ''''https://$0''''
# emu
type is text
data matches '.+\.(2600|bin|BIN|gb|GB|gbc|GBC|gba|GBA|nes|NES|smc|SMC)'
data set $file
plumb start window echo ''''rc -c ''''''''pemu ''''''''''''$file''''''''''''''''| rc
# docs
type is text
data matches '[a-zA-Z¡-0-9_\-.,/]+\.[Zz][Ii][Pp]'
plumb to image
plumb client page -wi
# notes
type is text
data matches '\[[^\]]*\]\(([^/][^\)]*)\)'
plumb start note/add $wdir/$1
type is text
data matches '\[[^\]]*\]\((/[^\)]+)\)'
plumb start note/add $1
# web
type is text
data matches 'file:/[^ ]+'
plumb to web
plumb client window $browser
type is text
data matches '\[[^\]]*\]\((https?://[^\)]*)\)'
data set $1
plumb to web
plumb client window $browser
#data matches 'https?://.+|/tmp/webshit.*|[₀-₉]+|hpost.*'
#plumb to webshit
#plumb client window webshit
# thanks cinap
type is text
data matches 'https?://twitter.com/(.*)'
data set https://nitter.eu/$1
plumb to web
plumb client window $browser
type is text
data matches https?://imgur.com/a/([a-zA-Z0-9]+)
data set https://imgin.voidnet.tech/a/$1
plumb to web
plumb client window $browser
# gemnine
type is text
data matches 'gemini://[^ ]+'
plumb to gemini
plumb client window gemnine -w $0
# screenshots: show window image in page (thanks sigrid)
# probably would be better to save to /tmp/scr.png automatically and page that
type is text
data matches '/dev/wsys/.*/window$'
plumb start page -wi $0
# open debugger for suicides (thanks kvik, ori)
type is text
data matches '[^ ]+ ([0-9]+): suicide:.*'
plumb to none
plumb start window lstk $1
type is text
data matches '[^ ]+ +([0-9]+) +[0-9]+ +[0-9:]+ +[0-9:]+ +[0-9]+K +[A-Z][^ ]+ +[^ ]+'
plumb to none
plumb start window lstk $1
type is text
data matches '[^ ]+ +([0-9]+) +[0-9:]+ +[0-9:]+ +[0-9]+K +[A-Z][^ ]+ +[^ ]+'
plumb to none
plumb start window lstk $1
# overwrite default mail rules
type is text
data matches '[a-zA-Z0-9_+.\-]+@[a-zA-Z0-9_+.\-]*'
plumb to sendmail
plumb start window rc -c '''fo; echo -n ''''>> '''' ; s=`"{read -n 1 | ssam ,s,\n,,}; mail -s $s '''$0
type is text
data matches '[a-zA-Z¡-0-9_\-./]+'
data matches '/mail/fs/[a-zA-Z¡-0-9/]+/[0-9]+'
plumb to showmail
plumb start window -noscroll -r 4 120 750 1000 upas/nedmail -s $0
# vdir/fm
# insane?
#src is vdir
#data matches '(.*)‡(.*)'
#type is text
#plumb start window -cd $1 rc -c ''$2''
src is vdir
type is text
arg isdir $data
plumb start window -cd $data f
src is vdirw
type is text
arg isdir $data
plumb start window -cd $data rc
# umbraticus' explorer(1)
wdir is /mnt/explorer
plumb to explorer
data matches [a-zA-Z¡-0-9_\-+.,!/]+
arg isdir $data
plumb to explorer
plumb client window explorer
# umbraticus' bandcamp
data matches 'https?://.*\.bandcamp.com/(track|album)/[^ /]+'
plumb start window -scroll -r 0 416 9000 756 bandcamp $data
include basic