____ 
   / ___)  ~~~~~~~~~~~ Functional desktop configuration for OpenBSD ~~~~~~~~~~~
 _ \___ \  ~~~~~~~~~~~ by the standards of the suckless philosophy. ~~~~~~~~~~~
(_)(____/  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ (OpenBSD-current 7.2)

Source Code | Tree | README | LICENSE | Download

- - -----------------------------------+----------------------------------- - -
                                       |                ~~        .
## Fundamentals                        |  ## Author             _       o
                                       | .                     (_O
- keyboard-driven workflow             |    Mattia Chiozzi         _ | _   O
- the less GUI, the better             |   <mattia@chiozzi.cc>    (o)-(o)
- functionality over prettiness        |                         -( .-. )-
- 100% shellcheck'ed code              |   o   ((         ))       \`-'/   ~~
- true to Unix principles              |       '))      '/          `-'
                                       |   ', ; ', ; ', ; ', ; ', ; ', ', ; ',
- - -----------------------------------+----------------------------------- - -
                                       |
## Installation & Update               |  ## Before You Install
                                       |
Get OpenBSD >= 7.2 and make(1) as      |  The installer will symlink files to
unprivileged user. Internet required.  |  the "dots" directory, so you CANNOT 
                                       |  delete it afterwards! Move it as an
 * You may go AFK in the meantime      |  hidden file inside $HOME (~/.dots),
 * To update, run make(1) once again   |  so that it doesn't annoy over time.
                                       |
- - -----------------------------------+----------------------------------- - -

## Software Choices

    +----------------------+----------------------+----------------------+
    |         What         |          CLI         |         GUI          |
    +----------------------+----------------------+----------------------+
      |  window manager    |  tmux                |  cwm               |
      |  terminal emulator |  -                   |  st                |
      |  file explorer     |  cd, ls, tree        |  xfiles            |
      |  www browser       |  lynx                |  surf + tabbed     |
      |  email client      |  mutt                |  -                 |
      |  image viewer      |  -                   |  nsxiv             |
      |  media player      |  -                   |  mpv               |
      |  pdf viewer        |  -                   |  mupdf             |
      |  office            |  vi, sc, groff       |  -                 |
      |  media converter   |  ffmpeg              |  -                 |
      |  painting          |  imagemagick         |  azpainter         |
      |  contacts          |  abook               |  -                 |
      |  irc client        |  catgirl             |  -                 |
      |  torrent client    |  aria2c              |  -                 |
      |  authenticator     |  oathtool            |  -                 |
      |  notifications     |  -                   |  xnotify           |
      |  font family       |  -                   |  iosevka           |
      +--------------------+----------------------+--------------------+
                   (see `3-packages` for the complete list)

- - ----------------------------------------------------------------------- - -

## Main Keybinds

Caps Lock is binded to ESC for easier vi(1) navigation.
Tmux prefix is CTRL + a, which is easier to reach with one hand.
See ~/.xsession and ~/.cwmrc for the complete list of keybinds.

+---+---+---+---+---+                     +---+---+---+
| Q | W | E | R | T |  <-- programs       | I | O | P |  <-- misc
+-+-+---+---+---+-+-+-+                   +---+---+---+
  | A | S | D | F | G |  <-- menus
  +---+---+---+---+---+

win + left click  = drag window        win + I = peerflix      (dmenu_peerflix)
win + right click = resize window      win + O = authenticator (xotp)
win + space bar   = fullscreen         win + P = emoji picker  (dmenu_emoji)
win + shift + TAB = list windows

win + Q = RSS reader      win + A = search youtube (curl + nsxiv)
win + W = xfiles          win + S = web browser
win + E = calculator      win + D = run programs
win + R = pictures        win + F = open files
win + T = resources       win + G = scan and connect to Wi-Fi access points

- - ------------------------------+---------------------------------------- - -
                                  |
## Color Palette                  |   ## Surf Browser Configuration
                                  |
Color      Normal     Bright      |    - use duckduckgo lite with custom CSS
-----------------------------     |    - GTK dark theme (~/.config/gtk-3.0)
black      #000000    #7f7f7f     |    - spawn new windows into tabbed(1)
red        #cd0000    #ff0000     |    - comply with XDG directory spec
green      #00cd00    #00ff00     |    - discard cookies on close
yellow     #cdcd00    #ffff00     |    - notify finished downloads
blue       #0000ee    #5c5cff     |    - custom patches + playexternal patch
magenta    #cd00cd    #ff00ff     |    - JavaScript disabled by default
cyan       #00cdcd    #00ffff     |    - save and restore open tabs
white      #ebebeb    #ffffff     |
                                  |
- - ------------------------------+---------------------------------------- - -

## Manual Pages

bat(1)- battery-friendly battery indicator
gitfetch(1)- programmatically compile programs from source
hostsfetch(1)- block ads at the DNS level
motd(1)- print the message of the day
yt(1)- simple YouTube client written in sh
gitfetch.conf(5)- gitfetch configuration file
hostsfetch.conf(5)- hostsfetch configuration file
about-surf(7)- information about surf(1) configuration
dots(7)- suckless desktop configuration for OpenBSD
- - ----------------------------------------------------------------------- - - ## Screenshots (slightly outdated)
- - ----------------------------------------------------------------------- - - ## Read Also
why-vi.rocks- why vi rocks
why-openbsd.rocks- why OpenBSD rocks
useplaintext.email- use plaintext email
nosystemd.org- no systemd
openbsdjumpstart.org- OpenBSD jumpstart
suckless.org- software that sucks less
awesome-openbsd- awesome OpenBSD resources



⚠️ ⚠️ Work in progress! ⚠️ ⚠️