sites

public wiki contents of suckless.org
git clone git://git.suckless.org/sites
Log | Files | Refs

commit a1a05e3d06ff15f79fa8705c23d26e40c754e6ba
parent 3fc1b38f3bf844459f36a1970dcef61bfc048fdf
Author: Josuah Demangeon <mail@josuah.net>
Date:   Sun,  6 Jan 2019 01:31:27 +0100

make the syntax more consistent.

* Paragraphs are filled to 80 columns
* bullets are set without separating newlines
* bullets are set with '*' instead of '-'
* "[links][1] .. [1]: content" are converted to "[links](content)"
* no newline after title ruller ("------" or "======")
* no content change besides a few typos
* "# titles" converted to underlined titles

Diffstat:
Mcore.suckless.org/index.md | 5+++--
Mcore.suckless.org/init-scripts/index.md | 9+++------
Mcore.suckless.org/nldev/index.md | 9++++-----
Mcore.suckless.org/sbase/index.md | 9++++-----
Mcore.suckless.org/sdhcp/index.md | 1-
Mcore.suckless.org/sinit/index.md | 5++---
Mcore.suckless.org/smdev/index.md | 5++---
Mcore.suckless.org/svc/index.md | 5++---
Mcore.suckless.org/ubase/index.md | 9++++-----
Mdwm.suckless.org/customisation/customfuncs/index.md | 36+++++++++++++++++++++++-------------
Mdwm.suckless.org/customisation/font/index.md | 1-
Mdwm.suckless.org/customisation/index.md | 48+++++++++++++++++++++++++-----------------------
Mdwm.suckless.org/customisation/noapps/index.md | 7+++----
Mdwm.suckless.org/customisation/patches_in_git/index.md | 92+++++++++++++++++++++++++++++++++++++------------------------------------------
Mdwm.suckless.org/customisation/tagmask/index.md | 24+++++++++---------------
Mdwm.suckless.org/customisation/windows_key/index.md | 15++++++---------
Mdwm.suckless.org/dynamic_window_management/index.md | 3+--
Mdwm.suckless.org/faq/index.md | 1-
Mdwm.suckless.org/index.md | 60++++++++++++++++++++++++++++++++----------------------------
Mdwm.suckless.org/multi-monitor/index.md | 53+++++++++++++++++++++++++----------------------------
Mdwm.suckless.org/multi-pointer/index.md | 12+++---------
Mdwm.suckless.org/patches/alpha/index.md | 11+++--------
Mdwm.suckless.org/patches/alwaysfullscreen/index.md | 11++++-------
Mdwm.suckless.org/patches/attachabove/index.md | 3---
Mdwm.suckless.org/patches/attachaside/index.md | 7++-----
Mdwm.suckless.org/patches/attachbottom/index.md | 6++----
Mdwm.suckless.org/patches/autoresize/index.md | 7++-----
Mdwm.suckless.org/patches/autostart/index.md | 7++-----
Mdwm.suckless.org/patches/bottomstack/index.md | 3---
Mdwm.suckless.org/patches/center/index.md | 3---
Mdwm.suckless.org/patches/centeredmaster/index.md | 24++++++++++--------------
Mdwm.suckless.org/patches/centeredwindowname/index.md | 7++-----
Mdwm.suckless.org/patches/cfacts/index.md | 37+++++++++++++++----------------------
Mdwm.suckless.org/patches/clientspertag/index.md | 20++++++++++----------
Mdwm.suckless.org/patches/cmdcustomize/index.md | 6++----
Mdwm.suckless.org/patches/columns/index.md | 5++---
Mdwm.suckless.org/patches/combo/index.md | 16+++++++++-------
Mdwm.suckless.org/patches/cropwindows/index.md | 11+++--------
Mdwm.suckless.org/patches/current_desktop/index.md | 36+++++++++++++++++++-----------------
Mdwm.suckless.org/patches/cyclelayouts/index.md | 22+++++++++++-----------
Mdwm.suckless.org/patches/deck/index.md | 8++++----
Mdwm.suckless.org/patches/defaulttransparency/index.md | 15++++++++-------
Mdwm.suckless.org/patches/dualstatus/index.md | 8++++----
Mdwm.suckless.org/patches/dwmfifo/index.md | 21++++++++-------------
Mdwm.suckless.org/patches/emptyview/index.md | 8+++++---
Mdwm.suckless.org/patches/ewmhtags/index.md | 12+++++-------
Mdwm.suckless.org/patches/exresize/index.md | 20+++++++++-----------
Mdwm.suckless.org/patches/fakefullscreen/index.md | 7+++----
Mdwm.suckless.org/patches/fancybar/index.md | 15++++++++-------
Mdwm.suckless.org/patches/fancybarclickable/index.md | 8++++----
Mdwm.suckless.org/patches/fibonacci/index.md | 31+++++++++++++++----------------
Mdwm.suckless.org/patches/flextile/index.md | 107+++++++++++++++++++++++++++++++++++++++++++------------------------------------
Mdwm.suckless.org/patches/float_border_color/index.md | 18+++++++++++-------
Mdwm.suckless.org/patches/focusadjacenttag/index.md | 7++-----
Mdwm.suckless.org/patches/focusonclick/index.md | 17+++++++++--------
Mdwm.suckless.org/patches/focusonnetactive/index.md | 28+++++++++++++++-------------
Mdwm.suckless.org/patches/focusurgent/index.md | 15++++++++-------
Mdwm.suckless.org/patches/freespace/index.md | 13++++++-------
Mdwm.suckless.org/patches/fsignal/index.md | 6+-----
Mdwm.suckless.org/patches/gaplessgrid/index.md | 28++++++++++++++--------------
Mdwm.suckless.org/patches/gaps/index.md | 13+++++--------
Mdwm.suckless.org/patches/gestures/index.md | 9+++++----
Mdwm.suckless.org/patches/hide_vacant_tags/index.md | 22+++++++++-------------
Mdwm.suckless.org/patches/historical/altmovefocus/index.md | 8++++++--
Mdwm.suckless.org/patches/historical/ansistatuscolors/index.md | 56++++++++++++++++++++++++++++----------------------------
Mdwm.suckless.org/patches/historical/bottom_stack/index.md | 3+--
Mdwm.suckless.org/patches/historical/color_status_bar/index.md | 46++++++++++++++++++++++++++--------------------
Mdwm.suckless.org/patches/historical/fibonacci/index.md | 44++++++++++++++++++++++----------------------
Mdwm.suckless.org/patches/historical/focusatom/index.md | 28++++++++++++++--------------
Mdwm.suckless.org/patches/historical/gridmode/index.md | 44++++++++++++++++++++++++--------------------
Mdwm.suckless.org/patches/historical/mouseontitle/index.md | 22++++++++++------------
Mdwm.suckless.org/patches/historical/movestack/index.md | 43+++++++++++++++++++++++--------------------
Mdwm.suckless.org/patches/historical/multimon/index.md | 62+++++++++++++++++++++++++++++++++++++-------------------------
Adwm.suckless.org/patches/historical/nmaster/dwm-4.4.1-nmaster.diff | 114+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mdwm.suckless.org/patches/historical/nmaster/index.md | 60++++++++++++++++++++++++++++++------------------------------
Adwm.suckless.org/patches/historical/nmaster/nmaster-4.7.c | 505+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adwm.suckless.org/patches/historical/nmaster/nmaster.c | 343+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mdwm.suckless.org/patches/historical/raiselower/index.md | 17++++++++++-------
Mdwm.suckless.org/patches/historical/taglayouts/index.md | 25++++++++++++++-----------
Mdwm.suckless.org/patches/historical/tilemovemouse/index.md | 8++------
Mdwm.suckless.org/patches/historical/workspaces/index.md | 24++++++++++++++----------
Mdwm.suckless.org/patches/historical/xft/index.md | 21++++++++++-----------
Mdwm.suckless.org/patches/horizgrid/index.md | 8++++----
Mdwm.suckless.org/patches/index.md | 1-
Mdwm.suckless.org/patches/ispermanent/index.md | 7++-----
Mdwm.suckless.org/patches/keycodes/index.md | 8++++----
Mdwm.suckless.org/patches/keymodes/index.md | 97++++++++++++++++++++++++++++++++++++++++++++++---------------------------------
Mdwm.suckless.org/patches/keypressrelease/index.md | 20++++++++++----------
Mdwm.suckless.org/patches/killunsel/index.md | 3---
Mdwm.suckless.org/patches/leftlayout/index.md | 15++++++++-------
Mdwm.suckless.org/patches/mark/index.md | 34+++++++++++++++++-----------------
Mdwm.suckless.org/patches/maximize/index.md | 6+++---
Mdwm.suckless.org/patches/monocle_count/index.md | 2+-
Mdwm.suckless.org/patches/moveontagmon/index.md | 13++++++++-----
Mdwm.suckless.org/patches/moveplace/index.md | 20++++++++++----------
Mdwm.suckless.org/patches/moveresize/index.md | 54+++++++++++++++++++++++++++---------------------------
Mdwm.suckless.org/patches/movestack/index.md | 40+++++++++++++++++++++-------------------
Mdwm.suckless.org/patches/mpdcontrol/index.md | 7+++----
Mdwm.suckless.org/patches/nametag/index.md | 14+++++++++-----
Mdwm.suckless.org/patches/nextprev/index.md | 19++++++++++---------
Mdwm.suckless.org/patches/nmaster/index.md | 30+++++++++++++++---------------
Mdwm.suckless.org/patches/noborder/index.md | 3---
Mdwm.suckless.org/patches/nrowgrid/index.md | 5+----
Mdwm.suckless.org/patches/onlyquitonempty/index.md | 5-----
Mdwm.suckless.org/patches/pango/index.md | 41++++++++++++++++++++---------------------
Mdwm.suckless.org/patches/pertag/index.md | 4++--
Mdwm.suckless.org/patches/pledge/index.md | 3---
Mdwm.suckless.org/patches/push/index.md | 25+++++++++++++++----------
Mdwm.suckless.org/patches/pwkl/index.md | 12++++++------
Mdwm.suckless.org/patches/resizecorners/index.md | 18++++++++++--------
Mdwm.suckless.org/patches/restartsig/index.md | 19++++++++++---------
Mdwm.suckless.org/patches/rmaster/index.md | 23++++++++++++-----------
Mdwm.suckless.org/patches/rotatestack/index.md | 13+++++--------
Mdwm.suckless.org/patches/runorraise/index.md | 11+++++------
Mdwm.suckless.org/patches/save_floats/index.md | 13++++++++-----
Mdwm.suckless.org/patches/scheme_switch/index.md | 23++++++++++++-----------
Mdwm.suckless.org/patches/scratchpad/index.md | 11++++-------
Mdwm.suckless.org/patches/single_tagset/index.md | 17+++++++----------
Mdwm.suckless.org/patches/singularborders/index.md | 10+++++++---
Mdwm.suckless.org/patches/sizehints/index.md | 25++++++++++++++-----------
Mdwm.suckless.org/patches/spawn_cwd/index.md | 19++++++++++---------
Mdwm.suckless.org/patches/stacker/index.md | 62++++++++++++++++++++++++++++++--------------------------------
Mdwm.suckless.org/patches/stackmfact/index.md | 3++-
Mdwm.suckless.org/patches/status2d/index.md | 15++++++++-------
Mdwm.suckless.org/patches/statusbutton/index.md | 21++++++++++++---------
Mdwm.suckless.org/patches/statuscolors/index.md | 47++++++++++++++++++++++++++++++-----------------
Mdwm.suckless.org/patches/statuspadding/index.md | 15++++++++-------
Mdwm.suckless.org/patches/stdin/index.md | 15++++++---------
Mdwm.suckless.org/patches/sticky/index.md | 14++++++++------
Mdwm.suckless.org/patches/swallow/index.md | 27++++++++++-----------------
Mdwm.suckless.org/patches/swapfocus/index.md | 16+++++++++++-----
Mdwm.suckless.org/patches/switchcol/index.md | 18++++++++++--------
Mdwm.suckless.org/patches/tab/index.md | 104++++++++++++++++++++++++++++++++++++++++----------------------------------------
Mdwm.suckless.org/patches/tagall/index.md | 17++++++++++-------
Mdwm.suckless.org/patches/taggrid/index.md | 23++++++++---------------
Mdwm.suckless.org/patches/tagintostack/index.md | 7++++---
Mdwm.suckless.org/patches/three-column/index.md | 51+++++++++++++++++++++++++++------------------------
Mdwm.suckless.org/patches/tilegap/index.md | 6+++---
Mdwm.suckless.org/patches/titlecolor/index.md | 15++++++++-------
Mdwm.suckless.org/patches/urgentborder/index.md | 20++++++++++----------
Mdwm.suckless.org/patches/uselessgap/index.md | 28++++++++++++----------------
Mdwm.suckless.org/patches/viewontag/index.md | 19++++++++++---------
Mdwm.suckless.org/patches/warp/index.md | 3---
Mdwm.suckless.org/patches/winview/index.md | 28++++++++++++----------------
Mdwm.suckless.org/patches/xkb/index.md | 22++++++++++------------
Mdwm.suckless.org/patches/xrdb/index.md | 6++----
Mdwm.suckless.org/patches/xtile/index.md | 199+++++++++++++++++++++++++++++++++++++++++--------------------------------------
Mdwm.suckless.org/patches/zoomswap/index.md | 3++-
Mdwm.suckless.org/status_monitor/email_notifications/index.md | 8++------
Mdwm.suckless.org/status_monitor/index.md | 59++++++++++++++++++++++++++++++-----------------------------
Mdwm.suckless.org/tutorial/index.md | 66++++++++++++++++++++++++++++++------------------------------------
Mev.suckless.org/index.md | 6+++---
Mev.suckless.org/satzung/index.md | 1-
Mlibs.suckless.org/deprecated/index.md | 3++-
Mlibs.suckless.org/deprecated/libixp/index.md | 21+++++++++++++++++----
Mst.suckless.org/index.md | 45++++++++++++++++++++++-----------------------
Mst.suckless.org/patches/alpha/index.md | 10+++-------
Mst.suckless.org/patches/anysize/index.md | 14+++++++++-----
Mst.suckless.org/patches/boxdraw/index.md | 29++++++++++++-----------------
Mst.suckless.org/patches/clipboard/index.md | 3---
Mst.suckless.org/patches/copyurl/index.md | 4----
Mst.suckless.org/patches/delkey/index.md | 3---
Mst.suckless.org/patches/disable_bold_italic_fonts/index.md | 10++++------
Mst.suckless.org/patches/dracula/index.md | 15+++++----------
Mst.suckless.org/patches/externalpipe/index.md | 7++-----
Mst.suckless.org/patches/fix_keyboard_input/index.md | 98++++++++++++++++++++++++++++++++++++++-----------------------------------------
Mst.suckless.org/patches/hidecursor/index.md | 3---
Mst.suckless.org/patches/index.md | 5++---
Mst.suckless.org/patches/iso14755/index.md | 8++------
Mst.suckless.org/patches/keyboard_select/index.md | 28+++++++++++-----------------
Mst.suckless.org/patches/open_copied_url/index.md | 14+++++---------
Mst.suckless.org/patches/openbsd/index.md | 27+++++++++------------------
Mst.suckless.org/patches/palettes/index.md | 8++------
Mst.suckless.org/patches/relativeborder/index.md | 15++++++++-------
Mst.suckless.org/patches/right_click_to_plumb/index.md | 94+++++++++++++++++++++++++++++++++++++++++--------------------------------------
Mst.suckless.org/patches/scrollback/index.md | 25++++++++++++-------------
Mst.suckless.org/patches/solarized/index.md | 37+++++++++++++++----------------------
Mst.suckless.org/patches/spoiler/index.md | 13+++++--------
Mst.suckless.org/patches/vertcenter/index.md | 15++++++++-------
Mst.suckless.org/patches/visualbell/index.md | 47++++++++++++++++++-----------------------------
Mst.suckless.org/patches/xresources/index.md | 3---
Msuckless.org/coding_style/index.md | 11+++++------
Msuckless.org/community/index.md | 6------
Msuckless.org/conferences/2015/index.md | 1-
Msuckless.org/conferences/2016/index.md | 4----
Msuckless.org/conferences/2017/index.md | 8++++----
Msuckless.org/conferences/2018/index.md | 1-
Msuckless.org/donations/index.md | 8++++----
Msuckless.org/hacking/index.md | 23++++++++++++-----------
Msuckless.org/index.md | 122+++++++++++++++++++++++++++++++++++++++++++++++++------------------------------
Msuckless.org/people/more_people/index.md | 1-
Msuckless.org/philosophy/index.md | 19+++++++++----------
Msuckless.org/project_ideas/index.md | 43+++++++++++++++++++++----------------------
Msuckless.org/rocks/index.md | 15+++++++--------
Msuckless.org/sucks/index.md | 7++-----
Msuckless.org/sucks/systemd/index.md | 4++--
Msuckless.org/sucks/web/index.md | 17+++++++----------
Mtools.suckless.org/9base/index.md | 11+++++++----
Mtools.suckless.org/blind/index.md | 211++++++++++++++++++++++++++++++++-----------------------------------------------
Mtools.suckless.org/dmenu/index.md | 13++++++-------
Mtools.suckless.org/dmenu/patches/case-insensitive/index.md | 1-
Mtools.suckless.org/dmenu/patches/center/index.md | 14++++++--------
Mtools.suckless.org/dmenu/patches/fuzzymatch/index.md | 4----
Mtools.suckless.org/dmenu/patches/incremental/index.md | 7+------
Mtools.suckless.org/dmenu/patches/index.md | 5++---
Mtools.suckless.org/dmenu/patches/initialtext/index.md | 1-
Mtools.suckless.org/dmenu/patches/instant/index.md | 4++--
Mtools.suckless.org/dmenu/patches/line-height/index.md | 1-
Mtools.suckless.org/dmenu/patches/mouse-support/index.md | 9++++-----
Mtools.suckless.org/dmenu/patches/navhistory/index.md | 19++++++++++---------
Mtools.suckless.org/dmenu/patches/non_blocking_stdin/index.md | 3---
Mtools.suckless.org/dmenu/patches/password/index.md | 1-
Mtools.suckless.org/dmenu/patches/pipeout/index.md | 8+++-----
Mtools.suckless.org/dmenu/patches/prefix-completion/index.md | 9+++++----
Mtools.suckless.org/dmenu/patches/printinputtext/index.md | 14+++++---------
Mtools.suckless.org/dmenu/patches/reject-no-match/index.md | 1-
Mtools.suckless.org/dmenu/patches/scroll/index.md | 1-
Mtools.suckless.org/dmenu/scripts/dmenu_run_with_command_history/index.md | 11++++-------
Mtools.suckless.org/dmenu/scripts/index.md | 2--
Mtools.suckless.org/farbfeld/examples/index.md | 16+++++++---------
Mtools.suckless.org/farbfeld/faq/index.md | 171+++++++++++++++++++++++++++++++++++--------------------------------------------
Mtools.suckless.org/farbfeld/index.md | 15++++-----------
Mtools.suckless.org/ii/bots/index.md | 61+++++++++++++++++++++++++++++++++----------------------------
Mtools.suckless.org/ii/index.md | 12++++++++----
Mtools.suckless.org/ii/patches/action/index.md | 11++++-------
Mtools.suckless.org/ii/patches/autojoin/index.md | 8++------
Mtools.suckless.org/ii/patches/exec/index.md | 3---
Mtools.suckless.org/ii/patches/index.md | 5++---
Mtools.suckless.org/ii/patches/joinuser/index.md | 13++++++-------
Mtools.suckless.org/ii/patches/solarisbuild/index.md | 8+++-----
Mtools.suckless.org/ii/patches/ssl/index.md | 8++------
Mtools.suckless.org/ii/patches/ucspi/index.md | 12+++++-------
Mtools.suckless.org/ii/patches/usernames/index.md | 15++++++---------
Mtools.suckless.org/ii/usage/index.md | 70++++++++++++++++++++++++++++++++++++++++++++++++++++------------------
Mtools.suckless.org/quark/index.md | 66++++++++++++++++++++++++++++++------------------------------------
Mtools.suckless.org/sent/index.md | 19++++++-------------
Mtools.suckless.org/sent/patches/bilinear_scaling/index.md | 24+++++++++---------------
Mtools.suckless.org/sent/patches/index.md | 4++--
Mtools.suckless.org/sent/patches/inverted-colors/index.md | 11+++--------
Mtools.suckless.org/sent/patches/progress-bar/index.md | 3---
Mtools.suckless.org/sent/patches/toggle_cursor/index.md | 3---
Mtools.suckless.org/sic/index.md | 7++++---
Mtools.suckless.org/sic/patches/alert/index.md | 3++-
Mtools.suckless.org/sic/patches/hidecommand/index.md | 8++------
Mtools.suckless.org/sic/patches/index.md | 1-
Mtools.suckless.org/slock/index.md | 20+++++++-------------
Mtools.suckless.org/slock/patches/capscolor/index.md | 3---
Mtools.suckless.org/slock/patches/control-clear/index.md | 3---
Mtools.suckless.org/slock/patches/dpms/index.md | 9++-------
Mtools.suckless.org/slock/patches/index.md | 5++---
Mtools.suckless.org/slock/patches/mediakeys/index.md | 6++----
Mtools.suckless.org/slock/patches/message/index.md | 10++--------
Mtools.suckless.org/slock/patches/pam_auth/index.md | 13+++++--------
Mtools.suckless.org/slock/patches/quickcancel/index.md | 4----
Mtools.suckless.org/slock/patches/terminalkeys/index.md | 3---
Mtools.suckless.org/slock/patches/unlock_screen/index.md | 11++++-------
Mtools.suckless.org/slstatus/index.md | 9++++-----
Mtools.suckless.org/tabbed/index.md | 8++++----
Mtools.suckless.org/tabbed/patches/alpha/index.md | 6------
Mtools.suckless.org/tabbed/patches/autohide/index.md | 1-
Mtools.suckless.org/tabbed/patches/index.md | 5++---
Mtools.suckless.org/tabbed/patches/keycode/index.md | 3++-
Mtools.suckless.org/tabbed/patches/xft/index.md | 4----
Mtools.suckless.org/x/svkbd/index.md | 27++++++++++++---------------
Mtools.suckless.org/x/swarp/index.md | 3++-
Mtools.suckless.org/x/wmname/index.md | 12++++++------
266 files changed, 3452 insertions(+), 2736 deletions(-)

diff --git a/core.suckless.org/index.md b/core.suckless.org/index.md @@ -1,7 +1,8 @@ ![core](core.svg) -The suckless core is a collection of programs making up a suckless userspace foundation, aiming -to replace bloated and complex solutions with simple and concise ones. +The suckless core is a collection of programs making up a suckless userspace +foundation, aiming to replace bloated and complex solutions with simple and +concise ones. Useful external components -------------------------- diff --git a/core.suckless.org/init-scripts/index.md b/core.suckless.org/init-scripts/index.md @@ -1,9 +1,6 @@ init scripts ============ +The long-term goal is to unify the following parallel solutions: -The long-term goal is to unify the following parallel -solutions: - -[Morpheus init scripts](http://git.2f30.org/fs/) - -[Stali init scripts](http://git.r-36.net/stali-init/) +* [Morpheus init scripts](http://git.2f30.org/fs/) +* [Stali init scripts](http://git.r-36.net/stali-init/) diff --git a/core.suckless.org/nldev/index.md b/core.suckless.org/nldev/index.md @@ -1,8 +1,7 @@ nldev - netlink device manager ============================== +[nldev](http://git.r-36.net/nldev/) is a netlink frontend for mdev, replacing +the over-engineered udevd. -[nldev](http://git.r-36.net/nldev/) is a netlink frontend for mdev, -replacing the over-engineered udevd. - -[nlmon](http://git.r-36.net/nlmon/) replaces udevadm for monitoring -network devices. +[nlmon](http://git.r-36.net/nlmon/) replaces udevadm for monitoring network +devices. diff --git a/core.suckless.org/sbase/index.md b/core.suckless.org/sbase/index.md @@ -1,8 +1,7 @@ sbase - suckless base ===================== +[sbase](//git.suckless.org/sbase/) is a collection of unix tools that are +portable across unix-systems. -[sbase](//git.suckless.org/sbase/) is a collection of unix -tools that are portable across unix-systems. - -For a list of tools that are currently implemented, please refer -to the [README](//git.suckless.org/sbase/tree/README). +For a list of tools that are currently implemented, please refer to the +[README](//git.suckless.org/sbase/tree/README). diff --git a/core.suckless.org/sdhcp/index.md b/core.suckless.org/sdhcp/index.md @@ -1,4 +1,3 @@ sdhcp - suckless dhcp client ============================ - [sdhcp](http://git.2f30.org/sdhcp/) is a suckless dhcp client. diff --git a/core.suckless.org/sinit/index.md b/core.suckless.org/sinit/index.md @@ -1,8 +1,7 @@ sinit - suckless init ===================== - -[sinit](//git.suckless.org/sinit/) is a suckless init, initially based on -Rich Felker's minimal [init](https://gist.github.com/rofl0r/6168719). +[sinit](//git.suckless.org/sinit/) is a suckless init, initially based on Rich +Felker's minimal [init](https://gist.github.com/rofl0r/6168719). sinit is considered complete and no further development is expected to happen. diff --git a/core.suckless.org/smdev/index.md b/core.suckless.org/smdev/index.md @@ -1,5 +1,4 @@ smdev - suckless mdev ===================== - -[smdev](//git.suckless.org/smdev/) is a mostly mdev-compatible suckless program to -manage device nodes. +[smdev](//git.suckless.org/smdev/) is a mostly mdev-compatible suckless program +to manage device nodes. diff --git a/core.suckless.org/svc/index.md b/core.suckless.org/svc/index.md @@ -1,5 +1,4 @@ svc - service scripts and control programs ========================================== - -[svc](gopher://gopher.r-36.net/1/scm/svc/) is a set of suckless service scripts and -control programs. +[svc](gopher://gopher.r-36.net/1/scm/svc/) is a set of suckless service scripts +and control programs. diff --git a/core.suckless.org/ubase/index.md b/core.suckless.org/ubase/index.md @@ -1,8 +1,7 @@ ubase - unportable base ======================= +[ubase](//git.suckless.org/ubase) is a collection of unportable tools, similar +in spirit to util-linux but much simpler. -[ubase](//git.suckless.org/ubase) is a collection of unportable -tools, similar in spirit to util-linux but much simpler. - -For a list of tools that are currently implemented, please refer -to the [README](//git.suckless.org/ubase/tree/README). +For a list of tools that are currently implemented, please refer to the +[README](//git.suckless.org/ubase/tree/README). diff --git a/dwm.suckless.org/customisation/customfuncs/index.md b/dwm.suckless.org/customisation/customfuncs/index.md @@ -1,14 +1,13 @@ Custom functions in config.h ============================ - -*by [Jesus Galan (yiyus)](mailto:yiyu dot jgl at gmail>) (vie ago 22 19:53:32 CEST 2008)* - -You don't need to write complex patches to config dwm, some custom functions and sensible key and button definitions in config.h let you turn dwm into whatever you want without messing with dwm.c. +You don't need to write complex patches to config dwm, some custom functions +and sensible key and button definitions in config.h let you turn dwm into +whatever you want without messing with dwm.c. Example of config.h ------------------- - -This example is for people who prefer to control dwm with the mouse (for dwm 5.1): +This example is for people who prefer to control dwm with the mouse (for dwm +5.1): /* See LICENSE file for copyright and license details. */ @@ -225,17 +224,22 @@ This example is for people who prefer to control dwm with the mouse (for dwm 5.1 Usage of the above configuration -------------------------------- - -In case you want to try this configuration there are some differences with the default dwm config to be taken into account. Mouse actions will be explained later, keys have similar behaviour. There are other small changes, but the config.h file should be pretty straightforward. +In case you want to try this configuration there are some differences with the +default dwm config to be taken into account. Mouse actions will be explained +later, keys have similar behaviour. There are other small changes, but the +config.h file should be pretty straightforward. ### Tagging In the tag buttons: -* B1: view a tag, trying to view the selected tagset will result in a change to the previous one. -* B3: toggle a tag, trying to toggle the last selected tag will result in viewing all tags. +* B1: view a tag, trying to view the selected tagset will result in a change to + the previous one. +* B3: toggle a tag, trying to toggle the last selected tag will result in + viewing all tags. * B2+B1: assign tag to the sel client. -* B2+B3: toggle tag for the sel client, trying to toggle the last tag will result in assigning all tags. +* B2+B3: toggle tag for the sel client, trying to toggle the last tag will + result in assigning all tags. ### Layouts @@ -249,11 +253,17 @@ In the layout symbol: in the status bar, the root window, or the selected window (with Mod pressed) -* Wheel to focus prev/next client. Floating clients will just be focused after the tiled ones. -* B1 to move (the pointer will be wrapped to the upper-left corner if necessary). +* Wheel to focus prev/next client. Floating clients will just be focused after + the tiled ones. +* B1 to move (the pointer will be wrapped to the upper-left corner if + necessary). * B3 to resize (the pointer will be wrapped to the bottom-right corner). * B2 to zoom or toggle floating status if zooming is not possible. ### Closing windows * B3+B1 in the status message. + +Author +------ +* [Jesus Galan (yiyus)](mailto:yiyu dot jgl at gmail>) (vie ago 22 19:53:32 CEST 2008) diff --git a/dwm.suckless.org/customisation/font/index.md b/dwm.suckless.org/customisation/font/index.md @@ -1,6 +1,5 @@ Change font in config.h ======================= - Towards the beginning of **config.h**, you will find a line defining the variable diff --git a/dwm.suckless.org/customisation/index.md b/dwm.suckless.org/customisation/index.md @@ -1,40 +1,42 @@ Customisation ============= - -*blame [Filippo Erik Negroni](mailto:f dot e dot negroni at googlemail dot com>) about this document* - -**dwm** is customised by editing **config.h**, a C language header file, and **config.mk**, a Make include file. +**dwm** is customised by editing **config.h**, a C language header file, and +**config.mk**, a Make include file. What is **config.h**? --------------------- - -config.h is a source code file which is included by dwm.c, the main dwm source code module. -It serves as the configuration file for all of dwm's features, e.g., application placement, tags, and colours. -A vanilla download of dwm will contain a file called config.def.h, a template you can use to create your own config.h file. -To start customising dwm, simply copy config.def.h into config.h before you run make. +config.h is a source code file which is included by dwm.c, the main dwm source +code module. It serves as the configuration file for all of dwm's features, +e.g., application placement, tags, and colours. A vanilla download of dwm will +contain a file called config.def.h, a template you can use to create your own +config.h file. To start customising dwm, simply copy config.def.h into config.h +before you run make. What is **config.mk**? ---------------------- - -config.mk is a file included by Makefile. It allows you to configure how make is going to compile and install dwm. +config.mk is a file included by Makefile. It allows you to configure how make +is going to compile and install dwm. How do I modify **config.h**? ----------------------------- - -config.h can be edited just like any other C source code file. -It contains definitions of variables that are going to be used by dwm.c and therefore it is vital that the file is always up to date. -The default Makefile distributed with dwm will not overwrite your customised config.h with the contents of config.def.h, even if it was updated in the latest git pull. -Therefore, you should always compare your customised config.h with config.def.h and make sure you include any changes to the latter in your config.h. +config.h can be edited just like any other C source code file. It contains +definitions of variables that are going to be used by dwm.c and therefore it is +vital that the file is always up to date. The default Makefile distributed with +dwm will not overwrite your customised config.h with the contents of +config.def.h, even if it was updated in the latest git pull. Therefore, you +should always compare your customised config.h with config.def.h and make sure +you include any changes to the latter in your config.h. How do I modify **config.mk**? ------------------------------ - -config.mk can be edited just like any other text file. -It contains definitions of variables that are going to be used inside Makefile. -Unlike config.h, config.mk does not have a config.def.mk (a default Makefile). -Therefore, during an update of your repository you may run into conflicts if the original config.mk is edited. +config.mk can be edited just like any other text file. It contains definitions +of variables that are going to be used inside Makefile. Unlike config.h, +config.mk does not have a config.def.mk (a default Makefile). Therefore, during +an update of your repository you may run into conflicts if the original +config.mk is edited. Are there any example customisations to get me started? ------------------------------------------------------- - -Various customisation options are illustrated in the sub-directories of this wiki page. Under each of the categories (customfuncs, fonts, etc.,) you will find example modifications that will get you started. +Various customisation options are illustrated in the sub-directories of this +wiki page. Under each of the categories (customfuncs, fonts, etc.,) you will +find example modifications that will get you started. diff --git a/dwm.suckless.org/customisation/noapps/index.md b/dwm.suckless.org/customisation/noapps/index.md @@ -1,8 +1,7 @@ Remove application defaults from config.h ========================================= - The rules array is initialized, by default, to treat windows of class `Gimp` -and `Firefox` in a special way. If, like me, you don't want any application to +and `Firefox` in a special way. If, like me, you don't want any application to be treated in a special way, you must be careful when editing the rules array initialization code. @@ -16,7 +15,7 @@ structure. }; For instance, Gimp and Firefox will be labeled as floating windows, even if the -layout selected is Monocle or Tiled. In particular, the tag mask will attach +layout selected is Monocle or Tiled. In particular, the tag mask will attach Firefox to tag '9'. If we don't want any window class to be treated in a special way, we need to @@ -43,6 +42,6 @@ matching is done. } This code assumes the rules array has at least one element, and that the first -rule that does not match will apply to all window classes. Therefore, the rule +rule that does not match will apply to all window classes. Therefore, the rule we just made, is the default rule for all new windows and therefore it is important you set the `tags mask` and `isfloating` elements correctly. diff --git a/dwm.suckless.org/customisation/patches_in_git/index.md b/dwm.suckless.org/customisation/patches_in_git/index.md @@ -1,42 +1,40 @@ -# How to maintain dwm configuration and customization in git - -Since suckless.org has migrated to git, customizations can now be be -managed directly in git as an alternative to the -[patch queue in Mercurial tutorial](//dwm.suckless.org/customisation/patch_queue). - -## The concept - -By recording changes and applied patches as commits in a special -branch they can be rebased on top of the master branch when required. - -## Cloning the repository - -You need to have the [Git VCS](http://git-scm.com/) installed first. -Then clone the upstream repository locally +How to maintain dwm configuration and customization in git +========================================================== +Since suckless.org has migrated to git, customizations can now be be managed +directly in git as an alternative to the [patch queue in Mercurial +tutorial](//dwm.suckless.org/customisation/patch_queue). + +The concept +----------- +By recording changes and applied patches as commits in a special branch they +can be rebased on top of the master branch when required. + +Cloning the repository +---------------------- +You need to have the [Git VCS](http://git-scm.com/) installed first. Then clone +the upstream repository locally git clone git://git.suckless.org/dwm -## Recording customizations - -Create a special branch where all the customizations will be kept. It -doesn't matter what the name is, it just needs to be something -different than `master`. +Recording customizations +------------------------ +Create a special branch where all the customizations will be kept. It doesn't +matter what the name is, it just needs to be something different than `master`. git branch my_dwm -Now switch to the new branch. This will do nothing at the moment as -the branches are the same. +Now switch to the new branch. This will do nothing at the moment as the +branches are the same. git checkout my_dwm -Now make your changes. If you want to apply one of the -[contributed patches](//dwm.suckless.org/patches/) you can use -the `git apply` command +Now make your changes. If you want to apply one of the [contributed +patches](//dwm.suckless.org/patches/) you can use the `git apply` command git apply some_patch.diff -Note that many patches make changes `config.def.h` instead of `config.h`. Either -move those changes also to `config.h`, or add `rm config.h` to the +Note that many patches make changes `config.def.h` instead of `config.h`. +Either move those changes also to `config.h`, or add `rm config.h` to the `clean` target in the `Makefile`. Then record the changes as commits @@ -48,28 +46,25 @@ Then record the changes as commits ### Experimenting with different combinations of customizations -If you plan on experimenting with different combinations of -customizations it might be easier to record the commits in separate -feature branches by first creating and checking out a branch and then -recording the changes as commits. Having patches in different branches -also helps to keep their dependencies transparent by creating branches based -on other patch branches. +If you plan on experimenting with different combinations of customizations it +might be easier to record the commits in separate feature branches by first +creating and checking out a branch and then recording the changes as commits. +Having patches in different branches also helps to keep their dependencies +transparent by creating branches based on other patch branches. Then merge the selected combination of changes into your branch git merge some_feature_branch git merge other_feature_branch -If you some conflicts occur, resolve them and then record the changes -and commit the result. `git mergetool` can help with resolving the -conflicts. +If you some conflicts occur, resolve them and then record the changes and +commit the result. `git mergetool` can help with resolving the conflicts. -## Updating customizations after new release - -When the time comes to update your customizations after a new -release of dwm or when the dwm repository contains a commit fixing -some bug, you first pull the new upstream changes into the master -branch +Updating customizations after new release +----------------------------------------- +When the time comes to update your customizations after a new release of dwm or +when the dwm repository contains a commit fixing some bug, you first pull the +new upstream changes into the master branch git checkout master git pull @@ -79,12 +74,11 @@ Then rebase your customization branch on top of the master branch git checkout my_dwm git rebase --preserve-merges master -The `--preserve-merges` option ensures that you don't have to resolve -conflicts which you have already resolved while performing merges again. +The `--preserve-merges` option ensures that you don't have to resolve conflicts +which you have already resolved while performing merges again. -In case there are merge conflicts anyway, resolve them (possibly with -the help of `git mergetool`), then record them as resolved and let the -rebase continue +In case there are merge conflicts anyway, resolve them (possibly with the help +of `git mergetool`), then record them as resolved and let the rebase continue git add resolved_file.ext git rebase --continue @@ -93,6 +87,6 @@ If you want to give up, you can always abort the rebase git rebase --abort -## Author - +Author +------ * [Ondřej Grover](mailto:ondrej.grover@gmail.com) diff --git a/dwm.suckless.org/customisation/tagmask/index.md b/dwm.suckless.org/customisation/tagmask/index.md @@ -1,6 +1,5 @@ How does a tag-mask work? ========================= - There exists extensive documentation in this wiki about tags in dwm. This article will concentrate on how to manage bit masks in default rules. @@ -38,7 +37,7 @@ mask. } } -The client's tags value is therefore built sequentially through the rules. If +The client's tags value is therefore built sequentially through the rules. If the tagmask in rules is 0, the currently selected tag becomes the client's tags value. @@ -46,7 +45,7 @@ value. c->tags = tagset[seltags]; TAGMASK is the all-one bit mask, setting to 1 all the bits corresponding to a -tag in the tags array. TAGMASK is defined in dwm.c as: +tag in the tags array. TAGMASK is defined in dwm.c as: #define TAGMASK ((int)((1LL << LENGTH(tags)) - 1)) @@ -61,7 +60,6 @@ regarding tags using bit-wise operators. When are tagmasks used? ----------------------- - Please note that dwm always uses tagmasks: even when one tag is selected as the visible tag, it is actually internally managed as a tagmask. @@ -74,27 +72,23 @@ A very powerful feature. What does tagmask 0 mean? ------------------------- - It means that the current tagmask should be selected for this window: if more than one tag are currently visible, all the currently visible tags are going to be associated to that window. -What does tagmask 1 << 8 mean? ------------------------------- - +What does tagmask 1 &lt;&lt; 8 mean? +------------------------------------ 1 shifted to the left by eight positions generates mask 100000000, selecting tag '9' (ninth from the right) in the the tags array. What does ~0 mean? ------------------ - -Complement of 0 is all 1's. This indicates all tags should be selected. The -tag mask in rules is then filtered using the TAGMASK macro to adapt the mask to +Complement of 0 is all 1's. This indicates all tags should be selected. The tag +mask in rules is then filtered using the TAGMASK macro to adapt the mask to just the available tags. -What does (1 << 8) - 1 mean? ----------------------------- - -1 << 8 selects tag '9' only (100000000). Subtracting 1 to that bitmask +What does (1 &lt;&lt; 8) - 1 mean? +---------------------------------- +1 &lt;&lt; 8 selects tag '9' only (100000000). Subtracting 1 to that bitmask transforms all the 0's to the right of that tagmask into 1's (011111111), effectively selecting all tags except '9'. diff --git a/dwm.suckless.org/customisation/windows_key/index.md b/dwm.suckless.org/customisation/windows_key/index.md @@ -1,9 +1,8 @@ Change Mod1 key to the Windows key in config.h ============================================== - dwm's documentation refers to Mod1 as the modifier key that you must press to -issue commands to it. On most keyboards, Mod1 is mapped to the left Alt key. -Most new keyboards now come equipped with the *Windows* key. Since no known +issue commands to it. On most keyboards, Mod1 is mapped to the left Alt key. +Most new keyboards now come equipped with the *Windows* key. Since no known UNIX/X applications are known to use the Windows key, it is an excellent alternative mapping to issue commands to dwm. @@ -32,12 +31,10 @@ The following patch also produces the same result: Can I use any other modifier key? --------------------------------- - -Yes. -There are 5 modifiers, Mod1Mask to Mod5Mask. -They are associated to up-to three keysyms (keycodes) from the X window server. -To show the current association on your keyboard, run `xmodmap` with no arguments. -It will show something like: +Yes. There are 5 modifiers, Mod1Mask to Mod5Mask. They are associated to up-to +three keysyms (keycodes) from the X window server. To show the current +association on your keyboard, run `xmodmap` with no arguments. It will show +something like: $ xmodmap xmodmap: up to 3 keys per modifier, (keycodes in parentheses): diff --git a/dwm.suckless.org/dynamic_window_management/index.md b/dwm.suckless.org/dynamic_window_management/index.md @@ -1,13 +1,12 @@ Dynamic window management ========================= - We think that static window management as seen in Ion or wmi-10 is a far too rigid and inflexible working environment. In [acme](http://acme.cat-v.org), larswm, and oberon, dynamic window management frees the user from these limitations. The user can start as many applications and windows as he likes, and easily arrange them in a useful way, helped by the window manager - the working environment changes with the tasks the user is performing. The -experience is very fluid and natural. Similar concepts have been introduced in +experience is very fluid and natural. Similar concepts have been introduced in wmii and dwm. Dynamic window management states that it is the window manager's job to manage diff --git a/dwm.suckless.org/faq/index.md b/dwm.suckless.org/faq/index.md @@ -1,6 +1,5 @@ FAQ === - Q: I've got a 1 or 2 pixel gap between the right side of my terminal and the right side of the screen, and I want to turn it off. diff --git a/dwm.suckless.org/index.md b/dwm.suckless.org/index.md @@ -18,11 +18,11 @@ Each screen contains a small status bar which displays all available tags, the layout, the number of visible windows, the title of the focused window, and the text read from the root window name property, if the screen is focused. A floating window is indicated with an empty square and a maximised floating -window is indicated with a filled square before the windows title. The -selected tags are indicated with a different color. The tags of the focused -window are indicated with a filled square in the top left corner. The tags -which are applied to one or more windows are indicated with an empty square in -the top left corner. +window is indicated with a filled square before the windows title. The selected +tags are indicated with a different color. The tags of the focused window are +indicated with a filled square in the top left corner. The tags which are +applied to one or more windows are indicated with an empty square in the top +left corner. dwm draws a small customizable border around windows to indicate the focus state. @@ -59,7 +59,10 @@ In contrast to ion, larswm, and wmii, dwm is much smaller, faster and simpler. Links ----- -* Mailing List: `dev+subscribe@suckless.org` ([Archives](//lists.suckless.org/dev/)) ([Old Archives](//lists.suckless.org/dwm/)) (see [community](//suckless.org/community/) for details) +* Mailing List: `dev+subscribe@suckless.org` + ([Archives](//lists.suckless.org/dev/)) + ([Old Archives](//lists.suckless.org/dwm/)) (see + [community](//suckless.org/community/) for details) * IRC channel: #suckless at irc.oftc.net Download @@ -87,34 +90,35 @@ You can [browse](//git.suckless.org/dwm) its source code repository or get a cop Miscellaneous ------------- -* Optionally you can install [dmenu](//tools.suckless.org/dmenu) to extend dwm with a wmii-like menu. +* Optionally you can install [dmenu](//tools.suckless.org/dmenu) to extend dwm + with a wmii-like menu. * Wikipedia [article about dwm](http://en.wikipedia.org/wiki/Dwm) Related discussion ------------------ -* <https://www.ghcif.de/tag/dynamic-window-manager/> (German) +* [https://www.ghcif.de/tag/dynamic-window-manager/](https://www.ghcif.de/tag/dynamic-window-manager/) (German) * [dwm blog post in Persian](http://efazati.blog.ir/post/DWM-%D8%B1%D8%A7%D9%87%DA%A9%D8%A7%D8%B1-%D9%85%D9%86%D8%A7%D8%B3%D8%A8%DB%8C-%D8%A8%D8%B1%D8%A7%DB%8C-%D9%85%D8%AF%DB%8C%D8%B1%DB%8C%D8%AA-%D9%BE%D9%86%D8%AC%D8%B1%D9%87-%D9%87%D8%A7-%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3) -* <http://www.gambaru.de/blog/2011/12/10/elitare-fenstermanager-sind-vielleicht-doch-einfacher-zu-bedienen-als-gedacht/> -* <http://www.linuxjournal.com/content/going-fast-dwm> -* <http://www.linuxgoodies.com/review_dwm.html> -* <http://www.iyiz.com/20-most-simple-and-cool-x-window-managers-for-linux/> -* <http://lbolla.wordpress.com/2010/01/08/dwm-restart/> -* <http://danielkaes.wordpress.com/2009/12/03/adding-a-pidgin-trayicon-to-dwm/> -* <http://openmindlifestyle.wordpress.com/2009/11/28/howto-compile-and-configure-dwm-tiling-window-manager-on-ubuntu/> -* <http://lsetc.wordpress.com/2009/11/27/gno-more-gnome/> -* <http://houst0n.wordpress.com/2009/12/20/dwm-the-dynamic-window-manager-for-solaris/> -* <http://the-monkeymind.blogspot.com/2007/03/dwm-dynamic-window-manager-home-page-at.html> -* <http://tonytraductor.livejournal.com/120674.html> -* <http://forums.debian.net/viewtopic.php?f=16&t=65110> -* <http://wongdev.com/blog/dwm-tags-are-not-workspaces/> +* [http://www.gambaru.de/blog/2011/12/10/elitare-fenstermanager-sind-vielleicht-doch-einfacher-zu-bedienen-als-gedacht/](http://www.gambaru.de/blog/2011/12/10/elitare-fenstermanager-sind-vielleicht-doch-einfacher-zu-bedienen-als-gedacht/) +* [http://www.linuxjournal.com/content/going-fast-dwm](http://www.linuxjournal.com/content/going-fast-dwm) +* [http://www.linuxgoodies.com/review_dwm.html](http://www.linuxgoodies.com/review_dwm.html) +* [http://www.iyiz.com/20-most-simple-and-cool-x-window-managers-for-linux/](http://www.iyiz.com/20-most-simple-and-cool-x-window-managers-for-linux/) +* [http://lbolla.wordpress.com/2010/01/08/dwm-restart/](http://lbolla.wordpress.com/2010/01/08/dwm-restart/) +* [http://danielkaes.wordpress.com/2009/12/03/adding-a-pidgin-trayicon-to-dwm/](http://danielkaes.wordpress.com/2009/12/03/adding-a-pidgin-trayicon-to-dwm/) +* [http://openmindlifestyle.wordpress.com/2009/11/28/howto-compile-and-configure-dwm-tiling-window-manager-on-ubuntu/](http://openmindlifestyle.wordpress.com/2009/11/28/howto-compile-and-configure-dwm-tiling-window-manager-on-ubuntu/) +* [http://lsetc.wordpress.com/2009/11/27/gno-more-gnome/](http://lsetc.wordpress.com/2009/11/27/gno-more-gnome/) +* [http://houst0n.wordpress.com/2009/12/20/dwm-the-dynamic-window-manager-for-solaris/](http://houst0n.wordpress.com/2009/12/20/dwm-the-dynamic-window-manager-for-solaris/) +* [http://the-monkeymind.blogspot.com/2007/03/dwm-dynamic-window-manager-home-page-at.html](http://the-monkeymind.blogspot.com/2007/03/dwm-dynamic-window-manager-home-page-at.html) +* [http://tonytraductor.livejournal.com/120674.html](http://tonytraductor.livejournal.com/120674.html) +* [http://forums.debian.net/viewtopic.php?f=16&t=65110](http://forums.debian.net/viewtopic.php?f=16&t=65110) +* [http://wongdev.com/blog/dwm-tags-are-not-workspaces/](http://wongdev.com/blog/dwm-tags-are-not-workspaces/) * [dwm usage and configuration page (french)](http://yeuxdelibad.net/Logiciel-libre/Suckless/dwm/index.html) -* <http://www.youtube.com/watch?v=GQ5s6T25jCc> -* <https://srobb.net/dwm.html> -* <http://rhunter.org/blog/2012/04/17/dwm-a-tutorial-for-beginners/> -* <https://cannibalcandy.wordpress.com/2012/04/26/installing-and-configuring-dwm-under-ubuntu/> -* <http://blog.yjl.im/2011/07/two-weeks-with-dwm.html> -* <http://www.murga-linux.com/puppy/viewtopic.php?p=258224> -* <http://opensourceforu.com/2012/03/tiling-window-managers-getting-started-with-dwm/> +* [http://www.youtube.com/watch?v=GQ5s6T25jCc](http://www.youtube.com/watch?v=GQ5s6T25jCc) +* [https://srobb.net/dwm.html](https://srobb.net/dwm.html) +* [http://rhunter.org/blog/2012/04/17/dwm-a-tutorial-for-beginners/](http://rhunter.org/blog/2012/04/17/dwm-a-tutorial-for-beginners/) +* [https://cannibalcandy.wordpress.com/2012/04/26/installing-and-configuring-dwm-under-ubuntu/](https://cannibalcandy.wordpress.com/2012/04/26/installing-and-configuring-dwm-under-ubuntu/) +* [http://blog.yjl.im/2011/07/two-weeks-with-dwm.html](http://blog.yjl.im/2011/07/two-weeks-with-dwm.html) +* [http://www.murga-linux.com/puppy/viewtopic.php?p=258224](http://www.murga-linux.com/puppy/viewtopic.php?p=258224) +* [http://opensourceforu.com/2012/03/tiling-window-managers-getting-started-with-dwm/](http://opensourceforu.com/2012/03/tiling-window-managers-getting-started-with-dwm/) related projects ---------------- diff --git a/dwm.suckless.org/multi-monitor/index.md b/dwm.suckless.org/multi-monitor/index.md @@ -1,48 +1,45 @@ -# Multi-monitor setup - -If configured to use Xinerama libraries in `config.mk`, dwm can -automatically detect configured screen outputs (monitor, overhead -projector, etc.) and their resolutions and draw the windows in the -output area accordingly. - -## Configuring monitors - -One of the easiest ways to configure screen outputs is via the *RandR* -X server extension using the `xrandr` tool. Without arguments it will -list the current configuration of screen outputs. +Multi-monitor setup +=================== +If configured to use Xinerama libraries in `config.mk`, dwm can automatically +detect configured screen outputs (monitor, overhead projector, etc.) and their +resolutions and draw the windows in the output area accordingly. + +Configuring monitors +-------------------- +One of the easiest ways to configure screen outputs is via the *RandR* X server +extension using the `xrandr` tool. Without arguments it will list the current +configuration of screen outputs. xrandr -For each connected output the supported resolution modes will be -printed. +For each connected output the supported resolution modes will be printed. -## Mirroring two outputs +Mirroring two outputs +--------------------- +dwm will assume that two outputs should display identical windows and tags if: -dwm will assume that two outputs should display identical windows and -tags if * one of them is configured to display in the same area as the other (``--same-as` switch) * they have the same resolution -After connecting a monitor, this could be an example of a mirroring -setup +After connecting a monitor, this could be an example of a mirroring setup xrandr --output VGA1 --auto --same-as LVDS1 --mode 1024x768 xrandr --output LVDS1 --mode 1024x768 The `--auto` switch enables the output after it was connected. -## Two independent outputs - -If two screen outputs have different resolutions, dwm assumes that -they should display different windows and tag sets. It may therefore -be necessary to instruct the X server via the `xrandr` tool to draw -the outputs in different areas of the screen, as it may default to -`--same-as` and the areas would overlap. +Two independent outputs +----------------------- +If two screen outputs have different resolutions, dwm assumes that they should +display different windows and tag sets. It may therefore be necessary to +instruct the X server via the `xrandr` tool to draw the outputs in different +areas of the screen, as it may default to `--same-as` and the areas would +overlap. After connecting a monitor, this could be an example of such a setup xrandr --output VGA1 --auto --right-of LVDS1 -In this case the `--auto` switch enables the output after connecting -and also sets its preferred resolution mode. +In this case the `--auto` switch enables the output after connecting and also +sets its preferred resolution mode. diff --git a/dwm.suckless.org/multi-pointer/index.md b/dwm.suckless.org/multi-pointer/index.md @@ -1,6 +1,5 @@ Multi-pointer -------------- - +============= Multi-pointer can be an alternative to multi-seat. Compared to multi-seat, multi-pointer is easier to setup (because no multi-seat experience), allows hardware acceleration and at least one monitor is required. Bad news? Both @@ -13,7 +12,6 @@ through keyboard since there is only one active window at a time. Configuring inputs ------------------ - One way to configure input devices is via the `xinput` tool. Without any arguments given, it should list all the input devices in short format. @@ -24,7 +22,6 @@ It will print all the master device (cursors on screen) and the slave device Adding master device -------------------- - To create another pointer for a new user. First, we add a master device. xinput create-master Name @@ -33,7 +30,6 @@ Another pointer should appear in the center of the screen by now. Assigning slave device ---------------------- - We will then require to assign a slave device to the master device. The *id* of the **master** and **slave** device can be found by using `xinput`. @@ -45,7 +41,6 @@ without multi-pointer support. Point master device to window ----------------------------- - Time to point the master device to the respective window, do this for both pointer and keyboard master device (not sure if specifying one works). @@ -59,7 +54,6 @@ the window. In which multiple user can play different games at the same time. Cleaning up ----------- - Remove all the master device that was created. xinput remove-master <master> @@ -74,5 +68,5 @@ Ideas See also -------- -* https://ao2.it/en/blog/2010/01/19/poor-mans-multi-touch-using-multiple-mice-xorg -* https://www.x.org/wiki/Development/Documentation/MPX/ +* [https://ao2.it/en/blog/2010/01/19/poor-mans-multi-touch-using-multiple-mice-xorg](https://ao2.it/en/blog/2010/01/19/poor-mans-multi-touch-using-multiple-mice-xorg) +* [https://www.x.org/wiki/Development/Documentation/MPX/](https://www.x.org/wiki/Development/Documentation/MPX/) diff --git a/dwm.suckless.org/patches/alpha/index.md b/dwm.suckless.org/patches/alpha/index.md @@ -5,21 +5,16 @@ alpha Description ----------- - Allow dwm to have translucent bars, while keeping all the text on it opaque, just like the [alpha-patch for st](//st.suckless.org/patches/alpha/). - Download -------- - * [dwm-alpha-6.1.diff](dwm-alpha-6.1.diff) * [dwm-alpha-20180613-b69c870.diff](dwm-alpha-20180613-b69c870.diff) - Authors ------- - -* Eon S. Jeon - <esjeon@hyunmu.am> -* Laslo Hunhold - <dev@frign.de> (6.1 port) -* Thomas Oltmann - <thomas.oltmann.hhg@gmail.com> (20180613-b69c870 port) +* Eon S. Jeon - &lt;esjeon@hyunmu.am> +* Laslo Hunhold - &lt;dev@frign.de> (6.1 port) +* Thomas Oltmann - &lt;thomas.oltmann.hhg@gmail.com> (20180613-b69c870 port) diff --git a/dwm.suckless.org/patches/alwaysfullscreen/index.md b/dwm.suckless.org/patches/alwaysfullscreen/index.md @@ -3,18 +3,15 @@ alwaysfullscreen Description ----------- - -Do not allow the focus to drift from the active fullscreen client when -using focusstack(). +Do not allow the focus to drift from the active fullscreen client when using +focusstack(). Download -------- - * [dwm-alwaysfullscreen-6.1.diff](dwm-alwaysfullscreen-6.1.diff) * [dwm-alwaysfullscreen-20160713-56a31dc.diff](dwm-alwaysfullscreen-20160713-56a31dc.diff) Authors ------- - -* Chris Down - <chris@chrisdown.name> -* Laslo Hunhold - <dev@frign.de> (6.1, git ports) +* Chris Down - &lt;chris@chrisdown.name> +* Laslo Hunhold - &lt;dev@frign.de> (6.1, git ports) diff --git a/dwm.suckless.org/patches/attachabove/index.md b/dwm.suckless.org/patches/attachabove/index.md @@ -3,13 +3,11 @@ attachabove Description ----------- - Make new clients attach above the selected client, instead of always becoming the new master. This behaviour is known from Xmonad. Download -------- - * [dwm-attachabove-6.0.diff](dwm-attachabove-6.0.diff) * [dwm-attachabove-6.1.diff](dwm-attachabove-6.1.diff) * [dwm-attachabove-20160713-56a31dc.diff](dwm-attachabove-20160713-56a31dc.diff) @@ -17,7 +15,6 @@ Download Authors ------- - * Mate Nagy - <mnagy@port70.net> * Jan Christoph Ebersbach - <jceb@e-jc.de> (6.0, 6.1 ports) * Laslo Hunhold - <dev@frign.de> (git port) diff --git a/dwm.suckless.org/patches/attachaside/index.md b/dwm.suckless.org/patches/attachaside/index.md @@ -3,9 +3,8 @@ attachaside Description ----------- - -Make new clients get attached and focused in the stacking -area instead of always becoming the new master. It's basically an +Make new clients get attached and focused in the stacking area instead of +always becoming the new master. It's basically an [attachabove](../attachabove/) modification. Original behaviour : @@ -44,7 +43,6 @@ area instead of always becoming the new master. It's basically an Download -------- - * [dwm-attachaside-6.1.diff](dwm-attachaside-6.1.diff) * [dwm-attachaside-20160718-56a31dc.diff](dwm-attachaside-20160718-56a31dc.diff) * [dwm-attachaside-20180126-db22360.diff](dwm-attachaside-20180126-db22360.diff) @@ -52,7 +50,6 @@ Download Authors ------- - * Jerome Andrieux - <jerome@gcu.info> * Chris Down - <chris@chrisdown.name> (6.1 port and fixes) * Laslo Hunhold - <dev@frign.de> (git port) diff --git a/dwm.suckless.org/patches/attachbottom/index.md b/dwm.suckless.org/patches/attachbottom/index.md @@ -3,17 +3,15 @@ attachbottom Description ----------- - New clients attach at the bottom of the stack instead of the top. -I find this to be the least obtrusive attachment behavior, since no existing clients are ever moved, only resized. +I find this to be the least obtrusive attachment behavior, since no existing +clients are ever moved, only resized. Download -------- - * [dwm-attachbottom-6.1.diff](dwm-attachbottom-6.1.diff) Authors ------- - * Marshall Mason - `<marshallmason2@gmail.com>` diff --git a/dwm.suckless.org/patches/autoresize/index.md b/dwm.suckless.org/patches/autoresize/index.md @@ -3,19 +3,16 @@ autoresize Description ----------- - -By default, windows that are not visible when requesting a resize/move -won't get resized/moved. With this patch, they will. +By default, windows that are not visible when requesting a resize/move won't +get resized/moved. With this patch, they will. Download -------- - * [dwm-autoresize-6.0.diff](dwm-autoresize-6.0.diff) * [dwm-autoresize-6.1.diff](dwm-autoresize-6.1.diff) * [dwm-autoresize-20160718-56a31dc.diff](dwm-autoresize-20160718-56a31dc.diff) Authors ------- - * Stefan Mark - <0mark@unserver.de> * Laslo Hunhold - <dev@frign.de> (6.1, git ports) diff --git a/dwm.suckless.org/patches/autostart/index.md b/dwm.suckless.org/patches/autostart/index.md @@ -3,22 +3,19 @@ autostart Description ----------- - -This patch will make dwm run "~/.dwm/autostart_blocking.sh" and +This patch will make dwm run "~/.dwm/autostart\_blocking.sh" and "~/.dwm/autostart.sh &" before entering the handler loop. One or both of these files can be ommited. -Be aware that dwm will not startup as long as autostart_blocking.sh is running +Be aware that dwm will not startup as long as autostart\_blocking.sh is running and will stay completely unresponsive. For obvious reasons it is generally a bad idea to start X-applications here :) Download -------- - * [dwm-autostart-20161205-bb3bd6f.diff](dwm-autostart-20161205-bb3bd6f.diff) Authors ------- - * Pulled from: [https://github.com/axelGschaider/dwm-patch-autostart.sh/](https://github.com/axelGschaider/dwm-patch-autostart.sh/) * Adapted to recent version Simon Bremer <simon.bremer@sys24.org> diff --git a/dwm.suckless.org/patches/bottomstack/index.md b/dwm.suckless.org/patches/bottomstack/index.md @@ -3,7 +3,6 @@ bottomstack Description ----------- - `bstack` and `bstackhoriz` are two stack layouts for dwm. bstack (TTT) bstackhoriz (===) @@ -20,12 +19,10 @@ Description Download -------- - * [dwm-bottomstack-6.1.diff](dwm-bottomstack-6.1.diff) * [dwm-bottomstack-20160719-56a31dc.diff](dwm-bottomstack-20160719-56a31dc.diff) Authors ------- - * Anselm R Garbe - <anselm@garbe.us> * Laslo Hunhold - <dev@frign.de> (6.1, git ports) diff --git a/dwm.suckless.org/patches/center/index.md b/dwm.suckless.org/patches/center/index.md @@ -3,18 +3,15 @@ center Description ----------- - Add an `iscentered` rule to automatically center clients on the current monitor. Download -------- - * [dwm-center-6.1.diff](dwm-center-6.1.diff) * [dwm-center-20160719-56a31dc.diff](dwm-center-20160719-56a31dc.diff) Authors ------- - * Chris Down - <chris@chrisdown.name> * Laslo Hunhold - <dev@frign.de> (git port) diff --git a/dwm.suckless.org/patches/centeredmaster/index.md b/dwm.suckless.org/patches/centeredmaster/index.md @@ -3,12 +3,11 @@ centeredmaster Description ----------- - `centeredmaster` and `centeredfloatingmaster` are two stack layouts for dwm. -`centeredmaster` centers the nmaster area on screen, using -`mfact * monitor width & height`, with the stacked windows -distributed to the left and right. It can be selected with [Alt]+[u]. +`centeredmaster` centers the nmaster area on screen, using `mfact * monitor +width & height`, with the stacked windows distributed to the left and right. It +can be selected with [Alt]+[u]. With one and two clients in master respectively this results in: @@ -25,9 +24,9 @@ With one and two clients in master respectively this results in: |+--------++--------++--------+| |+--------++--------++--------+| +------------------------------+ +------------------------------+ -`centeredfloatingmaster` centers the nmaster area on screen, using -`mfact * monitor width & height` over a horizontally tiled `stack` area, -comparable to a scratchpad. It can be selected with [Alt]+[o]. +`centeredfloatingmaster` centers the nmaster area on screen, using `mfact * +monitor width & height` over a horizontally tiled `stack` area, comparable to a +scratchpad. It can be selected with [Alt]+[o]. With one and two clients in master respectively this results in: @@ -44,20 +43,17 @@ With one and two clients in master respectively this results in: |+--------++--------++--------+| |+--------++--------++--------+| +------------------------------+ +------------------------------+ -These stack layouts can be useful on large screens, where `monocle` or -`htile` might be either too large or forcing the user to type in a corner -of the screen. -They allow for instance to center the editor while being able to keep an -eye on background processes (logs, tests,...) +These stack layouts can be useful on large screens, where `monocle` or `htile` +might be either too large or forcing the user to type in a corner of the +screen. They allow for instance to center the editor while being able to keep +an eye on background processes (logs, tests,...) Download -------- - * [dwm-centeredmaster-6.1.diff](dwm-centeredmaster-6.1.diff) * [dwm-centeredmaster-20160719-56a31dc.diff](dwm-centeredmaster-20160719-56a31dc.diff) Authors ------- - * [Jérôme Andrieux](http://blog.jardinmagique.info) - <jerome@gcu.info> * Laslo Hunhold - <dev@frign.de> (6.1, git ports) diff --git a/dwm.suckless.org/patches/centeredwindowname/index.md b/dwm.suckless.org/patches/centeredwindowname/index.md @@ -5,17 +5,14 @@ centeredwindowname Description ----------- - -A little patch to center the WM_NAME of the currently selected window on the status bar. +A little patch to center the WM\_NAME of the currently selected window on the +status bar. Download -------- - * [dwm-centeredwindowname-20180909-bd6efd8.diff](dwm-centeredwindowname-20180909-bd6efd8.diff) - Authors ------- - * Sacules - <leociancalucas@gmail.com> diff --git a/dwm.suckless.org/patches/cfacts/index.md b/dwm.suckless.org/patches/cfacts/index.md @@ -3,28 +3,24 @@ cfacts Description ----------- - -This patch provides the ability to assign different weights to -clients in their respective stack in tiled layout. It implements -a new function setcfact which will modify the cfact-value for the -currently selected client. It accepts the following values: - -* A positive float to increase a clients weight, thus increasing - the space the client is allocated in its current stack. - -* A negative float to decrease a clients weight, thus decreasing - the space the client is allocated in its current stack. - +This patch provides the ability to assign different weights to clients in their +respective stack in tiled layout. It implements a new function setcfact which +will modify the cfact-value for the currently selected client. It accepts the +following values: + +* A positive float to increase a clients weight, thus increasing the space the + client is allocated in its current stack. +* A negative float to decrease a clients weight, thus decreasing the space the + client is allocated in its current stack. * A zero-value float to reset a clients weight to default. -Default cfact-value for each client is 1.0. If a client is -assigned a cfact value of 0.5 it will be allocated half of the -space other clients would be allocated. If a client is assigned a -cfact value of 2.0 it will be allocated twice the space other -clients would be allocated. +Default cfact-value for each client is 1.0. If a client is assigned a cfact +value of 0.5 it will be allocated half of the space other clients would be +allocated. If a client is assigned a cfact value of 2.0 it will be allocated +twice the space other clients would be allocated. -The following illustrates the behavior. The clients cfact-values -are represented by floats inside the clients rectangles. +The following illustrates the behavior. The clients cfact-values are +represented by floats inside the clients rectangles. +---------------------+ | | 0.5 | @@ -38,7 +34,6 @@ are represented by floats inside the clients rectangles. Default key bindings -------------------- - Key Argument Description ----------------------------------- Mod-H +0.25 Increase cfact @@ -47,10 +42,8 @@ Default key bindings Download -------- - * [dwm-cfacts-6.1.diff](dwm-cfacts-6.1.diff) Author ------ - * Patrick Steinhardt (pks) <ps@pks.im> diff --git a/dwm.suckless.org/patches/clientspertag/index.md b/dwm.suckless.org/patches/clientspertag/index.md @@ -1,12 +1,12 @@ -# clients per tag - -## Description +clients per tag +=============== +Description +----------- This patch modifies the tile() layout to limit the maximum number of visible clients per tag. Out-of-limit windows are arranged behind the visible ones in the slave area. - +-----------------------+ +-----------------------+ | -1/3 | | 2/3 | +-----------+-----------+ +-----------+-----------+ @@ -20,8 +20,8 @@ in the slave area. +-----------+-----------+ +-----------+-----------+ cpt=-1 cpt=2 -## Usage - +Usage +----- 1. Download the patch and apply according to the [general instructions](.). 2. The patch adds two new keybindings (META-q/a) which set cpt to ^2 and ^3: @@ -39,10 +39,10 @@ will result on swapping between the defined value and -1. { MODKEY, XK_a, clientspertag, {.v="^3"} }, }; -## Download - +Download +-------- * [dwm-clientspertag-5.6.1.diff](dwm-clientspertag-5.6.1.diff) -## Maintainer - +Maintainer +---------- * pancake - <pancake@nopcode.org> diff --git a/dwm.suckless.org/patches/cmdcustomize/index.md b/dwm.suckless.org/patches/cmdcustomize/index.md @@ -3,8 +3,8 @@ customise dwm through command line Description ----------- - -Rebuilding dwm to change font or color can become annoying. This patch solves this problem allowing to set these parameters through command line +Rebuilding dwm to change font or color can become annoying. This patch solves +this problem allowing to set these parameters through command line New command line options look like the same in dmenu: @@ -21,10 +21,8 @@ New command line options look like the same in dmenu: Download -------- - * [dwm-cmdcustomize-20180504-3bd8466.diff](dwm-cmdcustomize-20180504-3bd8466.diff) Author ------ - * Platon Ryzhikov - <ihummer63@yandex.ru> diff --git a/dwm.suckless.org/patches/columns/index.md b/dwm.suckless.org/patches/columns/index.md @@ -3,11 +3,10 @@ columns Description ----------- - This patch adds an extra layout to dwm called `col` in which the windows in the -master area are arranged in colums of equal size. The number of columns is +master area are arranged in colums of equal size. The number of columns is always nmaster + 1, and the last column is a stack of leftover windows just -like the normal tile layout. It effectively acts like the default tiling mode, +like the normal tile layout. It effectively acts like the default tiling mode, except provides for vertical instead of horizontal master windows. Download diff --git a/dwm.suckless.org/patches/combo/index.md b/dwm.suckless.org/patches/combo/index.md @@ -1,18 +1,19 @@ combo ===== + Description ----------- -This patch tweaks the tagging interface so that you can select multiple tags -for tag or view by pressing all the right keys as a combo. For example to -view tags 1 and 3, hold MOD and then press and hold 1 and 3 together. +This patch tweaks the tagging interface so that you can select multiple tags +for tag or view by pressing all the right keys as a combo. For example to view +tags 1 and 3, hold MOD and then press and hold 1 and 3 together. This makes selecting multiple tags very easy and fluid. Applying -------- -The patch adds two functions that you have to know about: combotag and -comboview. Replace the tag and view functions with these in TAGKEYS and any -other places you want. combotag and comboview are totally compatible with tag +The patch adds two functions that you have to know about: combotag and +comboview. Replace the tag and view functions with these in TAGKEYS and any +other places you want. combotag and comboview are totally compatible with tag and view so you could replace all usages if you wanted. Download @@ -27,4 +28,5 @@ Author * Wolf Tivy - wolf at tivy dot com. * Dan McNair - cosfx at h0v3 dot net (mechanical update to 6.0) -* Matthew Boswell - mordervomubel+suckless at lockmail dot us (mechanical update to 6.1) +* Matthew Boswell - mordervomubel+suckless at lockmail dot us (mechanical + update to 6.1) diff --git a/dwm.suckless.org/patches/cropwindows/index.md b/dwm.suckless.org/patches/cropwindows/index.md @@ -3,14 +3,12 @@ cropwindows Description ----------- - -Create cropped views of existing windows to display only part of them, typically -to reclaim screen space from badly framed videos or programs and websites with -terrible designs. +Create cropped views of existing windows to display only part of them, +typically to reclaim screen space from badly framed videos or programs and +websites with terrible designs. Usage ----- - Look at the changes made to `config.def.h`: pass `1` to `resizemouse` to create a cropped window and to `movemouse` to move the underlying window in the crop. @@ -23,12 +21,10 @@ its original size and state. Download -------- - * [dwm-cropwindows-20170709-ceac8c9.diff](dwm-cropwindows-20170709-ceac8c9.diff) Notes ----- - * tested with a limited set of clients and use-cases, some X11 events are probably not passed or handled correctly, report bugs if you see any, * known bug: if you crop a window at the same time another window is unmapped, @@ -38,5 +34,4 @@ Notes Authors ------- - * Ivan Delalande <colona@ycc.fr> diff --git a/dwm.suckless.org/patches/current_desktop/index.md b/dwm.suckless.org/patches/current_desktop/index.md @@ -1,15 +1,17 @@ -# current_desktop - -## Description - -Sets \_NET\_NUMBER\_OF\_DESKTOPS and \_NET\_CURRENT\_DESKTOP on root to appropriate -values. Note that 'appropriate' for these values don't make sense as xprop --root output, since dwm uses them at bitwise but xprop displays them in base -ten. In other words, if you have 4 desktops, \_NET\_NUMBER\_OF\_DESKTOPS is actualy -0b1111 but xprop displays this as 15. I'm ok with this, because the end-user -(program, script, w/e) can always parse this appropriately. The same goes for -\_NET\_CURRENT\_DESKTOP: if you have desktops 1 and 3 selected, the value is -0b1010, but xprop shows this as 10. This isn't a problem. +current\_desktop +================ + +Description +----------- +Sets \_NET\_NUMBER\_OF\_DESKTOPS and \_NET\_CURRENT\_DESKTOP on root to +appropriate values. Note that 'appropriate' for these values don't make sense +as xprop -root output, since dwm uses them at bitwise but xprop displays them +in base ten. In other words, if you have 4 desktops, +\_NET\_NUMBER\_OF\_DESKTOPS is actualy 0b1111 but xprop displays this as 15. +I'm ok with this, because the end-user (program, script, w/e) can always parse +this appropriately. The same goes for \_NET\_CURRENT\_DESKTOP: if you have +desktops 1 and 3 selected, the value is 0b1010, but xprop shows this as 10. +This isn't a problem. I should note that in this case, \_NET\_NUMBER\_OF\_DESKTOPS does not exactly conform to EWMH specifications: in reality, there are many more 'desktops' than @@ -21,10 +23,10 @@ I wrote this patch mainly for myself, as I have a script for tabbed that uses it (I will upload this later). I am open to feedback/contstructive criticism. Email is at the bottom. -## Download - -* [dwm-current_desktop-5.8.2.diff](dwm-current_desktop-5.8.2.diff) (dwm 2010604) - -## Author +Download +-------- +* [dwm-current\_desktop-5.8.2.diff](dwm-current_desktop-5.8.2.diff) (dwm 2010604) +Author +------ * Wolfgang S. - ezzieyguywuf at gmail period com diff --git a/dwm.suckless.org/patches/cyclelayouts/index.md b/dwm.suckless.org/patches/cyclelayouts/index.md @@ -1,23 +1,23 @@ -# cyclelayouts - -## Description +cyclelayouts +============ +Description +----------- Cycles through all avaiable layouts using MOD-CTRL-, and MOD-CTRL-. -This adds a "NULL, NULL" layout at the end of the list, which should always be the last layout in your list. +This adds a "NULL, NULL" layout at the end of the list, which should always be +the last layout in your list. This is probably only "useful" if you are using a lot of layouts. -Inspired by this post: - -https://bbs.archlinux.org/viewtopic.php?id=103402 +Inspired by [this post](https://bbs.archlinux.org/viewtopic.php?id=103402). Hopefully whoever wanted this sees it and no longer has to duplicate functions. -## Download - +Download +-------- * [dwm-cyclelayouts-20180524-a09e766.diff](dwm-cyclelayouts-20180524-a09e766.diff) (24.05.2018) -## Author - +Author +------ * cd diff --git a/dwm.suckless.org/patches/deck/index.md b/dwm.suckless.org/patches/deck/index.md @@ -3,8 +3,10 @@ deck layout Description ----------- -`deck` is a new layout for DWM (inspired by the TTWM window manager). It is like tile(), but with monocle in the stack. You have a master client (complete with nmaster et all), but the stack clients now overlap one another as in monocle(). (The stacked clients are like a deck of cards, hence the name). - +`deck` is a new layout for DWM (inspired by the TTWM window manager). It is +like tile(), but with monocle in the stack. You have a master client (complete +with nmaster et all), but the stack clients now overlap one another as in +monocle(). (The stacked clients are like a deck of cards, hence the name). Tile : +-----------------+--------+ @@ -17,7 +19,6 @@ Description | | | +-----------------+--------+ - Deck : +-----------------+--------+ | | | @@ -34,7 +35,6 @@ Download * [dwm-deck-6.0.diff](dwm-deck-6.0.diff) * [dwm-deck-20170909-ceac8c9.diff](dwm-deck-20170909-ceac8c9.diff) - Author ------ * Jente Hidskes - `<jthidskes at outlook dot com>` diff --git a/dwm.suckless.org/patches/defaulttransparency/index.md b/dwm.suckless.org/patches/defaulttransparency/index.md @@ -1,7 +1,8 @@ -# defaulttransparency - -## Description +defaulttransparency +=================== +Description +----------- This patch adds a default transparency parameter to config.h, which specifies the transparency, all windows are started with. @@ -13,12 +14,12 @@ Additionally it adds some shortcuts: It is based on the transparency patch of Stefan Mark. -## Download - +Download +-------- * [dwm-defaulttransparency-r1521.diff](dwm-defaulttransparency-r1521.diff) latest patch (against r1521) -## Author - +Author +------ * Christoph Lohmann - <20h@r-36.net> diff --git a/dwm.suckless.org/patches/dualstatus/index.md b/dwm.suckless.org/patches/dualstatus/index.md @@ -3,20 +3,20 @@ dualstatus Description ----------- -This patch will enable an extra status bar in dwm. The extra bar can be toggled along with the standard bar or independently. +This patch will enable an extra status bar in dwm. The extra bar can be toggled +along with the standard bar or independently. The status bar text can be set as follows: -xsetroot -name "top text;bottom text" + + xsetroot -name "top text;bottom text" Download -------- - * [dwm-dualstatus-6.1.diff](dwm-dualstatus-6.1.diff) (4683b) (20151110) * [dwm-dualstatus-6.0.diff](dwm-dualstatus-6.0.diff) (4794b) (20130908) Screenshot ---------- - a simple dual status bar ![alt text](dwm-dualstatus.png) diff --git a/dwm.suckless.org/patches/dwmfifo/index.md b/dwm.suckless.org/patches/dwmfifo/index.md @@ -3,12 +3,10 @@ dwmfifo Description ----------- - -This patch adds support for using a command/control FIFO for -dwm. I've added commands that map 1-1 with the existing keybind -actions. You can use this patch to script dwm. As an example the -following sequence of commands starts 2 terminals on each of the -2 monitors. +This patch adds support for using a command/control FIFO for dwm. I've added +commands that map 1-1 with the existing keybind actions. You can use this patch +to script dwm. As an example the following sequence of commands starts 2 +terminals on each of the 2 monitors. echo term > /tmp/dwm.fifo sleep 0.5 @@ -20,19 +18,16 @@ following sequence of commands starts 2 terminals on each of the sleep 0.5 echo term > /tmp/dwm.fifo -The sleep in between is currently needed to avoid buffering up -more than a single command. You may experiment with the actual -sleep value. +The sleep in between is currently needed to avoid buffering up more than a +single command. You may experiment with the actual sleep value. -Similarly you can modify your config.h and add more commands -that you may want to execute (like tabbed-surf or similar). +Similarly you can modify your config.h and add more commands that you may want +to execute (like tabbed-surf or similar). Download -------- - * [dwm-dwmfifo-6.1.diff](dwm-dwmfifo-6.1.diff) (6.9k) (29.01.2014) Author ------ - * sin - <sin@2f30.org> diff --git a/dwm.suckless.org/patches/emptyview/index.md b/dwm.suckless.org/patches/emptyview/index.md @@ -3,13 +3,15 @@ emptyview Description ----------- -I like my wallpapers. Also i found it kind of unintuitive that you can not toggle the last tag out of view. So i created a patch to allow no tag at all to be selected. +I like my wallpapers. Also i found it kind of unintuitive that you can not +toggle the last tag out of view. So i created a patch to allow no tag at all to +be selected. -With this patch, dwm will start with no tag selected. When you start a client with no tag rule and no tag selected, it gets opened in the first tag. +With this patch, dwm will start with no tag selected. When you start a client +with no tag rule and no tag selected, it gets opened in the first tag. Download -------- - * [dwm-emptyview-6.0.diff](dwm-emptyview-6.0.diff) (1753b) (20130330) Authors diff --git a/dwm.suckless.org/patches/ewmhtags/index.md b/dwm.suckless.org/patches/ewmhtags/index.md @@ -3,10 +3,11 @@ ewmhtags Description ----------- -a 6.1 update and extension to [current desktop][1]. -adds EWMH support for \_NET\_NUMBER\_OF\_DESKTOPS, \_NET\_CURRENT\_DESKTOP, \_NET\_DESKTOP\_NAMES, -and \_NET\_DESKTOP\_VIEWPORT, which allows for compatibility with other bars and programs that request workspace information. -for example, [polybar's][2] xworkspaces module +a 6.1 update and extension to [current desktop](../current_desktop). adds EWMH +support for \_NET\_NUMBER\_OF\_DESKTOPS, \_NET\_CURRENT\_DESKTOP, +\_NET\_DESKTOP\_NAMES, and \_NET\_DESKTOP\_VIEWPORT, which allows for +compatibility with other bars and programs that request workspace information. +for example, [polybar's](http://github.com/jaagr/polybar) xworkspaces module Download -------- @@ -16,6 +17,3 @@ Download Authors ------- * Hank Latham - `<hank at hanklatham dot net>` - -[1]: ../current_desktop -[2]: http://github.com/jaagr/polybar diff --git a/dwm.suckless.org/patches/exresize/index.md b/dwm.suckless.org/patches/exresize/index.md @@ -3,22 +3,20 @@ exresize Description ----------- - -This allows the user to change size and placement of floating windows using only -the keyboard. It also allows for temporary vertical and horizontal extension of -windows similar to other WMs fill command. This patch is inspired by -[maximize](../maximize/) and [moveresize](../moveresize/) but fixes a lot of -problems I had with those patches. It also includes the functionality of -[save floats](../save_floats/) judging by it's description. +This allows the user to change size and placement of floating windows using +only the keyboard. It also allows for temporary vertical and horizontal +extension of windows similar to other WMs fill command. This patch is inspired +by [maximize](../maximize/) and [moveresize](../moveresize/) but fixes a lot of +problems I had with those patches. It also includes the functionality of [save +floats](../save_floats/) judging by it's description. Download -------- - -<!-- This patch used to say (20121117), but it doesn't build against commits - from that date. Author emailed. --> * [dwm-exresize-r1606.diff](dwm-exresize-r1606.diff) (Old patch, unknown version) +This patch used to say (20121117), but it doesn't build against commits from +that date. Author emailed. + Authors ------- - * Krister Svanlund - `<krister.svanlund@gmail.com>` diff --git a/dwm.suckless.org/patches/fakefullscreen/index.md b/dwm.suckless.org/patches/fakefullscreen/index.md @@ -3,15 +3,14 @@ fakefullscreen Description ----------- - -Only allow clients to "fullscreen" into space currently given to them. As an example, this will allow you to view a fullscreen video in your browser on one half of the screen, while having the other half available for other tasks. +Only allow clients to "fullscreen" into space currently given to them. As an +example, this will allow you to view a fullscreen video in your browser on one +half of the screen, while having the other half available for other tasks. Download -------- - * [dwm-fakefullscreen-20170508-ceac8c9.diff](dwm-fakefullscreen-20170508-ceac8c9.diff) Author ------ - * Jan Hendrik Farr - <farrjanhendrik@aol.de> diff --git a/dwm.suckless.org/patches/fancybar/index.md b/dwm.suckless.org/patches/fancybar/index.md @@ -1,19 +1,20 @@ -# fancybar - -## Description +fancybar +======== +Description +----------- This patch provides a status bar that shows the titles of all visible windows (as opposed to showing just the selected one). When the titles don't completely fit, they're cropped. The title of the selected window is inverted. -## Download - +Download +-------- * [dwm-fancybar-5.6.1.diff](dwm-fancybar-5.6.1.diff) * [dwm-fancybar-6.1.diff](dwm-fancybar-6.1.diff) * [dwm-fancybar-git-20160725-7af4d43.diff](dwm-fancybar-git-20160725-7af4d43.diff) -## Author - +Author +------ * Mate Nagy - <mnagy@port70.net> * [Jochen Sprickerhof](mailto:project@firstname.lastname.de) (rewrite) diff --git a/dwm.suckless.org/patches/fancybarclickable/index.md b/dwm.suckless.org/patches/fancybarclickable/index.md @@ -3,10 +3,10 @@ fancybarclickable Description ----------- -`fancybarclickable` is basically fancycoloredbarclickable -minus the [statuscolors](../statuscolors/). It uses the dwm bar to show you the -titles of all the windows in the current tag and lets you select windows by -selecting their title in the dwm bar. +`fancybarclickable` is basically fancycoloredbarclickable minus the +[statuscolors](../statuscolors/). It uses the dwm bar to show you the titles of +all the windows in the current tag and lets you select windows by selecting +their title in the dwm bar. [![Screenshot](fancybarclickable.png)](fancybarclickable.png) diff --git a/dwm.suckless.org/patches/fibonacci/index.md b/dwm.suckless.org/patches/fibonacci/index.md @@ -1,7 +1,8 @@ -# fibonacci layouts - -## Description +fibonacci layouts +================= +Description +----------- This patch adds two new layouts (`spiral` and `dwindle`) that arranges all windows in Fibonacci tiles: The first window uses half the screen, the second the half of the remainder, etc. ASCII art and a real screenshot of the spiral @@ -18,12 +19,12 @@ arrangement can be seen below. +-----------+-----+-----+ +-----------+-----+-----+ spiral dwindle -## Usage - +Usage +----- 1. Download the patch and apply according to the [general instructions](.). 2. Include the `fibonacci.c` source file and add `spiral` and/or `dwindle` to - the `Layout` section of your `config.h` file. - Example from `config.default.h`: + the `Layout` section of your `config.h` file. Example from + `config.default.h`: #include "fibonacci.c" static Layout layout[] = { @@ -34,16 +35,14 @@ arrangement can be seen below. { "[\\]", dwindle }, }; -## Download - +Download +-------- * [dwm-fibonacci-5.8.2.diff](dwm-fibonacci-5.8.2.diff) -## Maintainer - +Maintainer +---------- * Niki Yoshiuchi - <aplusbi@gmail.com> -Joe Thornber's spiral tiling for [Xmonad][3] formed the inspiration for this -patch. Thanks to Jan Christoph Ebersbach for updating this patch for versions -4.5 to 4.9. - -[1]: http://www.xmonad.org +Joe Thornber's spiral tiling for [Xmonad](http://www.xmonad.org) formed the +inspiration for this patch. Thanks to Jan Christoph Ebersbach for updating this +patch for versions 4.5 to 4.9. diff --git a/dwm.suckless.org/patches/flextile/index.md b/dwm.suckless.org/patches/flextile/index.md @@ -1,17 +1,21 @@ -# flextile layout +flextile layout +=============== -## Description - -This patch replaces the `tile` layout with a more flexible version. The features include the following: +Description +----------- +This patch replaces the `tile` layout with a more flexible version. The +features include the following: * tile like the original version (left single master, right stack) -* left/right/top/bottom n-master, right/left/bottom/top/no stack/deck (deck is like `monocle` in the stack area) +* left/right/top/bottom n-master, right/left/bottom/top/no stack/deck (deck is + like `monocle` in the stack area) * per-tag configuration It therefore provides the following additional possibilities: * `tile` for left-handed people -* compare multiple files with one other each at a time without switching between views +* compare multiple files with one other each at a time without switching + between views The patch incorporates and expands the following patches: @@ -19,49 +23,54 @@ The patch incorporates and expands the following patches: * nmaster * pertag - -## Configuration - -1. Download the patch and apply it according to the [general instructions](../). - -2. Transfer the changes made by the patch in `config.def.h` to your `config.h`, if needed. - - /* tagging */ - ... - /* include(s) depending on the tags array */ - #include "flextile.h" - - /* layout(s) */ - static const int layoutaxis[] = { - 1, /* layout axis: 1 = x, 2 = y; negative values mirror the layout, setting the master area to the right / bottom instead of left / top */ - 2, /* master axis: 1 = x (from left to right), 2 = y (from top to bottom), 3 = z (monocle) */ - 2, /* stack axis: 1 = x (from left to right), 2 = y (from top to bottom), 3 = z (monocle) */ - }; - static const unsigned int mastersplit = 1; /* number of tiled clients in the master area */ - - static Key keys[] = { - ... - { MODKEY|ControlMask, XK_t, rotatelayoutaxis, {.i = 0} }, /* 0 = layout axis */ - { MODKEY|ControlMask, XK_Tab, rotatelayoutaxis, {.i = 1} }, /* 1 = master axis */ - { MODKEY|ControlMask|ShiftMask, XK_Tab, rotatelayoutaxis, {.i = 2} }, /* 2 = stack axis */ - { MODKEY|ControlMask, XK_Return, mirrorlayout, {0} }, - { MODKEY|ControlMask, XK_j, shiftmastersplit, {.i = -1} }, /* reduce the number of tiled clients in the master area */ - { MODKEY|ControlMask, XK_k, shiftmastersplit, {.i = +1} }, /* increase the number of tiled clients in the master area */ - - -## Usage - -With the default configuration (see above) the original tile layout is emulated. You can change the layout by adjusting the four parameters `layout axis`, `master axis`, `stack axis` and `master split` (description see above) by pressing the appropriate keys. -The original `tile` layout is only available by setting the above parameters, but not as a discrete layout; the `monocle` layout is still available by pressing `ALT+m` (in the default configuration). - - -## Download - +Configuration +------------- +1. Download the patch and apply it according to the + [general instructions](../). + +2. Transfer the changes made by the patch in `config.def.h` to your `config.h`, + if needed. + + /* tagging */ + ... + /* include(s) depending on the tags array */ + #include "flextile.h" + + /* layout(s) */ + static const int layoutaxis[] = { + 1, /* layout axis: 1 = x, 2 = y; negative values mirror the layout, setting the master area to the right / bottom instead of left / top */ + 2, /* master axis: 1 = x (from left to right), 2 = y (from top to bottom), 3 = z (monocle) */ + 2, /* stack axis: 1 = x (from left to right), 2 = y (from top to bottom), 3 = z (monocle) */ + }; + static const unsigned int mastersplit = 1; /* number of tiled clients in the master area */ + + static Key keys[] = { + ... + { MODKEY|ControlMask, XK_t, rotatelayoutaxis, {.i = 0} }, /* 0 = layout axis */ + { MODKEY|ControlMask, XK_Tab, rotatelayoutaxis, {.i = 1} }, /* 1 = master axis */ + { MODKEY|ControlMask|ShiftMask, XK_Tab, rotatelayoutaxis, {.i = 2} }, /* 2 = stack axis */ + { MODKEY|ControlMask, XK_Return, mirrorlayout, {0} }, + { MODKEY|ControlMask, XK_j, shiftmastersplit, {.i = -1} }, /* reduce the number of tiled clients in the master area */ + { MODKEY|ControlMask, XK_k, shiftmastersplit, {.i = +1} }, /* increase the number of tiled clients in the master area */ + + +Usage +----- +With the default configuration (see above) the original tile layout is +emulated. You can change the layout by adjusting the four parameters `layout +axis`, `master axis`, `stack axis` and `master split` (description see above) +by pressing the appropriate keys. + +The original `tile` layout is only available by setting the above parameters, +but not as a discrete layout; the `monocle` layout is still available by +pressing `ALT+m` (in the default configuration). + +Download +-------- * [dwm-flextile-5.8.2.diff][dwm-flextile-5.8.2.diff] * [dwm-flextile-5.8.1.diff][dwm-flextile-5.8.1.diff] -## Authors - -joten (at) freenet (dot) de - -mail at pascal-wittmann dot de +Authors +------- +* joten (at) freenet (dot) de +* mail at pascal-wittmann dot de diff --git a/dwm.suckless.org/patches/float_border_color/index.md b/dwm.suckless.org/patches/float_border_color/index.md @@ -1,13 +1,17 @@ -# float border color +float border color +================== -## Description +Description +----------- This patch allows you to specify a different border color for floating windows. -## Download -* [dwm-float_border_color2-20160731-56a31dc.diff](dwm-float_border_color2-20160731-56a31dc.diff) -* [dwm-float_border_color-6.1.diff](dwm-float_border_color-6.1.diff) (Unclean patch) -* [dwm-float_border_color-6.0.diff](dwm-float_border_color-6.0.diff) +Download +-------- +* [dwm-float\_border\_color2-20160731-56a31dc.diff](dwm-float_border_color2-20160731-56a31dc.diff) +* [dwm-float\_border\_color-6.1.diff](dwm-float_border_color-6.1.diff) (Unclean patch) +* [dwm-float\_border\_color-6.0.diff](dwm-float_border_color-6.0.diff) -## Author +Author +------ * Message-ID: <20070626093131.GA5005@shota.mine.nu> * Updated by Jan Christoph Ebersbach - <jceb@e-jc.de> diff --git a/dwm.suckless.org/patches/focusadjacenttag/index.md b/dwm.suckless.org/patches/focusadjacenttag/index.md @@ -3,14 +3,12 @@ focus adjacent tag Description ----------- - This patch provides the ability to focus the tag on the immediate left or right of the currently focused tag. It also allows to send the focused window either on the left or the right tag. Default key bindings -------------------- - Key Description -------------------------------------------------------------------- Mod-Left Focus tag on the left, if any. @@ -20,9 +18,8 @@ Default key bindings Download -------- - -<!-- Author emailed about this issue already --> -* [dwm-focusadjacenttag-6.0.diff](dwm-focusadjacenttag-6.0.diff) (Unclean patch) +* [dwm-focusadjacenttag-6.0.diff](dwm-focusadjacenttag-6.0.diff) + (Unclean patch, Author emailed about this issue already) Authors ------- diff --git a/dwm.suckless.org/patches/focusonclick/index.md b/dwm.suckless.org/patches/focusonclick/index.md @@ -1,20 +1,21 @@ -# focusonclick - -## Description +focusonclick +------------ +Description +----------- * Switch focus only by mouse click and not sloppy. -## Download - +Download +-------- * [dwm-focusonclick-20171030-6aa8e37.diff](dwm-focusonclick-20171030-6aa8e37.diff) (2017-10-17) * [dwm-focusonclick-bb3bd6f.diff](dwm-focusonclick-bb3bd6f.diff) (2017-01-04) * [dwm-focusonclick-6.0.diff](dwm-focusonclick-6.0.diff) (2012-11-24) * [dwm-focusonclick-git-20100321.diff](dwm-focusonclick-git-20100321.diff) -## Author - +Author +------ * Wolfgang S. - ezzieyguywuf at gmail . com (added 6aa8e37 patch fix) -* Markus P. - peters_mops at arcor . de +* Markus P. - peters\_mops at arcor . de * Eric Pruitt - added option to disable focus changing with the scroll wheel * [Alessandro Di Martino][http://alessandrodimartino.com/] - Maintainer of the 6.0 version. * Markus Teich - Update and fix diff --git a/dwm.suckless.org/patches/focusonnetactive/index.md b/dwm.suckless.org/patches/focusonnetactive/index.md @@ -1,26 +1,28 @@ -# focusonnetactive +focusonnetactive +================ -## Description - -By default, dwm response to client requests to _NET_ACTIVE_WINDOW client +Description +----------- +By default, dwm response to client requests to \_NET\_ACTIVE\_WINDOW client messages by setting the urgency bit on the named window. This patch activates the window instead. -Both behaviours are legitimate according to the [curséd spec](https://specifications.freedesktop.org/wm-spec/wm-spec-latest.html#idm140200472702304) +Both behaviours are legitimate according to the +[cursed spec](https://specifications.freedesktop.org/wm-spec/wm-spec-latest.html#idm140200472702304) One should decide which of these one should perform based on the message -senders' untestable claims that it represents the end-user. Setting the -urgency bit is the conservative decision. This patch implements the more -trusting alternative. +senders' untestable claims that it represents the end-user. Setting the urgency +bit is the conservative decision. This patch implements the more trusting +alternative. It also allows dwm to work with `wmctrl -a` and other external window management utilities. -## Download - +Download +-------- * [dwm-focusonnetactive-2017-12-24-3756f7f.diff](dwm-focusonnetactive-2017-12-24-3756f7f.diff) -## Author - -* [Danny O'Brien](http://www.spesh.com/danny/) <danny@spesh.com> +Author +------ +* [Danny O'Brien](http://www.spesh.com/danny/) &lt;danny@spesh.com> diff --git a/dwm.suckless.org/patches/focusurgent/index.md b/dwm.suckless.org/patches/focusurgent/index.md @@ -1,15 +1,16 @@ -# focusurgent - -## Description +focusurgent +=========== +Description +----------- * Selects the next window having the urgent flag regardless of the tag it is on * The urgent flag can be artificially set with the following xdotool command on any window: `xdotool selectwindow -- set_window --urgency 1` -## Download - +Download +-------- * [dwm-focusurgent-20160831-56a31dc.diff](dwm-focusurgent-20160831-56a31dc.diff) -## Author - +Author +------ * Jan Christoph Ebersbach <jceb@e-jc.de> diff --git a/dwm.suckless.org/patches/freespace/index.md b/dwm.suckless.org/patches/freespace/index.md @@ -3,8 +3,8 @@ freespace Description ----------- - -New variable panel[4] saves space at the borders of the screen for the external panel. +New variable panel[4] saves space at the borders of the screen for the external +panel. +----------------+-+ | | panel[0] | | @@ -16,19 +16,18 @@ New variable panel[4] saves space at the borders of the screen for the external | | panel[1] | | +----------------+-+ -In tiled and monocle layouts this space becomes borders of the windows; in floating layout windows attach to these borders +In tiled and monocle layouts this space becomes borders of the windows; in +floating layout windows attach to these borders Issue ----- - -When there is only one master window in tiled layout with panel[2] set not to zero its right border gets out of the screen +When there is only one master window in tiled layout with panel[2] set not to +zero its right border gets out of the screen Download -------- - * [dwm-freespace-20180109-db22360.diff](dwm-freespace-20180109-db22360.diff) Author ------ - * Platon Ryzhikov - <ihummer63@yandex.ru> diff --git a/dwm.suckless.org/patches/fsignal/index.md b/dwm.suckless.org/patches/fsignal/index.md @@ -1,9 +1,8 @@ fsignal -================ +======= Description ----------- - Send "fake signals" to dwm for handling, using xsetroot. This will not conflict with the status bar, which also is managed using xsetroot. @@ -12,7 +11,6 @@ applications. Usage ----- - A signal can be sent for example in this way `xsetroot -name "fsignal:1"` to send the signal '1'. @@ -37,10 +35,8 @@ This can then be triggered through dmenu with this script: Download -------- - * [dwm-fsignal-6.1.diff](dwm-fsignal-6.1.diff) Authors ------- - * Chris Noxz - <chris@noxz.tech> diff --git a/dwm.suckless.org/patches/gaplessgrid/index.md b/dwm.suckless.org/patches/gaplessgrid/index.md @@ -1,15 +1,15 @@ -# gapless grid layout - -## Description - -This patch is an altered [gridmode](../gridmode) layout for dwm, -which arranges the windows in a grid. -Instead of using a regular grid, which might leave empty cells when there are -not enough windows to fill the grid, it adjusts the number of windows in the -first few columns to avoid empty cells. - -## Usage - +gapless grid layout +=================== + +Description +----------- +This patch is an altered [gridmode](../gridmode) layout for dwm, which arranges +the windows in a grid. Instead of using a regular grid, which might leave empty +cells when there are not enough windows to fill the grid, it adjusts the number +of windows in the first few columns to avoid empty cells. + +Usage +----- Download `gaplessgrid.c` and add the gapless layout to your `config.h`: #include "gaplessgrid.c" @@ -24,8 +24,8 @@ Download `gaplessgrid.c` and add the gapless layout to your `config.h`: { MODKEY, XK_g, setlayout, {.v = &layouts[0] } }, ... -## Download - +Download +-------- * [dwm-gaplessgrid-20160731-56a31dc.diff](dwm-gaplessgrid-20160731-56a31dc.diff) * [dwm-gaplessgrid-6.1.diff](dwm-gaplessgrid-6.1.diff) (20140209) * [gaplessgrid.c](gaplessgrid.c) (dwm 5.6.1) (20090908) diff --git a/dwm.suckless.org/patches/gaps/index.md b/dwm.suckless.org/patches/gaps/index.md @@ -3,11 +3,11 @@ gaps Description ----------- - -This patch modifies the tile layout to add a gap between clients that helps to visually -differentiate between selected borders and normal borders and so provides an additional -visual hint to identify the currently selected client. OTOH, there's no gap between a -client and the screen frame in order to reduce the waste of screen space. +This patch modifies the tile layout to add a gap between clients that helps to +visually differentiate between selected borders and normal borders and so +provides an additional visual hint to identify the currently selected client. +OTOH, there's no gap between a client and the screen frame in order to reduce +the waste of screen space. To configure the gap size just set the configuration variable `gappx`. @@ -15,12 +15,9 @@ There is a variation of the patch for the [xtile](../xtile/) layout also. Download -------- - * For vanilla tile: [dwm-gaps-6.0.diff](dwm-gaps-6.0.diff) - * For xtile tile: [dwm-gaps-xtile-6.0.diff](dwm-gaps-xtile-6.0.diff) Author ------ - * Carlos Pita (memeplex) <carlosjosepita@gmail.com> diff --git a/dwm.suckless.org/patches/gestures/index.md b/dwm.suckless.org/patches/gestures/index.md @@ -3,13 +3,14 @@ gestures Description ----------- -`gestures` adds support for simple mouse gestures to dwm. The patch assumes make has been run -and adds a gestures array to config.h. A gesture can call any dwm function. I usually call spawn. +`gestures` adds support for simple mouse gestures to dwm. The patch assumes +make has been run and adds a gestures array to config.h. A gesture can call any +dwm function. I usually call spawn. Download -------- -<!-- Author email bounced (removed it), patch needs fixed --> -* [dwm-5.8-gestures.diff](dwm-5.8-gestures.diff) (Unclean patch) +* [dwm-5.8-gestures.diff](dwm-5.8-gestures.diff) (unclean patch, +Author email bounced (removed it), patch needs fixed) Author ------ diff --git a/dwm.suckless.org/patches/hide_vacant_tags/index.md b/dwm.suckless.org/patches/hide_vacant_tags/index.md @@ -3,27 +3,23 @@ hide vacant tags Description ----------- +This patch prevents dwm from drawing tags with no clients (i.e. vacant) on the +bar. -This patch prevents dwm from drawing tags with no clients -(i.e. vacant) on the bar. +It also makes sure that pressing a tag on the bar behaves accordingly by not +reserving reactive regions on the bar for vacant tags. -It also makes sure that pressing a tag on the bar behaves accordingly -by not reserving reactive regions on the bar for vacant tags. - -It also stops drawing empty rectangles on the bar for non-vacant -tags as there is no need anymore to distinguish vacant -tags and it offers a more visible contrast than if there were -filled/empty rectangles. +It also stops drawing empty rectangles on the bar for non-vacant tags as there +is no need anymore to distinguish vacant tags and it offers a more visible +contrast than if there were filled/empty rectangles. Download -------- - -* [dwm-hide_vacant_tags-6.1.diff](dwm-hide_vacant_tags-6.1.diff) - 2016-01-22 -* [dwm-hide_vacant_tags-git-20160626-7af4d43.diff](dwm-hide_vacant_tags-git-20160626-7af4d43.diff) +* [dwm-hide\_vacant\_tags-6.1.diff](dwm-hide_vacant_tags-6.1.diff) - 2016-01-22 +* [dwm-hide\_vacant\_tags-git-20160626-7af4d43.diff](dwm-hide_vacant_tags-git-20160626-7af4d43.diff) Author ------ - * [Ondřej Grover](mailto:ondrej.grover@gmail.com) * Matthew Boswell - mordervomubel+suckless at lockmail dot us (mechanical update for dwm 6.1 release) * [Jochen Sprickerhof](mailto:project@firstname.lastname.de) (hide 0 tagged clients) diff --git a/dwm.suckless.org/patches/historical/altmovefocus/index.md b/dwm.suckless.org/patches/historical/altmovefocus/index.md @@ -1,9 +1,13 @@ -ANOTHER FOCUS MOVING MODEL +Another focus moving model ========================== Description ----------- -When a single tag is displayed, calling view() or tag() with it as an argument is useless. This patch enables moving focus forward with view() calls and backward with tag() instead of doing nothing. Of course, those who toggle several tags at time or just have more than 3-4 tags won't benefit much from such behaviour. +When a single tag is displayed, calling view() or tag() with it as an argument +is useless. This patch enables moving focus forward with view() calls and +backward with tag() instead of doing nothing. Of course, those who toggle +several tags at time or just have more than 3-4 tags won't benefit much from +such behaviour. Download -------- diff --git a/dwm.suckless.org/patches/historical/ansistatuscolors/index.md b/dwm.suckless.org/patches/historical/ansistatuscolors/index.md @@ -1,24 +1,21 @@ -# AnsiStatusColors - colorize your status bar using ansi escape sequences# - -## Description - -Lets you put colored text in your status bar, but you don't have define them in your config.h. Instead, just put the ansi escape sequence in the output of your status bar script to print in color, as you would in a terminal. - -## Configuration - -get the patch from github: [https://gist.github.com/4054818](https://gist.github.com/4054818) - -apply it to dwm.c like so: - - patch -p1 dwm.c < ansistatuscolors.diff - -## Usage - +AnsiStatusColors +================ +Colorize your status bar using ansi escape sequences. + +Description +----------- +Lets you put colored text in your status bar, but you don't have define them in +your config.h. Instead, just put the ansi escape sequence in the output of your +status bar script to print in color, as you would in a terminal. + +Usage +----- Just like you'd use them for colorizing a shell script. -more info is here: [http://www.frexx.de/xterm-256-notes/](http://www.frexx.de/xterm-256-notes/) +More info is here: +[http://www.frexx.de/xterm-256-notes/](http://www.frexx.de/xterm-256-notes/) -an ansi escape sequence is in the form: +An ansi escape sequence is in the form: \e[<code>m @@ -28,7 +25,7 @@ where: [ - literal bracket m - literal 'm' -the code is one of the following: +The code is one of the following: 0 - reset colors to default @@ -55,10 +52,11 @@ the code is one of the following: 16-231 - xterm 256-color rgb color 232-255 - grayscale -in vim, to create a literal 'escape' character, type ctrl-v, esc. +In vim, to create a literal 'escape' character, type ctrl-v, esc. in perl/python/c, within a string literal, it's "\x1b". -### Example +Example +------- #!/usr/bin/env python ##testcoloredstatus.py @@ -88,14 +86,16 @@ in perl/python/c, within a string literal, it's "\x1b". ] )], shell=False) -### Screenshot -my battery is discharging and my wifi signal is iffy ... +Screenshot +---------- +My battery is discharging and my wifi signal is iffy... ![alt text](ansistatuscolors.png) -### Author -# Brandon Dowell <brandon DOT dowell AT gmail> - -github.com/la11111 +Download +-------- +* [ -holler if you find a bug, or make a patch to fix it! +Author +------ +* Brandon Dowell &lt;brandon DOT dowell AT gmail> diff --git a/dwm.suckless.org/patches/historical/bottom_stack/index.md b/dwm.suckless.org/patches/historical/bottom_stack/index.md @@ -1,4 +1,4 @@ -BOTTOM STACK +Bottom stack ============ Description @@ -20,7 +20,6 @@ and update the layouts and key bindings. Bottom Stack Tiling ------------------- - bstack (TTT) +-----------------+ | | diff --git a/dwm.suckless.org/patches/historical/color_status_bar/index.md b/dwm.suckless.org/patches/historical/color_status_bar/index.md @@ -1,35 +1,41 @@ -# COLOR STATUS BAR +color status bar +================ -## Description +Description +----------- +This patch adds some color to the status bar. It allows you to change the +colorset of text portions from "norm" to "sel" (and back) and to invert the +colorset (the foreground becomes the background color and vice versa). -This patch adds some color to the status bar. It allows you to change the colorset of text portions from "norm" to "sel" (and back) and to invert the colorset (the foreground becomes the background color and vice versa). - - -## Usage - -Download the patch and apply it according to the [general instructions](.). The patch will make the following changes: +Usage +----- +Download the patch and apply it according to the [general instructions](.). The +patch will make the following changes: * colorstatus.c: adding the file * dwm.c: adding the include-line for 'colorstatus.c' * dwm.c ('drawbar' function): adding the int-variable 'stextw' * dwm.c ('drawbar' function): changing the 'drawtext' section for stext +Configuration +------------- +The configuration is done in the file '.xinitrc', where you define the status +bar text. You can add the following tags: -## Configuration - -The configuration is done in the file '.xinitrc', where you define the status bar text. You can add the following tags: - -* '[c]' (without quotes): toggles the colorset (norm -> sel or sel -> norm depending on the currently selected colorset) -* '[i]' (without quotes): inverts the current colorset (fgcolor -> bgcolor and bgcolor -> fgcolor) - -The change is applied from the position of the tag onwards. To revert the change you have to set the same tag again. - -### Example -echo -e NEW mail: $mailnew \| VOL front: $audiofront \| BAT:[i]$batpercent[i]\| CPU: $cpuavgload \| $datestr[c]$timestr +* '[c]' (without quotes): toggles the colorset (norm -> sel or sel -> norm + depending on the currently selected colorset) +* '[i]' (without quotes): inverts the current colorset (fgcolor -> bgcolor and + bgcolor -> fgcolor) +The change is applied from the position of the tag onwards. To revert the +change you have to set the same tag again. -## Download +Example +------- + echo -e NEW mail: $mailnew \| VOL front: $audiofront \| BAT:[i]$batpercent[i]\| CPU: $cpuavgload \| $datestr[c]$timestr +Download +-------- * [dwm-5.2-colorstatus.diff](dwm-5.2-colorstatus.diff) (4.1k, 131 additional lines) (20081117) * [.xinitrc example](dwm-5.2-colorstatus.xinitrc) (0.8k) (20081117) diff --git a/dwm.suckless.org/patches/historical/fibonacci/index.md b/dwm.suckless.org/patches/historical/fibonacci/index.md @@ -1,7 +1,8 @@ -# FIBONACCI LAYOUTS - -## Description +fibonacci layouts +================= +Description +----------- This patch adds two new layouts (`spiral` and `dwindle`) that arranges all windows in Fibonacci tiles: The first window uses half the screen, the second the half of the remainder, etc. ASCII art and a real screenshot of the spiral @@ -22,32 +23,31 @@ arrangement can be seen below. *Links2, sic, xterm & xclock in spiral layout.* -## Usage - +Usage +----- 1. Download the patch and apply according to the [general instructions](.). 2. Include the `fibonacci.c` source file and add `spiral` and/or `dwindle` to the `Layout` section of your `config.h` file. Example from `config.default.h`: - #include "fibonacci.c" - static Layout layout[] = { \ - /* symbol function */ \ - { "[]=", tile }, /* first entry is default */ \ - { "><>", floating }, \ - { "(@)", spiral }, \ - { "[\\]", dwindle }, \ - }; - -## Download - + #include "fibonacci.c" + static Layout layout[] = { \ + /* symbol function */ \ + { "[]=", tile }, /* first entry is default */ \ + { "><>", floating }, \ + { "(@)", spiral }, \ + { "[\\]", dwindle }, \ + }; + +Download +-------- * [dwm-5.2-fibonacci.diff](http://www.aplusbi.com/dwm/dwm-5.2-fibonacci.diff) (1.9k) (20081003) * [dwm-5.1-fibonacci.diff](http://schot.a-eskwadraat.nl/files/dwm-5.1-fibonacci.diff) (1.9k) (20080731) -## Author - +Author +------ * Jeroen Schot - <schot@a-eskwadraat.nl> -Joe Thornber's spiral tiling for [Xmonad](http://www.xmonad.org) -formed the inspiration for this patch. Thanks to Jan Christoph -Ebersbach for updating this patch for versions -4.5 to 4.9. +Joe Thornber's spiral tiling for [Xmonad](http://www.xmonad.org) formed the +inspiration for this patch. Thanks to Jan Christoph Ebersbach for updating this +patch for versions 4.5 to 4.9. diff --git a/dwm.suckless.org/patches/historical/focusatom/index.md b/dwm.suckless.org/patches/historical/focusatom/index.md @@ -1,14 +1,15 @@ -# FOCUS SETTING ATOM - -## Description +focus setting atom +================== +Description +----------- With this patch, dwm monitors the content of the `_DWM_FOCUS` property in the root window (a 32-bit cardinal) and sets the focus accordingly, selecting the client tags and monitor if needed. -## Usage - -After patching, you can use a modified verwion of lsw to print the window id: +Usage +----- +After patching, you can use a modified version of lsw to print the window id: diff -up lsw-0.1/lsw.c lsw.new/lsw.c --- lsw-0.1/lsw.c 2006-10-13 11:09:18.000000000 +0200 @@ -28,17 +29,16 @@ And then call dmenu to choose a window by title, xprop to set it: win="$(lsw | grep -v ^\<unknown\> | dmenu | awk '{print $NF}')" test $win && xprop -root -f _DWM_FOCUS 32c -set _DWM_FOCUS $win -## Notes - +Notes +----- * May not be extremely portable * You can now use this with mainline lsw by using the -l parameter -* This patch is now historical since dwm supports _NET_ACTIVE_WINDOW - -## Download +* This patch is now historical since dwm supports \_NET\_ACTIVE\_WINDOW +Download +-------- * [dwm-r1507-focusatom.diff](dwm-r1507-focusatom.diff) (2057 bytes) (20100226) -## Author - +Author +------ * Rafael Garcia - <rafael.garcia.gallego@gmail.com> - diff --git a/dwm.suckless.org/patches/historical/gridmode/index.md b/dwm.suckless.org/patches/historical/gridmode/index.md @@ -1,21 +1,24 @@ -# gridmode - -## Description - -This patch adds an extra layout mode to dwm called `grid` in which -the windows are arranged in a grid of windows of equal sizes. It -comes very in handy especially with tools that operate on multiple -windows at once such Cluster SSH. - -## Usage - +gridmode +======== + +Description +----------- +This patch adds an extra layout mode to dwm called `grid` in which the windows +are arranged in a grid of windows of equal sizes. It comes very in handy +especially with tools that operate on multiple windows at once such Cluster +SSH. + +Usage +----- Add a grid-symbol to your `config.h` file. -## Screenshots +Screenshots +----------- +[Grid mode](http://dwm.slax.no-ip.biz/dwm4.3.png) (it also includes a minor +patch to make dwm more colourful :D) -[Grid mode](http://dwm.slax.no-ip.biz/dwm4.3.png) (it also includes a minor patch to make dwm more colourful :D) - -## Download +Download +-------- * [dwm-5.2-gridmode.diff](http://www.v4hn.de/patches/dwm-5.2-gridmode.diff) * [dwm-4.4.1-gridmode.diff](http://schot.a-eskwadraat.nl/files/dwm-4.4.1-gridmode.diff) * [dwm-4.3-gridmode.diff](http://dwm.slax.no-ip.biz/dwm-4.3-gridmode.diff) @@ -23,14 +26,15 @@ Add a grid-symbol to your `config.h` file. * [dwm-3.9-gridmode.diff](http://dwm.slax.no-ip.biz/dwm-3.9-gridmode.diff) * [dwm-3.8-gridmode.diff](http://dwm.slax.no-ip.biz/dwm-3.8-gridmode.diff) -## Author - +Author +------ * Alexandru E. Ungur <grid@rb.no-ip.biz> * Updated by Jan Christoph Ebersbach - <jceb@e-jc.de> * Updated to 5.2 & small fix by V4hn - v4hn.de Feedback is more than welcome :-) -## Acknowledgments - -The patch would look a lot uglier without Jukka Salmi's constant help. Thanks Jukka :-) +Acknowledgments +--------------- +The patch would look a lot uglier without Jukka Salmi's constant help. Thanks +Jukka :-) diff --git a/dwm.suckless.org/patches/historical/mouseontitle/index.md b/dwm.suckless.org/patches/historical/mouseontitle/index.md @@ -1,34 +1,32 @@ Mouse events on titlE ===================== - Last update: 2009-12-11 -Adds mouse events on the title bar to switch between clients using -the mouse wheel and using the left click to zoom, right click kill -and middle click for toggling the floating. +Adds mouse events on the title bar to switch between clients using the mouse +wheel and using the left click to zoom, right click kill and middle click for +toggling the floating. This way you can easily manage tiled clients with the mouse. The right click on the layout area maximizes the client. -If you are using the nmaster patch you will be able to change the nmaster -value using the mouse wheel. +If you are using the nmaster patch you will be able to change the nmaster value +using the mouse wheel. Change the mwfact using the wheel at x=0 placing the cursor inside the bar. Notes ----- -Last versions of dwm (5.x series) allow to bind mouse events to actions, -so this patch can be replaced by a proper config.h tweak. +Last versions of dwm (5.x series) allow to bind mouse events to actions, so +this patch can be replaced by a proper config.h tweak. Patch ----- - -Patch for [dwm 4.6](http://www.lolcathost.org/b/dwm/mouseontitle-4.6.diff) is here. +Patch for [dwm 4.6](http://www.lolcathost.org/b/dwm/mouseontitle-4.6.diff) is +here. See in event.c at function 'buttonpress()' to patch older dwm releases. Author ------ - -* pancake &lt;youterm.com&gt; +* pancake <youterm.com> diff --git a/dwm.suckless.org/patches/historical/movestack/index.md b/dwm.suckless.org/patches/historical/movestack/index.md @@ -1,30 +1,33 @@ -# movestack - -## Description +movestack +========== +Description +----------- This plugin allows you to move clients around in the stack and swap them with -the master. It emulates the behavior off mod+shift+j and mod+shift+k in Xmonad. +the master. It emulates the behavior off mod+shift+j and mod+shift+k in Xmonad. movestack(+1) will swap the client with the current focus with the next client. -movestack(-1) will swap the client with the current focus with the previous client. - -## Usage +movestack(-1) will swap the client with the current focus with the previous +client. -1. Download the patch and apply according to the [general instructions](.). +Usage +----- +1. Download the patch and apply according to the [general instructions](//hacking/). 2. Include the `movestack.c` source file and add keys that call movestack. Example from `config.default.h`: - #include "movestack.c" - static Key keys[] = { - /* modifier key function argument */ - ... - { MODKEY|ShiftMask, XK_j, movestack, {.i = +1 } }, - { MODKEY|ShiftMask, XK_k, movestack, {.i = -1 } }, - ... - -## Download - + #include "movestack.c" + static Key keys[] = { + /* modifier key function argument */ + ... + { MODKEY|ShiftMask, XK_j, movestack, {.i = +1 } }, + { MODKEY|ShiftMask, XK_k, movestack, {.i = -1 } }, + ... + }; + +Download +-------- * [dwm-5.2-movestack.diff](http://www.aplusbi.com/dwm/dwm-5.2-movestack.diff) (1.9k) (20081003) -## Author - +Author +------ * Niki Yoshiuchi - <aplusbi@gmail.com> diff --git a/dwm.suckless.org/patches/historical/multimon/index.md b/dwm.suckless.org/patches/historical/multimon/index.md @@ -1,61 +1,73 @@ multimon ======== -Last Updated: 2014-03-25 - Description ----------- - These patches provide enhancements for working in a multi-monitor environment. -* monitor marker +monitor marker: + * Adds a small token to the bar that displays the dwm monitor number. * The token has a mouse binding, just like the rest of the bar objects. -* unified view + +unified view: + * Provides two wrapper functions that work across all monitors simultaneously. * Can change/toggle the view for all monitors, creating a unified workspace. -* reset view - * Function and settings for a "default view", for checking on primary tasks which may have been shuffled out of view doing more focused work. + +reset view: + + * Function and settings for a "default view", for checking on primary tasks + which may have been shuffled out of view doing more focused work. * Per-monitor default settings for nmaster and tags. -* status all + +status all: + * Show/update the status on all bars. - * Based on [statusbar on all monitors](//dwm.suckless.org/patches/statusallmons), but uses a configurable boolean. + * Based on + [statusbar on all monitors](//dwm.suckless.org/patches/statusallmons), but + uses a configurable boolean. -Each can be applied independently, if desired, except for "reset view" which references "ClkMonNum" from "unified view" in "config.def.h". Simply remove the reference to get it to apply and compile. +Each can be applied independently, if desired, except for "reset view" which +references "ClkMonNum" from "unified view" in "config.def.h". Simply remove the +reference to get it to apply and compile. -Example configuration settings with comments are included in "config.def.h" within each patch. +Example configuration settings with comments are included in "config.def.h" +within each patch. -The default settings and behavior of dwm are not modified by these patches. They provide enhancements and new options only, so there should be minimal conflict with other dwm patches. +The default settings and behavior of dwm are not modified by these patches. +They provide enhancements and new options only, so there should be minimal +conflict with other dwm patches. Usage ----- - Each patch can be applied using "patch -p1" or "git am": cd dwm; patch -p1 < multimon-1-added-monitor-marker-to-bar.diff --OR- +**or** cd dwm; git pull; git am multimon-1-added-monitor-marker-to-bar.diff -There are default settings and bindings in "config.def.h" which you will likely want to customize. +There are default settings and bindings in "config.def.h" which you will likely +want to customize. Download -------- +Each of the patches was created by "format-patch" based on commit +cdec9782a1789bd5c3a84772fd59abb9da288597. -Each of the patches was created by "format-patch" based on commit: [cdec9782a1789bd5c3a84772fd59abb9da288597](//git.suckless.org/dwm/commit/?id=cdec9782a1789bd5c3a84772fd59abb9da288597) - -* monitor marker (6228b): [multimon-1-added-monitor-marker-to-bar.diff](multimon-1-added-monitor-marker-to-bar.diff) ([GitHub](https://github.com/garybgenett/.dwm/commit/143e7f2f3caa047469c7219cd6b0cb704466683f)) -* unified view (6558b): [multimon-2-added-n-view-wrappers-for-unified-multi-monitor.diff](multimon-2-added-n-view-wrappers-for-unified-multi-monitor.diff) ([GitHub](https://github.com/garybgenett/.dwm/commit/2521a74714bb7c4b8787f30584f1565cc582928b)) -* reset view (6816b): [multimon-3-added-reset_view-function.diff](multimon-3-added-reset_view-function.diff) ([GitHub](https://github.com/garybgenett/.dwm/commit/b9f79c3dd07b285e974b2dfdf2371a72467539bb)) -* status all (6165b): [multimon-4-added-statusall-toggle-replacing-need-for-patch.diff](multimon-4-added-statusall-toggle-replacing-need-for-patch.diff) ([GitHub](https://github.com/garybgenett/.dwm/commit/d318ffdc7ab7a365e548776a1d8ed5ccbd67cd42)) +* [multimon-1-added-monitor-marker-to-bar.diff](multimon-1-added-monitor-marker-to-bar.diff) (6228b) +* [multimon-2-added-n-view-wrappers-for-unified-multi-monitor.diff](multimon-2-added-n-view-wrappers-for-unified-multi-monitor.diff) (6558b) +* [multimon-3-added-reset\_view-function.diff](multimon-3-added-reset_view-function.diff) (6816b) +* [multimon-4-added-statusall-toggle-replacing-need-for-patch.diff](multimon-4-added-statusall-toggle-replacing-need-for-patch.diff) (6165b) -The patches are intended to be applied in order, one after the other, but can also be used independently. +The patches are intended to be applied in order, one after the other, but can +also be used independently. Author ------ - * Gary B. Genett - [me@garybgenett.net](mailto:me@garybgenett.net) ---- -Original Submission: [//lists.suckless.org/dev/1403/20488.html](//lists.suckless.org/dev/1403/20488.html) +Original Submission: +[//lists.suckless.org/dev/1403/20488.html](//lists.suckless.org/dev/1403/20488.html) diff --git a/dwm.suckless.org/patches/historical/nmaster/dwm-4.4.1-nmaster.diff b/dwm.suckless.org/patches/historical/nmaster/dwm-4.4.1-nmaster.diff @@ -0,0 +1,114 @@ +diff -r 795c26a59016 config.default.h +--- a/config.default.h Sun Aug 26 12:54:20 2007 +0200 ++++ b/config.default.h Sun Aug 26 15:06:20 2007 +0200 +@@ -33,6 +33,7 @@ static Layout layouts[] = { \ + { "><>", floating }, \ + }; + #define MWFACT 0.6 /* master width factor [0.1 .. 0.9] */ ++#define NMASTER 1 /* clients in master area */ + #define SNAP 32 /* snap pixel */ + + /* key definitions */ +@@ -48,6 +49,8 @@ Key keys[] = { \ + { MODKEY, XK_k, focusprev, NULL }, \ + { MODKEY, XK_h, setmwfact, "-0.05" }, \ + { MODKEY, XK_l, setmwfact, "+0.05" }, \ ++ { MODKEY|ShiftMask, XK_h, incnmaster, "-1" }, \ ++ { MODKEY|ShiftMask, XK_l, incnmaster, "1" }, \ + { MODKEY, XK_m, togglemax, NULL }, \ + { MODKEY, XK_Return, zoom, NULL }, \ + { MODKEY|ShiftMask, XK_space, togglefloating, NULL }, \ +diff -r 795c26a59016 tile.c +--- a/tile.c Sun Aug 26 12:54:20 2007 +0200 ++++ b/tile.c Sun Aug 26 15:06:20 2007 +0200 +@@ -5,8 +5,29 @@ + /* static */ + + static double mwfact = MWFACT; ++static unsigned int nmaster = NMASTER; + + /* extern */ ++ ++void ++incnmaster(const char *arg) { ++ int i; ++ ++ if(!isarrange(tile)) ++ return; ++ if(!arg) ++ nmaster = NMASTER; ++ else { ++ i = atoi(arg); ++ if((nmaster + i) < 1 || wah / (nmaster + i) <= 2 * BORDERPX) ++ return; ++ nmaster += i; ++ } ++ if(sel) ++ arrange(); ++ else ++ drawstatus(); ++} + + void + setmwfact(const char *arg) { +@@ -32,28 +53,33 @@ setmwfact(const char *arg) { + + void + tile(void) { +- unsigned int i, n, nx, ny, nw, nh, mw, th; ++ unsigned int i, n, nx, ny, nw, nh, mw, mh, th; + Client *c; + + for(n = 0, c = nexttiled(clients); c; c = nexttiled(c->next)) + n++; + + /* window geoms */ +- mw = (n == 1) ? waw : mwfact * waw; +- th = (n > 1) ? wah / (n - 1) : 0; +- if(n > 1 && th < bh) ++ mh = (n <= nmaster) ? wah / (n > 0 ? n : 1) : wah / nmaster; ++ mw = (n <= nmaster) ? waw : mwfact * waw; ++ th = (n > nmaster) ? wah / (n - nmaster) : 0; ++ if(n > nmaster && th < bh) + th = wah; + + nx = wax; + ny = way; + for(i = 0, c = nexttiled(clients); c; c = nexttiled(c->next), i++) { + c->ismax = False; +- if(i == 0) { /* master */ ++ if(i < nmaster) { /* master */ ++ ny = way + i * mh; + nw = mw - 2 * c->border; +- nh = wah - 2 * c->border; ++ nh = mh; ++ if(i + 1 == (n < nmaster ? n : nmaster)) /* remainder */ ++ nh = wah - mh * i; ++ nh -= 2 * c->border; + } + else { /* tile window */ +- if(i == 1) { ++ if(i == nmaster) { + ny = way; + nx += mw; + } +@@ -64,7 +90,7 @@ tile(void) { + nh = th - 2 * c->border; + } + resize(c, nx, ny, nw, nh, False); +- if(n > 1 && th != wah) ++ if(n > nmaster && th != wah) + ny += nh + 2 * c->border; + } + } +diff -r 795c26a59016 tile.h +--- a/tile.h Sun Aug 26 12:54:20 2007 +0200 ++++ b/tile.h Sun Aug 26 15:06:20 2007 +0200 +@@ -1,6 +1,7 @@ + /* See LICENSE file for copyright and license details. */ + + /* tile.c */ ++void incnmaster(const char *arg); /* increments nmaster value */ + void setmwfact(const char *arg); /* sets master width factor */ + void tile(void); /* arranges all windows tiled */ + void zoom(const char *arg); /* zooms the focused client to master area, arg is ignored */ diff --git a/dwm.suckless.org/patches/historical/nmaster/index.md b/dwm.suckless.org/patches/historical/nmaster/index.md @@ -1,11 +1,13 @@ -# NMASTER PATCH +nmaster patch +============= -## Description +Description +----------- +This patch restores the ability to have multiple clients in the master area of +the tiled layout. This feature was dropped from vanilla dwm in version 4.4. -This patch restores the ability to have multiple clients in the master area of the tiled layout. -This feature was dropped from vanilla dwm in version 4.4. - -See [nmaster.c][1] header documentation for installing this patch with tilecols and clientspertag for dwm 4.6. +See nmaster.c header documentation for installing this patch with tilecols +and clientspertag for dwm 4.6. ntile (-|=) +----------+------+ @@ -16,41 +18,39 @@ See [nmaster.c][1] header documentation for installing this patch with tilecols | | | +----------+------+ -NOTE: The nmaster.c (patch for dwm 4.6) mixes the clientspertag patch together with another layout called tilecols. - -## Usage +Note: The nmaster.c (patch for dwm 4.6) mixes the clientspertag patch together +with another layout called tilecols. +Usage +----- 1. Download the patch and apply according to the [general instructions](.). 2. Add the `NMASTER` value to your `config.h`. Example from `config.default.h`: - #define NMASTER 2 /* clients in master area*/ + #define NMASTER 2 /* clients in master area*/ 3. Add keybindings to `incmaster()` to your `config.h`. Example from `config.default.h`: - { MODKEY|ShiftMask, XK_k, incnmaster, "-1" }, \ - { MODKEY|ShiftMask, XK_j, incnmaster, "1" }, \ - -The nmaster patch for dwm 4.6 (current development hg branch) installation is far more simple. -Installation instructions are placed on the top of the .c file. + { MODKEY|ShiftMask, XK_k, incnmaster, "-1" }, \ + { MODKEY|ShiftMask, XK_j, incnmaster, "1" }, \ -The nmaster patch for dwm 4.6 adds two new layouts called ntile (classic) and dntile (dinamic). +The nmaster patch for dwm 4.6 (current development hg branch) installation is +far more simple. Installation instructions are placed on the top of the .c +file. -## Download +The nmaster patch for dwm 4.6 adds two new layouts called ntile (classic) and +dntile (dinamic). -* [nmaster-4.7.c][3] (dwm 4.7) (7.3kb (20071123) -* [nmaster.c][2] (dwm 4.6) (7.3kb) (20071025) - - contains ntile, dntile and tilecols. Also supports the clients-per-tag -* [dwm-4.4.1-nmaster.diff][1] (dwm 4.4) (2.8kb) (20070826) +Download +-------- +* [nmaster-4.7.c](nmaster-4.7.c) (dwm 4.7) (7.3kb (20071123) +* [nmaster.c](nmaster.c) (dwm 4.6) (7.3kb) (20071025) + * contains ntile, dntile and tilecols. Also supports the clients-per-tag +* [dwm-4.4.1-nmaster.diff](dwm-4.4.1-nmaster.diff) (dwm 4.4) (2.8kb) (20070826) * [nmaster+bstack-5.6.1.diff](nmaster+bstack-5.6.1.diff) (dwm 5.6.1) (5.9kb) (20090824) - - another variation; contains bstack with nmaster support - -[1]: http://schot.a-eskwadraat.nl/files/dwm-4.4.1-nmaster.diff -[2]: http://www.lolcathost.org/b/dwm/nmaster.c -[3]: http://www.lolcathost.org/b/dwm/nmaster-4.7.c - -## Maintainer - -* pancake &lt;youterm.com&gt; + * another variation; contains bstack with nmaster support +Maintainer +---------- +* pancake <youterm.com> diff --git a/dwm.suckless.org/patches/historical/nmaster/nmaster-4.7.c b/dwm.suckless.org/patches/historical/nmaster/nmaster-4.7.c @@ -0,0 +1,505 @@ +#if 0 + +TITLE +----- + descrp: ntile/tilecols layouts with clientspertag for dwm-4.7 + author: pancake <youterm.com> + update: 2007-12-01 + + +CONFIGURATION +------------- + You should modify your config.h to include "nmaster.c" AFTER setting + the NMASTER, NCOLS, NROWS, BORDERPX, and RESIZEHINTS macro definitions + and BEFORE the layouts definition. + + A sample configuration with ntile will be: + + #define NMASTER 1 + #define NCOLS 1 + #define NROWS 1 + #define CPTH 32 + #include "nmaster-4.7.c" + + Layout layouts[] = { + { "-|=" , ntile }, + // ... + }; + + // keys + { MODKEY|ShiftMask , XK_j , setnmaster , "+1" } , \ + { MODKEY|ShiftMask , XK_k , setnmaster , "-1" } , \ + { MODKEY , XK_q , clientspertag ,"^1" } , \ + { MODKEY , XK_w , clientspertag , "2" } , \ + { MODKEY , XK_e , clientspertag , "3" } , \ + { MODKEY , XK_n , setcpth , "+32" } , \ + { MODKEY|ShiftMask , XK_n , setcpth , "-32" } , \ + + + clientspertag: + + both of them features the new cpt patch (clients per tag) which enables + to define the maximum number of clients you want to focus, the rest are + stacked at the bottom of the screen. This area has CPTH height and this + value can be changed on the fly using the setcpth function. + + +------+----+ + | | | Valid values are: + | |----| -1 - show all clients + | | | 0 - show all clients in the bottom stack area + +---+--^+---+ >0 - show N clients + +---+---+---+ + + #define CPTH 32 // num of pixels of the height of the stacked cpt area + + { MODKEY , XK_q , clientspertag ,"^1" } , \ + { MODKEY , XK_w , clientspertag , "2" } , \ + { MODKEY , XK_e , clientspertag , "3" } , \ + { MODKEY , XK_r , clientspertag , "4" } , \ + { MODKEY , XK_t , clientspertag , "5" } , \ + + { MODKEY , XK_n , setcpth , "+32" } , \ + { MODKEY|ShiftMask , XK_n , setcpth , "-32" } , \ + + + This source adds two new layouts: + + ntile: + + +-----+--+ + |_____|--| + | |--| + +-----+--+ + + #define NMASTER 1 + + { "-|=" , ntile } , \ + + { MODKEY|ShiftMask , XK_j , setnmaster , "+1" } , \ + { MODKEY|ShiftMask , XK_k , setnmaster , "-1" } , \ + + + tilecols: + + +--+--+--+ + |__| |__| + | | | | + +--+--+--+ + + #define NCOLS 2 + #define NROWS 1 + + { "E|]" , tilecols } , \ + + { MODKEY|ShiftMask , XK_j , setnrows , "+1" } , \ + { MODKEY|ShiftMask , XK_k , setnrows , "-1" } , \ + { MODKEY|ShiftMask , XK_h , setncols , "+1" } , \ + { MODKEY|ShiftMask , XK_l , setncols , "-1" } , + +#endif + + +/* height for bottom stacked clients */ +#ifndef CPTH +#define CPTH 32 +#endif +/* initial value for clients per tag */ +#ifndef CPT +#define CPT -1 +#endif + +void +maxzoom(const char *arg) { + if (sel->isfloating) + togglemax(NULL); + else + zoom(NULL); +} + +int cpt = CPT; +int Cpth = CPTH; + +void +clientspertag(const char *arg) { + if (*arg=='+' || *arg=='-') { + cpt += atoi(arg); + } else if (arg[0]=='^') { + if (cpt==-1) cpt = atoi(arg+1); + else cpt = -1; + } else cpt = atoi(arg); + arrange(); +} + +void +setcpth(const char *arg) { + int i; + + if(!arg) + Cpth = CPTH; + else { + Cpth += atoi(arg); + if (Cpth-CPTH<=0) + Cpth = CPTH; + if (Cpth+CPTH>=wah) + Cpth = wah - CPTH; + } + if(sel) + arrange(); +} + +#ifdef NMASTER +int nmaster = NMASTER; + +void +ntile(void) { + unsigned int i, n, t, nx, ny, nw, nh, mw, mh, th; + int cptn = 0, cpth = 0; + Client *c; + + domwfact = dozoom = True; + + for(n = 0, c = nexttiled(clients); c; c = nexttiled(c->next)) { + //if (cpt!=-1 && n>=cpt && sel == c) { n=cpt; zoom(NULL); break; } + n++; + } + t = n; + if (cpt!=-1&&n>cpt) { + n = cpt; + cpth = Cpth; + wah -= cpth; + } + /* window geoms */ + mh = (n <= nmaster) ? wah / (n > 0 ? n : 1) : wah / nmaster; + mw = (n <= nmaster) ? waw : mwfact * waw; + th = (n > nmaster) ? wah / (n - nmaster) : 0; + if(n > nmaster && th < bh) + th = wah; + + nx = wax; + ny = way; + + for(i = 0, c = nexttiled(clients); c; c = nexttiled(c->next), i++) { + if (cpt!=-1 && i>=cpt) { + nw = waw/(t-n) - c->border*2; + nx = (nw+c->border*2)*cptn; + cptn++; + ny = wah + way; + nh = cpth-(c->border*2); + if (nh<c->border) nh = cpth; + resize(c, nx, ny, nw, nh, RESIZEHINTS); + continue; + } + c->ismax = False; + if(i < nmaster) { /* master */ + ny = way + i * mh; + nw = mw - 2 * c->border; + nh = mh; + if(i + 1 == (n < nmaster ? n : nmaster)) /* remainder */ + nh = wah - mh * i; + nh -= 2 * c->border; + } + else { /* tile window */ + if(i == nmaster) { + ny = way; + nx += mw; + } + nw = waw - mw - 2 * c->border; + if(i + 1 == n) /* remainder */ + nh = (way + wah) - ny - 2 * c->border; + else + nh = th - 2 * c->border; + } + resize(c, nx, ny, nw, nh, RESIZEHINTS); + if(n > nmaster && th != wah) + ny += nh + 2 * c->border; + } + wah += cpth; +} + +void +setnmaster(const char *arg) { + int i; + + if(!arg) + nmaster = NMASTER; + else { + i = atoi(arg); + if((nmaster + i) < 1 || wah / (nmaster + i) <= 2 * BORDERPX) + return; + nmaster += i; + } + if(sel) + arrange(); +} +#endif + +#ifdef NCOLS +#ifdef NROWS +unsigned int ncols = NCOLS; +unsigned int nrows = NROWS; + +void +setncols(const char *arg) { + int i; + + if(!arg) + i = NCOLS; + else if(arg[0] != '+' && arg[0] != '-') + i = atoi(arg); + else + i = ncols + atoi(arg); + + if((i < 1) || (i >= 1 && waw / i <= 2 * BORDERPX)) + return; + ncols = i; + + if(sel) + arrange(); +} + +void +setnrows(const char *arg) { + int i; + + if(!arg) + i = NROWS; + else if(arg[0] != '+' && arg[0] != '-') + i = atoi(arg); + else + i = nrows + atoi(arg); + + if(i < 1 || wah <= 2 * BORDERPX * i) + return; + nrows = i; + + if(sel) + arrange(); +} + +void +tilecols(void) { + unsigned int i, n, nx, ny, nw, nh, mw, mh, tw, th, tw1, cols, rows, rows1, t; + int cpth = 0, cptn = 0; + Client *c; + + domwfact = dozoom = True; + + for(n = 0, c = nexttiled(clients); c; c = nexttiled(c->next)) { + // if (cpt!=-1 && n>=cpt && sel == c) { n=cpt; zoom(NULL); break; } + n++; + } + + /* calculate correct number of rows */ + if(ncols > 0 && n - nmaster > nrows * ncols) + rows = (n - nmaster) / ncols + ((n - nmaster) % ncols ? 1 : 0); + else + rows = nrows; + + t = n; + if (cpt!=-1&&n>cpt) { + n = cpt; + cpth = Cpth; + wah -= cpth; + } + + /* window geoms */ + mh = (n <= nmaster) ? wah / (n > 0 ? n : 1) : wah / nmaster; + + if (nmaster == 0) { + mh = mw = 0; + } + else if (n <= nmaster) { + mh = wah / (n > 0 ? n : 1); + mw = waw; + } + else { + mh = wah / nmaster; + mw = mwfact * waw; + } + + if(rows == 0 || n <= nmaster + rows) { + rows1 = n > nmaster ? n - nmaster : 1; + tw = tw1 = waw - mw; + th = wah / rows1; + } + else { + rows1 = 1 + (n - nmaster - 1) % rows; + cols = (n - nmaster) / rows + ((n - nmaster) % rows ? 1 : 0); + tw = (waw - mw) / cols; + tw1 = waw - mw - (cols - 1) * tw; + th = wah / rows; + } + + nx = wax; + ny = way; + + for(i = 0, c = nexttiled(clients); c; c = nexttiled(c->next), i++) { +#if 0 + if (cpt!=-1 && i>=cpt) { + ban(c); + continue; + } +#endif + if (cpt!=-1 && i>=cpt) { + nw = waw/(t-n) - c->border*2; + nx = (nw+c->border*2)*cptn; + cptn++; + ny = wah + way; + nh = cpth-(c->border*2); + if (nh<c->border) nh = cpth; + resize(c, nx, ny, nw, nh, RESIZEHINTS); + continue; + } + c->ismax = False; + if(i < nmaster) { /* master column */ + ny = way + i * mh; + nw = mw - 2 * c->border; + nh = mh - 2 * c->border; + if(i == 0) + nh += wah - mh * (n < nmaster ? n : nmaster); + nh = mh; + if(i + 1 == (n < nmaster ? n : nmaster)) /* remainder */ + nh = wah - mh * i; + nh -= 2 * c->border; + } + else if(i < nmaster + rows1) { /* first stack column */ + if(i == nmaster) { /* initialise */ + ny = way; + nx += mw; + nh = wah - 2*c->border - (rows1 - 1) * th; + } else + nh = th - 2 * c->border; + nw = tw1 - 2 * c->border; + } + else { /* successive stack columns - rows > 0 if we reach here */ + if((i - nmaster - rows1) % rows == 0) { /* reinitialise */ + ny = way; + nx += nw + 2 * c-> border; + nh = wah - 2*c->border - (rows - 1) * th; + } + else { + nh = th - 2 * c->border; + } + nw = tw - 2 * c->border; + } + resize(c, nx, ny, nw, nh, RESIZEHINTS); + ny += nh + 2 * c->border; + } + wah += cpth; +} +#endif +#endif + +/* EXPERIMENTAL: + * + * Work in progress stuff + */ +#ifdef EXPERIMENTAL +void +swapclients(Client *c1, Client *c2) +{ + Client *tmp; + + if (c2 == NULL) { + c1->prev->next = NULL; + c1->next = clients; + clients = c1; + return; + } + + tmp = c1->next; + c1->next = c2->next; + c2->next = (tmp == c2 ? c1 : tmp); + + tmp = c2->prev; + c2->prev = c1->prev; + c1->prev = (tmp == c1 ? c2 : tmp ); + + if(c1->next) + c1->next->prev = c1; + + if(c1->prev) + c1->prev->next = c1; + + if(c2->next) + c2->next->prev = c2; + + if(c2->prev) + c2->prev->next = c2; + + //if(clients == c1) + // clients = c2; +} + +void +swap(const char *arg) { + int i; + + if(sel) { + if (*arg=='+') + swapclients(sel, sel->next); + else + if (*arg=='-') + swapclients(sel, sel->prev); + arrange(); + } +} +#endif + +#ifdef EXPERIMENTAL +void +dntile(void) { + unsigned int i, n, nx, ny, nw, nh, mw, mh, th, inc; + Client *c; + + for(n = 0, c = nexttiled(clients); c; c = nexttiled(c->next)) + n++; + if (cpt!=-1 && n>cpt) n = cpt; + + /* dynamic nmaster */ + if (n<5) inc = 0; + else if (n<7) inc = 1; + else inc = 2; + nmaster+=inc; + + /* window geoms */ + mh = (n <= nmaster) ? wah / (n > 0 ? n : 1) : wah / nmaster; + mw = (n <= nmaster) ? waw : mwfact * waw; + th = (n > nmaster) ? wah / (n - nmaster) : 0; + if(n > nmaster && th < bh) + th = wah; + + nx = wax; + ny = way; + for(i = 0, c = nexttiled(clients); c; c = nexttiled(c->next), i++) { + if (cpt!=-1 && i>=cpt) { + ban(c); + continue; + } + c->ismax = False; + if(i < nmaster) { /* master */ + ny = way + i * mh; + nw = mw - 2 * c->border; + nh = mh; + if(i + 1 == (n < nmaster ? n : nmaster)) /* remainder */ + nh = wah - mh * i; + nh -= 2 * c->border; + } + else { /* tile window */ + if(i == nmaster) { + ny = way; + nx += mw; + } + nw = waw - mw - 2 * c->border; + if(i + 1 == n) /* remainder */ + nh = (way + wah) - ny - 2 * c->border; + else + nh = th - 2 * c->border; + } + resize(c, nx, ny, nw, nh, False); + if(n > nmaster && th != wah) + ny += nh + 2 * c->border; + } + nmaster -= inc; +} +#endif diff --git a/dwm.suckless.org/patches/historical/nmaster/nmaster.c b/dwm.suckless.org/patches/historical/nmaster/nmaster.c @@ -0,0 +1,343 @@ +#if 0 + +TITLE + + subject: ntile/nmaster/tilecols layouts with cpt patch included for dwm-4.6 + author: pancake <youterm.com> * + + +NOTES + + Remember to append a ISTILE line like that one in your config.h: + +#define ISTILE isarrange(tile) || isarrange(ntile) || isarrange(dntile) || isarrange(tilecols) + + +INSTALLATION + + Copy this file into the dwm root directory (the one) and follow the instructions + related into the configuration section. + + +CONFIGURATION + +You should modify your config.h to include "nmaster.c" from it after +setting the NMASTER, NCOLS and NROWS macro definitions. + + + *** NMASTER *** + +#define NMASTER 1 +#include "nmaster.c" + +Layout layouts[] = { + { "-|=", ntile }, /* first entry is default */ +.. + { MODKEY|ShiftMask, XK_j, setnmaster, "+1"}, \ + { MODKEY|ShiftMask, XK_k, setnmaster, "-1"}, \ + + + + *** TILECOLS *** + +#define NCOLS 2 +#define NROWS 1 +#include "nmaster.c" + +Layout layouts[] = { + { "E|]", tilecols }, /* first entry is default */ +.. + { MODKEY|ShiftMask, XK_j, setnrows, "+1" }, \ + { MODKEY|ShiftMask, XK_k, setnrows, "-1" }, \ + { MODKEY|ShiftMask, XK_l, setncols, "+1" }, \ + { MODKEY|ShiftMask, XK_h, setncols, "-1" }, \ + + + *** CLIENTS PER TAG *** + + Valid values are: + -1 - show all clients + 0 - show no clients + >0 - show N clients + + Example configuration: + { MODKEY|ShiftMask, XK_q, clientspertag, "0" }, \ + { MODKEY, XK_q, clientspertag, "^1" }, \ + { MODKEY, XK_w, clientspertag, "^2" }, \ + { MODKEY, XK_e, clientspertag, "^3" }, \ + +#endif + +int cpt = -1; +void clientspertag(const char *arg) { + if (arg[0]=='^') { + if (cpt==-1) cpt = atoi(arg+1); + else cpt = -1; + } else cpt = atoi(arg); + arrange(); +} + +#ifdef NMASTER +int nmaster = NMASTER; +void +ntile(void) { + unsigned int i, n, nx, ny, nw, nh, mw, mh, th; + Client *c; + + for(n = 0, c = nexttiled(clients); c; c = nexttiled(c->next)) + n++; + + if (cpt!=-1 && n>cpt) n = cpt; + + /* window geoms */ + mh = (n <= nmaster) ? wah / (n > 0 ? n : 1) : wah / nmaster; + mw = (n <= nmaster) ? waw : mwfact * waw; + th = (n > nmaster) ? wah / (n - nmaster) : 0; + if(n > nmaster && th < bh) + th = wah; + + nx = wax; + ny = way; + for(i = 0, c = nexttiled(clients); c; c = nexttiled(c->next), i++) { + if (cpt!=-1 && i>=cpt) { + ban(c); + continue; + } + c->ismax = False; + if(i < nmaster) { /* master */ + ny = way + i * mh; + nw = mw - 2 * c->border; + nh = mh; + if(i + 1 == (n < nmaster ? n : nmaster)) /* remainder */ + nh = wah - mh * i; + nh -= 2 * c->border; + } + else { /* tile window */ + if(i == nmaster) { + ny = way; + nx += mw; + } + nw = waw - mw - 2 * c->border; + if(i + 1 == n) /* remainder */ + nh = (way + wah) - ny - 2 * c->border; + else + nh = th - 2 * c->border; + } + resize(c, nx, ny, nw, nh, False); + if(n > nmaster && th != wah) + ny += nh + 2 * c->border; + } +} + +void +dntile(void) { + unsigned int i, n, nx, ny, nw, nh, mw, mh, th, inc; + Client *c; + + for(n = 0, c = nexttiled(clients); c; c = nexttiled(c->next)) + n++; + if (cpt!=-1 && n>cpt) n = cpt; + + /* dynamic nmaster */ + if (n<5) inc = 0; + else if (n<7) inc = 1; + else inc = 2; + nmaster+=inc; + + /* window geoms */ + mh = (n <= nmaster) ? wah / (n > 0 ? n : 1) : wah / nmaster; + mw = (n <= nmaster) ? waw : mwfact * waw; + th = (n > nmaster) ? wah / (n - nmaster) : 0; + if(n > nmaster && th < bh) + th = wah; + + nx = wax; + ny = way; + for(i = 0, c = nexttiled(clients); c; c = nexttiled(c->next), i++) { + if (cpt!=-1 && i>=cpt) { + ban(c); + continue; + } + c->ismax = False; + if(i < nmaster) { /* master */ + ny = way + i * mh; + nw = mw - 2 * c->border; + nh = mh; + if(i + 1 == (n < nmaster ? n : nmaster)) /* remainder */ + nh = wah - mh * i; + nh -= 2 * c->border; + } + else { /* tile window */ + if(i == nmaster) { + ny = way; + nx += mw; + } + nw = waw - mw - 2 * c->border; + if(i + 1 == n) /* remainder */ + nh = (way + wah) - ny - 2 * c->border; + else + nh = th - 2 * c->border; + } + resize(c, nx, ny, nw, nh, False); + if(n > nmaster && th != wah) + ny += nh + 2 * c->border; + } + nmaster-=inc; +} + +void +setnmaster(const char *arg) { + int i; + + if(!isarrange(ntile)&&!isarrange(dntile)) + return; + if(!arg) + nmaster = NMASTER; + else { + i = atoi(arg); + if((nmaster + i) < 1 || wah / (nmaster + i) <= 2 * BORDERPX) + return; + nmaster += i; + } + if(sel) + arrange(); +} +#endif + +#ifdef NCOLS +#ifdef NROWS +unsigned int ncols = NCOLS; +unsigned int nrows = NROWS; + +void +setncols(const char *arg) { + int i; + + if(!isarrange(tile)) + return; + if(!arg) + i = NCOLS; + else if(arg[0] != '+' && arg[0] != '-') + i = atoi(arg); + else + i = ncols + atoi(arg); + + if((i < 1) || (i >= 1 && waw / i <= 2 * BORDERPX)) + return; + ncols = i; + + if(sel) + arrange(); +} + +void +setnrows(const char *arg) { + int i; + + if(!isarrange(tile)) + return; + if(!arg) + i = NROWS; + else if(arg[0] != '+' && arg[0] != '-') + i = atoi(arg); + else + i = nrows + atoi(arg); + + if(i < 1 || wah <= 2 * BORDERPX * i) + return; + nrows = i; + + if(sel) + arrange(); +} + +void +tilecols(void) { + unsigned int i, n, nx, ny, nw, nh, mw, mh, tw, th, tw1, cols, rows, rows1; + Client *c; + + for(n = 0, c = nexttiled(clients); c; c = nexttiled(c->next)) + n++; + /* calculate correct number of rows */ + if(ncols > 0 && n - nmaster > nrows * ncols) + rows = (n - nmaster) / ncols + ((n - nmaster) % ncols ? 1 : 0); + else + rows = nrows; + + if (cpt!=-1 && n>cpt) n = cpt; + + /* window geoms */ + mh = (n <= nmaster) ? wah / (n > 0 ? n : 1) : wah / nmaster; + + if (nmaster == 0) { + mh = mw = 0; + } + else if (n <= nmaster) { + mh = wah / (n > 0 ? n : 1); + mw = waw; + } + else { + mh = wah / nmaster; + mw = mwfact * waw; + } + + if(rows == 0 || n <= nmaster + rows) { + rows1 = n > nmaster ? n - nmaster : 1; + tw = tw1 = waw - mw; + th = wah / rows1; + } + else { + rows1 = 1 + (n - nmaster - 1) % rows; + cols = (n - nmaster) / rows + ((n - nmaster) % rows ? 1 : 0); + tw = (waw - mw) / cols; + tw1 = waw - mw - (cols - 1) * tw; + th = wah / rows; + } + + nx = wax; + ny = way; + + for(i = 0, c = nexttiled(clients); c; c = nexttiled(c->next), i++) { + if (cpt!=-1 && i>=cpt) { + ban(c); + continue; + } + c->ismax = False; + if(i < nmaster) { /* master column */ + ny = way + i * mh; + nw = mw - 2 * c->border; + nh = mh - 2 * c->border; + if(i == 0) + nh += wah - mh * (n < nmaster ? n : nmaster); + //nh = mh; + if(i + 1 == (n < nmaster ? n : nmaster)) /* remainder */ + nh = wah - mh * i; + nh -= 2 * c->border; + } + else if(i < nmaster + rows1) { /* first stack column */ + if(i == nmaster) { /* initialise */ + ny = way; + nx += mw; + nh = wah - 2*c->border - (rows1 - 1) * th; + } else + nh = th - 2 * c->border; + nw = tw1 - 2 * c->border; + } + else { /* successive stack columns - rows > 0 if we reach here */ + if((i - nmaster - rows1) % rows == 0) { /* reinitialise */ + ny = way; + nx += nw + 2 * c-> border; + nh = wah - 2*c->border - (rows - 1) * th; + } + else { + nh = th - 2 * c->border; + } + nw = tw - 2 * c->border; + } + resize(c, nx, ny, nw, nh, False); + ny += nh + 2 * c->border; + } +} +#endif +#endif + diff --git a/dwm.suckless.org/patches/historical/raiselower/index.md b/dwm.suckless.org/patches/historical/raiselower/index.md @@ -1,12 +1,15 @@ -# RAISELOWER - -## Description +Raiselower +========== +Description +----------- This patch enables you to raise or lower the selected floating window. -## Download -* None anymore, the last download location was: http://www.e-jc.de/dwm/5.0/current/dwm-5.0-raiselower.diff - -## Author +Download +-------- +* None anymore, the last download location was: +http://www.e-jc.de/dwm/5.0/current/dwm-5.0-raiselower.diff +Author +------ * Jan Christoph Ebersbach - <jceb@e-jc.de> diff --git a/dwm.suckless.org/patches/historical/taglayouts/index.md b/dwm.suckless.org/patches/historical/taglayouts/index.md @@ -1,20 +1,23 @@ -# taglayouts +taglayouts +========== -## Description +Description +----------- +This patch enables one layout per tag in contrast of one layout for all tags. - +A more general approach is the [pertag patch](/patches/pertag). -This patch enables one layout per tag in contrast of one layout for all tags. - A more general approach is the [pertag patch](/patches/pertag). - -## Download +Download +-------- * None anymore -## Known Bugs - +Known Bugs +---------- * If you had selected multiple tags and try to get back to them with the - viewprevtag method, keep in mind that the layout of the FIRST tag is used, - that was previously selected. - -## Author + viewprevtag method, keep in mind that the layout of the FIRST tag is used, + that was previously selected. +Author +------ * http://na.srck.net/dwm * Updated by Jan Christoph Ebersbach - <jceb@e-jc.de> diff --git a/dwm.suckless.org/patches/historical/tilemovemouse/index.md b/dwm.suckless.org/patches/historical/tilemovemouse/index.md @@ -1,4 +1,4 @@ -MOVE TILED WINDOW WITH MOUSE +Move tiled window with mouse ============================ Description @@ -11,10 +11,6 @@ floating it. Reordering windows this way is fun. { ClkClientWin, MODKEY, Button1, tilemovemouse, {0} }, }; - Download -------- -[tilemovemouse](//lists.suckless.org/dwm/0903/7773.html) - - -Last update: 2009-03-20 +* [tilemovemouse](//lists.suckless.org/dwm/0903/7773.html) diff --git a/dwm.suckless.org/patches/historical/workspaces/index.md b/dwm.suckless.org/patches/historical/workspaces/index.md @@ -1,14 +1,12 @@ Workspaces ========== - -*by [Jesus Galan (yiyus)](mailto:yiyu dot jgl at gmail>) (aug 30 21:41:42 CEST 2008)* - -Adds to dwm the functionality of remembering tagset, layout and mfact for a given number of workspaces. You can also define preconfigured workspaces. +Adds to dwm the functionality of remembering tagset, layout and mfact for a +given number of workspaces. You can also define preconfigured workspaces. Code ---- - -Insert this code before your keys definitions in config.h or in an included .c file: +Insert this code before your keys definitions in config.h or in an included .c +file: typedef struct Workspace Workspace; struct Workspace { @@ -65,12 +63,15 @@ Or mouse buttons: Comments -------- +It is so easy to change the viewed tags, layout and mfact in dwm than having +artifacts to remember them are not necessary, this patch is just an example of +how it could be implemented, but it won't be updated for future releases. -It is so easy to change the viewed tags, layout and mfact in dwm than having artifacts to remember them are not necessary, this patch is just an example of how it could be implemented, but it won't be updated for future releases. - -It should be easy to add to the workspaces the possibility to remember bar position too. +It should be easy to add to the workspaces the possibility to remember bar +position too. -It is not necessary to define all your workspaces (or any of them). You can perfectly do: +It is not necessary to define all your workspaces (or any of them). You can +perfectly do: static Workspace workspaces[16] = { /* tagset layout fact */ @@ -82,3 +83,6 @@ or: static Workspace workspaces[16]; +Authors +------- +* [Jesus Galan (yiyus)](mailto:yiyu dot jgl at gmail>) (aug 30 21:41:42 CEST 2008)* diff --git a/dwm.suckless.org/patches/historical/xft/index.md b/dwm.suckless.org/patches/historical/xft/index.md @@ -3,18 +3,18 @@ xft Description ----------- - The `xft` patch patch implements Xft. This allows users to utilize the UTF8 character set. Look at the patch below which is more advance. The `xft-with-fallback-font` patch adds Xft and fallback-font support to dwm. -This patch was built on top of the [Xft patch written by -Quentin](//lists.suckless.org/dev/1311/18279.html). With fallback font -support, multiple fonts can now be specified in config.h which are used to -render characters not present in the first font. If none of the user-specified -fonts contains a given character, this patch attempts to automatically fallback -to whatever suitable font it can find on the host system. -**NOTE: This is enabled by default when you are using the latest dwm-git.** +This patch was built on top of the +[Xft patch written by Quentin](//lists.suckless.org/dev/1311/18279.html). With +fallback font support, multiple fonts can now be specified in config.h which +are used to render characters not present in the first font. If none of the +user-specified fonts contains a given character, this patch attempts to +automatically fallback to whatever suitable font it can find on the host +system. **NOTE: This is enabled by default when you are using the latest +dwm-git.** With this patch, the "font" variable in config.h is superseded by the "fonts" variable which is a priority-ordered list of fonts that should be used to @@ -35,10 +35,9 @@ Download * [dwm-6.0-xft.diff](dwm-6.0-xft.diff) (6.6k) (16 May 2012) * memory leak fixed and improved implementation. * include config.def.h and config.mk changes. - * [dwm-6.1-xft-with-fallback-font.diff](dwm-6.1-xft-with-fallback-font.diff) (20k) -Author ------- +Authors +------- * Lee Fallat (lf94)<ircsurfer33@gmail.com> * [Eric Pruitt](https://github.com/ericpruitt/) diff --git a/dwm.suckless.org/patches/horizgrid/index.md b/dwm.suckless.org/patches/horizgrid/index.md @@ -3,11 +3,13 @@ horizontal grid Description ----------- -This patch is a variant of [gapless_grid](../gapless_grid/). It arranges windows in a grid pattern in which every window is roughly the same size, adjusted such that there are no gaps. However, this layout arranges the windows in a horizontal grid, rather than a vertical grid. +This patch is a variant of [gapless\_grid](../gapless_grid/). It arranges +windows in a grid pattern in which every window is roughly the same size, +adjusted such that there are no gaps. However, this layout arranges the windows +in a horizontal grid, rather than a vertical grid. Horizontal Grid Layout ---------------------- - horizgrid (###) +--------+--------+ | | | @@ -28,10 +30,8 @@ Horizontal Grid Layout Download -------- - * [dwm-horizgrid-6.1.diff](dwm-horizgrid-6.1.diff) (20160108) Authors ------- - * Marshall Mason - `<marshallmason2@gmail.com>` diff --git a/dwm.suckless.org/patches/index.md b/dwm.suckless.org/patches/index.md @@ -1,5 +1,4 @@ patches ======= - For instructions on how to submit and format patches, take a look at the [hacking guidelines](//suckless.org/hacking). diff --git a/dwm.suckless.org/patches/ispermanent/index.md b/dwm.suckless.org/patches/ispermanent/index.md @@ -3,16 +3,13 @@ ispermanent Description ----------- - Property for clients to avoid accidental termination by `killclient` for sticky windows. Download -------- - * [dwm-ispermanent-6.0.diff](dwm-ispermanent-6.0.diff) -Author ------- - +Authors +------- * [Chris Down](https://chrisdown.name) (cdown) <chris@chrisdown.name> diff --git a/dwm.suckless.org/patches/keycodes/index.md b/dwm.suckless.org/patches/keycodes/index.md @@ -1,14 +1,14 @@ Keycodes ======== With this patch, handling key input is done with keycodes instead of keysyms. -This way, input is independent from keyboard layout (you can get keycodes -using xev to adapt config.h) +This way, input is independent from keyboard layout (you can get keycodes using +xev to adapt config.h) Download -------- * [dwm-keycodes-6.1.diff](dwm-keycodes-6.1.diff) * [dwm-keycodes-20170511-ceac8c9.diff](dwm-keycodes-20170511-ceac8c9.diff) -Author ------- +Authors +------- * Quentin Rameau <quinq@fifth.space> diff --git a/dwm.suckless.org/patches/keymodes/index.md b/dwm.suckless.org/patches/keymodes/index.md @@ -1,50 +1,67 @@ -# keymodes - -## Description +keymodes +======== +Description +----------- This patch provides key modes (like in Vim). There are two key modes: -1. `COMMANDMODE`: In this mode any key is grabbed and only the registered command keys have any effect. -2. `INSERTMODE`: This is the normal key mode, in which the original key bindings of dwm and applications are effective and text can be entered. +1. `COMMANDMODE`: In this mode any key is grabbed and only the registered + command keys have any effect. +2. `INSERTMODE`: This is the normal key mode, in which the original key + bindings of dwm and applications are effective and text can be entered. -With key modes you can use any key binding for window management without risking conflicts with existing key bindings in applications or have a Vim-style dwm. +With key modes you can use any key binding for window management without +risking conflicts with existing key bindings in applications or have a +Vim-style dwm. There are two different patches: * keymodes: the minimal patch -* vim-keymodes: This patch tries to emulate the key bindings of Vim. Therefor it includes additional functions, which depend on the [flextile patch](../flextile/). - - -## Configuration - -1. Download the favoured patch and apply it according to the [general instructions](.). If you choose vim-keymodes you will have to apply the [flextile patch](../flextile/) first. - -2. Transfer the changes made by the patch in `config.def.h` to your `config.h`, if needed; please see the patch file for details. - -3. Verify the following lines in the aforementioned arrays; the key bindings are set in reference to a german keyboard layout. The entries in the `cmdkeys` array are defined like those in the original `keys` array of dwm and take precedence over the key bindings defined in the `commands` array. The modifier and keysym definitions in the `commands` array are themselves arrays with four entries, whereas the first entry in the modifier array corresponds to the first entry in the keysym array and so forth. You can find an example configuration [here][dwm-keymodes-vim-config.h]. - - static Key keys[] = { - /* modifier key function argument */ - { MODKEY, XK_Escape, setkeymode, {.ui = COMMANDMODE} }, - - static Key cmdkeys[] = { - /* modifier keys function argument */ - { 0, XK_Escape, clearcmd, {0} }, - { ControlMask, XK_c, clearcmd, {0} }, - { 0, XK_i, setkeymode, {.ui = INSERTMODE} }, - }; - static Command commands[] = { - /* modifier (4 keys) keysyms (4 keys) function argument */ - ... - }; - - -## Usage - -With this patch dwm starts in `COMMANDMODE` and you can use the key bindings as defined in the `commands` array in `config.h`. Press `Escape` or `CTRL+c` to abort a command input and press `i` (in the default configuration) to enter `INSERTMODE` and use dwm normally with the key bindings defined in the `keys` array, navigate in applications and insert text. To get from `INSERTMODE` to `COMMANDMODE` press `ALT+Escape` (in the default configuration). - - -## Download - +* vim-keymodes: This patch tries to emulate the key bindings of Vim. Therefor + it includes additional functions, which depend on the + [flextile patch](../flextile/). + +Configuration +------------- +1. Download the favoured patch and apply it according to the + [general instructions](.). If you choose vim-keymodes you will have to apply + the [flextile patch](../flextile/) first. +2. Transfer the changes made by the patch in `config.def.h` to your `config.h`, + if needed; please see the patch file for details. +3. Verify the following lines in the aforementioned arrays; the key bindings + are set in reference to a german keyboard layout. The entries in the `cmdkeys` + array are defined like those in the original `keys` array of dwm and take + precedence over the key bindings defined in the `commands` array. The modifier + and keysym definitions in the `commands` array are themselves arrays with four + entries, whereas the first entry in the modifier array corresponds to the first + entry in the keysym array and so forth. You can find an example configuration + [here][dwm-keymodes-vim-config.h]. + + static Key keys[] = { + /* modifier key function argument */ + { MODKEY, XK_Escape, setkeymode, {.ui = COMMANDMODE} }, + + static Key cmdkeys[] = { + /* modifier keys function argument */ + { 0, XK_Escape, clearcmd, {0} }, + { ControlMask, XK_c, clearcmd, {0} }, + { 0, XK_i, setkeymode, {.ui = INSERTMODE} }, + }; + static Command commands[] = { + /* modifier (4 keys) keysyms (4 keys) function argument */ + ... + }; + +Usage +----- +With this patch dwm starts in `COMMANDMODE` and you can use the key bindings as +defined in the `commands` array in `config.h`. Press `Escape` or `CTRL+c` to +abort a command input and press `i` (in the default configuration) to enter +`INSERTMODE` and use dwm normally with the key bindings defined in the `keys` +array, navigate in applications and insert text. To get from `INSERTMODE` to +`COMMANDMODE` press `ALT+Escape` (in the default configuration). + +Download +-------- * [dwm-keymodes-5.8.2.diff](dwm-keymodes-5.8.2.diff) (20100611, joten (at) freenet (dot) de) * [dwm-keymodes-vim-5.8.2.diff](dwm-keymodes-vim-5.8.2.diff) (20100611, joten (at) freenet (dot) de) diff --git a/dwm.suckless.org/patches/keypressrelease/index.md b/dwm.suckless.org/patches/keypressrelease/index.md @@ -3,36 +3,36 @@ keypressrelease Description ----------- +This patch lets you specify whether a key binding should be executed at the +_KeyPress_ or _KeyRelease_ event. Executing on _KeyRelease_ fixes bugs such as +`scrot -s` failing to execute from a key binding due to keys not being released +in time [1], [2]. -This patch lets you specify whether a key binding should be executed at the _KeyPress_ or _KeyRelease_ event. -Executing on _KeyRelease_ fixes bugs such as `scrot -s` failing to execute from a key binding due to keys not being released in time [1][2]. - -Note that the new parameter must be added to all non-standard key bindings manually after patching. +Note that the new parameter must be added to all non-standard key bindings +manually after patching. Usage ----- - A working `scrot -s` key binding: static const char *scrot[] = { "scrot", "-s", NULL }; ... { KeyRelease, 0, XK_Print, spawn, {.v = scrot } }, -Or to only display the bar while the toggle key is held down (requires that it is hidden to start with), add: +Or to only display the bar while the toggle key is held down (requires that it +is hidden to start with), add: { KeyRelease, MODKEY, XK_b, togglebar, {0} }, Download -------- - * [dwm-keypressrelease-6.0.diff](dwm-keypressrelease-6.0.diff) Author ------ - * Niklas Høj - `<niklas at hoej dot me>` --- -[1] Error produced: "giblib error: couldn't grab keyboard: Resource temporarily unavailable" -[2] Old discussion thread: [//lists.suckless.org/dev/1108/9185.html](//lists.suckless.org/dev/1108/9185.html) +[1]: Error produced: "giblib error: couldn't grab keyboard: Resource temporarily unavailable" +[2]: Old discussion thread: [//lists.suckless.org/dev/1108/9185.html](//lists.suckless.org/dev/1108/9185.html) diff --git a/dwm.suckless.org/patches/killunsel/index.md b/dwm.suckless.org/patches/killunsel/index.md @@ -3,7 +3,6 @@ killunsel Description ----------- - Kills all visible clients that are unselected. That is, after running `killunsel`, only the selected client will remain. The rest will not only be not visible, but they will have been killed. @@ -13,11 +12,9 @@ per-"tab") in vim. Download -------- - * [dwm-killunsel-ceac8c91ff.diff](dwm-killunsel-ceac8c91ff.diff) (1.7k) (20170728) Author ------ - * [Chris Down](https://chrisdown.name) (cdown) <chris@chrisdown.name> diff --git a/dwm.suckless.org/patches/leftlayout/index.md b/dwm.suckless.org/patches/leftlayout/index.md @@ -1,13 +1,14 @@ -# leftlayout - -## Description +leftlayout +========== +Description +----------- Moves the layout symbol in the status bar to the left hand side. -## Download - +Download +-------- * [dwm-leftlayout-20180524-c8e9479.diff](dwm-leftlayout-20180524-c8e9479.diff) (24.05.2018) -## Author - +Author +------ * cd diff --git a/dwm.suckless.org/patches/mark/index.md b/dwm.suckless.org/patches/mark/index.md @@ -1,7 +1,8 @@ -# mark - -## Description +mark +==== +Description +----------- This patch provides an mechanism to easily jump between any 2 clients, or to swap any 2 clients through shortcuts by introcuding mark. The mark is global, and only one mark is allowed at the same time. The marked client is @@ -13,8 +14,8 @@ This patch adds 3 functions to dwm: * swapclient - swap focused client with marked client * swapfocus - swap focus with mark. -## Configuration - +Configuration +------------- static const char normmarkcolor[] = "#775500"; /*border color for marked client*/ static const char selmarkcolor[] = "#775577"; /*border color for marked client on focus*/ @@ -25,18 +26,16 @@ This patch adds 3 functions to dwm: Some ideas for combinations of key mappings: -* togglemark x2 - clear the mark -* swapclient, swapfocus - shift the client to another client frame without losing focus -* swapclient, togglemark x2 - swap 2 clients and clear the mark -* swapfocus, togglemark x2 - jump to mark and clear the mark +* togglemark x2 clear the mark +* swapclient, swapfocus shift the client to another client frame without losing + focus +* swapclient, togglemark x2 swap 2 clients and clear the mark +* swapfocus, togglemark x2 jump to mark and clear the mark -## Download -this patch has been revised, it's recommended to use dwm-6.1-mark-new.diff -old behaviours of the patch(dwm-mark-6.1.diff): +Download +-------- +this patch has been revised, it's recommended to use dwm-6.1-mark-new.diff old +behaviours of the patch(dwm-mark-6.1.diff): 1. crashes when using mark features while the marked client has been killed. 2. swapclient clears the mark. @@ -47,5 +46,6 @@ old behaviours of the patch(dwm-mark-6.1.diff): * [dwm-mark-new-6.1.diff](dwm-mark-new-6.1.diff) * [dwm-mark-6.1.diff](dwm-mark-6.1.diff) -## Author +Author +------ * phi <crispyfrog@163.com> diff --git a/dwm.suckless.org/patches/maximize/index.md b/dwm.suckless.org/patches/maximize/index.md @@ -18,9 +18,9 @@ Insert the bindings into the keys list. Here is an example: Download -------- -* [dwm-maximize_vert_horz-20160731-56a31dc.diff](dwm-maximize_vert_horz-20160731-56a31dc.diff) -* [dwm-maximize_vert_horz-6.1.diff](dwm-maximize_vert_horz-6.1.diff) (Unclean patch) -* [dwm-maximize_vert_horz-6.0.diff](dwm-maximize_vert_horz-6.0.diff) +* [dwm-maximize\_vert\_horz-20160731-56a31dc.diff](dwm-maximize_vert_horz-20160731-56a31dc.diff) +* [dwm-maximize\_vert\_horz-6.1.diff](dwm-maximize_vert_horz-6.1.diff) (Unclean patch) +* [dwm-maximize\_vert\_horz-6.0.diff](dwm-maximize_vert_horz-6.0.diff) Author ------ diff --git a/dwm.suckless.org/patches/monocle_count/index.md b/dwm.suckless.org/patches/monocle_count/index.md @@ -9,7 +9,7 @@ current release prints only the number of total clients within the symbol. Download -------- -* [dwm-monocle_count-5.8.2.diff](dwm-monocle_count-5.8.2.diff) +* [dwm-monocle\_count-5.8.2.diff](dwm-monocle_count-5.8.2.diff) Author ------ diff --git a/dwm.suckless.org/patches/moveontagmon/index.md b/dwm.suckless.org/patches/moveontagmon/index.md @@ -1,11 +1,14 @@ -# move on tagmon() - -## Description +move on tagmon() +================ +Description +----------- This patch moves floating windows if their monitor gets changed. -## Download +Download +-------- * [dwm-r1437-moveontagmon.diff](dwm-r1437-moveontagmon.diff) -## Author +Author +------ * Apo - a-p@0au.de diff --git a/dwm.suckless.org/patches/moveplace/index.md b/dwm.suckless.org/patches/moveplace/index.md @@ -1,7 +1,8 @@ -# moveplace - -## Description +moveplace +========= +Description +----------- This patch was culled from 'exresize' which in turn is based on 'maximize', 'moveresize', and 'savefloats' @@ -10,22 +11,21 @@ in case that is all you need, or if you want to use this with other patches. Makes a window floating and 1/3rd the height and 1/3rd the width of the screen. -The window is then positioned in either the center, or one of 8 cardinal directions -depending on which key is pressed. +The window is then positioned in either the center, or one of 8 cardinal +directions depending on which key is pressed. MOD+ - qwe asd zxc with `s` being the center. -## Download - +Download +-------- * [dwm-moveplace-20180524-c8e9479.diff](dwm-moveplace-20180524-c8e9479.diff) (24.05.2018) -## Author - +Author +------ * cd * Krister Svanlun - <krister.svanlund-AT-gmail.com> (original exresize) diff --git a/dwm.suckless.org/patches/moveresize/index.md b/dwm.suckless.org/patches/moveresize/index.md @@ -11,36 +11,36 @@ Usage 1. Put the following `moveresize()` function somewhere in your `dwm.c`, **after** the line which includes the config.h file: - static void - moveresize(const Arg *arg) - { - XEvent ev; - Monitor *m = selmon; - - if(!(m->sel && arg && arg->v && m->sel->isfloating)) - return; - - resize(m->sel, m->sel->x + ((int *)arg->v)[0], - m->sel->y + ((int *)arg->v)[1], - m->sel->w + ((int *)arg->v)[2], - m->sel->h + ((int *)arg->v)[3], - True); - - while(XCheckMaskEvent(dpy, EnterWindowMask, &ev)); - } + static void + moveresize(const Arg *arg) + { + XEvent ev; + Monitor *m = selmon; + + if(!(m->sel && arg && arg->v && m->sel->isfloating)) + return; + + resize(m->sel, m->sel->x + ((int *)arg->v)[0], + m->sel->y + ((int *)arg->v)[1], + m->sel->w + ((int *)arg->v)[2], + m->sel->h + ((int *)arg->v)[3], + True); + + while(XCheckMaskEvent(dpy, EnterWindowMask, &ev)); + } 2. Insert the bindings into the keys list. Here is an example which uses the arrow keys to move (mod+arrow) or resize (mod+shift+arrow) the selected - client: - - { MODKEY, XK_Down, moveresize, {.v = (int []){ 0, 25, 0, 0 }}}, - { MODKEY, XK_Up, moveresize, {.v = (int []){ 0, -25, 0, 0 }}}, - { MODKEY, XK_Right, moveresize, {.v = (int []){ 25, 0, 0, 0 }}}, - { MODKEY, XK_Left, moveresize, {.v = (int []){ -25, 0, 0, 0 }}}, - { MODKEY|ShiftMask, XK_Down, moveresize, {.v = (int []){ 0, 0, 0, 25 }}}, - { MODKEY|ShiftMask, XK_Up, moveresize, {.v = (int []){ 0, 0, 0, -25 }}}, - { MODKEY|ShiftMask, XK_Right, moveresize, {.v = (int []){ 0, 0, 25, 0 }}}, - { MODKEY|ShiftMask, XK_Left, moveresize, {.v = (int []){ 0, 0, -25, 0 }}}, + client: + + { MODKEY, XK_Down, moveresize, {.v = (int []){ 0, 25, 0, 0 }}}, + { MODKEY, XK_Up, moveresize, {.v = (int []){ 0, -25, 0, 0 }}}, + { MODKEY, XK_Right, moveresize, {.v = (int []){ 25, 0, 0, 0 }}}, + { MODKEY, XK_Left, moveresize, {.v = (int []){ -25, 0, 0, 0 }}}, + { MODKEY|ShiftMask, XK_Down, moveresize, {.v = (int []){ 0, 0, 0, 25 }}}, + { MODKEY|ShiftMask, XK_Up, moveresize, {.v = (int []){ 0, 0, 0, -25 }}}, + { MODKEY|ShiftMask, XK_Right, moveresize, {.v = (int []){ 0, 0, 25, 0 }}}, + { MODKEY|ShiftMask, XK_Left, moveresize, {.v = (int []){ 0, 0, -25, 0 }}}, If you want to automatically toggle the client floating when move/resize, replace the `if()` statement above with this code: diff --git a/dwm.suckless.org/patches/movestack/index.md b/dwm.suckless.org/patches/movestack/index.md @@ -1,17 +1,19 @@ -# movestack - -## Description +movestack +========= +Description +----------- This plugin allows you to move clients around in the stack and swap them with -the master. It emulates the behavior off mod+shift+j and mod+shift+k in Xmonad. +the master. It emulates the behavior off mod+shift+j and mod+shift+k in Xmonad. movestack(+1) will swap the client with the current focus with the next client. -movestack(-1) will swap the client with the current focus with the previous client. - -## Usage +movestack(-1) will swap the client with the current focus with the previous +client. - 1. Download the patch and apply according to the [general instructions](../). - 2. Include the `movestack.c` source file and add keys that call movestack. - Example from `config.default.h`: +Usage +----- +1. Download the patch and apply according to the [general instructions](../). +2. Include the `movestack.c` source file and add keys that call movestack. + Example from `config.default.h`: #include "movestack.c" static Key keys[] = { @@ -21,19 +23,19 @@ movestack(-1) will swap the client with the current focus with the previous clie { MODKEY|ShiftMask, XK_k, movestack, {.i = -1 } }, ... -## Download - +Download +-------- * [dwm-movestack-6.1.diff](dwm-movestack-6.1.diff) * [dwm-movestack-5.8.2.diff](dwm-movestack-5.8.2.diff) -## Author - +Author +------ * Niki Yoshiuchi - `<`aplusbi@gmail.com`>` -## Contributors - -* Moritz Wilhelmy (fix to work with dwm 5.8) - `<`moritz plus suckless at wzff dot de`>` - -## Note +Contributors +------------ +* Moritz Wilhelmy (fix to work with dwm 5.8) - <moritz plus suckless at wzff dot de> +Note +---- This patch seems to be equivalent to the [push](../push/) patch. diff --git a/dwm.suckless.org/patches/mpdcontrol/index.md b/dwm.suckless.org/patches/mpdcontrol/index.md @@ -5,10 +5,9 @@ Description ----------- Control Music Player Daemon via keybinds. -By default `MODKEY + Escape` stops/pauses the current song or plays it depending -on the state of the player. -If the song is a file on disk it pauses it, if it's a stream it stops it since -pause on a stream doesn't make sense. +By default `MODKEY + Escape` stops/pauses the current song or plays it +depending on the state of the player. If the song is a file on disk it pauses +it, if it's a stream it stops it since pause on a stream doesn't make sense. `MODKEY + F1` goes to previous song. `MODKEY + F2` goes to next song. diff --git a/dwm.suckless.org/patches/nametag/index.md b/dwm.suckless.org/patches/nametag/index.md @@ -3,20 +3,24 @@ nametag Description ----------- +This patch allows you to change the names of dwm's tags while it's running. By +default there is a 16 byte limit on tag names, and it uses dmenu to prompt for +tag names. The 6.1 patch is for the current tip +(cdec9782a1789bd5c3a84772fd59abb9da288597). It works with 6.0 but you should +add -D\_POSIX\_C\_SOURCE=2 to CPPFLAGS or you will get implicit delcaration +warnings for popen and pclose. -This patch allows you to change the names of dwm's tags while it's running. By default there is a 16 byte limit on tag names, and it uses dmenu to prompt for tag names. The 6.1 patch is for the current tip (cdec9782a1789bd5c3a84772fd59abb9da288597). It works with 6.0 but you should add -D_POSIX_C_SOURCE=2 to CPPFLAGS or you will get implicit delcaration warnings for popen and pclose. - -The `prepend` version prepends the tag name with a short string which is used as a format string for `sprintf` which gets the tag number as the argument. By default a tag name "foo" given to tag 5 will become tag "5:foo". +The `prepend` version prepends the tag name with a short string which is used +as a format string for `sprintf` which gets the tag number as the argument. By +default a tag name "foo" given to tag 5 will become tag "5:foo". Download -------- - * [dwm-nametag-6.1.diff](dwm-nametag-6.1.diff) * [dwm-nametag-prepend-6.1.diff](dwm-nametag-prepend-6.1.diff) * [dwm-nametag-5.7.2.diff](dwm-nametag-5.7.2.diff) Author ------ - * Evan Gates (emg) <[evan.gates@gmail.com](mailto:evan.gates@gmail.com)> * prepend version by [Ondřej Grover](mailto:ondrej.grover@gmail.com) diff --git a/dwm.suckless.org/patches/nextprev/index.md b/dwm.suckless.org/patches/nextprev/index.md @@ -1,17 +1,18 @@ -# next prev tag - -## Description +next prev tag +============= +Description +----------- * Increment or decrement the selected tag * [shiftview](//lists.suckless.org/dev/1104/7590.html).c is a better implementation of this, allowing you to rotate the selected tags -## Download - +Download +-------- * [nextprevtag.c](nextprevtag.c) -## Example Usage - +Example +------- static Key keys[] = { /* ... */ { MODKEY, XK_i, view_adjacent, { .i = +1 } }, @@ -27,6 +28,6 @@ }; -## Author - +Author +------ * Rob Pilling - robpilling gmail com diff --git a/dwm.suckless.org/patches/nmaster/index.md b/dwm.suckless.org/patches/nmaster/index.md @@ -1,14 +1,14 @@ -# nmaster +nmaster +======= -## History - -This patch restores the ability to have multiple clients in the master -area of the tiled layout. This feature was dropped from vanilla dwm in -version 4.4. The ntile mode from below is included in dwm as of version -6.0. - -## Description +History +------- +This patch restores the ability to have multiple clients in the master area of +the tiled layout. This feature was dropped from vanilla dwm in version 4.4. The +ntile mode from below is included in dwm as of version 6.0. +Description +----------- The figures show how tiling will work when the patch is applied. ntile (-|=) @@ -29,16 +29,16 @@ The figures show how tiling will work when the patch is applied. | | | | +-----+-----+-----+ -## Usage - +Usage +----- * Download `nmaster.c` into the source directory of dwm. * Add `nmaster` default value to your `config.h`. * Include `nmaster.c` in `config.h` after the definition of `nmaster`. * Add `ntile` and/or `nbstack` to your layouts. * Add keybindings to `incnmaster` and/or `setnmaster` to your `config.h`. -## Example - +Example +------- static const int nmaster = 2; /* default number of clients in the master area */ #include "nmaster.c" @@ -58,8 +58,8 @@ The figures show how tiling will work when the patch is applied. { MODKEY, XK_b, setlayout, {.v = &layouts[1] } }, ... -## Download - +Download +-------- * [nmaster-ncol.c](nmaster-ncol.c) (dwm 5.9) (20101210) - additional ncol layout (multiple masters side by side) * [nmaster-sym.c](nmaster-sym.c) (dwm 5.7.1) (20090927) - layout symbol shows the number of masters: `n]=`, `TnT` * [nmaster.c](nmaster.c) (dwm 5.6.1) (20090908) diff --git a/dwm.suckless.org/patches/noborder/index.md b/dwm.suckless.org/patches/noborder/index.md @@ -3,19 +3,16 @@ noborder Description ----------- - Remove the border when there is only one window visible. Download -------- - * [dwm-noborder-20170207-bb3bd6f.diff](dwm-noborder-20170207-bb3bd6f.diff) * [dwm-noborder-6.1.diff](dwm-noborder-6.1.diff) * [dwm-noborder-20160718-56a31dc.diff](dwm-noborder-20160718-56a31dc.diff) Authors ------- - * Eric Pruitt - <eric.pruitt@gmail.com> * Laslo Hunhold - <dev@frign.de> (6.1, git port) * Markus Teich - markus(DOT)teich(AT)stusta(DOT)de (simplification) diff --git a/dwm.suckless.org/patches/nrowgrid/index.md b/dwm.suckless.org/patches/nrowgrid/index.md @@ -3,7 +3,6 @@ nrowgrid Description ----------- - This grid layout gives you the option of determining the row count, which is set by `nmaster + 1`. So except for giving you a customizable grid, you also get the ability to show everything in one row, or in one column (`row = 1` and @@ -17,14 +16,12 @@ Example: splitting 2560 pixels into 6 cells gives you 2 cells with a width of an off trade I believe many would be comfortable with. I personally want the presence of only 2 clients to always result in a vertical -split. If you don't like this feature set the FORCE_VSPLIT to 0 in `config.h`. +split. If you don't like this feature set the FORCE\_VSPLIT to 0 in `config.h`. Download -------- - * [dwm-nrowgrid-6.1.diff](dwm-nrowgrid-6.1.diff) Authors ------- - * Chris Noxz - <chris@noxz.tech> diff --git a/dwm.suckless.org/patches/onlyquitonempty/index.md b/dwm.suckless.org/patches/onlyquitonempty/index.md @@ -3,7 +3,6 @@ onlyquitonempty Description ----------- - On the default keybinding of Alt-Shift-Q, it is possible to press it by accident, closing all your work. This patch makes it so dwm will only exit via quit() if no windows are open. @@ -13,12 +12,8 @@ count considered to be 'empty' via `EMPTY_WINDOW_COUNT`. Download -------- - * [dwm-onlyquitonempty-20180428-ba1a2cb.diff](dwm-onlyquitonempty-20180428-ba1a2cb.diff) Author ------ - * thatlittlegit - <personal@thatlittlegit.tk> - -index.md diff --git a/dwm.suckless.org/patches/pango/index.md b/dwm.suckless.org/patches/pango/index.md @@ -3,38 +3,37 @@ Pango Description ----------- - This relatively simple patch adds pango support for the status bar. This not only adds TrueType font support but also opens a couple of interesting possibilities that are not possible under barebone xft: -* **Simple markup** for status messages (optional, enable/disable it in your config.h) - using [pango markup](https://developer.gnome.org/pango/stable/PangoMarkupFormat.html). - So you can format your status messages specifying fg/bg colors, sizes, sub/superscripts, - underline, emphasis, bold, etc. You can do dynamic font switching, also! To play safe - with the rest of the status bar, markup support is restricted to the status message area - over which you have direct control. - -* **Fallback fonts**, so you can use -for example- some set of iconic fonts as your second - family: "DejaVu Sans, Icons 8" (see below). There are tons of monochromatic nice looking - TTF icons around the web these days as webfonts are becoming more and more popular. - Notice that you can also use the more powerful font switching enabled by pango markup to - achieve the same goal. Also don't be mislead by the fact that fontconfig understands - descriptors like "DejaVu Sans, Icons-8" or even font sequences defined as alias in your - fonts.conf. xft will pick one font once and for all, not on a char-by-char basis. +**Simple markup** for status messages (optional, enable/disable it in your +config.h) using +[pango markup](https://developer.gnome.org/pango/stable/PangoMarkupFormat.html). So +you can format your status messages specifying fg/bg colors, sizes, +sub/superscripts, underline, emphasis, bold, etc. You can do dynamic font +switching, also! To play safe with the rest of the status bar, markup support +is restricted to the status message area over which you have direct control. + +**Fallback fonts**, so you can use -for example- some set of iconic fonts as +your second family: "DejaVu Sans, Icons 8" (see below). There are tons of +monochromatic nice looking TTF icons around the web these days as webfonts are +becoming more and more popular. Notice that you can also use the more powerful +font switching enabled by pango markup to achieve the same goal. Also don't be +mislead by the fact that fontconfig understands descriptors like "DejaVu Sans, +Icons-8" or even font sequences defined as alias in your fonts.conf. xft will +pick one font once and for all, not on a char-by-char basis. The [Icons family](https://aur.archlinux.org/packages/ttf-font-icons/) is a -non-overlapping merge of Awesome and Ionicons fonts I've made for my statusbar. In case -you want to take a look at it, there is a -[cheatsheet](https://www.dropbox.com/s/9iysh2i0gadi4ic/icons.pdf) listing the icons and -their unicode points. +non-overlapping merge of Awesome and Ionicons fonts I've made for my statusbar. +In case you want to take a look at it, there is a +[cheatsheet](https://www.dropbox.com/s/9iysh2i0gadi4ic/icons.pdf) listing the +icons and their unicode points. Download -------- - * [dwm-pango-6.0.diff](dwm-pango-6.0.diff) Author ------ - * Carlos Pita (memeplex) <carlosjosepita@gmail.com> diff --git a/dwm.suckless.org/patches/pertag/index.md b/dwm.suckless.org/patches/pertag/index.md @@ -21,8 +21,8 @@ Download * [dwm-pertag-5.1.diff](dwm-pertag-5.1.diff) * Using pertag but with the same barpos - * [dwm-6.1-pertag_without_bar.diff](dwm-6.1-pertag_without_bar.diff) (5.2K) (20151109) - * [dwm-6.0-pertag_without_bar.diff](dwm-6.0-pertag_without_bar.diff) (5578b) (20140530) + * [dwm-6.1-pertag\_without\_bar.diff](dwm-6.1-pertag_without_bar.diff) (5.2K) (20151109) + * [dwm-6.0-pertag\_without\_bar.diff](dwm-6.0-pertag_without_bar.diff) (5578b) (20140530) * [dwm-5.8.2-pertag\_without\_bar.diff](dwm-5.8.2-pertag_without_bar.diff) Authors diff --git a/dwm.suckless.org/patches/pledge/index.md b/dwm.suckless.org/patches/pledge/index.md @@ -3,15 +3,12 @@ pledge Description ----------- - Restrict system operations on OpenBSD using [pledge(2)](https://man.openbsd.org/pledge). Download -------- - * [dwm-pledge-6.1.diff](dwm-pledge-6.1.diff) Authors ------- - * Klemens Nanni <kn@openbsd.org> diff --git a/dwm.suckless.org/patches/push/index.md b/dwm.suckless.org/patches/push/index.md @@ -1,7 +1,8 @@ -# push up/down - -## Description +push up/down +============ +Description +----------- `pushup` and `pushdown` provide a way to move clients inside the clients list. #include "push.c" @@ -11,19 +12,23 @@ { MODKEY|ControlMask, XK_j, pushdown, {0} }, { MODKEY|ControlMask, XK_k, pushup, {0} }, -`push_no_master` is the same as the regular `push` patch, but it does not push up nor push down into the master area. We have zoom() for that. +`push_no_master` is the same as the regular `push` patch, but it does not push +up nor push down into the master area. We have zoom() for that. -## Download +Download +-------- * [dwm-push-20160731-56a31dc.diff](dwm-push-20160731-56a31dc.diff) * [dwm-push-6.0.diff](dwm-push-6.0.diff) (1332b) - 2012/4/6 -* [dwm-6.0-push_no_master.diff](dwm-6.0-push_no_master.diff) +* [dwm-6.0-push\_no\_master.diff](dwm-6.0-push_no_master.diff) * [dwm-push-6.1.diff](dwm-push-6.1.diff) (1402b) - 2014/2/9 -* [dwm-6.1-push_no_master.diff](dwm-6.1-push_no_master.diff) - 2015/11/21 +* [dwm-6.1-push\_no\_master.diff](dwm-6.1-push_no_master.diff) - 2015/11/21 -## Note +Note +---- This patch seems to be equivalent to the [movestack](../movestack/) patch. -## Author +Author +------ * Unknown? * Updated by Jan Christoph Ebersbach <jceb@e-jc.de> -* push_no_master by Jente Hidskes <jthidskes@outlook.com> +* push\_no\_master by Jente Hidskes <jthidskes@outlook.com> diff --git a/dwm.suckless.org/patches/pwkl/index.md b/dwm.suckless.org/patches/pwkl/index.md @@ -3,15 +3,15 @@ Per-window keyboard layout Description ----------- -Basically, this patch implements per-window keyboard layout support in dwm. -It makes dwm remember current keyboard layout when a window is unfocused, -and restore it back when that window is focused again. +Basically, this patch implements per-window keyboard layout support in dwm. It +makes dwm remember current keyboard layout when a window is unfocused, and +restore it back when that window is focused again. Notes ----------- -Andreas Amann pointed out that "you cannot switch between tags per mouse -if an alternate layout is activated". He kindly created a patch that fixes -this: [see ml](//lists.suckless.org/dev/1010/6195.html). +Andreas Amann pointed out that "you cannot switch between tags per mouse if an +alternate layout is activated". He kindly created a patch that fixes this: +[see ml](//lists.suckless.org/dev/1010/6195.html). Download -------- diff --git a/dwm.suckless.org/patches/resizecorners/index.md b/dwm.suckless.org/patches/resizecorners/index.md @@ -1,15 +1,17 @@ -# resizecorners +resizecorners +============= -## Description - -By default, windows only from the bottom right corner. With this Patch, the mouse is warped to the nearest corner and you resize from there. - -## Download +Description +----------- +By default, windows only from the bottom right corner. With this Patch, the +mouse is warped to the nearest corner and you resize from there. +Download +-------- * [dwm-resizecorners-6.1.diff](dwm-resizecorners-6.1.diff) (17.02.2016) * [dwm-resizecorners-6.0.diff](dwm-resizecorners-6.0.diff) (12.05.2015) -## Author - +Author +------ * dusty - <dusty@teknik.io> * Klemens Nanni <[kl3@posteo.org](mailto:kl3@posteo.org)> (6.1 version) diff --git a/dwm.suckless.org/patches/restartsig/index.md b/dwm.suckless.org/patches/restartsig/index.md @@ -1,16 +1,17 @@ -# restartsig - -## Description +restartsig +========== +Description +----------- dwm can now be restarted via MOD+CTRL+SHIFT+Q or by kill -HUP dwmpid -In addition, a signal handler was added so that dwm cleanly quits by kill -TERM dwmpid - - -## Download +In addition, a signal handler was added so that dwm cleanly quits by kill -TERM +dwmpid. +Download +-------- * [dwm-restartsig-20180523-2991f37.diff](dwm-restartsig-20180523-2991f37.diff) (23.05.2018) -## Author - +Author +------ * cd diff --git a/dwm.suckless.org/patches/rmaster/index.md b/dwm.suckless.org/patches/rmaster/index.md @@ -1,22 +1,23 @@ -# rmaster - -## Description +rmaster +======= +Description +----------- Toggling between left-master (original behaviour) and right-master for the current monitor. -This patch only modifies the deafult layout 'tile', similar modifications can be -made to other custom layouts, like 'deck'. - -## Configuration +This patch only modifies the deafult layout 'tile', similar modifications can +be made to other custom layouts, like 'deck'. +Configuration +------------- /*config.h*/ { MODKEY, XK_i, togglermaster, {0} }, -## Download - +Download +-------- * [dwm-rmaster-6.1.diff](dwm-rmaster-6.1.diff) (1836b) (20170213) -## Author - +Author +------ * phi <crispyfrog@163.com> diff --git a/dwm.suckless.org/patches/rotatestack/index.md b/dwm.suckless.org/patches/rotatestack/index.md @@ -1,19 +1,16 @@ - Rotate stack ============ Description ----------- - -Stack rotation moves a client from the bottom to the top of the stack -(or the other way round). This effectively rotates the clients by one -position clockwise (or CCW, respectively). +Stack rotation moves a client from the bottom to the top of the stack (or the +other way round). This effectively rotates the clients by one position +clockwise (or CCW, respectively). It should play well with arbitrary stack layouts and nmaster values. -One may think of it as moving the zoom through the list of clients, very -much in the same way as scrolling moves the view port around a pane. - +One may think of it as moving the zoom through the list of clients, very much +in the same way as scrolling moves the view port around a pane. Download -------- diff --git a/dwm.suckless.org/patches/runorraise/index.md b/dwm.suckless.org/patches/runorraise/index.md @@ -5,25 +5,24 @@ Description ----------- This patch adds a equivalent to stumpwm's [run-or-raise] action for DWM. -The idea is to have each frequently-used application one key combination away at all times, irrespective of which workspace it is on, -or how recently it has been used, or even whether it’s running or not. +The idea is to have each frequently-used application one key combination away +at all times, irrespective of which workspace it is on, or how recently it has +been used, or even whether it’s running or not. Usage ----- - -1 In your config.h: +1. In your config.h: static const char *emacs[] = { "emacsclient", "-c", NULL, NULL, "Emacs" }; static const char *browser[] = { "firefox", NULL, NULL, NULL, "Firefox" }; -2 In your keybindings add something like: +2. In your keybindings add something like: { Modkey, XK_e, runorraise, {.v = emacs } }, { Modkey, XK_f, runorraise, {.v = firefox } }, Download -------- - * [dwm-6.1-runorraise.diff](dwm-6.1-runorraise.diff) Authors diff --git a/dwm.suckless.org/patches/save_floats/index.md b/dwm.suckless.org/patches/save_floats/index.md @@ -1,19 +1,22 @@ -# save floats patch +save floats patch +================= -## Description +Description +----------- This patch saves size and position of every floating window before it is forced into tiled mode. If the window is made floating again, the old dimensions will be restored. -## Download - +Download +-------- * [dwm-savefloats-20181212-b69c870.diff](dwm-savefloats-20181212-b69c870.diff) * [dwm-savefloats-20160723-56a31dc.diff](dwm-savefloats-20160723-56a31dc.diff) * [dwm-savefloats-20120406-10e232f.diff](dwm-savefloats-20120406-10e232f.diff) * [dwm-savefloats-6.1.diff](dwm-savefloats-6.1.diff) * [dwm-savefloats-6.0.diff](dwm-savefloats-6.0.diff) -## Author +Author +------ * http://nymu.net/patches * Updated by Jan Christoph Ebersbach - <jceb@e-jc.de> * Ivan Tham <pickfire@riseup.net> (git port) diff --git a/dwm.suckless.org/patches/scheme_switch/index.md b/dwm.suckless.org/patches/scheme_switch/index.md @@ -6,21 +6,22 @@ Description [Solarized](http://ethanschoonover.com/solarized) is a color scheme by Ethan Schoonover which exists in a dark and a light variant. -This patch allows you defining more then one color-Scheme in the colors array in -config.def.h (or config.h) and cycle through the schemes by schemeCycle() function -(bound to Mod+Shift+z) and toggle between corresponding light and dark schemes -with schemeToggle() function (bound to Mod+Shift+t). +This patch allows you defining more then one color-Scheme in the colors array +in config.def.h (or config.h) and cycle through the schemes by schemeCycle() +function (bound to Mod+Shift+z) and toggle between corresponding light and dark +schemes with schemeToggle() function (bound to Mod+Shift+t). -In the example config.def.h there are first defined the colors for the dark variant of -solarized theme, after that the colors for the light variant, and then the original dwm -colorscheme, wich has no corresponding light scheme. If the last one is selected -shemeToggle() will do nothing, but one can cycle to the dark scheme (or the light one) -and then toggle between light and dark. If there where colors defined after the original -scheme, then schemeToggle() would toggle between original and the consecutive. +In the example config.def.h there are first defined the colors for the dark +variant of solarized theme, after that the colors for the light variant, and +then the original dwm colorscheme, wich has no corresponding light scheme. If +the last one is selected shemeToggle() will do nothing, but one can cycle to +the dark scheme (or the light one) and then toggle between light and dark. If +there where colors defined after the original scheme, then schemeToggle() would +toggle between original and the consecutive. Download -------- -* [dwm-scheme_switch-20170804-ceac8c9.diff](dwm-scheme_switch-20170804-ceac8c9.diff) +* [dwm-scheme\_switch-20170804-ceac8c9.diff](dwm-scheme_switch-20170804-ceac8c9.diff) Authors ------- diff --git a/dwm.suckless.org/patches/scratchpad/index.md b/dwm.suckless.org/patches/scratchpad/index.md @@ -3,22 +3,19 @@ scratchpad Description ----------- +The scratchpad patch allows you to spawn or restore a floating terminal window. +It is usually useful to have one to do some short typing. -The scratchpad patch allows you to spawn or restore a floating terminal -window. It is usually useful to have one to do some short typing. - -A tool like detach (http://detach.sourceforge.net) turns it into a -launchpad for X applications. +A tool like detach (http://detach.sourceforge.net) turns it into a launchpad +for X applications. By default your terminal (st) is used, and the default key binding is `MODKEY+XK_grave`. A `config.def.h` change is included in the patch. Download -------- - * [dwm-scratchpad-20170207-bb3bd6f.diff](dwm-scratchpad-20170207-bb3bd6f.diff) Author ------ - * Ivan J. <parazyd@dyne.org> diff --git a/dwm.suckless.org/patches/single_tagset/index.md b/dwm.suckless.org/patches/single_tagset/index.md @@ -3,12 +3,11 @@ single tagset Description ----------- - This patch addresses the multi-monitor setup. Instead of having separate tags for every monitor there is just one list of tags for all monitors. Instead of -moving windows from one monitor to the other, the desired tag from the -other monitor can just be selected and all windows will be drawn on the -current monitor. +moving windows from one monitor to the other, the desired tag from the other +monitor can just be selected and all windows will be drawn on the current +monitor. Several deep changes needed to be made: 1. Macro ISVISIBLE expects a second parameter, the monitor @@ -19,12 +18,10 @@ Several deep changes needed to be made: Download -------- -Please be aware that this patch probably breaks any other patch! - -* [dwm-single_tagset-20160731-56a31dc.diff](dwm-single_tagset-20160731-56a31dc.diff) -* [dwm-6.1-single_tagset.diff](dwm-6.1-single_tagset.diff) (16634b) (20140209) -* [dwm-10e232f9ace7-single_tagset.diff](dwm-10e232f9ace7-single_tagset.diff) (14748b) (20120406) -* [dwm-single_tagset-6.0.diff](dwm-single_tagset-6.0.diff) (14417b) (20120406) +* [dwm-single\_tagset-20160731-56a31dc.diff](dwm-single_tagset-20160731-56a31dc.diff) +* [dwm-6.1-single\_tagset.diff](dwm-6.1-single_tagset.diff) (16634b) (20140209) +* [dwm-10e232f9ace7-single\_tagset.diff](dwm-10e232f9ace7-single_tagset.diff) (14748b) (20120406) +* [dwm-single\_tagset-6.0.diff](dwm-single_tagset-6.0.diff) (14417b) (20120406) Authors ------- diff --git a/dwm.suckless.org/patches/singularborders/index.md b/dwm.suckless.org/patches/singularborders/index.md @@ -3,7 +3,9 @@ singular borders Description ----------- -`singular borders` changes the way DWM handles the borders. Firsty, borders against the left, bottom and right screen edges are removed (they are placed off-screen) and secondly, borders between clients now overlap eachother. +`singular borders` changes the way DWM handles the borders. Firsty, borders +against the left, bottom and right screen edges are removed (they are placed +off-screen) and secondly, borders between clients now overlap eachother. Original behaviour : @@ -31,12 +33,14 @@ Description Issues ------ -* In a multi-monitor setup, you will see monitor one's borders on monitor two and vice-versa. This is because the borders on screen edges are simply placed off-screen. +* In a multi-monitor setup, you will see monitor one's borders on monitor two + and vice-versa. This is because the borders on screen edges are simply placed + off-screen. Download -------- * [dwm-6.0-singularborders.diff](dwm-6.0-singularborders.diff) -* [dwm-6.0-singularborders_bstack.diff](dwm-6.0-singularborders_bstack.diff) +* [dwm-6.0-singularborders\_bstack.diff](dwm-6.0-singularborders_bstack.diff) Author ------ diff --git a/dwm.suckless.org/patches/sizehints/index.md b/dwm.suckless.org/patches/sizehints/index.md @@ -1,19 +1,22 @@ -# obey all sizehints +obey all sizehints +================== -## Description +Description +----------- +This patch makes dwm obey even "soft" sizehints for new clients. Any window +that requests a specific initial size will be floated and set to that size. +Unlike with "fixed size" windows, you are able to resize and/or unfloat these +windows freely - only the initial state is affected. -This patch makes dwm obey even "soft" sizehints for new clients. -Any window that requests a specific initial size will be floated and set to that size. -Unlike with "fixed size" windows, you are able to resize and/or unfloat these windows freely - only the initial state is affected. - -This patch is honestly of limited utility since there are many clients that will abuse it. +This patch is honestly of limited utility since there are many clients that +will abuse it. There is no configuration for this patch. -## Download - +Download +-------- * [dwm-sizehints-5.7.2.diff](dwm-sizehints-5.7.2.diff) (695B) (20091221) -## Author - +Author +------ * Ray Kohler - ataraxia937 gmail com diff --git a/dwm.suckless.org/patches/spawn_cwd/index.md b/dwm.suckless.org/patches/spawn_cwd/index.md @@ -1,16 +1,17 @@ -# spawn_cwd +spawn\_cwd +========== -## Description - -Spawns programs from currently focused client's working directory. See this +Description +----------- +Spawns programs from currently focused client's working directory. See this [blog post](https://sunaku.github.io/dwm-spawn-cwd-patch.html) and this [announcement thread](http://thread.gmane.org/gmane.comp.misc.suckless/7959) for more information. -## Download - -* [dwm-5.9.1-spawn_cwd.diff](dwm-5.9.1-spawn_cwd.diff) - -## Author +Download +-------- +* [dwm-5.9.1-spawn\_cwd.diff](dwm-5.9.1-spawn_cwd.diff) +Author +------ * Suraj N. Kurapati - <sunaku@gmail.com> diff --git a/dwm.suckless.org/patches/stacker/index.md b/dwm.suckless.org/patches/stacker/index.md @@ -3,32 +3,31 @@ stacker Description ----------- - -This patch provides comprehensive utilities for managing the client stack. It implements -two new commands: `focusstack` (which is a replacement for the original `focusstack` -command) and `pushstack`. The first one is for focusing clients while the second one moves -clients around the stack. Both commands take the same kind of argument: - -* Pass `PREVSEL` to focus/push the previously selected client in the current tagset. - -* Pass `INC(+/-inc)` to focus/push relatively to the selected client. This will wrap - around the stack limits. - -* Pass a positive number to focus/push relatively to the beginning of the stack. Out of - limit values will be truncated to the position of the last visible client and won't wrap - around. - -* Pass a negative number to focus/push relatively to the last visible client in the stack. - Here -1 means the last client, -2 the previous to last client, etc. Out of limit values - will be truncated to the position of the first visible client (0) and won't wrap +This patch provides comprehensive utilities for managing the client stack. It +implements two new commands: `focusstack` (which is a replacement for the +original `focusstack` command) and `pushstack`. The first one is for focusing +clients while the second one moves clients around the stack. Both commands take +the same kind of argument: + +* Pass `PREVSEL` to focus/push the previously selected client in the current + tagset. +* Pass `INC(+/-inc)` to focus/push relatively to the selected client. This will + wrap around the stack limits. +* Pass a positive number to focus/push relatively to the beginning of the + stack. Out of limit values will be truncated to the position of the last + visible client and won't wrap around. +* Pass a negative number to focus/push relatively to the last visible client in + the stack. Here -1 means the last client, -2 the previous to last client, etc. + Out of limit values will be truncated to the position of the first visible + client (0) and won't wrap around. Default key bindings -------------------- - -There are two parallel sets of bindings: one for the `focus*` family and the other for the -`push*` family. The keys are the same for both sets but they do differ in the modifiers: -simply `MODKEY` for the `focus*` family and `MODKEY|ShiftMask` for the `push*` family. +There are two parallel sets of bindings: one for the `focus*` family and the +other for the `push*` family. The keys are the same for both sets but they do +differ in the modifiers: simply `MODKEY` for the `focus*` family and +`MODKEY|ShiftMask` for the `push*` family. Key Argument Description --------------------------------------- @@ -40,22 +39,21 @@ simply `MODKEY` for the `focus*` family and `MODKEY|ShiftMask` for the `push*` f z 2 Third position x -1 Last position -The `q`, `a`, `z` keys are aligned more or less vertically in the us keyboard layout. They -are intended to be used as quick positional shortcuts to specific applications. So if you -have 9 tags you get 9\*3=27 shortcuts in a two-level hierarchy of clients. The \` key is -above the `Tab` key and it's intended to complement the "move to previously selected -tag" function of dwm at the intra-tag level. Finally, the `x` key is like "I don't care so -much about you just right now but you can still live in this tag". +The `q`, `a`, `z` keys are aligned more or less vertically in the us keyboard +layout. They are intended to be used as quick positional shortcuts to specific +applications. So if you have 9 tags you get 9\*3=27 shortcuts in a two-level +hierarchy of clients. The \` key is above the `Tab` key and it's intended to +complement the "move to previously selected tag" function of dwm at the +intra-tag level. Finally, the `x` key is like "I don't care so much about you +just right now but you can still live in this tag". -Notice that `MODKEY|ShiftMask+q` collides with the default binding for quitting dwm, which -stacker changes to `MODKEY|ShiftMask+BackSpace`. +Notice that `MODKEY|ShiftMask+q` collides with the default binding for quitting +dwm, which stacker changes to `MODKEY|ShiftMask+BackSpace`. Download -------- - * [dwm-stacker-6.0.diff](dwm-stacker-6.0.diff) Author ------ - * Carlos Pita (memeplex) <carlosjosepita@gmail.com> diff --git a/dwm.suckless.org/patches/stackmfact/index.md b/dwm.suckless.org/patches/stackmfact/index.md @@ -3,7 +3,8 @@ stackmfact Description ----------- -`stackmfact` enables you to vertically resize clients in the stack, like the regular mfact enables you to horizontally resize the master client(s). +`stackmfact` enables you to vertically resize clients in the stack, like the +regular mfact enables you to horizontally resize the master client(s). smfact 0.00 (original behaviour): diff --git a/dwm.suckless.org/patches/status2d/index.md b/dwm.suckless.org/patches/status2d/index.md @@ -3,8 +3,8 @@ status2d Description ----------- -Status2d allows colors and rectangle drawing in your DWM status bar. -See below an example of my status bar with multi-cpu and battery. +Status2d allows colors and rectangle drawing in your DWM status bar. See below +an example of my status bar with multi-cpu and battery. ![Status2d screenshot](status2d.png) @@ -16,17 +16,18 @@ Download Usage ----- -* ^rx,y,w,h^ : draw a rectangle. +* ^rx,y,w,h^: draw a rectangle. -* ^c#FF0000^ : set foreground color. +* ^c#FF0000^: set foreground color. -* ^f11^ : forward the x draawing cursor, only needed for drawings, not text. +* ^f11^: forward the x draawing cursor, only needed for drawings, not text. -* ^d^ : reset foreground color to SchemeNorm. +* ^d^: reset foreground color to SchemeNorm. Example ------- -xsetroot -name "dwmstatus ^c#FF0000^ in red with red rectangle ^r0,0,10,10^^f10^^c#FFFFFF^ and white text" +xsetroot -name "dwmstatus ^c#FF0000^ in red with red rectangle +^r0,0,10,10^^f10^^c#FFFFFF^ and white text" Authors ------- diff --git a/dwm.suckless.org/patches/statusbutton/index.md b/dwm.suckless.org/patches/statusbutton/index.md @@ -1,19 +1,22 @@ -# statusbutton - -## Description +statusbutton +============ +Description +----------- Adds a clickable button to the left hand side of the statusbar. -The appearance of this button can be configured by modifying buttonbar in config.def.h +The appearance of this button can be configured by modifying buttonbar in +config.def.h ClkButton is added as the target for clicking this button. -It has been configured for now in config.def.h to spawn dmenucmd when clicked with Button1. - -## Download +It has been configured for now in config.def.h to spawn dmenucmd when clicked +with Button1. +Download +-------- * [dwm-statusbutton-20180524-c8e9479.diff](dwm-statusbutton-20180524-c8e9479.diff) (24.05.2018) -## Author - +Author +------ * cd diff --git a/dwm.suckless.org/patches/statuscolors/index.md b/dwm.suckless.org/patches/statuscolors/index.md @@ -1,18 +1,30 @@ -# colored status text +colored status text +=================== -## Description - -This patch enables colored text in the status bar. It changes the way colors are defined in config.h, allowing the user to define multiple color combinations for use in their status script. - -## Configuration +Description +----------- +This patch enables colored text in the status bar. It changes the way colors +are defined in config.h, allowing the user to define multiple color +combinations for use in their status script. +Configuration +------------- Download the patch and apply it according to the [general instructions](../). -Modify the colors definition in 'config.h' to suit your needs. Make sure to define at least 3 colors as they will be used for 'normal', 'selected', and 'urgent' windows, respectively. - -## Usage - -Add code to your status script to output the raw characters '\x03' to switch to the 'urgent' color, or '\x04' to switch to the 4th defined color, etc. Note that the color indices in the status text are +1 from the definition in 'config.h' (because '\0' is the string terminator). To switch back to the normal text color use '\x01'. To enter the raw character '\x01' in vim, press ctrl+v followed by x, 0, and 1 in that order. '\x01' gives the first character, which appears as a bold "A" on the screen to distinguish it from the regular character A. +Modify the colors definition in 'config.h' to suit your needs. Make sure to +define at least 3 colors as they will be used for 'normal', 'selected', and +'urgent' windows, respectively. + +Usage +----- +Add code to your status script to output the raw characters '\x03' to switch to +the 'urgent' color, or '\x04' to switch to the 4th defined color, etc. Note +that the color indices in the status text are +1 from the definition in +'config.h' (because '\0' is the string terminator). To switch back to the +normal text color use '\x01'. To enter the raw character '\x01' in vim, press +ctrl+v followed by x, 0, and 1 in that order. '\x01' gives the first character, +which appears as a bold "A" on the screen to distinguish it from the regular +character A. ### Example @@ -28,8 +40,8 @@ The following definition in 'config.h': // add more here }; -Coupled with a matching status script produces the following: - ![Example Colored Status Text](statuscolors.png) +Coupled with a matching status script produces the following: ![Example Colored +Status Text](statuscolors.png) A really silly example: @@ -54,17 +66,18 @@ An example status script snippet to take advantage of the colors: echo -e $status -## Download - +Download +-------- * [dwm-5.7.2-statuscolors.diff](dwm-5.7.2-statuscolors.diff) * [dwm-5.8.2-statuscolors.diff](dwm-5.8.2-statuscolors.diff) * [dwm-statuscolors-5.9.diff](dwm-statuscolors-5.9.diff) * [dwm-statuscolors-6.1.diff](dwm-statuscolors-6.1.diff) * [dwm-statuscolors-20181008-b69c870.diff](dwm-statuscolors-20181008-b69c870.diff) - : This patch applies cleanly on mainline dwm from Jan 7 2017 to at least Oct + This patch applies cleanly on mainline dwm from Jan 7 2017 to at least Oct 8 2018. It includes additional config.def.h color entries. -## Authors +Authors +------- * Jeremy Jay - [(original patch)](//lists.suckless.org/dwm/0812/7023.html) * Axel Bayerl - (update to 5.7.2) * Voltaic - (update to 5.8.2, 5.9) diff --git a/dwm.suckless.org/patches/statuspadding/index.md b/dwm.suckless.org/patches/statuspadding/index.md @@ -1,7 +1,8 @@ -# statuspadding - -## Description +statuspadding +============= +Description +----------- This makes the amount of horizontal and vertical padding in the status bar into configurable options. @@ -17,10 +18,10 @@ vertpadbar The defaults in config.def.h leave dwm with the same appearance as pre-patch except StatusText now has left padding in addition to right padding. -## Download - +Download +-------- * [dwm-statuspadding-20150524-c8e9479.diff](dwm-statuspadding-20150524-c8e9479.diff) (24.05.2018) -## Author - +Author +------ * cd diff --git a/dwm.suckless.org/patches/stdin/index.md b/dwm.suckless.org/patches/stdin/index.md @@ -3,19 +3,16 @@ stdin Description ----------- - -dwm releases before 5.3 read the status text from stdin. -This patch is mainly a workaround for the freezing issue caused by -`XSelectInput` with the previous version of the [warp](../warp/) patch. -Some people might like to write their status to a pipe, though. +dwm releases before 5.3 read the status text from stdin. This patch is mainly a +workaround for the freezing issue caused by `XSelectInput` with the previous +version of the [warp](../warp/) patch. Some people might like to write their +status to a pipe, though. Download -------- - * [dwm-r1533-stdin.diff](dwm-r1533-stdin.diff) Author ------ - -This was originally part of dwm-5.2 and written by Anselm R. Garbe. -It was ported to later versions of dwm by Moritz Wilhelmy, mw wzff de. +This was originally part of dwm-5.2 and written by Anselm R. Garbe. It was +ported to later versions of dwm by Moritz Wilhelmy, mw wzff de. diff --git a/dwm.suckless.org/patches/sticky/index.md b/dwm.suckless.org/patches/sticky/index.md @@ -1,16 +1,18 @@ -# sticky - -## Description +sticky +====== +Description +----------- Press `MODKEY+s` (default) to make a client 'sticky'. A sticky client is visible on all tags. This is similar to setting the client's `tags` to all 1's, but with the ability to easily return it to its original tag by toggling it off by pressing `MODKEY+s` again. -## Download - +Download +-------- * [dwm-sticky-6.1.diff](dwm-sticky-6.1.diff) * [dwm-sticky-20160911-ab9571b.diff](dwm-sticky-20160911-ab9571b.diff) -## Author +Author +------ * Ryan Roden-Corrent <ryan@rcorre.net> diff --git a/dwm.suckless.org/patches/swallow/index.md b/dwm.suckless.org/patches/swallow/index.md @@ -3,23 +3,19 @@ swallow Description ----------- - This patch adds "window swallowing" to dwm as known from Plan 9's windowing system `rio`. -Clients marked with `isterminal` in config.h swallow a window opened by -any child process, e.g. running `xclock` in a terminal. -Closing the `xclock` window restores the terminal window in the current -position. +Clients marked with `isterminal` in config.h swallow a window opened by any +child process, e.g. running `xclock` in a terminal. Closing the `xclock` window +restores the terminal window in the current position. -This patch helps users spawning a lot of graphical programs from their -command line by avoiding cluttering the screen with many unusable terminals. -Being deep down in a directory hierarchy just does not make the use of -dmenu feasible. +This patch helps users spawning a lot of graphical programs from their command +line by avoiding cluttering the screen with many unusable terminals. Being deep +down in a directory hierarchy just does not make the use of dmenu feasible. Dependencies ------------ - * libxcb * Xlib-libxcb * xcb-res @@ -29,25 +25,22 @@ Resource Extension which is unsupported in vanilla Xlib. Download -------- - * [dwm-swallow-20170909-ceac8c9.diff](dwm-swallow-20170909-ceac8c9.diff) * [dwm-swallow-6.1.diff](dwm-swallow-6.1.diff) * [dwm-swallow-20160717-56a31dc.diff](dwm-swallow-20160717-56a31dc.diff) Notes ----- - The window swallowing functionality requires `dwm` to walk the process tree, which is an inherently OS-specific task. Only Linux is supported at this time. -Please contact one of the authors if you would like to help expand the list -of supported operating systems. +Please contact one of the authors if you would like to help expand the list of +supported operating systems. -Only terminals created by local processes can swallow windows, and only -windows created by local processes can be swallowed. +Only terminals created by local processes can swallow windows, and only windows +created by local processes can be swallowed. Authors ------- - * Rob King - <jking@deadpixi.com> * Laslo Hunhold - <dev@frign.de> (6.1, git port) * Petr Šabata - <contyk@redhat.com> (bugfixes) diff --git a/dwm.suckless.org/patches/swapfocus/index.md b/dwm.suckless.org/patches/swapfocus/index.md @@ -1,15 +1,21 @@ -# swap focus +swap focus +========== -## Description -This patch makes it possible to switch focus with one single shortcut (alt-s) instead of having to think if you should use alt-j or alt-k for reaching the last used window. +Description +----------- +This patch makes it possible to switch focus with one single shortcut (alt-s) +instead of having to think if you should use alt-j or alt-k for reaching the +last used window. -## Download +Download +-------- * [dwm-swapfocus-20160731-56a31dc.diff](dwm-swapfocus-20160731-56a31dc.diff) * [dwm-6.1-swapfocus.diff](dwm-6.1-swapfocus.diff) (1807b) (20140209) * [dwm-10e232f9ace7-swapfocus.diff](dwm-10e232f9ace7-swapfocus.diff) (1484b) (20120406) * [dwm-swapfocus-6.0.diff](dwm-swapfocus-6.0.diff) (1482b) (20120406) * [dwm-5.8.2-swap.diff](dwm-5.8.2-swap.diff) (dwm 5.8.2) -## Author +Author +------ * Lasse Engblom * Jan Christoph Ebersbach - <jceb@e-jc.de> diff --git a/dwm.suckless.org/patches/switchcol/index.md b/dwm.suckless.org/patches/switchcol/index.md @@ -1,20 +1,22 @@ -# switchcol - -## Description +switchcol +========= +Description +----------- Switch focus between the 2 columns (master or stack) easily. This patch only has one function, it remembers the most recently focused client in the 2 columns for each tag (it is implemented by searching the stack list to find the most recent client in the other column). -## Configuration - +Configuration +------------- /*config.h*/ { MODKEY, XK_n, switchcol, {0} }, -## Download - +Download +-------- * [dwm-switchcol-6.1.diff](dwm-switchcol-6.1.diff) (1126b) (20160325) -## Author +Author +------ * phi <crispyfrog@163.com> diff --git a/dwm.suckless.org/patches/tab/index.md b/dwm.suckless.org/patches/tab/index.md @@ -3,15 +3,15 @@ tab Description ----------- - Transforms the monocle layout into a ''tabbed'' layout if more than one window -is present on the monocle view. Navigating from window to window is done by -clicking on the window tabs or using the usual Mod1-j, Mod1-k keys. The tabs are -arranged in a bar on top or at bottom of the screen, which can also be displayed -in the other layouts than monocle. Three display modes can be selected at run -time, auto display, permanent display and no display. In permanent mode the tab -bar is always display independently of the layout, while in the auto mode it is -displayed only with the monocle layout and in presence of several windows. +is present on the monocle view. Navigating from window to window is done by +clicking on the window tabs or using the usual Mod1-j, Mod1-k keys. The tabs +are arranged in a bar on top or at bottom of the screen, which can also be +displayed in the other layouts than monocle. Three display modes can be +selected at run time, auto display, permanent display and no display. In +permanent mode the tab bar is always display independently of the layout, while +in the auto mode it is displayed only with the monocle layout and in presence +of several windows. This patch can be used as an alternative to the [tabbed](//tools.suckless.org/tabbed/) tool. It differs in two ways: the @@ -21,15 +21,15 @@ set of applications to be supported. Usage ----- +With the default configuration, use the key combination Mod1-w to toggle the +tab bar display. Switch focus to a window with a mouse left-click on its tab or +by using the usual Mod1-j, Mod1-k commands. Usage is also documented in the dwm +man page once the patch is applied. -With the default configuration, use the key combination Mod1-w to toggle the tab -bar display. Switch focus to a window with a mouse left-click on its tab or by -using the usual Mod1-j, Mod1-k commands. Usage is also documented in the dwm man -page once the patch is applied. - -The selected view (''tag'') is reminded at the right corner of the tab bar. This -feature is mainly meant to be used when the standard status bar is disabled. In -case of a multi-tag view three dots are displayed without additional details. +The selected view (''tag'') is reminded at the right corner of the tab bar. +This feature is mainly meant to be used when the standard status bar is +disabled. In case of a multi-tag view three dots are displayed without +additional details. Configuration and Installation ------------------------------ @@ -43,7 +43,8 @@ Configuration and Installation * Run make and make install. The bar is displayed only with monocle layout when the view contains more than -one window. The section "More Options" explains how to add more display options. +one window. The section "More Options" explains how to add more display +options. #### Using an existing customised configuration file @@ -57,7 +58,8 @@ one window. The section "More Options" explains how to add more display options. static const int showtab = showtab_auto; /* Default tab bar show mode */ static const Bool toptab = True; /* False means bottom tab bar */ -If you use the combined pertag+tab patch, include also (adapt the number of '0' to your `tags` array configuration): +If you use the combined pertag+tab patch, include also (adapt the number of '0' +to your `tags` array configuration): /* default layout per tags */ /* The first element is for all-tag view, following i-th element corresponds to */ @@ -72,8 +74,8 @@ section. ### More Options -Pressing the key Mod1-w will cycle over the display modes of the tab bar described below with -the following element added to the `keys` array: +Pressing the key Mod1-w will cycle over the display modes of the tab bar +described below with the following element added to the `keys` array: { MODKEY, XK_w, tabmode, {-1} } @@ -86,50 +88,48 @@ An example on how to insert these lines can be found in the default config file template, config.def.h. The tab bar includes three display options: always, never, auto. In auto mode, -the tab bar is displayed only with the monocle layout and when the view contains -more than one window. The modes available at run time can be selected by -changing the order of the elements in the `showtab_mode` enum of the config.h -configuration file: the modes before `showtab_nmodes` are enabled, the ones -after are disabled. The default mode is specified in the `showtab` variable, it -must be one of the enabled modes. +the tab bar is displayed only with the monocle layout and when the view +contains more than one window. The modes available at run time can be selected +by changing the order of the elements in the `showtab_mode` enum of the +config.h configuration file: the modes before `showtab_nmodes` are enabled, the +ones after are disabled. The default mode is specified in the `showtab` +variable, it must be one of the enabled modes. Note: keyboard shortcuts to switch to a given display mode can be defined by -using the `tabmode` function like in the definition of the `Mod1-w` -key provided above and passing as argument the display mode -(`showtab_never`, `showtab_always`, -`showtab_auto`) instead of -1. +using the `tabmode` function like in the definition of the `Mod1-w` key +provided above and passing as argument the display mode (`showtab_never`, +`showtab_always`, `showtab_auto`) instead of -1. The tab bar can be displayed on top or at bottom of the screen, which is -controlled by the 'toptab' variable. If the tab bar is displayed at bottom, then -it is recommended to set the variable `resizehints` of the config.h file to -False. This setting prevents possible gap between the windows and the tab bar. -You can find more details about this variable and gap between windows in the -dwm FAQ. +controlled by the 'toptab' variable. If the tab bar is displayed at bottom, +then it is recommended to set the variable `resizehints` of the config.h file +to False. This setting prevents possible gap between the windows and the tab +bar. You can find more details about this variable and gap between windows in +the dwm FAQ. Download -------- - -<i>Please contact the author if the patch provided for the git master branch does not work with the current head.</i> - * Tab patch alone * For dwm 6.1: [dwm-6.1-tab-v2b.diff](dwm-6.1-tab-v2b.diff) * For dwm from the git master branch: [dwm-tab-v2b-56a31dc.diff](dwm-tab-v2b-56a31dc.diff) - -* Combined patch of tab and the [pertag](../pertag/) patch from Jan Christoph Ebersbach. - * Follow the [link](../pertag/) for the description of this patch and the credits. The possibility to define the default layout per view has been added. +* Combined patch of tab and the [pertag](../pertag/) patch from Jan Christoph + Ebersbach. + * Follow the [link](../pertag/) for the description of this patch and the + credits. The possibility to define the default layout per view has been added. * For dwm 6.1: [dwm-6.1-pertag-tab-v2b.diff](dwm-6.1-pertag-tab-v2b.diff) - * For dwm from the git master branch: [dwm-tab-v2b-pertab-56a31dc.diff](dwm-tab-v2b-pertab-56a31dc.diff) + * For dwm from the git master branch: + [dwm-tab-v2b-pertab-56a31dc.diff](dwm-tab-v2b-pertab-56a31dc.diff) Change log ---------- - -* **v2b** - Fixed in the pertag-tab patch the support for per-tag default layout specification. No change in the tab only patch. -* **v2a** - Typo corrected in the man page. For the combined pertag-tab patch, specification of a default layout per-tag layout was added in the config.h configuration file, but it was not taken into account properly. The version v2b fixed this issue. -* **v2** - First public version. - -Author ------- +* **v2b** Fixed in the pertag-tab patch the support for per-tag default layout + specification. No change in the tab only patch. +* **v2a** Typo corrected in the man page. For the combined pertag-tab patch, + specification of a default layout per-tag layout was added in the config.h + configuration file, but it was not taken into account properly. The version v2b + fixed this issue. +* **v2** First public version. + +Authors +------- * Philippe Gras - `<philippe dot gras at free dot fr>` diff --git a/dwm.suckless.org/patches/tagall/index.md b/dwm.suckless.org/patches/tagall/index.md @@ -1,17 +1,19 @@ -# tag all - -## Description +tag all +======= +Description +----------- Shortcut to move all (floating) windows from one tag to another. -## Download +Download +-------- * [dwm-tagall-20160731-56a31dc.diff](dwm-tagall-20160731-56a31dc.diff) * [dwm-tagall-6.1.diff](dwm-tagall-6.1.diff) (1058b) (20140209) * [dwm-10e232f9ace7-tagall.diff](dwm-10e232f9ace7-tagall.diff) (988b) (20120406) * [dwm-tagall-6.0.diff](dwm-tagall-6.0.diff) (988b) (20120406) -## Configuration - +Configuration +------------- * MODKEY+Shift+F1 moves all floating windows of the current tag to tag 1 { MODKEY|ShiftMask, XK_F1, tagall, {.v = "F1"} }, \ @@ -24,5 +26,6 @@ Shortcut to move all (floating) windows from one tag to another. ... { MODKEY|ShiftMask, XK_F9, tagall, {.v = "9"} }, \ -## Author +Author +------ * Jan Christoph Ebersbach - <jceb@e-jc.de> diff --git a/dwm.suckless.org/patches/taggrid/index.md b/dwm.suckless.org/patches/taggrid/index.md @@ -10,38 +10,33 @@ Applying -------- Patch uses drawtagmask flagset to show tags. Two flags can be applied to it: -* #define DRAWCLASSICTAGS 1 << 0 - this will make patch to draw classic tags row; +this will make patch to draw classic tags row; -* #define DRAWTAGGRID 1 << 1` - this will make patch to draw the grid of tags like this: +this will make patch to draw the grid of tags like this: - ![grid](taggrid.png) +![grid](taggrid.png) -The patch defines `switchtag` function which handle global shortcuts to -navigate in grid. This function accept unsigned int argument which represents +The patch defines `switchtag` function which handle global shortcuts to +navigate in grid. This function accept unsigned int argument which represents flagset of next flags: -* #define SWITCHTAG_UP 1 << 0 #define SWITCHTAG_DOWN 1 << 1 #define SWITCHTAG_LEFT 1 << 2 #define SWITCHTAG_RIGHT 1 << 3 +this four defines the direction of moving current tags; - this four defines the direction of moving current tags; - -* #define SWITCHTAG_TOGGLETAG 1 << 4 #define SWITCHTAG_TAG 1 << 5 #define SWITCHTAG_VIEW 1 << 6 #define SWITCHTAG_TOGGLEVIEW 1 << 7 - this four defines the behaviour of switching. They will make `switchtag` work - like according functions. +this four defines the behaviour of switching. They will make `switchtag` work +like according functions. Example ------- @@ -63,10 +58,8 @@ this will move active window in specified direction and perform the action, desc Download -------- - * [dwm-6.1-taggrid.diff](dwm-6.1-taggrid.diff) (2014-02-16) Author ------ - * Yury Shvedov - [shved AT lvk DOT cs DOT msu DOT su](mailto:shved@lvk.cs.msu.su) (or [mestofel13 AT gmail DOT com](mailto:mestofel13@gmail.com)). diff --git a/dwm.suckless.org/patches/tagintostack/index.md b/dwm.suckless.org/patches/tagintostack/index.md @@ -3,9 +3,10 @@ tagintostack Description ----------- -`tagintostack` new clients attach into the stack area when you toggle -a new tag into view. This means your master area will remain unchanged when -toggling views. +`tagintostack` new clients attach into the stack area when you toggle a new tag +into view. This means your master area will remain unchanged when toggling +views. + * the `allmaster` patch will cause all clients in the master area to be left alone * the `onemaster` patch will cause the first client in the master area to be left diff --git a/dwm.suckless.org/patches/three-column/index.md b/dwm.suckless.org/patches/three-column/index.md @@ -1,8 +1,10 @@ -# Three Column Layout +Three Column Layout +=================== -## Description - -Three Column Layout (tcl) is a new layout with a wide master panel centered on the screen. +Description +----------- +Three Column Layout is a new layout with a wide master panel centered on +the screen. +-----+-------------+-----+ | | | | @@ -12,27 +14,28 @@ Three Column Layout (tcl) is a new layout with a wide master panel centered on t | | | | +-----+-------------+-----+ -## Usage - -1. Include the `tcl.c` source file and add `tcl` to the `Layout` section of your `config.h` file. - Example from `config.default.h`: - - #include "tcl.c" - static Layout layout[] = { - /* symbol function */ - { "[]=", tile }, /* first entry is default */ - { "><>", floating }, - { "|||", tcl }, - }; - -## Download - +Usage +----- +1. Include the `tcl.c` source file and add `tcl` to the `Layout` section of + your `config.h` file. Example from `config.default.h`: + + #include "tcl.c" + static Layout layout[] = { + /* symbol function */ + { "[]=", tile }, /* first entry is default */ + { "><>", floating }, + { "|||", tcl }, + }; + +Download +-------- * [tcl.c layout](tcl.c) -## Maintainer - +Maintainer +---------- * Chris Truett - <chris.truett@gmail.com> -## Note - -This layout idea was found in a rough form in this [mailing list post](//lists.suckless.org/dev/1008/5506.html). +Note +---- +This layout idea was found in a rough form in this +[mailing list post](//lists.suckless.org/dev/1008/5506.html). diff --git a/dwm.suckless.org/patches/tilegap/index.md b/dwm.suckless.org/patches/tilegap/index.md @@ -3,9 +3,9 @@ tilegap Description ----------- -Window gaps for the tile layout done right (in my humble opinion). The -same size gap between master and stack, window and window, and window -and screen edge. Size configurable in config.h. +Window gaps for the tile layout done right (in my humble opinion). The same +size gap between master and stack, window and window, and window and screen +edge. Size configurable in config.h. Download -------- diff --git a/dwm.suckless.org/patches/titlecolor/index.md b/dwm.suckless.org/patches/titlecolor/index.md @@ -1,14 +1,15 @@ -# titlecolor - -## Description +titlecolor +========== +Description +----------- Adds a new color scheme used by the window title in the bar, so that its colors (foreground and background) can be changed independently. -## Download - +Download +-------- * [dwm-titlecolor-6.1.diff](dwm-titlecolor-6.1.diff) (31.12.2018) -## Author - +Author +------ * Leon Plickat <leonhenrik[dot]plickat[at]stud[dot]uni-goettingen[dot]de> diff --git a/dwm.suckless.org/patches/urgentborder/index.md b/dwm.suckless.org/patches/urgentborder/index.md @@ -1,15 +1,15 @@ -# custom urgent border +custom urgent border +==================== -## Description - -This patch makes borders of "urgent" windows a different color. -By default it is bright red. -Use config.h item "urgbordercolor" to change it. - -## Download +Description +----------- +This patch makes borders of "urgent" windows a different color. By default it +is bright red. Use config.h item "urgbordercolor" to change it. +Download +-------- * [dwm-6.1-urg-border.diff](dwm-6.1-urg-border.diff) (2.2K) (20150307) -## Author - +Author +------ * Alexander Huemer - alexander dot huemer dot xx dot vu (Based on former work by Ray Kohler - ataraxia937 gmail com) diff --git a/dwm.suckless.org/patches/uselessgap/index.md b/dwm.suckless.org/patches/uselessgap/index.md @@ -1,7 +1,8 @@ -# useless gap - -## Description +useless gap +=========== +Description +----------- For aesthetic purposes, this patch: * adds "useless gaps" around windows @@ -11,8 +12,8 @@ The size of the gap is configured in `config.h`: static const unsigned int gappx = 6; /* gap pixel between windows */ -## Example - +Example +------- No gaps: +-----------------+-------+ @@ -44,20 +45,15 @@ NB: there are some alternatives in the patches section, adding gaps between windows, but not between windows and the screen borders, only in the default tile mode... - -## Download - +Download +-------- * [dwm-uselessgap-6.1.diff](dwm-uselessgap-6.1.diff) (4K) (20150815), now supports nmaster. * [dwm-uselessgap-5.9.diff](dwm-uselessgap-5.9.diff) (1.8k) (20110107 updated. Thanks Jordan for your bug report) - - Updated to use the new resizeclient() function instead of resize() - + Updated to use the new resizeclient() function instead of resize() * [dwm-uselessgap-5.8.diff](dwm-uselessgap-5.8.diff) (1.7k) (20100225 updated. Thanks Guillaume for your bug report) - - Fix floating clients bug and remove all borders in monocle mode. - + Fix floating clients bug and remove all borders in monocle mode. * [dwm-gap-5.7.2.diff](dwm-gap-5.7.2.diff) (0.7k) (20091215) -## Author - +Author +------ * [jerome](http://blog.jardinmagique.info) <jerome@gcu.info> diff --git a/dwm.suckless.org/patches/viewontag/index.md b/dwm.suckless.org/patches/viewontag/index.md @@ -1,14 +1,15 @@ -# viewontag +viewontag +========= -## Description - -* follow a window to the tag it is being moved to - -## Download +Description +----------- +Follow a window to the tag it is being moved to +Download +-------- * [dwm-r1522-viewontag.diff](dwm-r1522-viewontag.diff) (dwm r1522) (20100725) -## Author - -* Markus P. - peters_mops at arcor . de +Author +------ +* Markus P. - peters\_mops at arcor . de diff --git a/dwm.suckless.org/patches/warp/index.md b/dwm.suckless.org/patches/warp/index.md @@ -3,21 +3,18 @@ warp Description ----------- - This patch warps the mouse cursor to the center of the currently focused window or screen when the mouse cursor is (a) on a different screen or (b) on top of a different window. Download -------- - * [dwm-warp-5.9.diff](dwm-warp-5.9.diff) (20111028) * [dwm-warp-6.1.diff](dwm-warp-6.1.diff) (20151215) * [dwm-warp-git-20160626-7af4d43.diff](dwm-warp-git-20160626-7af4d43.diff) Author ------ - * Evan Gates (emg) <evan.gates@gmail.com> * Enno Boland (Gottox) * [Jochen Sprickerhof](mailto:project@firstname.lastname.de) (don't warp in monocle) diff --git a/dwm.suckless.org/patches/winview/index.md b/dwm.suckless.org/patches/winview/index.md @@ -3,34 +3,32 @@ winview Description ----------- - -Dwm tags are a powerfull feature that allows organizing windows in -workspaces. Sometime it can be difficult to remember the tag to activate to -unhide a window. With the winview patch the window to unhide can be selected -from the all-window view. The user switches to the all-window view (`Mod1-0`), -selects the window (`Mod1-j`/`k` or using the mouse) and press `Mod1-o`. The key +Dwm tags are a powerfull feature that allows organizing windows in workspaces. +Sometime it can be difficult to remember the tag to activate to unhide a +window. With the winview patch the window to unhide can be selected from the +all-window view. The user switches to the all-window view (`Mod1-0`), selects +the window (`Mod1-j`/`k` or using the mouse) and press `Mod1-o`. The key `Mod1-o` switches the view to the selected window tag. Recommend patches ----------------- -The [grid](../gridmode/) layout is well adapted to display many windows in a limited -space. Using both [grid](../gridmode/) and [pertag](../pertag/) patches you will be able to -select this layout for the all-window view while keeping your preferred -layout for the other views. +The [grid](../gridmode/) layout is well adapted to display many windows in a +limited space. Using both [grid](../gridmode/) and [pertag](../pertag/) patches +you will be able to select this layout for the all-window view while keeping +your preferred layout for the other views. Configuration and Installation ------------------------------ -#### Using the default configuration file +### Using the default configuration file * Make sure the directory where you build dwm does not contain a config.h file; * Apply the patch; * Run make and make install. -#### Using an existing customised configuration file +### Using an existing customised configuration file -Apply the patch; -Add the following element in the keys array: +Apply the patch; Add the following element in the keys array: { MODKEY, XK_o, winview, {0} }, @@ -42,11 +40,9 @@ template, config.def.h. Download -------- - * [dwm-6.1-winview.diff](dwm-6.1-winview.diff) * [dwm-6.0-winview.diff](dwm-6.0-winview.diff) Author ------ * Philippe Gras - `<philippe dot gras at free dot fr>` - diff --git a/dwm.suckless.org/patches/xkb/index.md b/dwm.suckless.org/patches/xkb/index.md @@ -1,9 +1,10 @@ xkb ===== + Description ----------- -This patch replaces main functionality of xxkb. It will remember the -client's xkb status and restores it when client became focused. +This patch replaces main functionality of xxkb. It will remember the client's +xkb status and restores it when client became focused. Applying -------- @@ -11,23 +12,20 @@ Firstly you have to configure xkb as you need as described [here](https://www.x.org/archive/X11R7.5/doc/input/XKB-Config.html). The patch depends on two variables: -* `showxkb` flag defines, should patch show current xkb group on - the bar or not; +* `showxkb` flag defines, should patch show current xkb group on the bar or + not; -* `xkb_layouts` array defines the text, which will appear on the - bar according to current group if `showxkb` set to `TRUE`. +* `xkb_layouts` array defines the text, which will appear on the bar according + to current group if `showxkb` set to `TRUE`. -There is new field in Rule struckture, by witch you can specify -default xkb layout for window (see config.def.h for details). -This could be useful with dmenu_run, but unfortunately for some reasons -rules can't be applied to dmenu. +There is new field in Rule struckture, by witch you can specify default xkb +layout for window (see config.def.h for details). This could be useful with +dmenu\_run, but unfortunately for some reasons rules can't be applied to dmenu. Download -------- - * [dwm-6.1-xkb.diff](dwm-6.1-xkb.diff) (2014-02-15) Author ------ - * Yury Shvedov - [shved AT lvk DOT cs DOT msu DOT su](mailto:shved@lvk.cs.msu.su) (or [mestofel13 AT gmail DOT com](mailto:mestofel13@gmail.com)). diff --git a/dwm.suckless.org/patches/xrdb/index.md b/dwm.suckless.org/patches/xrdb/index.md @@ -3,10 +3,10 @@ xrdb Description ----------- - Allows dwm to read colors from `.Xresources` at run time. -After applying the patch, don't forget to update your `config.h` file and fill in path to your `.Xresources` there (`xres` variable). +After applying the patch, don't forget to update your `config.h` file and fill +in path to your `.Xresources` there (`xres` variable). X resources used: @@ -21,10 +21,8 @@ Default key to reload is `Mod+F5`. Download -------- - * [dwm-xrdb-6.1.diff](dwm-xrdb-6.1.diff) Authors ------- - * Petr Schmied - <https://github.com/JBlackN/dwm-xrdb> diff --git a/dwm.suckless.org/patches/xtile/index.md b/dwm.suckless.org/patches/xtile/index.md @@ -3,42 +3,44 @@ xtile Description ----------- - -This patch implements a generalization of the tile layout which adds two attributes -(direction and fact) to three areas (global, master, stack). The global area is the entire -allocatable visual space and it's subdivided into the master and stack subareas. - -The direction of the global area controls the position of the master area relatively to -the stack area and it can be one of `DirHor` (traditional right stack), `DirVer` (bottom -stack), `DirRotHor` (left stack) and `DirRotVer` (top stack). The direction of the master -and of the stack areas are independently set and can be one of `DirHor` and `DirVer`. -This combines to a total of 4\*2\*2=16 layouts. - -The fact numbers indicate the relative size of the first subarea/client along the -direction of the considered area (i.e. width for `DirHor` and `DirRotHor` and height for -`DirVer` and `DirRotVer`). A fact of 1 means that the first subarea/client is on par the -rest, while a fact of 2 means that its size must double the size of each of the remaining -subareas/clients, etc. So the fact for the global area is similar to the traditional -mfact in the sense that it manages the relative allocation of visual space between the -master and stack subareas, while the fact for the master area stands for the relative -importance of the first master client against the rest of masters and, similarly, the fact -for the stack area stands for the importance of the first slave client in relation to the -rest of slaves. - -xtile adds two new commands to dwm: `setdir` and `setfact` (which supersedes `setmfact`). -Both commands take an array of three values (of type `int` for `setdir` and `float` for -`setfact`), one value for each area (the first one for the global area, the second one for -the master area and the third one for the stack area). If you pass the value `v` as -`INC(v)` it will be taken as a relative increment to be added to the current value, -otherwise it will be taken as an absolute value. Usually the resulting value will be -truncated to the valid range of values for each area/attribute combination, but relative -increments for directions wrap around the limits of the valid range. Notice that INC(0) -means "do nothing here", so it gives you a way to easily modify the value for some area -while leaving the rest untouched. +This patch implements a generalization of the tile layout which adds two +attributes (direction and fact) to three areas (global, master, stack). The +global area is the entire allocatable visual space and it's subdivided into the +master and stack subareas. + +The direction of the global area controls the position of the master area +relatively to the stack area and it can be one of `DirHor` (traditional right +stack), `DirVer` (bottom stack), `DirRotHor` (left stack) and `DirRotVer` (top +stack). The direction of the master and of the stack areas are independently +set and can be one of `DirHor` and `DirVer`. This combines to a total of +4\*2\*2=16 layouts. + +The fact numbers indicate the relative size of the first subarea/client along +the direction of the considered area (i.e. width for `DirHor` and `DirRotHor` +and height for `DirVer` and `DirRotVer`). A fact of 1 means that the first +subarea/client is on par the rest, while a fact of 2 means that its size must +double the size of each of the remaining subareas/clients, etc. So the fact for +the global area is similar to the traditional mfact in the sense that it +manages the relative allocation of visual space between the master and stack +subareas, while the fact for the master area stands for the relative importance +of the first master client against the rest of masters and, similarly, the fact +for the stack area stands for the importance of the first slave client in +relation to the rest of slaves. + +xtile adds two new commands to dwm: `setdir` and `setfact` (which supersedes +`setmfact`). Both commands take an array of three values (of type `int` for +`setdir` and `float` for `setfact`), one value for each area (the first one for +the global area, the second one for the master area and the third one for the +stack area). If you pass the value `v` as `INC(v)` it will be taken as a +relative increment to be added to the current value, otherwise it will be taken +as an absolute value. Usually the resulting value will be truncated to the +valid range of values for each area/attribute combination, but relative +increments for directions wrap around the limits of the valid range. Notice +that INC(0) means "do nothing here", so it gives you a way to easily modify the +value for some area while leaving the rest untouched. Default key bindings -------------------- - The areas are selected by modifiers as follows: Modifier Area @@ -48,8 +50,8 @@ The areas are selected by modifiers as follows: MODKEY+Control Stack MODKEY+Shift+Control All three areas simultaneously -Each of the modifiers then combines with each of the following keys up to a total of -4\*3=12 key bindings: +Each of the modifiers then combines with each of the following keys up to a +total of 4\*3=12 key bindings: Key Function ------------------------------ @@ -64,13 +66,15 @@ There are two provided default "presets" or "schemas" also: MODKEY+Shift t Right stack MODKEY+Control t Bottom stack -These presets allow to quickly switch between different no-nonsense tilings avoiding the -need to rotate through all the nonsense combinations in-between. But notice that -`MODKEY+Shift+Control+r` (i.e. simultaneously rotate all three areas) usually produces -sensible layouts (due to the way directions were designed to rotate). +These presets allow to quickly switch between different no-nonsense tilings +avoiding the need to rotate through all the nonsense combinations in-between. +But notice that `MODKEY+Shift+Control+r` (i.e. simultaneously rotate all three +areas) usually produces sensible layouts (due to the way directions were +designed to rotate). -You can also easily define your own presets by calling `setdir` and `setfact` as needed. -For example, here is the configuration code for the default presets described above: +You can also easily define your own presets by calling `setdir` and `setfact` +as needed. For example, here is the configuration code for the default presets +described above: { MODKEY|ShiftMask, XK_t, setdirs, {.v = (int[]){ DirHor, DirVer, DirVer } } }, { MODKEY|ControlMask, XK_t, setdirs, {.v = (int[]){ DirVer, DirHor, DirHor } } }, @@ -78,92 +82,95 @@ For example, here is the configuration code for the default presets described ab Layout symbol ------------- -The layout symbol will probably look cryptic at first sight but it's very easily decoded. -It consists of three characters, one for the direction of each area: +The layout symbol will probably look cryptic at first sight but it's very +easily decoded. It consists of three characters, one for the direction of each +area: * Global area: '<', '>', 'v', '^', just think of it as an arrow that points in the direction of the master area. - * Master area: '|' for vertically tiled masters and '-' for horizontally tiled masters. - * Stack area: same as for the master area. -For example, '<||' stands for the default right stack tile provided by dwm and '^--' -stands for bstack (as defined by the bottom stack patch). +For example, '<||' stands for the default right stack tile provided by dwm and +'^--' stands for bstack (as defined by the bottom stack patch). Digressions ----------- ### Why facts per area? -There is some arbitrariness in the way facts are defined by xtile: why facts for the first -master and the first slave and not, say, for the first two clients instead? Considering -that most real life layouts will have one or two masters and a variable number of slaves, -the road xtile took will enable the user to effectively control the relative size of the -three/four most important clients in a very intuitive way that built on his previous -understanding of the mfact and the master and stack area concepts. OTOH it's not clear to -me how to allow the specification of facts for the first two clients in an intuitive way: - -* If there is only one master this alternative approach is equivalent to xtile's one. -* If there are two masters, only one fact will be required to specify the share of the - master area that belongs to each one, so what to do with the second fact? -* If this second fact is taken as the share of the second master vs the share of the - rest (the slaves), it's not clear how to define these inter-area shares. +There is some arbitrariness in the way facts are defined by xtile: why facts +for the first master and the first slave and not, say, for the first two +clients instead? Considering that most real life layouts will have one or two +masters and a variable number of slaves, the road xtile took will enable the +user to effectively control the relative size of the three/four most important +clients in a very intuitive way that built on his previous understanding of the +mfact and the master and stack area concepts. OTOH it's not clear to me how to +allow the specification of facts for the first two clients in an intuitive way: + +* If there is only one master this alternative approach is equivalent to + xtile's one. +* If there are two masters, only one fact will be required to specify the share + of the master area that belongs to each one, so what to do with the second + fact? +* If this second fact is taken as the share of the second master vs the share + of the rest (the slaves), it's not clear how to define these inter-area shares. ### Why not deck area? -One obvious additional generalization would have been to extrapolate the nmaster idea to -all three areas, or at least to the stack area. So if you allowed only m masters and n -slaves you would end up with m+n tiled windows and with the rest of the clients in the -current tagset stacked or decked "below" the last tiled client. flextile, -clients-per-tag and deck patches provide variations on this kind of layout. I've also -implemented a version of xtile that supports it and even subsumes monocle, but I think -this promotes a bad pattern of usage. Coupled with stack manipulation operations as the -ones provided by the stacker or push patches, there is the temptation to manage visibility -by moving the desired clients in the current tagset to the first n+m visible positions of -the focus stack (not to be confused with the stack area). There are a number of problems -with this approach: - -* The stack is global to dwm, so pushing around clients in one tag will rearrange them in - other tags also. This could become a problem if you rely too much on explicit stack - management. - -* The deck area badly violates the principle of least surprise. If you only change focus - sequentially by using `mod-j`/`mod-k` there is no way to exit the deck at a client - different to the last/first decked one. If you use the mouse or the `focusstack` command - provided by the stacker patch to jump directly from the deck to a non-decked client, - each time you reach the deck again by using `mod-j`/`mod-k` the visible decked client - will be replaced by the first/last decked one. In general, there is a devilish interplay - of the focus stack and the z-stack that makes the deck unusable as a tabbed view of the - decked clients, at least for more than one or two decked clients. - -Fortunately, dwm provides a much better mechanism to restrict visibility: tags. IMO there -is no need to provide a half-assed alternative to one of dwm's strongest selling points. +One obvious additional generalization would have been to extrapolate the +nmaster idea to all three areas, or at least to the stack area. So if you +allowed only m masters and n slaves you would end up with m+n tiled windows and +with the rest of the clients in the current tagset stacked or decked "below" +the last tiled client. flextile, clients-per-tag and deck patches provide +variations on this kind of layout. I've also implemented a version of xtile +that supports it and even subsumes monocle, but I think this promotes a bad +pattern of usage. Coupled with stack manipulation operations as the ones +provided by the stacker or push patches, there is the temptation to manage +visibility by moving the desired clients in the current tagset to the first n+m +visible positions of the focus stack (not to be confused with the stack area). +There are a number of problems with this approach: + +* The stack is global to dwm, so pushing around clients in one tag will + rearrange them in other tags also. This could become a problem if you rely too + much on explicit stack management. + +* The deck area badly violates the principle of least surprise. If you only + change focus sequentially by using `mod-j`/`mod-k` there is no way to exit the + deck at a client different to the last/first decked one. If you use the mouse + or the `focusstack` command provided by the stacker patch to jump directly from + the deck to a non-decked client, each time you reach the deck again by using + `mod-j`/`mod-k` the visible decked client will be replaced by the first/last + decked one. In general, there is a devilish interplay of the focus stack and + the z-stack that makes the deck unusable as a tabbed view of the decked + clients, at least for more than one or two decked clients. + +Fortunately, dwm provides a much better mechanism to restrict visibility: tags. +IMO there is no need to provide a half-assed alternative to one of dwm's +strongest selling points. Other patches ------------- - Recommended complementary patches: -* [gaps](../gaps/): to add mostly useless gaps that nevertheless make more apparent which - client has the focus. +* [gaps](../gaps/): to add mostly useless gaps that nevertheless make more + apparent which client has the focus. -* [stacker](../stacker/): to better accommodate the clients to the more elaborate layouts - allowed by xtile. But I would add: subject to the caveats that I've expressed above. +* [stacker](../stacker/): to better accommodate the clients to the more + elaborate layouts allowed by xtile. But I would add: subject to the caveats + that I've expressed above. Mandatory dependencies: * [pertag](../pertag/): we all know this one. -Related patches: [bottom stack](../bottomstack/), [flextile](../flextile/), cfacts, -[stackmfact](../stackmfact/). +Related patches: [bottom stack](../bottomstack/), [flextile](../flextile/), +cfacts, [stackmfact](../stackmfact/). Download -------- - * [dwm-6.0-xtile.diff](dwm-6.0-xtile.diff) Author ------ - * Carlos Pita (memeplex) <carlosjosepita@gmail.com> diff --git a/dwm.suckless.org/patches/zoomswap/index.md b/dwm.suckless.org/patches/zoomswap/index.md @@ -3,7 +3,8 @@ zoomswap Description ----------- -This patch swaps the current window (C) with the previous master (P) when zooming. +This patch swaps the current window (C) with the previous master (P) when +zooming. Original behaviour : +-----------------+-------+ diff --git a/dwm.suckless.org/status_monitor/email_notifications/index.md b/dwm.suckless.org/status_monitor/email_notifications/index.md @@ -3,7 +3,6 @@ email notifications Description ----------- - This init script is based on some ideas taken from the dwm ML. It adds email notification using `fetchmail`. It also adds the functionality of showing the content of the file `$HOME/.message` when it exists. This can be used for @@ -21,15 +20,13 @@ This config works with GMail over IMAP with the IDLE extension for low bandwidth Init script ----------- - The notification is flashing during 60 seconds, then it is removed. Lines written to `.message` are displayed during a second in the status bar. If `.message` is deleted, the normal status message (date and uptime) returns. A pipe must be used with `fetchmail` when using IDLE extension because this way -it waits for updates from the inbox not doing polling. -If the `.message` file exists with some content, it is preserved and no email -notification is shown. +it waits for updates from the inbox not doing polling. If the `.message` file +exists with some content, it is preserved and no email notification is shown. fetchmail --check 2>/dev/null | while read line; do new=`echo $line | sed 's/(//' | awk '{print $1-$3}'` @@ -58,5 +55,4 @@ notification is shown. Author ------ - * Ricardo Catalinas Jiménez <[jimenezrick@gmail.com](mailto:jimenezrick@gmail.com)> diff --git a/dwm.suckless.org/status_monitor/index.md b/dwm.suckless.org/status_monitor/index.md @@ -1,7 +1,6 @@ status monitor ============== - -The status bar text of **dwm** is stored in the WM_NAME X11 property of the +The status bar text of dwm is stored in the WM\_NAME X11 property of the root window, which is managed by dwm. It can be easily set and retrieved using standard Unix tools. @@ -13,28 +12,23 @@ It can be easily set and retrieved using standard Unix tools. Set The Status Using A Shell Script ----------------------------------- - - while true; - do + while true; do xsetroot -name "$(date)" sleep 2 done Set The Status Using Other Methods ---------------------------------- - There are two status monitors maintained at suckless: slstatus - suckless status -------------------------- - A somewhat complex status monitor which includes all batteries. You can read more [on the project page](//tools.suckless.org/slstatus/). dwmstatus --------- - Barebone status monitor with basic functions written in C. This follows the suckless philosophy, to give you an easy way to extend the source code to your needs. See the helper functions for C below, to extend it to your needs. Just @@ -48,23 +42,34 @@ check it out and keep on hacking. Status Monitors Submitted By Others ----------------------------------- - Feel free to add your own status monitors here (keeping the list sorted). * [barM](barM.c) - can display all, time/date, ram usage, output of commands (the New BarMonitor). -* [dstat](https://www.umaxx.net/dl) [Screenshot](https://www.umaxx.net/dstat.png) - displays the current network throughput, CPU usage, performance settings, battery status, temperature, volume settings, as well as the current date and time (OpenBSD only, no support for Linux). -* [dwms](https://github.com/ianremmler/dwms) - displays time, network, audio, and battery status, written in Go using XGB. -* [dwmsd](https://github.com/johnko/dwmsd) - a daemon that listens on localhost tcp (may be useful as a base for asynchronous updates) -* [dwm-sss](https://github.com/roadkillcat/dwm_sss) - shell script providing date, time and CPU temperature -* [dwmstat](https://notabug.org/kl3/dwmstat) - small and simple | IP, CPU temperature, system volume, current local time (and more) | config.h | OpenBSD -* [go-dwmstatus](https://github.com/oniichaNj/go-dwmstatus) - A Go bar that prints current MPD song, load averages, time/date and battery percentage. -* [gods](https://github.com/schachmat/gods) - implemented in Go. prints network speed, cpu, ram, date/time -* [profil-dwmstatus-1.0.c](profil-dwmstatus-1.0.c) - cpufreq, battery percent and date/time -* [suspend-statusbar.c](https://github.com/snobb/dwm-statusbar) - date, loadavg, battery and more. If battery goes below threshold - run suspend command +* [dstat](https://www.umaxx.net/dl) + [Screenshot](https://www.umaxx.net/dstat.png) - displays the current network + throughput, CPU usage, performance settings, battery status, temperature, + volume settings, as well as the current date and time (OpenBSD only, no support + for Linux). +* [dwms](https://github.com/ianremmler/dwms) - displays time, network, audio, + and battery status, written in Go using XGB. +* [dwmsd](https://github.com/johnko/dwmsd) - a daemon that listens on localhost + tcp (may be useful as a base for asynchronous updates) +* [dwm-sss](https://github.com/roadkillcat/dwm_sss) - shell script providing + date, time and CPU temperature +* [dwmstat](https://notabug.org/kl3/dwmstat) - small and simple | IP, CPU + temperature, system volume, current local time (and more) | config.h | OpenBSD +* [go-dwmstatus](https://github.com/oniichaNj/go-dwmstatus) - A Go bar that + prints current MPD song, load averages, time/date and battery percentage. +* [gods](https://github.com/schachmat/gods) - implemented in Go. prints network + speed, cpu, ram, date/time +* [profil-dwmstatus-1.0.c](profil-dwmstatus-1.0.c) - cpufreq, battery percent + and date/time +* [suspend-statusbar.c](https://github.com/snobb/dwm-statusbar) - date, + loadavg, battery and more. If battery goes below threshold - run suspend + command Helper Functions In The Shell ----------------------------- - * [posix scripts](https://notabug.org/kl3/scripts) - basic collection of simple, fully POSIX sh compliant scripts to get various system information * [i3blocks-contrib](https://github.com/vivien/i3blocks-contrib) - collection of python, perl and shell scripts * Free memory: `free -h | awk '(NR==2){ print $3 }'` @@ -72,16 +77,13 @@ Helper Functions In The Shell * Keyboard layout: `setxkbmap -query | awk '/layout/{ print $2 }'` * Empty disk space (mountpoint /home): `df -h | awk '{ if ($6 == "/home") print $4 }'` * wifi status (interface wlp3s0): `cat /sys/class/net/wlp3s0/opestate` -* CPU temperature: `sed 's/000$/°C/' /sys/class/thermal/thermal_zone0/temp` - - Alternatively you can use `acpi -t` or `sensors` from lm-sensors - package. For older systems you can get the cpu temperature from +* CPU temperature: `sed 's/000$/°C/' /sys/class/thermal/thermal_zone0/temp`. + Alternatively you can use `acpi -t` or `sensors` from lm-sensors package. For + older systems you can get the cpu temperature from `/proc/acpi/thermal_zone/THM0/temperature` - -* Remaining battery: `cat /sys/class/power_supply/BAT0/capacity` - - Alternatively you can use `acpi -b`. For older systems you can get - the battery capacity from `/proc/acpi/battery/BAT0/state`. +* Remaining battery: `cat /sys/class/power_supply/BAT0/capacity`. Alternatively + you can use `acpi -b`. For older systems you can get the battery capacity from + `/proc/acpi/battery/BAT0/state`. Using shell scripts very well leads to big scripts, which pull in unneeded dependencies. One solution for this is to write everything in C, which is much @@ -89,7 +91,6 @@ more efficient. Helper Functions In C (for dwmstatus or slstatus etc.) ------------------------------------------------------ - If you have simple C functions for gathering system information, feel free to add them here (keeping the list sorted). diff --git a/dwm.suckless.org/tutorial/index.md b/dwm.suckless.org/tutorial/index.md @@ -1,15 +1,13 @@ Launching --------- - -To launch dwm, ideally you should setup a `~/.xinitrc` with at least `exec dwm`. +To launch dwm, ideally you should setup a `~/.xinitrc` with at least `exec +dwm`. Introduction ------------ - Using dwm can be done in pure keyboard control or through some extra mouse -handling. See the -[config.def.h](//git.suckless.org/dwm/plain/config.def.h) for what -are the default bindings. They are used in this tutorial. +handling. See the [config.def.h](//git.suckless.org/dwm/plain/config.def.h) for +what are the default bindings. They are used in this tutorial. [Shift]+[Alt]+[Enter] - launch terminal [Alt]+[p] - dmenu for running programs like the x-www-browser @@ -18,11 +16,10 @@ By default there are 9 tags. Window model ------------ - -Launch a few terminals with `[Shift]+[Alt]+[Enter]` and dwm will _tile_ the windows -between the **master** and **stack**. A new terminal appears on the **master** -window. Existing windows are pushed upon a **stack** to the right of the -screen. `[Alt]+[Enter]` toggles windows between master and stack. +Launch a few terminals with `[Shift]+[Alt]+[Enter]` and dwm will _tile_ the +windows between the **master** and **stack**. A new terminal appears on the +**master** window. Existing windows are pushed upon a **stack** to the right of +the screen. `[Alt]+[Enter]` toggles windows between master and stack. +------+----------------------------------+--------+ | tags | title | status + @@ -40,20 +37,20 @@ screen. `[Alt]+[Enter]` toggles windows between master and stack. Moving Around ------------- - To **move to another terminal**, press `[Alt]+[j]` or `[Alt]+[k]`. -To **move a terminal to another _tag_**, hover to the terminal and press `[Shift]+[Alt]+[2]`. - Note! If you are a frequent user of the text editor 'nano' the key sequence [Shift]+[Alt]+[4] - will stomp on nano's softwrap M-$. To get around this you can unbind nano's M-$ in .nanorc thus: +To **move a terminal to another _tag_**, hover to the terminal and press +`[Shift]+[Alt]+[2]`. Note! If you are a frequent user of the text editor 'nano' +the key sequence [Shift]+[Alt]+[4] will stomp on nano's softwrap M-$. To get +around this you can unbind nano's M-$ in .nanorc thus: - unbind M-$ all + unbind M-$ all - and rebind it to a new sequence thus (here bind it to 'Meta Key' + ';'): +and rebind it to a new sequence thus (here bind it to 'Meta Key' + ';'): - bind M-; softwrap all + bind M-; softwrap all - There are several other nano key sequences that dwm will stomp on - use the above example to fix nano up. +There are several other nano key sequences that dwm will stomp on - use the above example to fix nano up. To **focus on another _tag_**, press `[Alt]+[tag number]`. @@ -66,50 +63,48 @@ To **kill a window**, press `[Shift]+[Alt]+[c]`. Layouts ------- - By default dwm is in **tiled** layout mode. Ensure it is tiled mode with: [Alt]+[t] -You should also notice the `[]=` symbol between the tag numbers and the title bar. +You should also notice the `[]=` symbol between the tag numbers and the title +bar. dwm has two further layout modes, **floating** `><>` `[Alt]+[f]` and **monocle** `[M]` `[Alt]+[m]`. Monocle is good for ensuring a window is kept maximized and focused. This is useful in web kiosk environments and watching -flash videos. Further layout modes can be included through [patches](//dwm.suckless.org/patches/). +flash videos. Further layout modes can be included through +[patches](//dwm.suckless.org/patches/). Floating -------- - Floating layout will be familiar to Windows users. Use `[Alt]+[right mouse button]` to resize the floating window and `[Alt]+[left mouse button]` to move it around. This can also be used to raise a floating window. -There are several ways to get specific windows into being managed as a -floating window, despite the tiled layout being activated. First there is +There are several ways to get specific windows into being managed as a floating +window, despite the tiled layout being activated. First there is `[Alt]+[Shift]+[space]`, which will toggle floating mode on the active window. Then there is the possible to simply resize the window using `[Alt]+[right mouse button]`. The last method is to `[Alt]+[middle mouse button]` onto the -window, to toggle it in being floating. These floating windows then can be -used to force certain window sizes, when some application requires this for +window, to toggle it in being floating. These floating windows then can be used +to force certain window sizes, when some application requires this for aesthetics or simply to being usable. If you want to set some type of window to be always floating, look at the -[config.def.h](//git.suckless.org/dwm/plain/config.def.h) and the -`rules` array, where the last but one element defines this behaviour. +[config.def.h](//git.suckless.org/dwm/plain/config.def.h) and the `rules` +array, where the last but one element defines this behaviour. Quitting -------- - To quit dwm cleanly: [Shift]+[Alt]+[q] Status ------ - -By default dwm is showing `dwm-X.X` in its statusbar. This text can be -changed by setting the `WM_NAME` property of the root window. +By default dwm is showing `dwm-X.X` in its statusbar. This text can be changed +by setting the `WM_NAME` property of the root window. Using the tools of X.org, this can be set using: @@ -117,6 +112,5 @@ Using the tools of X.org, this can be set using: There are various tools and methods to populate this text with useful information from your system or services running on your system. A barebone for -doing this in C is [dwmstatus](../status_monitor/). See the -[xinitrc](xinitrc.example) example for how to do it -using a script. +doing this in C is [dwmstatus](../status_monitor/). See the +[xinitrc](xinitrc.example) example for how to do it using a script. diff --git a/ev.suckless.org/index.md b/ev.suckless.org/index.md @@ -3,8 +3,9 @@ suckless.org e.V. At [slcon 2](//suckless.org/conferences/2015) eight conference attendees founded a legal entity for suckless.org, the "suckless.org e.V.". -suckless.org e.V. is a registered association in München, Germany, with its own -legal entity. Please refer to the [statutes](/satzung) (German only) for further info. +suckless.org e.V. is a registered association in München, Germany, with its +own legal entity. Please refer to the [statutes](/satzung) (German only) for +further info. suckless.org e.V. organizes a yearly membership meeting, which will regularly take place during the suckless conference or hackathon. @@ -58,4 +59,3 @@ letter or email at any time. There is no refund of the membership fee, though. Donations --------- Please check out our [donations](//suckless.org/donations) page for further advise. - diff --git a/ev.suckless.org/satzung/index.md b/ev.suckless.org/satzung/index.md @@ -90,4 +90,3 @@ Verwertung des verbleibenden Vermögens. Vorstehende Satzung wurde am 30. Oktober 2015 errichtet. Sowie am 21. Dezember 2015 geändert. Sowie am 01. September 2017 geändert. - diff --git a/libs.suckless.org/deprecated/index.md b/libs.suckless.org/deprecated/index.md @@ -1 +1,2 @@ -This directory contains the deprecated libraries which have been created by the suckless community during the time. +This directory contains the deprecated libraries which have been created by the +suckless community during the time. diff --git a/libs.suckless.org/deprecated/libixp/index.md b/libs.suckless.org/deprecated/libixp/index.md @@ -1,16 +1,29 @@ LIBIXP ====== -`libixp` is a stand-alone client/server [9P](http://9p.cat-v.org/) library including `ixpc` client. It consists of less than 2000 lines of code (including `ixpc`). +`libixp` is a stand-alone client/server [9P](http://9p.cat-v.org/) library +including `ixpc` client. It consists of less than 2000 lines of code (including +`ixpc`). -`libixp`'s server API is based heavily on that of [Plan 9](http://cm.bell-labs.com/plan9)'s [`lib9p`](http://man.cat-v.org/plan_9/2/9p), and the two libraries export virtually identical data structures. There are a few notable differences between the two, however: +`libixp`'s server API is based heavily on that of [Plan +9](http://cm.bell-labs.com/plan9)'s +[`lib9p`](http://man.cat-v.org/plan_9/2/9p), and the two libraries export +virtually identical data structures. There are a few notable differences +between the two, however: -* `libixp` multiplexes connections internally, while on `Plan 9`, the kernel performs this task, and in [plan9port](http://swtch.com/plan9port/), a separate process is spawned to do so. Despite this divergence, the user of the library will not notice any difference in behavior, except that there may be duplicate `tag` and `fid` numbers between different connections. This issue is of little relevance, however, as the library handles the task of mapping `fid`s and `tag`s to arbitrary pointers and `P9Req` structs. +* `libixp` multiplexes connections internally, while on `Plan 9`, the kernel + performs this task, and in [plan9port](http://swtch.com/plan9port/), a separate + process is spawned to do so. Despite this divergence, the user of the library + will not notice any difference in behavior, except that there may be duplicate + `tag` and `fid` numbers between different connections. This issue is of little + relevance, however, as the library handles the task of mapping `fid`s and + `tag`s to arbitrary pointers and `P9Req` structs. * `libixp` is released under a lenient MIT-style license. * `libixp` lacks `lib9p`'s file trees. -* Unlike `plan9port`'s `lib9p`, `libixp` is POSIX based, and should compile without specialized libraries on nearly any POSIX system. +* Unlike `plan9port`'s `lib9p`, `libixp` is POSIX based, and should compile + without specialized libraries on nearly any POSIX system. Download -------- diff --git a/st.suckless.org/index.md b/st.suckless.org/index.md @@ -8,21 +8,21 @@ Motivation ---------- xterm is bloated and unmaintainable. Here's an excerpt from the README: - Abandon All Hope, Ye Who Enter Here - - This is undoubtedly the most ugly program in the distribution. It was one of - the first "serious" programs ported, and still has a lot of historical baggage. - Ideally, there would be a general tty widget and then vt102 and tek4014 - subwidgets so that they could be used in other programs. We are trying to - clean things up as we go, but there is still a lot of work to do. - -Needless to say things have *not* changed, it's still ugly. -It has over 65K lines of code and emulates obscure and obsolete terminals -you will [never need](http://www.science.uva.nl/museum/tek4014.php). - -The popular alternative, rxvt has *only* 32K lines of code. This is just -too much for something as simple as a terminal emulator; it's yet another -example of code complexity. +> Abandon All Hope, Ye Who Enter Here +> +> This is undoubtedly the most ugly program in the distribution. It was one of +> the first "serious" programs ported, and still has a lot of historical baggage. +> Ideally, there would be a general tty widget and then vt102 and tek4014 +> subwidgets so that they could be used in other programs. We are trying to +> clean things up as we go, but there is still a lot of work to do. + +Needless to say things have *not* changed, it's still ugly. It has over 65K +lines of code and emulates obscure and obsolete terminals you will [never +need](http://www.science.uva.nl/museum/tek4014.php). + +The popular alternative, rxvt has *only* 32K lines of code. This is just too +much for something as simple as a terminal emulator; it's yet another example +of code complexity. Terminal emulation doesn't need to be so complex. @@ -50,20 +50,19 @@ implemented or fixed. Configuration ------------- - -Configuration is done with `config.h`. Read the comments in the -generated `config.h` to edit it according to your needs. -Defaults are stored in `config.def.h`. +Configuration is done with `config.h`. Read the comments in the generated +`config.h` to edit it according to your needs. Defaults are stored in +`config.def.h`. FAQ --- -The [FAQ](//git.suckless.org/st/plain/FAQ) is maintained in the st -source code repository. +The [FAQ](//git.suckless.org/st/plain/FAQ) is maintained in the st source code +repository. Development ----------- -st is actively developed. You can [browse](//git.suckless.org/st) its -source code repository or get a copy using git with the following command: +st is actively developed. You can [browse](//git.suckless.org/st) its source +code repository or get a copy using git with the following command: git clone git://git.suckless.org/st diff --git a/st.suckless.org/patches/alpha/index.md b/st.suckless.org/patches/alpha/index.md @@ -5,21 +5,18 @@ alpha Description ----------- - -This patch allows users to change the opacity of the background. -Note that *you need an X composite manager* (e.g. compton, xcompmgr) to -make this patch effective. +This patch allows users to change the opacity of the background. Note that *you +need an X composite manager* (e.g. compton, xcompmgr) to make this patch +effective. Notes ----- - * The alpha value affects the default background only. * The color designated by 'defaultbg' should not be used elsewhere. * Embedding might fail after applying this patch. Download -------- - * [st-alpha-0.4.1.diff](st-alpha-0.4.1.diff) * [st-alpha-0.5.diff](st-alpha-0.5.diff) * [st-alpha-0.6.diff](st-alpha-0.6.diff) @@ -32,7 +29,6 @@ Download Authors ------- - * Eon S. Jeon - <esjeon@hyunmu.am> * pr - <protodev@gmx.net> (0.5 port) * Laslo Hunhold - <dev@frign.de> (0.6, git ports) diff --git a/st.suckless.org/patches/anysize/index.md b/st.suckless.org/patches/anysize/index.md @@ -3,17 +3,21 @@ anysize Description ----------- +By default, st's window size always snaps to the nearest multiple of the +character size plus a fixed inner border (set with borderpx in config.h). When +the size of st does not perfectly match the space allocated to it (when using a +tiling WM, for example), unsightly gaps will appear between st and other apps, +or between instances of st. -By default, st's window size always snaps to the nearest multiple of the character size plus a fixed inner border (set with borderpx in config.h). When the size of st does not perfectly match the space allocated to it (when using a tiling WM, for example), unsightly gaps will appear between st and other apps, or between instances of st. - -This patch allows st to resize to any pixel size, makes the inner border size dynamic, and centers the content of the terminal so that the left/right and top/bottom borders are balanced. With this patch, st on a tiling WM will always fill the entire space allocated to it. +This patch allows st to resize to any pixel size, makes the inner border size +dynamic, and centers the content of the terminal so that the left/right and +top/bottom borders are balanced. With this patch, st on a tiling WM will always +fill the entire space allocated to it. Download -------- - * [st-anysize-20180817.diff](st-anysize-20180817.diff) Authors ------- - * Augusto Born de Oliveira - <augustoborn@gmail.com> diff --git a/st.suckless.org/patches/boxdraw/index.md b/st.suckless.org/patches/boxdraw/index.md @@ -3,18 +3,16 @@ boxdraw Summary ------- - Custom-draw most of the lines/blocks characters for gapless alignment. Description ----------- - Line drawing characters such as those used by `tree`, `tmux` pane splitters, -`mc` frames/menus etc, sometimes align with gaps - which looks suboptimal. -This can depend on font, size, scaling, and other factors. +`mc` frames/menus etc, sometimes align with gaps - which looks suboptimal. This +can depend on font, size, scaling, and other factors. -Block drawing characters, such as lower-half-block which is sometimes used as -a terminal "pixel" to display images, can also suffer from this issue. +Block drawing characters, such as lower-half-block which is sometimes used as a +terminal "pixel" to display images, can also suffer from this issue. This patch adds an option to custom-draw most of the lines/blocks characters using internal data (without using the font) so that they align perfectly with @@ -23,27 +21,24 @@ any font, at any size, and with any `chscale`/`cwscale` configuration values. 138 shapes are supported - all the codepoints at U+2500 - U+259F except dashes, diagonals and shades. The unsupported shapes render normally using the font. -See also: -unicode references [U2500.pdf](http://www.unicode.org/charts/PDF/U2500.pdf) -and [U2580.pdf](http://www.unicode.org/charts/PDF/U2580.pdf), -libvte [test page](https://github.com/GNOME/vte/blob/master/doc/boxes.txt). +See also: unicode references +[U2500.pdf](http://www.unicode.org/charts/PDF/U2500.pdf) and +[U2580.pdf](http://www.unicode.org/charts/PDF/U2580.pdf), libvte [test +page](https://github.com/GNOME/vte/blob/master/doc/boxes.txt). Notes: ------ - -- The download is a `git --format-patch` file. It can be applied either with +* The download is a `git --format-patch` file. It can be applied either with `git` (`am`/`apply`) or normally with `patch`. It also applies and works correctly with st 0.8.1 and/or the [vertcenter](../vertcenter/) patch. - -- boxdraw is disabled by default and controlled via `config.h`. If you already +* boxdraw is disabled by default and controlled via `config.h`. If you already have this file, you'll need to copy the boxdraw line from `config.def.h`. Download -------- - -- [st-boxdraw-2018-11-01-30ec9a3.patch](st-boxdraw-2018-11-01-30ec9a3.patch) +* [st-boxdraw-2018-11-01-30ec9a3.patch](st-boxdraw-2018-11-01-30ec9a3.patch) Author ------ -- Avi Halachmi (:avih) - [https://github.com/avih](https://github.com/avih) +* Avi Halachmi (:avih) - [https://github.com/avih](https://github.com/avih) diff --git a/st.suckless.org/patches/clipboard/index.md b/st.suckless.org/patches/clipboard/index.md @@ -3,7 +3,6 @@ clipboard Description ----------- - st only sets PRIMARY on selection since [March 2015](//git.suckless.org/st/commit/?id=28259f5750f0dc7f52bbaf8b746ec3dc576a58ee) according to the @@ -14,7 +13,6 @@ CLIPBOARD. Download -------- - * [st-clipboard-0.8.1.diff](st-clipboard-0.8.1.diff) * [st-clipboard-0.6.diff](st-clipboard-0.6.diff) * [st-clipboard-0.7.diff](st-clipboard-0.7.diff) @@ -25,7 +23,6 @@ Download Authors ------- - * Kai Hendry - <hendry@iki.fi> * Laslo Hunhold - <dev@frign.de> (git port) * Matthew Parnell - <matt@parnmatt.co.uk> (0.7, git ports) diff --git a/st.suckless.org/patches/copyurl/index.md b/st.suckless.org/patches/copyurl/index.md @@ -3,19 +3,16 @@ copyurl Description ----------- - Select and copy the last URL displayed with Mod1+l. Multiple invocations cycle through the available URLs. Notes ----- - URLs spanning multiple lines are not handled and only the first URL on each line is selected. Download -------- - * [st-copyurl-0.6.diff](st-copyurl-0.6.diff) * [st-copyurl-0.7.diff](st-copyurl-0.7.diff) * [st-copyurl-20161105-8c99915.diff](st-copyurl-20161105-8c99915.diff) @@ -29,7 +26,6 @@ Following patches also highlight the selected urls: Authors ------- - * Brandon Mulcahy - <brandon@jangler.info> * Laslo Hunhold - <dev@frign.de> (0.6 port) * David Phillips - <david@sighup.nz> (git port) diff --git a/st.suckless.org/patches/delkey/index.md b/st.suckless.org/patches/delkey/index.md @@ -3,19 +3,16 @@ delkey Description ----------- - Return BS on pressing backspace and DEL on pressing the delete key. Download -------- - * [st-delkey-0.6.diff](st-delkey-0.6.diff) * [st-delkey-0.7.diff](st-delkey-0.7.diff) * [st-delkey-20160727-308bfbf.diff](st-delkey-20160727-308bfbf.diff) Authors ------- - * Roberto E. Vargas Caballero - <k0ga@shike2.com> * Laslo Hunhold - <dev@frign.de> (0.6, git ports) * Matthew Parnell - <matt@parnmatt.co.uk> (0.7 port) diff --git a/st.suckless.org/patches/disable_bold_italic_fonts/index.md b/st.suckless.org/patches/disable_bold_italic_fonts/index.md @@ -1,17 +1,15 @@ -Add an option to disable bold/italic fonts globally -=================================================== +Disable bold/italic fonts globally +================================== Description ----------- - -Some terminals allow disabling bold/italic fonts globally. So this patch adds such option as well. +Some terminals allow disabling bold/italic fonts globally. So this patch adds +such option as well. Download -------- - * [st-disable-bold-italic-fonts.diff](st-disable-bold-italic-fonts.diff) Author ------ - * Alex Kozadaev - <snobb@gmx at com> diff --git a/st.suckless.org/patches/dracula/index.md b/st.suckless.org/patches/dracula/index.md @@ -3,29 +3,24 @@ dracula Description ----------- - -[Dracula](https://draculatheme.com/) is a color scheme made by -Zeno Rocha based on Solarized. This patch make the Dracula -color scheme available for st. +[Dracula](https://draculatheme.com/) is a color scheme made by Zeno Rocha based +on Solarized. This patch make the Dracula color scheme available for st. Notes ----- - -Once applied, only the terminal colors are changed. -You can find a [vim colorscheme](https://draculatheme.com/vim/) and -much more at [https://draculatheme.com/](https://draculatheme.com/). +Once applied, only the terminal colors are changed. You can find a +[vim colorscheme](https://draculatheme.com/vim/) and much more at +[https://draculatheme.com/](https://draculatheme.com/). Example ------- - [![Screenshot](st-dracula.png)](st-dracula.png) Running zsh and tmux. Download -------- - * [st-dracula-20170803-7f99032.diff](st-dracula-20170803-7f99032.diff) Authors diff --git a/st.suckless.org/patches/externalpipe/index.md b/st.suckless.org/patches/externalpipe/index.md @@ -3,12 +3,10 @@ externalpipe Description ----------- - Reading and writing st's screen through a pipe. Example ------- - config.h example, binding `TERMMOD + U` to extract all visible URLs and present dmenu to select and open one: @@ -25,12 +23,12 @@ dmenu to select and open one: ### Example Shell Scripts -* [link grabber](linkgrabber.sh) - similar to the function above, but without xurls dependency +* [link grabber](linkgrabber.sh) - similar to the function above, but without + xurls dependency * [edit screen](editscreen.sh) - open screen in an editor for copying text Download -------- - * [st-externalpipe-0.4.1.diff](st-externalpipe-0.4.1.diff) * [st-externalpipe-0.5.diff](st-externalpipe-0.5.diff) * [st-externalpipe-0.6.diff](st-externalpipe-0.6.diff) @@ -42,7 +40,6 @@ Download Authors ------- - * Rob Pilling - <robpilling@gmail.com> * Laslo Hunhold - <dev@frign.de> (0.4.1, 0.5, 0.6, git ports) * Lucas Gabriel Vuotto - <lvuotto92@gmail.com> (0.7, git ports) diff --git a/st.suckless.org/patches/fix_keyboard_input/index.md b/st.suckless.org/patches/fix_keyboard_input/index.md @@ -3,59 +3,57 @@ Fix Keyboard Input (Alpha version, use with caution!) Description ----------- - This patch allows cli applications to use all the fancy key combinations that -are available to gui applications. The new scheme for encoding key combinations -was proposed by [Leonard](http://www.leonerd.org.uk/hacks/fixterms/) and appears -to have gained traction over the past years. - +are available to gui applications. The new scheme for encoding key combinations +was proposed by [Leonard](http://www.leonerd.org.uk/hacks/fixterms/) and +appears to have gained traction over the past years. Notes ----- - -* Very early stage version of this patch - I'm just at the beginning of testing - it in real world settings. I tried to encode as many key combinations as - possible according to the new scheme. This might cause issues with existing - applications if they're not aware of it. Please report any issues that you - come across. -* If you use `<C-[>` for `<Esc>`, I suggest that you remove the following line - from this patch to re-enable the behavior: - - { XK_bracketleft, ControlMask, "\033[91;5u", 0, 0}, - -* If you use `<C-6>` for changing to the alternative file, I suggest that you - remove the following line from this patch to re-enable the behavior: - - { XK_6, ControlMask, "\033[54;5u", 0, 0}, - -* I managed to bind the new mappings to actions in neovim. If you're using - tmux make sure that it's a recent version, 2.5 works fine for me. The - easiest way to know that this patch is working properly is to enter vim's - command mode by pressing `:` followed by pressing `<C-v>` and the desired key - combination. This will print the key sequence that vim received. Here are - some example mappings for vim: - - nmap <C-CR> :echo "<C-CR>"<CR> - nmap <C-S-CR> :echo "<C-S-CR>"<CR> - nmap <C-S-M-CR> :echo "<C-S-M-CR>"<CR> - nmap <S-M-CR> :echo "<S-M-CR>"<CR> - nmap <M-CR> :echo "<M-CR>"<CR> - nmap <C-M-CR> :echo "<C-M-CR>"<CR> - nmap <C-Tab> :echo "<C-Tab>"<CR> - nmap <C-S-Tab> :echo "<C-S-Tab>"<CR> - nmap <S-Tab> :echo "<S-Tab>"<CR> - nmap <M-Tab> :echo "<M-Tab>"<CR> - -* Leonard suggests to bind the CSI sequence that starts an escape sequence to - `0x9b` instead of `0x1b` (Esc) followed by `0x5b` (left bracket, [). This - removes the double use of the Esc key in terminals. Programs that run in - terminals always have to work around the double use of the Esc key by - introducing a timeout that has to pass before a press of the plain Esc key is - acted upon. For example in vim the timeout is set by the `ttimeout` and - `ttimeoutlen` setting. If you want to get rid of the double use and the - timeout, replace all occurrences of `\033[` with `\233` in the key definition. - In addition, settings in your CLI programs have to be adjusted to disable the - timeout. +Very early stage version of this patch - I'm just at the beginning of testing +it in real world settings. I tried to encode as many key combinations as +possible according to the new scheme. This might cause issues with existing +applications if they're not aware of it. Please report any issues that you come +across. + +If you use `<C-[>` for `<Esc>`, I suggest that you remove the following line +from this patch to re-enable the behavior: + + { XK_bracketleft, ControlMask, "\033[91;5u", 0, 0}, + +If you use `<C-6>` for changing to the alternative file, I suggest that you +remove the following line from this patch to re-enable the behavior: + + { XK_6, ControlMask, "\033[54;5u", 0, 0}, + +I managed to bind the new mappings to actions in neovim. If you're using +tmux make sure that it's a recent version, 2.5 works fine for me. The +easiest way to know that this patch is working properly is to enter vim's +command mode by pressing `:` followed by pressing `<C-v>` and the desired key +combination. This will print the key sequence that vim received. Here are +some example mappings for vim: + + nmap <C-CR> :echo "<C-CR>"<CR> + nmap <C-S-CR> :echo "<C-S-CR>"<CR> + nmap <C-S-M-CR> :echo "<C-S-M-CR>"<CR> + nmap <S-M-CR> :echo "<S-M-CR>"<CR> + nmap <M-CR> :echo "<M-CR>"<CR> + nmap <C-M-CR> :echo "<C-M-CR>"<CR> + nmap <C-Tab> :echo "<C-Tab>"<CR> + nmap <C-S-Tab> :echo "<C-S-Tab>"<CR> + nmap <S-Tab> :echo "<S-Tab>"<CR> + nmap <M-Tab> :echo "<M-Tab>"<CR> + +Leonard suggests to bind the CSI sequence that starts an escape sequence to +`0x9b` instead of `0x1b` (Esc) followed by `0x5b` (left bracket, `[`). This +removes the double use of the Esc key in terminals. Programs that run in +terminals always have to work around the double use of the Esc key by +introducing a timeout that has to pass before a press of the plain Esc key is +acted upon. For example in vim the timeout is set by the `ttimeout` and +`ttimeoutlen` setting. If you want to get rid of the double use and the +timeout, replace all occurrences of `\033[` with `\233` in the key definition. +In addition, settings in your CLI programs have to be adjusted to disable the +timeout. Here is an example. This entry @@ -67,12 +65,10 @@ becomes the following: Download -------- - * [st-fix-keyboard-input-20170603-5a10aca.diff](st-fix-keyboard-input-20170603-5a10aca.diff) * [st-fix-keyboard-input-20170621-b331da5.diff](st-fix-keyboard-input-20170621-b331da5.diff) * [st-fix-keyboard-input-20180605-dc3b5ba.diff](st-fix-keyboard-input-20180605-dc3b5ba.diff) Authors ------- - * Jan Christoph Ebersbach - <jceb@e-jc.de> diff --git a/st.suckless.org/patches/hidecursor/index.md b/st.suckless.org/patches/hidecursor/index.md @@ -3,7 +3,6 @@ hidecursor Description ----------- - Hide the X cursor whenever a key is pressed and show it back when the mouse is moved in the terminal window. @@ -11,7 +10,6 @@ An alternative to this patch might be [xbanish](https://github.com/jcs/xbanish). Download -------- - * [st-hidecursor-0.5.diff](st-hidecursor-0.5.diff) * [st-hidecursor-0.6.diff](st-hidecursor-0.6.diff) * [st-hidecursor-0.7.diff](st-hidecursor-0.7.diff) @@ -20,6 +18,5 @@ Download Authors ------- - * Ivan Delalande - <colona@ycc.fr> * Laslo Hunhold - <dev@frign.de> (git port) diff --git a/st.suckless.org/patches/index.md b/st.suckless.org/patches/index.md @@ -1,5 +1,4 @@ patches ======= - -For instructions on how to submit and format patches, take a look at -the [hacking guidelines](//suckless.org/hacking). +For instructions on how to submit and format patches, take a look at the +[hacking guidelines](//suckless.org/hacking). diff --git a/st.suckless.org/patches/iso14755/index.md b/st.suckless.org/patches/iso14755/index.md @@ -3,17 +3,13 @@ ISO 14755 Description ----------- - -Pressing the default binding Ctrl+Shift-i will popup dmenu, asking -you to enter a unicode codepoint that will be converted to a glyph -and then pushed to st. +Pressing the default binding Ctrl+Shift-i will popup dmenu, asking you to enter +a unicode codepoint that will be converted to a glyph and then pushed to st. Download -------- - * [st-iso14755-20180911-67d0cb6.diff](st-iso14755-20180911-67d0cb6.diff) Authors ------- - * Quentin Rameau <quinq@fifth.space> diff --git a/st.suckless.org/patches/keyboard_select/index.md b/st.suckless.org/patches/keyboard_select/index.md @@ -1,27 +1,24 @@ -keyboard_select -=============== +keyboard\_select +================ Description ----------- - This patch allows you to select and copy text to primary buffer with keyboard -shortcuts like the perl extension &ldquo;keyboard-select&rdquo; for urxvt. +shortcuts like the perl extension keyboard-select for urxvt. Instructions ------------ -The patch changes the &ldquo;config.def.h&rdquo;. Delete your -&ldquo;config.h&rdquo; or add the shortcut below if you use a custom one. +The patch changes the config.def.h. Delete your config.h or add the shortcut +below if you use a custom one. Shortcut shortcuts[] = { ... { TERMMOD, XK_Escape, keyboard_select, { 0 } }, }; - Notes ----- - -When you run "keyboard_select", you have 3 modes available : +When you run "keyboard\_select", you have 3 modes available : * move mode : to set the start of the selection; * select mode : to activate and set the end of the selection; @@ -41,21 +38,18 @@ Shortcuts for move and select modes : Return: quit keyboard_select, keeping the highlight of the selection Escape: quit keyboard_select -With h,j,k,l (also with arrow keys), you can use a quantifier. Enter a number before hitting the appropriate key. +With h,j,k,l (also with arrow keys), you can use a quantifier. Enter a number +before hitting the appropriate key. Shortcuts for input mode : Return: Return to the previous mode - - Download -------- - -* [git-st-keyboard_select-20180619-937e367.diff](git-st-keyboard_select-20180619-937e367.diff) -* [st-keyboard_select-0.8.1.diff](st-keyboard_select-0.8.1.diff) - +* [git-st-keyboard\_select-20180619-937e367.diff](git-st-keyboard_select-20180619-937e367.diff) +* [st-keyboard\_select-0.8.1.diff](st-keyboard_select-0.8.1.diff) Authors ------- -* Tonton Couillon - &lt;la dot luge at free dot fr> +* Tonton Couillon - <la dot luge at free dot fr> diff --git a/st.suckless.org/patches/open_copied_url/index.md b/st.suckless.org/patches/open_copied_url/index.md @@ -1,9 +1,8 @@ -open_copied_url -=============== +open\_copied\_url +================= Description ----------- - Open contents of the clipboard in a user-defined browser. The clipboard in this case refers to the CLIPBOARD selection which gets @@ -11,7 +10,6 @@ populated when pressing e.g. C-c. Instructions ------------ - Add a keybinding like the following example to "shortcuts" in config.h: { MODKEY, XK_v, opencopied, {.v = "firefox"} }, @@ -20,17 +18,15 @@ Set the .v field of the last parameter to the program you want to bind to the ke Notes ----- - By default this patch binds the Mod+o to "xdg-open". This allows users to open the contents of the clipboard in the default browser. Download -------- - * [st-openclipboard-20180525-2c2500c.diff](st-openclipboard-20180525-2c2500c.diff) Authors ------- - -* Michael Buch - <michaelbuch12@gmail.com> -* Sai Praneeth Reddy - <spr.mora04@gmail.com> (0.8.1, open external programs independently) +* Michael Buch - &lt;michaelbuch12@gmail.com> +* Sai Praneeth Reddy - &lt;spr.mora04@gmail.com> (0.8.1, open external programs + independently) diff --git a/st.suckless.org/patches/openbsd/index.md b/st.suckless.org/patches/openbsd/index.md @@ -3,35 +3,26 @@ openbsd Description ----------- +OpenBSD primarily searches for terminfo descriptions in terminfo databases +before considering terminfo files. Given the terminfo currently stored in the +global database is for st 0.1.1, this leads to conflicts and misbehaviour. -OpenBSD primarily searches for terminfo descriptions in -terminfo databases before considering terminfo files. -Given the terminfo currently stored in the global database -is for st 0.1.1, this leads to conflicts and misbehaviour. - -This patch renames st to st-git forcing OpenBSD to use the provided -terminfo file. - +This patch renames st to st-git forcing OpenBSD to use the provided terminfo +file. Notes ----- - -Once a new stable version of st is out, the corresponding changes -to st.info can be pushed upstream to ncurses and then be merged -back to OpenBSD, effectively making this patch obsolete for -future stable releases. -More information on this issue can be found in this +Once a new stable version of st is out, the corresponding changes to st.info +can be pushed upstream to ncurses and then be merged back to OpenBSD, +effectively making this patch obsolete for future stable releases. More +information on this issue can be found in this [thread](http://marc.info/?l=openbsd-misc&m=139540215025526&w=2). - Download -------- - * [st-openbsd-20160727-308bfbf.diff](st-openbsd-20160727-308bfbf.diff) - Authors ------- - * Nils Reuße - <nilsreusse@gmail.com> * Laslo Hunhold - <dev@frign.de> (git port) diff --git a/st.suckless.org/patches/palettes/index.md b/st.suckless.org/patches/palettes/index.md @@ -1,19 +1,16 @@ -color_schemes +color\_schemes ============= Description ----------- - This patch allows you to work with 16 color palettes and change them on the fly. - Instructions ------------ The patch changes the &ldquo;config.def.h&rdquo;. Delete your &ldquo;config.h&rdquo; or change it manually if you use a custom one. - Notes ----- It uses the following shortcuts : @@ -33,8 +30,7 @@ It uses the following shortcuts : Download -------- - -* [st-color_schemes-0.8.1.diff](st-color_schemes-0.8.1.diff) +* [st-color\_schemes-0.8.1.diff](st-color_schemes-0.8.1.diff) Authors diff --git a/st.suckless.org/patches/relativeborder/index.md b/st.suckless.org/patches/relativeborder/index.md @@ -1,7 +1,8 @@ -# relativeborder - -## Description +relativeborder +============== +Description +----------- When working with a mixture of different DPI scales on different monitors, you need to use a flexible font that will size correctly no matter the DPI - for example, `DejaVu Sans Mono-10`. If you have a border set in pixels, this border @@ -10,10 +11,10 @@ will look vastly different in size depending on the DPI of your display. This patch allows you to specify a border that is relative in size to the width of a cell in the terminal. -## Download - +Download +-------- * [st-relativeborder-20171207-0ac685f.diff](st-relativeborder-20171207-0ac685f.diff) -## Authors - +Authors +------- * Doug Whiteley - <dougwhiteley@gmail.com> diff --git a/st.suckless.org/patches/right_click_to_plumb/index.md b/st.suckless.org/patches/right_click_to_plumb/index.md @@ -1,67 +1,71 @@ -# Right click to plumb - -Pretty much like plan9's acme and plumber: right-click some selected text to send it to the plumbing program of your choosing: +Right click to plumb +==================== +Pretty much like plan9's acme and plumber: right-click some selected text to +send it to the plumbing program of your choosing: * open an URL in a browser * view an image, PDF, ... * jump from logs to editor, at the specified line/col * etc -The shell current working directory is set by the shell via `OSC 7` (borrowed from vte, see `/etc/profile.d/vte.sh` if you have it installed). +The shell current working directory is set by the shell via `OSC 7` (borrowed +from vte, see `/etc/profile.d/vte.sh` if you have it installed). For zsh : - - __vte_urlencode() ( - # This is important to make sure string manipulation is handled - # byte-by-byte. - LC_ALL=C - str="$1" - while [ -n "$str" ]; do - safe="${str%%[!a-zA-Z0-9/:_\.\-\!\'\(\)~]*}" - printf "%s" "$safe" - str="${str#"$safe"}" - if [ -n "$str" ]; then - printf "%%%02X" "'$str" - str="${str#?}" - fi - done - ) - - __vte_osc7 () { - printf "\033]7;%s%s\a" "${HOSTNAME:-}" "$(__vte_urlencode "${PWD}")" - } - - [ -n "$ZSH_VERSION" ] && precmd_functions+=(__vte_osc7) - -The patch itself only adds a `cwd` global and a button3 entry that will run a shell, change directory to cwd and run the plumber with the primary selection. Maybe I should use pass cwd as an argument too, like plan9 plumber does. + __vte_urlencode() ( + # This is important to make sure string manipulation is handled + # byte-by-byte. + LC_ALL=C + str="$1" + while [ -n "$str" ]; do + safe="${str%%[!a-zA-Z0-9/:_\.\-\!\'\(\)~]*}" + printf "%s" "$safe" + str="${str#"$safe"}" + if [ -n "$str" ]; then + printf "%%%02X" "'$str" + str="${str#?}" + fi + done + ) + + __vte_osc7 () { + printf "\033]7;%s%s\a" "${HOSTNAME:-}" "$(__vte_urlencode "${PWD}")" + } + + [ -n "$ZSH_VERSION" ] && precmd_functions+=(__vte_osc7) + +The patch itself only adds a `cwd` global and a button3 entry that will run a +shell, change directory to cwd and run the plumber with the primary selection. +Maybe I should use pass cwd as an argument too, like plan9 plumber does. The plumbing program can be defined via `config.h`: - static char plumber[] = "plumb.sh"; - -## Download - -* [right_click_to_plumb.diff](right_click_to_plumb.diff) (2017-09-11) + static char plumber[] = "plumb.sh"; -## Authors +Download +-------- +* [right\_click\_to\_plumb.diff](right_click_to_plumb.diff) (2017-09-11) +Authors +------- * [jerome](http://blog.jardinmagique.info) <jerome@gcu.info> - -# A simpler plumb patch - -The plumbing command is run in the working directory of the shell, with as parameter the text selected with the mouse. +A simpler plumb patch +===================== +The plumbing command is run in the working directory of the shell, with as +parameter the text selected with the mouse. Configuration is done in config.h and an example is supplied in config.def.h: - static char *plumb_cmd = "plumb"; - -I made this version since I had a hard time understanding how the OSC 7 stuff works and I preferred a full C implementation of a plumbing patch. - -## Download + static char *plumb_cmd = "plumb"; -* [plumb_without_shell_OSC.diff](plumb_without_shell_OSC.diff) (2018-11-03) +I made this version since I had a hard time understanding how the OSC 7 stuff +works and I preferred a full C implementation of a plumbing patch. -## Authors +Download +-------- +* [plumb\_without\_shell\_OSC.diff](plumb_without_shell_OSC.diff) (2018-11-03) +Authors +------- * [john](http://roxor.me) <j@roxor.me> diff --git a/st.suckless.org/patches/scrollback/index.md b/st.suckless.org/patches/scrollback/index.md @@ -3,12 +3,10 @@ scrollback Description ----------- - Scroll back through terminal output using Shift+{PageUp, PageDown}. Download -------- - * [st-scrollback-0.7.diff](st-scrollback-0.7.diff) * [st-scrollback-0.8.diff](st-scrollback-0.8.diff) * [st-scrollback-20181224-096b125.diff](st-scrollback-20181224-096b125.diff) @@ -30,18 +28,19 @@ other than scrolling functions.** Notes ----- - * Patches modify config.def.h, you need to add mkeys to your own config.h -* You can not have an mshortcut for the same mkey so remove Button4 and Button5 from mshortcuts in config.h +* You can not have an mshortcut for the same mkey so remove Button4 and Button5 + from mshortcuts in config.h Authors ------- - -* Jochen Sprickerhof - <st@jochen.sprickerhof.de> -* M Farkas-Dyck - <strake888@gmail.com> -* Ivan Tham - <pickfire@riseup.net> (mouse scrolling) -* Ori Bernstein - <ori@eigenstate.org> (fix memory bug) -* Matthias Schoth - <mschoth@gmail.com> (auto altscreen scrolling) -* Laslo Hunhold - <dev@frign.de> (unscrambling, git port) -* Paride Legovini - <pl@ninthfloor.org> (don't require the Shift modifier when using the auto altscreen scrolling) -* Lorenzo Bracco - <devtry@riseup.net> (update base patch, use static variable for config) +* Jochen Sprickerhof - &lt;st@jochen.sprickerhof.de> +* M Farkas-Dyck - &lt;strake888@gmail.com> +* Ivan Tham - &lt;pickfire@riseup.net> (mouse scrolling) +* Ori Bernstein - &lt;ori@eigenstate.org> (fix memory bug) +* Matthias Schoth - &lt;mschoth@gmail.com> (auto altscreen scrolling) +* Laslo Hunhold - &lt;dev@frign.de> (unscrambling, git port) +* Paride Legovini - &lt;pl@ninthfloor.org> (don't require the Shift modifier + when using the auto altscreen scrolling) +* Lorenzo Bracco - &lt;devtry@riseup.net> (update base patch, use static + variable for config) diff --git a/st.suckless.org/patches/solarized/index.md b/st.suckless.org/patches/solarized/index.md @@ -3,23 +3,18 @@ solarized Description ----------- - -[Solarized](http://ethanschoonover.com/solarized) is a color scheme by -Ethan Schoonover which exists in a dark and a light variant. These -patches make the Solarized color scheme available for st. - +[Solarized](http://ethanschoonover.com/solarized) is a color scheme by Ethan +Schoonover which exists in a dark and a light variant. These patches make the +Solarized color scheme available for st. Notes ----- - Once applied, only the terminal colors are changed. For applications such as tmux or vim, you may need to [adjust the colors there as well](https://bbs.archlinux.org/viewtopic.php?id=164108). - Example ------- - [![Screenshot](st-solarized-light-s.png)](st-solarized-light.png) [![Screenshot](st-solarized-dark-s.png)](st-solarized-dark.png) @@ -28,15 +23,14 @@ The font used is Source Code Pro. Download -------- - To get correct colors, you first need to apply the following patch to disable lighting up bold colors. -* [st-no_bold_colors-0.5.diff](st-no_bold_colors-0.5.diff) -* [st-no_bold_colors-0.6.diff](st-no_bold_colors-0.6.diff) -* [st-no_bold_colors-0.7.diff](st-no_bold_colors-0.7.diff) -* [st-no_bold_colors-0.8.1.diff](st-no_bold_colors-0.8.1.diff) -* [st-no_bold_colors-20170623-b331da5.diff](st-no_bold_colors-20170623-b331da5.diff) +* [st-no\_bold\_colors-0.5.diff](st-no_bold_colors-0.5.diff) +* [st-no\_bold\_colors-0.6.diff](st-no_bold_colors-0.6.diff) +* [st-no\_bold\_colors-0.7.diff](st-no_bold_colors-0.7.diff) +* [st-no\_bold\_colors-0.8.1.diff](st-no_bold_colors-0.8.1.diff) +* [st-no\_bold\_colors-20170623-b331da5.diff](st-no_bold_colors-20170623-b331da5.diff) Choose one of the following patches to get either the light or the dark color scheme: @@ -61,13 +55,12 @@ or the dark color scheme: * [st-solarized-both-0.8.1.diff](st-solarized-both-0.8.1.diff) * [st-solarized-both-20170626-b331da5.diff](st-solarized-both-20170626-b331da5.diff) - Authors ------- -* Nils Reuße - <nilsreusse@gmail.com> -* Laslo Hunhold - <dev@frign.de> (0.5, 0.6, git ports) -* Ryan Roden-Corrent - <ryan@rcorre.net> (both) -* Marcel Krüger - <zauguin@gmail.com> (older git ports) -* Harry Gindi - <harry.gindi@live.com> (git ports for light, dark, and swap versions) -* Matthew Parnell - <matt@parnmatt.co.uk> (0.7 port) -* Linh Nguyen - <linhvng.2212@gmail.com> (0.8.1 port for no_bold_colors and swap versions) +* Nils Reuße - &lt;nilsreusse@gmail.com> +* Laslo Hunhold - &lt;dev@frign.de> (0.5, 0.6, git ports) +* Ryan Roden-Corrent - &lt;ryan@rcorre.net> (both) +* Marcel Krüger - &lt;zauguin@gmail.com> (older git ports) +* Harry Gindi - &lt;harry.gindi@live.com> (git ports for light, dark, and swap versions) +* Matthew Parnell - &lt;matt@parnmatt.co.uk> (0.7 port) +* Linh Nguyen - &lt;linhvng.2212@gmail.com> (0.8.1 port for no\_bold\_colors and swap versions) diff --git a/st.suckless.org/patches/spoiler/index.md b/st.suckless.org/patches/spoiler/index.md @@ -3,22 +3,20 @@ spoiler Description ----------- - Use inverted defaultbg/fg for selection when bg/fg are the same The background/foreground of selected text is currently set by setting -ATTR_REVERSE, which flips its normal bg/fg. When the text being selected -has the same bg and fg, it won't be readable after selecting it, either. +ATTR\_REVERSE, which flips its normal bg/fg. When the text being selected has +the same bg and fg, it won't be readable after selecting it, either. The main use case is black-on-black text used to mark 'spoilers'. -This patch allows that text to be read by selecting it, turning it into -text with white bg and black fg (given default values for defaultbg/fg), -just like most normal unformatted text when selected. +This patch allows that text to be read by selecting it, turning it into text +with white bg and black fg (given default values for defaultbg/fg), just like +most normal unformatted text when selected. Download -------- - * [st-spoiler-0.6.diff](st-spoiler-0.6.diff) * [st-spoiler-0.7.diff](st-spoiler-0.7.diff) * [st-spoiler-20160727-308bfbf.diff](st-spoiler-20160727-308bfbf.diff) @@ -27,7 +25,6 @@ Download Author ------ - * dequis - <dx@dxzone.com.ar> * Laslo Hunhold - <dev@frign.de> (git port) * Matthew Parnell - <matt@parnmatt.co.uk> (0.7, git ports) diff --git a/st.suckless.org/patches/vertcenter/index.md b/st.suckless.org/patches/vertcenter/index.md @@ -1,7 +1,8 @@ -# vertcenter - -## Description +vertcenter +========== +Description +----------- Vertically center lines in the space available if you have set a larger chscale in config.h. @@ -13,14 +14,14 @@ After: [![After](st-vertcenter-after-s.png)](st-vertcenter-after.png) -## Download - +Download +-------- * [st-vertcenter-0.7.diff](st-vertcenter-0.7.diff) * [st-vertcenter-20160819-023225e.diff](st-vertcenter-20160819-023225e.diff) * [st-vertcenter-20170601-5a10aca.diff](st-vertcenter-20170601-5a10aca.diff) * [st-vertcenter-20171207-0ac685f.diff](st-vertcenter-20171207-0ac685f.diff) * [st-vertcenter-20180320-6ac8c8a.diff](st-vertcenter-20180320-6ac8c8a.diff) -## Authors - +Authors +-------- * Doug Whiteley - <dougwhiteley@gmail.com> diff --git a/st.suckless.org/patches/visualbell/index.md b/st.suckless.org/patches/visualbell/index.md @@ -1,6 +1,5 @@ visualbell ========== - This page contains two unrelated implementations of visual bell which are not compatible with each other. If you have one of them applied, remove it before trying the other. @@ -9,26 +8,21 @@ trying the other. Description ----------- - Briefly inverts window content on terminal bell event. Notes ----- - -In order to be noticeable you might have to reduce the `xfps` -value in `config.h` to less than equal the refresh rate of your -monitor. +In order to be noticeable you might have to reduce the `xfps` value in +`config.h` to less than equal the refresh rate of your monitor. Download -------- - * [st-visualbell-20160727-308bfbf.diff](st-visualbell-20160727-308bfbf.diff) * [st-visualbell-20180101-1f24bde.diff](st-visualbell-20180101-1f24bde.diff) * [st-visualbell-0.8.1.diff](st-visualbell-0.8.1.diff) Authors ------- - * Matthias Schoth - <mschoth@gmail.com> * Laslo Hunhold - <dev@frign.de> (git port) * Alexis Ben Miloud--Josselin; panpo; alexisbmj+code at protonmail dot com. @@ -37,47 +31,42 @@ Authors Description ----------- - Briefly renders a configurable visual indication on terminal bell event. Notes ----- - -- There are two variants available for download: basic and enhanced. -- The enhanced version file already includes the basic version in it, and +* There are two variants available for download: basic and enhanced. +* The enhanced version file already includes the basic version in it, and supports the basic options too. -- Both variants can be applied with either `git am <patch-file>` or - ` patch -p1 < <patch-file>`. -- Visual bell is disabled by default, and can be enabled/configured via +* Both variants can be applied with either `git am <patch-file>` or ` patch -p1 + < <patch-file>`. +* Visual bell is disabled by default, and can be enabled/configured via `config.h`. If you already have this file, you'll need to add the visual-bell values by copying them from `config.def.h` - which also includes their docs. ### The basic variant supports: - -- Invert the whole screen (default). -- Invert only the outer (border) cells for a less jarring effect. -- Configuring the flash duration (default: 100ms). +* Invert the whole screen (default). +* Invert only the outer (border) cells for a less jarring effect. +* Configuring the flash duration (default: 100ms). ### The enhanced variant: - This version experiments with a more graphical indication, by adding support for rendering a filled circle (needs to be chosen at `config.h`), which can be configured for: -- Position: any corner/edge, center of the screen, or anything in between. -- Size: relative to the window width or to the cell width. -- Colors: base and outline. +* Position: any corner/edge, center of the screen, or anything in between. +* Size: relative to the window width or to the cell width. +* Colors: base and outline. The enhanced variant allows, for instance, to render what looks like a LED -indicator at a tmux status bar, with correct cell height, and can be -positioned at the side/middle of a top/bottom bar, etc. +indicator at a tmux status bar, with correct cell height, and can be positioned +at the side/middle of a top/bottom bar, etc. Download -------- - -- [st-visualbell2-basic-2018-10-16-30ec9a3.patch](st-visualbell2-basic-2018-10-16-30ec9a3.patch) -- [st-visualbell2-enhanced-2018-10-16-30ec9a3.patch](st-visualbell2-enhanced-2018-10-16-30ec9a3.patch) +* [st-visualbell2-basic-2018-10-16-30ec9a3.patch](st-visualbell2-basic-2018-10-16-30ec9a3.patch) +* [st-visualbell2-enhanced-2018-10-16-30ec9a3.patch](st-visualbell2-enhanced-2018-10-16-30ec9a3.patch) Author ------ -- Avi Halachmi (:avih) - [https://github.com/avih](https://github.com/avih) +* Avi Halachmi (:avih) - [https://github.com/avih](https://github.com/avih) diff --git a/st.suckless.org/patches/xresources/index.md b/st.suckless.org/patches/xresources/index.md @@ -3,19 +3,16 @@ xresources Description ----------- - This patch adds the ability to configure st via Xresources. At startup, st will read and apply the resources named in the `resources[]` array in config.h. Download -------- - * [st-xresources-20180309-c5ba9c0.diff](st-xresources-20180309-c5ba9c0.diff) * [st-xresources-20181018-g30ec9a3.diff](st-xresources-20181018-g30ec9a3.diff) Authors ------- - * @dcat on [Github](https://github.com/dcat/st-xresources) * Devin J. Pohly - <djpohly@gmail.com> (git port) * Sai Praneeth Reddy - <spr.mora04@gmail.com> (read borderpx from xresources) diff --git a/suckless.org/coding_style/index.md b/suckless.org/coding_style/index.md @@ -1,10 +1,13 @@ Style ===== -Note that the following are guidelines and the most important aspect of style is consistency. Strive to keep your style consistent with the project on which you are working. +Note that the following are guidelines and the most important aspect of style +is consistency. Strive to keep your style consistent with the project on which +you are working. Recommended Reading ------------------- -The following contain good information, some of which is repeated below, some of which is contradicted below. +The following contain good information, some of which is repeated below, some +of which is contradicted below. * <http://doc.cat-v.org/bell_labs/pikestyle> * <https://www.kernel.org/doc/Documentation/process/coding-style.rst> @@ -45,7 +48,6 @@ Blocks * `}` on own line unless continuing statement (`if else`, `do while`, ...) * Use block for single statement iff * Inner statement needs a block - for (;;) { if (foo) { bar; @@ -53,7 +55,6 @@ Blocks } } * Another branch of the same statement needs a block - if (foo) { bar; } else { @@ -139,7 +140,6 @@ Tests and Boolean Values Handling Errors --------------- * When functions `return -1` for error test against `0` not `-1` - if (func() < 0) hcf(); * Use `goto` to unwind and cleanup when necessary instead of multiple nested levels @@ -150,7 +150,6 @@ Handling Errors Enums vs #define ---------------- * Use enums for values that are grouped semantically and #define otherwise - #define MAXSZ 4096 #define MAGIC1 0xdeadbeef diff --git a/suckless.org/community/index.md b/suckless.org/community/index.md @@ -3,7 +3,6 @@ Community Mailing lists ------------- - * `dev@suckless.org` - for dwm/dmenu/st/... users, development discussion, bug reports and general discussion * `hackers@suckless.org` - for patches and patch discussion. Commit messages @@ -14,7 +13,6 @@ Mailing lists * `wiki@suckless.org` - for discussion about the wiki, also automatic wiki commit messages are posted here. - ### Best practice When beginning a new discussion on the mailing lists, except for the wiki@ @@ -35,7 +33,6 @@ In both cases describe the problem or the fix clearly. * Don't use HTML mail: use plain-text UTF8. * Don't top-post: bottom-post. - ### Mailing list commands Send a mail from your (not yet) subscribed email address to one of the @@ -105,13 +102,11 @@ mailing list so you can see eventual comments on your patches. Mailing lists web archive ------------------------- - An archive of all mails posted to the mailing lists is accessible via [lists.suckless.org](//lists.suckless.org/). Related lists ------------- - * [9fans](http://plan9.bell-labs.com/wiki/plan9/mailing_lists/#9fans) - fans of the [Plan 9 from Bell Labs](http://9fans.net) operating system * [inferno-list](http://plan9.bell-labs.com/wiki/plan9/mailing_lists/#INFERNO-LIST) @@ -121,7 +116,6 @@ Related lists IRC --- - The channels are in the [OFTC](http://www.oftc.net) IRC network: [irc.oftc.net](irc://irc.oftc.net/) diff --git a/suckless.org/conferences/2015/index.md b/suckless.org/conferences/2015/index.md @@ -8,7 +8,6 @@ Friday, 2015-10-30 Talks ----- - (11:00-11:15) *Welcome*, Anselm R Garbe > Anselm opened slcon2 and gave an overview on the final conference schedule. diff --git a/suckless.org/conferences/2016/index.md b/suckless.org/conferences/2016/index.md @@ -8,7 +8,6 @@ slcon 2016 was held in Hofheim am Taunus near Frankfurt am Main on Friday, 2016-09-23 ================== - Arrival day. (19:30) *Gathering in the "Waldgeist"* @@ -19,7 +18,6 @@ Arrival day. Saturday, 2016-09-24 ==================== - (10:00-10:05) *Welcome*, Anselm R Garbe > Anselm opened the slcon 2016 talk session @@ -235,12 +233,10 @@ Video: Sunday, 2016-09-25 ================== - No talk session plans, hack sessions and departure day. Acknowledgment ============== - We kindly thank [![genua GmbH](../genua.png)](http://www.genua.eu) for lending us the equipment to record the slcon 2016 conference videos. diff --git a/suckless.org/conferences/2017/index.md b/suckless.org/conferences/2017/index.md @@ -1,5 +1,5 @@ -# suckless hackathon 2017, Würzburg, Germany - +suckless hackathon 2017, Würzburg, Germany +============================================ slcon hackathon 2017 was held in Würzburg on 2017-09-(01-03). [![slcon2017 group photo](slcon2017-s.png)](slcon2017.png) @@ -12,8 +12,8 @@ We also introduced the annual suckless torchlight hike for the first time. [![hike 2017 photo](hike2017-s.png)](hike2017.png) -## Previous conferences - +Previous conferences +-------------------- * [slcon 2016](../2016/) * [slcon 2015](../2015/) * [slcon 2013](../2013/) diff --git a/suckless.org/conferences/2018/index.md b/suckless.org/conferences/2018/index.md @@ -1,6 +1,5 @@ suckless hackathon 2018, Würzburg, Germany =========================================== - slcon hackathon 2018 was held in Würzburg on 2018-07-(06-09). [![slcon2018 group photo 0](slcon2018-0-s.jpg)](slcon2018-0.jpg) diff --git a/suckless.org/donations/index.md b/suckless.org/donations/index.md @@ -21,15 +21,15 @@ is appreciated by the entire suckless community. Present ------- -Following people are currently donating in one or another way to the suckless.org project: +Following people are currently donating in one or another way to the +suckless.org project: * Anselm R Garbe donates domains and servers. Past ---- -Following people have donated to the suckless.org project -certain amounts of money, which have been used for the dedicated server rent -in the past: +Following people have donated to the suckless.org project certain amounts of +money, which have been used for the dedicated server rent in the past: * Mikko Nyman donated **100 EUR** * Benedikt Brenner donated **50 EUR** diff --git a/suckless.org/hacking/index.md b/suckless.org/hacking/index.md @@ -3,13 +3,13 @@ Hacking Copying/license --------------- -We only accept contributions from individuals, not corporate entities. See -the project LICENSE file you're contributing to. +We only accept contributions from individuals, not corporate entities. See the +project LICENSE file you're contributing to. Debugging --------- -If you find any crashes, please send a full backtrace to the dedicated mailing list. -You can create backtraces with `gdb`: +If you find any crashes, please send a full backtrace to the dedicated mailing +list. You can create backtraces with `gdb`: Before starting a program, you may have to allow core file creation. It is recommended that you put this in your profile: @@ -23,7 +23,8 @@ After the program crashes, do the following: $ gdb -q `which program` /path/to/core gdb> bt full -If you encounter freezes (no crash at all) of the program, you can debug as follows: +If you encounter freezes (no crash at all) of the program, you can debug as +follows: $ gdb -q `which program` --attach `pgrep -o program` gdb> bt full @@ -48,18 +49,18 @@ the pages you see here. patch filename format --------------------- -The expected format for patches is +The expected format for patches is: For git revisions: toolname-patchname-YYYYMMDD-SHORTHASH.diff dwm-allyourbase-20160617-3465bed.diff -The YYYYMMDD date should correspond to the last time the patch has been modified. -The SHORTHASH here is the seven chars git commit short hash corresponding to the -last commit of the tool on which the patch can be applied correctly and -is working with. -You can get it by taking the first seven chars of the full hash or for example: +The YYYYMMDD date should correspond to the last time the patch has been +modified. The SHORTHASH here is the seven chars git commit short hash +corresponding to the last commit of the tool on which the patch can be applied +correctly and is working with. You can get it by taking the first seven chars +of the full hash or for example: git rev-parse --short <commit-id> (with commit-id: HEAD, commit hash, etc.) diff --git a/suckless.org/index.md b/suckless.org/index.md @@ -1,6 +1,8 @@ -Home of [dwm](//dwm.suckless.org), [dmenu](//tools.suckless.org/dmenu) and other quality software with a focus on simplicity, clarity, and frugality. +Home of [dwm](//dwm.suckless.org), [dmenu](//tools.suckless.org/dmenu) and +other quality software with a focus on simplicity, clarity, and frugality. -Read more about our [philosophy](/philosophy) and join us on the [mailing list](/community). +Read more about our [philosophy](/philosophy) and join us on the [mailing +list](/community). News ==== @@ -52,47 +54,53 @@ Registrations for [slcon5](/conferences/2018/) are now open. 2017-08-30 ---------- -suckless.org now supports TLS using [Let's Encrypt](https://letsencrypt.org/). Cloning git repos over -HTTPS now works. Some links on the page have been changed to allow both -HTTP and HTTPS. +suckless.org now supports TLS using [Let's Encrypt](https://letsencrypt.org/). +Cloning git repos over HTTPS now works. Some links on the page have been +changed to allow both HTTP and HTTPS. HSTS is not fully working yet. This will be fixed. The IPv6 AAAA record was added and IPv6 is fully working now. -suckless has many subdomains, these should hopefully all work via TLS. -If you see a subdomain without a signed certificate please report it. -If you find any broken links on the wiki pages, these can be fixed -by anyone. +suckless has many subdomains, these should hopefully all work via TLS. If you +see a subdomain without a signed certificate please report it. If you find any +broken links on the wiki pages, these can be fixed by anyone. 2017-07-03 ---------- -The suckless.org project is now hosted on a new server. All inactive accounts have been removed during the relocation. +The suckless.org project is now hosted on a new server. All inactive accounts +have been removed during the relocation. -Please note that the new ECDSA key fingerprint is SHA256:7DBXcYScmsxbv7rMJUJoJsY5peOrngD4QagiXX6MiQU. +Please note that the new ECDSA key fingerprint is +SHA256:7DBXcYScmsxbv7rMJUJoJsY5peOrngD4QagiXX6MiQU. 2017-05-06 ---------- -[blind 1.1](//tools.suckless.org/blind) released: [download](//dl.suckless.org/tools/blind-1.1.tar.gz) +[blind 1.1](//tools.suckless.org/blind) released: +[download](//dl.suckless.org/tools/blind-1.1.tar.gz) 2017-05-02 ---------- -[dmenu 4.7](//tools.suckless.org/dmenu) released: [download](//dl.suckless.org/tools/dmenu-4.7.tar.gz) +[dmenu 4.7](//tools.suckless.org/dmenu) released: +[download](//dl.suckless.org/tools/dmenu-4.7.tar.gz) 2017-04-14 ---------- -[farbfeld 3](//tools.suckless.org/farbfeld/) released: [download](//dl.suckless.org/farbfeld/farbfeld-3.tar.gz) +[farbfeld 3](//tools.suckless.org/farbfeld/) released: +[download](//dl.suckless.org/farbfeld/farbfeld-3.tar.gz) 2017-03-28 ---------- -[surf](//surf.suckless.org/) now uses webkit2 by default. -The webkit1 version is kept in the [surf-webkit1](//git.suckless.org/surf/log/?h=surf-webkit1) branch. -The “master” branch doesn't exist anymore, HEAD is now [surf-webkit2](//git.suckless.org/surf/log/), -so be sure to rebase your local master commits onto surf-webkit1. +[surf](//surf.suckless.org/) now uses webkit2 by default. The webkit1 version +is kept in the [surf-webkit1](//git.suckless.org/surf/log/?h=surf-webkit1) +branch. The “master” branch doesn't exist anymore, HEAD is now +[surf-webkit2](//git.suckless.org/surf/log/), so be sure to rebase your local +master commits onto surf-webkit1. 2016-11-20 ---------- -[slock 1.4](//tools.suckless.org/slock) released: [download](//dl.suckless.org/tools/slock-1.4.tar.gz) +[slock 1.4](//tools.suckless.org/slock) released: +[download](//dl.suckless.org/tools/slock-1.4.tar.gz) 2016-09-26 ---------- @@ -100,15 +108,18 @@ Videos of the [slcon 2016 talks](conferences/2016) are now available. 2016-08-24 ---------- -[slcon3](conferences/2016) preliminary schedule now published. If you want to attend please register before: **2016-09-01**. +[slcon3](conferences/2016) preliminary schedule now published. If you want to +attend please register before: **2016-09-01**. 2015-12-19 ---------- -[surf 0.7](//surf.suckless.org) released: [download](//dl.suckless.org/surf/surf-0.7.tar.gz) +[surf 0.7](//surf.suckless.org) released: +[download](//dl.suckless.org/surf/surf-0.7.tar.gz) 2015-11-25 ---------- -[sent 0.2](//tools.suckless.org/sent) released: [download](//dl.suckless.org/tools/sent-0.2.tar.gz) +[sent 0.2](//tools.suckless.org/sent) released: +[download](//dl.suckless.org/tools/sent-0.2.tar.gz) 2015-11-13 ---------- @@ -116,15 +127,18 @@ Videos of the [slcon2 talks](conferences/2015) are now available. 2015-11-09 ---------- -[dwm 6.1](//dwm.suckless.org) released: [download](//dl.suckless.org/dwm/dwm-6.1.tar.gz) +[dwm 6.1](//dwm.suckless.org) released: +[download](//dl.suckless.org/dwm/dwm-6.1.tar.gz) 2015-09-23 ---------- -Kai and Anselm gave an interview about suckless.org on Randal Schwartz's [FLOSS Weekly show](https://twit.tv/shows/floss-weekly/episodes/355?autostart=false) +Kai and Anselm gave an interview about suckless.org on Randal Schwartz's [FLOSS +Weekly show](https://twit.tv/shows/floss-weekly/episodes/355?autostart=false) 2015-07-07 ---------- -[st 0.6](//st.suckless.org) released: [download](//dl.suckless.org/st/st-0.6.tar.gz) +[st 0.6](//st.suckless.org) released: +[download](//dl.suckless.org/st/st-0.6.tar.gz) 2015-02-14 ---------- @@ -134,38 +148,45 @@ The CfP for interested participants is now open and will end on 2015-04-30. 2014-11-29 ---------- -[lsw 0.3](//tools.suckless.org/x/lsw) released: [download](//dl.suckless.org/tools/lsw-0.3.tar.gz) +[lsw 0.3](//tools.suckless.org/x/lsw) released: +[download](//dl.suckless.org/tools/lsw-0.3.tar.gz) 2014-11-24 ---------- There will be a [suckless assembly](https://events.ccc.de/congress/2014/wiki/Assembly%3ASuckless) -at the [31C3](https://events.ccc.de/congress/2014). The whole suckless +at the [31C3](https://events.ccc.de/congress/2014). The whole suckless community is invited to come, meet and hack! 2014-08-05 ---------- -[sinit 0.9.1](//core.suckless.org/sinit) released: [download](//dl.suckless.org/sinit/sinit-0.9.1.tar.gz) +[sinit 0.9.1](//core.suckless.org/sinit) released: +[download](//dl.suckless.org/sinit/sinit-0.9.1.tar.gz) 2014-05-01 ---------- -[ubase 0.1](//core.suckless.org/ubase) released: [download](//dl.suckless.org/ubase/ubase-0.1.tar.gz) +[ubase 0.1](//core.suckless.org/ubase) released: +[download](//dl.suckless.org/ubase/ubase-0.1.tar.gz) 2014-01-21 ---------- -[tabbed 0.6](//tools.suckless.org/tabbed) released: [download](//dl.suckless.org/tools/tabbed-0.6.tar.gz) +[tabbed 0.6](//tools.suckless.org/tabbed) released: +[download](//dl.suckless.org/tools/tabbed-0.6.tar.gz) 2013-06-16 ---------- -[sic 1.2](//tools.suckless.org/sic) released: [download](//dl.suckless.org/tools/sic-1.2.tar.gz) +[sic 1.2](//tools.suckless.org/sic) released: +[download](//dl.suckless.org/tools/sic-1.2.tar.gz) 2013-05-07 ---------- -[xssstate 1.1](//tools.suckless.org/x/xssstate) released: [download](//dl.suckless.org/tools/xssstate-1.1.tar.gz) +[xssstate 1.1](//tools.suckless.org/x/xssstate) released: +[download](//dl.suckless.org/tools/xssstate-1.1.tar.gz) 2013-05-06 ---------- -[tabbed 0.5](//tools.suckless.org/tabbed) released: [download](//dl.suckless.org/tools/tabbed-0.5.tar.gz) +[tabbed 0.5](//tools.suckless.org/tabbed) released: +[download](//dl.suckless.org/tools/tabbed-0.5.tar.gz) 2013-04-21 ---------- @@ -174,17 +195,18 @@ We are glad to announce the [slcon 2013](/conferences/2013) programme. 2012-11-29 ---------- We are glad to announce the switch to git from mercurial in all of our -repositories. You can find them at [git.suckless.org](//git.suckless.org) Many thanks to -20h for his contribution! +repositories. You can find them at [git.suckless.org](//git.suckless.org) Many +thanks to 20h for his contribution! 2012-10-28 ---------- -[sprop 0.1](//tools.suckless.org/x/sprop) released: [download](//dl.suckless.org/tools/sprop-0.1.tar.gz) +[sprop 0.1](//tools.suckless.org/x/sprop) released: +[download](//dl.suckless.org/tools/sprop-0.1.tar.gz) 2012-10-14 ---------- -Today we heard a very sad news that our friend, contributor and philosophical advisor Uriel has passed away peacefully. -We will miss him a lot. +Today we heard a very sad news that our friend, contributor and philosophical +advisor Uriel has passed away peacefully. We will miss him a lot. ![uriel](/uriel.png) @@ -192,16 +214,18 @@ RIP 2011-05-14 ---------- -Anselm gave a talk about **The 'suckless.org' universe** at the [LinuxTag 2011](http://www.linuxtag.org) -conference in Berlin. +Anselm gave a talk about **The 'suckless.org' universe** at the [LinuxTag +2011](http://www.linuxtag.org) conference in Berlin. 2011-01-31 ---------- -[ii 1.6](//tools.suckless.org/ii) released (regression fix): [download](//dl.suckless.org/tools/ii-1.6.tar.gz) +[ii 1.6](//tools.suckless.org/ii) released (regression fix): +[download](//dl.suckless.org/tools/ii-1.6.tar.gz) 2010-06-04 ---------- -[9base-6](//tools.suckless.org/9base) released: [download](//dl.suckless.org/tools/9base-6.tar.gz) +[9base-6](//tools.suckless.org/9base) released: +[download](//dl.suckless.org/tools/9base-6.tar.gz) 2010-03-28 ---------- @@ -212,11 +236,15 @@ We thank him for his work. Rest in peace. 2010-03-07 ---------- -We applied as a mentoring organisation for GSoC 2010. See our [project ideas for GSoC 2010](/project_ideas) page for further details. +We applied as a mentoring organisation for GSoC 2010. See our [project ideas +for GSoC 2010](/project_ideas) page for further details. 2010-02-13 ---------- -Some of us will visit [CLT2010](http://chemnitzer.linux-tage.de/2010/). Anselm will give a [talk](http://chemnitzer.linux-tage.de/2010/vortraege/detail.html?idx=308) about stali on the second day of CLT2010 at 17:00. +Some of us will visit [CLT2010](http://chemnitzer.linux-tage.de/2010/). Anselm +will give a +[talk](http://chemnitzer.linux-tage.de/2010/vortraege/detail.html?idx=308) +about stali on the second day of CLT2010 at 17:00. 2009-12-28 ---------- @@ -224,8 +252,10 @@ There was a small community meeting in Berlin! Thanks to all attendees. 2008-08-02 ---------- -[wmname 0.1](//tools.suckless.org/x/wmname) released: [download](//dl.suckless.org/tools/wmname-0.1.tar.gz) +[wmname 0.1](//tools.suckless.org/x/wmname) released: +[download](//dl.suckless.org/tools/wmname-0.1.tar.gz) 2008-07-29 ---------- -[sselp 0.2](//tools.suckless.org/x/sselp) released: [download](//dl.suckless.org/tools/sselp-0.2.tar.gz) +[sselp 0.2](//tools.suckless.org/x/sselp) released: +[download](//dl.suckless.org/tools/sselp-0.2.tar.gz) diff --git a/suckless.org/people/more_people/index.md b/suckless.org/people/more_people/index.md @@ -1,6 +1,5 @@ More people =========== - The following people are/were involved mainly in wmii and dwm development as developers and contributors. If you are missing, feel free to add yourself. diff --git a/suckless.org/philosophy/index.md b/suckless.org/philosophy/index.md @@ -1,14 +1,13 @@ Philosophy ========== - We are the home of quality software such as [dwm](//dwm.suckless.org), -[dmenu](//tools.suckless.org/dmenu), [st](//st.suckless.org/) and -plenty of other [tools](//tools.suckless.org), with -a focus on simplicity, clarity and frugality. Our philosophy is -about keeping things simple, minimal and usable. We believe this should become -the mainstream philosophy in the IT sector. Unfortunately, the tendency for -complex, error-prone and slow software seems to be prevalent in the present-day -software industry. We intend to prove the opposite with our software projects. +[dmenu](//tools.suckless.org/dmenu), [st](//st.suckless.org/) and plenty of +other [tools](//tools.suckless.org), with a focus on simplicity, clarity and +frugality. Our philosophy is about keeping things simple, minimal and usable. +We believe this should become the mainstream philosophy in the IT sector. +Unfortunately, the tendency for complex, error-prone and slow software seems to +be prevalent in the present-day software industry. We intend to prove the +opposite with our software projects. Our project focuses on advanced and experienced computer users. In contrast with the usual proprietary software world or many mainstream open source @@ -22,8 +21,8 @@ appropriate solutions for his/her work style. Designing simple and elegant software is far more difficult than letting ad-hoc or over-ambitious features obscure the code over time. However one has to pay this price to achieve reliability and maintainability. Furthermore, minimalism -results in reasonable and attainable goals. We strive to maintain minimalism and -clarity to drive development to completion. +results in reasonable and attainable goals. We strive to maintain minimalism +and clarity to drive development to completion. Manifest -------- diff --git a/suckless.org/project_ideas/index.md b/suckless.org/project_ideas/index.md @@ -1,6 +1,5 @@ Project ideas ============= - Please read our [philosophy](/philosophy) for background information. Peer review @@ -30,11 +29,11 @@ UNIX-like operating systems. The difficulty ranges from medium to high. There is libdrw in suckless now, which still uses xft and fontconfig. Fontconfig and xft are ugly and require too much internal knowledge to be -useful. The next logical layer evolved as pango and cairo. Both of course -added HTML formatting and vector drawing. This is not needed to simply draw -some text somewhere. And this is what a suckless font rendering library -should do: Give it a font string and render at some position the given font -without having to care about font specifics. +useful. The next logical layer evolved as pango and cairo. Both of course added +HTML formatting and vector drawing. This is not needed to simply draw some text +somewhere. And this is what a suckless font rendering library should do: Give +it a font string and render at some position the given font without having to +care about font specifics. [Some work](https://git.ekleog.org/leo/dtext) has already been done to replace libXft and Fontconfig. Real-world testing is however still needed. @@ -46,16 +45,15 @@ about the font formats and how to handle them. The GNU autotools such as automake and autoconf are completely unusable in non-chroot'ed cross-compile environments and often completely fail to produce -statically linked libraries or executables. Also they are -extremely slow and bloated. +statically linked libraries or executables. Also they are extremely slow and +bloated. -The stali build system is not using autotools for good -reason, however many UNIX/Linux open source packages do. To create statically -linked libraries out of the ld arguments we need an ld wrapper or -re-implementation that creates static libraries or executables. This would -enable us to build static libraries and executables out of any automake -generated makefiles without the need to write make replacements or patching the -build system of a particular package. +The stali build system is not using autotools for good reason, however many +UNIX/Linux open source packages do. To create statically linked libraries out +of the ld arguments we need an ld wrapper or re-implementation that creates +static libraries or executables. This would enable us to build static libraries +and executables out of any automake generated makefiles without the need to +write make replacements or patching the build system of a particular package. The ld wrapper needs to be extended to also link against uclibc first and if that fails to fallback to glibc, in order to produce smaller executables in the @@ -85,9 +83,9 @@ structure: ### Write cookie handler for surf -The biggest disadvantage of [surf](//surf.suckless.org) is sloppy -cookie handling. libwebkit and libsoup (which are used for HTTP) were never -designed to run in multiple processes simultaneously. +The biggest disadvantage of [surf](//surf.suckless.org) is sloppy cookie +handling. libwebkit and libsoup (which are used for HTTP) were never designed +to run in multiple processes simultaneously. This task requires writing a new cookie handler in surf which: @@ -104,8 +102,9 @@ abstraction of a mass of information in a filesystem. The goal of this meta project is to find ideas how to implement gopher services to easily access the web and new information. -See the [protocol](https://en.wikipedia.org/wiki/Gopher_%28protocol%29#Protocol) -for how easy it is to write a `menu`, which can be seen as a directory. +See the +[protocol](https://en.wikipedia.org/wiki/Gopher_%28protocol%29#Protocol) for +how easy it is to write a `menu`, which can be seen as a directory. * [gopherproject.org](http://www.gopherproject.org) * [gopher proxy](http://gopher.floodgap.com/gopher/) @@ -127,5 +126,5 @@ If you prepare to work on this project, plan ahead in recruiting more developers. You will need them. ***Requirements:*** Very good C knowledge, a very good knowledge in web -standards and how to strip them down to the suckless level. -***Difficulty level:*** Probably impossible. +standards and how to strip them down to the suckless level. ***Difficulty +level:*** Probably impossible. diff --git a/suckless.org/rocks/index.md b/suckless.org/rocks/index.md @@ -1,17 +1,15 @@ Stuff that rocks ================ - -Software on this page should have ideas similar to the suckless [philosophy](//suckless.org/philosophy/). -The software must be FOSS licensed. +Software on this page should have ideas similar to the suckless +[philosophy](//suckless.org/philosophy/). The software must be FOSS licensed. Libraries --------- This section is for small, usable development libraries, which can be used for -writing software that sucks less. -These should preferably be under the MIT/X consortium or BSD licenses, WTFPL, -or public domain, or alternatively LGPL, because it makes them legally -compatible with other suckless projects. +writing software that sucks less. These should preferably be under the MIT/X +consortium or BSD licenses, WTFPL, or public domain, or alternatively LGPL, +because it makes them legally compatible with other suckless projects. ### Libc Implementations @@ -61,7 +59,8 @@ program is usable are: * The program will accept any window size. * The program consists of a single window (there are no nested windows, such as in Xpdf). -This covers most console-based programs and programs from [plan9port](https://9fans.github.io/plan9port/). +This covers most console-based programs and programs from +[plan9port](https://9fans.github.io/plan9port/). ### Audio Players diff --git a/suckless.org/sucks/index.md b/suckless.org/sucks/index.md @@ -3,9 +3,8 @@ Stuff that sucks See the [philosophy](//suckless.org/philosophy) page about what applies to this page. -Bigger topics that suck: -[systemd](//suckless.org/sucks/systemd), [the -web](//suckless.org/sucks/web) +Bigger topics that suck: [systemd](//suckless.org/sucks/systemd), +[the web](//suckless.org/sucks/web) Libraries --------- @@ -46,7 +45,6 @@ possible to avoid them. If you use them, consider looking for alternatives. Build Systems ------------- - * [cmake][13] (written in C++) - so huge and bloated, compilation takes longer than compiling GCC (!). It's not even possible to create freestanding Makefiles, since the generated @@ -148,7 +146,6 @@ C Compilers See also -------- - The [list of harmful software](http://harmful.cat-v.org/software/) at [cat-v.org](http://cat-v.org). [aterm-ml-post]: //lists.suckless.org/dev/1102/7141.html diff --git a/suckless.org/sucks/systemd/index.md b/suckless.org/sucks/systemd/index.md @@ -305,8 +305,8 @@ And on the oldest and best, Slackware: $ reboot reboot: must be superuser. -systemd is driving "just google the problem" attitude, because how the -hell are you expected to troubleshoot this kind of error otherwise? +systemd is driving "just google the problem" attitude, because how the hell are +you expected to troubleshoot this kind of error otherwise? Further Reading --------------- diff --git a/suckless.org/sucks/web/index.md b/suckless.org/sucks/web/index.md @@ -11,13 +11,13 @@ in the meanwhile ruined our climate: the web. For short: There is an industry which is specialized on extending the resource usage to display just some characters on your display. Millions of jobs are based on outputting HTML in an inefficient way. Look at PHP and all the -techniques to extend its "scalability". It is not scalable, it's a -prototyping language. Not to mention all its syntactic irregulatories. -Nowadays classes on classes on classes with getter and setter functions define -buttons which can be stripped down to just a simple character string. The web -is the practical example why corporate software development does not work and -never will. It only ruins our environment, sanity and many brains which could -be used for the better of humanity. +techniques to extend its "scalability". It is not scalable, it's a prototyping +language. Not to mention all its syntactic irregulatories. Nowadays classes on +classes on classes with getter and setter functions define buttons which can be +stripped down to just a simple character string. The web is the practical +example why corporate software development does not work and never will. It +only ruins our environment, sanity and many brains which could be used for the +better of humanity. PHP was used as the primary example for how interpreted languages produce resource waste. There were optimisations for compiling PHP to C++(!). But this @@ -26,10 +26,7 @@ night. Gopher ------ - For seeing a counter example in how to not suck, see the gopher. You can read more about it at the [gopherproject (http)](http://gopherproject.org) or [gopherproject (gopher)](gopher://gopherproject.org). - - diff --git a/tools.suckless.org/9base/index.md b/tools.suckless.org/9base/index.md @@ -3,7 +3,8 @@ 9base is a port of various original Plan 9 tools for Unix, based on [plan9port](http://swtch.com/plan9port/). -It currently contains the following original (no source changes) shell commands from Plan 9 for Unix: +It currently contains the following original (no source changes) shell commands +from Plan 9 for Unix: * ascii * awk @@ -55,8 +56,9 @@ It currently contains the following original (no source changes) shell commands * uniq * unutf -It also contains the Plan 9 libc, libbio, libregexp, libfmt and libutf. -The overall SLOC is about 66kSLOC, so this userland + all libs is much smaller than, e.g. bash (duh!). +It also contains the Plan 9 libc, libbio, libregexp, libfmt and libutf. The +overall SLOC is about 66kSLOC, so this userland + all libs is much smaller +than, e.g. bash (duh!). Download -------- @@ -65,4 +67,5 @@ Download Usage ----- -9base can be used to run [werc](http://werc.cat-v.org) instead of the full blown [plan9port](http://swtch.com/plan9port). +9base can be used to run [werc](http://werc.cat-v.org) instead of the full +blown [plan9port](http://swtch.com/plan9port). diff --git a/tools.suckless.org/blind/index.md b/tools.suckless.org/blind/index.md @@ -4,22 +4,17 @@ blind is a collection of command line video editing utilities. Video format ------------ - -blind uses a raw video format with a simple container. A -file begins with an plain-text line, containing the -number of frames, the width, the height, and the pixel -format, all separated by a single regular blank space, -without and leading or tailing white space. After this -line, which ends with an LF, there is a NUL-byte -followed by the 4 characters “uivf” (unportable, interim -video format). This head is followed by the video -frame-by-frame with row-major frames. Pixels are -independently encoded, and are encoded unscaled CIE XYZ -with non-premultiplied alpha and without any -transfer-function, with values stored in native `double`s -or optionally in native `float`s. These two configurations -are the only options, but the container format is -designed so this can be changed arbitrarily in the future. +blind uses a raw video format with a simple container. A file begins with an +plain-text line, containing the number of frames, the width, the height, and +the pixel format, all separated by a single regular blank space, without and +leading or tailing white space. After this line, which ends with an LF, there +is a NUL-byte followed by the 4 characters “uivf” (unportable, interim +video format). This head is followed by the video frame-by-frame with row-major +frames. Pixels are independently encoded, and are encoded unscaled CIE XYZ with +non-premultiplied alpha and without any transfer-function, with values stored +in native `double`s or optionally in native `float`s. These two configurations +are the only options, but the container format is designed so this can be +changed arbitrarily in the future. FAQ --- @@ -30,171 +25,135 @@ Yes, but see the rationale below! ### Doesn't raw video takes up a lot of space? -Yes it does, a 4-channel pixel encoded with `double` -takes 32 bytes. A 1280-by-720 frame with this pixel format -takes 29.4912 MB (SI), which means you can only fit almost -3391 frames in 100 GB, which is about 113 seconds or 1:53 -minutes with a framerate of 30 fps. Therefore, you -probably do not want to store anything in this format -unless you know you have room for it, or if it is very -small segment of your video, which unfortunely becomes a -bit of a problem when reversing a video. However, when -possible, feed the resulting video directly to -`blind-to-video` to convert it into a compressed, -lossless video format, if the video is not too large, you -can choose to compress it with bzip2 instead. +Yes it does, a 4-channel pixel encoded with `double` takes 32 bytes. A +1280-by-720 frame with this pixel format takes 29.4912 MB (SI), which means you +can only fit almost 3391 frames in 100 GB, which is about 113 seconds or 1:53 +minutes with a framerate of 30 fps. Therefore, you probably do not want to +store anything in this format unless you know you have room for it, or if it is +very small segment of your video, which unfortunely becomes a bit of a problem +when reversing a video. However, when possible, feed the resulting video +directly to `blind-to-video` to convert it into a compressed, lossless video +format, if the video is not too large, you can choose to compress it with bzip2 +instead. ### For what kind of video editing is blind designed? -It is designed for composing new videos. It is not -designed for making small changes as this can probably -be done faster with a graphical video editor or with -ffmpeg which would also be much faster. +It is designed for composing new videos. It is not designed for making small +changes as this can probably be done faster with a graphical video editor or +with ffmpeg which would also be much faster. ### Does it support farbfeld? -Of course. If you want to use farbfeld, you can use -the `-f` flag for `blind-to-image` and `blind-from-image`, -this will cause the programs to convert directly to -or from farbfeld without using `convert(1)`. +Of course. If you want to use farbfeld, you can use the `-f` flag for +`blind-to-image` and `blind-from-image`, this will cause the programs to +convert directly to or from farbfeld without using `convert(1)`. ### Why doesn't blind uses encode pixels like farbfeld? -blind and farbfeld solve completely different problems. -farbfeld solves to problem of storing pictures in a -simply way that can easily be viewed and editored. -blind does not try to solve the problem of storing -videos, video takes a lot of space and need compression -designed especially for video or three-dimensional -raster images. Compressed video cannot be efficiently -edited because compression takes too long. Instead -blind solves the problem of efficiently processing -video: thousands of pictures. Because blind doesn't -try to create a format for storing images, therefore -it's format doesn't need to be portable. Furthermore, -due to legacy in television (namely, that of -black-and-white television), video formats do not -store values in sRGB, but rather in Y'UV, so there -is next to no benefit to storing colours in sRGB. +blind and farbfeld solve completely different problems. farbfeld solves to +problem of storing pictures in a simply way that can easily be viewed and +editored. blind does not try to solve the problem of storing videos, video +takes a lot of space and need compression designed especially for video or +three-dimensional raster images. Compressed video cannot be efficiently edited +because compression takes too long. Instead blind solves the problem of +efficiently processing video: thousands of pictures. Because blind doesn't try +to create a format for storing images, therefore it's format doesn't need to be +portable. Furthermore, due to legacy in television (namely, that of +black-and-white television), video formats do not store values in sRGB, but +rather in Y'UV, so there is next to no benefit to storing colours in sRGB. ### Why doesn't blind use sRGB? -If I tell you I use CIE XYZ, you will only have two -questions: “how are values stored?” and “is Y scaled -to [0, 100] or [0, 1]?” When I tell you I use sRGB -you have more questions: “do you support out-of-gamut -colours?”, “how are values stored?”, “which scale -do you use?”, and “is the transfer-function applied?” +If I tell you I use CIE XYZ, you will only have two questions: “how are +values stored?” and “is Y scaled to [0, 100] or [0, 1]?” When I tell you +I use sRGB you have more questions: “do you support out-of-gamut colours?”, +“how are values stored?”, “which scale do you use?”, and “is the +transfer-function applied?” -CIE XYZ also has the advantage of having the brightness -encoded in one of its parameters, Y, and obtaining -the chroma requires only simply conversion to a +CIE XYZ also has the advantage of having the brightness encoded in one of its +parameters, Y, and obtaining the chroma requires only simply conversion to a non-standardise colour model that with the same Y-value. ### Why does blind use CIE XYZ instead of CIE L\*a\*b\*? -Because CIE L\*a\*b\* is not linear, meaning that it -requires unnecessary calculations when working with -the colours. +Because CIE L\*a\*b\* is not linear, meaning that it requires unnecessary +calculations when working with the colours. ### Why does blind use CIE XYZ instead of Y'UV or YUV? -Y'UV has good performance for converting to sRGB and -is has good subsampling quality, but it is not a good -for editing. Y'UV is non-linear, so it has the same -disadvantages as CIE L\*a\*b\*. Y'UV does not have its -transfer-function applied directly to it's parameters, -instead it is a linear transformation if the sRGB with -its transfer-function applied. This means that no -performance is gained during convertion to or from -cooked video formats by using YUV. CIE XYZ also has -the advantage that it is well-known and has a one-step -conversion to almost all colour models. It also have the -advantages that it's parameters are named X, Y, Z, which -makes it very easy to choose parameter when storing -points instead of colours in a video. +Y'UV has good performance for converting to sRGB and is has good subsampling +quality, but it is not a good for editing. Y'UV is non-linear, so it has the +same disadvantages as CIE L\*a\*b\*. Y'UV does not have its transfer-function +applied directly to it's parameters, instead it is a linear transformation if +the sRGB with its transfer-function applied. This means that no performance is +gained during convertion to or from cooked video formats by using YUV. CIE XYZ +also has the advantage that it is well-known and has a one-step conversion to +almost all colour models. It also have the advantages that it's parameters are +named X, Y, Z, which makes it very easy to choose parameter when storing points +instead of colours in a video. ### Doesn't blind have any audio support? -No, it is not clear that there is actually a need for -this. There are good tools for editing audio, and -ffmpeg can be used be used to extract the audio streams -from a video or add it to a video. +No, it is not clear that there is actually a need for this. There are good +tools for editing audio, and ffmpeg can be used be used to extract the audio +streams from a video or add it to a video. ### Is it really feasible to edit video without a GUI? -Depends on what you are doing. Many things can be done -without a going, and some thing are easier to do without -a GUI. If you find that you need GUI it possible to -combine blind with a graphical editor. Furthermore, -blind could be used in by a graphical editor if one -were to write a graphical editor to use blind. +Depends on what you are doing. Many things can be done without a going, and +some thing are easier to do without a GUI. If you find that you need GUI it +possible to combine blind with a graphical editor. Furthermore, blind could be +used in by a graphical editor if one were to write a graphical editor to use +blind. Rationale --------- - -* It's source control friendly and it's easy for a user to - resolve merge conflicts and identify changes. - -* Rendering can take a very long time. With this approach, - the user can use Make to only rerender parts that have - been changed. - -* It's possible to distribute the rendering to multiple - computers, without any built in functionality for this, - for example using a distributed Make. - +* It's source control friendly and it's easy for a user to resolve merge + conflicts and identify changes. +* Rendering can take a very long time. With this approach, the user can use + Make to only rerender parts that have been changed. +* It's possible to distribute the rendering to multiple computers, without any + built in functionality for this, for example using a distributed Make. * Parallelism is added for free. - -* No room for buggy GUIs, which currently is a problem with - the large video editors for Linux. - -* Less chance that the user makes a change by mistake - without noticing it, such as moving a clip in the editor - by mistake instead of for example resizing. - +* No room for buggy GUIs, which currently is a problem with the large video + editors for Linux. +* Less chance that the user makes a change by mistake without noticing it, such + as moving a clip in the editor by mistake instead of for example resizing. * Even old, crappy computers can be used for large projects. - -* Very easy to utilise command line image editors for modify - frames, or to add your own tools for custom effects. +* Very easy to utilise command line image editors for modify frames, or to add + your own tools for custom effects. Development ----------- - -You can browse its [source code repository](//git.suckless.org/blind) -or get a copy using git with the following command: +You can browse its [source code repository](//git.suckless.org/blind) or get a +copy using git with the following command: git clone https://git.suckless.org/blind Download -------- - * [blind-1.0](//dl.suckless.org/tools/blind-1.0.tar.gz) (2017-01-22) - * [blind-1.1](//dl.suckless.org/tools/blind-1.1.tar.gz) (2017-05-06) -Also make sure to check your package manager. The following distributions provide packages: +Also make sure to check your package manager. The following distributions +provide packages: * [Alpine Linux](https://pkgs.alpinelinux.org/package/edge/testing/x86_64/blind) - * [Arch Linux (AUR)](https://aur.archlinux.org/packages/blind/) - * [Arch Linux (AUR), git version](https://aur.archlinux.org/packages/blind-git/) Dependencies ------------ - -* [ffmpeg](https://www.ffmpeg.org/) - for converting from or to other video formats. - -* [imagemagick](https://www.imagemagick.org/) - for converting regular images to frames. +* [ffmpeg](https://www.ffmpeg.org/) - for converting from or to other video + formats. +* [imagemagick](https://www.imagemagick.org/) - for converting regular images + to frames. Links ----- - * [Video tutorials](https://www.youtube.com/channel/UCg_nJOURt3guLtp4dQLIvQw) Author ------ - * Mattias Andrée (maandree@kth.se) diff --git a/tools.suckless.org/dmenu/index.md b/tools.suckless.org/dmenu/index.md @@ -1,26 +1,25 @@ dmenu ===== - dmenu is a dynamic menu for X, originally designed for -[dwm](//dwm.suckless.org/). It manages large numbers of user-defined menu -items efficiently. +[dwm](//dwm.suckless.org/). It manages large numbers of user-defined menu items +efficiently. Download -------- - * [dmenu-4.8](//dl.suckless.org/tools/dmenu-4.8.tar.gz) (2018-03-14) Mailing list ------------ - * `dev+subscribe@suckless.org` ([Archives](//lists.suckless.org/dev/)) -([Old Archives](//lists.suckless.org/dwm/)) (see [community](//suckless.org/community/) for details) + ([Old Archives](//lists.suckless.org/dwm/)) (see + [community](//suckless.org/community/) for details) Development ----------- -You can [browse](//git.suckless.org/dmenu) its source code repository or get a copy using git with the following command: +You can [browse](//git.suckless.org/dmenu) its source code repository or get a +copy using git with the following command: git clone https://git.suckless.org/dmenu diff --git a/tools.suckless.org/dmenu/patches/case-insensitive/index.md b/tools.suckless.org/dmenu/patches/case-insensitive/index.md @@ -3,7 +3,6 @@ case-insensitive Description ----------- - This patch adds support for case-insensitive searching to dmenu. This patch works on top of fuzzymatch. diff --git a/tools.suckless.org/dmenu/patches/center/index.md b/tools.suckless.org/dmenu/patches/center/index.md @@ -3,21 +3,19 @@ center Description ----------- - This patch centers dmenu in the middle of the screen. -Previously this has been achieved through the [xyw patch](//tools.suckless.org/dmenu/patches/xyw) and a bash script -to calculate the centered x and y positions. However, this is a slow and overly -complex way which is hard to integrate into programs which call dmenu directly, -eg surf or tabbed. On the other hand, This small standalone patch is -instantaneous and works globally. +Previously this has been achieved through the [xyw +patch](//tools.suckless.org/dmenu/patches/xyw) and a bash script to calculate +the centered x and y positions. However, this is a slow and overly complex way +which is hard to integrate into programs which call dmenu directly, eg surf or +tabbed. On the other hand, This small standalone patch is instantaneous and +works globally. Download -------- - * [dmenu-center-4.8.diff](dmenu-center-4.8.diff) Authors ------- - * Ed van Bruggen <edvb@uw.edu> diff --git a/tools.suckless.org/dmenu/patches/fuzzymatch/index.md b/tools.suckless.org/dmenu/patches/fuzzymatch/index.md @@ -3,23 +3,19 @@ fuzzymatch Description ----------- - This patch adds support for fuzzy matching to dmenu, allowing users to type non-consecutive portions of the string to be matched. Notes ----- - * Supports dmenu's case insensitive switch (`-i`) Download -------- - * [dmenu-fuzzymatch-20170603-f428f3e.diff](dmenu-fuzzymatch-20170603-f428f3e.diff) * [dmenu-fuzzymatch-4.6.diff](dmenu-fuzzymatch-4.6.diff) Authors ------ - * Jan Christoph Ebersbach - jceb@e-jc.de * Laslo Hunhold - dev@frign.de (dmenu-4.6) diff --git a/tools.suckless.org/dmenu/patches/incremental/index.md b/tools.suckless.org/dmenu/patches/incremental/index.md @@ -1,17 +1,12 @@ Incremental output ================== - This patch causes dmenu to print out the current text each time a key is pressed. This is useful as an incremental search feature, for example in surf's config.h: -`#define INCSEARCH { .v = (char *[]){ "/bin/sh", "-c", - "dmenu -r < /dev/null | while read -r find; do xprop -id $0 -f _SURF_FIND 8s " - "-set _SURF_FIND \"$find\"; done", - winid, NULL } }` + #define INCSEARCH { .v = (char *[]) { "/bin/sh", "-c", "dmenu -r < /dev/null | while read -r find; do xprop -id $0 -f _SURF_FIND 8s " "-set _SURF_FIND \"$find\"; done", winid, NULL } } Download -------- - * [dmenu-incremental-20160702-3c91eed.diff](dmenu-incremental-20160702-3c91eed.diff) diff --git a/tools.suckless.org/dmenu/patches/index.md b/tools.suckless.org/dmenu/patches/index.md @@ -1,5 +1,4 @@ patches ======= - -For instructions on how to submit and format patches, take a look at -the [hacking guidelines](//suckless.org/hacking). +For instructions on how to submit and format patches, take a look at the +[hacking guidelines](//suckless.org/hacking). diff --git a/tools.suckless.org/dmenu/patches/initialtext/index.md b/tools.suckless.org/dmenu/patches/initialtext/index.md @@ -1,6 +1,5 @@ Initial Text ============ - Adds an option to provide preselected text. Download diff --git a/tools.suckless.org/dmenu/patches/instant/index.md b/tools.suckless.org/dmenu/patches/instant/index.md @@ -1,7 +1,7 @@ Instant Mode ============ - -Adds an flag which will cause dmenu to select an item immediately if theres one matching option left. +Adds an flag which will cause dmenu to select an item immediately if theres one +matching option left. Download -------- diff --git a/tools.suckless.org/dmenu/patches/line-height/index.md b/tools.suckless.org/dmenu/patches/line-height/index.md @@ -1,6 +1,5 @@ Line height =========== - The patch adds a '-h' option, which sets the minimum height of a dmenu line. This helps integrate dmenu with other UI elements that require a particular vertical size. diff --git a/tools.suckless.org/dmenu/patches/mouse-support/index.md b/tools.suckless.org/dmenu/patches/mouse-support/index.md @@ -1,13 +1,14 @@ Mouse support ============= - -With this patch dmenu will have basic mouse support. The following features are supported: +With this patch dmenu will have basic mouse support. The following features are +supported: Mouse actions supported: * Left-mouse click: * On prompt and input field: clear input text and selection. - * In horizontal and vertical mode on item: select and output item (same as pressing enter). + * In horizontal and vertical mode on item: select and output item (same as + pressing enter). * In horizontal mode on arrows: change items to show left or right. * Ctrl-left-mouse click: multisel modifier. * Right-mouse click: close. @@ -21,14 +22,12 @@ Mouse actions supported: * In horizontal mode: same as left-clicking on right arrow. * In vertical mode: show items below. - Download -------- * [dmenu-mousesupport-4.7.diff](dmenu-mousesupport-4.7.diff) * [dmenu-mousesupport-4.6.diff](dmenu-mousesupport-4.6.diff) * [dmenu-mousesupport-20160702-3c91eed.diff](dmenu-mousesupport-20160702-3c91eed.diff) - Author ------ * Hiltjo Posthuma - <hiltjo@codemadness.org> diff --git a/tools.suckless.org/dmenu/patches/navhistory/index.md b/tools.suckless.org/dmenu/patches/navhistory/index.md @@ -1,20 +1,21 @@ -# navhistory - -## Description +navhistory +========== +Description +------------ This patch provides dmenu the ability for history navigation similar to that of bash. Press alt+p for the previous history and alt+n for the next. -## Configuration - +Configuration +------------- Set the maximum number of histories with a new variable 'maxhist' in config.h. By default, it only records a new history if it is not the same as the last one. To change this behaviour, set 'histnodup' to 0 in config.h. -## Download - +Download +-------- * [dmenu-navhistory-4.6.diff](dmenu-navhistory-4.6.diff) -## Author - +Author +------ * phi <crispyfrog@163.com> diff --git a/tools.suckless.org/dmenu/patches/non_blocking_stdin/index.md b/tools.suckless.org/dmenu/patches/non_blocking_stdin/index.md @@ -3,7 +3,6 @@ Non-blocking stdin Description ----------- - A patch to have dmenu read stdin in a non blocking way, making it wait for input both from stdin and from X. This way, you can continue feeding dmenu while you type. This patch is meant to be used along with the incremental @@ -11,11 +10,9 @@ patch, so that you can use stdout to feed stdin. Download -------- - * [dmenu-nonblockingstdin-20160702-3c91eed.diff](dmenu-nonblockingstdin-20160702-3c91eed.diff) Author ------ - * Christophe-Marie Duquesne <chm.duquesne@gmail.com> * koniu at riseup.net (update for 20160615 git master) diff --git a/tools.suckless.org/dmenu/patches/password/index.md b/tools.suckless.org/dmenu/patches/password/index.md @@ -1,6 +1,5 @@ Password ======== - By applying this patch, dmenu will not directly display the keyboard input, but instead replace it with dots. All data from stdin will be ignored. diff --git a/tools.suckless.org/dmenu/patches/pipeout/index.md b/tools.suckless.org/dmenu/patches/pipeout/index.md @@ -3,21 +3,19 @@ pipeout Description ----------- - -This patch allows the selected text to be piped back out with dmenu. This is useful if you want to display the output of a command on the screen. Only text starting with the character '#' is piped out by default. +This patch allows the selected text to be piped back out with dmenu. This is +useful if you want to display the output of a command on the screen. Only text +starting with the character '#' is piped out by default. Configuration ------------- - Set the variable 'startpipe' in config.h to any character. Download -------- - * [dmenu-pipeout-20160701-3c91eed.diff](dmenu-pipeout-20160701-3c91eed.diff) Author ------ - * Ayrton diff --git a/tools.suckless.org/dmenu/patches/prefix-completion/index.md b/tools.suckless.org/dmenu/patches/prefix-completion/index.md @@ -3,15 +3,16 @@ prefix completion Description ----------- - Changes the behaviour of the matched items and the Tab key. -* Only items prefixed by the written text will match. E.g. query "foo" will match "foo", "foobar" and "fool", but not "world" or "barfoo". -* The Tab key will replace the current query with the longest common prefix of all matches. E.g. completing "f" with matches "foobar" and "fool" will become "foo". +* Only items prefixed by the written text will match. E.g. query "foo" will + match "foo", "foobar" and "fool", but not "world" or "barfoo". +* The Tab key will replace the current query with the longest common prefix of + all matches. E.g. completing "f" with matches "foobar" and "fool" will become + "foo". Download -------- - * For 4.6: [dmenu-prefixcompletion-20161019-7ef1d5e.diff](dmenu-prefixcompletion-20161019-7ef1d5e.diff) * For 4.7: [dmenu-prefixcompletion-4.7.diff](dmenu-prefixcompletion-4.7.diff) * For 4.8: [dmenu-prefixcompletion-4.8.diff](dmenu-prefixcompletion-4.7.diff) diff --git a/tools.suckless.org/dmenu/patches/printinputtext/index.md b/tools.suckless.org/dmenu/patches/printinputtext/index.md @@ -3,27 +3,23 @@ print input text Description ----------- - -This patch adds a flag (`-t`) which makes Return key to ignore selection -and print the input text to stdout. The flag basically swaps the functions -of Return and Shift+Return hotkeys. +This patch adds a flag (`-t`) which makes Return key to ignore selection and +print the input text to stdout. The flag basically swaps the functions of +Return and Shift+Return hotkeys. The default behaviour of dmenu makes sense when selecting from given options -(i.e. as a program launcher) but it is annoying when you might be entering -text that is different than the given options (i.e. as surf's url bar). +(i.e. as a program launcher) but it is annoying when you might be entering text +that is different than the given options (i.e. as surf's url bar). Usage in Surf ------------- - Just add the `-t` flag to the dmenu in the SETPROP function of surf's config.def.h. Now the url bar should behave just like in all other browsers. Download -------- - * [dmenu-printinputtext-20190822-bbc464d.diff](dmenu-printinputtext-20190822-bbc464d.diff) Author ------ - * efe - efe@efe.kim diff --git a/tools.suckless.org/dmenu/patches/reject-no-match/index.md b/tools.suckless.org/dmenu/patches/reject-no-match/index.md @@ -1,6 +1,5 @@ Reject no match =============== - Adds a new flag to dmenu with which text input will be rejected if it would result in no matching item diff --git a/tools.suckless.org/dmenu/patches/scroll/index.md b/tools.suckless.org/dmenu/patches/scroll/index.md @@ -1,6 +1,5 @@ Text Scrolling ============== - This patch adds support for text scrolling, it doesn't append '...' for long input anymore as it can handle long text now. It's especially useful when using in surf, after having inserted a long url via tab-completion. diff --git a/tools.suckless.org/dmenu/scripts/dmenu_run_with_command_history/index.md b/tools.suckless.org/dmenu/scripts/dmenu_run_with_command_history/index.md @@ -1,23 +1,20 @@ -dmenu_run with command history +dmenu\_run with command history ============================== - -A self-contained alternative to dmenu_run which also handles history. +A self-contained alternative to dmenu\_run which also handles history. History is saved in a file in `$XDG_CACHE_HOME`, with fallback to a dot file in `$HOME`. Change as necessary. -In addition to the above, dmenu_run_history will launch each entry +In addition to the above, dmenu\_run\_history will launch each entry immediately on `Ctrl-Return` (multiselect). The script can be used with the 4.6 version of dmenu. Download -------- - -[dmenu_run_history](dmenu_run_history) (20151217) +* [dmenu\_run\_history](dmenu_run_history) (20151217) Authors ------- - * Xarchus * Silvan Jegen (initial idea, code contributor, feedback) diff --git a/tools.suckless.org/dmenu/scripts/index.md b/tools.suckless.org/dmenu/scripts/index.md @@ -1,11 +1,9 @@ Scripts using dmenu =================== - dmenu's user, feel free to add your own scripts, or comment existents. Download -------- - * [clipmenu](https://github.com/cdown/clipmenu): Clipboard management using dmenu * [dbdb.sh](dbdb.sh): dmenu-based directory browser * [dbrowse](https://github.com/clamiax/scripts/blob/master/src/dbrowse): diff --git a/tools.suckless.org/farbfeld/examples/index.md b/tools.suckless.org/farbfeld/examples/index.md @@ -1,15 +1,13 @@ Examples ======== - -Convert image.png to a farbfeld, run it through a filter and write the -result to image-filtered.png: +Convert image.png to a farbfeld, run it through a filter and write the result +to image-filtered.png: $ png2ff < image.png | filter | ff2png > image-filtered.png -[invert.c](invert.c) is an example for such a filter which inverts -the colors. Notice that there are no dependencies on external libraries. -A hypothetical farbfeld-library would hardly exceed invert.c's size. - +[invert.c](invert.c) is an example for such a filter which inverts the colors. +Notice that there are no dependencies on external libraries. A hypothetical +farbfeld-library would hardly exceed invert.c's size. Store a png as a compressed farbfeld: @@ -19,8 +17,8 @@ Access a compressed farbfeld as a png: $ bunzip2 < image.ff.bz2 | ff2png {> image.png, | feh -, ...} -Handle arbitrary image data using 2ff(1), which falls -back to imagemagick's convert(1) for unknown image types: +Handle arbitrary image data using 2ff(1), which falls back to imagemagick's +convert(1) for unknown image types: $ 2ff < image | filter | ff2png > image-filtered.png diff --git a/tools.suckless.org/farbfeld/faq/index.md b/tools.suckless.org/farbfeld/faq/index.md @@ -1,99 +1,78 @@ FAQ === -### Why yet another image format? - -Current image formats have integrated compression, -making it complicated to read the image data. -One is forced to use complex libraries like libpng, -libjpeg, libjpeg-turbo, giflib and others, read the -documentation and write a lot of boilerplate in order -to get started. - -Farbfeld leaves this behind and is designed to be as -simple as possible, leaving the task of compression -to external tools. -The simple design, which was the primary objective, -implicitly leads to the very good compression -characteristics, as it often happens when you go with -the UNIX philosophy. -Reading farbfeld images doesn't require any special -libraries. The tools are just a toolbox -to make it easy to convert between common image formats -and farbfeld. - -### How does it work? - -In Farbfeld, pattern resolution is not done while -converting, but while compressing the image. -For example, farbfeld always stores the alpha-channel, -even if the image doesn't have alpha-variation. -This may sound like a big waste at first, but as -soon as you compress an image of this kind, the -compression-algorithm (e.g. bz2) recognizes the -pattern that every 48 bits the 16 bits store the -same information. -And the compression-algorithms get better and better -at this. - -Same applies to the idea of having 16 bits per channel. -It sounds excessive, but if you for instance only have -a greyscale image, the R, G and B channels will store -the same value, which is recognized by the compression -algorithm easily. - -This effectively leads to filesizes you'd normally only -reach with paletted images, and in some cases bz2 even -beats png's compression, for instance when you're dealing -with grayscale data, line drawings, decals and even -photographs. - -### Why use 16-Bits-per-channel all the time? Isn't this a total waste? - -Not when you take compression into account. To make this -clearer, assume a paletted image with 5 colors and no -transparency. So the data is only a set of regular chunks -(color1, ..., color5) in a certain order. -Compression algorithms have been designed to recognize those -chunks and can even look at how these chunks interact. - -Local tests have shown that farbfeld easily beats paletted -PNG-images. Try for yourself and look at the bzipped results! -There is no need for special grayscale, palette, RGB, 1-, 2-, -4-, 8-, 16-Bit subformats. -Just use 16-Bit RGBA all the time and let compression take -care of the rest. - -### Which compression should I use? - -bzip2 is recommended, which is widely available (anybody has it) -and gives good results. As time will move forward and new -algorithms hit the market, this recommendation might be rethought. - -### What about NetPBM? - -NetPBM is considered to be the most simple format around, -however, there's much room for improvement. -In fact, it doesn't help that the format is subdivided into -Portable BitMaps, Portable GrayMaps and Portable PixMaps. -It's not helpful when a manpage can't give a simple overview -of a format in a few sentences. - -NetPBM's big vice is that it has originally been developed -to be hand-written and passed around as plain text. A binary -format exists, but still handling optional comments -in the header, base 10 ASCII width and height values, -arbitrary whitespace inside the data and out-of-band -image size and color depth is too painful for the sane user. - -Judging from the usage of the format considering how long -it's been around, it's no surprise it never really took off. -Additionally, functionality like alpha channels and 16-Bit -color depth can only be achieved via extensions. -Due to it being a textual format it also lacks the desired -compression characteristics. - -The question you have to ask yourself is: Can I read in a -format without consulting the manpages? If your answer is -yes, then the format is simple enough. -In this regard, NetPBM can be considered to be a failed format. +Why yet another image format? +----------------------------- +Current image formats have integrated compression, making it complicated to +read the image data. One is forced to use complex libraries like libpng, +libjpeg, libjpeg-turbo, giflib and others, read the documentation and write a +lot of boilerplate in order to get started. + +Farbfeld leaves this behind and is designed to be as simple as possible, +leaving the task of compression to external tools. The simple design, which was +the primary objective, implicitly leads to the very good compression +characteristics, as it often happens when you go with the UNIX philosophy. +Reading farbfeld images doesn't require any special libraries. The tools are +just a toolbox to make it easy to convert between common image formats and +farbfeld. + +How does it work? +----------------- +In Farbfeld, pattern resolution is not done while converting, but while +compressing the image. For example, farbfeld always stores the alpha-channel, +even if the image doesn't have alpha-variation. This may sound like a big waste +at first, but as soon as you compress an image of this kind, the +compression-algorithm (e.g. bz2) recognizes the pattern that every 48 bits the +16 bits store the same information. And the compression-algorithms get better +and better at this. + +Same applies to the idea of having 16 bits per channel. It sounds excessive, +but if you for instance only have a greyscale image, the R, G and B channels +will store the same value, which is recognized by the compression algorithm +easily. + +This effectively leads to filesizes you'd normally only reach with paletted +images, and in some cases bz2 even beats png's compression, for instance when +you're dealing with grayscale data, line drawings, decals and even photographs. + +Why use 16-Bits-per-channel all the time? Isn't this a total waste? +------------------------------------------------------------------- +Not when you take compression into account. To make this clearer, assume a +paletted image with 5 colors and no transparency. So the data is only a set of +regular chunks (color1, ..., color5) in a certain order. Compression algorithms +have been designed to recognize those chunks and can even look at how these +chunks interact. + +Local tests have shown that farbfeld easily beats paletted PNG-images. Try for +yourself and look at the bzipped results! There is no need for special +grayscale, palette, RGB, 1-, 2-, 4-, 8-, 16-Bit subformats. Just use 16-Bit +RGBA all the time and let compression take care of the rest. + +Which compression should I use? +------------------------------- +bzip2 is recommended, which is widely available (anybody has it) and gives good +results. As time will move forward and new algorithms hit the market, this +recommendation might be rethought. + +What about NetPBM? +------------------ +NetPBM is considered to be the most simple format around, however, there's much +room for improvement. In fact, it doesn't help that the format is subdivided +into Portable BitMaps, Portable GrayMaps and Portable PixMaps. It's not helpful +when a manpage can't give a simple overview of a format in a few sentences. + +NetPBM's big vice is that it has originally been developed to be hand-written +and passed around as plain text. A binary format exists, but still handling +optional comments in the header, base 10 ASCII width and height values, +arbitrary whitespace inside the data and out-of-band image size and color depth +is too painful for the sane user. + +Judging from the usage of the format considering how long it's been around, +it's no surprise it never really took off. Additionally, functionality like +alpha channels and 16-Bit color depth can only be achieved via extensions. Due +to it being a textual format it also lacks the desired compression +characteristics. + +The question you have to ask yourself is: Can I read in a format without +consulting the manpages? If your answer is yes, then the format is simple +enough. In this regard, NetPBM can be considered to be a failed format. diff --git a/tools.suckless.org/farbfeld/index.md b/tools.suckless.org/farbfeld/index.md @@ -1,7 +1,6 @@ ![farbfeld](farbfeld.svg) -farbfeld is a lossless image format which is easy to parse, pipe and -compress. +farbfeld is a lossless image format which is easy to parse, pipe and compress. It has the following format: ╔════════╤═════════════════════════════════════════════════════════╗ @@ -21,21 +20,18 @@ alpha-premultiplied. Dependencies ------------ - * [libpng](http://www.libpng.org/pub/png/libpng.html) - for png conversions * [libjpeg-turbo](http://libjpeg-turbo.virtualgl.org/) - for jpg conversions Development ----------- - -You can [browse](//git.suckless.org/farbfeld) its source code repository -or get a copy using the following command: +You can [browse](//git.suckless.org/farbfeld) its source code repository or get +a copy using the following command: git clone git://git.suckless.org/farbfeld Download -------- - * [farbfeld-1](//dl.suckless.org/farbfeld/farbfeld-1.tar.gz) (2016-01-06) * [farbfeld-2](//dl.suckless.org/farbfeld/farbfeld-2.tar.gz) (2016-03-14) * [farbfeld-3](//dl.suckless.org/farbfeld/farbfeld-3.tar.gz) (2017-04-14) @@ -56,7 +52,6 @@ provide packages: Implementations --------------- - * [lel](http://git.2f30.org/lel) farbfeld image viewer * [sent](//tools.suckless.org/sent/) presentation tool * [Go encoder/decoder](https://github.com/hullerob/go.farbfeld) @@ -68,8 +63,6 @@ Implementations Author ------ - * Laslo Hunhold (dev@frign.de) -Please contact me when you find information that could be added to this -page. +Please contact me when you find information that could be added to this page. diff --git a/tools.suckless.org/ii/bots/index.md b/tools.suckless.org/ii/bots/index.md @@ -1,4 +1,7 @@ -Its very easy to write shell script based bots with ii. As a short example look at this: +Bots +==== +Its very easy to write shell script based bots with ii. As a short example look +at this: tail -f \#<CHANNEL>/out | while read -r date time nick mesg; do @@ -7,23 +10,25 @@ Its very easy to write shell script based bots with ii. As a short example look printf "%s: WHAT??\n" "$nick" done >#<CHANNEL>/in -Its just spamming a channel but I guess your imagination is boundless. -I also heard about people using it together with nagios to get the notifications into IRC. -Remember to strip input for example with tr(1), tr -cd "0-9a-zA-Z" for example would only allow numbers and characters. +Its just spamming a channel but I guess your imagination is boundless. I also +heard about people using it together with nagios to get the notifications into +IRC. Remember to strip input for example with tr(1), tr -cd "0-9a-zA-Z" for +example would only allow numbers and characters. -If you want to see a live demonstration of a bot written for ii, join #grml on freenode, the grml-tips bot which searches -for [grml](http://www.grml.org) tips and gives a link or error messages is written in 45 lines of /bin/sh. No, I will not publish -the code since I really suck in shell programming :) +If you want to see a live demonstration of a bot written for ii, join #grml on +freenode, the grml-tips bot which searches for [grml](http://www.grml.org) tips +and gives a link or error messages is written in 45 lines of /bin/sh. No, I +will not publish the code since I really suck in shell programming :) Stat scripts ------------ - -If you want to use for example [pisg](http://pisg.sf.net/) to generate channel stats this will also work if you choose the irssi log format. +If you want to use for example [pisg](http://pisg.sf.net/) to generate channel +stats this will also work if you choose the irssi log format. Automatic reconnects -------------------- - -If you want some kind of automatic reconnects in ii you can make a something like this in a shell script: +If you want some kind of automatic reconnects in ii you can make a something +like this in a shell script: while true; do ii -s irc.oftc.net -n iifoo -f "John Doe" & @@ -37,27 +42,25 @@ bots for irc it (ii) ==================== iibot ------- +----- +[iibot](https://github.com/c00kiemon5ter/iibot) by c00kiemon5ter is written in +bash, but can easily be translated to plain sh (ask him). -[iibot](https://github.com/c00kiemon5ter/iibot) by c00kiemon5ter -is written in bash, but can easily be translated to plain sh (ask him). +It uses a main script to connect to multiple servers and channels, and +auto-reconnect and auto-join on network failure. -It uses a main script to connect to multiple servers and channels, -and auto-reconnect and auto-join on network failure. - -It reads commands with a leading '!' and calls a secondary script -to handle the command and the responce. -That way commands can be added or removed dynamically. -The secondary script knows the network, channel, nick and message that -triggered the command, so it is easy to filter responses to commands -to specified channels, users and such. +It reads commands with a leading '!' and calls a secondary script to handle the +command and the responce. That way commands can be added or removed +dynamically. The secondary script knows the network, channel, nick and message +that triggered the command, so it is easy to filter responses to commands to +specified channels, users and such. if you need help, do not hesitate to ask c00kiemon5ter on freenode and oftc. nagios ------ - -Simple Perl script "nagios_post.pl" as interface between [Nagios](http://www.nagios.org/) and ii: +Simple Perl script "nagios\_post.pl" as interface between +[Nagios](http://www.nagios.org/) and ii: #!/usr/bin/perl -w @@ -101,9 +104,11 @@ The appropriate Nagios configuration looks like this: command_line /usr/bin/printf "%b" "$TIME$ Host $HOSTALIAS$ is $HOSTSTATE$ -- $HOSTOUTPUT$\n" | /home/nagios/bin/nagios_post.pl } -Start ii appropriately and add notify-by-irc and host-notify-by-irc to the appropriate "service&#x5f;notification&#x5f;commands" and "host&#x5f;notification&#x5f;commands" -- and you have your own Nagios IRC bot. +Start ii appropriately and add notify-by-irc and host-notify-by-irc to the +appropriate "service&#x5f;notification&#x5f;commands" and +"host&#x5f;notification&#x5f;commands" -- and you have your own Nagios IRC bot. rsstail ------- - -Just piping the output of [rsstail](http://www.vanheusden.com/rsstail/) into the fifo "in" should work. More detailed examples are welcome. +Just piping the output of [rsstail](http://www.vanheusden.com/rsstail/) into +the fifo "in" should work. More detailed examples are welcome. diff --git a/tools.suckless.org/ii/index.md b/tools.suckless.org/ii/index.md @@ -1,9 +1,13 @@ Irc it (ii) =========== - -ii is a minimalist FIFO and filesystem-based IRC client. It creates an irc directory tree with server, channel and nick name directories. In every directory a FIFO in file and a normal out file is created. - -The in file is used to communicate with the servers and the out files contain the server messages. For every channel and every nick name there are related in and out files created. This allows IRC communication from command line and adheres to the Unix philosophy. +ii is a minimalist FIFO and filesystem-based IRC client. It creates an irc +directory tree with server, channel and nick name directories. In every +directory a FIFO in file and a normal out file is created. + +The in file is used to communicate with the servers and the out files contain +the server messages. For every channel and every nick name there are related in +and out files created. This allows IRC communication from command line and +adheres to the Unix philosophy. example Join a channel as follows: `$ echo "/j #wmii" > in` diff --git a/tools.suckless.org/ii/patches/action/index.md b/tools.suckless.org/ii/patches/action/index.md @@ -3,17 +3,14 @@ Action Description ----------- - -Adds support for writing CTCP ACTIONs with the use of '/m some action' -This can be done simply by writing '^AACTION some action^A', but this patch is -for people who are too lazy to do that (me) +Adds support for writing CTCP ACTIONs with the use of '/m some action' This can +be done simply by writing '^AACTION some action^A', but this patch is for +people who are too lazy to do that (me) Download -------- - -* [ii-1.4-ctcp_action.diff](ii-1.4-ctcp_action.diff) +* [ii-1.4-ctcp\_action.diff](ii-1.4-ctcp_action.diff) Author ------ - * Evan Gates (emg) <[evan.gates@gmail.com](mailto:evan.gates@gmail.com)> diff --git a/tools.suckless.org/ii/patches/autojoin/index.md b/tools.suckless.org/ii/patches/autojoin/index.md @@ -3,18 +3,14 @@ Autojoin Description ----------- - When a user messages you or you are made to join a channel (as with bitlbee), -ii will automatically join so there is no need to either `$ echo "/j channel > in"` -or `$ echo "/j user message" > in` -before you can start sending messages. +ii will automatically join so there is no need to either `$ echo "/j channel > +in"` or `$ echo "/j user message" > in` before you can start sending messages. Download -------- - * [ii-1.4-autojoin.diff](ii-1.4-autojoin.diff) Author ------ - * Evan Gates (emg) <[evan.gates@gmail.com](mailto:evan.gates@gmail.com)> diff --git a/tools.suckless.org/ii/patches/exec/index.md b/tools.suckless.org/ii/patches/exec/index.md @@ -3,17 +3,14 @@ Exec Description ----------- - Adds support for '/e cmd' printing output of cmd to the channel. True this is possible doing 'cmd > in', but this is for lazy people (me). Be careful not to flood. Download -------- - * [ii-1.4-exec.diff](ii-1.4-exec.diff) Author ------ - * Evan Gates (emg) <[evan.gates@gmail.com](mailto:evan.gates@gmail.com)> diff --git a/tools.suckless.org/ii/patches/index.md b/tools.suckless.org/ii/patches/index.md @@ -1,5 +1,4 @@ patches ======= - -For instructions on how to submit and format patches, take a look at -the [hacking guidelines](//suckless.org/hacking). +For instructions on how to submit and format patches, take a look at the +[hacking guidelines](//suckless.org/hacking). diff --git a/tools.suckless.org/ii/patches/joinuser/index.md b/tools.suckless.org/ii/patches/joinuser/index.md @@ -3,19 +3,18 @@ Joinuser Description ----------- - -By default to PRIVMSG a user you need to `/j user message`, this patch makes `message` optional. -It also displays "-!- yournick has joined user" prior to any messages both when you `/j user` and -when a user messages you, and incorporates the [autojoin](//tools.suckless.org/ii/patches/autojoin) -patch, so you do not need to `/j user` first to talk to someone who has already messaged you. +By default to PRIVMSG a user you need to `/j user message`, this patch makes +`message` optional. It also displays "-!- yournick has joined user" prior to +any messages both when you `/j user` and when a user messages you, and +incorporates the [autojoin](//tools.suckless.org/ii/patches/autojoin) patch, so +you do not need to `/j user` first to talk to someone who has already messaged +you. Download -------- - * [ii-1.4-joinuser.diff](ii-1.4-joinuser.diff) Author ------ - * Robert Lowry (bobertlo) <[robertwlowry@gmail.com](mailto:robertwlowry@gmail.com)> * Evan Gates (emg) <[evan.gates@gmail.com](mailto:evan.gates@gmail.com)> diff --git a/tools.suckless.org/ii/patches/solarisbuild/index.md b/tools.suckless.org/ii/patches/solarisbuild/index.md @@ -3,17 +3,15 @@ Solaris Build Description ----------- - -Building on Solaris 11 was failing for me due to a Compile error and a linker error. -This simple patch fixed the issue for me on ii version 1.8 it might work for you too. +Building on Solaris 11 was failing for me due to a Compile error and a linker +error. This simple patch fixed the issue for me on ii version 1.8 it might work +for you too. Download -------- - * [ii-1.8-solarisbuild.diff](ii-1.8-solarisbuild.diff) Simple diff * [ii-solarisbuild-20180912-b25423f.patch](ii-solarisbuild.patch) patch format Author ------ - * Dr Owl <[mail@catsnest.co.uk](mailto:mail@catsnest.co.uk)> diff --git a/tools.suckless.org/ii/patches/ssl/index.md b/tools.suckless.org/ii/patches/ssl/index.md @@ -3,18 +3,14 @@ SSL Description ----------- - -Adds ssl encryption support via the `-e ssl` argument. It will use the -default port of 6697 unless an alternative port is specified with the --p flag. +Adds ssl encryption support via the `-e ssl` argument. It will use the default +port of 6697 unless an alternative port is specified with the -p flag. Download -------- - * [ii-1.7-ssl.diff](ii-1.7-ssl.diff) Author ------ - * Written for 1.6 by Hunter Haugen * Ported to ii 1.7 by Nik Unger diff --git a/tools.suckless.org/ii/patches/ucspi/index.md b/tools.suckless.org/ii/patches/ucspi/index.md @@ -3,19 +3,17 @@ UCSPI Description ----------- - -Replaces the socket back-end with the [ucspi](https://cr.yp.to/proto/ucspi.txt). -This makes ii more flexable and outsources the handling of IPv6, TLS and SOCKS -to other tools like [tcpclient](https://cr.yp.to/ucspi-tcp.html), -[tlc and socks](https://github.com/younix/ucspi). +Replaces the socket back-end with the +[ucspi](https://cr.yp.to/proto/ucspi.txt). This makes ii more flexable and +outsources the handling of IPv6, TLS and SOCKS to other tools like +[tcpclient](https://cr.yp.to/ucspi-tcp.html), [tlc and +socks](https://github.com/younix/ucspi). Download -------- - * [ii-1.8-ucspi.diff](ii-1.8-ucspi.diff) * [ii-1.7-ucspi.diff](ii-1.7-ucspi.diff) Author ------ - * Jan Klemkow (younix) <[j.klemkow@wemelug.de](mailto:j.klemkow@wemelug.de)> diff --git a/tools.suckless.org/ii/patches/usernames/index.md b/tools.suckless.org/ii/patches/usernames/index.md @@ -3,25 +3,22 @@ Usernames Description ----------- - -Changes the handling of QUIT and NICK messages from other users so that the output is written -to the relevant channels rather than the server output. This patch is rather bulky but it -gets the job done. +Changes the handling of QUIT and NICK messages from other users so that the +output is written to the relevant channels rather than the server output. This +patch is rather bulky but it gets the job done. Notes ----- - -I have tested this patch against the other patches posted here and they all apply, but for -some of them you must apply this patch first or there will be conflicts. +I have tested this patch against the other patches posted here and they all +apply, but for some of them you must apply this patch first or there will be +conflicts. Download -------- - * [ii-1.4-usernames.diff](ii-1.4-usernames.diff) * [ii-1.8-usernames.diff](ii-1.8-usernames.diff) Author ------ - * Robert Lowry (bobertlo) <[robertwlowry@gmail.com](mailto:robertwlowry@gmail.com)> * Ported to 1.8 by hicsfield diff --git a/tools.suckless.org/ii/usage/index.md b/tools.suckless.org/ii/usage/index.md @@ -1,42 +1,69 @@ Multitail + Vim --------------- -To make ii a bit more comfortable, use it in combination with the multitail program and for example with vim. Run vim in the server directory and use key mapping like: -`map w1 :.w >> \\#ii/in<cr>` -`map w2 :.w >> \\#wmii/in<cr>` +To make ii a bit more comfortable, use it in combination with the multitail +program and for example with vim. Run vim in the server directory and use key +mapping like: + + map w1 :.w >>\\#ii/in<cr> + map w2 :.w >>\\#wmii/in<cr> + to post to channels. Thanks to Matthias Kopfermann for this hint. -Another cool thing is to use it with splitvt so you have multitail windows on top and for example four lines of vim at the bottom. +Another cool thing is to use it with splitvt so you have multitail windows on +top and for example four lines of vim at the bottom. -There is also a blog post which describes the whole configuration: +There is also a blog post which describes the whole configuration: [http://nion.modprobe.de/blog/archives/440-Using-the-ii-irc-client.html](http://nion.modprobe.de/blog/archives/440-Using-the-ii-irc-client.html) Popup Chat Windows ------------------ -You can also try [pcw](http://bitbucket.org/emg/pcw) which will (by default) open a new terminal for each channel you join. On startup, and after receiving SIGUSR1, pcw will open a terminal for every channel you are already in. By default it depends on [srw](http://bitbucket.org/emg/srw) as a line editing wrapper. Just run 'pcw ~/irc' (or whichever directory you have ii using) then start up ii. Note that closing a terminal does not exit the channel. If that channel receives a new message the terminal will open again. To leave the channel you must first '/l' and then close the window. (the combination of pcw + ii + bitlbee let me stop using pidgin :-D) +You can also try [pcw](http://bitbucket.org/emg/pcw) which will (by default) +open a new terminal for each channel you join. On startup, and after receiving +SIGUSR1, pcw will open a terminal for every channel you are already in. By +default it depends on [srw](http://bitbucket.org/emg/srw) as a line editing +wrapper. Just run 'pcw ~/irc' (or whichever directory you have ii using) then +start up ii. Note that closing a terminal does not exit the channel. If that +channel receives a new message the terminal will open again. To leave the +channel you must first '/l' and then close the window. (the combination of pcw ++ ii + bitlbee let me stop using pidgin :-D) Web frontend ------------ -phpii is a simple web frontend for ii. You can see a demo of it and download the php source here: [phpii homepage](http://yogan.meinungsverstaerker.de/phpii) +phpii is a simple web frontend for ii. You can see a demo of it and download +the php source here: [phpii +homepage](http://yogan.meinungsverstaerker.de/phpii) iii --- -[iii](https://github.com/c00kiemon5ter/iii) (maybe interactive ii, or something) is a collection of shell scripts to produce a cli frontend to ii. +[iii](https://github.com/c00kiemon5ter/iii) (maybe interactive ii, or +something) is a collection of shell scripts to produce a cli frontend to ii. iii looks like a "normal" irc client (ie irssi), working on top of ii. -It features connections to multiple servers and autojoin of channels, auto-reconnect to servers and channels on network failure, autocompletion through rlwrap, formatted and colored output etc. -It can be used directly in the command line, or like pcw spawning terminals for each channel, or inside a dedicated tmux session. -Read the readme file, and do not hesitate to ask c00kiemon5ter for help on freenode and oftc. + +It features connections to multiple servers and autojoin of channels, +auto-reconnect to servers and channels on network failure, autocompletion +through rlwrap, formatted and colored output etc. + +It can be used directly in the command line, or like pcw spawning terminals for +each channel, or inside a dedicated tmux session. + +Read the readme file, and do not hesitate to ask c00kiemon5ter for help on +freenode and oftc. iil --- -The [iil](http://chiselapp.com/user/onys/repository/iil/home) (short for iiless) is fast viewer/reader for ii irc client, using your shell and less. +The [iil](http://chiselapp.com/user/onys/repository/iil/home) (short for +iiless) is fast viewer/reader for ii irc client, using your shell and less. uii --- -[uii](https://github.com/erlehmann/uii) (usable irc it) is a set of shell scripts that provides readline support, uses inotify to monitor channels and pops up notifications. +[uii](https://github.com/erlehmann/uii) (usable irc it) is a set of shell +scripts that provides readline support, uses inotify to monitor channels and +pops up notifications. im-scripts ---------- -[im-scripts](http://github.com/gravicappa/im-scripts) is a set of sh-scripts for convenient use of ii and ji. +[im-scripts](http://github.com/gravicappa/im-scripts) is a set of sh-scripts +for convenient use of ii and ji. wii --- @@ -59,9 +86,11 @@ lchat TLS/SSL ------- -To connect to a TLS/SSL encrypted channel, it is possible to use the [SSL patch](patches/ssl) or a proxy: +To connect to a TLS/SSL encrypted channel, it is possible to use the [SSL +patch](patches/ssl) or a proxy: -[stunnel](https://www.stunnel.org/) is a proxy for an unencrypted TCP connection to TLS: +[stunnel](https://www.stunnel.org/) is a proxy for an unencrypted TCP +connection to TLS: In `/etc/stunnel/stunnel.conf`: @@ -69,8 +98,13 @@ In `/etc/stunnel/stunnel.conf`: accept = 127.0.0.1:<your-port> connect = irc.oftc.net:6697 -[inetd](http://man.openbsd.org/inetd) listens on multiple TCP ports and can connect a program standard input and output to a TCP socket. -This enables it to act as a simple proxy using any command line TLS client, such as [openssl s_client](http://man.openbsd.org/openssl#S_CLIENT), [brssl client](https://bearssl.org/gitweb/?p=BearSSL;a=blob;f=tools/brssl.c;h=91372b09f42149a503f9d13db0b78cf0a123611e;hb=HEAD#l43), nc -ssl, socat... or any other: +[inetd](http://man.openbsd.org/inetd) listens on multiple TCP ports and can +connect a program standard input and output to a TCP socket. + +This enables it to act as a simple proxy using any command line TLS client, +such as [openssl s_client](http://man.openbsd.org/openssl#S_CLIENT), +[brssl client](https://bearssl.org/gitweb/?p=BearSSL;a=blob;f=tools/brssl.c;h=91372b09f42149a503f9d13db0b78cf0a123611e;hb=HEAD#l43), +nc -ssl, socat... or any other: In `/etc/inetd.conf`: diff --git a/tools.suckless.org/quark/index.md b/tools.suckless.org/quark/index.md @@ -1,70 +1,64 @@ ![quark](quark.svg) -quark is an extremely small and simple HTTP GET/HEAD-only web server for -static content. +quark is an extremely small and simple HTTP GET/HEAD-only web server for static +content. The goal of this project is to do one thing and do it well, namely serving -static web directories and doing that right. Most other solutions either -are too complex (CGI support, dependencies on external libraries, ...) or -lack features you expect (TLS, virtual hosts, partial content, not modified -since, ...). quark tries to find a midway and just restrict itself to being -static while still offering functions you only find in more bloated solutions -and being as secure as possible (chroot, privilege dropping, strict parsers, -no malloc at runtime, pledge, ...). +static web directories and doing that right. Most other solutions either are +too complex (CGI support, dependencies on external libraries, ...) or lack +features you expect (TLS, virtual hosts, partial content, not modified since, +...). quark tries to find a midway and just restrict itself to being static +while still offering functions you only find in more bloated solutions and +being as secure as possible (chroot, privilege dropping, strict parsers, no +malloc at runtime, pledge, ...). Static web ---------- - We believe that most of the web does not need to be dynamic and increasing -complexity on server-side applications is one of the main reasons for the -web obesity crisis. -The common approach nowadays is to do everything on the server, including -parsing requests, modifying files and databases, generating HTML and all -that using unfit languages like PHP or JavaScript, which is a security and +complexity on server-side applications is one of the main reasons for the web +obesity crisis. The common approach nowadays is to do everything on the server, +including parsing requests, modifying files and databases, generating HTML and +all that using unfit languages like PHP or JavaScript, which is a security and efficiency nightmare. Over the years we have seen massive amounts of security holes in numerous -applications of tools commonly used for these jobs -(PHP, node.js, CGI-implementations, ...). -The reason why we are in this situation in the first place is due to the fact that -the jobs of data processing and data presentation, which should be separate, -converged together into one. +applications of tools commonly used for these jobs (PHP, node.js, +CGI-implementations, ...). The reason why we are in this situation in the first +place is due to the fact that the jobs of data processing and data +presentation, which should be separate, converged together into one. The solution is to rely on static regeneration independent from the web server, which just serves static files. You can still implement e.g. form handlers for -dynamic content which run as their own network instance and operate independently -from the web server. -What's left is just to generate the static content using the database and repeating -this process in case the database is updated. +dynamic content which run as their own network instance and operate +independently from the web server. What's left is just to generate the static +content using the database and repeating this process in case the database is +updated. This way the jobs of data processing and data presentation are separate again, -with many advantages. All requests are handled with constantly low latency, with -the possibility of serving everything directly from RAM (using a ramfs). Separated -concerns make it very unattractive to attack the web server itself and the -attack surface that is left, if it is present at all, is the separate form handler, -which can be implemented in a very simple, safe and efficient manner. +with many advantages. All requests are handled with constantly low latency, +with the possibility of serving everything directly from RAM (using a ramfs). +Separated concerns make it very unattractive to attack the web server itself +and the attack surface that is left, if it is present at all, is the separate +form handler, which can be implemented in a very simple, safe and efficient +manner. In case there is an attack on this infrastructure and the attacker manages to DoS the form handler, the serving of content is still unaffected. Solutions --------- - * [saait](https://git.codemadness.org/saait/file/README.html) site generator * [stagit](https://git.codemadness.org/stagit/file/README.html) git page generator Development ----------- - -You can [browse](//git.suckless.org/quark) the source code repository or -get a copy with the following command: +You can [browse](//git.suckless.org/quark) the source code repository or get a +copy with the following command: git clone git://git.suckless.org/quark Author ------ - * Laslo Hunhold (dev@frign.de) -Please contact me when you find information that could be added to this -page. +Please contact me when you find information that could be added to this page. diff --git a/tools.suckless.org/sent/index.md b/tools.suckless.org/sent/index.md @@ -1,6 +1,5 @@ sent ==== - Simple plaintext presentation tool. [![Screenshot of sent](sent-bullets-s.png)](sent-bullets.png) @@ -19,17 +18,15 @@ have to worry about alignment. Instead you can really focus on the content. Dependencies ------------ - * Xlib and Xft for building * [farbfeld](//tools.suckless.org/farbfeld/) tools to use images in the presentations (if you don't want to use farbfeld, - [sent-0.2](//dl.suckless.org/tools/sent-0.2.tar.gz) was the last version - with just png support, but may lack fixes and further improvements since its + [sent-0.2](//dl.suckless.org/tools/sent-0.2.tar.gz) was the last version with + just png support, but may lack fixes and further improvements since its release) Demo ---- - To get a little demo, just type make && ./sent example @@ -38,7 +35,6 @@ You can navigate with the arrow keys and quit with `q`. (Non-)Features -------------- - * A presentation is just a simple text file. * Each paragraph represents one slide. * Content is automatically scaled to fit the screen. @@ -56,7 +52,6 @@ You can navigate with the arrow keys and quit with `q`. Usage ----- - Edit config.h to fit your needs then build again. sent [FILE] @@ -83,18 +78,16 @@ with `#` will be ignored. A `\` at the beginning of the line escapes `@` and thanks / questions? -A deeper example can be found in [this -file](//git.suckless.org/sent/tree/example) from the repository root. +A deeper example can be found in +[this file](//git.suckless.org/sent/tree/example) from the repository root. Development ----------- - -You can [browse](//git.suckless.org/sent) its source code repository -or get a copy using the following command: +You can [browse](//git.suckless.org/sent) its source code repository or get a +copy using the following command: git clone https://git.suckless.org/sent Download -------- - * [sent-1](//dl.suckless.org/tools/sent-1.tar.gz) (20170904) diff --git a/tools.suckless.org/sent/patches/bilinear_scaling/index.md b/tools.suckless.org/sent/patches/bilinear_scaling/index.md @@ -3,31 +3,25 @@ Use Bilinear Scaling for Image Slides Description ----------- +The patch replaces the Nearest Neighbor Scaling algorithm used for images with +Bilinear Scaling. -The patch replaces the Nearest Neighbor Scaling algorithm used for -images with Bilinear Scaling. - -This should give somewhat more pleasing results when using image -slides for graphs, or other material which suffers badly under -aliasing. +This should give somewhat more pleasing results when using image slides for +graphs, or other material which suffers badly under aliasing. Notes ----- +Due to the nature of Bilinear Scaling, scaling down more than 50% will have +somewhat less pleasing results. Scaling up will generally be quite blurry. -Due to the nature of Bilinear Scaling, scaling down more than 50% will -have somewhat less pleasing results. Scaling up will generally be -quite blurry. - -There is room for further improvement of image scaling, e.g: -Implementing a better scaling algorithm such as bicubic, or lancszos; -and/or using separate algorithms for scaling up or down. +There is room for further improvement of image scaling, e.g: Implementing a +better scaling algorithm such as bicubic, or lancszos; and/or using separate +algorithms for scaling up or down. Download -------- - * [sent-bilinearscaling-1.0.diff](sent-bilinearscaling-1.0.diff) Author ------ - * Anton Kindestam (xantoz) <antonki@kth.se> diff --git a/tools.suckless.org/sent/patches/index.md b/tools.suckless.org/sent/patches/index.md @@ -1,5 +1,5 @@ patches ======= -For instructions on how to submit and format patches, take a look at -the [hacking guidelines](//suckless.org/hacking). +For instructions on how to submit and format patches, take a look at the +[hacking guidelines](//suckless.org/hacking). diff --git a/tools.suckless.org/sent/patches/inverted-colors/index.md b/tools.suckless.org/sent/patches/inverted-colors/index.md @@ -3,24 +3,19 @@ Inverted Colors Description ----------- - This patch adds another color scheme. You can switch to that alternate color scheme with the `-i` flag. You no longer need to recompile sent if you want to present with a different color scheme. Notes ----- - -Just with the original `colors` array (`config.h`) you can adjust the colors -of the `inverted_colors` array. See `config.h` for more information. +Just with the original `colors` array (`config.h`) you can adjust the colors of +the `inverted_colors` array. See `config.h` for more information. Download -------- - -* [sent-invertedcolors-72d33d4.diff](sent-invertedcolors-72d33d4.diff) - (20190929) +* [sent-invertedcolors-72d33d4.diff](sent-invertedcolors-72d33d4.diff) (20190929) Author ------ - * Joel F. Meyer (sirjofri) <sirjofri@sirjofri.de> diff --git a/tools.suckless.org/sent/patches/progress-bar/index.md b/tools.suckless.org/sent/patches/progress-bar/index.md @@ -3,7 +3,6 @@ Progress Bar Description ----------- - This patch introduces a progress bar at the very bottom of non-image slides. Similar to the slide numbers patch, it may be useful for an audience to know how much more of a presentation they have to endure. One way of measuring this @@ -12,10 +11,8 @@ slide count. Download -------- - * [sent-progress-bar-1.0.diff](sent-progress-bar-1.0.diff) Author ------ - * David Phillips <david@sighup.nz> diff --git a/tools.suckless.org/sent/patches/toggle_cursor/index.md b/tools.suckless.org/sent/patches/toggle_cursor/index.md @@ -3,16 +3,13 @@ Toggle Mouse Cursor Description ----------- - The patch introduces a shortcut that toggles the mouse cursor. Enjoy! Download -------- - * [toggle-mouse-cursor.diff](toggle-mouse-cursor.diff) (1623) (20151117) Author ------ - * Alex Kozadaev (snobb) diff --git a/tools.suckless.org/sic/index.md b/tools.suckless.org/sic/index.md @@ -1,6 +1,7 @@ simple irc client ================= -sic is an extremely simple IRC client. It consists of less than 250 lines of code. It is the little brother of [irc it](/ii). +sic is an extremely simple IRC client. It consists of less than 250 lines of +code. It is the little brother of [irc it](/ii). Download -------- @@ -8,8 +9,8 @@ Download Development ----------- -You can [browse](//git.suckless.org/sic) its source code repository or -get a copy using the following command: +You can [browse](//git.suckless.org/sic) its source code repository or get a +copy using the following command: git clone https://git.suckless.org/sic diff --git a/tools.suckless.org/sic/patches/alert/index.md b/tools.suckless.org/sic/patches/alert/index.md @@ -3,7 +3,8 @@ Alert Description ----------- -This patch make sic produce an alert by printing a bell character to stdout when the nick is found in an incoming message. +This patch make sic produce an alert by printing a bell character to stdout +when the nick is found in an incoming message. Download -------- diff --git a/tools.suckless.org/sic/patches/hidecommand/index.md b/tools.suckless.org/sic/patches/hidecommand/index.md @@ -3,11 +3,8 @@ hide commands Description ----------- - -This patch lets you hide IRC messages such as JOIN/QUIT. -You can use the sic command 'h' to specify what messages are hidden. -Example: -:h JOIN,QUIT +This patch lets you hide IRC messages such as JOIN/QUIT. You can use the sic +command 'h' to specify what messages are hidden. Example: :h JOIN,QUIT Now all JOIN and QUIT messages will not be displayed. The delimiter is unimportant (use what you like or nothing at all) @@ -16,6 +13,5 @@ Use the command without arguments to stop hiding any messages. Download -------- - * [patch](hidecommand.diff) diff --git a/tools.suckless.org/sic/patches/index.md b/tools.suckless.org/sic/patches/index.md @@ -1,5 +1,4 @@ patches ======= - For instructions on how to submit and format patches, take a look at the [hacking guidelines](//suckless.org/hacking). diff --git a/tools.suckless.org/slock/index.md b/tools.suckless.org/slock/index.md @@ -1,14 +1,11 @@ slock ===== - -Simple X display locker. This is the simplest X screen locker we are -aware of. It is stable and quite a lot of people in our community are using it -every day when they are out with friends or fetching some food from the local -pub. +Simple X display locker. This is the simplest X screen locker we are aware of. +It is stable and quite a lot of people in our community are using it every day +when they are out with friends or fetching some food from the local pub. Configuration ------------- - slock is configured via `config.h` like most other suckless.org software. Per default it will turn the screen red on any keyboard press, if you are less paranoid and turning red on failed login attempts suffices for you, set @@ -16,23 +13,20 @@ paranoid and turning red on failed login attempts suffices for you, set Development ----------- - -You can [browse](//git.suckless.org/slock) its source code repository -or get a copy using the following command: +You can [browse](//git.suckless.org/slock) its source code repository or get a +copy using the following command: git clone https://git.suckless.org/slock Download -------- - * [slock-1.4](//dl.suckless.org/tools/slock-1.4.tar.gz) (20161120) Xautolock --------- - slock can be started after a specific period of user inactivity using -[xautolock](http://www.ibiblio.org/pub/linux/X11/screensavers/). The -command syntax is: +[xautolock](http://www.ibiblio.org/pub/linux/X11/screensavers/). The command +syntax is: xautolock -time 10 -locker slock diff --git a/tools.suckless.org/slock/patches/capscolor/index.md b/tools.suckless.org/slock/patches/capscolor/index.md @@ -3,18 +3,15 @@ Capscolor Description ----------- - Introduces an additional color to indicate the state of Caps Lock. Written against HEAD at a31b919, but should apply to 1.2. Download -------- - * [slock-capscolor.diff](slock-capscolor.diff) * [slock-capscolor-20170106-2d2a21a.diff](slock-capscolor-20170106-2d2a21a.diff) Authors ------- - * Andrew Hills <[ahills@ednos.net](mailto:ahills@ednos.net)> * Klemens Nanni <[kl3@posteo.org](mailto:kl3@posteo.org)> (20170106 version) diff --git a/tools.suckless.org/slock/patches/control-clear/index.md b/tools.suckless.org/slock/patches/control-clear/index.md @@ -3,7 +3,6 @@ Control Clear Description ----------- - Adds an additional configuration parameter, controlkeyclear. When set to 1, slock will no longer change to the failure color if a control key is pressed while the buffer is empty. This is useful if, for example, you wake your @@ -12,10 +11,8 @@ failed unlocking attempts. Download -------- - * [slock-git-20161012-control-clear.diff](slock-git-20161012-control-clear.diff) Author ------ - * David Phillips - <dbphillipsnz@gmail.com> diff --git a/tools.suckless.org/slock/patches/dpms/index.md b/tools.suckless.org/slock/patches/dpms/index.md @@ -3,7 +3,6 @@ DPMS Description ----------- - This patch interacts with the Display Power Signaling and automatically shuts down the monitor after a configurable amount of seconds. The monitor will automatically be activated by pressing a key or moving the mouse and the @@ -11,19 +10,15 @@ password can be entered then. Notes ----- - -The number of seconds until the screen will be disabled is configured -in `config.h` via the `monitortime` option. +The number of seconds until the screen will be disabled is configured in +`config.h` via the `monitortime` option. This patch was written against the `1.4`-tag. - Download -------- - * [slock-dpms-20170923-fa11589.diff](slock-dpms-20170923-fa11589.diff) Authors ------- - * Alvar Penning <[post@0x21.biz](mailto:post@0x21.biz)> diff --git a/tools.suckless.org/slock/patches/index.md b/tools.suckless.org/slock/patches/index.md @@ -1,5 +1,4 @@ patches ======= - -For instructions on how to submit and format patches, take a look at -the [hacking guidelines](//suckless.org/hacking). +For instructions on how to submit and format patches, take a look at the +[hacking guidelines](//suckless.org/hacking). diff --git a/tools.suckless.org/slock/patches/mediakeys/index.md b/tools.suckless.org/slock/patches/mediakeys/index.md @@ -14,15 +14,13 @@ locked: - XF86AudioPrev - XF86AudioNext -I don't want to unlock the screen just in order to skip the current song -or raise the volume, that's all there is to it. +I don't want to unlock the screen just in order to skip the current song or +raise the volume, that's all there is to it. Download -------- - * [slock-mediakeys-20170111-2d2a21a.diff](slock-mediakeys-20170111-2d2a21a.diff) Authors ------- - * Klemens Nanni <[kl3@posteo.org](mailto:kl3@posteo.org)> diff --git a/tools.suckless.org/slock/patches/message/index.md b/tools.suckless.org/slock/patches/message/index.md @@ -3,10 +3,8 @@ Message Description ----------- - -This patch lets you add a message to your lock screen. You can place -a default message in `config.h`, and you can also pass a message with -`-m message` +This patch lets you add a message to your lock screen. You can place a default +message in `config.h`, and you can also pass a message with `-m message` So, for instance, you can run @@ -18,7 +16,6 @@ Or if you want a silly lockscreen Notes ----- - This adds three items to `config.h`: * `message` - the default message @@ -27,13 +24,10 @@ This adds three items to `config.h`: *A list of font sizes might be in* `/usr/share/fonts/X11/misc/` - Download -------- - * [slock-message-20180626-8384a86.diff](slock-message-20180626-8384a86.diff) Authors ------- - * Blair Drummond - blair.robert.drummond@gmail.com diff --git a/tools.suckless.org/slock/patches/pam_auth/index.md b/tools.suckless.org/slock/patches/pam_auth/index.md @@ -3,21 +3,18 @@ PAM auth Description ----------- - Replaces shadow support with PAM authentication support. Change variable `pam_service` in `config.def.h` to the corresponding PAM -service. The default configuration is for ArchLinux's `login` service. +service. The default configuration is for ArchLinux's `login` service. Download -------- - -* [slock-pam_auth-20161126-9909280.diff](slock-pam_auth-20161126-9909280.diff) -* [slock-pam_auth-20161026-5974695.diff](slock-pam_auth-20161026-5974695.diff) -* [slock-pam_auth-20160909-a7619f7.diff](slock-pam_auth-20160909-a7619f7.diff) -* [slock-pam_auth.diff](slock-pam_auth.diff) +* [slock-pam\_auth-20161126-9909280.diff](slock-pam_auth-20161126-9909280.diff) +* [slock-pam\_auth-20161026-5974695.diff](slock-pam_auth-20161026-5974695.diff) +* [slock-pam\_auth-20160909-a7619f7.diff](slock-pam_auth-20160909-a7619f7.diff) +* [slock-pam\_auth.diff](slock-pam_auth.diff) Authors ------- - * Jan Christoph Ebersbach <[jceb@e-jc.de](mailto:jceb@e-jc.de)> diff --git a/tools.suckless.org/slock/patches/quickcancel/index.md b/tools.suckless.org/slock/patches/quickcancel/index.md @@ -3,7 +3,6 @@ quickcancel Description ----------- - Allow slock to be cancelled by simple mouse movement within the first 3 seconds after starting. @@ -12,17 +11,14 @@ an activity that requires no input (e.g. reading text, watching video). Notes ----- - The number of seconds while the lock can be cancelled is configured in `config.h` via the `timetocancel` option. Download -------- - * [slock-quickcancel-20160619-65b8d52.diff](slock-quickcancel-20160619-65b8d52.diff) Authors ------- - * Matthias Schoth - mschoth@gmail.com diff --git a/tools.suckless.org/slock/patches/terminalkeys/index.md b/tools.suckless.org/slock/patches/terminalkeys/index.md @@ -3,7 +3,6 @@ terminalkeys Description ----------- - Add key commands that are commonly used in terminal applications (in particular the login prompt) to slock. @@ -19,11 +18,9 @@ Mappings: Download -------- - * [slock-terminalkeys-20160618-65b8d52.diff](slock-terminalkeys-20160618-65b8d52.diff) Authors ------- - * Matthias Schoth - mschoth@gmail.com diff --git a/tools.suckless.org/slock/patches/unlock_screen/index.md b/tools.suckless.org/slock/patches/unlock_screen/index.md @@ -3,17 +3,14 @@ Unlock Screen Description ----------- - -This patch keeps the screen unlocked but keeps the input locked. -That is, the screen is not affected by slock, but users will not -be able to interact with the X session unless they enter the correct password. +This patch keeps the screen unlocked but keeps the input locked. That is, the +screen is not affected by slock, but users will not be able to interact with +the X session unless they enter the correct password. Download -------- - -* [slock-unlock_screen-1.4.diff](slock-unlock_screen-1.4.diff) +* [slock-unlock\_screen-1.4.diff](slock-unlock_screen-1.4.diff) Authors ------- - * Arif Roktim <[aroktim@stuy.edu](mailto:aroktim@stuy.edu)> diff --git a/tools.suckless.org/slstatus/index.md b/tools.suckless.org/slstatus/index.md @@ -1,12 +1,11 @@ ![slstatus](slstatus.svg) -slstatus is a status monitor for window managers that use WM\_NAME or stdin -to fill the status bar. +slstatus is a status monitor for window managers that use WM\_NAME or stdin to +fill the status bar. Development ----------- - -You can [browse](//git.suckless.org/slstatus) its source code repository -or get a copy using the following command: +You can [browse](//git.suckless.org/slstatus) its source code repository or get +a copy using the following command: git clone https://git.suckless.org/slstatus diff --git a/tools.suckless.org/tabbed/index.md b/tools.suckless.org/tabbed/index.md @@ -3,15 +3,15 @@ tabbed ====== Simple generic tabbed fronted to xembed aware applications, originally designed -for [surf](//surf.suckless.org) but also usable with many other -applications, i.e. [st](//st.suckless.org), [uzbl](http://uzbl.org), +for [surf](//surf.suckless.org) but also usable with many other applications, +i.e. [st](//st.suckless.org), [uzbl](http://uzbl.org), [urxvt](http://software.schmorp.de/pkg/rxvt-unicode.html) and [xterm](http://invisible-island.net/xterm/) Development ----------- -You can [browse](//git.suckless.org/tabbed) its source code repository -or get a copy using the following command: +You can [browse](//git.suckless.org/tabbed) its source code repository or get a +copy using the following command: git clone https://git.suckless.org/tabbed diff --git a/tools.suckless.org/tabbed/patches/alpha/index.md b/tools.suckless.org/tabbed/patches/alpha/index.md @@ -3,7 +3,6 @@ Alpha Description ----------- - This patch create 32bit window in tabbed. This allows to handle windows with transparency. @@ -12,7 +11,6 @@ this patch effective. If you want to use transparency in st with this patch, you also need to replace - #define USE_ARGB (alpha != OPAQUE && opt_embed == NULL) by @@ -23,12 +21,8 @@ in st.c Download -------- - * [alpha.diff](alpha.diff) (3.8k) (28 Feb 2017) - Author ------ - * Sébastien Dailly - `<contact at chimrod dot com>` - diff --git a/tools.suckless.org/tabbed/patches/autohide/index.md b/tools.suckless.org/tabbed/patches/autohide/index.md @@ -1,6 +1,5 @@ Autohide ======== - This patch hides the tab bar if only one tab is open. Download diff --git a/tools.suckless.org/tabbed/patches/index.md b/tools.suckless.org/tabbed/patches/index.md @@ -1,5 +1,4 @@ patches ======= - -For instructions on how to submit and format patches, take a look at -the [hacking guidelines](//suckless.org/hacking). +For instructions on how to submit and format patches, take a look at the +[hacking guidelines](//suckless.org/hacking). diff --git a/tools.suckless.org/tabbed/patches/keycode/index.md b/tools.suckless.org/tabbed/patches/keycode/index.md @@ -1,7 +1,8 @@ Keycode ======= With this patch, handling key input is done with keycodes instead of keysyms. -This way, input is keyboard layout independant (adapt config.h to your keyboard using for example xev). +This way, input is keyboard layout independant (adapt config.h to your keyboard +using for example xev). Download -------- diff --git a/tools.suckless.org/tabbed/patches/xft/index.md b/tools.suckless.org/tabbed/patches/xft/index.md @@ -3,16 +3,12 @@ xft Description ----------- - This patch implements Xft. This allows users to utilize the UTF8 character set. Download -------- - * [tabbed-0.6-xft.diff](tabbed-0.6-xft.diff) (6.5k) (10 Sep 2015) - Author ------ - * Danil Semelenov - `<mail at danil dot mobi>` diff --git a/tools.suckless.org/x/svkbd/index.md b/tools.suckless.org/x/svkbd/index.md @@ -1,11 +1,10 @@ svkbd ===== -This is a simple virtual keyboard, intended to be used in environments, -where no keyboard is available. +This is a simple virtual keyboard, intended to be used in environments, where +no keyboard is available. Installation ------------ - % make % make install @@ -14,31 +13,29 @@ keyboard layout. You can create svkbd for additional layouts by doing: % make svkbd-$layout -This will take the file `layout.$layout.h` and create `svkbd-$layout`. -`make install` will then pick up the new file and install it accordingly. +This will take the file `layout.$layout.h` and create `svkbd-$layout`. `make +install` will then pick up the new file and install it accordingly. Usage ----- - % svkbd-en -This will open svkbd at the bottom of the screen, showing the default -English layout. +This will open svkbd at the bottom of the screen, showing the default English +layout. % svkbd-en -d -This tells svkbd-en to announce itself being a dock window, which then -is managed differently between different window managers. If using dwm -and the dock patch, then this will make svkbd being managed by dwm and -some space of the screen being reserved for it. +This tells svkbd-en to announce itself being a dock window, which then is +managed differently between different window managers. If using dwm and the +dock patch, then this will make svkbd being managed by dwm and some space of +the screen being reserved for it. % svkbd-en -g 400x200+1+1 -This will start svkbd-en with a size of 400x200 and at the upper left -window corner. +This will start svkbd-en with a size of 400x200 and at the upper left window +corner. Repository ---------- - git clone https://git.suckless.org/svkbd diff --git a/tools.suckless.org/x/swarp/index.md b/tools.suckless.org/x/swarp/index.md @@ -1,6 +1,7 @@ swarp ===== -Simple pointer warping tool for X. Warps the mouse pointer to a given position, e.g.: +Simple pointer warping tool for X. Warps the mouse pointer to a given position, +e.g.: swarp 100 100 diff --git a/tools.suckless.org/x/wmname/index.md b/tools.suckless.org/x/wmname/index.md @@ -12,8 +12,8 @@ Download Repository ---------- -You can [browse](//git.suckless.org/wmname) the source code or get a -copy using the following command: +You can [browse](//git.suckless.org/wmname) the source code or get a copy using +the following command: git clone https://git.suckless.org/wmname @@ -21,11 +21,11 @@ Usage ----- The following command prints the window manager name, if any: - ; wmname + $ wmname This is helpful when attempting to run java swing(broken) applications, -it makes them think they are running through the looking glass and behave as expected. -The following command sets the window manager name, e.g. +it makes them think they are running through the looking glass and behave as +expected. The following command sets the window manager name, e.g. - ; wmname LG3D + $ wmname LG3D