GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - webdevred/dotfiles

BranchesTags
Open more actions menu

Latest commit

 

History

293 Commits
293 Commits

Folders and files

NameName
Last commit message
Last commit date
alacritty
alacritty
 
 
bash
bash
 
 
docs
docs
 
 
emacs
emacs
 
 
fish
fish
 
 
gentoo
gentoo
 
 
git
git
 
 
haskell
haskell
 
 
misc
misc
 
 
mpv
mpv
 
 
picom
picom
 
 
polybar
polybar
 
 
rofi
rofi
 
 
xmobar
xmobar
 
 
xmonad
xmonad
 
 
.editorconfig
.editorconfig
 
 
.gitignore
.gitignore
 
 
.hlint.yaml
.hlint.yaml
 
 
.ocamlformat
.ocamlformat
 
 
LICENSE
LICENSE
 
 
README.org
README.org
 
 
SYSTEM-NOTES.org
SYSTEM-NOTES.org
 
 
dest_places.txt
dest_places.txt
 
 
fourmolu.yaml
fourmolu.yaml
 
 
gentoo-install.ml
gentoo-install.ml
 
 
install.ml
install.ml
 
 

Repository files navigation

Dotfiles Configuration

This repository contains my personal dotfiles for managing my environment, including XMonad, terminal, shell, and Emacs configurations.

Overview

The goal of this setup is to create a smooth workflow optimized for Emacs and Firefox, while maintaining compatibility with Steam and gaming.

I use picom, rofi, and xmobar alongside XMonad. Their config files are included here.

Emacs configuration is included in this repository under ~/.config/emacs.

Managed Software

These are the main software packages managed and configured here, tested mainly on Ubuntu:

SoftwareDescription
xmonadWindow manager
xmobarStatus bar
xmonad-contribExtra xmonad modules
AesonJSON parsing library (used for PulseAudio sink switcher)
alacrittyTerminal emulator
fishShell
fehWallpaper setter
picomCompositor
rofiApplication launcher
emacsText editor with custom configuration
gitVersion control system
python3-yamlfixYamlfix tool for YAML fixing
btopResource monitor
mpvMedia player

Installing dependencies on Ubuntu

sudo apt install xmonad xmobar libghc-xmonad-dev libghc-aeson-dev alacritty fish feh picom rofi emacs git python3-yamlfix btop mpv

Installation

To install every configuration file, run:

./install.ml

The script runs through its shebang, so there is no build step. To act on a single directory, pass an action and a name. The action is a bare letter, not a flag:

./install.ml i emacs   # install only emacs
./install.ml u emacs   # uninstall emacs
./install.ml c emacs   # run the configure script for emacs

Which file goes where is defined in dest_places.txt, one entry per line in the format src:dest[:symlink|hardlink][:chmod], where dest is relative to $HOME.

Xmobar Panels

I use several xmobar panel configurations for different setups/screens:

  • big_screen_config.hs
  • laptop_bottom_config.hs
  • laptop_top_config.hs
  • small_screen_bottom_config.hs
  • small_screen_top_config.hs

Emacs Configuration

This repo contains a full Emacs setup tailored for coding and note-taking.

Highlights include:

  • use-package-based package management with deferred loading.
  • LSP support with Eglot configured for C, C++, Haskell, YAML, and more.
  • Custom handling to disable Eglot on cabal.project.* files (like cabal.project.dev) because HLS does **not** support them, avoiding false error messages.
  • Undo-tree for undo history management.
  • Treemacs for project file tree browsing.
  • Projectile for project management.
  • Rainbow delimiters and rainbow mode for better syntax visualization.
  • Multiple language modes: Haskell, Markdown, Fish, PHP, YAML, Vimscript, OCaml (tuareg).
  • Custom keybindings and settings for Haskell development, including compilation and testing helpers.
  • A cozy pink theme.

Vimscript and Fish Mode

I include fish-mode and vimrc-mode in Emacs because sometimes I need to edit Vim and Fish configuration files directly in Emacs. This allows me to edit those config files (.vimrc and fish config) with proper syntax highlighting and editing support inside Emacs while keeping those files versioned in this repo.

Extra benefits of my HLS + Eglot setup

  • Custom my-hls-wrapper.sh script improves integration and flexibility with Haskell Language Server.
  • Automatically disables Eglot management on cabal.project.* files (e.g. cabal.project.dev) because HLS does **not** support them, preventing numerous erroneous error messages.
  • Fine-tuned performance and error display settings such as autoshutdown, autoreconnect, and eldoc delay.
  • Customized keybindings for quick access to common LSP features.
  • Enhanced markup formatting supporting markdown math for better documentation experience.

Notes

  • I avoid initializing Git repositories directly in my home directory to keep it clean and uncluttered. Instead, all config files are managed inside this dotfiles repository, and symlinked from there to their appropriate locations (mostly under ~/.config/). This setup allows easy version control, centralized management, and a tidy home directory.
  • Emacs configuration, along with all other software configurations, is kept organized in separate folders within this repository for clarity and maintainability.

About

No description, website, or topics provided.

Resources

Readme
BSD-2-Clause license
Activity

Stars

1 star

Watchers

1 watching

Forks

0 forks
Report repository

Releases

Packages

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.