GitHub Manager - Abdelrhman-AK/WinPaletter GitHub Wiki

GitHub Manager Guide


[!IMPORTANT] Before using the WinPaletter GitHub Manager for the first time, you must read the following documentation if you have not already reviewed the introduction and sign-in guide:

These guides explain the setup process and authentication requirements before you proceed.

[!WARNING] Do not use unofficial builds. Some "cracked" versions appear on GitHub. WinPaletter is completely free and does not require a paid license. With GitHub integration for uploading and managing themes directly in the app, always use the official build for your safety.

[!WARNING] The GitHub Manager feature is highly experimental.

You may encounter bugs, unexpected behavior, or errors during usage.

If you experience any issues, please report them here: https://github.com/Abdelrhman-AK/WinPaletter/issues/new/choose

Your feedback helps improve stability and functionality.


Introduction

The WinPaletter GitHub Manager is an integrated tool that connects WinPaletter with GitHub to manage, organize, and publish theme files through a structured branch-based workflow.

It allows users to:

  • Connect securely using GitHub authentication.
  • Fork and manage a personal copy of the WinPaletter Store repository.
  • Create and manage branches for theme development.
  • Upload, modify, and organize theme files inside an Explorer-style interface.
  • Submit themes for review through automated Pull Requests, to be available for everyone using WinPaletter.

GitHub Manager – Technical Limitations

[!WARNING] The GitHub integration uses the official C# client library (Octokit) to communicate with GitHub APIs. All operations depend on API requests, so they are subject to GitHub rate limiting rules.

Rate limits vary based on authentication method, permissions, and the number of requests triggered during bulk operations such as sync, upload, delete, or repository scanning. These actions often generate multiple API calls, which can quickly exhaust the allowed quota and cause temporary throttling or request failures.

This limitation comes from GitHub’s platform restrictions, not the application itself.

When rate limits are reached, the application detects the restriction and clearly shows when it is safe to retry.

[!WARNING] Accurate progress tracking for file operations is difficult because:

  • Operations are executed through multiple API calls.
  • Some processes complete asynchronously on GitHub’s side.
  • The API does not always provide granular status updates.
  • Batch tasks may partially complete before failing.

As a result, progress indicators represent estimated progress rather than the exact backend state.


Index

  1. Start the GitHub Manager
  2. Wait for Account Data to Load
  3. Account Overview
  4. Open My Themes and Manage Branches
  5. Branches Toolbar Buttons
  6. Branches Legends
  7. Open a Branch (Explorer Mode)
  8. Explorer Toolbar Buttons
  9. Keyboard Shortcuts
  10. Context Menus
  11. Folder Options
  12. Linked Files
  13. Item Properties
  14. Download Items
  15. Sync a Branch
  16. Upload a Theme
  17. Close Your Session
  18. Send a Publication Request
  19. After Approval
  20. Continue Working on a Pending PR

1. Start the GitHub Manager

You can start the GitHub Manager using one of the following methods:

Method 1 Method 2
Click the Users button on the main form to open the manager. Open WinPaletter Store, then click the Users button to open the manager.
MainFormAvatar UsersDashboard Store

2. Wait for Account Data to Load

After launching the manager, wait until your account data is fully loaded.

Loading


3. Account Overview

Once loading is complete, an account overview page will appear. This confirms that you are successfully signed in.

AccountOverview


4. Open My Themes and Manage Branches

Open the My Themes tab and read the instructions while WinPaletter loads your personal themes repository and its branches.

Repository Setup

If the repository has not been forked yet:

  • Click the Fork button to create your own copy of the WinPaletter Store repository on GitHub.
  • Wait until the forking process completes and the branches are loaded.

What the Instructions Screen Means

Instructions

The instructions screen explains the initial setup process:

  • WinPaletter must load your forked repository before you can manage themes.
  • If no fork exists, a Fork button will appear to create one automatically.
  • After forking, the application retrieves branch information from your repository.
  • If a fork already exists, loading skips the fork step and proceeds directly to branch management.
  • Technical Limitations: discussed above

Fork

Once loading finishes β€” either after forking or if a fork already exists β€” the page automatically switches to the branches view.

Branches

[!IMPORTANT]

  • By default, the main branch is hidden.
  • The main branch acts as the primary source for creating and updating branches.
  • It is refreshed each time GitHub Manager opens and is used for synchronization.
  • Click the + button to create a new branch.

5. Branches Toolbar Buttons

Button Function on the selected branch
Add Create a new branch
Clone Clone the selected branch
Delete Delete the selected branch
Rename Rename the selected branch
Protect Toggle protection/unprotection
Sync Sync with the main branch *

[!IMPORTANT]

  • Synchronizing a branch with the main branch discards all changes made in that branch.

6. Branches Legends

Legend Description Accessibility
L Protected branch that is synchronized with or ahead of main Not accessible
L Protected branch where main is ahead Not accessible
L Verified by GitHub, protected, and synchronized with or ahead of main Not accessible
L Verified by GitHub, protected, but not synchronized (main is ahead) Not accessible
L Unprotected branch that is synchronized with or ahead of main Accessible by a double-click
L Unprotected branch where main is ahead Accessible by a double-click
L Verified by GitHub, unprotected, and synchronized with or ahead of main Accessible by a double-click
L Verified by GitHub, unprotected, but not synchronized (main is ahead) Accessible by a double-click

[!IMPORTANT]

  • Protected branches prevent force pushes and deletion, and can enforce pull request reviews.
  • Unprotecting a branch removes these restrictions.
  • Only unprotected branches are accessible for editing. Protected branches act as backups.

[!TIP]

  • A branch is at main when it contains the same commits as main (fully synchronized).
  • A branch is ahead of main when it has new commits that are not yet merged into main.
  • main is ahead of a branch when it contains commits that the branch does not yet include.
  • A branch is considered updated when it is at or ahead of main.
  • It is considered not updated when main contains newer commits than the branch.

[!WARNING] You cannot open protected branches.
Protected branches include:

  • L
  • L
  • L
  • L
    All other branches can be opened normally.

7. Open a Branch (Explorer Mode)

Double-click a branch to open it.

ExplorerLoading

Wait until the branch data finishes loading. An Explorer-style manager will then appear, allowing you to perform standard file and folder operations.

Explorer


8. Explorer Toolbar Buttons

Button Function
UploadTheme Upload new theme(s)
Download Download selected items
Cut Cut selected items
Copy Copy selected items
Paste Paste into the current directory
Rename Rename selected item
Delete Delete selected items
Sync Sync the open branch with the main branch *
View Toggle and manage view options
Settings Folder options
Back Navigate backward
Forward Navigate forward
Up Navigate up
Refresh Refresh the current directory
Search Search

9. Keyboard Shortcuts

Shortcut Function
Enter Open selected directory
ALT + Enter Open properties
F2 or CTRL + R Rename selected item
Backspace or ALT + ← Navigate backward
ALT + β†’ Navigate forward
F5 Refresh
CTRL + A Select all
CTRL + N Create a new directory
CTRL + C Copy
CTRL + X Cut
CTRL + V Paste
Delete Delete selected item(s)

10. Context Menus

Preview Function
EntryContextMenu Item context menu
NewContextMenu New folder or theme options
ViewsContextMenu View options menu
ViewsToolbar View options from toolbar

11. Folder Options

FolderOptions

Folder Options control how the Explorer behaves inside the GitHub Manager.

Available settings:

  • Show or hide hidden files β€” Toggle visibility of hidden items inside the branch.
  • Change the current view mode β€” Switch between different layout styles for browsing files and folders.
  • Linked-file behavior β€” Define how the system handles theme files that are connected to resource packs:
    • Ask for confirmation β€” When an operation affects a theme file (*.wpth) that has a linked resource pack (*.wptp), the system prompts you to confirm applying the same operation to the linked file.
    • Perform the same operation β€” Any action applied to the theme file is automatically applied to its linked resource pack without asking.
    • Do nothing β€” Operations affect only the selected file, and linked files are ignored (behaves like a standard file explorer).

12. Linked Files

LinkedFileOperation

Linked files describe the relationship between a theme file and its optional resource pack.

  • A theme file (*.wpth) may have an optional companion resource pack (*.wptp).
  • Both files must:
    • Share the exact same file name
    • Be located in the same directory
  • If the resource pack file is missing or renamed, it will not automatically load with the theme.

Because these two files function as a pair:

  • File operations such as rename, move, copy, or delete should ideally apply to both.
  • Linked-file behavior is controlled from Folder Options.
  • If you need to manage only the theme file without affecting its resource pack, disable linked-file synchronization from the settings.

13. Item Properties

Open properties using:

  • ALT + Enter, or
  • Right-click β†’ Properties

Properties0 Properties1


14. Download Items

To download:

  • Right-click β†’ Download, or
  • Click the Download button in the toolbar.

Select the destination folder. The downloader window will appear:

Downloader


15. Sync a Branch

This resets all changes and synchronizes the branch with the latest approved store themes.

  • Click Sync in the toolbar or from the branches view.

[!WARNING] Synchronizing a branch with the main branch permanently discards all changes made in that branch.


16. Upload a Theme

Uploading themes allows you to publish theme files to your branch in the repository.

Steps to Upload

  1. Create a new directory for your theme(s).
  2. Start the upload process using one of the following methods:
    • Click the Upload Theme button in the toolbar (UploadTheme).
    • Or right-click β†’ New β†’ WinPaletter theme file.

NewContextMenu

Upload Options

When the uploader window opens, you can choose one of the following sources:

  1. Upload a single theme file from your device.
  2. Upload multiple theme files from a selected folder (including subfolders for batch uploads).
  3. Use the theme currently loaded inside WinPaletter.
  4. Use the theme currently applied on your system.

Uploader

After selecting the source, click Upload Theme to begin uploading.

[!WARNING] The GitHub API library used (Octokit for C#) does not provide upload progress tracking. During upload, a marquee progress animation appears in the address bar to indicate activity.

Marquee


17. Close Your Session

Click the close button to end your session.

CloseSession

[!IMPORTANT] All operations (copy, cut, create, delete, etc.) are committed automatically. Closing the session does not discard changes.

You can reopen GitHub Manager later and resume the branch session.

18. Send a Publication Request

To publish your themes and request approval:

  • Click the green Send themes publication request / Pull Request button in the bottom toolbar.

ExplorerPR

A Confirm Pull Request dialog will appear containing important notes and guidelines.

PRDialog

Approval Requirements

  • Every Pull Request must be reviewed and approved by Abdelrhman-AK before it can be merged into the main branch and made public.
  • Approval may take time depending on availability.

Working on the Pull Request

  • You can continue updating your branch until it is approved.
  • Any fixes, improvements, or adjustments must be committed to the same branch that generated the PR.
  • Avoid creating multiple PRs for the same upload session unless necessary.
  • Review your changes inside GitHub Explorer before submission to ensure no unintended files are included.

Branch Handling

  • After the PR is approved and merged, delete the approved branch.
  • Always create a fresh branch for new uploads or new sessions.
  • Do not reuse old branches for new submissions to prevent conflicts.

Best Practices

  • Keep each PR focused β€” ideally one theme or one upload session per PR.
  • You are responsible for copyrights of all included media (e.g., wallpapers, sounds, icons, screensavers) if a resource pack is included.
  • Sync your branch with the main branch before submitting the PR to reduce merge conflicts.

After reviewing the confirmation dialog, click Continue to automatically create and submit the Pull Request.
The PR page will open in your browser for tracking.


19. After Approval

Once your Pull Request is approved:

  • Delete the approved branch.
  • Create a new branch for your next upload session.

20. Continue Working on a Pending Pull Request

If your Pull Request has not yet been approved:

  • Reopen its branch in GitHub Manager.
  • Continue uploading, modifying, or removing themes as needed.
  • Commit updates to the same branch so they are reflected in the existing Pull Request.

Summary

GitHub Manager provides a controlled workflow for theme publication:

  1. Sign in and fork the store repository.
  2. Create a branch for each upload session.
  3. Manage theme files using the integrated Explorer interface.
  4. Configure file behavior, including linked theme resource handling.
  5. Upload themes and organize content inside your branch.
  6. Submit a Pull Request for approval.
  7. After approval, delete the branch and start a new session for future uploads.

See Also