Skip to main content

Orcsome is a scripting extension for NETWM compliant window managers. It can help a lot to customize your work environment.

Motivation

I’m old awesome user with two year experience. I like it not for tiling but for lua and ability to tune its behavior. But for a very long time some problems stay unsolved:

  • Grey swing windows. I was hoping it will be fixed in java7 but no luck.

  • Input focus for swing windows. Awesome treats such windows as inputless.

  • Random focus problems. For example sometimes evince or opera save dialog are not take focus.

Simply put, awesome sucks as window manager.

I need a robust wm with long devel history, small, fast, candy and scriptable on normal language (hello fvwm). But there are a plenty of robust, small, fast and candy only wm’s. There is no any scriptable.

So I decide to write tiny wm helper application which will be compatible with many window managers and allow to configure flexible workflows.

Features

  • Written on python. It means very hackable.

  • Optimization, cpu and memory efficiency are top goals (cffi is used for xlib bindings).

  • Extensive use of python syntax to provide easy and expressive eDSL in configuration script.

  • Supports NETWM standards.

  • Very thin wrapper around X. You can use existing xlib background.

Installation

From PyPI

I’m regularly upload packages of new versions. So you can install orcsome with easy_install:

sudo easy_install orcsome

or pip:

sudo pip install orcsome

From source

git clone --depth=1 git://github.com/baverman/orcsome.git
cd orcsome
python setup.py build
sudo python setup.py install

If you often pull changes from master brunch I recommend you following recipe:

  • First install orcsome in develop mode (remove any orcsome dirs in site-packages before that):

    sudo python setup.py develop
  • Then, if you want use latest version from master branch simply do:

    cd cloned/orcsome/dir
    git pull

ArchLinux

There is orcsome package in AUR.

Documentation

Quick start

The most common functionality needed is to bind hot keys to spawn or raise applications.

Edit ~/.config/orcsome/rc.py:

from orcsome import get_wm
from orcsome.actions import *

wm = get_wm()

wm.on_key('Shift+Mod+r')(
    restart)

wm.on_key('Ctrl+Alt+p')(
    spawn_or_raise('urxvtc -name ncmpcpp -e ncmpcpp', name='ncmpcpp'))

wm.on_key('Mod+n')(
    spawn_or_raise('urxvtc -name mutt -e mutt', name='mutt'))

wm.on_key('Mod+k')(
    spawn_or_raise('urxvtc -name rtorrent -e rtorrent-screen', name='rtorrent'))

And start orcsome. That’s all.

TODO

  • Tests

  • Python3 port

  • API to configure window geometry

  • Layouts (tiling)

  • Multiple screens

Contacts

You can create issues on github.

Or mail directly to bobrov at vl dot ru.

Metadata

Release files for orcsome 0.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for orcsome 0.6
File Size Uploaded
orcsome-0.6.tar.gz 34.8 kB Details

Release files / orcsome-0.6.tar.gz

Download URL orcsome-0.6.tar.gz
Size 34.8 kB
Tags Source
SHA-256 checksum
How to use checksums
8769a21b062046c5c51c6a2c95e3364dd66bc537283e3669f58950de79bcc57a
BLAKE2b-256 checksum
How to use checksums
63fe198d392fab847d7479fe040e08f9cc658ad5e73e75b2b9953f23078e0f6e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.6 This release

1 release file

0.5.0

0.3.2

1 release file

0.3.1

1 release file

0.3

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page