Age | Commit message (Collapse) | Author | Files | Lines |
|
[PURPOSE]
In editors such as vi and emacs, a user can mark a line in a file with
a shortcut key and afterwards jump back to that line using the shortcut.
The idea is extended to opened windows. A user can assign a keyboard
shortcut to an opened window. Afterwards, the shortcut can be used to
switch focus back to the marked window.
Such shortcuts save the user from pressing "alt+tab" multiple times to
cycle through windows until the desired one is found.
[EXAMPLE USAGE]
The following binding is added to file "~/.fluxbox/keys":
Mod1 m ARG :MarkWindow
Mod1 g ARG :GotoMarkedWindow
User enters "alt+m x" to mark the currently focused window with shortcut
key 'x'
User enters "alt+g x" to switch focus to the marked window
[IMPLEMENTATION SUMMARY]
- Two new commands were added :MarkWindow and :GotoMarkedWindow
- Keys.cc was modified:
- addBinding() method supports parsing an argument placeholder where
the user can pass in a shortcut key
- doAction() method forwards the shortcut key to the command to execute
- Class Keys::t_key was modified to recognize a placeholder key
- New class ShortcutManager was added to maintain mapping of shortcut
keys to marked windows
|
|
|
|
This commit fixes the encoding of _NET_DESKTOP_NAMES to match the
specification[1]:
… The names of all virtual desktops. This is a list
of NULL-terminated strings in UTF-8 encoding …
We use Xutf8TextListToTextProperty to transform a list of strings
(NULL-terminated) into one XTextProperty which is lacking the last
NULL-Termination … at least that is what observation tells us and what
is written in the documentation of that function[2]:
… A final terminating null byte is stored at the end of
the value field of text_prop_return but is not included
in the nitems member.
As a result, the way *fluxbox* is storing desktop names and the way
other WMs are storing them and how other tools like pagers etc are
expecting the content to be formated is slightly off.
This commit addresses that issue by adding one more "artificial" desktop
name and thus producing the desired content for _NET_DESKTOP_NAMES.
[1]: https://specifications.freedesktop.org/wm-spec/wm-spec-1.4.html#idm46439038971488
[2]: https://www.x.org/releases/X11R7.5/doc/man/man3/Xutf8TextListToTextProperty.3.html
|
|
Alexey Ugnichev for pointing out its disappearance.
|
|
Documents Opaque Resizing and adds a fancy config menu item
|
|
A priori, there is no reason why the workspace warping functionality should
treat the horizontal and vertical directions at all differently. Even if
traditionally horizontal warping was more common, for some in recent times
as aspect ratios tend to become larger, stacking virtual workspaces
vertically may make more sense. Similarly, some might want to traverse
an array of workspaces in column-major, rather than row-major, order.
Prior to this commit, there were extra parameters for vertical warping (a
controlling flag and an offset for how many workspaces to jump) as opposed
to horizontal warping. Also it was impossible to allow vertical warping while
disallowing vertical warping.
This commit makes all of the parameters and behavior for horizontal and
vertical warping equivalent. For backwards compatibility, there is an
overarching flag controlling whether warping occurs at all, as well as a
separate control flag and offset for each of horizontal and vertical warping.
The relevant init file resources and default values are:
session.screen0.workspaceWarping: true
session.screen0.workspaceWarpingHorizontal: true
session.screen0.workspaceWarpingVertical: true
session.screen0.workspaceWarpingHorizontalOffset: 1
session.screen0.workspaceWarpingVerticalOffset: 1
|
|
Adds (secret) opaque resize mode. It sure would be nice if it was documented....
The relevant init file resources and their default values are:
session.screen0.opaqueResize: False
session.screen0.opaqueResizeDelay: 40
|
|
Fluxbox would segfault when no fonts were available. Now it just exits with an error.
|
|
Fix fbrun completion search for last directory in PATH
|
|
Improve switching between 12H and 24H in Clock Tool
configuration
Having:
session.screen0.strftimeFormat: %d-%m-%y %02k:%M
The switch[1] between 12H and 24H did not work due to the digits (02).
|
|
Max size per client (setMaxSizePerClient) was computed for
iconbar.alignment = Relative not taking into account that a fixed size
can be given when iconbar.alignment = Left/Right.
In a "recent" change, relative alignment was changed, to better handle
items with long titles. This is breaking existing behavior, the new
behavior is (with this commit) now denoted RelativeSmart.
|
|
The encoding of nls/fr_FR/Translation.m is UTF-8 (see 96c52db). This
commit puts the correct "codeset" into place.
|
|
The .in file is generated from the .txt file.
|
|
Some applications supply -1 in base_width / base_height. One example is
the Preferences dialog of pcmanfm-qt:
WM_NORMAL_HINTS(WM_SIZE_HINTS):
...
program specified base size: -1 by -1
Without this commit the program will crash due to overflow of unsigned int.
|
|
The .in files are generated from the .txt files.
|
|
|
|
fedorahosted.org was retired on March 1st, 2017.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This way it is only parsed once in the constructor. Updating the
TrayWindow order is now a method which is called once when the icon is
created.
sortClients/rearrange is now only called on adding and removing icons.
|
|
|
|
In fact its 0, thats why fluxbox sometimes crashes when freeing the
malformed structure.
|
|
|
|
|
|
|
|
The user options screenname.systray.pinLeft and
screenname.systray.pinRight in .fluxbox/init are read as comma sperated
list of window classnames.
While preserving the order of the lists, systray icons are sorted so
that pinLeft'ed classnames appear left and vice versa.
|
|
This fixes:
src/FbTk/XftFontImp.cc: In member function ‘virtual bool FbTk::XftFontImp::load(const string&)’:
src/FbTk/XftFontImp.cc:81:53: error: no matching function for call to ‘max(unsigned int, int)’
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-add 'setPadding' function
|
|
changes the selection's deselection mechanism for oversized (e.g
larger than window width) text
new behaviour ensures the maximum selection width remains whilst
the selection length is 'oversized'. only when the selection length
has a width less than the window width will the selection (i.e. the
highlight / inverted colours) reduce in size
this is in contrast to the existing approach which would immediately
decrease an oversized selection down to nothing visually, leaving
the remainder of the selection 'off screen'. this 'looks like nothing
is selected' when in fact it is, gives a poor UX
|
|
|
|
|
|
-use font height for cursor
-prefer 'descent to ascent' coverage as opposed to 'baseline plus
way too high'!
|
|
|
|
Don't evaluate trusted variables in *ExportCmd::parse as they will be
always false for SetEnv, Export and SetResourceValue and never executed
via fluxbox-remote.
|
|
|
|
In 393ba45f91480bb10f510248837c6051b7ff6a03 added the possibility to
add custom buttons to the toolbar. However, if the toolbar is rotated
the buttons stays horizontal.
Update the button to rotate the text and update the width/height of the
button if rotated
|