
Plotinus – A searchable command palette in every modern GTK+ application - Fnoord
https://github.com/p-e-w/plotinus
======
derefr
I’ve always pictured the opposite—rather than taking a GUI and bolting on
“fake” command-line like features, why not have a base-class for GUI “main”
windows that’s essentially already a true, fully-featured terminal emulator
showing the stdin/stdout of the executing process?

Then, as you would add graphical controls to the main window in the layout
builder, the terminal-emulator-interface part of the window would get squished
down further until it just looks like a status-bar. (Which is essentially what
status bars _are_ : a very underpowered terminal-emulator only capable of
showing the last line of stdout.)

But click [or tab into, or Ctrl-` to activate] the thing, and it’d “pop down”,
adding more height to the window, if there’s room; or “pop up”, resizing the
rest of the window narrower; or just overlay translucently on top, like in
games with consoles.

Opening this wouldn’t give you a login shell, exactly—it’d be the stdin of the
program. But the toolkit would hook the stdin and turn it into a REPL, based
on the CORBA/DCOM/DBUS service-objects available in the program; and the GUI
toolkit would then enhance this REPL, by introspecting these service-objects,
to enable both textual autocomplete/auto-validate of commands, and the drawing
of these sorts of graphical command-palettes. (But you’d be able to “shell
out” to process these objects with commands, like you could in scripting
languages.)

Or, to put that another way: Plan9’s Acme editor is a cool idea, making the
whole editor into interface where you can just write magic runes on the walls
and then activate them. But there’s no real _understanding_ or _support_ for
those runes, because they’re fundamentally opaque Plan9 executable binaries.
What would this look like if we translated it into the object-oriented world
that GUIs live in? What would Smalltalk’s Acme be like? And then, what if all
applications in the OS were built on top of it, the way that you can build
applications as major modes in Emacs or as plugins in Blender?

Or, to put than _another_ other way: if Automator in macOS can _already_ latch
onto a running program’s service API and tell it to do things as a batch
script, why can’t I _interactively_ access the same APIs from _inside_ the
running program itself, as an automatic benefit of using whatever technologies
power Automator? Why can’t I do the equivalent of opening the Smalltalk
Inspector on my GUI program?

~~~
baybal2
What you think would've been great, but the entire gtk ecosystem has been
wrecked by fallout from Gnome 3.0, and following demise of the community.

Open source projects like GNOME paid a heavy price for not being able to deal
with people like Lennart resolutely.

I see it as a great unjustice that 2-3-4 drama queen personas can hound hound
out 50+ most productive developers out of the ecosystem, and not the other way
around.

This is how Gnome 3.0 was a private project of a few drama queen personas who
hijacked an open source project from 100+ people

------
pcr910303
For macOS users - if you haven't known before, a similar functionality is
built-in to macOS (Props to Apple for this!).

Cmd-Shift-/ (a.k.a Cmd-?) opens the help menu item, where you can just type in
and it filters all of the menu items matching the query. One can press return
to execute the item, or discover new shortcuts to items.

------
markandrewj
Awesome. This is something I like about MacOS, and a feature that that Unity
had before Canonical switched to Gnome, that I wish was adopted by more
desktop environments.

------
pjmlp
Looks quite interesting!

Kudos for using Vala, it needs a bit more love, instead of slowing down GNOME
with GJS everywhere.

------
Fnoord
It is available in Arch. I got it to compile on Ubuntu without much hassle. On
Nix, it is available but install conflicted with another package. Didn't look
into it further.

Keybind is already in use for some Gtk+ applications (Firefox IIRC), and it
also makes it painful how some apps I use are not Gtk+ but say Qt... which
makes me wonder if there's a thing like this for Qt?

~~~
yjftsjthsd-h
> On Nix, it is available but install conflicted with another package

Huh. I was sort of under the impression that nix was supposed to make that
impossible.

~~~
Fnoord
I suppose improbable rather than impossible.

Here is the error:

    
    
      error: The unique option `environment.variables.XDG_DATA_DIRS' is defined multiple times, in:
      - /nix/var/nix/profiles/per-user/root/channels/nixos/nixos/modules/programs/plotinus.nix
      - /nix/var/nix/profiles/per-user/root/channels/nixos/nixos/modules/config/shells-environment.nix.
      (use '--show-trace' to show detailed location information)

------
Philipp0205
This is just awesome. To my regret many GTK application don't care much about
keyboard shortcuts any more. That's why I personally often use terminal
applications. This project could actually make many applications usable again.

------
madc
Last commit: two years ago..

~~~
oneshot-a4yukdk
It's because gtk+ 4 will no longer support general-purpose loadable modules –
the very feature which makes the palette possible. Also the maintainer is
disappointed with the attitude of GNOME to third party developers:
[https://github.com/p-e-w/argos/issues/75#issuecomment-475844...](https://github.com/p-e-w/argos/issues/75#issuecomment-475844513)

~~~
noobermin
Man this is terrible! I was warmed to Gnome 3 (I like the experience unlike
most of the loud crowd) but this is inexcusable. Literally a breaking
experience for hundreds of third part applications for some reason I just
don't understand.

------
cozzyd
This looks useful although I feel like it needs a better default shortcut.
Ctrl-Shift-P is emacsish in its contortions.

~~~
DanAtC
Ctrl-Shift-P is also the command palette in vscode

~~~
Fnoord
And Sublime Text, Fman, Atom, ...

------
phkahler
Great! Will this enable creation of a useful voice interface?

~~~
franga2000
It does look like a good first step towards that. If I ever find that one
service I used that one time to build context-aware intent recognition, I'll
definitely try that.

------
noobermin
Seems dead, last commit was in 2017.

------
vmchale
Nice! I love GUI projects.

