No description
Find a file
jasmine 064256e4ed
feat: implement modal keybindings for layout and master pane control
Add XMonad.Hooks.Modal to separate layout switching and master pane
manipulation into distinct modal namespaces. This resolves keybinding
conflicts and creates a more organized interaction model.

Changes:
- Layout mode (M-a l): one-shot layout selection (d/m/f)
- Master mode (M-a m): persistent pane adjustments with arrow keys
- Restore ppExtras with logMode to display active mode in xmobar
- Remove conflicting Home/End/PageUp/PageDown bindings from master pane
- Simplify navigation by moving screen focus back to Home/End
2025-10-03 17:30:29 +08:00
nix/modules/flake Improve formatting and settings in pre-commit configuration for fourmolu 2025-02-20 22:03:14 +08:00
src feat: implement modal keybindings for layout and master pane control 2025-10-03 17:30:29 +08:00
.envrc chore: initialize project template 2025-02-20 13:43:07 +08:00
.gitattributes chore: initialize project template 2025-02-20 13:43:07 +08:00
.gitignore chore: initialize project template 2025-02-20 13:43:07 +08:00
.hlint.yaml chore: initialize project template 2025-02-20 13:43:07 +08:00
CLAUDE.md woops oh well this is dirty fuck it 2025-10-03 00:07:37 +08:00
flake.lock chore: bump inputs 2025-02-23 17:29:03 +08:00
flake.nix chore: initialize project template 2025-02-20 13:43:07 +08:00
hie.yaml chore: initialize project template 2025-02-20 13:43:07 +08:00
justfile feat: migrate to cabal build and cabal run 2025-02-23 17:28:43 +08:00
LICENSE chore: initialize project template 2025-02-20 13:43:07 +08:00
README.md chore: initialize project template 2025-02-20 13:43:07 +08:00
xmonad-config.cabal feat: leader key + modal keybinds 2025-05-10 00:05:58 +08:00

xmonad-config

Get a Haskell development environment up and running quickly. Thanks to Nix, this template is optimized for a fully reproducible and friendly development environment. It is based on:

If you have an existing Haskell project, you should probably use https://github.com/srid/haskell-flake instead.

Getting Started

Initialize this template using:

nix --accept-flake-config run github:juspay/omnix -- \
  init github:srid/xmonad-config -o ./yourproject

tldr: Install Nix, setup direnv, open in VSCode, install recommended extensions and run just run.

Full instructions: https://srid.ca/xmonad-config/start

Recommended dev environment setup: https://nixos.asia/en/direnv

Tips

  • Run nix flake update to update all flake inputs.
  • Run nix --accept-flake-config run github:juspay/omnix ci to build all outputs.
  • pre-commit hooks will automatically be setup in Nix shell. You can also run pre-commit run -a manually to run the hooks (e.g.: to autoformat the project tree using fourmolu, nixpkgs-fmt, etc. as well run programs like hlint). The hooks will checked as part of flake checks (thus CI).
  • Run just docs to start Hoogle with packages in your cabal file.
  • Run the application without installing: nix run github:srid/xmonad-config (or nix run . from checkout)
  • Common workflows

Discussions

Questions? Ideas? Suggestions? Join our NixOS Zulip or post in Github Discussions.