Skip to content

Commit

Permalink
Merge pull request #13 from beyenilmez/development
Browse files Browse the repository at this point in the history
Development
  • Loading branch information
beyenilmez authored Sep 5, 2024
2 parents 96d6bbd + 3b1c209 commit 59ea6c6
Show file tree
Hide file tree
Showing 157 changed files with 12,597 additions and 2,960 deletions.
105 changes: 85 additions & 20 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -1,34 +1,99 @@
name: Build

name: "Build"
on:
workflow_dispatch:
push:
branches:
- main
- development
- main
pull_request:
branches:
- main
- development
- main

permissions:
contents: write

jobs:
build:
package:
name: Package
strategy:
fail-fast: false
matrix:
build:
[
{
name: desktop-manager,
platform: windows/amd64,
os: windows-latest,
},
]
runs-on: ${{ matrix.build.os }}
platform: [windows-latest]
build-name: ["iconium"]
go-version: [1.22]
node-version: [20]
runs-on: ${{ matrix.platform }}
steps:
- uses: actions/checkout@v4
- name: Checkout repository
uses: actions/checkout@v4

- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go-version }}

- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}

- name: Setup Wails
run: go install github.com/wailsapp/wails/v2/cmd/wails@latest

- name: Build Wails app
run: wails build -nsis

- name: Sign Windows binaries
shell: powershell
run: |
echo "Creating certificate file"
New-Item -ItemType directory -Path certificate
Set-Content -Path certificate\certificate.txt -Value '${{ secrets.WIN_SIGNING_CERT }}'
certutil -decode certificate\certificate.txt certificate\certificate.pfx
echo "Signing Binary"
& 'C:/Program Files (x86)/Windows Kits/10/bin/10.0.17763.0/x86/signtool.exe' sign /fd sha256 /tr http://ts.ssl.com /f certificate\certificate.pfx /p '${{ secrets.WIN_SIGNING_CERT_PASSWORD }}' .\build\bin\${{matrix.build-name}}.exe
echo "Signing Installer"
& 'C:/Program Files (x86)/Windows Kits/10/bin/10.0.17763.0/x86/signtool.exe' sign /fd sha256 /tr http://ts.ssl.com /f certificate\certificate.pfx /p '${{ secrets.WIN_SIGNING_CERT_PASSWORD }}' .\build\bin\${{matrix.build-name}}-amd64-installer.exe
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
submodules: recursive
- uses: dAppServer/[email protected]
name: binaries
path: build/bin/*

extract-version:
if: github.ref == 'refs/heads/main'
name: Extract version
runs-on: ubuntu-latest

outputs:
version: ${{ steps.extract_version.outputs.version }}

steps:
- name: Checkout repository
uses: actions/checkout@v3

- name: Extract version
id: extract_version
run: |
version=$(jq -r '.info.productVersion' wails.json)
echo "version=$version" >> $GITHUB_OUTPUT
create-release:
if: github.ref == 'refs/heads/main'
name: Create release
needs: [extract-version, package]
runs-on: ubuntu-latest
steps:
- name: Download artifacts
uses: actions/download-artifact@v4
with:
build-name: ${{ matrix.build.name }}
build-platform: ${{ matrix.build.platform }}
name: binaries
path: ./artifacts

- name: Create Draft Release
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GH_REPO: ${{ github.repository }}
run: |
gh release create v${{ needs.extract-version.outputs.version }} ./artifacts/* --title "Release v${{ needs.extract-version.outputs.version }}" --draft --generate-notes
20 changes: 13 additions & 7 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,6 @@ yarn-error.log*
pnpm-debug.log*
lerna-debug.log*

node_modules
dist
dist-ssr
*.local

# Editor directories and files
.vscode/*
!.vscode/extensions.json
Expand All @@ -23,6 +18,17 @@ dist-ssr
*.sln
*.sw?

# wails
# Wails
*.exe~
./build/bin/*
*.syso
*.local
node_modules
/build/bin
/build/windows/installer/wails_tools.nsh
/build/windows/installer/tmp
/frontend/dist
/frontend/dist-ssr
/frontend/package.json.md5

# Certificate files
certificate.*
87 changes: 66 additions & 21 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,32 +1,77 @@
# Desktop Manager

Icon and description editor, profile creation tool for your desktop. (WIP)
# Iconium

## Screenshots
<p align="center">
<a href="https://github.com/beyenilmez/iconium">
<img src="build/appicon.png" alt="Logo" width="80" height="80">
</a>
<br/>
<a style="font-size: 1.25rem" href="https://beyenilmez.github.io/iconium/" target="_blank">Website</a>

![Main](./assets/screenshot-1.png)
**Iconium** is a flexible tool for creating and managing icon packs. Iconium can apply icons to `.lnk`, `.url` and directories and extract them from files such as `.png`, `.jpg`, `.jpeg`, `.webp`, `.svg`, `.bmp`, `.ico`, `.exe`, `.lnk` and `.url` files. It also provides advanced features like file matching with environment variables or wildcards and customizing icon radius and opacity.

## Features
## Table of Contents
- [Iconium](#iconium)
- [Table of Contents](#table-of-contents)
- [Screenshots](#screenshots)
- [Features](#features)
- [Planned Features](#planned-features)
- [Installation](#installation)
- [Translation](#translation)
- [Technologies](#technologies)
- [License](#license)

- Create desktop profiles
- Edit icon and description
- Shortcut (.lnk) support
## Screenshots
![Screenshot 1](./assets/screenshot-1.png)
![Screenshot 2](./assets/screenshot-2.png)
![Screenshot 3](./assets/screenshot-3.png)

## Planned
## Features
- Create, distribute and use icon packs
- Edit icon radius and opacity
- Match files by environment variables, wildcards, or destination paths
- Supports `.lnk`, `.url`, and directories
- Can extract icons from `.png`, `.jpg`, `.jpeg`, `.webp`, `.svg`, `.bmp`, `.ico`, `.exe`, `.lnk` and `.url` files
- Highly customizable appearance
- Automatic update
- Color schemes and light/dark mode for each scheme

- Save desktop layout to profile
- Share profiles as files
- Folder and .url support
- Sync desktop with profile
## Planned Features
- Save desktop layouts to icon packs
- Auto-apply scheduling for icon packs
- Custom icon masks

## Built With
## Installation
1. Install Wails: [Wails installation guide](https://wails.io/docs/gettingstarted/installation).

2. Clone the repository:
```bash
git clone https://github.com/beyenilmez/iconium.git
```
3. Navigate to the project directory:
```bash
cd iconium
```
4. Run in dev mode:
```bash
wails dev
```
or

Build:
```bash
wails build
```
## Translation
1. Create a copy of `frontend/public/locales/en-US.json` file and rename it using your language code, which you can find [here](https://learn.microsoft.com/en-us/openspecs/office_standards/ms-oe376/6c085406-a698-4e12-9d4d-c3b0ee3dbc4a).
2. Translate the file to your language.
3. Update `frontend/src/locales.json` to include your language.

- [Wails](https://wails.io/)
- [React](https://react.dev/)
- [tailwindcss](https://tailwindcss.com/)
- [shadcn-ui](https://ui.shadcn.com/)
- [lucide-react](https://lucide.dev/guide/packages/lucide-react)
## Technologies
- **Backend**: [Go](https://go.dev/), [Wails](https://wails.io/)
- **Frontend**: [React](https://react.dev/), [TailwindCSS](https://tailwindcss.com/), [shadcnUI](https://ui.shadcn.com/)
- **Icon Processing**: [ImageMagick](https://imagemagick.org/), [ExtractIcon](https://github.com/bertjohnson/ExtractIcon)
- **Translation**: [i18next](https://react.i18next.com/)

## License

Distributed under the MIT License. See [LICENSE](https://github.com/beyenilmez/desktop-manager/blob/main/LICENSE) for more information.
Distributed under the MIT License. See [LICENSE](https://github.com/beyenilmez/iconium/blob/main/LICENSE) for more information.
Loading

0 comments on commit 59ea6c6

Please sign in to comment.