Skip to content
/ schirm Public

Experimental html based terminal emulator using pyte and webkit.

License

Notifications You must be signed in to change notification settings

hoeck/schirm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Schirm

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

Demo

Installing

Requires Python 2.7 and PyQT4 (and ClojureScript for development).

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.

About

Experimental html based terminal emulator using pyte and webkit.

Resources

License

Stars

Watchers

Forks

Packages

No packages published