Git Product home page Git Product logo

qubes-awesome's People

Contributors

xbc5 avatar

Watchers

 avatar

qubes-awesome's Issues

Modal focus switches to the wrong client

When switching from a scratch (e.g. dev console) back to the previous scratch, every second time it focuses the window behing it. I have two hunches:

  1. it has something to do with the client properties that are set -- perhaps one of them prevents proper history tracking; or the client isn't recognised as a typical client;
  2. the order of the client history gets messed up when switching between two winows repeatedly;

Does it have something to do with the drawing order (as suggested on Matrix)? How does one change the drawing order? The suggestion was ontop=true, but is ther another way?

Create smart workspace scratch toggles

When on a VM specific tag (e.g. dev:b): activating a scratch should activate it for that VM -- UNLESS one has a a client from another VM focused, which takes precedence.

or the tag is a compound of multiple VMs -- perhaps in that case it should start all.

In addition to that, don't switch to the workspace if ALL VMs are not present, simply execute the start routine, notify, then one can switch over manually when ready. This will save wasted effort, and needless switching back and forth.

This is an extension to the current behaviour, which activates modals based on the client's VM.

Remove screen requirements for tags

For multi-screen setups we shall set static screens via awful.screen. Most of the tag related functions do not need a screen as an argument (because we will use a set of unique tags across all screens).

Go through all of the tag related functions and remove the screen argument (in most cases). If we need to search for a screen, combine all screens and perform a (black-box) search -- the client should not care about the screen.

Create a debounce for tag client launches

For example, launching the fin client will launch several a client is already open. This is because the logic checks for an existing client, but there's usually time between booting and starting a client. Spamming the button will launch multiple. It needs a way to track state, but process callbacks do not work due to qvm-run not returning until the app closes.

Map tag activation to a special keymap

Use Mod, Control, Shift + KEY to activate the default set of clients.

This assumes two things:

  • the Tag as a set of default clients;
  • the Tag knows which qubes it's associated with;

I call this a "client spec":
{{ name = "myapp", rule = { class = {"myapp"} }, qube = "theqube" }, ...};

Refactor scratch

Use classes, and encapsulate all of the creation logic -- right now it's stupidly difficult.

Activate a client when on a specific workspace

When switching to a specific workspace, and there is no client, run the client for that workspace and VM. Also map a key that allows one to open additional clients.

If the VM isn't running, don't immediately change to the workspace, instead send a notification; then another when the client is ready.

This relates to #7, so don't duplicate the work there. Perhaps do that issue first.

change stop rule to a key map

But also only for its designated tag. For example, activating stop on ANY dev tag will stop the VM; activating it on a compound tag will stop all VMs.

Tag doesn't switch to workspace after start

Athough this is desirable behaviour, it's also a bug.

The issue (I think) is that qvm-run processes do not exit immediately (they do not fork), so a callback after the client opens does not execute. This nees more investigation.

Improve titlebars

Colourise the VM name, possibly remove the brackets; embolden the app name.

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.