Coder Social home page Coder Social logo

mousetile-gnome's Introduction

Mousetile

A tiling window manager inside Gnome Shell, for people who like using mice.

Note that this is a learning project: I'm opting to rebuild the world when it seems interesting to me. I'm building Mousetile in a rather abstract manner, and using many files and classes where perhaps a data-structure driven approach would be better (given that this is indeed Javascript).

I'm trying to teach myself why I would like to use statically-typed languages I guess.

Goal

A tiling window manager for mouse users. I'm really inspired by the pane management UI of Visual Studio, and I'm going to bring that to general-purpose window management.

A side-goal is producing a library abstract enough that most of it can be used both in the browser, and on the desktop as a Gnome-Shell extension.

The tertiary goal, as always, is not sucking.

Installation

This repository will eventually become a Gnome Shell extension. For now, just put it wherever you usually store your personal projects, then symlink it into place:

# Clone the repo
$ cd ~/src; git clone https://github.com/justjake/mousetile-gnome.git

# Link in the shell extension
$ mkdir -p ~/.local/share/gnome-shell/extensions
$ cd !$
$ ln -s ~/src/mousetile-gnome [email protected]

Then, to activate the extension, point Firefox or any browser with the Gnome-Shell plugin installed to the installed extensions page, and turn the Mousetile extension on.

Building

Mousetile is written in Coffeescript, and is built using cake, the simple Coffeescript build system. Both run on NodeJS, so you'll need a recent version of Node to install Coffeescript.

Mousetile uses cake for tasks

# Show available tasks
$ cake

# Build the libraries and sample app
$ cake build

If you are doing development and want live recompilation of the libraries, use watch.zsh because it'll spit errors into your terminal. watch.zsh targets only the libraries in src so if you're working on app.coffee or extension.coffee you'll have to watch those separately.

Usage

Right now the gnome shell extension adds a button to the toolbar that shows "Hello world" when clicked. Uhh. Not that useful.

The most "impressive" thing we have to show so far is a simple GJS Clutter demo that subdivides some space.

$ cake build
$ cake run

Name

Please suggest a new one. The current name is failing the tertiary goal.

Because I'm bad at names and gnome-shell-extension-tool really wanted one

mousetile-gnome's People

Contributors

justjake avatar

Watchers

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