Tiling window manager with a twist! PaperWM is a Gnome Shell extension which provides scrollable tiling of windows and per monitor workspaces. It's inspired by paper notebooks and tiling window managers. Please see our github page to report issues, understand features, and learn how to configure PaperWM to your liking.
Note: Binary files aren't shown on the web site. To see all files, please download the extension zipfile.
Version | Status |
---|---|
47.1.0 (135) | Active |
47.1.0 (134) | Active |
47.0.0 (133) | Active |
46.17.1 (132) | Active |
46.17.0 (131) | Active |
46.16.1 (130) | Active |
46.16.0 (129) | Rejected |
46.15.1 (128) | Active |
46.15.0 (127) | Active |
46.14.0 (126) | Active |
46.13.8 (125) | Active |
46.13.7 (124) | Active |
46.13.6 (123) | Active |
46.13.5 (122) | Active |
46.13.4 (121) | Active |
46.13.3 (120) | Inactive |
46.13.2 (119) | Active |
46.13.1 (118) | Active |
46.13.0 (117) | Active |
46.12.1 (116) | Active |
46.12.0 (115) | Active |
46.11.2 (114) | Active |
46.11.1 (113) | Active |
46.10.2 (112) | Active |
46.10.1 (111) | Active |
46.10.0 (110) | Rejected |
46.9.1 (109) | Active |
46.9.0 (108) | Active |
46.8.1 (107) | Active |
46.8.0 (106) | Rejected |
46.7.0 (105) | Active |
46.6.7 (104) | Active |
46.6.6 (103) | Active |
46.6.5 (102) | Active |
44.18.0 (101) | Active |
46.6.4 (100) | Active |
46.6.3 (99) | Active |
46.6.2 (98) | Rejected |
46.6.1 (97) | Rejected |
46.6.0 (96) | Active |
46.5.1 (95) | Active |
46.5.0 (94) | Rejected |
46.4.1 (93) | Active |
46.4.0 (92) | Active |
46.3.2 (91) | Active |
46.3.1 (90) | Active |
46.3.0 (89) | Active |
46.2.0 (88) | Active |
46.1.0 (87) | Active |
46.0.0 (86) | Active |
46.0.0 (85) | Active |
45.14.0 (84) | Inactive |
45.13.0 (83) | Inactive |
45.12.2 (82) | Inactive |
45.12.1 (81) | Inactive |
45.12.0 (80) | Inactive |
45.11.0 (79) | Inactive |
45.10.1 (78) | Inactive |
45.10.0 (77) | Inactive |
45.9.2 (76) | Inactive |
45.9.1 (75) | Inactive |
45.9.0 (74) | Inactive |
45.8.1 (73) | Inactive |
45.8.0 (72) | Inactive |
44.17.0 (71) | Active |
45.7.0 (70) | Inactive |
44.16.0 (69) | Inactive |
45.6.0 (68) | Inactive |
44.15.2 (67) | Inactive |
45.5.0 (66) | Inactive |
45.4.2 (65) | Inactive |
44.15.1 (64) | Inactive |
44.15.0 (63) | Inactive |
45.4.1 (62) | Inactive |
44.14.0 (61) | Inactive |
45.4.0 (60) | Inactive |
59 | Inactive |
58 | Rejected |
57 | Inactive |
56 | Inactive |
55 | Inactive |
54 | Inactive |
53 | Inactive |
52 | Inactive |
51 | Inactive |
50 | Inactive |
49 | Inactive |
48 | Inactive |
47 | Inactive |
46 | Inactive |
45 | Inactive |
44 | Inactive |
43 | Rejected |
42 | Rejected |
41 | Inactive |
40 | Inactive |
39 | Inactive |
38 | Inactive |
37 | Inactive |
36 | Inactive |
35 | Inactive |
34 | Inactive |
33 | Inactive |
32 | Inactive |
31 | Inactive |
30 | Inactive |
29 | Inactive |
28 | Inactive |
27 | Inactive |
26 | Inactive |
25 | Inactive |
24 | Inactive |
23 | Inactive |
22 | Inactive |
21 | Inactive |
20 | Inactive |
19 | Inactive |
18 | Rejected |
17 | Inactive |
16 | Inactive |
15 | Inactive |
14 | Inactive |
13 | Inactive |
12 | Inactive |
11 | Inactive |
10 | Inactive |
9 | Inactive |
8 | Inactive |
7 | Inactive |
6 | Rejected |
5 | Inactive |
4 | Rejected |
3 | Rejected |
2 | Rejected |
1 | Rejected |
Apologies, We caught a small regression in version 4 which was promptly fixed. Have update to the corrected version. > Evening Javad, > > Big thanks for the guidance given thus far Javad. Please see our latest submission. I believe (hope) I've caught everything, so hopefully we're getting closer. > > Regards, > > Jay. > > P.S. hope GUADEC is going well!
Yeah, we had a great BoF for extensions this year :p Approved! The code quality is improved a lot since version 1. Happy to see that. For future updates please consider these recommendations: 1. Instead of `Extension.dir.get_path()` you can use `Extension.path` which is a much nicer alternative for global scope. 2. Since you are calling `signals.destroy()` it would pass but please also null out `signals` in all disable functions. 3. It's better to don't use `gsettings.run_dispose()`. as mentioned in the doc: > This function should only be called from object system implementations. https://gjs-docs.gnome.org/gobject20~2.0/gobject.object#method-run_dispose Nulling out the `gsettings` would be enough since `gsettings` is owned by your extension. Thanks!
Many thanks Javad! > The code quality is improved a lot since version 1. Happy to see that. 100% (or probably more!). So glad started the journey here since it has (drastically) improved the PaperWM code (plus, I learned a ton more about extensions, gjs, and what makes good, clean code extension code). > For future updates please consider these recommendations: Yep, I've already implemented these changes and will submit another version today or tomorrow to clean these up. P.S. I'll have a look as well, but please let me know if there's anything I can do to get involved and help with extensions/ego. Kind regards, Jay.
Great! The best way to get involved is to join us on GNOME Matrix channel. That's where you find extension developers, reviewers and GNOME Shell developers. Btw, GNOME Shell 45 will break all extensions :p getting connected with us on GNOME Matrix channel can definitely help. - [GNOME Matrix Channel](https://matrix.to/#/#extensions:gnome.org) - IRC Bridge: irc://irc.gimpnet.org/shell-extensions
Thanks Javad. > Btw, GNOME Shell 45 will break all extensions :p Oh, dear - yes I was watching some GUADEC presentations, one on GJS and changes coming in 45... suspected it would break quite a few extensions. Well, onwards and upwards (price of progress I reckon). P.S. have joined the matrix gnome channel - will try get more involved there. Cheers.