]> git.newer.systems - dwm.git/commitdiff
large scale stage
authorTucker Johnson <tucker@newer.systems>
Sun, 1 Jun 2025 18:17:51 +0000 (14:17 -0400)
committerTucker Johnson <tucker@newer.systems>
Sun, 1 Jun 2025 18:17:51 +0000 (14:17 -0400)
Makefile
PKGBUILD [deleted file]
README.md [deleted file]
README.txt [new file with mode: 0644]
TuCLS.7 [deleted file]
config.h
extras/TuCLS.7 [new file with mode: 0644]
extras/scripts/remapd [new file with mode: 0755]
extras/scripts/remaps [new file with mode: 0755]
extras/scripts/setbg [new file with mode: 0755]
extras/ttymaps.kmap [new file with mode: 0644]

index d2abfd12556d8bc80ee15331c2911feace8dd606..4bacdd1378f6a1e1b5f9907f7f5269762685c94a 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -35,13 +35,16 @@ dist: clean
 
 install: all
        mkdir -p ${DESTDIR}${PREFIX}/bin
-       cp -f dwm ${DESTDIR}${PREFIX}/bin
+       cp -f dwm extras/scripts/* ${DESTDIR}${PREFIX}/bin
        chmod 755 ${DESTDIR}${PREFIX}/bin/dwm
+       chmod 755 ${DESTDIR}${PREFIX}/bin/remapd
+       chmod 755 ${DESTDIR}${PREFIX}/bin/remaps
+       chmod 755 ${DESTDIR}${PREFIX}/bin/setbg
        mkdir -p ${DESTDIR}${MANPREFIX}/man1
        sed "s/VERSION/${VERSION}/g" < dwm.1 > ${DESTDIR}${MANPREFIX}/man1/dwm.1
        chmod 644 ${DESTDIR}${MANPREFIX}/man1/dwm.1
        mkdir -p ${DESTDIR}${MANPREFIX}/man7
-       cp -f TuCLS.7 ${DESTDIR}${MANPREFIX}/man7
+       cp -f extras/TuCLS.7 ${DESTDIR}${MANPREFIX}/man7
        chmod 644 ${DESTDIR}${MANPREFIX}/man7/TuCLS.7
 
 uninstall:
diff --git a/PKGBUILD b/PKGBUILD
deleted file mode 100644 (file)
index 1903c72..0000000
--- a/PKGBUILD
+++ /dev/null
@@ -1,44 +0,0 @@
-_pkgname=dwm
-pkgname=$_pkgname-larbs-git
-pkgver=6.2.r1888.0ac09e0
-pkgrel=1
-pkgdesc="Luke's build of dwm"
-url=https://github.com/LukeSmithxyz/dwm
-arch=(i686 x86_64)
-license=(MIT)
-makedepends=(git)
-depends=(freetype2 libx11 libxft)
-optdepends=(
-       'dmenu: program launcher'
-       'st: terminal emulator')
-provides=($_pkgname)
-conflicts=($_pkgname)
-source=(git+https://github.com/LukeSmithxyz/dwm)
-sha256sums=('SKIP')
-
-pkgver() {
-       cd "$_pkgname"
-       echo "$(awk '/^VERSION =/ {print $3}' config.mk)".r"$(git rev-list --count HEAD)"."$(git rev-parse --short HEAD)"
-}
-
-prepare() {
-       cd "$_pkgname"
-       echo "CPPFLAGS+=${CPPFLAGS}" >> config.mk
-       echo "CFLAGS+=${CFLAGS}" >> config.mk
-       echo "LDFLAGS+=${LDFLAGS}" >> config.mk
-       # to use a custom config.h, place it in the package directory
-       if [[ -f ${SRCDEST}/config.h ]]; then
-               cp "${SRCDEST}/config.h" .
-       fi
-}
-
-build() {
-       cd "$_pkgname"
-       make X11INC=/usr/include/X11 X11LIB=/usr/lib/X11
-}
-
-package() {
-       cd "$_pkgname"
-       make PREFIX=/usr DESTDIR="$pkgdir" install
-       install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
-}
diff --git a/README.md b/README.md
deleted file mode 100644 (file)
index cf67303..0000000
--- a/README.md
+++ /dev/null
@@ -1,13 +0,0 @@
-### included patches
-
-- [Clickable statusbar](https://dwm.suckless.org/patches/statuscmd/)
-- Reads [xresources](https://dwm.suckless.org/patches/xresources/) colors/variables (i.e. works with `pywal`, etc.).
-- scratchpad: Accessible with <kbd>mod+shift+enter</kbd>.
-- New layouts: bstack, fibonacci, deck, centered master and more. All bound to keys <kbd>super+(shift+)t/y/u/i</kbd>.
-- True fullscreen (<kbd>super+f</kbd>) and prevents focus shifting.
-- Windows can be made sticky (<kbd>super+s</kbd>).
-- [hide vacant tags](https://dwm.suckless.org/patches/hide_vacant_tags/) hides tags with no windows.
-- [stacker](https://dwm.suckless.org/patches/stacker/): Move windows up the stack manually (<kbd>super-K/J</kbd>).
-- [shiftview](https://dwm.suckless.org/patches/nextprev/): Cycle through tags (<kbd>super+g/;</kbd>).
-- [vanitygaps](https://dwm.suckless.org/patches/vanitygaps/): Gaps allowed across all layouts.
-- [swallow patch](https://dwm.suckless.org/patches/swallow/): if a program run from a terminal would make it inoperable, it temporarily takes its place to save space.
diff --git a/README.txt b/README.txt
new file mode 100644 (file)
index 0000000..b492f11
--- /dev/null
@@ -0,0 +1,67 @@
+> N.B. This copy of dmenu is modified as part of TuCLS (Tucker's configured
+> Linux System)
+>
+> Additional non-source features can be found in the 'extras' directory.
+>
+> included source code patches
+>
+> - Clickable statusbar (https://dwm.suckless.org/patches/statuscmd/)
+> - Reads xresources (https://dwm.suckless.org/patches/xresources/)
+> - scratchpad/drop-down terminal
+> - New layouts: bstack, fibonacci, deck, centered master and more
+> - True fullscreen and prevents focus shifting
+> - Windows can be made sticky
+> - hide vacant tags (https://dwm.suckless.org/patches/hide_vacant_tags/)
+> - Stacker (https://dwm.suckless.org/patches/stacker/)
+> - Shiftview (https://dwm.suckless.org/patches/nextprev/)
+> - Vanitygaps (https://dwm.suckless.org/patches/vanitygaps/)
+> - Swallow patch (https://dwm.suckless.org/patches/swallow/)
+
+dwm - dynamic window manager
+============================
+dwm is an extremely fast, small, and dynamic window manager for X.
+
+
+Requirements
+------------
+In order to build dwm you need the Xlib header files.
+
+
+Installation
+------------
+Edit config.mk to match your local setup (dwm is installed into
+the /usr/local namespace by default).
+
+Afterwards enter the following command to build and install dwm (if
+necessary as root):
+
+    make clean install
+
+
+Running dwm
+-----------
+Add the following line to your .xinitrc to start dwm using startx:
+
+    exec dwm
+
+In order to connect dwm to a specific display, make sure that
+the DISPLAY environment variable is set correctly, e.g.:
+
+    DISPLAY=foo.bar:1 exec dwm
+
+(This will start dwm on display :1 of the host foo.bar.)
+
+In order to display status info in the bar, you can do something
+like this in your .xinitrc:
+
+    while xsetroot -name "`date` `uptime | sed 's/.*,//'`"
+    do
+    sleep 1
+    done &
+    exec dwm
+
+
+Configuration
+-------------
+The configuration of dwm is done by creating a custom config.h
+and (re)compiling the source code.
diff --git a/TuCLS.7 b/TuCLS.7
deleted file mode 100644 (file)
index 1560a00..0000000
--- a/TuCLS.7
+++ /dev/null
@@ -1,171 +0,0 @@
-.TH "TuCLS" 7
-.SH Name
-TuCLS \- Tucker's Configured Linux System
-.IP
-\(bu view this document with
-.B "MOD + ?"
-\~\~
-.RB "("MOD
-is the Super Key or Windows Key)
-.SH Prolepsis
-.P
-.B TuCLS
-is my personal, configured linux system built on
-.I Artix Linux.
-It is built around a set of light-weight, modifiable, and replaceable programs that are easy to customize.
-At the center of this web of programs are the suckless programs
-.MR dwm 1
-(window manager),
-.MR dwmblocks 1
-(status bar),
-.MR st 1
-(terminal emulator), and
-.MR dmenu 1
-(menu), which are incredibly customizable.
-Most other programs are terminal or ncurses programs that are significantly extensible.
-.MR Nvim 1
-is included with a custom configuration including many plugins, lua scripts, and key-bound shell scripts.
-A more complete list of programs is listed at the bottom of this document.
-.P
-I am a musician, composer, music technologist, and educator.
-Thus, the priorities and configurations of the system are built around my work.
-The big tasks here are music engraving \(en handled with
-.MR Lilypond 1 ,
-audio work \(en involving
-.IR "SuperCollider",
-.MR pd 1 ,
-.MR SoX 1 ,
-and more, in addition to compositionally related computation using any number of tools.
-.SH Key Mappings and Bindings
-Any connected keyboard is remapped using the script
-.I remaps
-in
-.BR "~/.local/bin/".
-Two keys are remapped in the process:
-the key between Alt and Ctrl (either windows or command) becomes a Mod key
-and the Capslock key becomes escape when tapped and another Mod key when held.
-Capslock becomes disabled.
-.SS dwm Bindings
-.P
-Windows in dwm are ordered in a 'stack' that can be cycled through and rearranged.
-They are also placed in different tags which can be navigated like alternate desktops.
-(N.B. the key bindings here overwrite those in the
-.MR dwm 1
-man page)
-.TP
-.B Nav
-NB move/resize windows with 'Mod + left/right click'
-.TS
-tab(|) nospaces;
-l l.
-Mod + j/k|move down/up through windows in the stack
-Mod + Space|move selected window to top (or switch second window to top)
-Mod + h/l|diminish/augment width of main window
-Mod + z/x|diminish/augment gaps between windows
-Mod + a|toggle gaps on/off
-Mod + A|reset gaps to default scale
-Mod + Shift + Space|make a window float
-Mod + s|toggle a 'sticky' window that follows you through tags
-Mod + b|toggle status bar
-Mod + v|jump to top window
-.TE
-.
-.TP
-.B Layouts
-.TS
-tab(|) nospaces;
-l l.
-Mod + t|tiling \(en default|[tlng]
-Mod + T|horizontal tiling|[htlng]
-Mod + f|fullscreen selected window|
-Mod + F|floating|[fltg]
-Mod + y|spiral|[sprl]
-Mod + Y|dwindle|[dwdl]
-Mod + u|main on left, others in deck|[ldck]
-Mod + U|deck|[sdck]
-Mod + i|center main|[cntr]
-Mod + I|center, floating main|[fcntr]
-Mod + o/O|decrease/increase main window count|
-Mod + b|show/hide status bar
-.TE
-.
-.TP
-.B Tags
-Tags function like workspaces or alternate desktops.
-.TS
-tab(|) nospaces;
-l l.
-Mod + 1-9|switch tags
-Mod + Shift + 1-9|send current window to a tag
-Mod + Tab|switch to previous tag
-Mod + Left/Right|switch displays
-Mod + Shift + Left/Right|send current window to another display
-.TE
-.
-.TP
-.B Multiple Displays
-.TS
-tab(|) nospaces;
-l l.
-Mod + left/right|navigate to another display
-Mod + Shift + left/right|send current window to another display
-.TE
-.
-.SS System and Program Bindings
-.TP
-.B System
-NB media keys are not mapped, but could be adjusted in source.
-.TS
-tab(|) nospaces;
-l l.
-Mod + backspace|dmenu system functions
-Mod + Q|dmenu system functions
-Mod + -/+|default audio volume
-Mod + M|mute audio
-Mod + F1|dmenu display selection
-Mod + F2|pulsemixer
-Mod + F3|qpwgraph
-Mod + F4|htop
-Mod + F5|dmenu drive mounter
-Mod + F6|dmenu cifs mounter
-Mod + F7|dmenu unmounter
-Mod + F9|dmenu screen select (maim)
-Mod + F10|dmenu screen recording (ffmpeg)
-Mod + F11|open webcam
-Mod + F12|remap keyboard
-Mod + W|Network Manager
-.TE
-.
-.TP
-.B Programs
-.TS
-tab(|) nospaces;
-l l.
-Mod + enter|terminal window
-Mod + shift + enter|drop-down terminal
-Mod + d|dmenu program launcher
-Mod + D|dmenu pass (password manager)
-Mod + S|dmenu stream select (see dmenu scripts)
-Mod + e|neomutt
-Mod + E|abook
-Mod + w|web browser
-Mod + n|notes (see notes)
-Mod + N|newsboat
-Mod + M|ncmpcpp (see music and media)
-.TE
-.
-.TP
-.B Media
-using the programs mpd and mpv
-.TS
-tab(|) nospaces;
-l l.
-Mod + P|pause mpd and end any mpv instance
-Mod + ,|mpd previous track
-Mod + .|mpd next track
-Mod + <|mpd restart track
-Mod + >|mpd repeat
-.TE
-.
-.SH Author
-Tucker Johnson (tucker@newer.systems, https://newer.systems)
index 983551934647be85a9bc1882241d34f489ca2f2c..5856bd73b4c54e2a176fa62523443c831afa2885 100644 (file)
--- a/config.h
+++ b/config.h
@@ -180,7 +180,7 @@ static const Key keys[] = {
        { MODKEY,                           XK_o,                   incnmaster, {.i = +1 } },
        { MODKEY|ShiftMask,             XK_o,               incnmaster, {.i = -1 } },
        { MODKEY,                           XK_p,                       spawn,          {.v = (const char*[]){ "mpc", "toggle", NULL } } },
-       { MODKEY|ShiftMask,             XK_p,                   spawn,          SHCMD("mpc pause; dm-kampv") },
+       { MODKEY|ShiftMask,             XK_p,                   spawn,          SHCMD("mpc pause; killall mpv") },
        { MODKEY,                           XK_bracketleft,     spawn,          {.v = (const char*[]){ "mpc", "seek", "-10", NULL } } },
        { MODKEY|ShiftMask,             XK_bracketleft, spawn,          {.v = (const char*[]){ "mpc", "seek", "-60", NULL } } },
        { MODKEY,                           XK_bracketright,spawn,              {.v = (const char*[]){ "mpc", "seek", "+10", NULL } } },
diff --git a/extras/TuCLS.7 b/extras/TuCLS.7
new file mode 100644 (file)
index 0000000..1560a00
--- /dev/null
@@ -0,0 +1,171 @@
+.TH "TuCLS" 7
+.SH Name
+TuCLS \- Tucker's Configured Linux System
+.IP
+\(bu view this document with
+.B "MOD + ?"
+\~\~
+.RB "("MOD
+is the Super Key or Windows Key)
+.SH Prolepsis
+.P
+.B TuCLS
+is my personal, configured linux system built on
+.I Artix Linux.
+It is built around a set of light-weight, modifiable, and replaceable programs that are easy to customize.
+At the center of this web of programs are the suckless programs
+.MR dwm 1
+(window manager),
+.MR dwmblocks 1
+(status bar),
+.MR st 1
+(terminal emulator), and
+.MR dmenu 1
+(menu), which are incredibly customizable.
+Most other programs are terminal or ncurses programs that are significantly extensible.
+.MR Nvim 1
+is included with a custom configuration including many plugins, lua scripts, and key-bound shell scripts.
+A more complete list of programs is listed at the bottom of this document.
+.P
+I am a musician, composer, music technologist, and educator.
+Thus, the priorities and configurations of the system are built around my work.
+The big tasks here are music engraving \(en handled with
+.MR Lilypond 1 ,
+audio work \(en involving
+.IR "SuperCollider",
+.MR pd 1 ,
+.MR SoX 1 ,
+and more, in addition to compositionally related computation using any number of tools.
+.SH Key Mappings and Bindings
+Any connected keyboard is remapped using the script
+.I remaps
+in
+.BR "~/.local/bin/".
+Two keys are remapped in the process:
+the key between Alt and Ctrl (either windows or command) becomes a Mod key
+and the Capslock key becomes escape when tapped and another Mod key when held.
+Capslock becomes disabled.
+.SS dwm Bindings
+.P
+Windows in dwm are ordered in a 'stack' that can be cycled through and rearranged.
+They are also placed in different tags which can be navigated like alternate desktops.
+(N.B. the key bindings here overwrite those in the
+.MR dwm 1
+man page)
+.TP
+.B Nav
+NB move/resize windows with 'Mod + left/right click'
+.TS
+tab(|) nospaces;
+l l.
+Mod + j/k|move down/up through windows in the stack
+Mod + Space|move selected window to top (or switch second window to top)
+Mod + h/l|diminish/augment width of main window
+Mod + z/x|diminish/augment gaps between windows
+Mod + a|toggle gaps on/off
+Mod + A|reset gaps to default scale
+Mod + Shift + Space|make a window float
+Mod + s|toggle a 'sticky' window that follows you through tags
+Mod + b|toggle status bar
+Mod + v|jump to top window
+.TE
+.
+.TP
+.B Layouts
+.TS
+tab(|) nospaces;
+l l.
+Mod + t|tiling \(en default|[tlng]
+Mod + T|horizontal tiling|[htlng]
+Mod + f|fullscreen selected window|
+Mod + F|floating|[fltg]
+Mod + y|spiral|[sprl]
+Mod + Y|dwindle|[dwdl]
+Mod + u|main on left, others in deck|[ldck]
+Mod + U|deck|[sdck]
+Mod + i|center main|[cntr]
+Mod + I|center, floating main|[fcntr]
+Mod + o/O|decrease/increase main window count|
+Mod + b|show/hide status bar
+.TE
+.
+.TP
+.B Tags
+Tags function like workspaces or alternate desktops.
+.TS
+tab(|) nospaces;
+l l.
+Mod + 1-9|switch tags
+Mod + Shift + 1-9|send current window to a tag
+Mod + Tab|switch to previous tag
+Mod + Left/Right|switch displays
+Mod + Shift + Left/Right|send current window to another display
+.TE
+.
+.TP
+.B Multiple Displays
+.TS
+tab(|) nospaces;
+l l.
+Mod + left/right|navigate to another display
+Mod + Shift + left/right|send current window to another display
+.TE
+.
+.SS System and Program Bindings
+.TP
+.B System
+NB media keys are not mapped, but could be adjusted in source.
+.TS
+tab(|) nospaces;
+l l.
+Mod + backspace|dmenu system functions
+Mod + Q|dmenu system functions
+Mod + -/+|default audio volume
+Mod + M|mute audio
+Mod + F1|dmenu display selection
+Mod + F2|pulsemixer
+Mod + F3|qpwgraph
+Mod + F4|htop
+Mod + F5|dmenu drive mounter
+Mod + F6|dmenu cifs mounter
+Mod + F7|dmenu unmounter
+Mod + F9|dmenu screen select (maim)
+Mod + F10|dmenu screen recording (ffmpeg)
+Mod + F11|open webcam
+Mod + F12|remap keyboard
+Mod + W|Network Manager
+.TE
+.
+.TP
+.B Programs
+.TS
+tab(|) nospaces;
+l l.
+Mod + enter|terminal window
+Mod + shift + enter|drop-down terminal
+Mod + d|dmenu program launcher
+Mod + D|dmenu pass (password manager)
+Mod + S|dmenu stream select (see dmenu scripts)
+Mod + e|neomutt
+Mod + E|abook
+Mod + w|web browser
+Mod + n|notes (see notes)
+Mod + N|newsboat
+Mod + M|ncmpcpp (see music and media)
+.TE
+.
+.TP
+.B Media
+using the programs mpd and mpv
+.TS
+tab(|) nospaces;
+l l.
+Mod + P|pause mpd and end any mpv instance
+Mod + ,|mpd previous track
+Mod + .|mpd next track
+Mod + <|mpd restart track
+Mod + >|mpd repeat
+.TE
+.
+.SH Author
+Tucker Johnson (tucker@newer.systems, https://newer.systems)
diff --git a/extras/scripts/remapd b/extras/scripts/remapd
new file mode 100755 (executable)
index 0000000..9d48e60
--- /dev/null
@@ -0,0 +1,13 @@
+#!/bin/bash
+
+# Rerun the remaps script whenever a new input device is added.
+
+# Tucker Johnson (git.newer.systems) (tucker@newer.systems)
+
+# This script is to add out-of the box features to my dmenu build. If you want
+# to make changes, make them in the source directory and reinstall.
+
+while :; do
+       remaps
+       grep -qP -m1 '[^un]bind.+\/[^:]+\(usb\)' <(udevadm monitor -u -t seat -s input -s usb)
+done
diff --git a/extras/scripts/remaps b/extras/scripts/remaps
new file mode 100755 (executable)
index 0000000..5dc98df
--- /dev/null
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+# This script is called on startup to remap keys.
+
+# Tucker Johnson (git.newer.systems) (tucker@newer.systems)
+
+# This script is to add out-of the box features to my dmenu build. If you want
+# to make changes, make them in the source directory and reinstall.
+
+xset r rate 300 50
+
+setxkbmap -option caps:super,altwin:menu_win
+
+killall xcape 2>/dev/null ; xcape -e 'Super_L=Escape'
+
+xset -q | grep -q "Caps Lock:\s*on" && xdotool key Caps_Lock
diff --git a/extras/scripts/setbg b/extras/scripts/setbg
new file mode 100755 (executable)
index 0000000..db8a908
--- /dev/null
@@ -0,0 +1,19 @@
+#!/bin/sh
+
+
+# Location of link to wallpaper link.
+background="${XDG_DATA_HOME:-$HOME/.local/share}/bg"
+
+while getopts "s" o; do case "${o}" in
+       s) silent='1' ;;
+esac done
+
+shift $((OPTIND - 1))
+
+newimage="$(readlink -f "$1")" &&
+case "$(file --mime-type -b "$newimage")" in
+       image/* ) cp -f "$newimage" "$background" && [ -z "$silent" ] && notify-send -i "$background" "Changing wallpaper..." ;;
+       *) [ -z "$silent" ] && notify-send "Error" "Not a valid image" ; exit 1;;
+esac
+
+xwallpaper --zoom "$background"
diff --git a/extras/ttymaps.kmap b/extras/ttymaps.kmap
new file mode 100644 (file)
index 0000000..51a7042
--- /dev/null
@@ -0,0 +1,2 @@
+keycode 1 = Caps_Lock
+keycode 58 = Escape