bernardo cee916224a Replace loss dialog with KABOOM! overlay; bevel the New Game button
- Losing no longer pops a dialog: the board draws a tilted KABOOM! banner
  (theme-independent, auto-scaling, dark translucent panel) over the revealed
  mines; restart via the New Game button or R/Ctrl+N
- Win dialog unchanged (time + new-record note, delayed for the confetti)
- New Game button gets an explicit theme-aware bevel (gradient, border,
  hover/active) so it reads as a button even with themes that flatten widgets
2026-08-01 16:40:55 +01:00
2026-08-01 15:34:28 +01:00
2025-04-10 17:19:02 +01:00
2026-08-01 15:34:28 +01:00
2025-03-05 10:53:13 +00:00
2026-08-01 15:34:28 +01:00
2026-08-01 15:34:28 +01:00

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

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, 14 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:

sudo apt install build-essential meson ninja-build libgtkmm-4.0-dev libsigc++-3.0-dev

Fedora

Install dependencies:

sudo dnf install gcc-c++ meson ninja-build gtkmm4.0-devel libsigc++3-devel

Arch Linux

Install dependencies:

sudo pacman -S base-devel meson ninja gtkmm-4.0 libsigc++-3.0

Building the Project

Clone the repository:

git clone https://github.com/bemagri/nomines
cd nomines

Configure and build with Meson:

meson setup build
meson compile -C build

Run the game:

./build/nomines

Installing

To install system-wide:

meson install -C build

Using Nix

If you use the Nix package manager, you can build and run the application with:

nix build
./result/bin/nomines

Or run it directly from the flake:

nix run

The Nix flake also provides a development shell with all dependencies:

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:

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.

S
Description
No description provided
Readme GPL-3.0
372 KiB
Languages
C++ 89.9%
Nix 6.1%
Meson 4%