Git Product home page Git Product logo

chromewm's Introduction

Windows Manager for Google Chrome

NOTE: Chrome™ is a trademark of Google Inc. Use of this trademark is subject to Google Permissions.

This Chrome™ browser extension provides two windows management functions:

  • Tiling windows.
  • Emulating workspaces

Features

  • Multi-monitor support.
  • Emulates up to 9 workspaces.
  • Tiles windows to 8 different positions. (4 corners + 4 split screen)
  • Remembers the windows workspace assignment between system reboots.
  • Allows to define custom keyboard shortcuts.
  • Multi-platform support: ChromeOS, Linux, Mac and Windows.

Required Permissions

  • Display Notifications: To Notify when switching to another workspace.
  • Read your browsing history: To recover each window's workspace assignment after a reboot or browser restart.
    It creates a unique hash number for each window based on the amount of tabs open and the url of the last tab, and this permission is needed in order to get that information.

Use Guide

Install and Configure

  1. Install from the Chrome™ Webstore
  2. Click on the extension icon on the toolbar.
  3. Select the amount of workspaces by using the slider.
  4. Click on the 'Configure shortcuts' button.
  5. Configure the keyboard shortcuts to switch workspaces. (I recommend using Alt+X and Alt+Z)

Normal Use

Tile Windows

With the Chrome™ Browser window in focus, use the configured keyboard shortcuts to tile it to different positions.

Switch Workspaces:

  1. Press the Next Workspace or Previous Workspace keyboard shortcut.
  2. A notification will be displayed indicating which workspace is now active.
    NOTE: The extension icon will always display the active workspace.

Move a window to another workspace:

  1. Switch to the destination workspace.
  2. Bring the window to focus using Alt+Tab, or another window management function of the native Operative System.

Known Limitations

  • Does not recover the workspaces state if the browser crashes due to a power loss or the process being terminated. (See issue #1)
  • Cannot set all shortcuts by default do to an imposed limit of 4 by Chrome.
  • It's necessary to open a new Chrome™ window when switching to an empty workspace, in order for Chrome™ to be in focus and able to listen for keyboard shortcuts. (The window will be removed if it's not used)

About the Code

I did this cause there are no workspaces in ChromeOS, I'm not a developer (2nd thing I do in JS), but I'll try to keep improving the code as I learn Javascript. Check this link for more information.

Dependencies

The code compiles in linux and uses the Google Closure library and compiler.
I will eventually modify the builder so it's not necessary to grab those dependencies (see issue #3), but for now, you can get them from their project pages:

Compiling

  1. Clone the repository: git clone https://github.com/EduCampi/chromewm.git
  2. Edit the build.sh file.
  3. Replace the first section with the paths to the Closure Compiler .jar file, Closure Library, and the externs files inside the Closure Compiler repository.
  4. Save and execute the build.sh file.
  5. The built package will be located at the bin directory.

chromewm's People

Contributors

educampi avatar jaygoldberg avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  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.