chore: project scaffold — license, gitignore, build meta, issue templates
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
commit
5704bd7ff4
8 changed files with 308 additions and 0 deletions
4
.git-blame-ignore-revs
Normal file
4
.git-blame-ignore-revs
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
# Migrations / mass-reformats — keep `git blame` readable across these.
|
||||||
|
|
||||||
|
# Mass-format with nixfmt (RFC 166). Replaced nixpkgs-fmt.
|
||||||
|
bf03fd06d11cad2e349749082615c7a993d596f2
|
||||||
23
.github/ISSUE_TEMPLATE/bug.yml
vendored
Normal file
23
.github/ISSUE_TEMPLATE/bug.yml
vendored
Normal file
|
|
@ -0,0 +1,23 @@
|
||||||
|
name: Bug
|
||||||
|
description: Report a problem
|
||||||
|
labels: [bug]
|
||||||
|
body:
|
||||||
|
- type: markdown
|
||||||
|
attributes:
|
||||||
|
value: |
|
||||||
|
Remember: Omarchy is an open source gift, not a product you bought from a vendor
|
||||||
|
|
||||||
|
- type: input
|
||||||
|
id: system-details
|
||||||
|
attributes:
|
||||||
|
label: System details
|
||||||
|
placeholder: e.g. AMD 9950X, NVIDIA 5090, Omarchy 2.1.0
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: steps
|
||||||
|
attributes:
|
||||||
|
label: What's wrong?
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
1
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
1
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
blank_issues_enabled: false
|
||||||
15
.github/ISSUE_TEMPLATE/documentation.yml
vendored
Normal file
15
.github/ISSUE_TEMPLATE/documentation.yml
vendored
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
name: Documentation
|
||||||
|
description: New pages or changes to existing
|
||||||
|
labels: [documentation]
|
||||||
|
body:
|
||||||
|
- type: markdown
|
||||||
|
attributes:
|
||||||
|
value: |
|
||||||
|
Remember: Omarchy is an open source gift, not a product you bought from a vendor
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: steps
|
||||||
|
attributes:
|
||||||
|
label: What correction or addition do we need?
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
15
.github/ISSUE_TEMPLATE/enhancement.yml
vendored
Normal file
15
.github/ISSUE_TEMPLATE/enhancement.yml
vendored
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
name: Enhancement
|
||||||
|
description: Feature or change
|
||||||
|
labels: [enhancement]
|
||||||
|
body:
|
||||||
|
- type: markdown
|
||||||
|
attributes:
|
||||||
|
value: |
|
||||||
|
Remember: Omarchy is an open source gift, not a product you bought from a vendor
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: steps
|
||||||
|
attributes:
|
||||||
|
label: What do you need?
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
138
.gitignore
vendored
Normal file
138
.gitignore
vendored
Normal file
|
|
@ -0,0 +1,138 @@
|
||||||
|
# Reference directories
|
||||||
|
./omarchy_ref/*
|
||||||
|
./omarchy/
|
||||||
|
|
||||||
|
# Nix build outputs
|
||||||
|
result
|
||||||
|
result-*
|
||||||
|
*.drv
|
||||||
|
|
||||||
|
# ISO and disk images
|
||||||
|
*.iso
|
||||||
|
*.qcow2
|
||||||
|
*.img
|
||||||
|
*.vdi
|
||||||
|
*.vmdk
|
||||||
|
|
||||||
|
# Build artifacts
|
||||||
|
*.o
|
||||||
|
*.so
|
||||||
|
*.a
|
||||||
|
*.out
|
||||||
|
build/
|
||||||
|
dist/
|
||||||
|
target/
|
||||||
|
|
||||||
|
# Temporary files
|
||||||
|
*.tmp
|
||||||
|
*.temp
|
||||||
|
*.swp
|
||||||
|
*.swo
|
||||||
|
*~
|
||||||
|
.#*
|
||||||
|
\#*#
|
||||||
|
|
||||||
|
# System files
|
||||||
|
.DS_Store
|
||||||
|
Thumbs.db
|
||||||
|
desktop.ini
|
||||||
|
|
||||||
|
# Editor and IDE files
|
||||||
|
.vscode/
|
||||||
|
.idea/
|
||||||
|
*.iml
|
||||||
|
.project
|
||||||
|
.classpath
|
||||||
|
.settings/
|
||||||
|
*.sublime-*
|
||||||
|
|
||||||
|
# Vim
|
||||||
|
*.vim
|
||||||
|
.vim/
|
||||||
|
Session.vim
|
||||||
|
.netrwhist
|
||||||
|
|
||||||
|
# Emacs
|
||||||
|
*~
|
||||||
|
\#*\#
|
||||||
|
/.emacs.desktop
|
||||||
|
/.emacs.desktop.lock
|
||||||
|
*.elc
|
||||||
|
auto-save-list
|
||||||
|
tramp
|
||||||
|
.\#*
|
||||||
|
|
||||||
|
# Backup files
|
||||||
|
*.bak
|
||||||
|
*.backup
|
||||||
|
*.old
|
||||||
|
|
||||||
|
# Log files
|
||||||
|
*.log
|
||||||
|
logs/
|
||||||
|
*.log.*
|
||||||
|
|
||||||
|
# Cache directories
|
||||||
|
.cache/
|
||||||
|
cache/
|
||||||
|
__pycache__/
|
||||||
|
*.pyc
|
||||||
|
|
||||||
|
# Environment files
|
||||||
|
.env
|
||||||
|
.env.local
|
||||||
|
.env.*.local
|
||||||
|
|
||||||
|
# SSH keys and secrets
|
||||||
|
*.key
|
||||||
|
*.pem
|
||||||
|
id_rsa
|
||||||
|
id_rsa.pub
|
||||||
|
# secrets/ tracks sops-encrypted yaml files (declared in .sops.yaml).
|
||||||
|
# Plaintext leaks are gated by the pre-commit secret scanner; the
|
||||||
|
# generic *.key / *.pem rules above still keep raw key material out.
|
||||||
|
secrets/*
|
||||||
|
!secrets/*.yaml
|
||||||
|
!secrets/*.example
|
||||||
|
!secrets/README.md
|
||||||
|
|
||||||
|
# Large media files
|
||||||
|
*.mp4
|
||||||
|
*.avi
|
||||||
|
*.mov
|
||||||
|
*.mkv
|
||||||
|
*.zip
|
||||||
|
*.tar.gz
|
||||||
|
*.tar.xz
|
||||||
|
*.7z
|
||||||
|
*.rar
|
||||||
|
|
||||||
|
# Node modules (if any JavaScript projects)
|
||||||
|
node_modules/
|
||||||
|
|
||||||
|
# Python virtual environments
|
||||||
|
venv/
|
||||||
|
.venv/
|
||||||
|
env/
|
||||||
|
.env/
|
||||||
|
|
||||||
|
# Rust
|
||||||
|
Cargo.lock
|
||||||
|
|
||||||
|
# Go
|
||||||
|
vendor/
|
||||||
|
go.sum
|
||||||
|
|
||||||
|
# Claude Code
|
||||||
|
.claude/
|
||||||
|
|
||||||
|
# Hardware configuration (system-specific).
|
||||||
|
# Tracked per-host at hosts/<name>/hardware-configuration.nix. A stray
|
||||||
|
# root-level file — e.g. nixos-generate-config writing to /etc/nixos —
|
||||||
|
# is ignored (root-anchored) so it isn't committed by accident; move it
|
||||||
|
# into your host directory instead.
|
||||||
|
/hardware-configuration.nix
|
||||||
|
|
||||||
|
# Nix direnv
|
||||||
|
.direnv/
|
||||||
|
.envrc
|
||||||
20
LICENSE
Normal file
20
LICENSE
Normal file
|
|
@ -0,0 +1,20 @@
|
||||||
|
Copyright (c) David Heinemeier Hansson
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
a copy of this software and associated documentation files (the
|
||||||
|
"Software"), to deal in the Software without restriction, including
|
||||||
|
without limitation the rights to use, copy, modify, merge, publish,
|
||||||
|
distribute, sublicense, and/or sell copies of the Software, and to
|
||||||
|
permit persons to whom the Software is furnished to do so, subject to
|
||||||
|
the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be
|
||||||
|
included in all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||||
|
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||||
|
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||||
|
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
|
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
92
Makefile
Normal file
92
Makefile
Normal file
|
|
@ -0,0 +1,92 @@
|
||||||
|
# Top-level Makefile for nixos-dev-setup / omni.
|
||||||
|
#
|
||||||
|
# Wraps nixos-rebuild + cachix + flake update so common operations are
|
||||||
|
# one command instead of one paragraph. Adapted from mitchellh's
|
||||||
|
# Makefile but trimmed:
|
||||||
|
#
|
||||||
|
# - No vm/bootstrap targets — those are handled by `dev-env-bootstrap`
|
||||||
|
# for the dev box and by `dev-deploy` for the fleet.
|
||||||
|
# - No darwin/wsl targets — we don't run those (yet).
|
||||||
|
# - HOST defaults to `hostname` so `make switch` Just Works on the
|
||||||
|
# box you're sitting at.
|
||||||
|
#
|
||||||
|
# Override anything via env or args:
|
||||||
|
#
|
||||||
|
# make switch HOST=host1
|
||||||
|
# make cache CACHE=aiolabs-nix
|
||||||
|
# make build FLAKE=/path/to/some/flake
|
||||||
|
|
||||||
|
HOST ?= $(shell hostname)
|
||||||
|
CACHE ?= aiolabs-nix
|
||||||
|
FLAKE ?= .
|
||||||
|
|
||||||
|
# Always allow unfree — most of our hosts need at least one unfree
|
||||||
|
# package (e.g. claude-code, vscode). Set in env so child processes
|
||||||
|
# inherit it (cachix push uses nix-store under the hood).
|
||||||
|
NIXPKGS_ALLOW_UNFREE := 1
|
||||||
|
export NIXPKGS_ALLOW_UNFREE
|
||||||
|
|
||||||
|
.PHONY: help
|
||||||
|
help:
|
||||||
|
@echo "Usage: make <target> [HOST=<name>] [CACHE=<cache>] [FLAKE=<path>]"
|
||||||
|
@echo ""
|
||||||
|
@echo "Targets:"
|
||||||
|
@echo " switch nixos-rebuild switch on the local host"
|
||||||
|
@echo " test nixos-rebuild test (no boot entry change)"
|
||||||
|
@echo " build nix build the host's toplevel (no switch)"
|
||||||
|
@echo " update nix flake update"
|
||||||
|
@echo " cache push the host's closure to \$$CACHE"
|
||||||
|
@echo " check nix flake check"
|
||||||
|
@echo " clean nix-collect-garbage -d (system + user)"
|
||||||
|
@echo " fmt nixfmt every .nix file in the tree"
|
||||||
|
@echo " shellcheck shellcheck every .sh file in the tree"
|
||||||
|
@echo ""
|
||||||
|
@echo "Variables (current values):"
|
||||||
|
@echo " HOST = $(HOST)"
|
||||||
|
@echo " CACHE = $(CACHE)"
|
||||||
|
@echo " FLAKE = $(FLAKE)"
|
||||||
|
|
||||||
|
.PHONY: switch
|
||||||
|
switch:
|
||||||
|
sudo nixos-rebuild switch --flake $(FLAKE)#$(HOST)
|
||||||
|
|
||||||
|
.PHONY: test
|
||||||
|
test:
|
||||||
|
sudo nixos-rebuild test --flake $(FLAKE)#$(HOST)
|
||||||
|
|
||||||
|
.PHONY: build
|
||||||
|
build:
|
||||||
|
nix build $(FLAKE)#nixosConfigurations.$(HOST).config.system.build.toplevel
|
||||||
|
|
||||||
|
.PHONY: update
|
||||||
|
update:
|
||||||
|
nix flake update --flake $(FLAKE)
|
||||||
|
|
||||||
|
# Push the local host's closure to the cache. Requires `cachix` and
|
||||||
|
# `jq` on PATH and a configured authtoken (`cachix authtoken <token>`).
|
||||||
|
.PHONY: cache
|
||||||
|
cache:
|
||||||
|
nix build $(FLAKE)#nixosConfigurations.$(HOST).config.system.build.toplevel --json \
|
||||||
|
| jq -r '.[].outputs | to_entries[].value' \
|
||||||
|
| cachix push $(CACHE)
|
||||||
|
|
||||||
|
.PHONY: check
|
||||||
|
check:
|
||||||
|
nix flake check $(FLAKE)
|
||||||
|
|
||||||
|
.PHONY: clean
|
||||||
|
clean:
|
||||||
|
sudo nix-collect-garbage -d
|
||||||
|
nix-collect-garbage -d
|
||||||
|
|
||||||
|
# Format every .nix file. Requires nixfmt on PATH (in nixpkgs).
|
||||||
|
.PHONY: fmt
|
||||||
|
fmt:
|
||||||
|
@find . -name '*.nix' -not -path './.git/*' -print0 \
|
||||||
|
| xargs -0 -r nixfmt
|
||||||
|
|
||||||
|
# Lint every .sh file. Requires shellcheck on PATH (in nixpkgs).
|
||||||
|
.PHONY: shellcheck
|
||||||
|
shellcheck:
|
||||||
|
@find . -name '*.sh' -not -path './.git/*' -print0 \
|
||||||
|
| xargs -0 -r shellcheck
|
||||||
Loading…
Add table
Add a link
Reference in a new issue