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:
- GitHub Manager β Introduction
- Sign in / Sign out with GitHub using WinPaletter
- GitHub Manager and security analysis
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
- Start the GitHub Manager
- Wait for Account Data to Load
- Account Overview
- Open My Themes and Manage Branches
- Branches Toolbar Buttons
- Branches Legends
- Open a Branch (Explorer Mode)
- Explorer Toolbar Buttons
- Keyboard Shortcuts
- Context Menus
- Folder Options
- Linked Files
- Item Properties
- Download Items
- Sync a Branch
- Upload a Theme
- Close Your Session
- Send a Publication Request
- After Approval
- 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. |
![]() |
![]() |
2. Wait for Account Data to Load
After launching the manager, wait until your account data is fully loaded.

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

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

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

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

[!IMPORTANT]
- By default, the
mainbranch is hidden.- The
mainbranch 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 |
|---|---|
![]() |
Create a new branch |
![]() |
Clone the selected branch |
![]() |
Delete the selected branch |
![]() |
Rename the selected branch |
![]() |
Toggle protection/unprotection |
![]() |
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 |
|---|---|---|
![]() |
Protected branch that is synchronized with or ahead of main |
Not accessible |
![]() |
Protected branch where main is ahead |
Not accessible |
![]() |
Verified by GitHub, protected, and synchronized with or ahead of main |
Not accessible |
![]() |
Verified by GitHub, protected, but not synchronized (main is ahead) |
Not accessible |
![]() |
Unprotected branch that is synchronized with or ahead of main |
Accessible by a double-click |
![]() |
Unprotected branch where main is ahead |
Accessible by a double-click |
![]() |
Verified by GitHub, unprotected, and synchronized with or ahead of main |
Accessible by a double-click |
![]() |
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
mainwhen it contains the same commits asmain(fully synchronized).- A branch is ahead of
mainwhen it has new commits that are not yet merged intomain.mainis 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
maincontains newer commits than the branch.
[!WARNING] You cannot open protected branches.
Protected branches include:
All other branches can be opened normally.
7. Open a Branch (Explorer Mode)
Double-click a branch to open it.

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

8. Explorer Toolbar Buttons
| Button | Function |
|---|---|
![]() |
Upload new theme(s) |
![]() |
Download selected items |
![]() |
Cut selected items |
![]() |
Copy selected items |
![]() |
Paste into the current directory |
![]() |
Rename selected item |
![]() |
Delete selected items |
![]() |
Sync the open branch with the main branch * |
![]() |
Toggle and manage view options |
![]() |
Folder options |
![]() |
Navigate backward |
![]() |
Navigate forward |
![]() |
Navigate up |
![]() |
Refresh the current directory |
![]() |
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 |
|---|---|
![]() |
Item context menu |
![]() |
New folder or theme options |
![]() |
View options menu |
![]() |
View options from toolbar |
11. Folder Options

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).
- Ask for confirmation β When an operation affects a theme file (
12. Linked Files

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

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:

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
- Create a new directory for your theme(s).
- Start the upload process using one of the following methods:
- Click the Upload Theme button in the toolbar (
). - Or right-click β New β WinPaletter theme file.
- Click the Upload Theme button in the toolbar (

Upload Options
When the uploader window opens, you can choose one of the following sources:
- Upload a single theme file from your device.
- Upload multiple theme files from a selected folder (including subfolders for batch uploads).
- Use the theme currently loaded inside WinPaletter.
- Use the theme currently applied on your system.

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.
17. Close Your Session
Click the close button to end your session.

[!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.

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

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
mainbranch 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:
- Sign in and fork the store repository.
- Create a branch for each upload session.
- Manage theme files using the integrated Explorer interface.
- Configure file behavior, including linked theme resource handling.
- Upload themes and organize content inside your branch.
- Submit a Pull Request for approval.
- After approval, delete the branch and start a new session for future uploads.

































