Hi list: Were getting close to D3 and need a desktop!
I would like some honest feedback about microde. We don't have all the packages pre-built yet so until that happens I'd like you to read the theory behind it first. I understand it may not be every ones cup of tea, but don't be shy as I'm more interested in honest an honest critique than anything else. * Microde: Overview. 2016-11-13 Microde is an attempt at a creating a logical light-weight and modular desktop using existing application configured in a way that they complement each other. It looks at common issues and attempts to solve them. That's what microde is all about really, doing all the hours of tweaking config files that make it possible to run a small modular system that's fully functional only doing a few things from a terminal. By prefiguring the technical settings the non-geek user can keep their older hardware running quickly, allowing people that want to run a light weight libre computing system but don't have the skills to do so. microde tries to support keyboard, mouse, menus and run-dialog as ways to launch applications. To aide learning, there is much repetition of actions via as many methods as practically possible. microde uses a stacking window manager (openbox) rather than a tiling widow manager. That's not to say a tiling window managers can't stack or a stacking Wm can't tile be cause they can. The issue with tiling window managers is they tile. Therefore depriving you of large areas of the screen the exact opposite of what they're meant to do. That in my opinion is a fail. The issue with stacking window managers is they tend to expect you to iconify and raise or move and resize them. That in my opinion is also a fail. What's needed is maximum window size of the currently active window while still allowing the user to SEE what windows are open and on which desktops. You only need to open and close windows unless your sending them to another desktop. A way to launch applications fast with out much thought. We use 20% of our applications 80% of the time. That's easy to solve. It's the 75% we use 15% of the time that's a challenge and the 5% of applications we use 5% of the time that we don't even know what they are that's the hard work. A way to launch my commonly use applications and tasks and set the desktop up automatically (autostart.sh in openbox) A way to launch my commonly use applications and tasks without using a menu and preferably just one click. (fittstool or tint2) or one action (keyboard short cut) A need a way to launch my less commonly use applications and tasks without using a menu. preferably just two actions with either a keyboard short cut (run-dialog > runner) A way to launch my menus if needed. I have 3 menus available, all appear in the openbox menu, all of different types. Bookmarks menus of rox-bookmarks, and a file-browser menu from obbrowser as well as the openbox menu. 95%> of windows maximized. Not full screen, maximized. Cycle between them via scroll wheel over tint2 or Alt-Tab. Raise or lower windows in the stack as needed by selecting the application icon in tint2 or Ctl-F6 to raise the active window to the top of the stack or CTL-F8 to lower it. No need to iconify anything. Should it be needed, you can display two windows on the same desktop/work-space by splitting the screen with windows either vertically or horizontally. Via tint2 (place the cursor over icon for options), fittstool (top right corner) or with Ctl-F10 and Ctl-F9. What a window manager should do and why. Able to be run with equal usability via keyboard and mouse Be easy to configure via a well commented text file and have sane defaults Config file can be reloaded during run time You only need to open and close windows Window decoration/tabs should be useful and not compulsory it's nice to switch them off on a per application basis or toggle them (I use alt-B for this in openbox) Mousing over a icon/tab should show the contents but not switch to it (tint2). Be able to set unmaximize for dialogs boxes and small applications like calendars and calculators. Be panel/task bar aware and not cover an active task-bar Ability to choose or not display running applications in the pager or task-bar Be able to show all open applications and their icon/tabs across all desktops. so the current active desktop is highlighted (see kelsoos tint2) Moving to a new desktop/work-space must not hide info of all other desktops or open windows You should never need to iconify a window it make no logical sense. If your iconifying it's to see something that's hidden. Your not closing it so intend to return to it. You should just start what it's hiding because that just one action. You should never need to move a window unless it's to another desktop. If your moving it's to see something that's hidden. Your not closing it so intend to return to it. You should just start what it's hiding because that just one action. Re-sizing windows is rarely needed if you run maximized. In general if your re-sizing windows your desktop setup is failing. You should rarely need to resize a window unless it's to split two windows on the same desktop. Perhaps to read a file and whilst entering text into a terminal. Alt-Tab aware across all desktops so it shows all running applications You don't need desktop icons (if your active windows are maximized you can't see them. Desktop icons are used to launch applications but it's not a window managers job it's a run dialogs, menus or launchers job. Closing or moving or re-sizing a window to launch an application is crazy. iconifying makes no sense, if your iconifying it's to see something behind the active window or because your not wanting to use it currently. In either case you need to concentrate on what you do want to do, and do that instead. Just raise what your wanting to do and the window your trying to hid will just go down the stack. The same goes for icons on the desktop. They make no sense. The desktop is just a directory and the application to manage directories is a file manager. It's the same number of actions to switch to your file manager as it is to switch to the desktop, and as it will be maximized... enough said. I currently Drag n drop between windows via tint2. So if you have several windows open you can select something be it a file or text and drag it to another window via the tint2 across all desktops. Be able to set a few pixel border for things like fittstool and desktop scrolling via the mouse. have Dual monitor support ** keys One area where there is much repetition is the use of left, middle, right mouse buttons. Key: Left-mouse-button = LMB Middle-mouse-button = MMB Right-mouse-button = RMB ** Core applications Microde is based around 3 core applications each selected and configured because of the features they offer and how well they complement one another. They are fittstool, openbox, and tint2 panel. Each of these core applications has been tweaked to enhance it's capabilities with scripts and additional small applications ** Fittstool: https://github.com/jeanCarloMachado/fittstool Microde uses fittstool as the launcher for most commonly accessed applications. Fittstool is based on fittslaw https://en.wikipedia.org/wiki/Fitts's_law which calculates the fastest way to activate something. We use the cursor and 8 compass points as targets. North (top), East (right), South (bottom), West (Left) and the four corners. Northeast, Southeast, Southwest, Northwest. Each area potentially having up to 9 launchers. Available events are: LeftButton, RightButton, MiddleButton, WheelUp, WheelDown, WheelUpOnce, WheelDownOnce, Enter, Leave. This is 8x9= 72 possible action launchers. I have tried to keep the number down to around 5 actions per compass point area of the screen. Some are used to provide helper notifiers to aid new users in learning which applications are launched and from where. Once learnt you can comment out the notifiers in fittstoolrc. In short fittstool provides the fastest launching with the least learning. *** Reasoning, Why Maximized: If we think about it logicality there is not much sense in running small windows especially when screen real estate is so important. Use your screen to the max. (unless it's massive) but most screens are as small as we can get away with. The problems with running maximized is you can't see other windows so we need a method of letting the user know what windows are where it is. The fastest way is to give you a small visual clue, hence we use tint2 as our panel/tray/task-bar. It's small and needs no interaction bar looking. Menus: Menus tend to be slow because you need to navigate but easy as they give feedback. microde uses obbrowser to provide a dynamically generated menu that can self populate and still allow manual entries. launchers: Launchers are fast but use real estate unnecessarily. microde launchers tend to be for utilities and in tint2. Keyboard Shortcuts: Keyboard Shortcuts are fast but require learning. microde includes many short cuts for almost all actions. Run dialogs: Run dialogs are fast but require knowing what to type. microde uses runner as it provides a full screen history of previously used commands or a full-screen list of all possible commands. It can be launched via tint2 (RMB on clock), menu, or keyboard shortcut super+z. *** launcher priority: We use 10% of our available applications 90% of the time so they are the one to concentrate on. We use fittstool because I get the benefit of launchers without the real estate loss and I only have to learn the location of my most used applications it's easy to learn. They’re just one click away and the target area is easy to hit. The other 90% are 1 or 2 keyboard clicks away via short cuts or 3 clicks away via a menu or run dialog. ** Tint2: https://gitlab.com/o9000/tint2 Tint2 panel is configured to maximize space and also provides logical launchers and notifiers similar to fittstool. i.e LMB, MMB, RMB. and notifiers when placing the cursor over panel items. *** tint2 panel: >From Left to right. 1. Add and remove desktop via a number icon that also indicates currently active desktop 2. CPU load is displayed constantly to indicate if large applications are launching or any runaway programs. It is also a launcher for useful terminal applications can be launched via left-mouse-button (LMB) Htop. Middle-mouse-button (MMB) inxi. Right-mouse-button (RMB) Hwinfo. 3. Icon to Suspend (LMB), Shutdown (MMB), Reboot (RMB) as a normal user without sudo via. 4. Net load also as a launcher LMB=ifconfig, MMB=speedtest, RMB=lftp to the community repo 5. Window actions. LMB=split-v MMB=maximize RMB=split-h wheel-up=maximize all windows wheel-down=minimize all windows 6. Desktops. 8 by default. Red surround indicates active desktop. Brightness indicates active window. 7. pager 8. Battery % and time remaining 9. Time and date. Mouseover gives Day, Week no, timezone. Launchers: LMB=Alarm MMB=Calendar RMB=run-dialog ** Openbox: http://openbox.org/wiki/Help:Contents *** openbox pipe menus: Openbox is a very configurable window manager but in 95% of cases it's not used to it's fullest extent. It supports pipe menus and microde includes 4 by default. 1. rox-menu. A bookmarks menu for rox-filer preconfigured to allow quick access to default home directories and config files of microde 2. obbrowser. A very fast dynamic file browser that allows quick searching and launching of user directories and files. 3. obmenu-generator. A very fast static or dynamic menu generator that allows the user to mix both manual and dynamic settings. 4. ob-randr.py A menu to set monitor resolution and placement via randr. *** openbox visual feedback microde configures openbox to provides a visual feedback as to where and what applications are launched and which is the currently active desktop and currently active application on that desktop. *** openbox windows microde uses openbox to open most "normal" windows maximized by default so as to reduce time unnecessarily moving and re-sizing windows windows and give maximum real-estate on small screens. This means all windows open on the same desktop are layered on top of one another in a stack. The active (top) window is a brighter to differentiate it from all other windows. There are several ways to access windows lower in the stack. Main methods: 1. Select desired window via tint2 with the cursor. if you mouse over the icon it displays window information. 2. Select via keyboard with Alt-Tab. Other methods: 3. Send active window down the stack. a. Ctl-F8 (this can be accessed via tint2 icon and fittstool also) *** window splitting To allow users to view two windows concurrently microde is configured to allow window splitting of the last two accessed windows on the current desktop both vertically and horizontally keys=CTL+F9, CTL+F10 CTL+F8 send active window to bottom of the stack, CTL+F6 to raise and maximize the active window (these features are also available via fittstool, tint2). *** maximize - minimize It also allows the user to maximize or minimize all open windows across all desktops via key bindings and openbox menu (this feature is also available via fittstool, tint2). When minimizing windows they return to their last used minimize size. *** Window placement Microde also allows sending the active window to any compass point of N, NE, E, SE, S, SE, W, NW, of the screen, moving, and re-sizing it to occupy one quarter of the screen on the NE, SE, SW, NW positions and half the screen on the N, E, S, W positions. The placement keys of the numbers keys reflect their position on the screen. Alt-F1 9 would place the current active window at a quarter size in the NE corner of the screen and alt-F1 6 would place the current active window maximized vertically in the E (east) half of the screen. etc. ** File Management: microde has two file managers by default! Why to you may ask and quite rightly so on face value it does seem to fly in the face of YAGNI and keeping things small and light. They offer many completely different options. The key one being rox-filer is a single panel file manager, Space is a multi-panel file manager with tabs. They are used in completely different ways. *** Rox-filer: http://rox.sourceforge.net/Manual/Manual/Manual.html Rox-filer is a fantastic file manager. Simple and easy to use but powerful underneath. Being single pane it makes it really fast to see, and sort your file especially when the directories are large. It also has great options for image viewing (off by default) - or + to increase thumbnail size. Running maximized is all good until you need to use a single pane file-manager like Rox-filer and want to compare two windows. This is where window-splitting comes in. If I say want to move a file. I open rox (top left corner lmb) navigate to the file. Select it and drag it to it's destination via the home icon and either the up icon or down through the directories. (you set spring open in options) If I have many files to move my solution is to open 2 rox windows (1. Select blank desktop 2.top left corner lmb double click) navigate to the directories then drag the file to the other rox window via tint2 panel In openbox I open 2 rox windows (My choices in speed order). top left corner lmb double click or via CTL+r or from rox bookmarks (this has the added advantage of instant navigation if you moving files) or from rox menu or run dialog or openbox menu. When open I can then split the maximized windows via CTL+F10 or CTL+F9 move the files and close the windows. alt+F4 is fastest for multiple window closures as you already have you fingers on the keys. *** Spacefm: https://ignorantguru.github.io/spacefm/ The Key features of Space are it's external mounting capabilities whilst not depending on dbus (udevil that can be use by rox-filer if required) . It is multi windowed and each window can have many tabs. It has very good queing feature while file copying. Depends GTK+ v2 or v3 (2.18 thru 3.x supported) udev or eudev or HAL desktop-file-utils shared-mime-info Optional: udevil or udisks or pmount startup-notification custom terminal emulators multiple su front-ends plugins SpaceFM & udevil can be used completely without systemd, consolekit, policykit, dbus, udisks, gvfs & fuse (although it can coexist with any of these). It also allows other file manager to take advantage of devmon/udevil so mounting files without Space is fine also. I just use it for mounting extracting archiving and have it remember it's windows and set tabs. The disadvantage of this approach is when you want to view a directory with many files.. To do that quickly takes longer than a simple super+r or LMB top left to launch Rox. The killer feature of Space is copy queing If you say copying 20 movies it can cue them so if you run out of time and need to go or unmount you at least get some of the files not loads of half copied ones. Then when it's opened there will be a window with say a src tab and a build tab etc, similarly for the other windows. A films tab, torrents tab, clips tab, etc on all four windows with each of the windows being configured in way that best suits the user. It can then remember this configuration. ** Using microde for the first time: OK so you installed and booted in to you nice new shinny microde desktop for the very first time and your really confused and wanting to instinctively do something. 1. Like iconify. DON'T. Your using it wrong. # If you've not finished with a window just raise the new one you want. 2. Like move a window. DON'T. Your using it wrong. # Unless your moving it to another desktop. 3. Like resizing a window. DON'T. Your using it wrong. # Unless your splitting two windows on one desktop. Tips: 1. You can have as many desktops as you need to stay organised. 2. Try and keep the number of open window per desktop to less than 4 3. If you want to split two windows on a desktop remember it's the last two active windows that will split. Raise those windows then split them or ensure they're the only windows on that particular desktop. 4. Use the tool tips. Once learnt they can be switched off. 5. The menu lists the keyboard short cuts. 6. Tutorial videos will be here: https://goblinrefuge.com/mediagoblin/u/kelsoo/ ############################ ** scratch pad: kelsoo
