DTOS
Table of Contents
About DTOS
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/dtos/dtos cd dtos/ ./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. Binaries are built from the PKGBUILDs in
dtos-pkgbuild
. - dtos-pkgbuild - The PKGBUILDs used to create the binary packages in
dtos-core-repo
. - etc - Contains most of the
dtos-*
packages, which are config files that get placed in /etc/dtos.
The /etc/dtos directory
Most of the custom packages for DTOS are really just config files for various programs. For example, the dtos-xmonad
package is really just the custom XMonad config files for DTOS. The dtos-bash
package is just the default .bashrc file for DTOS. All of the various dtos-*
packages install their config files to a special directory: /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. The /etc/dtos directory is structured exactly like a user’s $HOME directory. So if you installed dtos-xmonad
and dtos-bash
, then you would find their config files in the following locations:
/etc/dtos/.xmonad /etc/dtos/.bashrc
When you run the DTOS installation script, it installs all of the dtos-*
packages, which place their config files into /etc/dtos, and then the installation script copies the entire /etc/dtos directory into the user’s HOME directory. The installation will create a backup copy of some critical files and directories (such as .config) in case the user accidentally overwrites some important files.
How does DTOS handle updates?
Simply update your system as you would any Arch-based system:
sudo pacman -Syu
Remember, the dtos-*
packages are just config files that are placed into /etc/dtos. So if installing or updating those packages, if you want to use them, you will have to copy the appropriate files from /etc/dtos into your $HOME directory. Be careful not overwrite any of your own custom config files!
Setting a wallpaper
To set a wallpaper, launch dm-setbg
(part of dmscripts
) with the keybinding ’SUPER+p b’. This will launch the image viewer sxiv
which will display the wallpapers in /usr/share/backgrounds/dtos-backgrounds. Navigate to the wallpaper you want to set and hit ’m’ to mark it. Then close sxiv
and the marked wallpaper will be set.
Keybindings
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
KEYBINDINGS | ASSOCIATED ACTION |
---|---|
SUPER + RETURN | opens terminal (alacritty) |
SUPER + SHIFT + RETURN | opens run launcher (dmenu) |
SUPER + b | opens qutebrowser |
SUPER + TAB | rotates through the available layouts |
SUPER + SPACE | toggles fullscreen on/off (useful for watching videos) |
SUPER + SHIFT + c | closes window with focus |
SUPER + SHIFT + r | restarts xmonad |
SUPER + SHIFT + q | quits xmonad |
SUPER + 1-9 | switch focus to workspace (1-9) |
SUPER + SHIFT + 1-9 | send focused window to workspace (1-9) |
SUPER + j | windows focus down (switches focus between windows in stack) |
SUPER + k | windows focus up (switches focus between windows in stack) |
SUPER + SHIFT + j | windows swap down (swap windows in the stack) |
SUPER + SHIFT + k | windows swap up (swap the windows in the stack) |
SUPER + h | shrink window (decreases window width) |
SUPER + l | expand window (increases window width) |
SUPER + w | switches focus to monitor 1 |
SUPER + e | switches focus to monitor 2 |
SUPER + r | switches focus to monitor 3 |
SUPER + period | switch focus to next monitor |
SUPER + comma | switch focus to prev monitor |
SUPER + SPACE | toggles fullscreen on/off (useful for watching videos) |
SUPER + t | force floating window back into tiling |
KEYBINDINGS | COMMAND | DESCRIPTION |
---|---|---|
SUPER + p h | dm-hub | allows access to all dmscripts |
SUPER + p a | dm-sounds | choose an ambient background |
SUPER + p b | dm-setbg | set a background |
SUPER + p c | dm-colpick | pick color from our scheme |
SUPER + p e | dm-confedit | edit config files |
SUPER + p i | dm-maim | screenshots (images) |
SUPER + p k | dm-kill | kill processes |
SUPER + p m | dm-man | manpages |
SUPER + p n | dm-note | store one-line notes and copy them |
SUPER + p o | dm-bookman | qutebrowser bookmarks/history |
SUPER + p p | passmenu | passmenu |
SUPER + p q | dm-logout | logout menu |
SUPER + p r | dm-reddit | reddio (a reddit viewer) |
SUPER + p s | dm-websearch | search various search engines |
SUPER + p t | dm-translate | translate text (Google Translate) |
KEYBINDINGS | COMMAND | DESCRIPTION |
---|---|---|
CTRL + e e | emacsclient | launches Doom Emacs (dashboard) |
CTRL + e a | emms | Emacs multimedia system |
CTRL + e b | ibuffer | lists emacs buffers |
CTRL + e d | dired | file manager inside Emacs |
CTRL + e i | erc | irc client |
CTRL + e n | elfeed | rss reader |
CTRL + e s | eshell | shell written in elisp |
CTRL + e t | mastodon | mastodon client |
CTRL + e v | vterm | one of the terminals inside Emacs |
CTRL + e w | eww | Emacs web wowser (distro.tube) |
Doom Emacs keybindings
KEYBINDINGS | COMMAND | DESCRIPTION |
---|---|---|
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
KEYBINDING | ASSOCIATE ACTION |
---|---|
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 |
Footer
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.