Git Product home page Git Product logo

desktop-cube's Introduction

A Desktop Cube for GNOME Shell


Important

The code in the main branch is for GNOME Shell 45+. For older GNOME versions, please use the gnome-40-41 or gnome-42-44 branches respectively.

When I started using Linux more than a decade ago, it was because of the 3D desktop cube of Compiz. Even if this was a pretty useless feature, I am still missing it today. Therefore, I decided to create a similar effect for GNOME Shell. If you like it, you may also be interested in other nostalgic extensions, such as Compiz windows effects, or Burn-My-Windows!

For a list of things changed in previous releases, you can have a look at the changelog!

πŸŽ‰ Features

feature01
3D Overview: The extension arranges the workspaces in the overview in a cube-like fashion.
feature02
3D Workspaces: Also, when switching workspaces with touch gestures or keyboard shortcuts, the cube is shown.
feature03
Click and drag the desktop to rotate the cube: You can click and drag anywhere on the desktop to start rotating the cube!
feature04
Click and drag the panel to rotate the cube: You can also trigger the cube by dragging on the panel. This is useful with maximized windows.
feature05
Click and drag the overview to rotate the cube: You can also click and drag the overview's background to rotate the cube.
feature06
Explode the cube on vertical rotations: If you rotate the cube up or down, the 3D effect will become more intense.
feature07
Smooth transitions between Desktop, Overview, and App Drawer: If you enter the app-drawer mode, the cube will be unfolded.
feature08
Dynamic workspaces: The extension supports any number of workspaces. So it's actually not a cube most of the time...
feature09
Background panoramas: You can select an image which will be used as 360Β° skybox.
feature10
Drag windows to other workspaces: You can directly drag windows to adjacent workspaces. This also works in the overview.

πŸͺ² Limitations

Issues are tracked here on GitHub. There are currently two main known limitations:

  • No wrap-around: In GNOME Shell, it is not possible to change from the last to the first workspace. The Desktop-Cube extension does not change this.
  • Bad multi-monitor support on X11: On X11, GNOME Shell uses the same projection and view matrices for all monitors. The extension can modify these matrices so that the projection center of the virtual camera is in front of the current monitor. However, the cube looks somewhat sheared on setups with multiple monitors if the cube is shown on all monitors.

πŸ’ž Show that you love the Desktop Cube!

kofi github paypal crypto

While coding new features or translating the Desktop Cube is the most awesome way to contribute, providing financial support will encourage me to invest my spare time for developing free and open-source software.

These awesome people have already donated to the development of my open-source projects:

Sponsors List

Do you want to show that you love it too? If you donate via Ko-fi, GitHub, or PayPal, you will show up in this list as well!

⬇️ Installation

You can either install the Desktop Cube extension from extensions.gnome.org (a), download a stable release from GitHub (b) or clone the latest version directly with git (c).

a) Installing from extensions.gnome.org

This is the easiest way to install the Desktop Cube extension. Just head over to extensions.gnome.org and flip the switch! If you want to use a more up-to-date version, you can try one of the methods listed below.

b) Downloading a Stable Release

Execute this command to download the latest stable release:

wget https://github.com/Schneegans/Desktop-Cube/releases/latest/download/[email protected]

Install it by executing the following command. If you have the Desktop Cube extension already installed and want to upgrade to the latest version, append the --force flag in order to overwrite existing installs of the Desktop Cube extension.

gnome-extensions install [email protected]

Then restart GNOME Shell with Alt + F2, r + Enter. Or logout / login if you are on Wayland. Then you can enable the extension with the Gnome Tweak Tool, the Extensions application or with this command:

gnome-extensions enable [email protected]

c) Cloning the Latest Version with git

You should not clone the Desktop Cube extension directly to the ~/.local/share/gnome-shell/extensions directory as this may get overridden occasionally! Execute the clone command below where you want to have the source code of the extension.

git clone https://github.com/Schneegans/Desktop-Cube.git
cd Desktop-Cube

If your GNOME Shell version is <= 45, you will have to checkout the gnome-42-44 branch:

git checkout gnome-42-44

Now you will have to install the extension. The make command below compiles the locales, schemas and resources, creates a zip file of the extension and finally installs it with the gnome-extensions tool.

make install

Then restart GNOME Shell with Alt + F2, r + Enter. Or logout / login if you are on Wayland. Then you can enable the extension with the Gnome Tweak Tool, the Extensions application or with this command:

gnome-extensions enable [email protected]

:octocat: I want to contribute!

That's great! Here are some basic rules to get you started: Commits should start with a Capital letter and should be written in present tense (e.g. πŸŽ‰ Add cool new feature instead of πŸŽ‰ Added cool new feature). You should also start your commit message with one applicable emoji. This does not only look great but also makes you rethink what to add to a commit. Make many but small commits!

Emoji Description
πŸŽ‰ :tada: When you added a cool new feature.
πŸ”§ :wrench: When you added a piece of code.
♻️ :recycle: When you refactored a part of the code.
✨ :sparkles: When you applied clang-format.
🌐 :globe_with_meridians: When you worked on translations.
🎨 :art: When you improved / added assets like themes.
πŸ’„ :lipstick: When you worked on the UI of the preferences dialog.
πŸš€ :rocket: When you improved performance.
πŸ“ :memo: When you wrote documentation.
πŸͺ² :beetle: When you fixed a bug.
πŸ’ž :revolving_hearts: When a new sponsor is added or credits are updated.
βœ”οΈ :heavy_check_mark: When you worked on checks or adjusted the code to be compliant with them.
πŸ”€ :twisted_rightwards_arrows: When you merged a branch.
πŸ”₯ :fire: When you removed something.
🚚 :truck: When you moved / renamed something.

desktop-cube's People

Contributors

aerowolf avatar albanobattistella avatar atalanttore avatar bittin avatar bonbonboi avatar borcun avatar clemovski avatar comradekingu avatar flipflop97 avatar for-the-zero avatar frankie-mceyes avatar lenemter avatar lisapple avatar matl-17 avatar msizanoen1 avatar oscfdezdz avatar schneegans avatar ser82-png avatar shemgp avatar simple-sunrise avatar touryutamane avatar urmatej avatar vantu5z avatar veyselerden avatar vistaus avatar waldist avatar weblate avatar welaq avatar xosecalvo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

desktop-cube's Issues

Incompatible with Vertical Overview (Cosmic Workspaces)

Describe the Bug

With Cosmic Workspaces enabled, Desktop Cube will cause the desktop to freeze. No keyboard or mouse interaction is possible except you can log out, or switch to a TTY .

Steps to reproduce the behavior:

  1. Install Desktop Cube
  2. Enable Cosmic Workspaces
  3. Desktop will freeze. It may not do so instantly but it will happen.

Expected Behavior

No freezing.

System

Please complete the following information:

  • Linux distribution: PopOS 22.04
  • Desktop Cube version: Desktop Cube 10
  • GNOME Shell version: 42

Graphical glitches

Hello,
I am getting mild graphical glitches when using desktop cube. I would've liked to capture them, but screenshots and recording, (I have tried native and obs) don't seem to capture it.
The glitches seem to be another workplace fazing through the current one.

I have disabled all other extensions, and I am on x11 with an nvidia gpu

This is probably not very clear, so feel free to ask for clarification/giving me a way to get some logs or something

How to adapt code for older gnome-shell version?

Debian 11, gnome-shell version 3.38.6

As You probably know, Debian will stick to gnome-shell 3.x for quite some time.

Is it somehow possible to adapt Your code for gnome-shell 3.38? I'm willing to dive into gtk dev if You can give some guidelines.

Screens offset when using Vertical Overview

Describe the Bug

Restoring Gnome's old vertical overview confuses Cube.

Steps to reproduce the behavior:

  1. Install + enable the Vertical Overview extension.
  2. Drag on the desktop.

Observed Behavior

The workspaces are now offset vertically, i.e. the top left corner of workspace #2 is now adjacent to the bottom right corner of workspace #1 instead of the top right corner.

Expected Behavior

No change.

System

Please complete the following information:

  • Linux distribution: Debian Testing
  • Desktop Cube version: DL from gnome on 2023-04-13
  • GNOME Shell version: 44

Freezes on Pop OS

Describe the Bug

After installing on Pop 22.04 LTS, opening the workspaces view causes the desktop to freeze. The top nav bar is still clickable but all windows and task bar disappear and the only way to fix is logging out and logging back in.

Steps to reproduce the behavior:
Use the workspace shortcut (Super + D) on Pop with this extension installed.

Automated CI tests

It would be great if the settings dialog and the extension itself could be tested automatically via GitHub actions.

Code Statistics

We should the lines of code and comment percentage badges to the README.

feature/gnome-42 : Touch/mouse input gets lost, can't use apps.

Describe the Bug

While testing 32573c8 , things worked for a few minutes but eventually ran into an issue where:

  • I could no longer engage the activities overview via start button or three finger trackpad gesture.
  • I could engage the gesture via touchscreen gesture.
  • 'cube' seemed stuck in some high up perspective position.
  • I could not click/use apps, and couldn't log out normally either. Resolution was ctrl+alt+fn+2 to get back to the login screen and rebooting.

Steps to reproduce the behavior:
TODO - uncertain what steps reproduced it.

You may also check the output of GNOME Shell for any error messages.
This can be done with the following terminal command:

journalctl -f -o cat | grep -E 'desktop-cube|'


## Expected Behavior
A clear and concise description of what you expected to happen.

## System
_Please complete the following information:_
 - Linux distribution  Ubuntu 21.10
 - Desktop Cube version - https://github.com/Schneegans/Desktop-Cube/commit/32573c84bbffb2fdfe050d9b0fb7a9b7aa8cd9b7
 - GNOME Shell version: 40.4, wayland

Refactor source code

The extension.js has become pretty big by now. Many parts of the code are pretty independent, so we should try to put them into individual source files.

Error Loading Extension

Describe the Bug

Installed the extension, entered gnome-tweaks menu and tried to enable it. Shows a failed to load extension error. Stacktrace as follows:

The settings of extension [email protected] had an error:

Gtk.BuilderError: .:33:33 Invalid property: GtkMenuButton.icon-name

Stack trace:

PreferencesDialog@/home/ahmedbodi/.local/share/gnome-shell/extensions/[email protected]/prefs.js:32:19
buildPrefsWidget@/home/ahmedbodi/.local/share/gnome-shell/extensions/[email protected]/prefs.js:134:16
_init@resource:///org/gnome/Shell/Extensions/js/extensionsService.js:207:40
OpenExtensionPrefsAsync/<@resource:///org/gnome/Shell/Extensions/js/extensionsService.js:122:28
asyncCallback@resource:///org/gnome/gjs/modules/core/overrides/Gio.js:132:13
run@resource:///org/gnome/Shell/Extensions/js/dbusService.js:175:20
main@resource:///org/gnome/Shell/Extensions/js/main.js:19:13
run@resource:///org/gnome/gjs/modules/script/package.js:222:19
start@resource:///org/gnome/gjs/modules/script/package.js:206:5
@/usr/share/gnome-shell/org.gnome.Shell.Extensions:1:17

System

Please complete the following information:

  • Linux distribution
cat /etc/lsb-release 
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=20.04
DISTRIB_CODENAME=focal
DISTRIB_DESCRIPTION="Ubuntu 20.04 LTS"
  • Desktop Cube version [e.g. Desktop Cube 5, or commit SHA]
[email protected]
 Name: Desktop Cube
 Description: Indulge in nostalgia with useless 3D effects.
 Path: /home/ahmedbodi/.local/share/gnome-shell/extensions/[email protected]
 URL: https://github.com/Schneegans/Desktop-Cube
 Version: 7
 State: ERROR
  • GNOME Shell version: [e.g. 40.1]
gnome-shell --version
GNOME Shell 3.36.9

Animated/video wallpaper

I hope I don't ask too much or bother. Would it be possible to implement in this extension or apart from the possibility of loading a video or a gif as a background?

Disable Cube when multi-monitor detected

The Motivation

As many nomad users, I often plug and unplug my laptop from its dock.
At home with the dock, I use a multi-monitor layout.
With my layout the Cube is not very adequate.

The Solution

Add a checkbox to disable the Cube when multi-monitor is detected.

The Alternatives

I can disable it myself.

Sky Boxes!

It would be totally awesome to support 360Β° sky boxes as background...

Plank Dock disappears after rotation

Describe the Bug

NOTE: This only happens when dragging the cube from the desktop. Dragging a window from one side of the cube to another works as expected.

Rotating the cube causes the Plank Dock not to render. After the issue occurs, if you drag a window to rotate the cube, the dock will come back (also closing and reopening plank).

Steps to reproduce the behavior:

  1. Install the Plank Dock and have it running
  2. Drag the cube from the desktop
  3. Note that Plank no longer renders

Expected Behavior

The Plank dock renders.

System

Please complete the following information:

  • Linux distribution: Ubuntu 22.10
  • Desktop Cube version: 13
  • GNOME Shell version: 43.0

Cube only shows on secondary monitor

If I have two monitors set up in extend config, and I turn the cube on, the cube only shows on the secondary monitor

Ubuntu 22.04 lts, gnome x11, version 42.5, desktop cube 13

Dual monitor config issues

Describe the Bug

Weird behavior, these workspaces of connected dual monitor images fly nearly uncontrollably

Screenshot from 2022-03-06 12-08-02

Steps to reproduce the behavior:

  1. Have 2 monitors attached
  2. Swipe to switch workspaces

System

Please complete the following information:

  • Linux distribution Fedora Linux 35
  • Desktop Cube version 8
  • GNOME Shell version: 41.4

Please bring back unfolding

The Motivation

I love this extension and it brings back nostalgia for sure! Thanks for creating it!
One of the effects that the original compiz didn't have was the workspace unfold animation and I thought it is actually a very pleasing animation. It makes sense for the second workspace to unfold because when scrolling between workspaces without having to go into overview shows them side-by-side, implying that the workspaces are physically next to each other. Now, the second workspace seems simultaneously parallel and perpendicular to the viewpoint based on what angle you're looking at it. Talk about Schrodinger's workspaces!

The Solution

Have a setting that allows the user to choose if they want to unfold the cube or not.

The Alternatives

Can't think of any

Add config option to disable when on power save mode

The Motivation

Desktop Cube is lagging on power save mode on my laptop. And maybe it's not so power friendly.

The Solution

A switch in the config panel to allow auto disabling Desktop Cube when going in power save mode.

The Alternatives

I can manually turn that off.

Window panes should have thickness

The Motivation

The original Compiz-Fusion gave us the option to give each window some thickness, so it looked like a pane of glass. IIRC you could even adjust the amount of rounding on the four corners.

The Solution

Add an option to Desktop-Cube to add a control to enable and tweak window thickness.

The Alternatives

No alternative comes to mind.

Scroll workspaces without pointer movement on screen

The Motivation

The ability to scroll workspaces, i.e. rotate the cube, is limited by the pointer reaching the edge of the screen. This limits the ability to scroll more than a few workspaces, requiring the user to stop scrolling, reposition the pointer on the screen and restart scrolling in order to scroll more workspaces.
This is especially annoying to trackball users who can scroll forever.
Note that when dragged from the desktop into the cube, only three workspaces can be rotated even when there are more workspaces and distance for the pointer to travel. This may be an unrelated (and unreported) bug. This is not the case when dragged from the overview into the cube.

The Solution

Do not move the pointer on the screen while scrolling.

The Alternatives

If not moving the pointer on the screen while scrolling is impossible, then a temporary increase in pointer sensitivity may enable more workspaces to be scrolled for a given pointer travel. A more sophisticated version of this would involve adjusting the sensitivity such that scrolling in either direction would reach the last workspace as the pointer reaches the edge of the screen (within reasonable limitations).

Also show 3d cube when switching workspaces in 'normal' mode

The Motivation

One can switch workspaces in 'normal' mode, i.e. outside the activities overview mode.
The request is to enable 3D desktop cube when switching in normal mode.

The Solution

Similar to desktop cube workspace switching in activities mode, rotate the workspaces using the desktop cube.
Possibly a small zoom out is required when pressing the <CTRL>+<ALT> keys to show the desktop on the face of the cube. The cube starts rotating when pressing the cursor left or right keys (while keeping the <CTRL>+<ALT> keys pressed).
Zoom in towards the face of the cube / show full desktop once <CTRL>+<ALT> keys are released.

The Alternatives

None, keep as is.

Vertical Overview Support

The Motivation

Users who use "Vertical Overview" will have a very wonky experience with windows (go test it yourself)

The Solution

Support the cube being vertical

Setting to select speed of animation

Awesome extension. Thanks! :)

The Motivation

The video you show of the extension is use looks great. But for some reason on my PC the animation is much faster, so I don't get to enjoy it in the same way.

The Solution

Just a setting that lets you drag a slider to select the speed of animations would be great. Either just one slider, or one for the zoom out animation when opening the Overview and another for the spin animation when changing desktop. If two it would be nice to be able to lock them in sync.

The Alternatives

Alternatively slow down the default speed, I guess? :)

Thanks again!

Visual glitches

Describe the Bug

No workspace is shown to the left of the current workspace (I guess it renders behind) and other workspaces are clipping through the current one.

cube.mp4

Steps to reproduce the behavior:

  1. Get an ultrawide monitor
  2. Install this extension
  3. Open the desktop overview

Expected Behavior

Nice animations without glitches

System

  • Linux distribution: Arch Linux
  • Desktop Cube version: Desktop Cube 3
  • GNOME Shell version: 41.1

Wrap around the cube

The Motivation

It'd be nice to wrap around the cube when you get to the last workspace. There is an extension that allows for this to happen, however if you try it it kind of turns the cube all the way back to workspace 1 from 4 instead of just moving one over from 4 to 1.

Extension I'm talking about is here: https://extensions.gnome.org/extension/1116/workspace-switch-wraparound/

The Solution

It'd be nice if there was just a wraparound function that "kept going" in the direction I'm going in. Not sure if this should live in desktop-cube or the wrap around extension but I figure I'd ask here first.

gnome-session crashes when logging and desktop-cube is enabled

Describe the Bug

When I have desktop cube enabled gnome freeze while logging in, and syslog is filled (gigabytes) with errors until it crashes. If I disable desktop cube I have no problems. If I enable desktop cube again while logged in everything works perfectly, the crash only happens when logging in to a new gnome-session. I also have burn my windows which works perfectly.

Steps to reproduce the behavior:
Install desktop cube
Reboot
Log in to gnome

Syslog excerpt:

Oct 16 22:14:00 wukong gnome-shell[4309]: == Stack trace for context 0x563ae94ae4b0 ==
Oct 16 22:14:00 wukong gnome-shell[4309]: Attempting to run a JS callback during garbage collection. This is most likely caused by destroying a Clutter actor or GTK widget with ::destroy signal connected, or using the destroy(), dispose(), or remove() vfuncs. Because it would crash the application, it has been blocked.
Oct 16 22:14:00 wukong gnome-shell[4309]: == Stack trace for context 0x563ae94ae4b0 ==
Oct 16 22:14:00 wukong gnome-shell[4309]: == Stack trace for context 0x563ae94ae4b0 ==
Oct 16 22:14:00 wukong gnome-shell[4309]: The offending callback was SourceFunc().
Oct 16 22:14:00 wukong gnome-shell[4309]: == Stack trace for context 0x563ae94ae4b0 ==
Oct 16 22:14:00 wukong gnome-shell[4309]: == Stack trace for context 0x563ae94ae4b0 ==
Oct 16 22:14:00 wukong gnome-shell[4309]: Attempting to run a JS callback during garbage collection. This is most likely caused by destroying a Clutter actor or GTK widget with ::destroy signal connected, or using the destroy(), dispose(), or remove() vfuncs. Because it would crash the application, it has been blocked.
Oct 16 22:14:00 wukong gnome-shell[4309]: The offending callback was SourceFunc().
Oct 16 22:14:00 wukong gnome-shell[4309]: == Stack trace for context 0x563ae94ae4b0 ==
Oct 16 22:14:00 wukong gnome-shell[4309]: == Stack trace for context 0x563ae94ae4b0 ==
Oct 16 22:14:00 wukong gnome-shell[4309]: Attempting to run a JS callback during garbage collection. This is most likely caused by destroying a Clutter actor or GTK widget with ::destroy signal connected, or using the destroy(), dispose(), or remove() vfuncs. Because it would crash the application, it has been blocked.
Oct 16 22:14:00 wukong gnome-shell[4309]: == Stack trace for context 0x563ae94ae4b0 ==
Oct 16 22:14:00 wukong gnome-shell[4309]: == Stack trace for context 0x563ae94ae4b0 ==
Oct 16 22:14:00 wukong gnome-shell[4309]: The offending callback was SourceFunc().
Oct 16 22:14:00 wukong gnome-shell[4309]: Attempting to run a JS callback during garbage collection. This is most likely caused by destroying a Clutter actor or GTK widget with ::destroy signal connected, or using the destroy(), dispose(), or remove() vfuncs. Because it would crash the application, it has been blocked.
Oct 16 22:14:00 wukong gnome-shell[4309]: The offending callback was SourceFunc().
Oct 16 22:14:00 wukong gnome-shell[4309]: Attempting to run a JS callback during garbage collection. This is most likely caused by destroying a Clutter actor or GTK widget with ::destroy signal connected, or using the destroy(), dispose(), or remove() vfuncs. Because it would crash the application, it has been blocked.
Oct 16 22:14:00 wukong gnome-shell[4309]: The offending callback was SourceFunc().
Oct 16 22:14:00 wukong gnome-shell[4309]: Attempting to run a JS callback during garbage collection. This is most likely caused by destroying a Clutter actor or GTK widget with ::destroy signal connected, or using the destroy(), dispose(), or remove() vfuncs. Because it would crash the application, it has been blocked.
Oct 16 22:14:00 wukong gnome-shell[4309]: The offending callback was SourceFunc().

System

  • Ubuntu 22.04.1 LTS
  • Desktop Cube version: 13
  • GNOME Shell 42.4

Cinnamon support?

The Motivation

I would like to use this extension on Cinnamon

The Solution

While using the cinnamon desktop I would like to see the 3d cube effect

The Alternatives

There is a similar desktop cube that does a single animation trick.

Add option to disable workspace snapping

@BitBiro wrote:

Are you able to keep the rotation when it is activated via mouse by not reseting the cube animation ?

Would be handy when you rotate the cube and let it standing rotated until i press esc, right click or something similar. This way screenshots can be made easily with the gnome screenshot utility or just to have a pretty overview, standing up doing some work in house and similar :)

I think it wouldnt be hard to integrate such an option in the settings. As far as i am remembering it KDE has such a similar behaviour at their cube solution.

Configure pressure to switch workspaces when dragging windows to edge

The Motivation

I like the ability to switch workspaces by dragging windows to the edge, but I often find myself accidentally activating this when attempting to just move or tile a window.

The Solution

If possible, it would be great to allow a configurable pressure threshold before the workspace switch is triggered

Cannot install the extension through gnome-intergration-tool

This was the error that showed during installing the extension.

Gtk.BuilderError: .:51:33 Invalid property: GtkMenuButton.icon-name

Stack trace:
PreferencesDialog@/home/bhishmapitamah/.local/share/gnome-shell/extensions/[email protected]/prefs.js:43:19
buildPrefsWidget@/home/bhishmapitamah/.local/share/gnome-shell/extensions/[email protected]/prefs.js:237:16
_init@resource:///org/gnome/Shell/Extensions/js/extensionsService.js:207:40
OpenExtensionPrefsAsync/<@resource:///org/gnome/Shell/Extensions/js/extensionsService.js:122:28
asyncCallback@resource:///org/gnome/gjs/modules/core/overrides/Gio.js:132:13
run@resource:///org/gnome/Shell/Extensions/js/dbusService.js:175:20
main@resource:///org/gnome/Shell/Extensions/js/main.js:19:13
run@resource:///org/gnome/gjs/modules/script/package.js:222:19
start@resource:///org/gnome/gjs/modules/script/package.js:206:5
@/usr/share/gnome-shell/org.gnome.Shell.Extensions:1:17

Cinnamon when

This looks cool but I use Cinnamon. When will it be available?

I think that because there isn't an overview, you'd have an applet to launch it.

Show workspace names

The Motivation

Through so well hidden in GNOME, workspaces still have names as they have since time (and window managers) immemorial. It would be nice to actually see them.

$ gsettings describe org.gnome.desktop.wm.preferences workspace-names
Defines the names that should be assigned to workspaces. If the list is too long
for the current number of workspaces, names in excess will be ignored. If the
list is too short, or includes empty names, missing values will be replaced with
the default (β€œWorkspace N”).

The Solution

Display workspace names on or above the workspace in the cube, optionally zooming, enlarging, highlighting and/or otherwise emphasizing the name of the currently displayed workspace.
Provide configuration settings for position, size, font, background, opacity, etc. with sensible defaults which fit reasonable names without significantly obscuring workspace content.

The Alternatives

Display the workspace name briefly upon selection as an overlay.
Provide configuration settings for duration, position, size, font, background, opacity, etc. with sensible defaults which fit reasonable names on the screen.

Can't install desktop-cube

Hello!

I've tried to install the extension both from Gnome Extensions and the zip file, but I always get this error:

The settings of extension [email protected] had an error:

Gtk.BuilderError: .:53:33 Invalid property: GtkMenuButton.icon-name

Stack trace:

PreferencesDialog@/home/alexander/.local/share/gnome-shell/extensions/[email protected]/prefs.js:50:19
buildPrefsWidget@/home/alexander/.local/share/gnome-shell/extensions/[email protected]/prefs.js:261:16
_init@resource:///org/gnome/Shell/Extensions/js/extensionsService.js:207:40
OpenExtensionPrefsAsync/<@resource:///org/gnome/Shell/Extensions/js/extensionsService.js:122:28
asyncCallback@resource:///org/gnome/gjs/modules/core/overrides/Gio.js:132:22
run@resource:///org/gnome/Shell/Extensions/js/dbusService.js:177:20
main@resource:///org/gnome/Shell/Extensions/js/main.js:19:13
run@resource:///org/gnome/gjs/modules/script/package.js:222:19
start@resource:///org/gnome/gjs/modules/script/package.js:206:8
@/usr/share/gnome-shell/org.gnome.Shell.Extensions:1:17

Is there any solution?

Slight cpu leak

I can notice a leak in cpu > small but noticable
config N4100 intel

Create a settings dialog

Here are some things which could be configurable:

  • Angular coverage of the complete "cube"
  • Separation of adjacent workspaces
  • Opacity of the active workspace
  • Opacity of inactive workspaces
  • The horizontal stretch factor
  • The depth separation
  • The unfolding animation to the desktop
  • The animation times

This issue would fix #1 and #6 along the way.

Background panorama incompatible with Material Shell

Describe the Bug

The panorama photo does not display in the background. Instead, a screenshot of the non-cube workspace is displayed. I have attached a screenshot of the bug, which shows my terminal on the cube face, and the background showing the terminal as it is displayed when the cube is not being displayed.

Screenshot from 2022-06-17 12-21-46

Steps to reproduce the behavior:

  1. Select a photo from polyhaven.com/hdris
  2. Download the 8k tonemapped jpg
  3. Set the photo as the background panorama
  4. Display the cube

Log output:

❯ journalctl -f -o cat | grep -E 'desktop-cube|'
Unsupported modifier, resource creation failed.
XXX: resource creation failed
Started Application launched by gsd-media-keys.
Invalid window geometry for xdg_surface@31. Ignoring for now, but this will result in client termination in the future.
Unsupported modifier, resource creation failed.
XXX: resource creation failed
Unsupported modifier, resource creation failed.
XXX: resource creation failed
Supervising 10 threads of 8 processes of 1 users.
Supervising 10 threads of 8 processes of 1 users.

Expected Behavior

The photo is displayed in the background when the cube is displayed.

System

  • Linux distribution: Manjaro
  • Desktop Cube version: Desktop Cube 10
  • GNOME Shell version: GNOME Shell 42.2

Allow use of keyboard + mouse drag to activate cube

The Motivation

If I can remember correctly, in Compiz, to activate the cube, one just uses Ctrl + Alt + mouse drag. Would be nice if this would work like that again.

This is so that the panel can be free for dragging full screen windows to scale down. Also, so that I can still use the cube even when I have Desktop Icons NG installed (prevents drag from desktop).

The Solution

Allow Ctrl + Alt + mouse drag to activate the cube. (or maybe customizable keyboard/mouse shortcuts).

The Alternatives

Use overview to show the cube and drag from there.
Don't use desktop Icons NG, so you can still drag from the desktop.
Just use Super + mouse drag the full screen window to un-fullscreen it.
Don't use Hide Top Bar on auto-hide, so the cube won't freeze when dragging from the panel and the panel auto-hides.

Thanks for considering this.

Installation Broken

Describe the Bug

Installation fails with this error:
The settings of extension [email protected] had an error:

Gtk.BuilderError: .:51:33 Invalid property: GtkMenuButton.icon-name

Stack trace:

PreferencesDialog@/home/charlesaverill/.local/share/gnome-shell/extensions/[email protected]/prefs.js:43:19
buildPrefsWidget@/home/charlesaverill/.local/share/gnome-shell/extensions/[email protected]/prefs.js:237:16
_init@resource:///org/gnome/Shell/Extensions/js/extensionsService.js:207:40
OpenExtensionPrefsAsync/<@resource:///org/gnome/Shell/Extensions/js/extensionsService.js:122:28
asyncCallback@resource:///org/gnome/gjs/modules/core/overrides/Gio.js:115:22
run@resource:///org/gnome/Shell/Extensions/js/dbusService.js:177:20
main@resource:///org/gnome/Shell/Extensions/js/main.js:19:13
run@resource:///org/gnome/gjs/modules/script/package.js:206:19
start@resource:///org/gnome/gjs/modules/script/package.js:190:8
@/usr/share/gnome-shell/org.gnome.Shell.Extensions:1:17

Steps to reproduce the behavior:
Install using either the GitHub releases or https://extensions.gnome.org/

Expected Behavior

Standard installation followed by use

System

Turn off automatic rotation

Excellent extension, thank you.
But there is a problem. When you drag a software to the edge of the screen, the screen will automatically flip to the next desktop.
I don't think it should be, because the original function is that the software automatically occupies half of the screen. I hope it can provide the option to turn off automatic rotation.

Dual monitor: window blinks with panoramic BG

Describe the Bug

When using dual monitor AND panoramic background, the window on the non rotating monitor blinks (*).
(*) blink = disappear/reappear

Steps to reproduce the behavior:

  • Have a Dual monitor setting.
  • Choose a nice panoramic
  • do workspace switch

The window blinks !

Expected Behavior

Smooth rotation.

System

DC9
fedora 35

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.