- Rename app/binary/app-id to nomines (io.github.bemagri.nomines), config dir moves to ~/.config/nomines with legacy path fallback - Add persistent best-time leaderboard (Glib::KeyFile) - Theme-aware board following system light/dark preference - Beveled 3D cells, confetti win animation, keyboard shortcuts, right-click chording, per-difficulty window sizing - Add AppStream metainfo, validate desktop file and metainfo via meson tests - Fix license metadata to GPL-3.0-or-later and real homepage
110 lines
2.0 KiB
Markdown
110 lines
2.0 KiB
Markdown
# NoMines
|
||
|
||
A modern GTK4/gtkmm implementation of the classic Minesweeper game with multiple difficulty levels, a persistent leaderboard, keyboard shortcuts, and light/dark theme support.
|
||
|
||

|
||
|
||
## Features
|
||
|
||
- Multiple difficulty levels: Beginner, Intermediate, Expert, and Master
|
||
- Persistent leaderboard tracking the best time per difficulty
|
||
- Follows the system light/dark theme
|
||
- Win/lose animations, including a confetti win celebration
|
||
- Keyboard shortcuts: `R` / `Ctrl+N` new game, `1`–`4` difficulty, `L` leaderboard
|
||
- Right-click chording on revealed cells
|
||
- Modern GTK4 user interface with client-side decorations
|
||
- Modern C++20 implementation
|
||
|
||
## Building from Source
|
||
|
||
### Dependencies
|
||
|
||
- GTK 4.0 or later
|
||
- gtkmm 4.0 or later
|
||
- sigc++ 3.0 or later
|
||
- Meson build system
|
||
- Ninja build system
|
||
|
||
### Ubuntu/Debian
|
||
|
||
Install dependencies:
|
||
|
||
```bash
|
||
sudo apt install build-essential meson ninja-build libgtkmm-4.0-dev libsigc++-3.0-dev
|
||
```
|
||
|
||
### Fedora
|
||
|
||
Install dependencies:
|
||
|
||
```bash
|
||
sudo dnf install gcc-c++ meson ninja-build gtkmm4.0-devel libsigc++3-devel
|
||
```
|
||
|
||
### Arch Linux
|
||
|
||
Install dependencies:
|
||
|
||
```bash
|
||
sudo pacman -S base-devel meson ninja gtkmm-4.0 libsigc++-3.0
|
||
```
|
||
|
||
### Building the Project
|
||
|
||
Clone the repository:
|
||
|
||
```bash
|
||
git clone https://github.com/bemagri/nomines
|
||
cd nomines
|
||
```
|
||
|
||
Configure and build with Meson:
|
||
|
||
```bash
|
||
meson setup build
|
||
meson compile -C build
|
||
```
|
||
|
||
Run the game:
|
||
|
||
```bash
|
||
./build/nomines
|
||
```
|
||
|
||
### Installing
|
||
|
||
To install system-wide:
|
||
|
||
```bash
|
||
meson install -C build
|
||
```
|
||
|
||
## Using Nix
|
||
|
||
If you use the Nix package manager, you can build and run the application with:
|
||
|
||
```bash
|
||
nix build
|
||
./result/bin/nomines
|
||
```
|
||
|
||
Or run it directly from the flake:
|
||
|
||
```bash
|
||
nix run
|
||
```
|
||
|
||
The Nix flake also provides a development shell with all dependencies:
|
||
|
||
```bash
|
||
nix develop
|
||
```
|
||
|
||
## Contributing
|
||
|
||
Contributions are welcome! Please feel free to submit a Pull Request.
|
||
|
||
## License
|
||
|
||
This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.
|