summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xconfig-herbstluftwm-autostart.org324
-rwxr-xr-xherbstluftwm-autostart.org352
2 files changed, 352 insertions, 324 deletions
diff --git a/config-herbstluftwm-autostart.org b/config-herbstluftwm-autostart.org
deleted file mode 100755
index 618228b..0000000
--- a/config-herbstluftwm-autostart.org
+++ /dev/null
@@ -1,324 +0,0 @@
-# -*- mode: org; -*-
-
-#+TITLE: {{{hl}}} configuration file
-#+AUTHOR: Marius Peter
-#+DATE: <2021-08-01 Sun>
-
-#+PROPERTY: header-args :tangle ~/.config/herbstluftwm/autostart :shebang "#!/usr/bin/env bash"
-
-#+SETUPFILE: ~/.emacs.d/templates/documents/gnu-default.setup
-#+INCLUDE: ~/.emacs.d/templates/documents/default-title.org
-
-#+MACRO: hl Herbstluftwm
-
-* Introduction
-
-{{{hl}}} is a manual tiling window manager. It has the particularity
-of being configured via the ~herbstclient~ program.
-
-#+begin_center
-\Huge\textbf{Herbstluft}\\
-\normalsize\textit{autumn air}
-#+end_center
-
-* Early setup
-
-** Definitions
-
-This is my literate configuration for Herbstluftwm.
-
-#+BEGIN_SRC shell
- hc() {
- herbstclient "$@"
- }
-#+END_SRC
-
-Choice of Modkey. Mod1 is Alt, Mod4 is Super.
-
-#+BEGIN_SRC shell
- Mod=Mod4
-#+END_SRC
-
-** ~Plank~ dock
-
-#+BEGIN_SRC shell
- killall plank
- plank &
-#+END_SRC
-
-** TODO Basic
-
-We make {{{hl}}} execute code associated with the ~reload~ hook.
-
-#+BEGIN_SRC shell
- hc emit_hook reload
-#+END_SRC
-
-We set the color of the default window bar.
-
-#+BEGIN_SRC shell
- xsetroot -solid '#5A8E3A'
-#+END_SRC
-
-We remove all existing keybindings.
-
-#+BEGIN_SRC shell
- hc keyunbind --all
-#+END_SRC
-
-* keybindings
-
-If you have a super key you will be much happier with Mod set to Mod4.
-
-** Basic
-
-#+BEGIN_SRC shell
-hc keybind $Mod-d spawn dmenu_run
-
- hc keybind $Mod-Shift-q quit
- hc keybind $Mod-Shift-r reload
- hc keybind $Mod-Shift-c close
-#+END_SRC
-
-** Spawn a terminal
-
-We use our $TERMINAL with ~st~ as fallback.
-
-#+BEGIN_SRC shell
- hc keybind $Mod-Return spawn "${TERMINAL:-st}"
-#+END_SRC
-
-** Movement
-
-Basic movement in tiling and floating mode focusing clients.
-
-#+BEGIN_SRC shell
-hc keybind $Mod-Left focus left
-hc keybind $Mod-Down focus down
-hc keybind $Mod-Up focus up
-hc keybind $Mod-Right focus right
-hc keybind $Mod-h focus left
-hc keybind $Mod-j focus down
-hc keybind $Mod-k focus up
-hc keybind $Mod-l focus right
-#+END_SRC
-
-Moving clients in tiling and floating mode.
-
-#+BEGIN_SRC shell
-hc keybind $Mod-Shift-Left shift left
-hc keybind $Mod-Shift-Down shift down
-hc keybind $Mod-Shift-Up shift up
-hc keybind $Mod-Shift-Right shift right
-hc keybind $Mod-Shift-h shift left
-hc keybind $Mod-Shift-j shift down
-hc keybind $Mod-Shift-k shift up
-hc keybind $Mod-Shift-l shift right
-#+END_SRC
-
-** Splitting frames
-
-Create an empty frame at the specified direction.
-
-#+BEGIN_SRC shell
- hc keybind $Mod-u split bottom 0.5
- hc keybind $Mod-o split left 0.5
-#+END_SRC
-
-We let the current frame explode into subframes.
-
-#+BEGIN_SRC shell
- hc keybind $Mod-Control-space split explode
-#+END_SRC
-
-** Resizing frames and clients
-
-Resizing frames and floating clients.
-
-#+BEGIN_SRC shell
-resizestep=0.02
-hc keybind $Mod-Control-h resize left +$resizestep
-hc keybind $Mod-Control-j resize down +$resizestep
-hc keybind $Mod-Control-k resize up +$resizestep
-hc keybind $Mod-Control-l resize right +$resizestep
-hc keybind $Mod-Control-Left resize left +$resizestep
-hc keybind $Mod-Control-Down resize down +$resizestep
-hc keybind $Mod-Control-Up resize up +$resizestep
-hc keybind $Mod-Control-Right resize right +$resizestep
-#+END_SRC
-
-** Tags
-
-*** Basic definitions
-
-#+BEGIN_SRC shell
-# tags
-tag_names=( {1..9} )
-tag_keys=( {1..9} 0 )
-
-hc rename default "${tag_names[0]}" || true
-for i in "${!tag_names[@]}" ; do
- hc add "${tag_names[$i]}"
- key="${tag_keys[$i]}"
- if ! [ -z "$key" ] ; then
- hc keybind "$Mod-$key" use_index "$i"
- hc keybind "$Mod-Shift-$key" move_index "$i"
- fi
-done
-#+END_SRC
-
-*** Cycling
-
-#+BEGIN_SRC shell
-# cycle through tags
-hc keybind $Mod-period use_index +1 --skip-visible
-hc keybind $Mod-comma use_index -1 --skip-visible
-
-#+END_SRC
-
-*** Layouting
-
-#+BEGIN_SRC shell
- hc keybind $Mod-r remove
- hc keybind $Mod-s floating toggle # Schwebend = floating!
- hc keybind $Mod-f fullscreen toggle
- hc keybind $Mod-Shift-f set_attr clients.focus.floating toggle
- hc keybind $Mod-Shift-m set_attr clients.focus.minimized true
- hc keybind $Mod-Control-m jumpto last-minimized
- hc keybind $Mod-p pseudotile toggle
- # The following cycles through the available layouts within a frame, but skips
- # layouts, if the layout change wouldn't affect the actual window positions.
- # I.e. if there are two windows within a frame, the grid layout is skipped.
- hc keybind $Mod-space \
- or , and . compare tags.focus.curframe_wcount = 2 \
- . cycle_layout +1 vertical horizontal max vertical grid \
- , cycle_layout +1
-#+END_SRC
-
-*** Mouse bindings
-
-#+BEGIN_SRC shell
-# mouse
-hc mouseunbind --all
-hc mousebind $Mod-Button1 move
-hc mousebind $Mod-Button2 zoom
-hc mousebind $Mod-Button3 resize
-#+END_SRC
-
-*** Cycle monitors
-
-#+BEGIN_SRC shell
-# focus
-hc keybind $Mod-BackSpace cycle_monitor
-hc keybind $Mod-Tab cycle_all +1
-hc keybind $Mod-Shift-Tab cycle_all -1
-hc keybind $Mod-c cycle
-hc keybind $Mod-i jumpto urgent
-#+END_SRC
-
-* Theme
-
-** Basic
-
-#+BEGIN_SRC shell
- hc attr theme.tiling.reset 1
- hc attr theme.floating.reset 1
-#+END_SRC
-
-** Frames
-
-#+BEGIN_SRC shell
- hc set frame_border_active_color '#222222cc'
- hc set frame_border_normal_color '#101010cc'
- hc set frame_bg_normal_color '#565656aa'
- hc set frame_bg_active_color '#345F0Caa'
- hc set frame_border_width 1
- hc set always_show_frame on
- hc set frame_bg_transparent on
- hc set frame_transparent_width 5
- hc set frame_gap 4
-#+END_SRC
-
-** Windows
-
-#+BEGIN_SRC shell
-hc attr theme.title_height 24
-hc attr theme.title_font 'Hack:pixelsize=20' # example using Xft
-# hc attr theme.title_font '-*-fixed-medium-r-*-*-13-*-*-*-*-*-*-*'
-hc attr theme.padding_top 4 # space below the title's baseline (i.e. text depth)
-hc attr theme.active.color '#345F0Cef'
-hc attr theme.title_color '#ffffff'
-hc attr theme.normal.color '#323232dd'
-hc attr theme.urgent.color '#7811A1dd'
-hc attr theme.normal.title_color '#898989'
-hc attr theme.inner_width 1
-hc attr theme.inner_color black
-hc attr theme.border_width 3
-hc attr theme.floating.border_width 12
-hc attr theme.floating.outer_width 1
-hc attr theme.floating.outer_color black
-hc attr theme.active.inner_color '#789161'
-hc attr theme.urgent.inner_color '#9A65B0'
-hc attr theme.normal.inner_color '#606060'
-# copy inner color to outer_color
-for state in active urgent normal ; do
- hc substitute C theme.${state}.inner_color \
- attr theme.${state}.outer_color C
-done
-hc attr theme.active.outer_width 1
-hc attr theme.background_color '#141414'
-#+END_SRC
-
-** Window appearance
-
-#+BEGIN_SRC shell
- hc set window_gap 24
- hc set frame_padding 0
- hc set smart_window_surroundings on
- hc set smart_frame_surroundings on
- hc set mouse_recenter_gap 0
-#+END_SRC
-
-** Rules
-
-#+BEGIN_SRC shell
-hc unrule -F
-#hc rule class=XTerm tag=3 # move all xterms to tag 3
-hc rule focus=on # normally focus new clients
-hc rule floatplacement=smart
-#hc rule focus=off # normally do not focus new clients
-# give focus to most common terminals
-#hc rule class~'(.*[Rr]xvt.*|.*[Tt]erm|Konsole)' focus=on
-hc rule windowtype~'_NET_WM_WINDOW_TYPE_(DIALOG|UTILITY|SPLASH)' floating=on
-hc rule windowtype='_NET_WM_WINDOW_TYPE_DIALOG' focus=on
-hc rule windowtype~'_NET_WM_WINDOW_TYPE_(NOTIFICATION|DOCK|DESKTOP)' manage=off
-
-hc set tree_style '╾│ ├└╼─┐'
-
-#+END_SRC
-
-** Unlock monitors
-
-#+BEGIN_SRC shell
-hc unlock
-#+END_SRC
-
-** Multi-monitor setup
-
-#+BEGIN_SRC shell
-# do multi monitor setup here, e.g.:
-# hc set_monitors 1280x1024+0+0 1280x1024+1280+0
-# or simply:
-# hc detect_monitors
-#+END_SRC
-
-** Panel
-
-#+BEGIN_SRC shell
- panel=~/.config/herbstluftwm/panel.sh
- [ -x "$panel" ] || panel=/etc/xdg/herbstluftwm/panel.sh
- for monitor in $(hc list_monitors | cut -d: -f1) ; do
- # start it on each monitor
- "$panel" "$monitor" &
- done
-#+END_SRC
diff --git a/herbstluftwm-autostart.org b/herbstluftwm-autostart.org
new file mode 100755
index 0000000..e5be784
--- /dev/null
+++ b/herbstluftwm-autostart.org
@@ -0,0 +1,352 @@
+# -*- mode: org; -*-
+
+#+TITLE: {{{hl}}} configuration file
+#+AUTHOR: Marius Peter
+#+DATE: <2021-08-01 Sun>
+
+#+PROPERTY: header-args :tangle "~/.config/herbstluftwm/autostart"
+#+PROPERTY: header-args+ :shebang "#!/usr/bin/env bash"
+
+#+SETUPFILE: ~/.emacs.d/templates/documents/gnu-default.setup
+#+INCLUDE: ~/.emacs.d/templates/documents/default-title.org
+
+#+MACRO: hl Herbstluftwm
+
+* Introduction
+
+This is my literate configuration for {{{hl}}}. It is a manual tiling
+window manager and has the particularity of being configured via the
+~herbstclient~ program.
+
+#+begin_center
+\Huge\textbf{Herbstluft}\\
+\normalsize\textit{autumn air}
+#+end_center
+
+
+* Early setup
+
+
+** Definitions
+
+#+BEGIN_SRC shell
+ hc() {
+ herbstclient "$@"
+ }
+#+END_SRC
+
+Choice of Modkey. Mod1 is Alt, Mod4 is Super.
+
+#+BEGIN_SRC shell
+ Mod=Mod4
+#+END_SRC
+
+
+** ~Plank~ dock
+
+#+BEGIN_SRC shell
+ killall plank
+ plank &
+#+END_SRC
+
+
+** TODO Basic
+
+We make {{{hl}}} execute code associated with the ~reload~ hook.
+
+#+BEGIN_SRC shell
+ hc emit_hook reload
+#+END_SRC
+
+We set the color of the default window bar.
+
+#+BEGIN_SRC shell
+ xsetroot -solid '#5A8E3A'
+#+END_SRC
+
+We remove all existing keybindings.
+
+#+BEGIN_SRC shell
+ hc keyunbind --all
+#+END_SRC
+
+
+* keybindings
+
+
+** Open programs interactively
+
+#+BEGIN_SRC shell
+ hc keybind $Mod-d spawn dmenu_run
+#+END_SRC
+
+
+** Basic interaction with {{{hl}}}
+
+#+BEGIN_SRC shell
+ hc keybind $Mod-Shift-q quit
+ hc keybind $Mod-Shift-r reload
+ hc keybind $Mod-Shift-c close
+#+END_SRC
+
+** Spawn a terminal
+
+We use our $TERMINAL with ~st~ as fallback.
+
+#+BEGIN_SRC shell
+ hc keybind $Mod-Return spawn "${TERMINAL:-st}"
+#+END_SRC
+
+
+** Movement
+
+Basic movement in tiling and floating mode focusing clients.
+
+#+BEGIN_SRC shell
+ hc keybind $Mod-Left focus left
+ hc keybind $Mod-Down focus down
+ hc keybind $Mod-Up focus up
+ hc keybind $Mod-Right focus right
+ hc keybind $Mod-h focus left
+ hc keybind $Mod-j focus down
+ hc keybind $Mod-k focus up
+ hc keybind $Mod-l focus right
+#+END_SRC
+
+Moving clients in tiling and floating mode.
+
+#+BEGIN_SRC shell
+ hc keybind $Mod-Shift-Left shift left
+ hc keybind $Mod-Shift-Down shift down
+ hc keybind $Mod-Shift-Up shift up
+ hc keybind $Mod-Shift-Right shift right
+ hc keybind $Mod-Shift-h shift left
+ hc keybind $Mod-Shift-j shift down
+ hc keybind $Mod-Shift-k shift up
+ hc keybind $Mod-Shift-l shift right
+#+END_SRC
+
+
+** Splitting frames
+
+Create an empty frame at the specified direction.
+
+#+BEGIN_SRC shell
+ hc keybind $Mod-u split bottom 0.5
+ hc keybind $Mod-o split left 0.5
+#+END_SRC
+
+We let the current frame explode into subframes.
+
+#+BEGIN_SRC shell
+ hc keybind $Mod-Control-space split explode
+#+END_SRC
+
+
+** Resizing frames and clients
+
+Resizing frames and floating clients.
+
+#+BEGIN_SRC shell
+ resizestep=0.02
+ hc keybind $Mod-Control-h resize left +$resizestep
+ hc keybind $Mod-Control-j resize down +$resizestep
+ hc keybind $Mod-Control-k resize up +$resizestep
+ hc keybind $Mod-Control-l resize right +$resizestep
+ hc keybind $Mod-Control-Left resize left +$resizestep
+ hc keybind $Mod-Control-Down resize down +$resizestep
+ hc keybind $Mod-Control-Up resize up +$resizestep
+ hc keybind $Mod-Control-Right resize right +$resizestep
+#+END_SRC
+
+
+
+** Tags
+
+
+*** Basic definitions
+
+#+BEGIN_SRC shell
+ # tags
+ tag_names=( {1..9} )
+ tag_keys=( {1..9} 0 )
+
+ hc rename default "${tag_names[0]}" || true
+ for i in "${!tag_names[@]}" ; do
+ hc add "${tag_names[$i]}"
+ key="${tag_keys[$i]}"
+ if ! [ -z "$key" ] ; then
+ hc keybind "$Mod-$key" use_index "$i"
+ hc keybind "$Mod-Shift-$key" move_index "$i"
+ fi
+ done
+#+END_SRC
+
+
+*** Cycling
+
+#+BEGIN_SRC shell
+ # cycle through tags
+ hc keybind $Mod-period use_index +1 --skip-visible
+ hc keybind $Mod-comma use_index -1 --skip-visible
+
+#+END_SRC
+
+
+*** Layouting
+
+#+BEGIN_SRC shell
+ hc keybind $Mod-r remove
+ hc keybind $Mod-s floating toggle # Schwebend = floating!
+ hc keybind $Mod-f fullscreen toggle
+ hc keybind $Mod-Shift-f set_attr clients.focus.floating toggle
+ hc keybind $Mod-Shift-m set_attr clients.focus.minimized true
+ hc keybind $Mod-Control-m jumpto last-minimized
+ hc keybind $Mod-p pseudotile toggle
+ # The following cycles through the available layouts within a frame, but skips
+ # layouts, if the layout change wouldn't affect the actual window positions.
+ # I.e. if there are two windows within a frame, the grid layout is skipped.
+ hc keybind $Mod-space \
+ or , and . compare tags.focus.curframe_wcount = 2 \
+ . cycle_layout +1 vertical horizontal max vertical grid \
+ , cycle_layout +1
+#+END_SRC
+
+
+*** Mouse bindings
+
+#+BEGIN_SRC shell
+ # mouse
+ hc mouseunbind --all
+ hc mousebind $Mod-Button1 move
+ hc mousebind $Mod-Button2 zoom
+ hc mousebind $Mod-Button3 resize
+#+END_SRC
+
+
+*** Cycle monitors
+
+#+BEGIN_SRC shell
+ # focus
+ hc keybind $Mod-BackSpace cycle_monitor
+ hc keybind $Mod-Tab cycle_all +1
+ hc keybind $Mod-Shift-Tab cycle_all -1
+ hc keybind $Mod-c cycle
+ hc keybind $Mod-i jumpto urgent
+#+END_SRC
+
+
+* Theme
+
+
+** Basic
+
+#+BEGIN_SRC shell
+ hc attr theme.tiling.reset 1
+ hc attr theme.floating.reset 1
+#+END_SRC
+
+
+** Frames
+
+#+BEGIN_SRC shell
+ hc set frame_border_active_color '#222222cc'
+ hc set frame_border_normal_color '#101010cc'
+ hc set frame_bg_normal_color '#565656aa'
+ hc set frame_bg_active_color '#345F0Caa'
+ hc set frame_border_width 1
+ hc set always_show_frame on
+ hc set frame_bg_transparent on
+ hc set frame_transparent_width 5
+ hc set frame_gap 4
+#+END_SRC
+
+
+** Windows
+
+#+BEGIN_SRC shell
+ hc attr theme.title_height 24
+ hc attr theme.title_font 'Hack:pixelsize=20' # example using Xft
+ # hc attr theme.title_font '-*-fixed-medium-r-*-*-13-*-*-*-*-*-*-*'
+ hc attr theme.padding_top 4 # space below the title's baseline (i.e. text depth)
+ hc attr theme.active.color '#345F0Cef'
+ hc attr theme.title_color '#ffffff'
+ hc attr theme.normal.color '#323232dd'
+ hc attr theme.urgent.color '#7811A1dd'
+ hc attr theme.normal.title_color '#898989'
+ hc attr theme.inner_width 1
+ hc attr theme.inner_color black
+ hc attr theme.border_width 3
+ hc attr theme.floating.border_width 12
+ hc attr theme.floating.outer_width 1
+ hc attr theme.floating.outer_color black
+ hc attr theme.active.inner_color '#789161'
+ hc attr theme.urgent.inner_color '#9A65B0'
+ hc attr theme.normal.inner_color '#606060'
+ # copy inner color to outer_color
+ for state in active urgent normal ; do
+ hc substitute C theme.${state}.inner_color \
+ attr theme.${state}.outer_color C
+ done
+ hc attr theme.active.outer_width 1
+ hc attr theme.background_color '#141414'
+#+END_SRC
+
+
+** Window appearance
+
+#+BEGIN_SRC shell
+ hc set window_gap 24
+ hc set frame_padding 0
+ hc set smart_window_surroundings on
+ hc set smart_frame_surroundings on
+ hc set mouse_recenter_gap 0
+#+END_SRC
+
+
+** Rules
+
+#+BEGIN_SRC shell
+ hc unrule -F
+ #hc rule class=XTerm tag=3 # move all xterms to tag 3
+ hc rule focus=on # normally focus new clients
+ hc rule floatplacement=smart
+ #hc rule focus=off # normally do not focus new clients
+ # give focus to most common terminals
+ #hc rule class~'(.*[Rr]xvt.*|.*[Tt]erm|Konsole)' focus=on
+ hc rule windowtype~'_NET_WM_WINDOW_TYPE_(DIALOG|UTILITY|SPLASH)' floating=on
+ hc rule windowtype='_NET_WM_WINDOW_TYPE_DIALOG' focus=on
+ hc rule windowtype~'_NET_WM_WINDOW_TYPE_(NOTIFICATION|DOCK|DESKTOP)' manage=off
+
+ hc set tree_style '╾│ ├└╼─┐'
+
+#+END_SRC
+
+
+** Unlock monitors
+
+#+BEGIN_SRC shell
+ hc unlock
+#+END_SRC
+
+
+** Multi-monitor setup
+
+#+BEGIN_SRC shell
+ # do multi monitor setup here, e.g.:
+ # hc set_monitors 1280x1024+0+0 1280x1024+1280+0
+ # or simply:
+ # hc detect_monitors
+#+END_SRC
+
+
+** Panel
+
+#+BEGIN_SRC shell
+ panel=~/.config/herbstluftwm/panel.sh
+ [ -x "$panel" ] || panel=/etc/xdg/herbstluftwm/panel.sh
+ for monitor in $(hc list_monitors | cut -d: -f1) ; do
+ # start it on each monitor
+ "$panel" "$monitor" &
+ done
+#+END_SRC
Copyright 2019--2024 Marius PETER