Files
bernardo 97565e415d Add flatpak build plumbing
- io.github.bemagri.nomines.yml: builds libsigc++/glibmm/cairomm/pangomm/gtkmm
  from tarballs against the GNOME 46 runtime, then the app from the v1.0.0 tag
- Icon: app-id-named PNGs (128/512) for flatpak export, svg kept for native
  installs; desktop file Icon updated
- README/AGENTS.md: flatpak build instructions and version traps
2026-08-01 15:34:28 +01:00

124 lines
2.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.
![Game Screenshot](screenshots/screen1.png)
## 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
```
## Building a Flatpak
NoMines ships a Flatpak manifest (`io.github.bemagri.nomines.yml`) that builds
the gtkmm stack (libsigc++, glibmm, gtkmm) against the GNOME 46 runtime:
```bash
flatpak install -y flathub org.gnome.Platform//46 org.gnome.Sdk//46
flatpak-builder --user --install --force-clean build-flatpak io.github.bemagri.nomines.yml
flatpak run io.github.bemagri.nomines
```
Note: the manifest's `commit` must match the pushed `v1.0.0` tag (update it if
the history is rebased before pushing).
## 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.