Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Experimental html based terminal emulator using pyte and webkit.
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
bin
cljs
doc Short terminal<->client protocol description.
schirm Allow setting the iframes url when entering frame mode.
support
.gitignore Update setup.py.
.hgignore
.hgtags
LICENCE Arranging existing files into a proper project structure.
README.md
setup.py

README.md

Schirm

A Linux compatible terminal emulator which exposes additional HTML rendering modes to client programs.

Uses Python, PyQT and ClojureScript.

Installing

Requires Python 2.7 and PyQT4

Get the source:

$ git clone https://github.com/hoeck/schirm.git

Optionally install xsel (https://github.com/kfish/xsel or apt-get install xsel) to be able to paste the current X selection using Shift-Insert. Middle-click selection works without additional programs.

Run:

$ cd schirm
$ python -m schirm

or install and then run it:

$ python setup.py install
$ schirm

Runs all your favorite commandline applications, including:

mc, htop, vim, grep --color ...

Example Programs

See the demos in support/

  • they use the schirmclient.py lib to show HTML documents in the terminal

  • add them to your PATH:

    $ PATH="$PATH:<path-to-schirm>/support"
    

    or invoke them with <path-to-schirm>/support/<sXXX>

  • get and view some html:

    $ curl news.ycombinator.com | sview
    
  • preview a Markdown document:

    $ markdown README.md | sview
    
  • show a tree of a directory (uses d3.js, slow/crashing for large directories):

    $ stree .
    

    or

    $ stree --circle
    
  • view an image:

    $ sview schirm-logo.png
    

    with interactive rescaling buttons:

    $ sview -i schirm-logo.png
    
  • edit text using codemirror:

    $ sedit README.md
    

Styling

Place your own styles into ~/.schirm/user.css and restart the terminal. See schirm/resources/user.css for the default stylesheet.

In the terminal window, right click for the context menu and select inspect to open the webkit devtools. Right-click on the very left of the terminal window to open a context menu containing the reload item to restart the terminal

Client API

Escape-sequence based, works with every programming language which can write bytes to stdout. See support/schirmclient.py.

Missing Features/Defects

  • no terminal mouse click support
  • only 16 colors
  • only UTF-8
  • slow Application mode (e.g. fullscreen ncurses apps)
  • cat <1G file> will bring everything to a halt
  • emulation glitches (e.g. when resizing htop)

Similar Programs

Licence

Copyright (C) 2012 Erik Soehnel

Licenced under the GPLv3.

Client library is BSD licenced.

Something went wrong with that request. Please try again.