Commit Graph
1257 Commits
Author SHA1 Message Date
Tor Hedin Brønner 753ae5ccfb monitors-changed: make sure each monitor has a space
If we've run out of workspaces when there's more monitors to populate simply add
new ones.

NB: this only works after startup-complete as we need to listen to
`notify::n-workspaces` first.

closes #116
2019-06-23 18:36:17 +02:00
Tor Hedin Brønner 500ce60973 bug fix: initialize all new spaces
Workspaces created after startup was never actually initialized, eg.
the `window-added/removed` signals were never connected.

Simply run space.init when constructing a space and handle the _startingUp edge
case.
2019-06-23 18:36:17 +02:00
Ole Jørgen Brønner 570abadc9b dynamic workspaces: never remove a visible workspace
This caused a crash when going from a empty visible workspace that was going to
be garbage collected to another monitor.
2019-06-23 18:36:15 +02:00
Tor Hedin Brønner b5aa3cf09a dynamic workspaces: only remove spaces when #workspaces > #monitors
We need at least as many workspaces as there's monitors.
2019-06-23 18:34:45 +02:00
Tor Hedin Brønner 786950d576 bug fix: topbar::hide focus_window can be null 2019-06-23 18:09:00 +02:00
Julia Evans 7eb0bc1322 Fix typo in keybindings example
I tried using this and got an error because `i` should be `k`, with this change it works for me.
2019-06-23 01:09:56 +02:00
Nathan Morell 7d1b3757cd Typo fixed in README.md 2019-06-22 09:15:00 +02:00
Tor Hedin Brønner 02131fb22c Add swipe sensitivity preference
Tune using (defaults are [1.0, 2.0]):
dconf write /org/gnome/shell/extensions/paperwm/swipe-sensitivity "[x, y]"
2019-06-17 11:42:31 +02:00
Ole Jørgen Brønner 4c89ef385a set-recommended-gnome-shell-settings: use 'gsettings' instead of 'dconf'
dconf can't reliable get default values(?)

According to https://bugzilla.redhat.com/show_bug.cgi?id=1541448 the dconf
default value might also differ from the gsettings default value(?)

I did not find a way to differentiate between "use default value" and the actual
default value - so running the script might change some settings from "use
default value" to the actual default value.

IIUC 'gsettings' require the gsettings daemon to run, while 'dconf' is lower
level and modify the database directly.

Fixes #121
2019-06-16 15:37:57 +02:00
Ole Jørgen Brønner e73e6e2d26 Fix gnome-shell version comparison
The old variant seems to work but I don't se any reason to no use the actual
output format..
2019-06-16 15:04:25 +02:00
Ole Jørgen Brønner 393365ed05 Bugfix: broken resizing of vertically tiled window in some multimonitor setups
Global y coordinate was used in calculations, breaking things for vertically
stacked monitors.
2019-05-19 19:41:49 +02:00
Ole Jørgen Brønner 7b726753ea fixup! Make cycleWindowHeight work for scratch windows 2019-05-17 10:33:22 +02:00
Ole Jørgen Brønner 66acfc63ef Make cycleWindowHeight work for scratch windows 2019-05-17 10:08:00 +02:00
Ole Jørgen Brønner c7c4e6d048 Bugfix: liveAltTab clones positioned wrong on multimonitor setups 2019-05-06 21:53:45 +02:00
Ole Jørgen Brønner e1f6a980ef Enable 'affectsStruts' on topbar again
With #73 resolved (cd95ad220) we can tolerate changes to workarea across
workspaces.

Extensions that rely on workarea.y (eg. upright dash-to-dock) will no longer be
broken.

Note that (3.28) only windows with visible actors are affected (immediately) by
workarea changes so changing workspace from without-top-bar (A) to
with-top-bar (B) only cause resizes of B's visible windows.

Workspace navigation by itself (shows the topbar) does not cause resizes. (eg.
initiate and cancel a navigation)

Navigation between without-top-bar workspaces does not cause resizes.

This reverts commit 86283c5dea
This reverts commit 20809ad6b0
2019-05-05 17:50:45 +02:00
Ole Jørgen Brønner cd95ad220f Don't resize windows recursively (can cause window freezes)
A freeze can be triggered like this: (might have to run the resize twice)

    metaWindow.connect('size-changed', () => {
        let f = metaWindow.get_frame_rect()
        metaWindow.move_resize_frame(true, f.x, f.y, f.width, 500)
    })
    let f = metaWindow.get_frame_rect()
    metaWindow.move_resize_frame(true, f.x, f.y, f.width, f.height-50)

Fixes #73
2019-05-05 15:47:46 +02:00
Tor Hedin Brønner 979bcc6c57 schema: fix default-show-top-bar description 2019-05-01 22:39:50 +02:00
Ole Jørgen Brønner 86283c5dea Regression: notifications and topbar overlaps
Monkeypatch notification system to position notifications relative to topbar
instead of workarea.

See https://gitlab.gnome.org/GNOME/gnome-shell/blob/8572bb97c70821bd82dbe5cca78071b474eb33c4/js/ui/messageTray.js#L830

Regression after 20809ad6b0
Fixes #109
2019-05-01 22:33:26 +02:00
Ole Jørgen Brønner 20809ad6b0 Disable 'affectsStruts' for the topbar
Caused problems when switching to workspaces without topbar - probably because
the topbar is briefly shown during navigation - restricting the workarea -
resizing the windows in the workspace without topbar - causing the dreaded #73.

This conjecture is not verified, but disabling the affectsStruts fixes the
symptoms :)

Fixes #108
2019-05-01 01:04:46 +02:00
Tor Hedin Brønner 65e009815a Fix overview order and animation
Use the tiling to sort the overview. Floating windows are sorted the regular way
among themselves and put before the tiled windows.

We also report the correct coordinates so animation to and from the overview is
correct.

ref #4
2019-04-30 14:11:19 +02:00
Tor Hedin Brønner 3d1b629171 Integrate the default fallback 2019-04-30 13:57:45 +02:00
Tor Hedin Brønner b3c2845a2c Add default-show-top-bar preference
Also set per-workspace setting to true by default
2019-04-30 13:57:31 +02:00
Tor Hedin Brønner 323112bd46 animateDown: respect space.showTopBar 2019-04-30 13:36:46 +02:00
Tor Hedin Brønner 49c39992cd always show the top bar when navigating the workspace stack 2019-04-30 13:36:46 +02:00
Tor Hedin Brønner 5220f7919d topbar.show: force hide if in zen-mode 2019-04-30 13:36:46 +02:00
Tor Hedin Brønner 5a4351d3c5 workspace menu: add zen toggle 2019-04-30 13:36:46 +02:00
Ole Jørgen Brønner 1e015e5887 space.layout: respect show-top-bar preference
We don't use workarea.y directly as it can cause problems cause problems if eg.
a layout is triggered when a fullscreen window is active. Instead we scale the
panel height with `space.showTopBar`.
2019-04-30 13:36:40 +02:00
Tor Hedin Brønner d991a04319 workspace schema: add show-top-bar
Per workspace setting.
2019-04-30 13:36:40 +02:00
Tor Hedin Brønner b19cfccb4f fix revert
No idea why this didn't get reverted...
2019-04-28 19:12:55 +02:00
Tor Hedin Brønner e8a9eea8e9 Revert previous 7 commits
Was not intended for master.

Revert "don't use workarea.y directly"

This reverts commit cb67f451a2.

Revert "space: connect settings"

This reverts commit 3c7ac9509e.

Revert "fixup! workspace menu: add zen toggle"

This reverts commit bff403c134.

Revert "workspace menu: add zen toggle"

This reverts commit 89bae34412.

Revert "Implement"

This reverts commit dd812e5714.

Revert "workspace schema: add `show-top-bar`"

This reverts commit 7dcac8896a.
2019-04-28 10:57:35 +02:00
Tor Hedin Brønner cb67f451a2 don't use workarea.y directly
Can cause problems if eg. a layout is triggered when a fullscreen window is
active.
2019-04-28 10:06:15 +02:00
Tor Hedin Brønner 3c7ac9509e space: connect settings 2019-04-28 10:05:53 +02:00
Tor Hedin Brønner bff403c134 fixup! workspace menu: add zen toggle 2019-04-28 10:05:19 +02:00
Tor Hedin Brønner 89bae34412 workspace menu: add zen toggle 2019-04-28 03:25:01 +02:00
Tor Hedin Brønner dd812e5714 Implement 2019-04-28 03:09:37 +02:00
Tor Hedin Brønner 7dcac8896a workspace schema: add show-top-bar 2019-04-28 02:52:07 +02:00
Ole Jørgen Brønner f4e91d1e4f Respect workarea.y when laying out the tiling
Ref: #103
2019-04-27 17:50:25 +02:00
Tor Hedin Brønner 72ac302a62 minimumMargin: cap at horizontal-margin
closes #102
2019-04-27 02:12:36 +02:00
Tor Hedin Brønner ff8d8c4d45 Stability: null out destroyed actors
Acting on destroyed actors crashes 3.32 so make sure to null out references.
2019-04-15 21:01:02 +02:00
Tor Hedin Brønner c9bcebd1be stackoverlay: protect against acting on unmapped clone 2019-04-10 19:51:05 +02:00
Tor Hedin Brønner 509c38caee toggle-scratch-window: only hide when the scratch window has focus
This makes it easier to switch between the tiling and a floating window.
2019-04-08 15:23:47 +02:00
Tor Hedin Brønner 154cf59a59 reload: reset Topbar.menu to null when disabling
Else we might act on it when doing enable again.
2019-04-08 15:23:47 +02:00
Tor Hedin Brønner cba2399d7b navigator: never select a non-tiled window
We shouldn't really modify selectedWindow outside ensureViewport in general.
This might've caused a crash.
2019-04-01 19:24:24 +02:00
Tor Hedin Brønner bf15ad8078 navigator: Add race protection
Not entirely sure if this is necessary, but can't hurt, as it's done in
SwitcherPopup.
2019-03-30 22:14:58 +01:00
Tor Hedin Brønner df39ad99e0 navigator: Rewrite the keybind handler
Using a SwitcherPopup was just tiresome and made it difficult to fix some
issues.

This fixes a lot of the issues with #70, though eg. alt-tab still leaks
2019-03-30 22:10:11 +01:00
goodwillcoding f55e1f6ab5 Default workspace switching and moving to wrap around 2019-03-29 20:13:39 +01:00
Tor Hedin Brønner ded14faac5 Space.layout: protect against zero width workarea
Happens on monitors-changed and causes windows to be squeezed.
2019-03-28 19:25:31 +01:00
Tor Hedin Brønner 94e671b721 Prevent some more crashes from the minimap 2019-03-27 01:46:27 +01:00
Tor Hedin Brønner 0b5f415fbb Guard against setting child below itself
This would hang the shell completely when activating a window on another
workspace.
2019-03-26 01:06:02 +01:00
Tor Hedin Brønner 9f70e23ebc Add explicit 3.32 support 2019-03-24 03:50:52 +01:00