• Stars
    star
    343
  • Rank 123,371 (Top 3 %)
  • Language
    C
  • Created almost 15 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

portable version of OpenBSD's cwm(1) window manager
This is a port of OpenBSD's excellent cwm[0] to Linux and other Unices.

    cwm is a window manager for X11 which contains many features that
    concentrate on the efficiency and transparency of window
    management.  cwm also aims to maintain the simplest and most
    pleasant aesthetic.

This port requires pkg-config, Xft, Xinerama and Xrandr.  The included Makefile
should work with both GNU make and BSD make.  It has been built successfully on
OpenBSD, FreeBSD, NetBSD, OS X 10.9 and Linux.

This version actively tracks changes in the OpenBSD CVS repository.
Releases are roughly coordinated.

The revision controlled version is at https://github.com/leahneukirchen/cwm
Releases can be found at http://leahneukirchen.org/releases

You are welcome to join the IRC channel ##cwm on irc.libera.chat
to talk about cwm.


ChangeLog:

2012-05-02: First public release 5.1 of portable cwm.

2014-04-13: Second public release 5.5 of portable cwm.

User visible changes (for a full list including smaller bug fixes, see
http://www.openbsd.org/plus.html ff.)

Changes made between OpenBSD 5.1 and 5.2
* Fixed cwm(1) atom (WM_PROTOCOLS) style handing; closing a window will no
  longer close entire application if the client supports CLIENT_PROTO_DELETE.
* Re-implement atom handing for more consistent separation of cwm(1) and
  Extended Window Manager Hints.
* cwm(1) better integrated into the freedesktop.org Window Manager
  Specification Project.

Changes made between OpenBSD 5.2 and 5.3
* Set the initial cwm(1) group to "1".
* Added cwm(1) per-group vert/horiz tiling support with new bind commands
  "vtile" and "htile."
* Made cwm(1) screen font an Xft(3) font.
* Specific last match for autogroup in cwmrc(5).
* Tab completion support for cwm(1) menus.
* Allow cwm(1) clients to be resized from a max state.
* Multibyte input to cwm(1) menu code now possible.

Changes made between OpenBSD 5.3 and 5.4
* Added support for mouse based group {,r}cycle to cwmrc(5).
* Allow mouse button4 and button5 in cwmrc(5).
* Made cwm(1) check for, and honour, CWStackMode and CWSibling change requests
  during a ConfigureRequest event.
* Honour PATH search order for cwm(1)'s exec.

Changes made between OpenBSD 5.5 and 5.4
* Only set the cwm(1) urgency flag if the client is not active.
* Allow the cwm(1) config parser continue parsing even after encountering an
  error.
* cwm(1) now follows the EWMH spec: if the cardinal returned is 0xFFFFFFFF (-1)
  then the window should appear on all desktops.
* Made cwm(1) supply a more useful title for windows launched via the ssh(1)
  command menu ("[ssh] ").
* Allowed cwm(1) to accept _NET_WM_DESKTOP and _NET_CURRENT_DESKTOP
  ClientMessage.
* Implemented cwm(1) support for _NET_WM_STATE_FULLSCREEN hint, with keybinding
  changes: CM-f "fullscreen", CM-m "maximize".
* Instead of using the work area, use the Xinerama area for cwm(1) snap
  calculations.
* Save-set when cwm(1) is re-exec'ing so as to not lose State on our hidden
  clients.
* Added cwmrc(5) support for XUrgency and matching
  _NET_WM_STATE_DEMANDS_ATTENTION ewmh hint, with configurable urgencyborder.
* Prepend the group shortcut in the cwm(1) client search menu;
  prepend shortcut in unhide menu.
* If not hidden during an UnmapNotify event, cwm(1) will now un-manage the
  client.
* Like "gap", made cwm(1) "snapdist" per-screen.
* Removed cwmrc(5) option to bind a key by keycode with brackets, which never
  worked. Users should be using keysym names not keycodes.
* Re-added cwm(1) support for WM_TAKE_FOCUS. Solves keyboard input focus loss
  for java apps.
* For cwm(1) clients that support WM_TAKE_FOCUS in their WM_PROTOCOLS property,
  send a ClientMessage event.

2015-01-24: Third public release 5.6 of portable cwm.

* Support building on FreeBSD and OS X.
* Support for sticky windows (_NET_WM_STATE_STICKY).
* Internal cleanups and bug fixes.

Changes made between OpenBSD 5.6 and 5.7
* Implemented _NET_WM_STATE_STICKY in cwm(1). Allows client to "stick"
  to all desktops or groups.
* Ensure cwm(1) client that wants to be in nogroup stays in nogroup
  (thus stays in view), even when (re)reading NET_WM_DESKTOP. 

Changes made between OpenBSD 5.7 and 5.8
* In cwm(1), introduce "groupsearch" for group menu search. 
* In cwm(1), show an empty "ssh to" menu if the known_hosts file is missing. 
* In cwm(1), replace screen region info gathering with XRandR
  equivalent of Xinerama queries. 

Changes made between OpenBSD 5.8 and 5.9
* Don't allow freeze operations on fullscreen.
* Implement _NET_CLIENT_LIST_STACKING. 

2017-10-17: Fourth public release 6.2 of portable cwm.

Changes made between OpenBSD 6.2 and 6.3
* Fix blocking bug during moving or resizing.
* window-snap-* commands to move windows to edges and corners.
* Add support for _NET_WM_STATE_SKIP_PAGER and _NET_WM_STATE_SKIP_TASKBAR.
* Add support for re-exec'ing with SIGHUP.

2018-05-14: Fifth public release 6.3 of portable cwm.

2020-01-04: Sixth public release 6.6 of portable cwm.

Changes made between OpenBSD 6.4 and 6.5
* Added a configtest flag (-n) to cwm(1).
* Introduced 'group-close-[n]' action to cwm(1) to close all windows
  within a specified group.

2020-05-22: Seventh public release 6.7 of portable cwm.

Changes made between OpenBSD 6.6 and 6.7
* Allowed cwm(1) configuration of window size based on percentage of
  the master window during horizontal and vertical tiling actions.
* Allowed use of window-htile and window-vtile with the "empty" group
  clients in cwm(1).

2022-04-30: Eighth public release 7.1 of portable cwm.

Changes made between OpenBSD 6.9 and 7.0
* Changed cwm(1) maximization and full-screen mode toggling to keep
  the cursor within the window, preventing focus loss.

Changes made between OpenBSD 7.0 and 7.1
* Added a cwm(1) "group-last" command that shows only the previously
  active group.
* Allowed bare numbers for key and mouse bindings in cwm(1).


--Leah Neukirchen <[email protected]>

[0]: http://cvsweb.openbsd.org/cgi-bin/cvsweb/xenocara/app/cwm/

More Repositories

1

nq

Unix command line queue utility
C
2,805
star
2

mblaze

Unix utilities to deal with Maildir
C
451
star
3

styleguide

443
star
4

bacon

a small RSpec clone
Ruby
426
star
5

hrmpf

hrmpf rescue system, built on Void Linux
Shell
299
star
6

snooze

run a command at a particular time
C
198
star
7

xe

simple xargs and apply replacement
C
179
star
8

dosfetch

NeoFetch clone for DOS
Pascal
148
star
9

lr

list files, recursively
C
140
star
10

xtools

a few helpers for working with XBPS
Shell
129
star
11

extrace

trace exec() calls system-wide
C
116
star
12

rum

a gRand Unified Mapper for Rack
Ruby
106
star
13

redo-c

An implementation of the redo build system in portable C with zero dependencies
C
104
star
14

outils

port of some non-standard OpenBSD tools to Linux
C
78
star
15

gitsum

basic darcsum feelalike for Git
Emacs Lisp
67
star
16

ignite

OBSOLETE: use Void Linux
Shell
65
star
17

sabotage

an experimental distribution based on musl libc and busybox
Shell
63
star
18

rdumpfs

a rsync-based dump file system backup tool
Shell
59
star
19

leahutils

description of leahutils
56
star
20

obase

a port of the OpenBSD userland to Linux | unmaintained: use outils
C
51
star
21

colfm

A console, column-oriented file manager
Ruby
46
star
22

fail

crash in various possible ways
C
39
star
23

trivium

Trivium, my minimalist blogging engine
Ruby
39
star
24

rwc

report when files change
C
37
star
25

rps

Ruby Packaging Standard
Ruby
30
star
26

sq

a 7x15 pixel font inspired by Codec and Quadraat Sans Mono
Makefile
30
star
27

knock

Knock is a simplification of the Test Anything Protocol used by Perl and others.
Ruby
29
star
28

te

tiny emacs
C
25
star
29

virtualrb

Virtualize Ruby installations
Ruby
25
star
30

challis

a soft lightweight cloth
Ruby
22
star
31

nb

Nota Bene, a quick note-taking tool for Emacs
Emacs Lisp
22
star
32

notyet

a text-based recursive task tracker
Ruby
20
star
33

tools

various simple tools, not worth a project on their own
Ruby
19
star
34

5x13

a condensed pixel font built on 6x13 ("fixed")
Makefile
18
star
35

wibget

WibGet, a minimalist, but convenient Git web frontend
Ruby
17
star
36

git-merge-pr

apply GitHub pull request from command-line
Shell
17
star
37

libste

C string library based on string ends
C
17
star
38

vuxi

a minimalist static Wiki compiler
Ruby
15
star
39

rdd

random data dumper
C
15
star
40

qed-caltech

C
15
star
41

lywsd03mmc-exporter

a Prometheus exporter for the LYWSD03MMC BLE thermometer
Go
14
star
42

yam

Yam, a functional language running as JavaScript
JavaScript
14
star
43

reap

run process until all its spawned processes are dead
C
14
star
44

necho

minimal, sensible alternatives to echo(1)
C
14
star
45

rup

a sane and simple Ruby package manager
14
star
46

hyx

terminal hex editor
C
13
star
47

signify

portable version of OpenBSD's signify(1) signature tool
C
13
star
48

coma

a console mail user agent | obsolete: use mblaze
Ruby
13
star
49

coset-mirror

(experimental) Mirror of the coset darcs repository
Ruby
12
star
50

tt

a 9term-compatible terminal in Ruby/Tk
Ruby
12
star
51

hittpd

efficient, no-frills HTTP 1.1 server
C
11
star
52

daiquiri

a Rack-based resourceful web framework
11
star
53

wcal

ISO weekly calendar
C
11
star
54

px

search for processes and print top(1)-like status
C
11
star
55

rs

rs(1) β€” reshape a data array (from OpenBSD) | unmaintained: use outils
C
11
star
56

rack-mirror

OUTDATED mirror of Rack's darcs repository, use github.com/chneukirchen/rack
Ruby
10
star
57

amok

a compact mock library
Ruby
9
star
58

rubyports

Hookin-based RubyPorts system
Ruby
9
star
59

xlossage

display pressed keys in X11 in a readable way
C
8
star
60

arr

(re)arrange and select fields on each line
Groff
8
star
61

rnl

remove trailing newlines
Shell
8
star
62

sgn

pseudonymous digital signatures
Emacs Lisp
7
star
63

ji

a minimalist forum software
Ruby
7
star
64

vmenu

personal fork of vis-menu/slmenu
C
7
star
65

revisit

a TODO list for the future
Ruby
7
star
66

clitter

a ncurses twitter client
Ruby
7
star
67

schell

a lispy shell scripting language
Scheme
7
star
68

htping

periodically send HTTP requests
Go
7
star
69

netpbm-mirror

git-svn mirror of netpbm (updated manually)
C
6
star
70

mlog

merge log files by timestamp
C
6
star
71

listening

check if a TCP server is listening
C
5
star
72

snowcat

encrypted data streams over sockets
Go
5
star
73

atxec

run command expanding arguments from file or environment
Perl
5
star
74

adventofcode2019

Advent of Code (adventofcode.com) in k and Perl 5
Perl
5
star
75

musl-chris2

my sandbox for playing with musl
C
5
star
76

lrep

literate read-eval-print
Ruby
5
star
77

adventofcode2022

Advent of Code 2022 in Racket and Zig.
Racket
4
star
78

rexample

Ruby
4
star
79

holes

find runs of zero bytes
C
4
star
80

tap3

check output/error/status of a command against a specification
Perl
4
star
81

btac

print file in reverse order
C
4
star
82

rmeta

a OMeta implementation for Ruby
4
star
83

sson

S-Expression Standard Object Notation
Ruby
4
star
84

adventofcode2015

Advent of Code (adventofcode.com) in K
Ruby
4
star
85

noir

a new programming language
JavaScript
4
star
86

dwm-chris2

Personal dwm fork.
C
3
star
87

parseopt

a collection of command line argument parsers
Shell
3
star
88

rc

C
3
star
89

xdu

display the output of "du" in an X window
C
3
star
90

pds

parallel data substitution
Ruby
3
star
91

adventofcode2020

Advent of Code 2020 (adventofcode.com) in J and Clojure
Clojure
3
star
92

ulidgen

generate or tag lines with ULID
C
2
star
93

gleam-codespace

A codespace to work with Gleam
Dockerfile
2
star
94

actions-archive-all

generate tarballs including submodules from GitHub Actions
Shell
2
star
95

docker-lab-bgp

A small BGP lab in Docker
2
star
96

literate-janet

Makefile
2
star
97

adventofcode2021

Advent of Code 2021 (adventofcode.com) in BQN and Clojure
Clojure
2
star
98

adventofcode2017

adventofcode.com 2017
C++
2
star
99

conference-sponsors

Conference Sponsor tracking
2
star
100

systas

Systas Scheme (archival copy)
C
2
star