Commit Graph
1263 Commits
Author SHA1 Message Date
Tor Hedin Brønner 86beb27e04 Use a shadowed border to frame spaces in the carousel
A colored border is added to frame the space when using the workspace carousel.

This helps to separate the workspaces visually. Especially when using a
shared image background for workspaces and the gnome shell background.

We also make the background the same size as the monitor making the overview
transition smooth when using a single background.

During regular use the border is hidden, to avoid shadows at the edges of the
monitor.

closes #86
2019-06-27 23:48:08 +02:00
Tor Hedin Brønner 531df13fa2 Hide top bar when fullscreening on secondary monitor
closes #134
2019-06-26 18:22:07 +02:00
Tor Hedin Brønner 46c67fdb1f wayland: Don't hide top bar on startup 2019-06-26 18:21:25 +02:00
Tor Hedin Brønner 5a8b1c29b0 monitors-changed: guard against newly created monitors during disable
If a monitor is added in between a disable/enable cycle we can run into troubles
again if there's too few workspaces.
2019-06-25 03:44:07 +02:00
Ole Jørgen Brønner 4322009d9f cleanup: remove dead code
The 'workspace-names' values might still come out of sync when a in-the-middle
workspace is removed - but:

- This is not very visible since each space have a "copy" of it's real name
- The code have been dead for a long time
- Better to handle everything in `workspacesChanged`

The best solution is probably to reindex the existing spaces' settings on
workspace removal and then set 'workspace-names' based on the live-spaces.
2019-06-23 22:45:38 +02:00
Tor Hedin Brønner 5dd84b985c Fix disable/enable
When running a disable/enable loop (eg. through screen locking) space.init() was
run before windows were registered (ie. gotten their clones etc.).

We also need to set up the monitors unconditionally before space.init() is run.

This is a bit ugly but should work until we can clean it up better.

closes #128
2019-06-23 19:24:11 +02:00
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