GithubHelp home page GithubHelp logo

awesome's People

Contributors

xbc5 avatar

Watchers

 avatar

awesome's Issues

Use vim keymaps

You will need to investigate the potential use of Vim modes first (#12).

Make default workspace

Send clients without explicit designation to the default workspace. This allows the user to combine tags without the clutter.

Manual layout binds

Create a distinct binding for each layout, in contrast to cycling through them.

Create cursor move|jump mappings

Manually jump the cursor to a specific place on the screen. This is useful when using a keyboard mouse, and makes finding the cursor easier by jumping it to a specific location.

You can do it with xdtool mousemove <<X>> <<Y>>, but you will have to calculate positions from screen size (do this every time so that it's responsive to screen size changed -- like moving to another monitor).

Make tage selection explicit

Tags implicitly select the current workspace, change this so that the user has to explicitly select workspaces. This makes joining tags less confusing, because you first have to change to that tag before combinign it with another.

e.g. not: [change to A] => [select B] => combined
instead: [select A] => [select b] => combined

Create a popup fuzzy shell

Create a shell prompt that uses FZF to search through shell history with a frecency algorithm. If the user selects no matches, but instead hits enter for the current line, then execute that command. Also, execute automatically any historical commands chosen.

It might be worth making this a standalone project.

Embed notifications in the taskbar

Instead of using those sliding floating windows, display them in a taskbar (#16). This could be a different taskbar to the one that contains tags (screens) and window placeholders (i.e. the typical taskbar); you could use a dedicated taskbar for both notifications and running VMs (#14).

The notification itself should appear as a single row of text, which collapses into a small icon after 10 seconds. If another notification appears, if will collapse the current one. An icon with a number (of notifications) should live permanently on the taskbar, when the user activates a keyboard shortcut (#15), a sliding side window (#17) should open, displaying all notifications as a list. This list is browsable, and the user can expand, or delete items with vim key bindings.

Investigate the use of modes

e.g. vim modes. Consider insert, normal, and visual select modes.

  • insert mode: interact (input) with the currently selected window;
  • normal mode: manage the current window (layout);
  • visual mode: select windows on a window by window basis (i.e. not block select) so that the user can execute commands (e.g. move) on them;

Make the current mode highly visible -- much more visible than Vim.

Create a sliding side-window

To display various contexts -- for example running VMs (#14). This window should display on keymap activation (#12), and slide in from the right.

Create start script launcher (helper)

Simple start scripts can be user unit files. This is a chore to make for every one, but the (oneshot) unit file is the same in almost every case.

This can probably be a standalone project (in fact it's probably best that it is); it does not need to be complex, just a simple shell script with an FZF interface.

  • create a popup (floating) interface that will fuzzy select an executable file from $PATH, and create, enable, and start a unit file for it;
  • create a means to start, stop, disable, enable any unit file;
  • create a means to create a fully customisable unit file, such that when oneshot isn't sufficient, it will open your $EDITOR | vim with a cookie-cutter unit file already populated; when the user "saves", it's saved to a local systemd unit directory; when the user exits, it will enable and start the unit file;

Improve tag combination creation

Right now, if you switch away from a tag combination it is lost. Allow users to easily create custom tag combinations. Analogous to register in Vim, provide a feature that users can quickly an ephemerally bind custom tag combinations to a key.

Possibly related to #11 and #12.

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.