Commit Graph
1341 Commits
Author SHA1 Message Date
Tor Hedin Brønner d5e3f5597a prefs: Add monitor keybindings 2019-10-12 13:51:01 +02:00
Tor Hedin Brønner 010336c842 readme: document monitor keybindings 2019-10-12 13:51:01 +02:00
Tor Hedin Brønner 32fda5c904 monitors: Add switch/move to monitor bindings 2019-10-12 13:51:01 +02:00
Tor Hedin Brønner 66faba4f46 kludges: disable 4-finger workspace switching
We still aren't able capture the events, but we can override `_checkActivated`
to always return false, making the gesture always ineffectual.
2019-10-12 13:51:01 +02:00
Tor Hedin Brønner c7f347c880 workspace menu: do not activate the overivew if navigating 2019-10-12 13:51:00 +02:00
Tor Hedin Brønner da54898f66 vertical swipe: fix velocity bug
We didn't update the time, so all ticks were compared against the time when we
started swiping.
2019-10-12 13:51:00 +02:00
Tor Hedin Brønner 01bda889dd horizontal swipe: update target window continuously
Run the basic timetravel on each update, highlighting the calculated target.
2019-10-12 13:51:00 +02:00
Tor Hedin Brønner 34a6b63c93 horizontal swipe: average velocity over the 3 latest ticks 2019-10-12 13:51:00 +02:00
Tor Hedin Brønner 101b3788b0 workspace menu: fix accessibility name 2019-10-12 13:51:00 +02:00
Tor Hedin Brønner 705f84fe68 navigator: Don't finish navigation if super is held down 2019-10-12 13:51:00 +02:00
Tor Hedin Brønner 98b6512b8b minimap: add some minimum monitor padding 2019-10-12 13:50:59 +02:00
Tor Hedin Brønner 6521940a21 layout: Set positions if immediately if not animating
No need for the ad-hoc fix in Space.init anymore.
2019-10-12 13:50:59 +02:00
Tor Hedin Brønner 8187f25316 horizontal swipe: detect partially visible fullscreen windows
space.isPlaceable cares about the metawindow being placeable, while we only care
about it being partially visible.
2019-10-12 13:50:59 +02:00
Tor Hedin Brønner cae30eaa7a prefs: fixup 2019-10-12 13:50:59 +02:00
Tor Hedin Brønner 000ca3782e prefs: Hook up sensitivity and friction spinners 2019-10-12 13:50:59 +02:00
Tor Hedin Brønner 4d7c6af6ae prefs: Add some much needed margins and other fixes 2019-10-12 13:50:59 +02:00
Tor Hedin Brønner abe7d3af45 settings: add swipe-friction 2019-10-12 13:50:58 +02:00
Tor Hedin Brønner 83e016b612 horizontal swipe: Rework target window logic
Not the prettiest code, but it works fairly well.

Selecting the target window works like this (when gliding is finished):
- if the tiling is outside the monitor select the first/last window and snap
- if there's any fully visible windows select the closest one
- if there's no visible window choose the window with highest visible width ratio

This is all calculated the moment we release the swipe, so instead of showing
any potential overshoot we simply adjust the travel so it doesn't overshoot.
2019-10-12 13:50:58 +02:00
Tor Hedin Brønner 4ce0f34e0d horizontal swiping: Timetravel and use easing to glide 2019-10-12 13:50:58 +02:00
Tor Hedin Brønner d5843d079e gestures: Fix unwanted snapping at the edges 2019-10-12 13:50:58 +02:00
Tor Hedin Brønner 9d3f38233a x11: fix unreactive floats on empty workspaces
Make sure space.targetX is synced, if it isn't moveDone won't get the chance to
remove the background tracker, which steals all mouse clicks.
2019-10-12 13:50:58 +02:00
Tor Hedin Brønner 7dbe882753 fix typo 2019-10-12 13:50:58 +02:00
Tor Hedin Brønner ea848e2c1f liveAltTab: kill unminimize animations manually
In 3.34 there's no _blockAnimations check, so we just set the correct
coordinates and scale immediately.
2019-10-12 13:50:58 +02:00
Tor Hedin Brønner 14362e1f96 prefs: don't scroll the tabs
The default tree view search doesn't work and can pop up outside the scroll so
disable it.

TODO: add something like `ctrl-f`, `/` to focus the search input
2019-10-12 13:50:57 +02:00
Tor Hedin Brønner b1a31d8b19 startup: expose failures on startup
Pass the error notification utility to module.enable and use it in the startup
callback.
2019-10-12 13:50:57 +02:00
Tor Hedin Brønner f4b178b4b4 workspaces-only-on-primary: ensure layout happens after overlay setup 2019-10-12 13:50:57 +02:00
Ole Jørgen Brønner 1229dfc8ac settings: some utility/debug functions for workspace settings 2019-10-12 13:50:57 +02:00
Ole Jørgen Brønner 264e27349a examples: keybinding for cycling workspace settings (among "unbound" and current)
Only relevant when using dynamic workspace. Typically used to change the empty
workspace settings to the one you want.
2019-10-12 13:50:57 +02:00
Ole Jørgen Brønner 47b5b08519 Cache workspace settings objects
Needed due to weird hang (sometimes crash) when creating (probably only when
done rapidly?) same relocatable setting more than once.

(noticed when implementing workspace settings cycling)
2019-10-12 13:50:57 +02:00
Ole Jørgen Brønner 29eaedfe59 Misc polyfills for 3.28 backwards compatibility 2019-10-12 13:50:57 +02:00
Tor Hedin Brønner 296e635005 Fix ease polyfill for 3.28 2019-10-12 13:50:57 +02:00
Tor Hedin Brønner 84380c1b67 Remove transition from tween calls 2019-10-12 13:50:56 +02:00
Tor Hedin Brønner 15c4c61c24 Fix non-default transition modes 2019-10-12 13:50:56 +02:00
Tor Hedin Brønner b73acf166f Fix reload visibility
Clutter's transition framework will delay painting the ease until some sort of
painting is requested or whatnat, even if duration == 0.

In particular on reload this means clones are invisible for quite a while.
Simply force positions on startup.
2019-10-12 13:50:56 +02:00
Tor Hedin Brønner f1ed6cd07d Use clutter animations
There's a few differences in how onComplete is run:
- We need to run moveDone on every clone transition, as the transitions aren't
done when cloneContainer's transition finishes
- We cannot run layout until startup is done. For some reason onComplete runs
before monitor setup is done properly.

squash! Use clutter animations

- Can't use addTween as a timeout, but transitions are now finished when
onComplete is run, so there's no need for this anymore.
2019-10-12 13:50:56 +02:00
Tor Hedin Brønner 7dcf082b62 Add a tweener to clutter dispatch 2019-10-12 13:50:56 +02:00
Tor Hedin Brønner 07a913ec09 Polyfill new 3.34 transition api 2019-10-12 13:50:55 +02:00
Tor Hedin Brønner ed4baa7987 examples/user.js: add Keybindings and Examples
Examples is especially useful, as there's a bunch of bindings that can be
activated:
  Examples.keybindings.cycleMonitor()
2019-10-12 13:50:55 +02:00
Tor Hedin Brønner 7ab6e9d2d1 Run layout timer on window-gap change 2019-10-12 13:50:55 +02:00
Ole Jørgen Brønner 3d75a9012d prefs: show all stored workspace settings
num-workspaces does not reflect workspace count when using 'dynamic-workspaces'
2019-10-12 13:50:55 +02:00
Tor Hedin Brønner 09ab6a435c Do not purge workspaces when using the workspace carousel
fixes #164
2019-10-12 13:50:55 +02:00
Tor Hedin Brønner 7bd7bc7161 Run focus handling when selecting a focused transient window
Selecting an already focused window with a transient would not trigger a proper
focus signal.
2019-10-12 13:50:55 +02:00
Ole Jørgen Brønner 424638cb95 fix wrong log message 2019-10-12 13:50:54 +02:00
Tor Hedin Brønner 268a89a1cb debug: support native systemd services
3.34 can run sessions using systemd user services. Use these if available to
access the journal.
2019-10-12 13:50:54 +02:00
Ole Jørgen Brønner ede956f1b1 readme: remove oneshot from winprop example
Doesn't really make sense there.
2019-10-12 13:50:54 +02:00
Ole Jørgen Brønner 7f2355e2f3 keybinding system: don't require a focused window to trigger custom keybindings
fixes #169
2019-10-12 13:50:54 +02:00
Tor Hedin Brønner 37a63b472b liveAltTab: fix quick alt-tab in 3.34
_finish will now call destroy itself if the popup isn't yet visible:

https://gitlab.gnome.org/GNOME/gnome-shell/commit/12ec5d1cbec367835f356b84c79ea9131deecdb4
2019-10-12 13:50:54 +02:00
Ole Jørgen Brønner 95b6cd673d liveAltTab: only show TabList.NORMAL windows
Non-normal windows are unfocusable or request `mw.skip_taskbar`
2019-08-24 10:02:54 +02:00
Ole Jørgen Brønner 4adfad7298 Bugfix: new jetbrains IDE window could crash insertWindow
In general: NPE in stackoverlay when target window is non-`TabList.NORMAL`
crashes `insertWindow` midway. (eg. size-changed signal never connected).

A `TabList.NORMAL` window is focusable and doesn't `mw.skip_taskbar`.

Example: The main window of pycharm on startup is (sometimes) non-normal(!).
Focusing the window fail so it's likely to become the stackoverlay target.

(java applications is a WM's worst nightmare..)
2019-08-24 09:20:14 +02:00
Ole Jørgen Brønner 2a0da27f9f Bugfix: connectOneShot signals didn't disconnect on Signals.disconnect
Prevented 2364308681 from working in all
cases. (ie. windows could still be registered twice)
2019-08-14 22:27:12 +02:00