Giter Club home page Giter Club logo

desktop-cube's Introduction

A Desktop Cube for GNOME Shell


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-alike 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 primary monitor. However, the cube looks somewhat sheared on setups with multiple monitors if the cube is shown on all monitors.

๐Ÿ’ž These People love this Extension

While coding new features is the most awesome way to contribute, providing financial support will help me stay motivated to invest my spare time to keep the project alive in the future.

๐Ÿฅ‡ Current Gold Sponsors

Dennis ten Hoove

๐Ÿฅˆ Current Silver Sponsors

tj3k
Jorge Castro

๐Ÿฅ‰ Current Bronze Sponsors

Angel Brielez

Do you want to show that you love it too? You may become a sponsor for as little as 1$ / month! If you like this extension, you may also want to try one of my other extensions: ๐Ÿ”ฅ Burn-My-Windows or ๐Ÿฐ Fly-Pie!

โฌ‡๏ธ 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

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 rulles 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

clemovski avatar comradekingu avatar frankie-mceyes avatar oscfdezdz avatar schneegans avatar shemgp avatar simple-sunrise avatar vantu5z avatar veyselerden avatar vistaus avatar weblate avatar xosecalvo avatar

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.