neulab/tldr huggingface dataset:
If the right-hand side outputs no values (i.e., empty), then the left-hand side path will be deleted, as with del(path).
If the right-hand side outputs multiple values, only the first one will be used (COMPATIBILITY NOTE: in jq 1.5 and earlier releases, it used to be that only the last one was used).
jq ´(..|select(type=="boolean")) |= if . then 1 else 0 end´ [true,false,[5,true,[true,[false]],false]] => [1,0,[5,1,[1,[0]],0]]
Arithmetic update-assignment: +=, -=, *=, /=, %=, //= jq has a few operators of the form a op= b, which are all equivalent to a |= . op b. So, += 1 can be used to increment values, being the same as |= . + 1.
jq ´.foo += 1´ {"foo": 42} => {"foo": 43}
Plain assignment: = This is the plain assignment operator. Unlike the others, the input to the right-hand-side (RHS) is the same as the input to the left-hand-side (LHS) rather than the value at the LHS path, and all values output by the RHS will be used (as shown below).
If the RHS of ´=´ produces multiple values, then for each such value jq will set the paths on the left-hand side to the value and then it will output the modified .. For example, (.a,.b)=range(2) outputs {"a":0,"b":0}, then {"a":1,"b":1}. The "update" assignment forms (see above) do not do this.
This example should show the difference between ´=´ and ´|=´:
Provide input ´{"a": {"b": 10}, "b": 20}´ to the programs:
.a = .b
.a |= .b
The former will set the "a" field of the input to the "b" field of the input, and produce the output {"a": 20, "b": 20}. The latter will set the "a" field of the input to the "a" field´s "b" field, producing {"a": 10, "b": 20}.
Another example of the difference between ´=´ and ´|=´:
null|(.a,.b)=range(3)
outputs ´{"a":0,"b":0}´, ´{"a":1,"b":1}´, and ´{"a":2,"b":2}´, while
null|(.a,.b)|=range(3)
outputs just ´{"a":0,"b":0}´.
Complex assignments Lots more things are allowed on the left-hand side of a jq assignment than in most languages. We´ve already seen simple field accesses on the left hand side, and it´s no surprise that array accesses work just as well:
.posts[0].title = "JQ Manual"
What may come as a surprise is that the expression on the left may produce multiple results, referring to different points in the input document:
.posts[].comments |= . + ["this is great"]
That example appends the string "this is great" to the "comments" array of each post in the input (where the input is an object with a field "posts" which is an array of posts).
When jq encounters an assignment like ´a = b´, it records the "path" taken to select a part of the input document while executing a. This path is then used to find which part of the input to change while executing the assignment. Any filter may be used on the left-hand side of an equals - whichever paths it selects from the input will be where the assignment is performed.
This is a very powerful operation. Suppose we wanted to add a comment to blog posts, using the same "blog" input above. This time, we only want to comment on the posts written by "stedolan". We can find those posts using the "select" function described earlier:
.posts[] | select(.author == "stedolan")
The paths provided by this operation point to each of the posts that "stedolan" wrote, and we can comment on each of them in the same way that we did before:
(.posts[] | select(.author == "stedolan") | .comments) |= . + ["terrible."]
jq has a library/module system. Modules are files whose names end in .jq.
Modules imported by a program are searched for in a default search path (see below). The import and include directives allow the importer to alter this path.
Paths in the a search path are subject to various substitutions.
For paths starting with "~/", the user´s home directory is substituted for "~".
For paths starting with "$ORIGIN/", the path of the jq executable is substituted for "$ORIGIN".
For paths starting with "./" or paths that are ".", the path of the including file is substituted for ".". For top-level programs given on the command-line, the current directory is used.
Import directives can optionally specify a search path to which the default is appended.
The default search path is the search path given to the -L command-line option, else ["~/.jq", "$ORIGIN/../lib/jq", "$ORIGIN/../lib"].
Null and empty string path elements terminate search path processing.
A dependency with relative path "foo/bar" would be searched for in "foo/bar.jq" and "foo/bar/bar.jq" in the given search path. This is intended to allow modules to be placed in a directory along with, for example, version control files, README files, and so on, but also to allow for single-file modules.
Consecutive components with the same name are not allowed to avoid ambiguities (e.g., "foo/foo").
For example, with -L$HOME/.jq a module foo can be found in $HOME/.jq/foo.jq and $HOME/.jq/foo/foo.jq.
If "$HOME/.jq" is a file, it is sourced into the main program.
import RelativePathString as NAME [<metadata>]; Imports a module found at the given path relative to a directory in a search path. A ".jq" suffix will be added to the relative path string. The module´s symbols are prefixed with "NAME::".
The optional metadata must be a constant jq expression. It should be an object with keys like "homepage" and so on. At this time jq only uses the "search" key/value of the metadata. The metadata is also made available to users via the modulemeta builtin.
The "search" key in the metadata, if present, should have a string or array value (array of strings); this is the search path to be prefixed to the top-level search path.
include RelativePathString [<metadata>]; Imports a module found at the given path relative to a directory in a search path as if it were included in place. A ".jq" suffix will be added to the relative path string. The module´s symbols are imported into the caller´s namespace as if the module´s content had been included directly.
import RelativePathString as $NAME [<metadata>]; Imports a JSON file found at the given path relative to a directory in a search path. A ".json" suffix will be added to the relative path string. The file´s data will be available as $NAME::NAME.
module <metadata>; This directive is entirely optional. It´s not required for proper operation. It serves only the purpose of providing metadata that can be read with the modulemeta builtin.
The metadata must be a constant jq expression. It should be an object with keys like "homepage". At this time jq doesn´t use this metadata, but it is made available to users via the modulemeta builtin.
modulemeta Takes a module name as input and outputs the module´s metadata as an object, with the module´s imports (including metadata) as an array value for the "deps" key.
Programs can use this to query a module´s metadata, which they could then use to, for example, search for, download, and install missing dependencies.
To configure alternative colors just set the JQ_COLORS environment variable to colon-delimited list of partial terminal escape sequences like "1;31", in this order:
•   color for null
•   color for false
•   color for true
•   color for numbers
•   color for strings
•   color for arrays
•   color for objects
The default color scheme is the same as setting "JQ_COLORS=1;30:0;39:0;39:0;39:0;32:1;39:1;39".
This is not a manual for VT100/ANSI escapes. However, each of these color specifications should consist of two numbers separated by a semi-colon, where the first number is one of these:
•   1 (bright)
•   2 (dim)
•   4 (underscore)
•   5 (blink)
•   7 (reverse)
•   8 (hidden)
and the second is one of these:
•   30 (black)
•   31 (red)
•   32 (green)
•   33 (yellow)
•   34 (blue)
•   35 (magenta)
•   36 (cyan)
•   37 (white)
Presumably. Report them or discuss them at:
https://github.com/stedolan/jq/issues
Stephen Dolan <mu@netsoc.tcd.ie>
PACCACHE(8)                   Pacman-contrib Manual                  PACCACHE(8)
paccache - flexible pacman cache cleaning utility
paccache <operation> [options] [targets...]
Paccache removes old packages from the pacman cache directory. By default the last three versions of a package are kept.
-d, --dryrun Perform a dry run, only finding candidate packages.
-m, --move <dir> Move candidate packages from the cache directory to dir.
-r, --remove Remove candidate packages from the cache directory.
-a, --arch <arch> Scan for packages for a specific architecture. Default is to scan for all architectures.
--min-atime <age>, --min-mtime <age> Only consider packages for removal with atime respectively mtime older than specified. The age can be given as 10d, 1m, 1y, 1y1m etc.
-c, --cachedir <dir> Specify a different cache directory. This option can be used more than once. Default is to use the cache directory configured in pacman.conf.
-f, --force Apply force to mv and rm operations.
-h, --help Display syntax and command line options.
-i, --ignore <pkgs> Specify packages to ignore, comma-separated. Alternatively "-" can be used to read the package names from stdin, newline-delimited.
-k, --keep <num> Specify how many versions of each package are kept in the cache directory, default is 3.
--nocolor Remove color from the output.
-q, --quiet Minimize the output.
-u, --uninstalled Target uninstalled packages.
-v, --verbose Increase verbosity, can be specified up to 3 times.
-z, --null Use null delimiters for candidate names (only with -v and -vv).
The package cache can be cleaned periodically using the systemd timer paccache.timer. If the timer is enabled the cache will be cleaned weekly with paccache’s default options.
pacman(8), pacman.conf(5), systemctl(1)
Bugs? You must be kidding; there are no bugs in this software. But if we happen to be wrong, send us an email with as much detail as possible to pacman-contrib@lists.archlinux.org.
•   Johannes Löthberg <johannes@kyriasis.com>
•   Daniel M. Capella <polyzen@archlinux.org>
For additional contributors, use git shortlog -s on the pacman-contrib.git repository.
hunspell(3)                 Library Functions Manual                 hunspell(3)
hunspell - spell checking, stemming, morphological generation and analysis
#include <hunspell.hxx> /* or */ #include <hunspell.h>
Hunspell(const char *affpath, const char *dpath);
Hunspell(const char *affpath, const char *dpath, const char * key);
~Hunspell();
int add_dic(const char *dpath);
int add_dic(const char *dpath, const char *key);
int spell(const char *word);
int spell(const char *word, int *info, char **root);
int suggest(char***slst, const char *word);
int analyze(char***slst, const char *word);
int stem(char***slst, const char *word);
int stem(char***slst, char **morph, int n);
int generate(char***slst, const char *word, const char *word2);
int generate(char***slst, const char *word, char **desc, int n);
void free_list(char ***slst, int n);
int add(const char *word);
int add_with_affix(const char *word, const char *example);
int remove(const char *word);
char * get_dic_encoding();
const char * get_wordchars();
unsigned short * get_wordchars_utf16(int *len);
struct cs_info * get_csconv();
const char * get_version();
The Hunspell library routines give the user word-level linguistic functions: spell checking and correction, stemming, morphological generation and analysis in item-and-arrangement style.
The optional C header contains the C interface of the C++ library with Hunspell_create and Hunspell_destroy constructor and destructor, and an extra HunHandle parameter (the allocated object) in the wrapper functions (see in the C header file hunspell.h).
The basic spelling functions, spell() and suggest() can be used for stemming, morphological generation and analysis by XML input texts (see XML API).
Constructor and destructor Hunspell's constructor needs paths of the affix and dictionary files. (In WIN32 environment, use UTF-8 encoded paths started with the long path prefix \\?\ to handle system-independent character encoding and very long path names, too.)  See the hunspell(4) manual page for the dictionary format.  Optional key parameter is for dictionaries encrypted by the hzip tool of the Hunspell distribution.
Extra dictionaries The add_dic() function load an extra dictionary file.  The extra dictionaries use the affix file of the allocated Hunspell object. Maximal number of the extra dictionaries is limited in the source code (20).
Spelling and correction The spell() function returns non-zero, if the input word is recognised by the spell checker, and a zero value if not. Optional reference variables return a bit array (info) and the root word of the input word.  Info bits checked with the SPELL_COMPOUND, SPELL_FORBIDDEN or SPELL_WARN macros sign compound words, explicit forbidden and probably bad words.  From version 1.3, the non-zero return value is 2 for the dictionary words with the flag "WARN" (probably bad words).
The suggest() function has two input parameters, a reference variable of the output suggestion list, and an input word. The function returns the number of the suggestions. The reference variable will contain the address of the newly allocated suggestion list or NULL, if the return value of suggest() is zero. Maximal number of the suggestions is limited in the source code.
The spell() and suggest() can recognize XML input, see the XML API section.
Morphological functions The plain stem() and analyze() functions are similar to the suggest(), but instead of suggestions, return stems and results of the morphological analysis. The plain generate() waits a second word, too. This extra word and its affixation will be the model of the morphological generation of the requested forms of the first word.
The extended stem() and generate() use the results of a morphological analysis:
char ** result, result2; int n1 = analyze(&result, "words"); int n2 = stem(&result2, result, n1);
The morphological annotation of the Hunspell library has fixed (two letter and a colon) field identifiers, see the hunspell(4) manual page.
char ** result; char * affix = "is:plural"; // description depends from dictionaries, too int n = generate(&result, "word", &affix, 1); for (int i = 0; i < n; i++) printf("%s\n", result[i]);
Memory deallocation The free_list() function frees the memory allocated by suggest(), analyze, generate and stem() functions.
Other functions The add(), add_with_affix() and remove() are helper functions of a personal dictionary implementation to add and remove words from the base dictionary in run-time. The add_with_affix() uses a second root word as the model of the enabled affixation and compounding of the new word.
The get_dic_encoding() function returns "ISO8859-1" or the character encoding defined in the affix file with the "SET" keyword.
The get_csconv() function returns the 8-bit character case table of the encoding of the dictionary.
The get_wordchars() and get_wordchars_utf16() return the extra word characters defined in affix file for tokenization by the "WORDCHARS" keyword.
The get_version() returns the version string of the library.
XML API The spell() function returns non-zero for the "<?xml?>" input indicating the XML API support.
The suggest() function stems, analyzes and generates the forms of the input word, if it was added by one of the following "SPELLML" syntaxes:
<?xml?> <query type="analyze"> <word>dogs</word> </query>
<?xml?> <query type="stem"> <word>dogs</word> </query>
<?xml?> <query type="generate"> <word>dog</word> <word>cats</word> </query>
<?xml?> <query type="generate"> <word>dog</word> <code><a>is:pl</a><a>is:poss</a></code> </query>
<?xml?> <query type="add"> <word>word</word> </query>
<?xml?> <query type="add"> <word>word</word> <word>model_word_for_affixation_and_compounding</word> </query>
The outputs of the type="stem" query and the stem() library function are the same. The output of the type="analyze" query is a string contained a <code><a>result1</a><a>result2</a>...</code> element. This element can be used in the second syntax of the type="generate" query.
See analyze.cxx in the Hunspell distribution.
Hunspell based on Ispell's spell checking algorithms and OpenOffice.org's Myspell source code.
Author of International Ispell is Geoff Kuenning.
Author of MySpell is Kevin Hendricks.
Author of Hunspell is László Németh.
Author of the original C API is Caolan McNamara.
Author of the Aspell table-driven phonetic transcription algorithm and code is Björn Jacke.
See also THANKS and Changelog files of Hunspell distribution.
TIMEW(1)                          User Manuals                          TIMEW(1)
timew - a command line time tracker
timew [--version|--help] timew [<command> [<arg>...]]
Timewarrior is a command line time tracker. It allows you to easily track your time and generate summary reports.
This is a reference, not a tutorial. If you are looking for a tutorial, check the online documentation here:
https://timewarrior.net/docs/
When run without arguments or options, the default command is run, which indicates whether there is any active tracking, and if so, shows a summary, then exits with a code 0. If there is no active time tracking, exit code is 1.
--version Displays Timewarrior version information
--help Displays Timewarrior usage information
Timewarrior supports many commands. Alphabetically:
timew-annotate(1) Add annotation to intervals
timew-cancel(1) Cancel time tracking
timew-config(1) Get and set Timewarrior configuration
timew-continue(1) Resume tracking of existing interval
timew-day(1) Display day chart
timew-delete(1) Delete intervals
timew-diagnostics(1) Show diagnostic information
timew-export(1) Export tracked time in JSON
timew-extensions(1) List available extensions
timew-get(1) Display DOM values
timew-help(1) Display help
timew-join(1) Join intervals
timew-lengthen(1) Lengthen intervals
timew-modify(1) Change start or end time of an interval
timew-month(1) Display month chart
timew-move(1) Change interval start-time
timew-report(1) Run an extension report
timew-resize(1) Set interval duration
timew-shorten(1) Shorten intervals
timew-show(1) Display configuration
timew-split(1) Split intervals
timew-start(1) Start time tracking
timew-stop(1) Stop time tracking
timew-summary(1) Display a time-tracking summary
timew-tag(1) Add tags to intervals
timew-tags(1) Display a list of tags
timew-track(1) Add intervals to the database
timew-undo(1) Undo Timewarrior commands
timew-untag(1) Remove tags from intervals
timew-week(1) Display week chart
For examples please see the online documentation starting at:
R < >]]https://timewarrior.net/docs/
Note that the online documentation can be more detailed and more current than this man page
~/.timewarrior/timewarrior.cfg User configuration file.
~/.timewarrior/data/YYYY-MM.data Time tracking data files.
CREDITS & COPYRIGHT Copyright Â© 2015 - 2018 T. Lauf, P. Beckingham, F. Hernandez. Timewarrior is distributed under the MIT license. See R < >]]https://www.opensource.org/licenses/mit-license.php for more information.
For more information regarding Timewarrior, see the following:
The official site at R < >]]https://timewarrior.net
The official code repository at R < >]]https://github.com/GothenburgBitFactory/timewarrior
You can contact the project by emailing R < >]]support@gothenburgbitfactory.org
Bugs in Timewarrior may be reported to the issue-tracker at R < >]]https://github.com/GothenburgBitFactory/timewarrior/issues
timew-config(7), timew-dates(7), timew-dom(7), timew-durations(7), timew-hints(7), timew-range(7)
DMENU(1)                     General Commands Manual                    DMENU(1)
dmenu - dynamic menu
dmenu [-bfiv] [-l lines] [-m monitor] [-p prompt] [-fn font] [-nb color] [-nf color] [-sb color] [-sf color] [-w windowid]
dmenu_run ...
dmenu is a dynamic menu for X, which reads a list of newline-separated items from stdin.  When the user selects an item and presses Return, their choice is printed to stdout and dmenu terminates.  Entering text will narrow the items to those matching the tokens in the input.
dmenu_run is a script used by dwm(1) which lists programs in the user's $PATH and runs the result in their $SHELL.
-b     dmenu appears at the bottom of the screen.
-f     dmenu grabs the keyboard before reading stdin if not reading from a tty. This is faster, but will lock up X until stdin reaches end-of-file.
-i     dmenu matches menu items case insensitively.
-l lines dmenu lists items vertically, with the given number of lines.
-m monitor dmenu is displayed on the monitor number supplied. Monitor numbers are starting from 0.
-p prompt defines the prompt to be displayed to the left of the input field.
-fn font defines the font or font set used.
-nb color defines the normal background color.  #RGB, #RRGGBB, and X color names are supported.
-nf color defines the normal foreground color.
-sb color defines the selected background color.
-sf color defines the selected foreground color.
-v     prints version information to stdout, then exits.
-w windowid embed into windowid.
dmenu is completely controlled by the keyboard.  Items are selected using the arrow keys, page up, page down, home, and end.
Tab    Copy the selected item to the input field.
Return Confirm selection.  Prints the selected item to stdout and exits, returning success.
Ctrl-Return Confirm selection.  Prints the selected item to stdout and continues.
Shift-Return Confirm input.  Prints the input text to stdout and exits, returning success.
Escape Exit without selecting an item, returning failure.
Ctrl-Left Move cursor to the start of the current word
Ctrl-Right Move cursor to the end of the current word
C-a    Home
C-b    Left
C-c    Escape
C-d    Delete
C-e    End
C-f    Right
C-g    Escape
C-h    Backspace
C-i    Tab
C-j    Return
C-J    Shift-Return
C-k    Delete line right
C-m    Return
C-M    Shift-Return
C-n    Down
C-p    Up
C-u    Delete line left
C-w    Delete word left
C-y    Paste from primary X selection
C-Y    Paste from X clipboard
M-b    Move cursor to the start of the current word
M-f    Move cursor to the end of the current word
M-g    Home
M-G    End
M-h    Up
M-j    Page down
M-k    Page up
M-l    Down
dwm(1), stest(1)
SXIV(1)                      General Commands Manual                     SXIV(1)
sxiv - Simple X Image Viewer
sxiv [-abcfhiopqrtvZ] [-A FRAMERATE] [-e WID] [-G GAMMA] [-g GEOMETRY] [-N NAME] [-n NUM] [-S DELAY] [-s MODE] [-z ZOOM] FILE...
sxiv is a simple image viewer for X.
It has two modes of operation: image and thumbnail mode. The default is image mode, in which only the current image is shown. In thumbnail mode a grid of small previews is displayed, making it easy to choose an image to open.
Please note, that the fullscreen mode requires an EWMH/NetWM compliant window manager.
-A FRAMERATE Play animations with a constant frame rate set to FRAMERATE.
-a     Play animations of multi-frame images.
-b     Do not show info bar on bottom of window.
-c     Remove all orphaned cache files from the thumbnail cache directory and exit.
-e WID Embed sxiv's window into window whose ID is WID.
-f     Start in fullscreen mode.
-G GAMMA Set image gamma to GAMMA (-32..32).
-g GEOMETRY Set window position and size. See section GEOMETRY SPECIFICATIONS of X(7) for more information on GEOMETRY argument.
-N NAME Set the resource name of sxiv's X window to NAME.
-n NUM Start at picture number NUM.
-h     Print brief usage information to standard output and exit.
-i     Read names of files to open from standard input. Also done if FILE is `-'.
-o     Write list of all marked files to standard output when quitting. In combination with -i sxiv can be used as a visual filter/pipe.
-p     Enable private mode, in which sxiv does not write any cache or temporary files.
-q     Be quiet, disable warnings to standard error stream.
-r     Search the given directories recursively for images to view.
-S DELAY Start in slideshow mode. Set the delay between images to DELAY seconds.  DELAY may be a floating point number.
-s MODE Set scale mode according to MODE character. Supported modes are: [d]own, [f]it, [w]idth, [h]eight.
-t     Start in thumbnail mode.
-Z     The same as `-z 100'.
-z ZOOM Set zoom level to ZOOM percent.
General The following keyboard commands are available in both image and thumbnail mode:
0-9    Prefix the next command with a number (denoted via count).
q      Quit sxiv.
Return Switch to thumbnail mode / open selected image in image mode.
f      Toggle fullscreen mode.
b      Toggle visibility of info bar on bottom of window.
Ctrl-x Send the next key to the external key-handler. See section EXTERNAL KEY HANDLER for more information.
g      Go to the first image.
G      Go to the last image, or image number count.
r      Reload image.
D      Remove current image from file list and go to next image.
Ctrl-h, Ctrl-Left Scroll left one screen width.
Ctrl-j, Ctrl-Down Scroll down one screen height.
Ctrl-k, Ctrl-Up Scroll up one screen height.
Ctrl-l, Ctrl-Right Scroll right one screen width.
+      Zoom in.
-      Zoom out.
m      Mark/unmark the current image.
M      Reverse all image marks.
Ctrl-M Repeat last mark action on all images from the last marked/unmarked up to the current one.
Ctrl-m Remove all image marks.
N      Go count marked images forward.
P      Go count marked images backward.
{      Decrease gamma correction by count steps.
}      Increase gamma correction by count steps.
Ctrl-g Reset gamma correction.
Thumbnail mode The following keyboard commands are only available in thumbnail mode:
h, Left Move selection left count times.
j, Down Move selection down count times.
k, Up  Move selection up count times.
l, Right Move selection right count times.
R      Reload all thumbnails.
Image mode The following keyboard commands are only available in image mode:
Navigate image list:
n, Space Go count images forward.
p, Backspace Go count images backward.
[      Go count * 10 images backward.
]      Go count * 10 images forward.
Handle multi-frame images:
Ctrl-n Go count frames of a multi-frame image forward.
Ctrl-p Go count frames of a multi-frame image backward.
Ctrl-Space Play/stop animations of multi-frame images.
h, Left Scroll image 1/5 of window width or count pixel left.
j, Down Scroll image 1/5 of window height or count pixel down.
k, Up  Scroll image 1/5 of window height or count pixel up.
l, Right Scroll image 1/5 of window width or count pixel right.
H      Scroll to left image edge.
J      Scroll to bottom image edge.
K      Scroll to top image edge.
L      Scroll to right image edge.
Zooming:
=      Set zoom level to 100%, or count%.
w      Set zoom level to 100%, but fit large images into window.
W      Fit image to window.
e      Fit image to window width.
E      Fit image to window height.
Rotation:
<      Rotate image counter-clockwise by 90 degrees.
>      Rotate image clockwise by 90 degrees.
?      Rotate image by 180 degrees.
Flipping:
|      Flip image horizontally.
_      Flip image vertically.
a      Toggle anti-aliasing.
A      Toggle visibility of alpha-channel, i.e. image transparency.
s      Toggle slideshow mode and/or set the delay between images to count seconds.
The following mouse mappings are available in image mode:
Button3 Switch to thumbnail mode.
Button1 Go to the next image if the mouse cursor is in the right part of the window or to the previous image if it is in the left part.
Button2 Pan the image according to the mouse cursor position in the window while keeping this button pressed down.
ScrollUp Zoom in.
ScrollDown Zoom out.
The following X resources are supported:
background Color of the window background and bar foreground
foreground Color of the window foreground and bar background
font   Name of Xft bar font
Please see xrdb(1) on how to change them.
The information displayed on the left side of the status bar can be replaced with the output of a user-provided script, which is called by sxiv whenever an image gets loaded. The path of this script is $XDG_CONFIG_HOME/sxiv/exec/image-info and the arguments given to it are: 1) path to image file, 2) image width, 3) image height.
There is also an example script installed together with sxiv as /usr/share/sxiv/exec/image-info.
Additional external keyboard commands can be defined using a handler program located in $XDG_CONFIG_HOME/sxiv/exec/key-handler.  The handler is invoked by pressing Ctrl-x.  The next key combo is passed as its first argument. Passed via stdin are the images to act upon, one path per line: all marked images, if in thumbnail mode and at least one image has been marked, otherwise the current image.  sxiv(1) will block until the handler terminates. It then checks which images have been modified and reloads them.
The key combo argument has the following form: "[C-][M-][S-]KEY", where C/M/S indicate Ctrl/Meta(Alt)/Shift modifier states and KEY is the X keysym as listed in /usr/include/X11/keysymdef.h without the "XK_" prefix.
There is also an example script installed together with sxiv as /usr/share/sxiv/exec/key-handler.
sxiv stores all thumbnails under $XDG_CACHE_HOME/sxiv/.
Use the command line option -c to remove all orphaned cache files. Additionally, run the following command afterwards inside the cache directory to remove empty subdirectories:
find . -depth -type d -empty ! -name '.' -exec rmdir {} \;
Bert Muennich   <ber.t at posteo.de>
Bastien Dejean  <nihilhill at gmail.com> Dave Reisner    <d at falconindy.com> Fung SzeTat     <sthorde at gmail.com> Max Voit        <mvdev at with-eyes.net>
https://github.com/muennich/sxiv
X(7), xrdb(1)
UNFLATTEN(1)                 General Commands Manual                UNFLATTEN(1)
unflatten - adjust directed graphs to improve layout aspect ratio
unflatten [-f?]  [-llen] [-clen ] [ -o outfile ] [ files ]
unflatten is a preprocessor to dot that is used to improve the aspect ratio of graphs having many leaves or disconnected nodes.  The usual layout for such a graph is generally very wide or tall.  unflatten inserts invisible edges or adjusts the minlen on edges to improve layout compaction.
-l len The minimum length of leaf edges is staggered between 1 and len (a small integer).
-f     Enables the staggering of the -l option to fanout nodes whose indegree and outdegree are both 1. This helps with structures such as a -> {w x y z} -> b.  This option only works if the -l flag is set.
-c len Form disconnected nodes into chains of up to len nodes.
-o outfile causes the output to be written to the specified file; by default, output is written to stdout.
-?     Prints the usage and exits.
Stephen C. North <north@research.att.com> Emden R. Gansner <erg@research.att.com>
gc(1), dot(1), acyclic(1), gvpr(1), gvcolor(1), ccomps(1), tred(1), libgraph(3)
XCURSORGEN(1)                General Commands Manual               XCURSORGEN(1)
xcursorgen - create an X cursor file from a collection of PNG images
xcursorgen [ -V ] [ --version ] [ -? ] [ --help ] [ -p dir ] [ --prefix dir ] [ config-file [ output-file ] ]
Xcursorgen reads the config-file to find the list of cursor images along with their hotspot and nominal size information.  Xcursorgen converts all of the images to Xcursor format and writes them to the output-file.
Each line in the config file is of the form: <size> <xhot> <yhot> <filename> <ms-delay>
Multiple images with the same <size> are used to create animated cursors, the <ms-delay> value on each line indicates how long each image should be displayed before switching to the next.  <ms-delay> can be elided for static cursors.
If config-file is not specified, or is specified as "-", standard input is used for the configuration file.  If output-file is not specified, or is specified as "-", standard output is used for the output file.
-V, --version Display the version number and exit.
-?, --help Display the usage message and exit.
-p dir, --prefix dir Find cursor images in the directory specified by dir.   If not specified, the current directory is used.
Xcursor(3)
GIT-RESET-FILE(1)                  Git Extras                  GIT-RESET-FILE(1)
git-reset-file - Reset one file
git-reset-file [<filename>] commit-hash
Reset one file to HEAD or certain commit-hash
<filename>
The name of the file to reset.
<commit-hash>
(Optional) Hash of commit to reset the file to. Defaults to HEAD.
Reset one file to HEAD
$ git reset-file .htaccess
or reset one file to certain commit
$ git reset-file .htaccess dc82b19
Written by Sasha Khamkov <sanusart@gmail.com>
MCOOKIE(1)                        User Commands                       MCOOKIE(1)
mcookie - generate magic cookies for xauth
mcookie [options]
mcookie generates a 128-bit random hexadecimal number for use with the X authority system. Typical usage:
xauth add :0 . mcookie
The "random" number generated is actually the MD5 message digest of random information coming from one of the sources getrandom(2) system call, /dev/urandom, /dev/random, or the libc pseudo-random functions, in this preference order. See also the option --file.
-f, --file file Use this file as an additional source of randomness (for example /dev/urandom). When file is '-', characters are read from standard input.
-m, --max-size number Read from file only this number of bytes. This option is meant to be used when reading additional randomness from a file or device.
The number argument may be followed by the multiplicative suffixes KiB=1024, MiB=1024*1024, and so on for GiB, TiB, PiB, EiB, ZiB and YiB (the "iB" is optional, e.g., "K" has the same meaning as "KiB") or the suffixes KB=1000, MB=1000*1000, and so on for GB, TB, PB, EB, ZB and YB.
-v, --verbose Inform where randomness originated, with amount of entropy read from each source.
It is assumed that none of the randomness sources will block.
md5sum(1), X(7), xauth(1), rand(3)
The mcookie command is part of the util-linux package which can be downloaded from Linux Kernel Archive <https://www.kernel.org/pub/linux/utils/util-linux/>.
KILL(1P)                    POSIX Programmer's Manual                   KILL(1P)
kill — terminate or signal processes
kill -s signal_name pid...
kill -l [exit_status]
kill [-signal_name] pid...
kill [-signal_number] pid...
The kill utility shall send a signal to the process or processes specified by each pid operand.
For each pid operand, the kill utility shall perform actions equivalent to the kill() function defined in the System Interfaces volume of POSIX.1‐2017 called with the following arguments:
*  The value of the pid operand shall be used as the pid argument.
*  The sig argument is the value specified by the -s option, -signal_number option, or the -signal_name option, or by SIGTERM, if none of these options is specified.
The kill utility shall conform to the Base Definitions volume of POSIX.1‐2017, Section 12.2, Utility Syntax Guidelines, except that in the last two SYNOPSIS forms, the -signal_number and -signal_name options are usually more than a single character.
-l        (The letter ell.) Write all values of signal_name supported by the implementation, if no operand is given. If an exit_status operand is given and it is a value of the '?'  shell special parameter (see Section 2.5.2, Special Parameters and wait) corresponding to a process that was terminated by a signal, the signal_name corresponding to the signal that terminated the process shall be written. If an exit_status operand is given and it is the unsigned decimal integer value of a signal number, the signal_name (the symbolic constant name without the SIG prefix defined in the Base Definitions volume of POSIX.1‐2017) corresponding to that signal shall be written. Otherwise, the results are unspecified.
-s signal_name Specify the signal to send, using one of the symbolic names defined in the <signal.h> header. Values of signal_name shall be recognized in a case-independent fashion, without the SIG prefix. In addition, the symbolic name 0 shall be recognized, representing the signal value zero. The corresponding signal shall be sent instead of SIGTERM.
-signal_name Equivalent to -s signal_name.
-signal_number Specify a non-negative decimal integer, signal_number, representing the signal to be used instead of SIGTERM, as the sig argument in the effective call to kill().  The correspondence between integer values and the sig value used is shown in the following list.
The effects of specifying any signal_number other than those listed below are undefined.
0     0
1     SIGHUP
2     SIGINT
3     SIGQUIT
6     SIGABRT
9     SIGKILL
14    SIGALRM
15    SIGTERM
If the first argument is a negative integer, it shall be interpreted as a -signal_number option, not as a negative pid operand specifying a process group.
pid       One of the following:
1. A decimal integer specifying a process or process group to be signaled.  The process or processes selected by positive, negative, and zero values of the pid operand shall be as described for the kill() function. If process number 0 is specified, all processes in the current process group shall be signaled. For the effects of negative pid numbers, see the kill() function defined in the System Interfaces volume of POSIX.1‐2017. If the first pid operand is negative, it should be preceded by "--" to keep it from being interpreted as an option.
2. A job control job ID (see the Base Definitions volume of POSIX.1‐2017, Section 3.204, Job Control Job ID) that identifies a background process group to be signaled. The job control job ID notation is applicable only for invocations of kill in the current shell execution environment; see Section 2.12, Shell Execution Environment.
exit_status A decimal integer specifying a signal number or the exit status of a process terminated by a signal.
The following environment variables shall affect the execution of kill:
When the -l option is not specified, the standard output shall not be used.
When the -l option is specified, the symbolic name of each signal shall be written in the following format:
"%s%c", <signal_name>, <separator>
where the <signal_name> is in uppercase, without the SIG prefix, and the <separator> shall be either a <newline> or a <space>.  For the last signal written, <separator> shall be a <newline>.
When both the -l option and exit_status operand are specified, the symbolic name of the corresponding signal shall be written in the following format:
"%s\n", <signal_name>
0    At least one matching process was found for each pid operand, and the specified signal was successfully processed for at least one matching process.
Process numbers can be found by using ps.
The job control job ID notation is not required to work as expected when kill is operating in its own utility execution environment. In either of the following examples:
nohup kill %1 & system("kill %1");
the kill operates in a different environment and does not share the shell's understanding of job numbers.
Any of the commands:
kill -9 100 -165 kill -s kill 100 -165 kill -s KILL 100 -165
sends the SIGKILL signal to the process whose process ID is 100 and to all processes whose process group ID is 165, assuming the sending process has permission to send that signal to the specified processes, and that they exist.
The System Interfaces volume of POSIX.1‐2017 and this volume of POSIX.1‐2017 do not require specific signal numbers for any signal_names. Even the -signal_number option provides symbolic (although numeric) names for signals. If a process is terminated by a signal, its exit status indicates the signal that killed it, but the exact values are not specified. The kill -l option, however, can be used to map decimal signal numbers and exit status values into the name of a signal. The following example reports the status of a terminated job:
job stat=$? if [ $stat -eq 0 ] then echo job completed successfully. elif [ $stat -gt 128 ] then echo job terminated by signal SIG$(kill -l $stat). else echo job terminated with error code $stat. fi
To send the default signal to a process group (say 123), an application should use a command similar to one of the following:
kill -TERM -123 kill -- -123
The -l option originated from the C shell, and is also implemented in the KornShell. The C shell output can consist of multiple output lines because the signal names do not always fit on a single line on some terminal screens. The KornShell output also included the implementation- defined signal numbers and was considered by the standard developers to be too difficult for scripts to parse conveniently. The specified output format is intended not only to accommodate the historical C shell output, but also to permit an entirely vertical or entirely horizontal listing on systems for which this is appropriate.
An early proposal invented the name SIGNULL as a signal_name for signal 0 (used by the System Interfaces volume of POSIX.1‐2017 to test for the existence of a process without sending it a signal). Since the signal_name 0 can be used in this case unambiguously, SIGNULL has been removed.
An early proposal also required symbolic signal_names to be recognized with or without the SIG prefix. Historical versions of kill have not written the SIG prefix for the -l option and have not recognized the SIG prefix on signal_names.  Since neither applications portability nor ease- of-use would be improved by requiring this extension, it is no longer required.
To avoid an ambiguity of an initial negative number argument specifying either a signal number or a process group, POSIX.1‐2008 mandates that it is always considered the former by implementations that support the XSI option. It also requires that conforming applications always use the "--" options terminator argument when specifying a process group, unless an option is also specified.
The -s option was added in response to international interest in providing some form of kill that meets the Utility Syntax Guidelines.
the kill operates in a different environment and does not understand how the shell has managed its job numbers.
Chapter 2, Shell Command Language, ps, wait
The Base Definitions volume of POSIX.1‐2017, Section 3.204, Job Control Job ID, Chapter 8, Environment Variables, Section 12.2, Utility Syntax Guidelines, <signal.h>
The System Interfaces volume of POSIX.1‐2017, kill()
GITK(1)                            Git Manual                            GITK(1)
gitk - The Git repository browser
gitk [<options>] [<revision range>] [--] [<path>...]
Displays changes in a repository or a selected set of commits. This includes visualizing the commit graph, showing information related to each commit, and the files in the trees of each revision.
To control which revisions to show, gitk supports most options applicable to the git rev-list command. It also supports a few options applicable to the git diff-* commands to control how the changes each commit introduces are shown. Finally, it supports some gitk-specific options.
gitk generally only understands options with arguments in the sticked form (see gitcli(7)) due to limitations in the command-line parser.
rev-list options and arguments This manual page describes only the most frequently used options. See git-rev-list(1) for a complete list.
--all Show all refs (branches, tags, etc.).
--branches[=<pattern>], --tags[=<pattern>], --remotes[=<pattern>] Pretend as if all the branches (tags, remote branches, resp.) are listed on the command line as <commit>. If <pattern> is given, limit refs to ones matching given shell glob. If pattern lacks ?, *, or [, /* at the end is implied.
--since=<date> Show commits more recent than a specific date.
--until=<date> Show commits older than a specific date.
--date-order Sort commits by date when possible.
--merge After an attempt to merge stops with conflicts, show the commits on the history between two branches (i.e. the HEAD and the MERGE_HEAD) that modify the conflicted files and do not exist on all the heads being merged.
--left-right Mark which side of a symmetric difference a commit is reachable from. Commits from the left side are prefixed with a < symbol and those from the right with a > symbol.
--full-history When filtering history with <path>..., does not prune some history. (See "History simplification" in git-log(1) for a more detailed explanation.)
--simplify-merges Additional option to --full-history to remove some needless merges from the resulting history, as there are no selected commits contributing to this merge. (See "History simplification" in git- log(1) for a more detailed explanation.)
--ancestry-path When given a range of commits to display (e.g.  commit1..commit2 or commit2 ^commit1), only display commits that exist directly on the ancestry chain between the commit1 and commit2, i.e. commits that are both descendants of commit1, and ancestors of commit2. (See "History simplification" in git-log(1) for a more detailed explanation.)
-L<start>,<end>:<file>, -L:<funcname>:<file> Trace the evolution of the line range given by <start>,<end>, or by the function name regex <funcname>, within the <file>. You may not give any pathspec limiters. This is currently limited to a walk starting from a single revision, i.e., you may only give zero or one positive revision arguments, and <start> and <end> (or <funcname>) must exist in the starting revision. You can specify this option more than once. Implies --patch. Patch output can be suppressed using --no-patch, but other diff formats (namely --raw, --numstat, --shortstat, --dirstat, --summary, --name-only, --name-status, --check) are not currently implemented.
<revision range> Limit the revisions to show. This can be either a single revision meaning show from the given revision and back, or it can be a range in the form "<from>..<to>" to show all revisions between <from> and back to <to>. Note, more advanced revision selection can be applied. For a more complete list of ways to spell object names, see gitrevisions(7).
<path>... Limit commits to the ones touching files in the given paths. Note, to avoid ambiguity with respect to revision names use "--" to separate the paths from any preceding options.
gitk-specific options --argscmd=<command> Command to be run each time gitk has to determine the revision range to show. The command is expected to print on its standard output a list of additional revisions to be shown, one per line. Use this instead of explicitly specifying a <revision range> if the set of commits to show may vary between refreshes.
--select-commit=<ref> Select the specified commit after loading the graph. Default behavior is equivalent to specifying --select-commit=HEAD.
gitk v2.6.12.. include/scsi drivers/scsi Show the changes since version v2.6.12 that changed any file in the include/scsi or drivers/scsi subdirectories
gitk --since="2 weeks ago" -- gitk Show the changes during the last two weeks to the file gitk. The "--" is necessary to avoid confusion with the branch named gitk
gitk --max-count=100 --all -- Makefile Show at most 100 changes made to the file Makefile. Instead of only looking for changes in the current branch look in all branches.
User configuration and preferences are stored at:
•   $XDG_CONFIG_HOME/git/gitk if it exists, otherwise
•   $HOME/.gitk if it exists
If neither of the above exist then $XDG_CONFIG_HOME/git/gitk is created and used by default. If $XDG_CONFIG_HOME is not set it defaults to $HOME/.config in all cases.
Gitk was the first graphical repository browser. It’s written in tcl/tk.
gitk is actually maintained as an independent project, but stable versions are distributed as part of the Git suite for the convenience of end users.
gitk-git/ comes from Paul Mackerras’s gitk project:
git://ozlabs.org/~paulus/gitk
qgit(1) A repository browser written in C++ using Qt.
tig(1) A minimal repository browser and Git tool output highlighter written in C using Ncurses.
LLVM-DIS(1)                           LLVM                           LLVM-DIS(1)
llvm-dis - LLVM disassembler
llvm-dis [options] [filename]
The llvm-dis command is the LLVM disassembler.  It takes an LLVM bitcode file and converts it into human-readable LLVM assembly language.
If filename is omitted or specified as -, llvm-dis reads its input from standard input.
If the input is being read from standard input, then llvm-dis will send its output to standard output by default.  Otherwise, the output will be written to a file named after the input file, with a .ll suffix added (any existing .bc suffix will first be removed).  You can override the choice of output file using the -o option.
-f Enable binary output on terminals.  Normally, llvm-dis will refuse to write raw bitcode output if the output stream is a terminal. With this option, llvm-dis will write raw bitcode regardless of the output device.
-help Print a summary of command line options.
-o filename Specify the output file name.  If filename is -, then the output is sent to standard output.
If llvm-dis succeeds, it will exit with 0.  Otherwise, if an error occurs, it will exit with a non-zero value.
llvm-as(1)
BORG(1)                         borg backup tool                         BORG(1)
borg - deduplicating and encrypting backup tool
borg [common options] <command> [options] [arguments]