Skip to content

file-bricks/SoftwareCenter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

SoftwareCenter

A lightweight, cross-platform desktop organizer for managing software shortcuts with tab-based categorization.

Deutsche Dokumentation

SoftwareCenter main window

Quick Reference

Attribute Details
Tech Stack Python 3.10+ / PySide6 (Qt) / QSettings
License MIT (PySide6 dynamically linked under LGPLv3)
Exchange Format softwarecenter-profile-v1.json (see EXPORTFORMAT.md)
PWA Companion Static Web/PWA Companion (see web_companion/README.md)
Last Checked 2026-06-11 (Hygiene & LLM Documentation Check)

Features

  • Tab Organization - Group programs into renamable, movable tabs
  • Drag & Drop - Add files via drag and drop
  • Two View Modes - Tiles (large icons) and list
  • Auto Save - Tabs, contents, and window position are persisted
  • Context Menu - Right-click to open or remove
  • Cross-Platform - Windows, macOS, and Linux
  • Native Icons - Automatic display of system application icons
  • macOS App Bundles - Drag and drop .app applications directly into the organizer
  • Linux Desktop Launchers - .desktop entries show their app name and launch via their desktop command
  • Profile Export/Import - Versioned softwarecenter-profile-v1.json format for migrations and future web/PWA companions
  • Web/PWA Companion - Static web_companion/ viewer for mobile and browser-based profile inspection without launcher permissions
  • Multi-Selection - Delete multiple entries at once
  • Offline-First - No telemetry, no accounts, no cloud connection

Requirements

  • Python 3.10+
  • PySide6

Installation

pip install -r requirements.txt

Run

python SoftwareCenter.py

On Windows, you can also use START.bat or the prebuilt SoftwareCenter.exe from the Releases.

Usage

Action Instructions
Add programs Drag files, shortcuts, .app bundles on macOS, or .desktop launchers on Linux into the window
Organize tabs Toolbar > "New Tab", double-click to rename
Switch view Toolbar > Tiles / List
Launch programs Double-click or right-click > Open/Start
Remove entries Right-click > Delete (removes shortcut only)
Export profile File > Export Profile or the toolbar action
Import profile File > Import Profile or the toolbar action; replaces the current profile

Build Executable

pip install pyinstaller
python -m PyInstaller --noconfirm --clean SoftwareCenter.spec

The EXE will be in dist/SoftwareCenter.exe. On Windows, build_exe.bat also copies it to the project root for local use.

Quality Checks

python -m compileall -q SoftwareCenter.py manage_translations.py translator.py
python -m json.tool locales/translations.json
python -m json.tool store_package.json
python -m pytest -q
python tests/macos_platform_smoke.py
python tests/linux_platform_smoke.py

GitHub Actions runs these smoke checks. The macOS smoke validates .app import, open launching, QSettings persistence, and profile export on macos-latest; the Linux smoke covers .desktop import, Exec/xdg-open launching, QSettings persistence, and profile export on ubuntu-latest. Build artifacts and local task/test files are ignored and should not be committed.

For the Windows Store path, python scripts/run_windows_wack.py --dry-run checks the local MSIX/AppCert paths and prints the reproducible WACK command. The real certification run should be executed from an elevated PowerShell against a fresh signed MSIX before submission.

Exchange Format

Profiles can be exported as softwarecenter-profile-v1.json and imported again later. The format carries tabs, view modes, and entries with label, path, kind, and optional notes, but does not copy local files or credentials. See EXPORTFORMAT.md for details.

Web/PWA Companion

The web_companion/README.md documents a static browser companion for the export format. It imports softwarecenter-profile-v1.json locally, offers tab/type filtering, and restores the last loaded profile for offline starts.

Tech Stack

Component Technology
Language Python 3.10+
GUI Framework PySide6 (Qt for Python)
Storage QSettings (Windows Registry / INI)
Code Size ~690 lines

License

MIT

Note: This application uses PySide6, licensed under LGPLv3. PySide6 is dynamically linked.


Liability

This project is an unpaid open-source donation. Liability is limited to intent and gross negligence (§ 521 German Civil Code). Use at your own risk. No warranty, no maintenance guarantee, no fitness-for-purpose assumed.

About

Lightweight cross-platform desktop organizer for software shortcuts with tab-based categorization. Built with Python and PySide6.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors