Commit Graph
1416 Commits
Author SHA1 Message Date
Tor Hedin Brønner 047ec64287 Space: record which space a window is tiled 2019-10-22 13:26:15 +02:00
Ole Jørgen Brønner e75f3aac7f Notes: summarize signal sequence of misc state changes (WIP) 2019-10-21 21:36:35 +02:00
Ole Jørgen Brønner e54c2b34f0 Fix 3.28 error by polyfilling missing display.get_monitor_scale 2019-10-21 21:18:38 +02:00
Tor Hedin Brønner 482d29118e Merge pull request #179 from paperwm/workspace-menu
Modernize the workspace menu
2019-10-21 13:26:23 +02:00
Tor Hedin Brønner 501ea8a136 workspace label: Set min width to avoid movement while typing 2019-10-21 12:59:37 +02:00
Tor Hedin Brønner 2d98d9c57b workspace menu: Focus workspace name on open
For some reason activation doesn't work immediately on `_onOpenStateChanged`, so
we need an idle_add (like gpaste).
2019-10-21 12:47:39 +02:00
Tor Hedin Brønner 02dd23bfd2 workspace menu: grab key focus on button clicks 2019-10-21 12:47:39 +02:00
Tor Hedin Brønner 7974f6adc5 workspace menu: Use Hide top bar 2019-10-21 12:47:39 +02:00
Tor Hedin Brønner ddd5c495a8 workspace menu: add ornamental label
This adds some need width too.
2019-10-21 12:47:39 +02:00
Tor Hedin Brønner bcdc387554 workspace menu: add next/prev workspace settings buttons 2019-10-21 12:47:39 +02:00
Tor Hedin Brønner 0dead29718 workspace menu: simplify 2019-10-21 12:47:39 +02:00
Tor Hedin Brønner 4cfe445477 tiling: Move cycle to Tiling.cycleWorkspaceSettings 2019-10-21 12:47:39 +02:00
Tor Hedin Brønner 384dd6dab6 registerClass: Support passing extra spec as first arg 2019-10-20 19:05:43 +02:00
Tor Hedin Brønner 82ddc02716 Space.moveDone: Only block on grabbing a tiled window
When dragging a window to a shared secondary monitor, moveDone is blocked by
`inGrab`. However we only want this as long as the window haven't been detached
by window-entered-monitor.
2019-10-20 14:27:11 +02:00
Tor Hedin Brønner 196368d3ec tiling: Remove stray logging 2019-10-20 14:21:21 +02:00
Ole Jørgen Brønner 18b5507853 resize-actions: Increase "slack" and make it simpler to adjust
See https://gist.github.com/olejorgenb/434dcc616343a50d9d63f2a700ad89b7 for a
helper script to test various window constraints.

ref: #187
2019-10-20 11:48:47 +02:00
Tor Hedin Brønner c7cbd847cc window-entered-monitor: Only act on grabbed windows 2019-10-19 20:53:11 +02:00
Tor Hedin Brønner ba43c68ba8 edge overlays: start out unactivated
Be sane and start in a clean state.
2019-10-19 19:13:19 +02:00
Tor Hedin Brønner e290062253 insertWindow: Do not hide windows that are on all workspaces 2019-10-19 19:13:05 +02:00
Ole Jørgen Brønner 114e1be3b4 Merge pull request #185 from paperwm/workspace-directory
Launch apps from workspace directory
2019-10-18 19:54:53 +02:00
Ole Jørgen Brønner 426d44bf11 app: mkCommandLineSpawner util expanding %d to workspace directory
Use `tilix --working-directory %d` for tilix. Otherwise the daemon will have the
workspace dir as working directory. Subsequent new windows might inherit that
directory. (eg. in spaces that doesn't specify an explicit directory(?))
2019-10-18 19:21:45 +02:00
Tor Hedin Brønner 86d8b6275f app: Don't throw in spawnWindow, let trySpawnWindow throw
`spawnWindow` can be useful from `user.js`, so we make it always succeed, while
we while we introduce a throwing `trySpawnWindow` for internal use.
2019-10-18 19:21:45 +02:00
Tor Hedin Brønner 2c7bfae7d7 app: Fall back to original spawn when space.directory is unset
If the user haven't set a workspace directory we play it safe and call the
spawn the app with the non-kludged method.
2019-10-18 19:21:45 +02:00
Tor Hedin Brønner 957e27a1d1 kludges: Add overrideWithFallback 2019-10-18 19:21:45 +02:00
Ole Jørgen Brønner 739c4350d7 app: Launch new windows from the workspace directory if set
We override these methods so this will work from the typical launchers:
   Shell.App.open_new_window
   Shell.App.launch_action('new-window', ...)
   Gio.DesktopAppInfo.launch
   Gio.DesktopAppInfo.launch_action('new-window', ...)

NOTE: overridden `launch` can act somewhat strange with single process many
window apps if the process. If the process is launched with a specific directory
new windows might inherit this on non-overridden `new-window`. (seen in Tilix)
2019-10-18 19:21:45 +02:00
Ole Jørgen Brønner 528154db4e app: launchFromWorkspaceDir util 2019-10-18 19:21:45 +02:00
Ole Jørgen Brønner 5ea58aabcb utility: add app as dev global 2019-10-18 19:21:45 +02:00
Ole Jørgen Brønner 9e8da016f2 workspace-directory: prefs GUI 2019-10-18 19:21:45 +02:00
Tor Hedin Brønner 9d90930165 settings: add per workspace directory key 2019-10-18 19:21:45 +02:00
Tor Hedin Brønner 56845e6267 readme: Note workspaces-only-on-primary limitations 2019-10-18 16:11:21 +02:00
Tor Hedin Brønner f382ac07a1 kludge overview: handle only-on-primary 2019-10-18 16:11:21 +02:00
Tor Hedin Brønner c8b8d78636 insertWindow: Handle stuck windows minimally
When spawning windows on a secondary monitor, and there's
workspaces-only-on-primary, we simply want to connect the necessary signals and
make sure the window is shown.
2019-10-18 16:11:21 +02:00
Tor Hedin Brønner d4838298d7 insertWindow: Make unstuck scratch windows stuck
When using `workspaces-only-primary` and a scratch window is moved from a
secondary monitor to the primary gnome-shell will make the window unstuck. So we
need to make it stuck again.
2019-10-18 16:11:21 +02:00
Tor Hedin Brønner 642640c66e switchMonitor: Handle workspaces-only-on-primary 2019-10-18 16:11:21 +02:00
Tor Hedin Brønner 540c07dda3 grab window: Handle workspaces only on primary correctly 2019-10-18 16:11:21 +02:00
Tor Hedin Brønner 9c962f02ba window-entered-monitor: Only handle grabs
We now have custom ways to move windows between monitors
2019-10-18 16:11:21 +02:00
Tor Hedin Brønner b886665b08 clickOverlay: cover the entire monitor
We guard against small movements triggering monitor change already.
2019-10-18 16:11:21 +02:00
Tor Hedin Brønner 0653664dd3 clickOverlay: never activate when workspaces-only-on-primary
This means we can simply create clickOverlays for all the monitors, avoiding any
annyoing errors with missing overlays.
2019-10-18 16:10:41 +02:00
Tor Hedin Brønner 8916dde666 spaces: add onlyOnPrimary property 2019-10-18 14:06:01 +02:00
Tor Hedin Brønner 10038d417a layout: Run ensureViewport on auto corrections too
`auto` doesn't ensure that the selected window is inside the viewport.
2019-10-17 23:44:03 +02:00
Tor Hedin Brønner 0239b4e7a5 Fix errors on X11 startup when auto spawning windows 2019-10-17 23:08:30 +02:00
Tor Hedin Brønner c8dfaacb42 layout: Do not run any auto corrections when grabbing
NOTE: `animate` is false when grabbing. In general auto will cause an animate so
we disable it in the somewhat more general case.
2019-10-17 23:07:36 +02:00
Tor Hedin Brønner 3f1b4a7b8f minimap: Limit highlight height 2019-10-17 22:25:56 +02:00
Ole Jørgen Brønner 0ce41886a0 settings: dev/debugging utils to delete workspace settings 2019-10-17 20:17:21 +02:00
Tor Hedin Brønner 710e1f9c92 layout: remove unnecessary code
This shouldn't be necessary as we update space.targetX before running
ensureViewport, so the target window will always be inside the view port.
2019-10-17 15:37:42 +02:00
Tor Hedin Brønner ce94061df8 addWindow: On first window just center targetX, leave rest to layout
Do not set cloneContainer.x directly, this can cause jumps.

But we do want to center space.targetX so layout knows that it should center the
tiling.
2019-10-17 15:37:42 +02:00
Ole Jørgen Brønner 4c36d5d203 cycle-window-width: let Space.layout take care of moving the window
Old logic kept for scratch windows.

Combined with 8ec37f1 keep a rightmost positioned window rightmost after
shrinking.
2019-10-17 15:25:19 +02:00
Tor Hedin Brønner 81136e1b44 center first window 2019-10-16 14:06:15 +02:00
Tor Hedin Brønner 8ec37f1987 tiling: try to maximize the space when removing/adding windows
fixes #104
2019-10-16 14:06:15 +02:00
Tor Hedin Brønner 8e79e36934 winprops: make gnome-screenshot floating by default 2019-10-16 11:51:57 +02:00