Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 34 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,32 +1,64 @@
name: CI

on:
push:
pull_request:
branches:
- main

jobs:
rust:
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Detect code changes
id: changes
shell: bash
run: |
code_changed=false

while IFS= read -r file; do
case "$file" in
*.md)
;;
*)
code_changed=true
break
;;
esac
done < <(git diff --name-only "${{ github.event.pull_request.base.sha }}" "${{ github.event.pull_request.head.sha }}")

echo "code_changed=$code_changed" >> "$GITHUB_OUTPUT"

- name: Skip Rust checks for documentation-only PR
if: steps.changes.outputs.code_changed != 'true'
run: echo 'Only Markdown files changed; Rust checks are not required.'

- name: Install Rust toolchain
if: steps.changes.outputs.code_changed == 'true'
uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt, clippy

- name: Install native Wayland dependencies
run: sudo apt-get update && sudo apt-get install --yes libfontconfig1-dev libfreetype6-dev libwayland-dev libxkbcommon-dev
if: steps.changes.outputs.code_changed == 'true'
run: sudo apt-get update && sudo apt-get install --yes libfontconfig1-dev libfreetype6-dev libwayland-dev libxkbcommon-dev libxkbcommon-x11-dev

- name: Check workspace
if: steps.changes.outputs.code_changed == 'true'
run: cargo check --workspace --all-targets

- name: Test workspace
if: steps.changes.outputs.code_changed == 'true'
run: cargo test --workspace

- name: Check formatting
if: steps.changes.outputs.code_changed == 'true'
run: cargo fmt --all --check

- name: Run Clippy
if: steps.changes.outputs.code_changed == 'true'
run: cargo clippy --workspace --all-targets -- -D warnings
6 changes: 3 additions & 3 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# AGENTS.md

This file defines the operating rules for coding agents working in the Luna repository.
This file defines the operating rules for coding agents working in the Shell repository.

Luna is a Rust/Wayland desktop shell focused initially on Hyprland. GPUI is the presentation frontend, GPUI Kit is the preferred UI foundation, and the architecture must keep compositor, Linux services, configuration, domain state, and presentation concerns separated.
Shell is a Rust/Wayland desktop shell focused initially on Hyprland. GPUI is the presentation frontend, GPUI Kit is the preferred UI foundation, and the architecture must keep compositor, Linux services, configuration, domain state, and presentation concerns separated.

---

Expand Down Expand Up @@ -195,7 +195,7 @@ focus helpers
motion / presence / transitions
```

Keep Luna-owned primitives for genuinely shell-specific behavior such as:
Keep Shell-owned primitives for genuinely shell-specific behavior such as:

```text
Notch geometry
Expand Down
150 changes: 75 additions & 75 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

14 changes: 7 additions & 7 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -26,13 +26,13 @@ shell-linux = { path = "crates/shell-linux" }
shell-config = { path = "crates/shell-config" }
shell-theme = { path = "crates/shell-theme" }
shell-ui-gpui = { path = "crates/shell-ui-gpui" }
luna-module-launcher = { path = "crates/modules/launcher" }
luna-module-calendar = { path = "crates/modules/calendar" }
luna-module-player = { path = "crates/modules/player" }
luna-module-theme = { path = "crates/modules/theme" }
luna-module-resources = { path = "crates/modules/resources" }
luna-module-clock = { path = "crates/modules/clock" }
luna-module-settings = { path = "crates/modules/settings" }
shell-module-launcher = { path = "crates/modules/launcher" }
shell-module-calendar = { path = "crates/modules/calendar" }
shell-module-player = { path = "crates/modules/player" }
shell-module-theme = { path = "crates/modules/theme" }
shell-module-resources = { path = "crates/modules/resources" }
shell-module-clock = { path = "crates/modules/clock" }
shell-module-settings = { path = "crates/modules/settings" }

tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter", "fmt"] }
Expand Down
Loading
Loading