You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Build, installation and release creation overhaul (#105)
- Binaries and object files are now generated to bin/
- Added tools/ with install.sh, uninstall.sh, generate_release.sh
- Extended check_all.sh (e.g. release generation checks)
- README.md and CHANGELOG.md moved to docs/
- Updated documentation, e.g. #installation links to the Releases now
Copy file name to clipboardExpand all lines: docs/README.md
+20-17Lines changed: 20 additions & 17 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,7 @@
1
1
<!-- MIT License, Copyright (c) 2023-2025 Barnabás Zahorán, see LICENSE -->
2
2
3
3
<palign="center">
4
-
<imgalt="plwm logo"src="img/logo.png">
4
+
<imgalt="plwm logo"src="../img/logo.png">
5
5
</p>
6
6
7
7
# plwm - An X11 window manager written in Prolog
@@ -52,20 +52,23 @@ Powered by [SWI-Prolog](https://www.swi-prolog.org/)
52
52
53
53
# Installation
54
54
55
-
**Dependencies:**
55
+
**From release**
56
+
57
+
Download the latest version from the [releases](https://github.com/Seeker04/plwm/releases), extract and run `./install.sh`.
56
58
57
-
*`xorg` with `libx11-dev`, `libxft-dev`, `libxrandr-dev` (exact package names may vary)
58
-
*[SWI-Prolog](https://www.swi-prolog.org/Download.html) (downloadable from most distros' package repos)
59
+
**From source**
59
60
60
-
On Ubuntu 22.04, easiest way to install them is:
61
+
Run `make && sudo make install`
61
62
62
-
`$ sudo apt install xorg-dev swi-prolog`
63
+
**Dependencies:**
63
64
64
-
Run:
65
+
*`xorg` with `libx11-dev`, `libxft-dev`, `libxrandr-dev`<br>
66
+
(exact package names may vary, `dev` versions are only needed when building from source)
67
+
*[SWI-Prolog](https://www.swi-prolog.org/Download.html) (most likely also packaged by your distro)
65
68
66
-
`$ make && sudo make install`
69
+
E.g. on Ubuntu 22.04, easiest way to install them is:
67
70
68
-
By default, this will install plwm to `/usr/local/bin/`. The location can be adjusted in the [Makefile](Makefile).
71
+
`sudo apt install xorg-dev swi-prolog`
69
72
70
73
## Minimal environment
71
74
@@ -181,7 +184,7 @@ then you'll have a triple stack layout where your windows will be evenly spread
181
184
182
185
## Configuration
183
186
184
-
`sudo make install` installs the [default configuration](config/config.pl) to `/etc/plwm/config.pl`. This file can be copied to user config directories.
187
+
`sudo make install` installs the [default configuration](../config/config.pl) to `/etc/plwm/config.pl`. This file can be copied to user config directories.
185
188
186
189
plwm attempts reading configuration when it starts from the first file among
187
190
-`$XDG_CONFIG_HOME/plwm/config.pl`
@@ -226,14 +229,14 @@ While cooking your config, you can use the `-C` flag to quickly and easily check
226
229
|`modkey`| shift, lock, ctrl, alt, mod2, mod3, super, mod5<br>**Default:** super | Key you must hold for mouse operations |
227
230
|`scroll_up_action`| callable term or 'none'<br>**Default:** switch_workspace(next) | Action to perform on modkey + scroll up |
228
231
|`scroll_down_action`| callable term or 'none'<br>**Default:** switch_workspace(prev) | Action to perform on modkey + scroll down |
229
-
|`keymaps`| list of (Modifiers + Key -> Action)<br>**Default:**[see here](#default-keybindings)| Modifiers: see values at `modkey`<br/>Key: keycode, [usual X11 names](http://xahlee.info/linux/linux_show_keycode_keysym.html), or [special key](src/xf86names.pl)<br/>Action: callable term |
232
+
|`keymaps`| list of (Modifiers + Key -> Action)<br>**Default:**[see here](#default-keybindings)| Modifiers: see values at `modkey`<br/>Key: keycode, [usual X11 names](http://xahlee.info/linux/linux_show_keycode_keysym.html), or [special key](../src/xf86names.pl)<br/>Action: callable term |
230
233
|`rules`| list of (Name, Class, Title -> Monitor, Workspace, Mode)<br>**Default:**[]| Auto place and configure matching windows (explained [here](#rules)) |
231
234
|`hooks`| list of (Event -> Action)<br>**Default:**`[start -> writeln("plwm starting"), quit -> writeln("plwm quitting")]`| Run custom logic on certain events (explained [here](#hooks)) |
232
235
233
236
**Tips**
234
237
235
238
* You can safely remove any setting from your config file, plwm will use the default value for those.
236
-
* In `keymaps/1`, the callback predicates can be arbitrary shell commands using `shellcmd/1`, even whole commandlines (some examples are included in the [default config](config/config.pl)).
239
+
* In `keymaps/1`, the callback predicates can be arbitrary shell commands using `shellcmd/1`, even whole commandlines (some examples are included in the [default config](../config/config.pl)).
237
240
* If you wish to stick to default keymaps mostly, with only a few changes and feel redundant to list the whole table in your config, you can simply omit the `keymaps/1` setting and add your changes as a `start` hook like this:
@@ -552,7 +555,7 @@ If you have a feature request or questions, feel free to [open discussions](http
552
555
553
556
Any code contribution is also welcome. Especially if it solves some known issue. For brand new ideas, I recommend creating a discussion first.
554
557
555
-
Please read the [Development Guide](docs/development_guide.md).
558
+
Please read the [Development Guide](development_guide.md).
556
559
557
560
# FAQ
558
561
@@ -566,7 +569,7 @@ Compared to what? C? Yes. Does it matter? No. I've been using dwm for 6 years, s
566
569
567
570
**Isn't SWI-Prolog non-ISO compliant?**
568
571
569
-
Interoperability between different Prolog implementations was never really on the table. Their C FFIs are also different, so [plx.c](plx.c) would also need to be rewritten for each kind of Prolog. SWI-Prolog is arguably one of the most popular free and community-driven Prolog implementations, is easily accessible, has good documentation, some LSP support and a lot of libraries. Though, to be honest, plwm's code mostly sticks to fundamentals, so if someone really wanted to, it shouldn't be too hard to port this to another Prolog system...
572
+
Interoperability between different Prolog implementations was never really on the table. Their C FFIs are also different, so [plx.c](../src/plx.c) would also need to be rewritten for each kind of Prolog. SWI-Prolog is arguably one of the most popular free and community-driven Prolog implementations, is easily accessible, has good documentation, some LSP support and a lot of libraries. Though, to be honest, plwm's code mostly sticks to fundamentals, so if someone really wanted to, it shouldn't be too hard to port this to another Prolog system...
0 commit comments