• ■ The following projects come with absolutely no warranty of any kind.
  • ■ Whatever you do with this information is your own responsibility.
  • ■ Made for research and fun. Nothing else.
  • ■ All third-party git hosts are only used exclusively as a means to distribute the projects and are NOT the original development repos.

// The official XENOBYTE.XYZ workstation setup for UNIX systems
Table of Contents
About the XENOBYTE workstation setup

These configuration files turn a vanilla UNIX setup into the official XENOBYTE development environment.
Though they are primarily used and developed for the arch distribution they are compatible with all UNIX systems and even Windows machines with a few, simple tweaks. Note that this setup emphasizes performance and flexibility over flashiness and secondary features such as desktop effects.

This workstation aims to provide the most basic toolset required to develop all other XENOBYTE projects and a solid foundation for general desktop use.


System requirements

Any UNIX system will do, the newer the better. Most configurations work with Windows if their respective software runs on it. However, it is primarily built in and for arch based systems to keep the main branch as updated as the software dependencies.

Software dependencies

The following software is developed by their respective authors. Kudos for their hard work from which the open source community greatly benefits.

  • awesome wm // LUA configured twm
  • emacs // the most powerful editor
  • urxvt // extensible terminal emulator
  • weechat // irc client
  • neomutt // email client
  • zsh // extensible shell
  • newsboat // RSS reader
  • mpd & ncmpcpp // music player
  • cava // audio visualizer
  • ranger // terminal file manager
  • tmux // terminal multiplexer
  • picom // standalone compositor
  • arch // minimalist, bleeding-edge distro
EMACS (hexmacs config)

This installation assumes the user is running a newly installed arch or manjaro as starting point, but it works with any other UNIX distro.

Last revised: 01/06/2021

1. Update database and install dependencies

pacman -Sy
pacman -S scrot tree arandr rofi awesome zsh lxappearance rxvt-unicode mpd semver mpc ncmpcpp mc unzip netctl mpv aspell aspell-en gdb guvcview npm nitrogen openssh clang llvm wine-staging playonlinux lutris boost boost-libs lua nodejs python-virtualenv cmake mutt ncurses tmux ctags python-pygments electrum screenfetch weechat p7zip dnsutils wget xwinfo xorg-xwininfo xorg-xprop ca-certificates xscreensaver scanmem ranger w3m picom whois vulkan-icd-loader lib32-vulkan-icd-loader xclip aspell-es aspell-pt aspell-ca pulseaudio alsa-utils blueman libappindicator-gtk newsboat
pip install pylint youtube-dl numpy

2. Clone the XENOBYTE doftiles repo and move the files to their corresponding locations

Make sure to edit ~/.zshrc to fit your system configuration.

git clone
mv dotfiles/awesome ~/.config/awesome/
mv dotfiles/terminal ~/.

3. Relog into AwesomeWM

F.A.Q. & Troubleshooting

The AwesomeWM volume widget isn't working.

There are probably multiple audio devices available and AwesomeWM isn't loading the appropriate one. To change your default audio interface ID:

1. List the available audio interfaces

aplay --list-devices

2. Edit your /etc/asound.conf file and replace the following settings with the desired ID

defaults.pcm.card ID#
defaults.ctl.card ID#

3. Restart AwesomeWM by pressing Shift + Super + R

Bitmap fonts aren't working / square fonts error.

If your system uses pango to render text, know that starting with ver 1.44 bitmap fonts are no longer supported. Rolling back to ver 1.43 is an easy enough solution but beware that bleeding-edge distros like Arch may require newer version to work.

Audio works but some applications (e.g. MPD) can't set volume.

If you're using pulseaudio you need to allow autospawn in /etc/pulse/client.conf.

Are multiple monitors supported?

Yes, the awesome/rc.lua file calls a series of scripts at startup, among them "~/.screenlayout/". Simply use a program like arandr to generate the proper xrandr calls and restart the AwesomeWM process.

What is the project's license? Do I have to pay or credit you in any way?

The project is MIT licensed and free.


* VER 2.7 <2021-03-23 Tue 19:07> <-- CURRENT STABLE VERSION

- Changed the tmux config and theme
- Decreased the keyboard read delay (made the keyboard cursor it faster) in awesome rc

* VER 2.6 <2021-01-25 Mon 20:19>s

- Git tree reset to remove old, deprecated files

Pre 2.6 versions have been purged to remove deprecated files.

* VER 2.5 <2021-01-01 Fri 14:23>

- Added a locally compiled .otb version of the tewi font
- Cleaned a few files
- Removed unused fonts
- Change the terminal and emacs theme

* VER 2.33 <2020-11-10 Tue 19:32>

- Fixed broken links in comments
- Removed a few, useless files in the AwesomeWM dependencies

* VER 2.3 <2020-11-04 Wed 20:27>

- XENOBYTE.XYZ rebrand
- Updated some env vars include .zshrc

* VER 2.2 <2020-10-14 Wed 19:15>

- Fixed mute / unmute hotkeys toggling in rc.lua
- Updated the FAQ
- Updated install guide

* VER 2.1 <2020-08-24 Mon 10:50>

- Fixed a few rendering bugs in the AwesomeWM theme
- Updated theme icons & font

* VER 2.0 <2020-07-24 Fri 17:32>

- Renewed the git repo starting with ver 2.0

Pre 2.0 versions have been purged to keep the main repository clean.

* VER 1.6 <2020-07-24 Fri 17:32>

- The EMACS configuration has been moved to its own repository to make it easier to manage
- Cleaned the top comment of the configuration files

* [ 26/06/2020 ] - VER 1.55

- Added the org-agenda and a few hotkeys to general-conf.el

* [ 16/06/2020 ] - VER 1.51

- Fixed a rendering issue with the tmux multiplexer on URXVT terminals (tmux.conf)

* [ 15/06/2020 ] - VER 1.5

- Added useful comments to the .emacs.d/custom files for an easier installation process
- Removed the irony and semanticdb folders from the git tree
- Fixed a color issue with the tmux multiplexer in tmux.conf

* [ 15/06/2020 ] - VER 1.41

- Fixed a color issue with the tmux multiplexer in tmux.conf

* [ 14/06/2020 ] - VER 1.4

- Added useful comments to the .emacs.d/custom files for an easier installation process
- Removed the irony and semanticdb folders from the git tree
- Removed the weechat.conf file

* [ 19/05/2020 ] - VER 1.4

- Replaced company-tern with company-lsp
- Added lsp
- Added company-ctags
- Updated /.emacs.d/custom/web-config.el with new installation instructions

* [ 19/05/2020 ] - VER 1.31

- Company-tern has been removed from MELPA, currently working on replacing it with Indium

* [ 12/05/2020 ] - VER 1.3

- Fixed the grammar checking in EMACS and added support for Portuguese and Spanish
- Changed some colors

* [ 18/04/2020 - VER 1.2 ]

- Added confirmation checks to AwesomeWM logout, reboot and shutdown hotkeys
- Swapped EMACS helm for ivy + swipper & counsel (to revert to helm uncomment the include in .emacs)
- Added a 96 DPI configuration to AwesomeWM startup

* [ 13/04/2020 - VER 1.1 ]

- Added confirmation menus to Awesome’s shutdown, reboot and log off functions
- Reinstated “ohsnap” as the default font (

* [ 17/02/2020 - VER 1.0 ]

- Git tree reset