Skip to content

Commit 7ab7b90

Browse files
committed
README, AUR files
1 parent d0dcb00 commit 7ab7b90

File tree

4 files changed

+97
-12
lines changed

4 files changed

+97
-12
lines changed

DEV.org

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
#+TITLE: newm developer information
22

3-
* Current (aiming for v0.1)
3+
* Current
44
** STRT Install process
55
*** STRT Setup standard procedure for VM-based install testing
66
- [ ] Proper seatd setup in virtual machine
77
- [X] Setup below has virtio not working
88
*** STRT AUR package
9-
- [ ] Include imageio
10-
** STRT README Idea
9+
- [X] Include imageio
10+
- [ ] Fix commit
11+
- [ ] Test
12+
** DONE README Idea
1113

1214
* Backlog / Ideas
1315
** Titles during OverviewOverlay

README.md

Lines changed: 37 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,41 @@
44

55
## Idea
66

7-
TODO
7+
**newm** is a Wayland compositor written with laptops and touchpads in mind. The idea is, instead of placing windows inside the small viewport (that is, the monitor) to arrange them along an arbitrarily large two-dimensional wall (generally without windows overlapping) and focus the compositors job on moving around along this wall efficiently and providing ways to the user to rearrange the wall such that he finds the overall layout intuitive.
8+
9+
So, windows are placed on a two-dimensional grid of tiles taking either one by one, one by two, two by one, ... tiles of that grid. The compositor shows a one by one, two by two, ... view of that grid but scales the windows so they are usable on any zoom level (that is, zooming out the compositor actually changes the windows sizes). This makes switching between a couple of fullscreen applications very easy - place them in adjacent one by one tiles and have the compositor show a one by one view. And so on...
10+
11+
The basic commands therefore are navigation (left, right, top, bottom) and zoom-in and -out. These commands can be handled very intuitively on the touchpad (one- and two-finger gestures are reserved for interacting with the apps):
12+
- Use three fingers to move around the wall
13+
- Use four fingers to zoom out (move them upward) or in (downward)
14+
15+
To be able to arange the windows in a useful manner, use
16+
- Logo (unless configured otherwise) plus one finger on the touchpad to move windows
17+
- Logo (unless configured otherwise) plus two fingers on the touchpad to change the extent of a window
18+
19+
To get a quick overview of all windows, just hit the Mod (that is, unless configured otherwise, the Logo) key.
20+
21+
These behaviours can (partly) be configured (see below for setup). By default (check [default_config.py](newm/default_config.py)), for example the following key bindings are in place
22+
- `Logo-hjkl`: Move around
23+
- `Logo-HJKL`: Move windows around
24+
- `Logo-Ctrl-hjkl`: Resize windows
25+
- `Logo-f`: Toggle a fullscreen view of the focused window (possibly resizing it)
26+
- ...
27+
28+
## Status and limitations
29+
30+
This is the first release of newm. Therefore a lot of configurable behaviour, quality of documentation and the like is still missing. However the basic building blocks have been in use on my machine from the beginning (2018) continuously.
31+
32+
The most relevant functional limitation at the moment is missing support for multi-monitor setups. Apart from that see [pywm](https://github.com/jbuchermn/pywm) for known issues concerning certain applications.
833

934
## Installing
1035

36+
### Arch Linux
37+
38+
For Arch Linux users, a `PKGBUILD` is provided (will be on the AUR). Currently this installation requires the python package `imageio` to be installed via the AUR or vie `pip`.
39+
40+
Alternatively, the installation procedure below is powered by pip.
41+
1142
### Prerequisites and pywm
1243

1344
[pywm](https://github.com/jbuchermn/pywm) is the abstraction layer for and main dependency of newm. If all prerequisites are installed, the command:
@@ -18,10 +49,9 @@ pip3 install git+https://github.com/jbuchermn/pywm@v0.1
1849

1950
should suffice.
2051

21-
Additionally, unless configured otherwise, newm depends on alacritty.
22-
52+
Additionally, unless configured otherwise, newm depends on alacritty for a default terminal emulator.
2353

24-
### Single-user installation (without newm-login)
54+
### Single-user installation (without newm-login, preferred)
2555

2656
To install newm:
2757

@@ -35,6 +65,8 @@ Start it using
3565
start-newm
3666
```
3767

68+
See also [pywm](https://github.com/jbuchermn/pywm) for troubleshooting.
69+
3870
### Configuring
3971

4072
#### Setting up the config file
@@ -66,7 +98,7 @@ wallpaper = os.environ['HOME'] + '/wallpaper.jpg'
6698

6799
#### Lock on hibernate
68100

69-
Place in `/lib/systemd/system-sleep/00-lock.sh`
101+
This can be achieved for example by placing the following in `/lib/systemd/system-sleep/00-lock.sh`
70102

71103
``` sh
72104
#!/bin/sh

dist/aur/.SRCINFO

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
pkgbase = newm
2+
pkgdesc = Wayland compositor
3+
pkgver = 0
4+
pkgrel = 1
5+
url = https://github.com/jbuchermn/newm
6+
arch = any
7+
license = MIT
8+
makedepends = git
9+
makedepends = sed
10+
makedepends = python3
11+
makedepends = meson
12+
makedepends = wayland-protocols
13+
makedepends = xorgproto
14+
depends = python3
15+
depends = wayland
16+
depends = libinput
17+
depends = libxcb
18+
depends = libxkbcommon
19+
depends = opengl-driver
20+
depends = pixman
21+
depends = xcb-util-errors
22+
depends = xcb-util-renderutil
23+
depends = xcb-util-wm
24+
depends = seatd
25+
depends = xorg-xwayland
26+
depends = python-evdev
27+
depends = python-numpy
28+
depends = python-imageio
29+
depends = python-cairo
30+
depends = python-psutil
31+
depends = python-websockets
32+
depends = python-pam
33+
depends = python-pyfiglet
34+
depends = python-fuzzywuzzy
35+
provides = newm
36+
conflicts = newm
37+
source = git://github.com/jbuchermn/pywm.git#branch=v0.1
38+
source = git://github.com/jbuchermn/newm.git#branch=v0.1
39+
md5sums = SKIP
40+
md5sums = SKIP
41+
42+
pkgname = newm

PKGBUILD renamed to dist/aur/PKGBUILD

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
# PKGBUILD for newm including pywm
1+
# newm - Wayland compositor
2+
# Maintainer: Jonas Bucher <j.bucher.mn at gmail>
23

34
pkgname=newm
45
pkgver=0.1
56
pkgrel=1
7+
license=('MIT')
68
pkgdesc="Wayland compositor"
7-
url="https://github.com/jbuchermn/newm"
8-
# imageio
99
depends=(
1010
python3
1111

@@ -23,6 +23,7 @@ depends=(
2323

2424
python-evdev
2525
python-numpy
26+
python-imageio
2627

2728
python-cairo
2829
python-psutil
@@ -33,13 +34,14 @@ depends=(
3334
)
3435
makedepends=(
3536
git
37+
sed
3638
python3
3739
meson
3840
wayland-protocols
3941
xorgproto
4042
)
41-
license=('MIT')
4243
arch=('any')
44+
url="https://github.com/jbuchermn/newm"
4345
source=(
4446
'git://github.com/jbuchermn/pywm.git#branch=v0.1'
4547
'git://github.com/jbuchermn/newm.git#branch=v0.1'
@@ -48,6 +50,13 @@ md5sums=(
4850
'SKIP'
4951
'SKIP'
5052
)
53+
provides=('newm')
54+
conflicts=('newm')
55+
56+
pkgver() {
57+
cd $srcdir/newm
58+
git describe --long | sed 's/\([^-]*-g\)/r\1/;s/-/./g'
59+
}
5160
prepare() {
5261
cd $srcdir/pywm
5362
git submodule init

0 commit comments

Comments
 (0)