Skip to content

ohaukeboe/dot-emacs

Repository files navigation

NixOS & Home Manager Configuration

Personal NixOS and Home Manager configuration using flakes, supporting multiple systems and machines. I have used this config on both nixos, non-nixos linux, and on mac. However, I currently use nixos on all my machines, so it might not work properly anymore in the other configurations. This repo started out as just an Emacs config, hence the repo name, which is written in literate org-mode here.

Quick Start

Standalone Home Manager

home-manager switch --flake .#default --impure -b backup

NixOS System

sudo nixos-rebuild switch --flake .#<hostname>

Where <hostname> is: x13-laptop, work-laptop, or x1laptop

Features

  • Multi-platform support (x86_64-linux, aarch64-linux, aarch64-darwin)
  • Literate Emacs configuration in org-mode
  • COSMIC desktop environment on NixOS
  • Rootless Docker and Podman
  • Git-crypt for secrets management
  • Fish shell with starship, zoxide, and atuin
  • AI coding assistants (Claude Code, Aider, Goose, OpenCode)

Gaming

The gaming module provides a custom gamescope-game command that launches games with optimal gamescope settings:

  • Adaptive sync (VRR/FreeSync/G-Sync)
  • HDR enabled
  • Fullscreen mode
  • Auto-detected resolution (uses highest current display resolution)
  • Gamemode integration for CPU governor optimization
  • Forced cursor grab

Using with Steam

To use gamescope-game with Steam games, add this to the game’s launch options:

gamescope-game -- %command%

Using from Terminal

gamescope-game /path/to/game

Some Tips

Install 1password

I used to use universal-blue as my distro of choice and prefered to install 1password as rpm-ostree overlay instead of through nix. For this the following commands needs to be run to install it.

curl https://downloads.1password.com/linux/keys/1password.asc | sudo tee /etc/pki/rpm-gpg/RPM-GPG-KEY-1password
sudo sh -c 'echo -e "[1password]\nname=1Password Stable Channel\nbaseurl=https://downloads.1password.com/linux/rpm/stable/\$basearch\nenabled=1\ngpgcheck=1\nrepo_gpgcheck=0\ngpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-1password" > /etc/yum.repos.d/1password.repo'
rpm-ostree install 1password 1password-cli

Also, in order to get the 1password browser extension to talk to the program even if the browser is installed as a flatpak, you can use this script:

sh <(curl -L https://raw.githubusercontent.com/FlyinPancake/1password-flatpak-browser-integration/refs/heads/main/1password-flatpak-browser-integration.sh)

# or if you are on fish
sh (curl -L https://raw.githubusercontent.com/FlyinPancake/1password-flatpak-browser-integration/refs/heads/main/1password-flatpak-browser-integration.sh | psub)

Structure

  • flake.nix - Main entry point
  • system/ - NixOS system configuration
  • workstation/ - Home Manager user configuration
  • machines/ - Hardware-specific configurations
  • common/ - Shared modules (caches, secure boot, unfree packages)
  • lib/ - Helper functions

About

My Emacs configurations written in Org mode

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors