diff --git a/README.md b/README.md index c2a97ef..26ae1b7 100644 --- a/README.md +++ b/README.md @@ -63,13 +63,14 @@ add-on for Microsoft Windows. It is written in the scripting language * [AutoHotkey](http://ahkscript.org/download/) (if running bug.n from source as a script) -There is no installation wizard for bug.n. If you downloaded the repository +There is no installation process for bug.n. If you downloaded the repository from [GitHub](../../archive/master.zip) as a zip file and unpacked it, you should be able to run either the executbale as it is or the main script (src\Main.ahk) with [AutoHotkey](http://ahkscript.org/download/). -bug.n stores the session data (configuration, layout, window states and log) to -the user's APPDATA directory, e. g. C:\Users\joten\AppData\Roaming\bug.n. +By default bug.n stores the session data (configuration, layout, window states +and log) to the user's APPDATA directory, e. g. +`C:\Users\joten\AppData\Roaming\bug.n`. Please see the [documentation](./doc) or the [Wiki](../../wiki) for more information on installing and running, customizing and using bug.n and for a diff --git a/doc/CHANGES.md b/doc/CHANGES.md index e69de29..097bd91 100644 --- a/doc/CHANGES.md +++ b/doc/CHANGES.md @@ -0,0 +1,93 @@ +## Changes + +##### Legend +* `-` deleted +* `~` changed +* `+` added + + +### 8.4.0 +* `+` Session auto-save and restore. Layout and Window information is stored +periodically so that it may be recovered after a restart. +* `+` A hotkey for toggling the overflow window of the 'notify icons'. +* `+` Manual tiling. + +### 8.3.0 +* `~` Changed the command line argument from specifying 'the path to the +Config.ini' to 'the path to the general data directory containing the +Config.ini and log.txt'. +* `+` Multi-dimensional tiling of the master area. The user may now specify X +and Y dimensions independently up to 9 x 9. +* `+` Created bug.n log to record major and debugging events and window +information. +* `+` 'View margins' allowing a layout to occupy a limited space of the +monitor. +* `+` 'Single window action', which allows to close or maximize windows based +on rules. +* `+` 'Reload' hotkey, which reloads the whole script. +* `+` Re-Setting the 'Reload' and 'ExitApp' hotkey in 'Config.ini'- +* `+` Added the configuration variable `Config_viewNames`, with which views can +be named and the number of views can be set. The configuration variable +`Config_viewCount` therewith becomes obsolete. +* `-` Removed the configuration variable `Config_viewCount`. +* `-` Removed the explicit listing of commands in the `Bar_cmdGui`. +* `-` Removed the default rules for Gimp, since from version 2.8 onwards Gimp +can use a single application window instead of three and more. + +### 8.2.1 +* `+` feature #005446: Reload function (reloading bug.n without changing the +current association of windows to views/tags) +* `+` workaround bug #018364: (Evernote: new note) Introducing the +configuration variable `Config_onActiveHiddenWnds` to set the behaviour of +bug.n for already existing but hidden windows on redraw + +### 8.2.0 +* `-` `Config_addRunCommands` (the 'Run' item in 'command GUI'). +* `-` `Config_sessionFilePath` +* `-` `Config_topBar` (replaced by `Config_verticalBarPos`. +* `~` The default values for the color (`Config_normBgColor`, +`Config_normFgColor`, `Config_selBgColor` and `Config_selFgColor`) and font +size (`Config_fontSize`) of the status bar are now retrieved from the system +settings. +* `+` Default rules +* `+` `Config_hotkey` (setting hotkeys in 'Config.ini'). +* `+` `Config_horizontalBarPos` (The horizontal position of the bar: `center`, +`left` or `right` side of the monitor or an offset in pixel (px) from the left +(>= 0) or right (< 0). +* `+` `Config_verticalBarPos` (The vertical position of the bar: `top` or +`bottom` of the monitor, `tray` = sub-window of the task bar. +* `+` `Config_barWidth` (The width of the bar in pixel (px) or with a per cent +sign (%) as a percentage. +* `+` `Config_singleRowBar` (If false, the bar will have to rows, one for the +window title and one for all other GUI controls. +* `+` `Config_spaciousBar` (If true, the height of the bar will be set to a +value equal to the height of an edit control, else it will be set to the text +height. +* `+` `Config_syncMonitorViews` (The number of monitors (2 or more), for which +views should be activated, when using the accordant hotkey. If set to 1, the +views are actiated for all monitors. If set to 0, views are activated +independently (only on the active monitor). +* `~` Changed hotkeys + + `#s` => `#^s::Config_saveSession()` + + `#+r` => `#^r::Reload` + + `#+q` => `#^q::ExitApp` +* `+` `#y::Bar_toggleCommandGui()` (Open the command GUI for executing +programmes or bug.n functions.) +* `+` `#^e::Run, edit, %Config_sessionFilePath%` (Open the session file in the +standard text editor. +* `+` "<" and ">" as an argument for `Monitor_activateView`. +* `+` "<" and ">" as an argument for `Monitor_setWindowTag`. +* `+` `Manager_maximizeWindow()` to 'command GUI' +* `~` The number of windows on a view is not indicated by different background +colors anymore, but by a progress bar. +* `~` The battery status is also indicated with a progress bar. +* `+` A monitor with no windows on it can now be activated by cklicking on the +desktop and therewith changing the active window. + +### 8.1.0 +* `-` `Config_showTitleBars` +* `~` `Config_rules` have two more parameters (window style and if the window +is decorated; this replaces `Config_showTitleBars`). +* `+` `LWin+Shift+X` maximizes a window to the bug.n workspace. +* `+` You may now use `Monitor_activateView(">")` for cycling through the views +and `View_setLayout(">")` for cycling through the layouts. diff --git a/doc/Configuring_rules.md b/doc/Configuring_rules.md new file mode 100644 index 0000000..acb86bb --- /dev/null +++ b/doc/Configuring_rules.md @@ -0,0 +1,69 @@ +## Configuring rules + +### General description + +Not all windows should be managed by bug.n the same way, or even may not be +managable at all. To handle windows differently, you can add rules to the +configuration. + +With the first part of the rule, you identify the window using the +following information: + +1. class (as a regular expression) +2. title (as a regular expression) +3. window style (as a hexadecimal number or blank) + +With the second part you can give bug.n the following information on how to +handle the identified windows: + +1. Is the window managed at all (0 = no, 1 = yes)? +2. On which monitor should the window be moved (given as an integer >= 0, +0 means the currently active monitor)? +3. On which views should the window be set (given as a binary mask converted to +an integer >= 0, 0 means the currently active view)? +4. Is the window floating, i. e. should not be tiled (0 = no, 1 = yes)? +5. Is the window decorated (0 = no, 1 = yes)? If not, the window title bar is +removed. +6. Should the title text be hidden in the bug.n bar (0 = no, 1 = yes)? +7. A special single window action (`Close` or `Maximize` or blank). + +The general format of a rule added to `Config.ini` is as follows: +`Config_rule=;;<window style>;<is managed>;<monitor>;<views / +tags>;<is floating>;<is decorated>;<hide title>;<action on a single window>` +(all in one line, ";" is not allowed as a character in the field values) + +If you want to replace a rule, which is already set in `Config.ahk`, you will +have to use the correct variable name; e. g. you may set a default rule +(identifying part: `.*;.*;`), overwriting the first rule set in `Config.ahk`, +by using the variable name `Config_rule_#1`. If you want to _add_ a rule, +simply use `Config_rule` as the variable name; the numbering will be done +automatically by bug.n when reading `Config.ini` using the order given there. + +#### Views / Tags + +You can set a window to more than one view. Add up the associated numbers as +shown in the following table and set the sixth field of the rule to the value +of the sum. + +| view / tag | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | n | all | +| ---------------- | --- | --- | --- | --- | --- | --- | --- | --- | --- | -------------- | --- | +| number to sum up | 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 256 | `2 ** (n - 1)` | 511 | + +An example would be the value `17` for views 1 and 5. + +### Examples + +#### Mozilla Firefox + +The following `Config.ini` line replaces rule number 11 in the default +configuration, putting windows of 'Mozilla Firefox' on view 5, keeping the +title bar visible and maximizing them. + +`Config_rule_#11=MozillaWindowClass;.*Mozilla Firefox;;1;0;16;0;1;0;Maximize` + +#### Mozilla Thunderbird + +The following `Config.ini` line adds a rule, putting windows of 'Mozilla +Thunderbird' on view 4, keeping the title bar visible and maximizing them. + +`Config_rule=MozillaWindowClass;.* - Mozilla Thunderbird;;1;0;8;0;1;0;Maximize` diff --git a/doc/Customization.md b/doc/Customization.md new file mode 100644 index 0000000..78d1a22 --- /dev/null +++ b/doc/Customization.md @@ -0,0 +1,58 @@ +## Customizing bug.n + +bug.n can be customized by setting configuration variables and hotkeys (the key +bindings for the bug.n functions). + +To change either of them, first create a configuration file (`Config.ini`) by +using the hotkey `#^s`, i. e. `Win+Ctrl+S`. The file is either saved in the +directory you specified with the parameter to the executable or script when +running bug.n, or in the Windows user directory (e. g. +`C:\Users\joten\AppData\Roaming\bug.n`). + +You may then edit the file with a text editor, i. a. using the hotkey `#^e` +(`Win+Ctrl+E`), and add a new line for each configuration variable with its +value; the general format is `<variable>=<value>` not using quotation marks +surrounding the values. +If you want to set a boolean value, use `1` for "True" and `0` for "False"; +e. g. `Config_showBar=0`. You will have to reload bug.n for the changes to take +effect. + +To set a hotkey, use the variable name `Config_hotkey` and [the hotkey notation +from AutoHotkey](http://ahkscript.org/docs/Hotkeys.htm) as value: +`Config_hotkey=<key name>::<command or function name>`. +You may overwrite default or add new hotkeys. +* To deacivate a hotkey from the default configuration, add a new line in the +format `Config_hotkey=<key name>::` (without a function name). +* To assign an external program to a new hotkey, add a line in the general +format, using the `Run` command of AutoHotkey as described in +http://ahkscript.org/docs/commands/Run.htm (`Run, Target [, WorkingDir, +Max|Min|Hide|UseErrorLevel, OutputVarPID]`). +* You may also use the `Send` command of AutoHotkey as described in +http://ahkscript.org/docs/commands/Send.htm + +The available configuration variables are listed in the document +"[Default configuration](./Default_configuration.md)"; the hotkeys with their +associated functions are listed in the document +"[Default hotkeys](./Default_hotkeys.md)". + +`Config_borderWidth`, `Config_borderPadding` and `Config_selBorderColor` are +especially usefull, if you are not allowed to set the design in the system +settings. + +You may find a sample configuration file at +https://github.com/joten/bug.n.config. + +### Re-using Win+L + +The hotkey `#l` (`Win+L`) is set by Microsoft Windows to lock the workstation. +If you want to use it as a hotkey in bug.n, you can bind another hotkey, e. g. +`#^+l` (`Win+Ctrl+Shift+L`), to the lock function by using the bug.n-function +`Manager_lockWorkStation()`, which i. a. sets the registry key +`Software\Microsoft\Windows\CurrentVersion\Policies\System\DisableLockWorkstation` +and locks the workstation. This than allows to set `Win+L` as a hotkey in +`Config.ini`. + +If `Win+L` still locks the workstation, use the new keybinding for locking the +workstation at least once and therewith set the needed registry key. + +**WARNING**: This will permanently set a registry key. diff --git a/doc/configuration_variables.md b/doc/Default_configuration.md similarity index 90% rename from doc/configuration_variables.md rename to doc/Default_configuration.md index baf93a8..733b324 100644 --- a/doc/configuration_variables.md +++ b/doc/Default_configuration.md @@ -1,4 +1,4 @@ -## Configuration variables +## Default setting of configuration variables ### Status bar @@ -107,7 +107,6 @@ the status bar. `Config_readinInterval=30000` > Time in milliseconds after which the above status values are refreshed. - ### Windows ui elements `Config_bbCompatibility=0` @@ -135,7 +134,6 @@ resized manually by dragging the border, even if using the according hotkey. > Border colour of the active window; format: 0x00BBGGRR (e. g. `0x006A240A`, if =0, the system's window border colour is not changed). - ### Window arrangement `Config_viewNames=1;2;3;4;5;6;7;8;9` @@ -230,24 +228,16 @@ monitor). > If true (`=1`) and a window is tagged with a single tag, the view is correspondingly set to the tag. - ### Rules + +For a general description of rules and how they can be replaced or added see +the [specific documentation](./Configuring_rules.md). + `Config_rule_#1=.*;.*;;1;0;0;0;0;0;` -> If you want to replace a default rule, you will have to use the correct -variable name, e. g. you may set a rule (`.*;.*;`) for a default monitor, view -and / or showing window title bars by setting the first rule -`Config_rule_#1=...` and therewith replacing the value. -If you want to add a rule you do not have to use a numbered variable, but -`Config_rule=...` (the numbering will be done automatically in the order given -in the configuration file). General format: -`Config_rule_#<i>=<class (regular expression string)>;<title (regular expression -string)>;<window style (hexadecimal number or blank)>;<is managed (1 = True or -0 = False)>;<monitor (0 <= integer <= total number of monitors, 0 means the -currently active monitor)>;<tags (binary mask as integer >= 0, e. g. 17 for 1 -and 5, 0 means the currently active tag)>;<is floating (1 = True or -0 = False)>;<is decorated (1 = True or 0 = False)>;<hide title (1 = True or -0 = False)>;<action on single windows (Close or Maximize)>` -(all in one line, ";" is not allowed as a character) +> By default all windows are managed, not allocated on a specific monitor or +view, not floating (i. e. tiled), the window title bar is not visible, the +title is not hidden on the bug.n status bar and no window action is taken, when +the window first is created. `Config_rule_#2=.*;.*;0x80000000;0;0;0;1;1;1;` > Pop-up windows (style WS_POPUP=0x80000000) will not be managed, are floating @@ -277,7 +267,6 @@ reason as above. > This variable will be automatically set to the total number of active rules above. - ### Configuration management `Config_autoSaveSession=auto` diff --git a/doc/hotkeys.md b/doc/Default_hotkeys.md similarity index 99% rename from doc/hotkeys.md rename to doc/Default_hotkeys.md index 870c98a..a7a3b18 100644 --- a/doc/hotkeys.md +++ b/doc/Default_hotkeys.md @@ -1,4 +1,4 @@ -## Hotkeys +## Default hotkeys ### General description @@ -8,13 +8,13 @@ Possible modifiers are the following: * `!` (Alt) * `^` (Ctrl, Control) -* `+` (Shift) * `#` (LWin, left Windows) +* `+` (Shift) You will have to press all keys of a hotkey at the same time beginning with the modifier for calling the associated function, e. g. `#^q` means pressing the left Windows key and the shift key and the q key -(WIN+CTRL+Q) for quitting bug.n. +(`Win+Ctrl+Q`) for quitting bug.n. ### Window management @@ -83,6 +83,7 @@ the layout. master area takes up the whole view. ### Window debugging + `#^i::Debug_logViewWindowList()` > Dump window information on the windows of the active view to the log. @@ -101,8 +102,8 @@ two log messages (`Manager_logViewWindowList` and `#^+d::Debug_setLogLevel(+1)` > Increment the debug log level. Show more debug messages. - ### Layout management + `#Tab::View_setLayout(-1)` > Set the previously set layout. You may also use `View_setLayout(>)` for setting the next layout in the layout array. @@ -165,8 +166,8 @@ the master area by Y. Minimum of 1 (only for the "tile" layout). `#+Right::View_setGapWidth(+2)` > Increase the gap between windows in "tile" layout. - ### View / Tag management + `#+n::View_toggleMargins()` > Toggle the view margins, which are set by the configuration variable `Config_viewMargins`. @@ -192,8 +193,8 @@ of the previous or next adjacent to the current view. > Add / Remove the n<sup><small>th</small></sup> tag (n = 1..`Config_viewCount`) for the active window, if it is not / is already set. - ### Monitor management + `#.::Manager_activateMonitor(+1)` > Activate the next monitor in a multi-monitor environment. @@ -216,8 +217,8 @@ a multi-monitor environment. > Set all windows of the active view on the active view of the previous monitor in a multi-monitor environment. - ### GUI management + `#+Space::Monitor_toggleBar()` > Hide / Show the bar (bug.n status bar) on the active monitor. @@ -233,7 +234,6 @@ in a multi-monitor environment. `!+y::View_traceAreas()` > Indicate the areas of the "tile" layout. - ### Administration `#^e::Run, edit %Config_filePath%` diff --git a/doc/Home.md b/doc/Home.md new file mode 100644 index 0000000..223eaab --- /dev/null +++ b/doc/Home.md @@ -0,0 +1,66 @@ +## bug.n -- Tiling Window Manager + +bug.n is a +[tiling window manager](https://en.wikipedia.org/wiki/Tiling_window_manager) +add-on for Microsoft Windows. + +This page links the resources available for information on installing and +running, customizing and using bug.n and for a list of changes made with the +current version. + +#### [README](https://github.com/fuhsjr00/bug.n/blob/master/README.md) +> A description of what bug.n can do. + +#### [[CHANGES|CHANGES]] +> A list of changes to the user interface (i. a. configuration variables and +hotkeys) for each version of bug.n. + +#### [[Installing and running bug.n|Installing_and_running]] +> A description of how to install and run bug.n. Also described is a method to +run bug.n as Administrator to solve problems with the User Access Control of +Microsft Windows higher than Vista. + +#### Usage + +##### [[Using bug.n|Usage]] +> A short introduction on how to use bug.n and on concepts, like layouts and +tagging, bug.n uses. + +##### [[Default hotkeys|Default_hotkeys]] +> A list of all hotkeys with their default mapping to functions and a short +description. + +#### Customization + +##### [[Customizing bug.n|Customization]] +> A description on how to customize bug.n by setting configuration variables +and hotkeys. Also described is a method to re-use the hotkey `Win+L`, which is +blocked by the Windows function to lock the screen. + +##### [[Default setting of configuration variables|Default_configuration]] +> A list of all configuration variables with their default values and a short +description. + +##### [[Configuring rules|Configuring_rules]] +> A description of 'rules', bug.n uses for handling windows, and how they can +be set in `Config.ini`. + +##### [[Default hotkeys|Default_hotkeys]] +> A list of all hotkeys with their default mapping to functions and a short +description. + +##### [[Used hotkeys|Used_hotkeys]] +> An overview of those hotkeys, already in use by bug.n with the default +configuration. With this overview you may find unused keys, which can be used +for non-bug.n hotkeys or to reassign bug.n functions. + +##### [[Xmonad hotkeys|Xmonad-hotkeys]] +> A list of hotkeys, which are similar to those used in +[Xmonad](http://xmonad.org/), a tiling window manager for the 'X windows +system' on *n?x. + +##### [[User proposed hotkeys|User-hotkeys]] +> Some individual hotkeys, proposed by bug.n users. + +#### [LICENSE](https://github.com/fuhsjr00/bug.n/blob/master/LICENSE.md) +> bug.n is licensed under the GNU General Public License version 3. diff --git a/doc/Installing_and_running.md b/doc/Installing_and_running.md new file mode 100644 index 0000000..3a12b4c --- /dev/null +++ b/doc/Installing_and_running.md @@ -0,0 +1,71 @@ +## Installing and running bug.n + +#### Requirements + +* Microsoft Windows 2000 or higher +* [AutoHotkey](http://ahkscript.org/download/) (if running bug.n from source as +a script) + +There is no installation process for bug.n. If you downloaded the repository +from [GitHub](../../archive/master.zip) as a zip file and unpacked it, you +should be able to run either the executbale as it is or the main script +(src\Main.ahk) with [AutoHotkey](http://ahkscript.org/download/). + +You may copy bug.n anywhere you like -- at least if you have write acces +there -- e. g. `C:\Program Files\bugn` or link it to the 'Windows Start Menu' +or the 'Windows Taskbar', for example. + +By default bug.n stores the session data (configuration, layout, window states +and log) to the user's APPDATA directory, e. g. +`C:\Users\joten\AppData\Roaming\bug.n`. + +You may redirect the bug.n data directory by setting the first argument either +to the executable or to the main script (`Main.ahk`), when running bug.n, +e. g. `C:\Program Files\bugn\bugn.exe D:\bugn`; but you will need to have write +access to this directory. + +You can run bug.n manually, either by using the executable and starting it like +any other application, or by using the main script (`Main.ahk`) and starting it +with [AutoHotkey](http://ahkscript.org/download/). +If using the script, the working directory must be the directory, where the +file `Main.ahk` is saved; therewith bug.n can find the other script files. One +possibility, to do so, is to install AutoHotkey, open the directory, where +`Main.ahk` is saved, and execute the file. + +### Microsoft Windows User Access Control + +If you are using bug.n on Microsoft Windows Vista or higher you may use +applications, which run with administrator privileges, e. g. 'administrative +tools'. In the case that you are running bug.n in the standard user session, +i. e. _without_ administrator privileges, bug.n will not be able to manage the +associated windows. If you want those application windows to be managed, you +need to run bug.n with administrator privileges, too. +You can set the option `Run this program as an administrator` on the +'Compatiblity' tab, section 'Privilege level' of the bug.n executable file +properties. But if you also want to run bug.n when Windows starts, you will +have to create a task in 'Task Scheduler'. + +#### Create a task in 'Task Scheduler' + +In Windows 7 you can create a task following the steps from the +[Windows website](http://windows.microsoft.com/en-us/windows/schedule-task#1TC=windows-7): + +1. Open Task Scheduler by clicking the **Start** button, clicking +**Control Panel**, clicking **System and Security**, clicking +**Administrative Tools**, and then double-clicking **Task Scheduler** +(Administrator permission required). If you're prompted for an administrator +password or confirmation, type the password or provide confirmation. +2. Click the **Action** menu, and then click **Create Basic Task**. +3. Type a name for the task and an optional description, and then click +**Next**. +4. Click **When I log on**, and then click **Next**. +5. To schedule a program to start automatically, click **Start a program**, and +then click **Next**. +6. Click **Browse** to find the program you want to start, and then click +**Next**. +7. Select the **Open the Properties dialog for this task when I click Finish** +check box and click **Finish**. +8. In the **Properties** dialog box, select the following, and then click +**OK**. + * **Run only when user is logged on** + * **Run with highest privileges** diff --git a/doc/Usage.md b/doc/Usage.md new file mode 100644 index 0000000..e0518c0 --- /dev/null +++ b/doc/Usage.md @@ -0,0 +1,65 @@ +## Using bug.n + +bug.n is mostly controlled with hotkeys. The available hotkeys are listed in +the document "[Default hotkeys](./Default_hotkeys.md)". For a quick help there +are the following hotkeys: + +* `#y` (`Win+Y`): Show the command GUI, which allows you to enter +bug.n-functions. +* `#Space` (`Win+Space`): Show / Hide the Windows Taskbar. +* `#^q` (`Win+Ctrl+Q`): Quit bug.n and restore all windows and Windows UI +elements. + +The following functions can also be controlled with the mouse: + +* With a click on a tag (a number on the left end of the bug.n bar) you can +change the view and show only the windows associated with that tag. +* With a right-click on a tag you can tag the active window with that tag. +* With a click on the layout symbol in the bug.n bar you can toggle the layout +to the last one used. +* With a right-click on the layout symbol you can set the layout to the next in +the list. +* A function can be selected from a list or entered in the command GUI, which +is accessible by cklickig on `#!` on the right end of the bug.n bar. + +### Concepts + +#### Layouts + +bug.n provides three layouts. + +* **tile**: A master area for the main window(s) and a stacking area for the +rest, all windows are shown at any time. This layout can be further changed in +the following respects: + + the dimensions of the master area (1x1 ... 2x3 ... 9x9) + + the stacking direction of the master and stacking area (from left to right, + from top to bottom or monocle) + + the position of the master area (left, top, right or bottom) and + accordingly the position of the stacking area + + the witdh or height of the master area (depending on its position) +* **monocle**: All windows are maximized and only one is shown at any time. ++ **floating**: Do not tile any window. + +Please see the document "[Default hotkeys](./Default_hotkeys.md)" for a list of +hotkeys and their associated functions, with which you can set and manipulate +layouts. + +#### Tagging + +bug.n features an extended implementation of virtual desktops: _tagging_. + +Windows are tagged with one or more numbers, which determine on which views +they are shown. Selecting a view shows the windows tagged with the same number +and hides all other windows. + +#### Session management + +bug.n features a session management, which is used for saving configuration +variables, hotkeys and internal variables; it does not restore applications, +you will have to run them manually. The configuration variables may include +those listed in the document +"[Default configuration](./Default_configuration.md)", hotkeys as +listed in the document "[Default hotkeys](./Default_hotkeys.md)" and internal +variables for the current state of bug.n, e. g. the active view (saved for each +monitor), the layout and its configuration (saved for each view) and window +states as they could be set by a rule. diff --git a/doc/Used_hotkeys.md b/doc/Used_hotkeys.md new file mode 100644 index 0000000..3059e18 --- /dev/null +++ b/doc/Used_hotkeys.md @@ -0,0 +1,55 @@ +## Used hotkeys + +The following tables list the base keys, i. e. a key without any modifier, and +their combination with the modifier keys (Alt: `!`, Ctrl: `^`, LWin: `#` and +Shift: `+`), which are used in bug.n. With this overview you may find unused +keys, which can be used for non-bug.n hotkeys or to reassign bug.n functions. + +| Base key | `#` | `#+` | `#^` | `#+^` | `!` | `!+` | +| --------- | --- | ---- | ---- | ----- | --- | ---- | +| Down | x | x | x | | x | | +| Up | x | x | x | | x | | +| Left | x | x | x | | | | +| Right | x | x | x | | | | +| Backspace | x | | | | x | | +| Enter | | x | x | | | x | +| Space | x | x | | | | | +| Tab | x | | x | x | | | + +| Base key | `#` | `#+` | `#^` | `#+^` | `!` | `!+` | +| --------- | --- | ---- | ---- | ----- | --- | ---- | +| . | x | x | | x | | | +| , | x | x | | x | | | +| - | | | | | | | +There are not many special character keys, which are on both keyboards, US and DE. + +| Base key | `#` | `#+` | `#^` | `#+^` | `!` | `!+` | +| --------- | --- | ---- | ---- | ----- | --- | ---- | +| c | x | | | | | | +| d | | x | x | x | | | +| e | | | x | | | | +| f | x | x | | | | | +| h | | | x | | | | +| i | x | x | x | x | | | +| m | x | x | | | | | +| n | | x | | | | | +| q | | | x | | | | +| r | | | x | x | | | +| s | | x | x | | | | +| t | x | | x | | | | +| x | | x | | | | | +| y | x | x | | | | x | +Any letter key, which is not listed in this table, is not used. + +| Base key | `#` | `#+` | `#^` | `#+^` | `!` | `!+` | +| --------- | --- | ---- | ---- | ----- | --- | ---- | +| 0 | | x | | | x | | +| 1 | x | x | x | | x | | +| 2 | x | x | x | | x | | +| 3 | x | x | x | | x | | +| 4 | x | x | x | | x | | +| 5 | x | x | x | | x | | +| 6 | x | x | x | | x | | +| 7 | x | x | x | | x | | +| 8 | x | x | x | | x | | +| 9 | x | x | x | | x | | diff --git a/doc/User-hotkeys.md b/doc/User-hotkeys.md new file mode 100644 index 0000000..66f3ce4 --- /dev/null +++ b/doc/User-hotkeys.md @@ -0,0 +1,11 @@ +## User proposed hotkeys + +##### User: jbremer (2012-Oct-27 19:33, bug.n 8.2.1) + +| Hotkey | Alias to | Description | +| ------ | ------------ | -------------------------------------------------------------------------------------------------- | +| `#x` | `#Backspace` | toggle view (duplicate of `#Backspace`, but `#x` types much easier) | +| `#j` | `#Down` | window down | +| `#k` | `#Up` | window up | +| `#t` | - | launch a terminal (`Run, C:\Program Files\mintty.exe -`) | +| `#b` | - | launch terminal with an ssh connection (`Run, C:\Program Files\mintty.exe /bin/ssh user@hostname`) | diff --git a/doc/Xmonad-hotkeys.md b/doc/Xmonad-hotkeys.md new file mode 100644 index 0000000..9e59464 --- /dev/null +++ b/doc/Xmonad-hotkeys.md @@ -0,0 +1,52 @@ +## Xmonad hotkeys + +Here follows an example for configuring hotkeys, which are similar to those of +[xmonad](http://xmonad.org/); this example was submitted for bug.n version +8.2.1. + + Config_hotkey=#1::Monitor_activateView(1) + Config_hotkey=#+1::Monitor_setWindowTag(1) + Config_hotkey=#2::Monitor_activateView(2) + Config_hotkey=#+2::Monitor_setWindowTag(2) + Config_hotkey=#3::Monitor_activateView(3) + Config_hotkey=#+3::Monitor_setWindowTag(3) + Config_hotkey=#4::Monitor_activateView(4) + Config_hotkey=#+4::Monitor_setWindowTag(4) + Config_hotkey=#5::Monitor_activateView(5) + Config_hotkey=#+5::Monitor_setWindowTag(5) + Config_hotkey=#6::Monitor_activateView(6) + Config_hotkey=#+6::Monitor_setWindowTag(6) + Config_hotkey=#7::Monitor_activateView(7) + Config_hotkey=#+7::Monitor_setWindowTag(7) + Config_hotkey=#8::Monitor_activateView(8) + Config_hotkey=#+8::Monitor_setWindowTag(8) + Config_hotkey=#9::Monitor_activateView(9) + Config_hotkey=#+9::Monitor_setWindowTag(9) + Config_hotkey=#+0::Monitor_setWindowTag(0) + Config_hotkey=#^1::Monitor_toggleWindowTag(1) + Config_hotkey=#^2::Monitor_toggleWindowTag(2) + Config_hotkey=#^3::Monitor_toggleWindowTag(3) + Config_hotkey=#^4::Monitor_toggleWindowTag(4) + Config_hotkey=#^5::Monitor_toggleWindowTag(5) + Config_hotkey=#^6::Monitor_toggleWindowTag(6) + Config_hotkey=#^7::Monitor_toggleWindowTag(7) + Config_hotkey=#^8::Monitor_toggleWindowTag(8) + Config_hotkey=#^9::Monitor_toggleWindowTag(9) + Config_hotkey=#q::Reload + Config_hotkey=#+q::ExitApp + Config_hotkey=#w::Manager_activateMonitor(1) + Config_hotkey=#+w::Manager_setWindowMonitor(1) + Config_hotkey=#e::Manager_activateMonitor(2) + Config_hotkey=#+e::Manager_setWindowMonitor(2) + Config_hotkey=#t::View_toggleFloating() + Config_hotkey=#h::View_setMFactor(-0.05) + Config_hotkey=#j::View_activateWindow(+1) + Config_hotkey=#+j::View_shuffleWindow(+1) + Config_hotkey=#k::View_activateWindow(-1) + Config_hotkey=#+k::View_shuffleWindow(-1) + Config_hotkey=#l::View_setMFactor(+0.05) + Config_hotkey=#Enter::View_shuffleWindow(0) + Config_hotkey=#+c::Manager_closeWindow() + Config_hotkey=#,::View_setMSplit(+1) + Config_hotkey=#.::View_setMSplit(-1) + Config_hotkey=#Space::View_setLayout(>)