Skip to content

A clean interface for managing a pass repository.

License

Notifications You must be signed in to change notification settings

tobagin/secrecy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

218 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Secrets - A GTK4/Libadwaita GUI for pass

Secrets is a modern desktop application that provides a clean and user-friendly graphical interface for managing your passwords with pass, the standard unix password manager. It leverages the power and security of pass, GPG, and Git, wrapped in a beautiful GTK4/Libadwaita UI.

๐Ÿ†• What's New in v0.8.9

UI Improvements and Cleaner Experience

  • Streamlined preferences - Temporarily disabled security and search tabs to remove non-functional options
  • Automatic import refresh - Imported passwords now appear immediately without manual refresh
  • Enhanced import workflow - Better user feedback during JSON and CSV import operations
  • Cleaner interface - Focused preferences on working features only for better user experience
  • Improved usability - Removed confusing placeholder functionality from settings

Import/Export Enhancements

  • Instant UI updates - Password list refreshes automatically after successful imports
  • Better workflow - No more manual refresh needed to see imported passwords
  • Conditional refresh - Only triggers when passwords are actually imported
  • Enhanced feedback - Clear success messages with import counts

โœจ Features

๐Ÿ” Password Management

  • Hierarchical folder organization with expandable tree view
  • Add, edit, delete, and move password entries
  • Structured password fields: username, password, URL, notes, TOTP
  • TOTP support with live 6-digit codes and countdown timers
  • Recovery codes management for 2FA backup
  • Password generator with customizable options and strength indicator
  • Copy to clipboard with automatic clearing for security

๐Ÿ” Search & Navigation

  • Full-text search across all password content
  • Real-time filtering as you type
  • Keyboard shortcuts for efficient navigation
  • Quick access to frequently used passwords

๐ŸŽจ Modern Interface

  • GTK4/Libadwaita design following GNOME HIG
  • Adaptive layout with split-view navigation
  • Dark/light theme support with system integration
  • Toast notifications for user feedback
  • Responsive design that works on different screen sizes

๐Ÿ”ง Advanced Features

  • Advanced Git integration with platform support and repository management
  • Intelligent setup wizard with automatic GPG/pass detection and guided configuration
  • Enhanced setup experience with improved completion flow and verified icon
  • Flatpak compatibility with enhanced GPG environment setup
  • Import/export functionality (JSON, CSV formats)
  • Comprehensive preferences with security settings
  • Automatic clipboard clearing for enhanced security
  • Internationalization support for multiple languages

๐ŸŒ Git Integration & Platform Support

  • Multi-platform support: GitHub, GitLab, Codeberg, and custom Git servers
  • Repository setup wizard with guided configuration
  • Automatic repository detection and status monitoring
  • Real-time Git status with ahead/behind indicators
  • Auto-commit and auto-push options for seamless synchronization
  • Repository management through preferences with setup and status dialogs
  • Git history viewer with commit details and author information
  • Conflict detection and branch management
  • Platform API integration for repository validation and information
  • Conditional UI elements - Git buttons only appear when Git is properly configured

๐Ÿ”’ Security Features

  • Automatic idle locking - Lock application after configurable inactivity period
  • Master password timeout - Require re-entering GPG passphrase periodically
  • Failed attempt protection - Lockout after too many failed unlock attempts
  • Memory clearing - Clear sensitive data from memory when locked
  • Screen lock integration - Lock application when system screen locks
  • Configurable timeouts - Auto-hide passwords and clear clipboard
  • Export security - Require master password for data export operations
  • Session management - Comprehensive security controls in preferences

๐Ÿง™ Setup Wizard

  • Intelligent dependency detection - Automatically detects installed components (pass, GPG keys)
  • Guided GPG key creation - Step-by-step GPG key generation with form validation
  • Password store initialization - Automatic password store setup with proper GPG key association
  • Cross-session compatibility - Handles GPG key detection even when app is reopened
  • Enhanced completion flow - Improved setup completion with custom verified icon
  • User-friendly experience - Setup wizard stays open after completion, only closes on cancellation

โŒจ๏ธ Keyboard Shortcuts

  • Ctrl+N - Add new password
  • Ctrl+E - Edit password
  • Ctrl+C - Copy password
  • Ctrl+Shift+C - Copy username
  • Ctrl+F - Focus search
  • Ctrl+G - Generate password
  • Ctrl+Shift+P - Git pull
  • Ctrl+Shift+U - Git push
  • Ctrl+Shift+S - Git status dialog
  • Ctrl+Shift+G - Git setup dialog
  • Ctrl+, - Preferences
  • F5 - Refresh

๐Ÿ“ธ Screenshots

Main Interface

Main Window Main application window with hierarchical password organization

Password Details Password details view with TOTP support and structured fields

Dialogs and Features

Add Password Add new password dialog with comprehensive field options

Edit Password Edit password dialog with comprehensive field options

Settings and Configuration

Git Settings Git integration settings with multi-platform support

Security Settings Advanced security settings with session management

General Settings General application preferences

Additional Features

Git Status Git status and repository information

Keyboard Shortcuts Keyboard shortcuts help dialog

About Dialog About dialog with application information

๐Ÿ”’ Security

Secrets provides comprehensive security features to protect your sensitive data:

Session Security

  • Idle Lock: Automatically lock the application after a configurable period of inactivity (1-120 minutes)
  • Screen Lock Integration: Lock application when the system screen locks
  • Master Password Timeout: Require re-entering GPG passphrase after a configurable period (15-480 minutes, or never)
  • Memory Clearing: Clear sensitive data from memory when the application is locked

Access Protection

  • Failed Attempt Lockout: Lock out users after too many failed unlock attempts (1-10 attempts)
  • Lockout Duration: Configurable lockout period after failed attempts (1-60 minutes)
  • Secure Unlock Dialog: Password entry with attempt tracking and countdown display

Data Protection

  • Auto-hide Passwords: Automatically hide visible passwords after timeout (5-300 seconds)
  • Clipboard Security: Automatically clear clipboard after copying sensitive data (10-300 seconds)
  • Export Security: Require master password confirmation for data export operations
  • Delete Confirmation: Require confirmation before deleting password entries

Configuration

All security features are configurable through Preferences โ†’ Security:

  • Password Display: Auto-hide settings and timeouts
  • Clipboard: Auto-clear timeout configuration
  • Session Security: Idle lock, screen lock, and master password timeouts
  • Advanced Security: Memory clearing, export protection, and failed attempt settings

Security Benefits

  • Defense in Depth: Multiple layers of protection (UI lock + memory clearing + timeouts)
  • User Control: Balance security vs convenience with configurable settings
  • Automatic Protection: Passive security that doesn't require user intervention
  • Visual Feedback: Clear indication of security status and remaining time

๐ŸŒ Git Integration

Secrets provides comprehensive Git integration for synchronizing your password store across devices and platforms.

Supported Platforms

  • GitHub - Full API integration with repository validation
  • GitLab - Complete GitLab.com and self-hosted support
  • Codeberg - Gitea-based platform integration
  • Custom Git Servers - Support for any Git repository

Git Features

  • Repository Setup Wizard - Guided setup for new or existing repositories
  • Real-time Status Monitoring - Live Git status in the header bar
  • Automatic Operations - Auto-pull on startup, auto-push on changes, auto-commit
  • Visual Indicators - Git status with ahead/behind commit counts
  • Repository Management - Complete repository configuration through preferences
  • History Viewer - Browse commit history with author and date information
  • Conflict Detection - Visual indication of repository conflicts
  • Platform Integration - Repository validation using platform APIs

Git Configuration Options

Available in Preferences โ†’ Git:

Basic Settings

  • Auto-pull on startup - Automatically pull changes when application starts
  • Auto-push on changes - Automatically push changes after modifications
  • Show Git status - Display Git status information in the UI
  • Git timeout - Timeout for Git operations (5-120 seconds)

Advanced Settings

  • Auto-commit on changes - Automatically commit changes before push/pull
  • Show Git notifications - Display toast notifications for Git operations
  • Check remote on startup - Verify remote repository status on application start
  • Custom commit messages - Configure default commit message template

Repository Management

  • Repository Setup - Configure Git repository and remote connections
  • Repository Status - View detailed Git status and commit history
  • Platform Integration - Connect to GitHub, GitLab, or custom Git servers
  • Remote Configuration - Manage remote URLs and authentication

Git Workflow

  1. Setup: Use the Git setup wizard to initialize or connect to a repository
  2. Monitor: Git status indicator shows current repository state
  3. Sync: Manual or automatic push/pull operations keep data synchronized
  4. History: View commit history and repository information
  5. Manage: Configure Git settings through comprehensive preferences

Security Considerations

  • GPG Integration - All Git operations respect GPG configuration
  • Secure Authentication - Support for SSH keys and HTTPS authentication
  • Token Management - Secure storage of platform access tokens
  • Conflict Resolution - Safe handling of merge conflicts and repository issues

๐ŸŒ Internationalization

Secrets has full internationalization support with automatic locale detection and fallback to English when translations are unavailable.

Supported Languages

  • ๐Ÿ‡ง๐Ÿ‡ท Portuguese (Brazil) - pt_BR โš ๏ธ Partial (42% coverage)
  • ๐Ÿ‡ต๐Ÿ‡น Portuguese (Portugal) - pt_PT โš ๏ธ Partial (37% coverage)
  • ๐Ÿ‡บ๐Ÿ‡ธ English (United States) - en_US โœ… Complete (source)
  • ๐Ÿ‡ฌ๐Ÿ‡ง English (United Kingdom) - en_GB โœ… Complete (source)
  • ๐Ÿ‡ช๐Ÿ‡ธ Spanish - es ๐Ÿ‘ Good (79% coverage)
  • ๐Ÿ‡ฎ๐Ÿ‡ช Irish (Gaeilge) - ga ๐Ÿ‘ Good (79% coverage)

Translation Features

  • Automatic locale detection - Detects system locale and loads appropriate translations
  • Fallback support - Falls back to English if translation not available
  • Development support - Works in both development and installed environments
  • UI integration - All user-facing strings in dialogs, menus, and interface are translatable
  • UTF-8 encoding - Proper Unicode support for all languages

Testing Translations

# Test specific locale
LANGUAGE=pt_BR python3 -m secrets.main

# Test Spanish interface
LANGUAGE=es ./run-dev.sh

Adding New Translations

  1. Add language code to po/LINGUAS
  2. Create new .po file: msginit --input=po/secrets.pot --locale=LANG --output=po/LANG.po
  3. Translate strings in the .po file
  4. Rebuild: meson compile -C build

Translation File Structure

po/
โ”œโ”€โ”€ LINGUAS              # List of supported languages
โ”œโ”€โ”€ secrets.pot          # Translation template
โ”œโ”€โ”€ pt_BR.po            # Portuguese (Brazil) translations
โ”œโ”€โ”€ pt_PT.po            # Portuguese (Portugal) translations
โ”œโ”€โ”€ en_GB.po            # English (UK) translations
โ”œโ”€โ”€ en_US.po            # English (US) translations
โ”œโ”€โ”€ es.po               # Spanish translations
โ”œโ”€โ”€ ga.po               # Irish translations
โ””โ”€โ”€ meson.build         # Build configuration

๐Ÿ› ๏ธ Technology Stack

  • Language: Python 3.8+
  • UI Framework: GTK4 & Libadwaita with modern design patterns
  • Build System: Meson & Ninja with comprehensive build automation
  • Dependencies: PyGObject, pyotp, requests
  • Backend: pass, GnuPG, Git with intelligent integration
  • Packaging: Flatpak with enhanced GPG environment and setup wizard
  • Architecture: MVC pattern with specialized managers and service layers

๐Ÿ“ฆ Installation

From Flathub (Recommended)

Coming soon - the application will be available on Flathub once submitted and approved.

flatpak install flathub io.github.tobagin.secrets
flatpak run io.github.tobagin.secrets

Building from Source

Prerequisites

  • Python 3.8+
  • GTK4 and Libadwaita development libraries
  • Meson (>= 0.64.0) and Ninja
  • pass, git, and gpg installed and configured

Build Steps

# Clone the repository
git clone https://github.com/tobagin/Secrets.git
cd Secrets

# Build with meson
meson setup build
meson compile -C build

# Run for development
./run-dev.sh

Development Options

./run-dev.sh                 # Recommended: run with meson devenv
./run-dev.sh --direct        # Run directly without meson
./build/secrets-dev       # Run generated script
python3 -m secrets.main      # Run module directly

Building Flatpak Locally

# Install flatpak-builder
sudo dnf install flatpak-builder  # Fedora
sudo apt install flatpak-builder  # Ubuntu/Debian

# Build and install
flatpak-builder --user --install --force-clean build io.github.tobagin.secrets.yml

# Run the Flatpak
flatpak run io.github.tobagin.secrets

Flatpak GPG Compatibility

The Flatpak version includes enhanced GPG environment setup for proper password decryption in sandboxed environments:

  • Automatic GPG environment configuration - Sets up proper GPG_TTY, GNUPGHOME, and agent settings
  • GUI pinentry integration - Includes pinentry-gtk2 for password prompts in the GUI
  • Robust error handling - Graceful fallbacks when GPG components are missing
  • Seamless operation - No manual configuration required for GPG operations

System Installation

# Build and install system-wide
meson setup build --prefix=/usr
meson compile -C build
sudo meson install -C build

# Run the installed application
io.github.tobagin.secrets

๐Ÿ—๏ธ Project Structure

src/
โ”œโ”€โ”€ secrets/                 # Main application package
โ”‚   โ”œโ”€โ”€ controllers/         # UI controllers and state management
โ”‚   โ”œโ”€โ”€ managers/            # Business logic managers
โ”‚   โ”œโ”€โ”€ services/            # Core services (password, git)
โ”‚   โ”œโ”€โ”€ setup_wizard/        # Setup wizard components
โ”‚   โ”œโ”€โ”€ ui/                  # UI components and dialogs
โ”‚   โ”‚   โ”œโ”€โ”€ components/      # Reusable UI components
โ”‚   โ”‚   โ”œโ”€โ”€ dialogs/         # Dialog windows
โ”‚   โ”‚   โ””โ”€โ”€ widgets/         # Custom widgets
โ”‚   โ””โ”€โ”€ utils/               # Utility functions
data/
โ”œโ”€โ”€ ui/                      # UI template files
โ”œโ”€โ”€ icons/                   # Application icons
โ””โ”€โ”€ screenshots/             # Application screenshots
po/                          # Translation files

๐Ÿ—บ๏ธ Roadmap

๐Ÿ”„ Upcoming Features (v0.9.x)

  • ๐Ÿ”— Git Integration - Full Git synchronization with remote repositories
    • Git push/pull operations with conflict resolution
    • Repository setup and management
    • Commit history and status tracking
    • Platform integration (GitHub, GitLab, etc.)
  • ๐Ÿ“Š Advanced Analytics - Password security insights and statistics
  • ๐Ÿ” Enhanced Security - Additional encryption options and security features
  • ๐ŸŒ Cloud Sync - Alternative synchronization methods beyond Git

๐ŸŽฏ Future Enhancements (v1.0+)

  • ๐Ÿ“ฑ Mobile Companion - Mobile app for secure password access
  • ๐Ÿ”Œ Browser Extension - Direct browser integration for autofill
  • ๐Ÿข Team Features - Shared password stores for organizations
  • ๐Ÿ”„ Advanced Import/Export - Support for more password managers
  • ๐ŸŽจ Theming System - Custom themes and appearance options

๐Ÿ› Known Issues & Improvements

  • Performance optimizations for large password stores
  • Enhanced search capabilities with advanced filters
  • Improved accessibility features
  • Better error handling and user feedback

๐Ÿ“„ License

This project is licensed under the GPL-3.0-or-later License - see the LICENSE file for details.

About

A clean interface for managing a pass repository.

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages