>>3 In the case of rio, the real power comes from the power of the way the system operates on the whole. There is a simple program called the plumber, it could be used in linux, dmenu does something /similar/, it just takes in a string then runs it through a rules file that decides what to do with it. That could be passing it to a script or program, like sending a url to a browser or a song to play(1). It's trival, and seemingly not terribly important, but because it essentially works on all text in the whole system it becomes pretty powerful. For instance plumbing the string play(1) above on my system opens a troff formated version of the manual for play. Plumbing a text file's name opens it in acme. Listing a dir then plumbing a picture or song just opens it. Sure you can get by with typing "mpv startOfFileName^t" most of the time on linux sometimes not, often i ended up needing to go back and add quotes because some annoying character in the file. clicking the name is just faster. It's especially faster when considering someone who mistypes just often enough to need to enter the command multiple times to do what you want. No need to remember the full command to do something specific either, have a rule for "_t ([^ ]+{png|gif|bmp|jpeg|jpg})" that pipes the file through a check for a hash of the file check to see if that hash exists in a cache open if it does, or else resize the image to be smaller and save it in the cache with it's hash name and opens it and now any time you want to preview an image without opening the full image just add the little _t to the start and then plumb it. Ya, you can do all that with a script, but then you have to remember the script name, which i suppose could be _t but then if you want something else also named _t you have to handle that in the script, and now there's dissimilar things in the same script file. With the plumbing rules the _t is contextual to the rest of the text which already filters for image file extensions.
Acme works with the plumber but also has another layer of plumbing, it will pipe any highlighted text as the stdin for a command that is middle clicked. That command can be a script, a program, or a shell command you just wrote into the menu seconds before to do some one off thing. The gui in this case becomes whatever you need it to be, extending it on the fly as you go, by writing simple rc scripts or commands, putting the "buttons" (just text) anywhere you want them to be. I will say, it's better to know C in plan9. Rc is similar enough to bash that it's not hard to move over. but not knowing C can be a limiting factor. Tho, for what it's worth, the suggested http(s) server in 9front is written entirely in rc, no c code at all, so what can be done with simple shell scripts is quite substantial. This is possible because even network sockets in plan9 are just text files.
Anyway i think i've written more than enough, and don't want to derail too hard.
In the case of rio, the real power comes from the power of the way the system operates on the whole. There is a simple program called the plumber, it could be used in linux, dmenu does something /similar/, it just takes in a string then runs it through a rules file that decides what to do with it. That could be passing it to a script or program, like sending a url to a browser or a song to play(1).
It's trival, and seemingly not terribly important, but because it essentially works on all text in the whole system it becomes pretty powerful.
For instance plumbing the string play(1) above on my system opens a troff formated version of the manual for play. Plumbing a text file's name opens it in acme. Listing a dir then plumbing a picture or song just opens it. Sure you can get by with typing
"mpv startOfFileName^t"most of the time on linux sometimes not, often i ended up needing to go back and add quotes because some annoying character in the file. clicking the name is just faster.It's especially faster when considering someone who mistypes just often enough to need to enter the command multiple times to do what you want.
No need to remember the full command to do something specific either, have a rule for "_t ([^ ]+{png|gif|bmp|jpeg|jpg})" that pipes the file through a check for a hash of the file check to see if that hash exists in a cache open if it does, or else resize the image to be smaller and save it in the cache with it's hash name and opens it and now any time you want to preview an image without opening the full image just add the little _t to the start and then plumb it.
Ya, you can do all that with a script, but then you have to remember the script name, which i suppose could be _t but then if you want something else also named _t you have to handle that in the script, and now there's dissimilar things in the same script file. With the plumbing rules the _t is contextual to the rest of the text which already filters for image file extensions.
Acme works with the plumber but also has another layer of plumbing, it will pipe any highlighted text as the stdin for a command that is middle clicked. That command can be a script, a program, or a shell command you just wrote into the menu seconds before to do some one off thing. The gui in this case becomes whatever you need it to be, extending it on the fly as you go, by writing simple rc scripts or commands, putting the "buttons" (just text) anywhere you want them to be.
I will say, it's better to know C in plan9. Rc is similar enough to bash that it's not hard to move over. but not knowing C can be a limiting factor. Tho, for what it's worth, the suggested http(s) server in 9front is written entirely in rc, no c code at all, so what can be done with simple shell scripts is quite substantial. This is possible because even network sockets in plan9 are just text files.
Anyway i think i've written more than enough, and don't want to derail too hard.