Code Monkey home page Code Monkey logo

space's Introduction

Space Desktop Environment

The Space Desktop Environment is an innovative new way to control a computer. Built for the Galaxy Linux, it is designed to use Wayland as a display server and does not require X11 to be installed to work. It supports an X11 compatibility layer to allow applications built in X11 to still work; however, a dramatic performance increase can be achieved by using apps designed specifically for Wayland. Programs written in GTK+3 and Qt can optionally be compiled for Wayland. In addition, part of the Galaxy Linux project will be a graphics toolkit and library built on JUCE. That project will be started in the next year.

Disclaimer

This project is still in very early development, and all of the specifications in this document are subject to change as the project becomes better defined.

Tabs Are The Future

I would bet that whatever you are using to read this file has tabs, be it your web browser, text editor, or terminal. Everything has migrated to using tabs because it is an intuitive and easy way to organize and manage everything you have open or are working on. Everything that is except one: the display environment has still remained virtually unchanged for the last two decades. Most display environments can be grouped into two categories: stacked or tiled. Stacked windows managers have floating windows which can overlap each other, can be maximized/minimized, and dragged around to any location on the screen. Examples of stacked windows managers are GNOME, Cinnamon, Unity, Plasma, and Microsoft Windows. Tiled windows managers have all programs in one layer. They do not allow windows to overlap each other, but instead have sections of the screen which each program gets to “own.” They tend to be very depended on keybindings and can be cumbersome to move programs from one tile to another. They are also very limited in how many programs can realistically be open/displayed at a time.

Wouldn’t it be great if there was an alternative to these two options? Well soon there will be! The Space desktop environment makes extensive use of tabs, just like your favorite web browser and text editors do. At first start up the user will presented with a “Solar System.” This Solar System will contain one empty “Planet.” Programs are opened in Planets, and a single Planet can contain any number of programs. Each program in a planet shows up as a tab in the Planets tab bar. Tabs can be rearranged by click and drag, closed by clicking an ‘x’ icon or using scroll click, and can be dragged from one planet to another. New planets are created by clicking and dragging from any screen edge towards the center. This will reduce the size of the current Planet and create a new one in the blank area. The planets can always be resized, however the entire Solar System must be covered in planets. Therefore if one Planet is made smaller, another will automatically become larger to fill the space. There is also support for floating windows called “Comets” which will always remain on top of all planets, but can be dragged around like traditional stacking windows managers.

Space Is Infinite

Everyone knows that space is infinite in all directions, so why shouldn’t the Space desktop environment be infinite too? Well as anybody with a basic understanding of computers can tell you, there is a finite amount of memory and other system resources available. That won’t stop us from trying to give the user as much space and customization as possible. The user already has the ability to move and resize programs and planets, but what if they run out of room? After all the screen is only so big, how many Planets can realistically fit into a Solar System? The solution: add more Solar Systems. The Solar Systems can be switched using the CTRL+ALT+arrow combination. There will also be a “Galaxy Viewer” which will allow the user to see all of their systems at once and switch between them.

Two or More Solar Systems At Once

Many users now have multiple screens for their computer. The traditional solution has been to treat the entire screen area as one large screen. Space will have support to stick with this tried and true method, but it will also offer a new idea. Each screen becomes its own Solar System. For example, assume the user has three solar systems currently defined on a system with two screens. They can then have Solar System A on screen 1, and Solar System B on screen 2. They would be able to switch screen 2 to System C and still have System A on screen 1. They could then change screen 1 to show System B while screen 2 is still showing System C. Space will have support for any number of screens the user may have.

Quantum Entanglement

A hundred years ago we thought we knew everything about how space and the universe worked, but then we discovered quantum physics. Albert Einstein described quantum entanglement as “spooky action at a distance.” When one object exists in multiple places at the same time, those objects are said to be quantum entangled. Space offers this ability in a couple of different locations. For example, one program can be in multiple Planets across multiple Solar Systems at the same time. The program only exists once in memory, but any of its quantum entangled versions can be used to view and control that program. Also, multiple versions of the same Solar System can be shown across multiple screens at the same time, a useful feature for presentations!

Star At The Center of The Solar System

Every solar system needs a star to orbit around. In Space, the “Star” takes the place of the traditional task bar. It is a place to show useful system information such as e.g. time, WiFi status, battery status, etc. It is also where Comets are stored and can be controlled. Any program which is in a Planet does not need to show up in the Star because the Planet maintains the life of that program. This reduces clutter and makes it easier to find what you are really looking for. The Star is very customizable and can optionally be set for each Solar System, or one star can be used for all Solar Systems.

Each Solar System is Unique

Every solar system is different with its own aspects which make it unique. Space uses a brand new theme system which allows the user to easily create their own themes. Gone are the days of needing to be an expert web designer just to change the color of a text box. Instead Space (and Galaxy Linux) use a universal theme system which allows the user to write themes in JSON files. In Space the user can apply a theme to the entire Galaxy which will be inherited by all Solar Systems, Planets, and programs. The user can also apply themes to a single Solar System, single Planet, or ever apply a theme to a single Program. If theme A is applied to Planet 1 and theme B is applied to Planet 2 moving a program from Planet 1 to Planet 2 will cause the program to re-theme itself from theme A to theme B automatically. When two elements are quantum entangled using two themes, all of the versions of the element will theme the same as the theme of the version which currently has focus.

space's People

Contributors

jvens avatar

Watchers

James Cloos avatar Dmitry 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.