Table of Contents

Home DTOS Knowledge Base Community Contribute Support DT’s Work

About DTOS

DTOS scrot

Figure 1: DTOS Scrot

DTOS is the name that I have chosen for my post-installation script that will deploy my Xmonad config, my Emacs config, as well as associated programs that are needed to create a proper “desktop” experience. DTOS should work on Arch Linux or any Arch-based distribution. The programs that will be installed include Xmonad, Xmobar, Doom Emacs, Fish and other programs needed to recreate DT’s XMonad desktop.

Installing DTOS

Installation instructions

To install DTOS, you need to clone the DTOS GitLab repository and run the dtos script.

git clone https://gitlab.com/dwt1/dtos
cd dtos/

Where is the DTOS source code?

The source code for dtos can be found in the following GitLab repos:

  • dtos - The DTOS installation script
  • dtos-core-repo - The DTOS core repository of software (prebuilt binaries)
  • dtos-pkgbuild - The PKGBUILDs used to create the binary packages in dtos-core-repo
  • dtos-configs - Config files used by most of the dtos-* packages

How does DTOS handle updates?

Simply update your system as you would any Arch-based system (sudo pacman -Syu). Note that all of the dtos-* packages are just config files that get placed in /etc/dtos. They are not placed in $HOME automatically because we don’t want to overwrite any existing configs. So it is up to you to copy any new configs in /etc/dtos over to your $HOME if you want them.

For example, if you see that dtos-bash had an update and you want to use the new config, then after the package has been updated, you must copy the .bashrc found in /etc/dtos over to your $HOME. If dtos-fish gets updated and you want the new config, then copy over config.fish found in /etc/dtos over to $HOME.


The following tables of keybindings are just a few of the most useful ones to know to get started. To list all possible keybindings (especially in Doom Emacs) would be an enormous undertaking, and I doubt anyone would find such a massive document useful, so I have tried to keep these keybindings lists to a user-friendly size.

Window manager keybindings

MODKEY + RETURN opens terminal (alacritty)
MODKEY + SHIFT + RETURN opens run launcher (dmenu)
MODKEY + TAB rotates through the available layouts
MODKEY + SPACE toggles fullscreen on/off (useful for watching videos)
MODKEY + SHIFT + c closes window with focus
MODKEY + SHIFT + r restarts xmonad
MODKEY + SHIFT + q quits xmonad
MODKEY + 1-9 switch focus to workspace (1-9)
MODKEY + SHIFT + 1-9 send focused window to workspace (1-9)
MODKEY + j windows focus down (switches focus between windows in stack)
MODKEY + k windows focus up (switches focus between windows in stack)
MODKEY + SHIFT + j windows swap down (swap windows in the stack)
MODKEY + SHIFT + k windows swap up (swap the windows in the stack)
MODKEY + h shrink window (decreases window width)
MODKEY + l expand window (increases window width)
MODKEY + w switches focus to monitor 1
MODKEY + e switches focus to monitor 2
MODKEY + r switches focus to monitor 3
MODKEY + period switch focus to next monitor
MODKEY + comma switch focus to prev monitor
MODKEY + SPACE toggles fullscreen on/off (useful for watching videos)
MODKEY + t force floating window back into tiling

Doom Emacs keybindings

M-x command Runs a command M-x is a command prompt
SPC period find-file Opens dired file manager in a split
SPC f r counsel-recentf Open recent files
SPC h r r doom/reload Reloads Doom Emacs
SPC t b big mode Toggles big font mode
SPC t l doom/toggle-line-numbers Toggle line numbers
SPC t t toggle-truncate-line Toggle truncated lines
SPC TAB TAB comment-line Comment/uncomment lines
SPC w d evil-window-delete delete window (split)
SPC w s evil-window-split split window horizontally
SPC w v evil-window-vsplit split window vertically

Qutebrowser keybindings

yy Copy/yank URL
yY Copy URL to selection
yt Copy title to clipboard
yT Copy title to selection
pp Open URL from clipboard
pP Open URL from selection
Pp Open URL from clipboard in new tab
PP Open URL from selection in new tab
wp Open URL from clipboard in new window
wP Open URL from selection in new window
[[ Click “previous”-link on page
]] Click “next”-link on page
{{ Click “preious”-link on page in new tab
}} Click “next”-link on page in new tab
ctrl+a Increment no. in URL
ctrl+x Decrement no. in URL
ctrl+f Page down
ctrl+b Page up
ctrl+d Half page down
ctrl+u Half page up
go Open based on cur. URL
gO Open based on cur. URL in new tab
xO Open based on cur. URL in background tab
xo Open in background tab
wo Open in new window
th Back (in new tab)
wh Back (in new window)
tl Forward (in new tab)
wl Forward (in new window)
;b Open hint in background tab
;h Hover over hint (mouse-over)
;i Hint images
;I Hint images in new tab
;o Put hinted URL in cmd. line
;O Put hinted URL in cmd. line in new tab
;y Yank hinted URL to clipboard
;Y Yank hinted URL to selection
;r Rapid hinting
;R Rapid hinting in new window
;d Download hinted URL
gm Move tab
gl Move tab to left
gr Move tab to right
gC Clone tab
gf View page source
gu Navigate up in URL
gU Navigate up in URL in new tab
sf Save config
ss Set setting
sl Set temp. setting
sk Bind key
Ss Show settings
wi Open web inspector
gd Download page
ad Cancel download


Copyright © 2020-2021 Derek Taylor (DistroTube)

This page is licensed under a Creative Commons Attribution-NoDerivatives 4.0 International License (CC-BY-ND 4.0).

The source code for distro.tube can be found on GitLab. User-submitted contributions to the site are welcome, as long as the contributor agrees to license their submission with the CC-BY-ND 4.0 license.

Author: dt

Created: 2021-10-14 Thu 14:34