Skip to content

Latest commit

Β 

History

70 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Stickity Stacks

Python Version GTK Platform Version

A frameless, lightweight sticky note application written in Python. Create, stack, and customize multiple sticky notes with persistent storage and seamless desktop integration.

Stickity Stacks Icon

πŸš€ Quick Start

Windows Users

πŸ‘‰ Download the installer and get started in seconds!

πŸ“– First time? Check out the Quick Start Guide for step-by-step instructions.

Linux Users

See the Linux installation instructions below.


πŸ“Έ Screenshots

Basic Note
Clean, frameless sticky note
Stacked Notes
Multiple notes with dog-ear indicator
Customization
Different colors and content
Settings Panel
Font and color customization

✨ Features

  • Frameless Design: Clean, borderless sticky notes that blend seamlessly with your desktop
  • Cross-Platform: Runs on both Windows (tkinter) and Linux (GTK4)
  • Note Stacking: Create and manage multiple notes with Ctrl+S (Linux) or Ctrl+N (Windows)
  • Visual Navigation: Dog-ear indicator shows current note position in stack (e.g., "2/4") (Linux only)
  • Quick Actions: Delete notes with Ctrl+D or the trash icon
  • Full Customization: Personalize fonts, text colors, and background colors
  • Clipboard Editing: Highlight characters and right-click to cut, copy, paste, or select all
  • Drag to Move: Click and drag the title/header area to reposition a note
  • Resizable Notes: Drag the bottom-right corner to resize (Windows)
  • Persistent Storage: All notes and styling preferences are automatically saved
  • Desktop Integration: Add to your application menu and launcher

πŸͺŸ Windows Installation

For End Users (Easiest)

  1. Download the installer from Releases
  2. Run StickityStacks_Setup_v1.0.2.exe
  3. Follow the installation wizard
  4. Launch from Start Menu!

πŸ“– Need help? See the Quick Start Guide

For Developers

Want to build the installer yourself?

  1. Quick build (executable only):

    packaging\windows\build.bat
  2. Complete build (executable + installer):

    packaging\windows\build_complete.bat

πŸ“– Detailed instructions: BUILD_INSTALLER.md

Manual Windows Setup

Don't want to use the installer?

  1. Install Python 3.6+ from python.org
  2. Clone this repository
  3. Run:
    python stickity_stacks_win.py

πŸ“– More details: README_WINDOWS.md


🐧 Installation (Linux)

Prerequisites

Before installing Stickity Stacks, ensure you have the following dependencies:

  • Python 3.6 or higher
  • GTK4 development libraries
  • Python GObject introspection bindings

Installing Dependencies

Fedora/RHEL/CentOS:

sudo dnf install python3-gobject gtk4

Ubuntu/Debian:

sudo apt install python3-gi gir1.2-gtk-4.0

Arch Linux:

sudo pacman -S python-gobject gtk4

Installation Steps

  1. Clone the repository:

    git clone https://github.com/T-Chartrand/Stickity_Stacks.git
    cd Stickity_Stacks
  2. Make the script executable (optional):

    chmod +x stickity_stacks.py
  3. Run the application:

    python3 stickity_stacks.py
    # OR
    ./stickity_stacks.py

🎯 Usage

Keyboard Shortcuts

Platform New Note Delete Note
Linux Ctrl+S Ctrl+D
Windows Ctrl+N or Ctrl+S Ctrl+D

Mouse Controls

  • Move note: Click and drag the title/header area
  • Select text: Click and drag across characters in the note body
  • Edit selection: Right-click the note body for Cut, Copy, Paste, and Select All
  • Resize (Windows): Drag the bottom-right corner
  • Switch notes (Linux): Click the dog-ear corner indicator (shows current position like "2/4")
  • Settings: Click the gear icon (βš™οΈ) to customize fonts and colors
  • Delete: Click the trash icon (πŸ—‘οΈ) to delete current note

πŸ–₯️ Desktop Integration (Linux)

Add Stickity Stacks to your application menu for easy access:

  1. Copy the desktop file:

    cp com.stickity.stacks.desktop ~/.local/share/applications/
  2. Install the application icon:

    mkdir -p ~/.local/share/icons
    cp stickity_stacks.png ~/.local/share/icons/
  3. Update the desktop file path (if needed):

    Edit ~/.local/share/applications/com.stickity.stacks.desktop and ensure the Exec= line points to your script:

    Exec=/full/path/to/stickity_stacks.py
  4. Refresh the application database:

    update-desktop-database ~/.local/share/applications

🎨 Customization

Stickity Stacks offers extensive customization options:

  • Fonts: Choose from any system font with size adjustment
  • Text Color: Pick any color for your note text
  • Background Color: Customize note background colors
  • Persistent Settings: All preferences are saved automatically

Access customization through the gear icon (βš™οΈ) in the top-right corner of any note.


πŸ“ Project Structure

Stickity_Stacks/
β”œβ”€β”€ stickity_stacks.py              # Main application (Linux/GTK4)
β”œβ”€β”€ stickity_stacks_win.py          # Windows version (tkinter)
β”œβ”€β”€ packaging/windows/build.bat     # Windows executable builder
β”œβ”€β”€ packaging/windows/build_complete.bat # Complete installer builder
β”œβ”€β”€ build_installer.spec            # PyInstaller configuration
β”œβ”€β”€ installer.iss                   # Inno Setup installer script
β”œβ”€β”€ com.stickity.stacks.desktop     # Linux desktop integration
β”œβ”€β”€ stickity_stacks.png             # Application icon
β”œβ”€β”€ requirements_windows.txt        # Windows dependencies
β”œβ”€β”€ snap/snapcraft.yaml             # Snap package configuration
β”œβ”€β”€ README.md                       # This file
β”œβ”€β”€ README_WINDOWS.md               # Windows-specific README
β”œβ”€β”€ QUICKSTART.md                   # Beginner's guide
β”œβ”€β”€ BUILD_INSTALLER.md              # Installer build guide
└── LICENSE                         # GNU GPL v3 license

πŸ”§ Development

Contributing

We welcome contributions! Here's how you can help:

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Commit your changes: git commit -m 'Add some amazing feature'
  4. Push to the branch: git push origin feature/amazing-feature
  5. Open a Pull Request

Issues and Bug Reports

Found a bug or have a feature request? Please open an issue on GitHub.

Development Setup

Linux:

git clone https://github.com/T-Chartrand/Stickity_Stacks.git
cd Stickity_Stacks
sudo dnf install python3-gobject gtk4  # Fedora
python3 stickity_stacks.py

Windows:

git clone https://github.com/T-Chartrand/Stickity_Stacks.git
cd Stickity_Stacks
python stickity_stacks_win.py

πŸ“¦ Packaging

Windows Installer

See BUILD_INSTALLER.md for complete instructions.

Snap Package (Linux)

snapcraft

AppImage (Linux)

The AppImage bundles Python, PyGObject, and GTK4, so end users do not need to install those dependencies. Building it requires Docker, appimagetool, desktop-file-validate, and appstreamcli:

make linux

The versioned output is written under releases/v<version>/linux/.

Arch Package

Build the stickity-stacks-git package without installing it:

make arch

πŸ”’ Data Storage

Linux:

  • Notes stored in: stickity_stacks_notes.json

Windows:

  • Notes stored in: %USERPROFILE%\stickity_stacks_notes_win.json

Files are automatically created and updated. Safe to delete if you want to reset all notes and settings.


πŸ“ License

This project is licensed under the GNU General Public License v3.0 β€” see the LICENSE file for details.


πŸ‘¨β€πŸ’» Author

Tyrrell Chartrand


πŸ™ Acknowledgments

  • Built with GTK4, tkinter, and Python
  • Inspired by the need for simple, effective desktop note-taking
  • Thanks to the GTK, tkinter, and Python communities for excellent documentation

πŸš€ Future Features

  • Multiple note windows
  • Note export functionality
  • Reminder/alarm integration
  • Cloud sync capabilities
  • Plugin system for extensions
  • macOS support

πŸ“š Documentation


Happy note stacking! πŸ“βœ¨

⭐ Star this repo if you find it useful! ⭐

About

Lightweight cross-platform sticky notes with stacking, customization, and local autosave

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages