awesome's People
awesome's Issues
Make default workspace
Send clients without explicit designation to the default workspace. This allows the user to combine tags without the clutter.
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.
Make terminal open with simple key press
e.g. . Use the currently selected domain as the context.
Create window rules for various clients
matrix, dev browsers, daily/youtube browsers, nvim (IDE), templates, bookmark windows (on their own workspace), test..
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
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 widget to display running VMs
Improve tag combination creation
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.
Create a dedicated taskbar
For items that are not tags or window placeholders (i.e. the typical taskbar).
Manual layout binds
Create a distinct binding for each layout, in contrast to cycling through them.
Create a sliding side-window
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;
Create separate dev browser workspaces
Create one for dev (webdev/webext) and normal.
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).
Add full class name to taskbar
e.g. dev:browser -- add it to the items within the taskbar, and remove the other useless text.
Manually map out keyboard layout before implementation
This means think about the keymaps, and diagram them first. Consider the most used bindings and put them on the home row.
Use vim keymaps
You will need to investigate the potential use of Vim modes first (#12).
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.