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
Copy file name to clipboardExpand all lines: README.md
+22-22Lines changed: 22 additions & 22 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,10 +1,10 @@
1
1
# Pop Shell
2
2
3
-
Pop Shell is a keyboard-driven layer for GNOME Shell which allows for quick and sensible navigation and management of windows. The core feature of Pop Shell is the addition of advanced tiling window management — a feature that has been highly-sought within our community. For many — ourselves included — i3wm has become the leading competitor to the GNOME desktop.
3
+
Pop Shell is a keyboard-driven layer for GNOME Shell which allows for quick and sensible navigation and management of windows. The core feature of Pop Shell is the addition of advanced tiling window management — a feature that has been highlysought within our community. For many — ourselves included — i3wm has become the leading competitor to the GNOME desktop.
4
4
5
5
Tiling window management in GNOME is virtually nonexistent, which makes the desktop awkward to interact with when your needs exceed that of two windows at a given time. Luckily, GNOME Shell is an extensible desktop with the foundations that make it possible to implement a tiling window manager on top of the desktop.
6
6
7
-
Therefore, we see an opportunity here to advance the usability of the GNOME desktop to better accomodate the needs of our community with Pop Shell. Advanced tiling window management is a must for the desktop, so we've merged i3-like tiling window management with the GNOME desktop for the best of both worlds.
7
+
Therefore, we see an opportunity here to advance the usability of the GNOME desktop to better accommodate the needs of our community with Pop Shell. Advanced tiling window management is a must for the desktop, so we've merged i3-like tiling window management with the GNOME desktop for the best of both worlds.
@@ -43,21 +43,21 @@ This tends to work fine if you only have a small handful of applications. If you
43
43
44
44
### Displays are large. Very, **very** large
45
45
46
-
Suppose you are a lucky — or perhaps unlucky — owner of an ultra-wide display. A maximized window will have much of its preferences and controls dispersed across the far left and far right corners. The application may place a panel with buttons on the far left, while other buttons get shifted to either the distant center, or far right.
46
+
Suppose you are a lucky — or perhaps unlucky — owner of an ultra-wide display. A maximized window will have much of its preferences and controls dispersed across the far left and far right corners. The application may place a panel with buttons on the far left, while other buttons get shifted to either the distant center or far right.
47
47
48
48
Half-tiling in this scenario means that each window will be as large as an entire 2560x1440 or 4K display. In either scenario, at such extreme sizes, the mouse becomes completely useless — and applications become unbearable to use — in practice.
49
49
50
50
### Fighting the window manager is futile
51
51
52
-
As you struggle with fighting the window manager, it quickly becomes clear that any attempt to manage windows in a traditional stacking manner — where you need to manually move windows into place, and then manually resize them — is futile. Humans are nowhere near as precise or as quick as algorithms at aligning windows alongside at each other on a display.
52
+
As you struggle with fighting the window manager, it quickly becomes clear that any attempt to manage windows in a traditional stacking manner — where you need to manually move windows into place, and then manually resize them — is futile. Humans are nowhere near as precise or as quick as algorithms at aligning windows alongside each other on a display.
53
53
54
54
### Why not switch to i3wm?
55
55
56
56
The GNOME desktop comes with many useful desktop integration features, which are lost when switching to an i3wm session. Although possible to connect various GNOME session services to an i3wm session, much of the GNOME desktop experience is still lost in the process. The application overview, the GNOME panel, and GNOME extensions.
57
57
58
-
Even worse, many users are completely unfamiliar with tiling window managers, and may never feel comfortable switching "cold turkey" to one. By offering tiling window management as feature which can be opted into, we can empower the user to ease into gaining greater control over their desktop, so that the idea of tiling window management suddenly becomes accessible.
58
+
Even worse, many users are completely unfamiliar with tiling window managers, and may never feel comfortable switching "cold turkey" to one. By offering tiling window management as a feature that can be opted into, we can empower the user to ease into gaining greater control over their desktop, so that the idea of tiling window management suddenly becomes accessible.
59
59
60
-
There are additionally those who do want the traditional stacking window management experience, but they also want to be able to opt into advanced tiling window management, too. So it should be possible to opt into tiling window management as necessary. Other operating systems have successfully combined tiling window management features with the traditional stacking window management experience, and we feel that we can do this with GNOME as well..
60
+
There are additionally those who do want the traditional stacking window management experience, but they also want to be able to opt into advanced tiling window management, too. So it should be possible to opt into tiling window management as necessary. Other operating systems have successfully combined tiling window management features with the traditional stacking window management experience, and we feel that we can do this with GNOME as well.
61
61
62
62
---
63
63
@@ -73,7 +73,7 @@ Proper functionality of the shell requires modifying GNOME's default keyboard sh
73
73
74
74
If you want to uninstall the extension, you may invoke `make uninstall`, and then open the "Keyboard Shortcuts" panel in GNOME Settings to select the "Reset All.." button in the header bar.
75
75
76
-
> Note that if you are packaging for your Linux distribution, many features in Pop Shell will not work out of the box because they require changes to GNOME's default keyboard shortcuts. A local install is necessary if you aren't packaging your own GNOME session with these default keyboard shortcuts unset or changed.
76
+
> Note that if you are packaging for your Linux distribution, many features in Pop Shell will not work out of the box because they require changes to GNOME's default keyboard shortcuts. A local install is necessary if you aren't packaging your GNOME session with these default keyboard shortcuts unset or changed.
77
77
78
78
### Packaging status
79
79
@@ -88,7 +88,7 @@ If you want to uninstall the extension, you may invoke `make uninstall`, and the
88
88
89
89
## Shared Features
90
90
91
-
Features which are shared between stacking and auto-tiling modes.
91
+
Features that are shared between stacking and auto-tiling modes.
92
92
93
93
### Directional Keys
94
94
@@ -114,7 +114,7 @@ These are key to many of the shortcuts utilized by tiling window managers. This
114
114
115
115
> This mode is activated with `Super` + `Return`.
116
116
117
-
Window management mode activates additional keyboard control over the size and location of the currently-focused window. The behavior of this mode changes slightly based on whether you are in auto-tile mode, or in the default stacking mode. In the default mode, an overlay is displayed snapped to a grid, which represents a possible future location and size of your focused window. This behavior changes slightly in auto-tiling mode, where resizes are performed immediately, and overlays are only shown when swapping windows.
117
+
Window management mode activates additional keyboard control over the size and location of the currently-focused window. The behavior of this mode changes slightly based on whether you are in auto-tile mode, or in the default stacking mode. In the default mode, an overlay is displayed snapped to a grid, which represents a possible future location and size of your focused window. This behavior changes slightly in auto-tiling mode, where resizes are performed immediately and overlays are only shown when swapping windows.
118
118
119
119
Activating this enables the following behaviors:
120
120
@@ -138,11 +138,11 @@ Activating this enables the following behaviors:
138
138
139
139
When not in window management mode, pressing `Super` + `<Direction>` will shift window focus to a window in the given direction. This is calculated based on the distance between the center of the side of the focused window that the window is being shifted from, and the opposite side of windows surrounding it.
140
140
141
-
Switching focus to the left will calculate from the center of the east side of the focused window, to the center of the west side of all other windows. The window with the least distance is the window we pick.
141
+
Switching focus to the left will calculate from the center of the east side of the focused window to the center of the west side of all other windows. The window with the least distance is the window we pick.
142
142
143
143
### Launcher
144
144
145
-
The launcher is summoned with `Super` + `/`. The search list displays matching windows based on their window name and title, and applications on the system which can be launched. The arrow keys are used to select an application or window from the search list. If it is a window, the selected window will be visually highlighted with an overlay, in the event that two windows have the same name and title. Pressing `Return` on a window will bring that window to focus, switching to its workspace, and unminimizing it if it was minimized.
145
+
The launcher is summoned with `Super` + `/`. The search list displays matching windows based on their window name and title, and applications on the system which can be launched. The arrow keys are used to select an application or window from the search list. If it is a window, the selected window will be visually highlighted with an overlay. Pressing `Return` on a window will bring that window to focus, switching to its workspace, and unminimizing it if it was minimized.
146
146
147
147
#### Launcher Modes
148
148
@@ -156,7 +156,7 @@ By default, the launcher searches windows and applications. However, you can des
156
156
157
157
### Inner and Outer Gaps
158
158
159
-
Gaps improve the aesthetics of tiled windows, and make it easier to grab the edge of a specific window. We've decided to add support for inner and outer gaps, and made these settings configurable in the extension's popup menu.
159
+
Gaps improve the aesthetics of tiled windows and make it easier to grab the edge of a specific window. We've decided to add support for inner and outer gaps, and made these settings configurable in the extension's popup menu.
160
160
161
161
### Hiding Window Title Bars
162
162
@@ -180,7 +180,7 @@ An optional feature to improve your tiling experience is the ability to snap win
180
180
181
181
## Auto-Tile Mode
182
182
183
-
This provides the tiling window manager experience, where windows are automatically tiled across the screen as they are created. This feature is disabled by default, but can be enabled through the extension's popup menu in the panel. When enabled, windows that were launched before enabling it will not be associated with any tree. Dragging and dropping them will begin to tile them in a tree.
183
+
This provides the tiling window manager experience, where windows are automatically tiled across the screen as they are created. This feature is disabled by default but can be enabled through the extension's popup menu in the panel. When enabled, windows that were launched before enabling it will not be associated with any tree. Dragging and dropping them will begin to tile them in a tree.
184
184
185
185
### Keyboard Shortcuts
186
186
@@ -192,9 +192,9 @@ This provides the tiling window manager experience, where windows are automatica
192
192
193
193
### Feature Overview
194
194
195
-
- If no windows are on a display, a newly-opened window will start out maximized on the display
196
-
- As new windows are opened, they are tiled into the currently-focused window
197
-
- Windows can be detached and retached to different areas of the tree by dragging and dropping them
195
+
- If no windows are on a display, a newly-opened window will start maximized on the display
196
+
- As new windows are opened, they are tiled into the currentlyfocused window
197
+
- Windows can be detached and reattached to different areas of the tree by dragging and dropping them
198
198
- The default tiling orientation is based on the dimensions of the window being attached to
199
199
- The tiling orientation of the fork associated with the focused window can be altered with `Super` + `O`.
200
200
- The division of space between branches in a fork can be altered by resizing windows
@@ -210,15 +210,15 @@ There is file `$XDG_CONFIG_HOME/pop-shell/config.json` where you can add the fol
210
210
title: "<Optional Window Title>"
211
211
}
212
212
```
213
-
For example, doing `xprop` on GNOME Settings (or GNOME Control Center), the WM_CLASS values are `gnome-control-center` and `Gnome-control-center`. Use the second value (Gnome-control-center), which pop-shell will read. `title` is optional.
213
+
For example, doing `xprop` on GNOME Settings (or GNOME Control Center), the WM_CLASS values are `gnome-control-center` and `Gnome-control-center`. Use the second value (Gnome-control-center), which pop-shell will read. The `title` field is optional.
214
214
215
-
After applying changes in the `config.json`, you can reload the tiling if it doesnt work the first time.
215
+
After applying changes in `config.json`, you can reload the tiling if it doesn't work the first time.
216
216
217
217
## Plugins
218
218
219
219
### Launcher Plugins
220
220
221
-
Pop Shell supports extending the functionality of its launcher, and comes with some plugins by default. System plugins are stored in `/usr/lib/pop-shell/launcher/`, while user plugins are stored in `$HOME/.local/share/pop-shell/launcher/`. Some plugins are included by default:
221
+
Pop Shell supports extending the functionality of its launcher and comes with some plugins by default. System plugins are stored in `/usr/lib/pop-shell/launcher/`, while user plugins are stored in `$HOME/.local/share/pop-shell/launcher/`. Some plugins are included by default:
222
222
223
223
-[calc](src/plugins/calc)
224
224
-[files](src/plugins/files)
@@ -232,11 +232,11 @@ Pop Shell supports extending the functionality of its launcher, and comes with s
232
232
233
233
### Scripts Plugin
234
234
235
-
This builtin plugin displays scripts in search results. Included with Pop Shell is a set of scripts for log out, reboot, and power off. Scripts are stored in `/usr/lib/pop-shell/scripts/` and `$HOME/.local/share/pop-shell/scripts/`. [See the included scripts as an example of how to create our own](src/scripts/).
235
+
This built-in plugin displays scripts in search results. Included with Pop Shell is a set of scripts for log out, reboot, and power off. Scripts are stored in `/usr/lib/pop-shell/scripts/` and `$HOME/.local/share/pop-shell/scripts/`. [See the included scripts as an example of how to create our own](src/scripts/).
236
236
237
237
## Developers
238
238
239
-
Due to the risky nature of plain JavaScript, this GNOME Shell extension is written in [TypeScript](https://www.typescriptlang.org/). In addition to supplying static type-checking and self-documenting classes and interfaces, it allows us to write modern JavaScript syntax whilst supporting generation of code for older targets.
239
+
Due to the risky nature of plain JavaScript, this GNOME Shell extension is written in [TypeScript](https://www.typescriptlang.org/). In addition to supplying static type-checking and self-documenting classes and interfaces, it allows us to write modern JavaScript syntax whilst supporting the generation of code for older targets.
240
240
241
241
Please install the following as dependencies when developing:
242
242
@@ -261,4 +261,4 @@ Licensed under the GNU General Public License, Version 3.0, ([LICENSE](LICENSE)
261
261
262
262
### Contribution
263
263
264
-
Any contribution intentionally submitted for inclusion in the work by you, shall be licensed under the GNU GPLv3.
264
+
Any contribution intentionally submitted for inclusion in the work by you shall be licensed under the GNU GPLv3.
0 commit comments