Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

488 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dotfiles

Minimal window manager

Workstation setup for Linux, BSD, and macOS — dotfiles, installation guides, and build scripts

  • Menus and monitoring handled by application launcher to replace traditional DE components
  • Automation scripts for package export/import, battery monitoring, and Wi-Fi
  • Build scripts included for source-built components: ghc, neovim, st, xkb, xmonad, xlibre.
  • Uniform structure across distros — every install follows the same pattern: profile-based package list, stow-managed dotfiles, per-distro scripts
  • Distro-specific via stow packages — differences (init system, network backend, notification daemon) are handled by swapping stow packages in links.config, not by conditionals inside shared scripts

Stack

  • Display server: XLibre (X11)
  • Window manager: Xmonad
  • Menus: dmenu
  • Editor: Neovim
  • Terminal: st
  • File manager: lf
  • Dotfile linking: stow
  • Keymaps: setxkbmap / XKB

TL;DR

  1. Install a base system Artix Wiki

  2. Install X server from your distribution's provided packages or build and install Xlibre from source

  3. Run install script that will install, link and test your system

  • Clone this repository:
git clone --depth 1 --branch v0.0.4 https://github.com/holmen1/dotfiles.git ~/repos/dotfiles
  • Chose distro:
cd ~/repos/dotfiles/install/artixinstall

Run and follow the prompts (current artixinstall require manual build and install of: xlibre, ghc, xmonad NB):

./configure_build_install_link.sh

Prompts per step:

Configure git? [y/N]
Generate SSH key? [y/N]
Install yay? [y/N]
/home/holmen1/repos/dotfiles/install/artixinstall/packages/gadsden/pkglist.txt
Install pkglist? [y/N]
/home/holmen1/repos/dotfiles/install/artixinstall/packages/gadsden/foreignpkglist.txt
Install foreignpkglist? [y/N]
Rebuild xmonad? [y/N]
Install xmonad? [y/N]
Build st? [y/N]
Install st? [y/N]
Build xkb keymap? [y/N]
Link dotfiles? [y/N]
Enable services? [y/N]
Run tests? [Y/n]
Sanity check — gadsden (artix/openrc)

--- Core commands
  [ok] git
  [ok] ssh
  [ok] xmonad
  [ok] st
  [ok] stow
  [ok] dmenu
  [ok] nvim

--- X session
  [ok] startx
  [ok] /home/holmen1/.xinitrc
  [ok] /usr/local/bin/xmonad
  [ok] xbindkeys
  [ok] scrot
  [ok] i3lock
  [ok] xterm

--- Notifications
  [ok] dunst
  [ok] notify-send

--- OpenRC services
  [ok] dbus running
  [ok] dhcpcd running
  [ok] elogind running
  [ok] iwd running

--- Dotfile symlinks
  [ok] /home/holmen1/.config/nvim -> ../repos/dotfiles/dotfiles/nvim/.config/nvim
  [ok] /home/holmen1/.xinitrc -> repos/dotfiles/dotfiles/x/.xinitrc

--- Git
  [ok] user.name: user
  [ok] user.email: [email protected]

--- SSH
  [ok] id_ed25519 exists
  [ok] id_ed25519 perms 600

--- groups
  [ok] user in wheel group
  [ok] passwordless sudo enabled
  [ok] user in video group

Passed: 29  Failed: 0

Structure

dotfiles/  
├── config              # All user dotfiles to stow (one per editor/tool)
│   ├── artixinstall    # Distro-specifc scripts
│   ├── bash
│   ├── brave
│   ├── chromium
│   ├── common          # Shared scripts
│   ├── lf
│   ├── nvim
│   ├── openrc
│   ├── vscode
│   ├── x
│   ├── xmonad
│   └── ...
└── install
    ├── build           # Source-built components
    │   ├── ghc
    │   ├── neovim
    │   ├── st
    │   ├── xkb
    │   ├── xlibre
    │   └── xmonad
    └── profiles        # Distro-specific installers
        ├── artixinstall
        ├── bsdinstall
        ├── debianinstall
        └── ...

where every distro structured uniformly

artixinstall/
├── configure_build_install_link.sh
├── links
|   └── gadsden
│       └── links.config
├── packages
|   └── gadsden
│       ├── foreignpkglist.txt
│       └── pkglist.txt
└── tests
    └── gadsden
        └── sanity_check.sh

Project Scope

Minimal "desktop" across multiple operating systems. Designed for low-spec hardware (tested on 4 GB RAM).

Supported systems:

  • Linux (Artix, Arch, Debian)
  • BSD (FreeBSD)
  • macOS (limited)
  • Unix (xv6) [TODO]

Per distroinstall guides

TODO

About

all you need

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages