Panelize and The Ultimate IDE

I always find myself in a terminal typing in cd and ls. These are great commands, but over time this gets fairly annoying. There must be a better way to get to files than this while being able to keep the integrated nature  of my terminal programs. Obviously I could have created an alias, but that doesn't get rid of the typing issue. Even typing 'c' 200 times in a day gets tiring.

Xiki, a new terminal emulator on the market, solves this problem with clickable ls listings. 9term, a Plan 9 inspired terminal, also sort of solves this problem with plumbing, but not entirely. Plumbing is taking a piece of data (in 9term's case text) and sending it to a program called 'plumber'. plumber then interprets this data to figure out what program to run. Unfortunately I don't think plumbing can be done to directories out of the box, and even if it could, plumbing directories could get annoying too. So why not use Xiki? Mainly because it's bloated, not available everywhere and does too much. The fact that it used Ruby made me cringe too. Not saying Ruby is bad, I love Ruby, but there are vt100 emulators that are made with C that are flipping slow. Anyways, my initial solution was to take 9term and Xiki's solution s and sort of combine them. What I did was configure LC_COLORS to make every file and directory appear with an underline.

I think that looks reasonable.

Then the second phase was to get xterm to recognize mouse clicks or use GPM and figure out what I had clicked. Only items underlined can be clicked. When an item is clicked it was going to be sent to xdg-open, a program that opens files based on extensions, or if it was a directory, ls would be run again. I quickly abandoned that idea because I assumed it would turn out to be an ugly hack.

Here are two pictures of what Xiki and 9term do:

Xiki

Best picture of Xiki demonstrating clickable ls I could find...


9term



Then yesterday, about a month after my first attempt of simplifying my environment, I had a great idea. Edit the source code of a file manager that can have a tree view of files and directories to act like a dock or panel. What made this even greater was shortly after I thought of that, I remembered that X windows have many properties and there are programs to edit those properties.  After a couple of hours with xprop and reading tint2 and xfce-panel code, I knew what needed to be done to get a panel-like window. I wrote down my tiny experiments into a nice short script to turn any window into a vertical panel on the left side of my screen.

Fuzzy clock FTW.

My environment now is really starting to look, and behave like, a real IDE.  When I maximize windows they do not go past the two panels. It's great, and now with Panelize, I can sticky a program anywhere to expand my "IDE". I'm sure some of you are already thinking of some interesting uses for this. I'd like to hear some cool ideas in the comments.

Here are a few that I've just come up with on the spot:
  • Remote editing support with SSHFS.
  • Swap in any editor.
  • Use multiple editors.
  • Actually swap any component. It's your operating system.
  • Easier anything development.
  • Extremely extensible.
  • Theoretically portable setup. Can support but is not limited to ANY graphical user interface.
Download Panelize from GitHub

Comments

Popular Posts