Merge pull request #98 from LDprg/precommit-legacy
Precommit for legacy
@ -1,4 +1,53 @@
|
||||
ci:
|
||||
autoupdate_branch: "rewrite"
|
||||
|
||||
repos: []
|
||||
repos:
|
||||
- repo: https://github.com/Lucas-C/pre-commit-hooks
|
||||
rev: v1.5.5
|
||||
hooks:
|
||||
- id: chmod
|
||||
args: ["775"]
|
||||
files: (\.sh|winapps)$
|
||||
- id: forbid-crlf
|
||||
- id: remove-crlf
|
||||
- id: forbid-tabs
|
||||
- id: remove-tabs
|
||||
args: [--whitespaces-count, "2"]
|
||||
|
||||
- repo: https://github.com/pre-commit/pre-commit-hooks
|
||||
rev: v4.6.0
|
||||
hooks:
|
||||
- id: check-added-large-files
|
||||
- id: check-case-conflict
|
||||
- id: check-executables-have-shebangs
|
||||
- id: check-json
|
||||
- id: check-merge-conflict
|
||||
- id: check-shebang-scripts-are-executable
|
||||
- id: check-symlinks
|
||||
- id: check-toml
|
||||
- id: check-vcs-permalinks
|
||||
- id: check-xml
|
||||
- id: check-yaml
|
||||
- id: destroyed-symlinks
|
||||
- id: detect-private-key
|
||||
- id: end-of-file-fixer
|
||||
- id: fix-byte-order-marker
|
||||
- id: forbid-new-submodules
|
||||
- id: forbid-submodules
|
||||
- id: mixed-line-ending
|
||||
- id: pretty-format-json
|
||||
args: ["--autofix", "--no-sort-keys"]
|
||||
- id: sort-simple-yaml
|
||||
- id: trailing-whitespace
|
||||
|
||||
- repo: https://github.com/lovesegfault/beautysh
|
||||
rev: v6.2.1
|
||||
hooks:
|
||||
- id: beautysh
|
||||
additional_dependencies:
|
||||
- setuptools
|
||||
|
||||
- repo: https://github.com/shellcheck-py/shellcheck-py
|
||||
rev: v0.10.0.1
|
||||
hooks:
|
||||
- id: shellcheck
|
||||
|
@ -98,8 +98,8 @@ git clone https://github.com/winapps-org/winapps.git
|
||||
cd winapps
|
||||
```
|
||||
|
||||
> [!note]
|
||||
> Ideally grab freerdp 3.0.0 or later, especially if you're having issues.
|
||||
> [!note]
|
||||
> Ideally grab freerdp 3.0.0 or later, especially if you're having issues.
|
||||
> You can find nightly builds here: https://github.com/FreeRDP/FreeRDP/wiki/Prebuilds
|
||||
|
||||
### Step 3: Creating your WinApps configuration file
|
||||
|
0
apps/acrobat-x-pro/icon.svg
Executable file → Normal file
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.4 KiB |
2
apps/adobe-cc/icon.svg
Executable file → Normal file
@ -1 +1 @@
|
||||
<svg role="img" focusable="false" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14"><path d="m 1.000001,1.71368 0,10.49276 4.452461,-10.49276 z m 7.580651,0 4.407867,10.56716 0.01148,-10.56716 z m 1.258117,10.5726 -2.856026,-6.62925 -1.937703,4.48772 2.073592,0 0.815124,2.14157 z" fill="#C63134"/></svg>
|
||||
<svg role="img" focusable="false" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14"><path d="m 1.000001,1.71368 0,10.49276 4.452461,-10.49276 z m 7.580651,0 4.407867,10.56716 0.01148,-10.56716 z m 1.258117,10.5726 -2.856026,-6.62925 -1.937703,4.48772 2.073592,0 0.815124,2.14157 z" fill="#C63134"/></svg>
|
||||
|
Before Width: | Height: | Size: 328 B After Width: | Height: | Size: 329 B |
@ -14,4 +14,4 @@ CATEGORIES="WinApps;Adobe"
|
||||
MIME_TYPES=""
|
||||
|
||||
# System Icon
|
||||
ICON="AdobeUpdate"
|
||||
ICON="AdobeUpdate"
|
||||
|
2
apps/aftereffects-cc/icon.svg
Executable file → Normal file
@ -1 +1 @@
|
||||
<svg role="img" focusable="false" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14"><path d="m 9.7155,5.976 c -0.646,0 -0.918,0.5865 -0.9605,1.01125 l 1.81875,0 C 10.5825,6.605 10.4125,5.976 9.7155,5.976 Z M 5.083,4.599 l -0.017,0 C 4.981,4.9305 4.896,5.33 4.794,5.66975 l -0.442,1.411 1.47025,0 -0.4505,-1.411 C 5.2615,5.3215 5.168,4.9305 5.083,4.599 Z M 1.00025,1 l 0,12 11.9995,0 0,-12 -11.9995,0 z M 6.5195,9.49475 6.001,7.8715 l -1.81875,0 -0.493,1.62325 -1.0795,0 1.83575,-5.7285 1.33425,0 1.86125,5.7285 -1.1215,0 z m 5.00625,-1.7765 -2.77075,0 c 0.02575,0.748 0.612,1.071 1.275,1.071 0.4845,0 0.833,-0.068 1.1475,-0.187 l 0.15275,0.7225 c -0.357,0.1445 -0.84975,0.255 -1.44475,0.255 -1.34275,0 -2.13325,-0.8245 -2.13325,-2.09075 0,-1.14725 0.697,-2.22675 2.023,-2.22675 1.34275,0 1.78475,1.10475 1.78475,2.01425 -2.5e-4,0.1955 -0.017,0.34825 -0.03425,0.44175 z" fill="#C099CD"/></svg>
|
||||
<svg role="img" focusable="false" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14"><path d="m 9.7155,5.976 c -0.646,0 -0.918,0.5865 -0.9605,1.01125 l 1.81875,0 C 10.5825,6.605 10.4125,5.976 9.7155,5.976 Z M 5.083,4.599 l -0.017,0 C 4.981,4.9305 4.896,5.33 4.794,5.66975 l -0.442,1.411 1.47025,0 -0.4505,-1.411 C 5.2615,5.3215 5.168,4.9305 5.083,4.599 Z M 1.00025,1 l 0,12 11.9995,0 0,-12 -11.9995,0 z M 6.5195,9.49475 6.001,7.8715 l -1.81875,0 -0.493,1.62325 -1.0795,0 1.83575,-5.7285 1.33425,0 1.86125,5.7285 -1.1215,0 z m 5.00625,-1.7765 -2.77075,0 c 0.02575,0.748 0.612,1.071 1.275,1.071 0.4845,0 0.833,-0.068 1.1475,-0.187 l 0.15275,0.7225 c -0.357,0.1445 -0.84975,0.255 -1.44475,0.255 -1.34275,0 -2.13325,-0.8245 -2.13325,-2.09075 0,-1.14725 0.697,-2.22675 2.023,-2.22675 1.34275,0 1.78475,1.10475 1.78475,2.01425 -2.5e-4,0.1955 -0.017,0.34825 -0.03425,0.44175 z" fill="#C099CD"/></svg>
|
||||
|
Before Width: | Height: | Size: 916 B After Width: | Height: | Size: 917 B |
@ -14,4 +14,4 @@ CATEGORIES="WinApps;Adobe"
|
||||
MIME_TYPES="application/vnd.adobe.aftereffects.project;application/vnd.adobe.aftereffects.template;"
|
||||
|
||||
# System Icon
|
||||
ICON="AdobeAfterEffect"
|
||||
ICON="AdobeAfterEffect"
|
||||
|
2
apps/audition-cc/icon.svg
Executable file → Normal file
@ -1 +1 @@
|
||||
<svg role="img" focusable="false" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14"><path d="m 1.000001,1.71368 0,10.49276 4.452461,-10.49276 z m 7.580651,0 4.407867,10.56716 0.01148,-10.56716 z m 1.258117,10.5726 -2.856026,-6.62925 -1.937703,4.48772 2.073592,0 0.815124,2.14157 z" fill="#3DCAA4"/></svg>
|
||||
<svg role="img" focusable="false" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14"><path d="m 1.000001,1.71368 0,10.49276 4.452461,-10.49276 z m 7.580651,0 4.407867,10.56716 0.01148,-10.56716 z m 1.258117,10.5726 -2.856026,-6.62925 -1.937703,4.48772 2.073592,0 0.815124,2.14157 z" fill="#3DCAA4"/></svg>
|
||||
|
Before Width: | Height: | Size: 328 B After Width: | Height: | Size: 329 B |
@ -14,4 +14,4 @@ CATEGORIES="WinApps;Adobe"
|
||||
MIME_TYPES=""
|
||||
|
||||
# System Icon
|
||||
ICON="AdobeAudition"
|
||||
ICON="AdobeAudition"
|
||||
|
2
apps/bridge-cc/icon.svg
Executable file → Normal file
@ -1 +1 @@
|
||||
<svg role="img" focusable="false" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14"><path d="m 1.000125,1 0,12 11.99975,0 0,-12 -11.99975,0 z m 6.19975,8.0185 c -0.40825,0.35725 -1.0795,0.53575 -2.125,0.53575 -0.578,0 -1.02,-0.0425 -1.2835,-0.07675 l 0,-5.635 c 0.3315,-0.068 0.935,-0.119 1.52125,-0.119 0.7735,0 1.2495,0.0935 1.6405,0.36525 0.357,0.2125 0.59475,0.5865 0.59475,1.071 0,0.527 -0.3315,1.01125 -0.95175,1.24075 l 0,0.017 c 0.60375,0.15275 1.156,0.629 1.156,1.4195 0,0.51025 -0.22125,0.9095 -0.55225,1.1815 z m 3.61225,-2.745 c -0.085,-0.017 -0.17875,-0.034 -0.30625,-0.034 -0.5015,0 -0.84125,0.323 -0.9345,0.79025 -0.017,0.0935 -0.03425,0.204 -0.03425,0.323 l 0,2.14175 -1.0455,0 0,-2.8045 c 0,-0.561 -0.00825,-0.9605 -0.03425,-1.33425 l 0.90975,0 0.03425,0.7905 0.03375,0 c 0.204,-0.5865 0.6885,-0.884 1.13025,-0.884 0.102,0 0.1615,0.0085 0.2465,0.0255 l 0,0.98575 z m -5.46525,0.595 -0.5185,0 0,1.86975 c 0.136,0.01675 0.3145,0.0255 0.55225,0.0255 0.6715,0 1.26625,-0.255 1.26625,-0.9605 2.5e-4,-0.66275 -0.57775,-0.93475 -1.3,-0.93475 z M 6.494125,5.279 c 0,-0.5355 -0.408,-0.782 -1.071,-0.782 -0.306,0 -0.4845,0.017 -0.59475,0.0425 l 0,1.56375 0.5355,0 C 6.086125,6.1035 6.494125,5.7635 6.494125,5.279 Z" fill="#4A3D18"/></svg>
|
||||
<svg role="img" focusable="false" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14"><path d="m 1.000125,1 0,12 11.99975,0 0,-12 -11.99975,0 z m 6.19975,8.0185 c -0.40825,0.35725 -1.0795,0.53575 -2.125,0.53575 -0.578,0 -1.02,-0.0425 -1.2835,-0.07675 l 0,-5.635 c 0.3315,-0.068 0.935,-0.119 1.52125,-0.119 0.7735,0 1.2495,0.0935 1.6405,0.36525 0.357,0.2125 0.59475,0.5865 0.59475,1.071 0,0.527 -0.3315,1.01125 -0.95175,1.24075 l 0,0.017 c 0.60375,0.15275 1.156,0.629 1.156,1.4195 0,0.51025 -0.22125,0.9095 -0.55225,1.1815 z m 3.61225,-2.745 c -0.085,-0.017 -0.17875,-0.034 -0.30625,-0.034 -0.5015,0 -0.84125,0.323 -0.9345,0.79025 -0.017,0.0935 -0.03425,0.204 -0.03425,0.323 l 0,2.14175 -1.0455,0 0,-2.8045 c 0,-0.561 -0.00825,-0.9605 -0.03425,-1.33425 l 0.90975,0 0.03425,0.7905 0.03375,0 c 0.204,-0.5865 0.6885,-0.884 1.13025,-0.884 0.102,0 0.1615,0.0085 0.2465,0.0255 l 0,0.98575 z m -5.46525,0.595 -0.5185,0 0,1.86975 c 0.136,0.01675 0.3145,0.0255 0.55225,0.0255 0.6715,0 1.26625,-0.255 1.26625,-0.9605 2.5e-4,-0.66275 -0.57775,-0.93475 -1.3,-0.93475 z M 6.494125,5.279 c 0,-0.5355 -0.408,-0.782 -1.071,-0.782 -0.306,0 -0.4845,0.017 -0.59475,0.0425 l 0,1.56375 0.5355,0 C 6.086125,6.1035 6.494125,5.7635 6.494125,5.279 Z" fill="#4A3D18"/></svg>
|
||||
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
@ -14,4 +14,4 @@ CATEGORIES="WinApps;Adobe"
|
||||
MIME_TYPES="image/vnd.adobe.photoshop;"
|
||||
|
||||
# System Icon
|
||||
ICON="AdobeBridge"
|
||||
ICON="AdobeBridge"
|
||||
|
2
apps/bridge-cs6-x86/icon.svg
Executable file → Normal file
@ -1 +1 @@
|
||||
<svg role="img" focusable="false" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14"><path d="m 1.000125,1 0,12 11.99975,0 0,-12 -11.99975,0 z m 6.19975,8.0185 c -0.40825,0.35725 -1.0795,0.53575 -2.125,0.53575 -0.578,0 -1.02,-0.0425 -1.2835,-0.07675 l 0,-5.635 c 0.3315,-0.068 0.935,-0.119 1.52125,-0.119 0.7735,0 1.2495,0.0935 1.6405,0.36525 0.357,0.2125 0.59475,0.5865 0.59475,1.071 0,0.527 -0.3315,1.01125 -0.95175,1.24075 l 0,0.017 c 0.60375,0.15275 1.156,0.629 1.156,1.4195 0,0.51025 -0.22125,0.9095 -0.55225,1.1815 z m 3.61225,-2.745 c -0.085,-0.017 -0.17875,-0.034 -0.30625,-0.034 -0.5015,0 -0.84125,0.323 -0.9345,0.79025 -0.017,0.0935 -0.03425,0.204 -0.03425,0.323 l 0,2.14175 -1.0455,0 0,-2.8045 c 0,-0.561 -0.00825,-0.9605 -0.03425,-1.33425 l 0.90975,0 0.03425,0.7905 0.03375,0 c 0.204,-0.5865 0.6885,-0.884 1.13025,-0.884 0.102,0 0.1615,0.0085 0.2465,0.0255 l 0,0.98575 z m -5.46525,0.595 -0.5185,0 0,1.86975 c 0.136,0.01675 0.3145,0.0255 0.55225,0.0255 0.6715,0 1.26625,-0.255 1.26625,-0.9605 2.5e-4,-0.66275 -0.57775,-0.93475 -1.3,-0.93475 z M 6.494125,5.279 c 0,-0.5355 -0.408,-0.782 -1.071,-0.782 -0.306,0 -0.4845,0.017 -0.59475,0.0425 l 0,1.56375 0.5355,0 C 6.086125,6.1035 6.494125,5.7635 6.494125,5.279 Z" fill="#4A3D18"/></svg>
|
||||
<svg role="img" focusable="false" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14"><path d="m 1.000125,1 0,12 11.99975,0 0,-12 -11.99975,0 z m 6.19975,8.0185 c -0.40825,0.35725 -1.0795,0.53575 -2.125,0.53575 -0.578,0 -1.02,-0.0425 -1.2835,-0.07675 l 0,-5.635 c 0.3315,-0.068 0.935,-0.119 1.52125,-0.119 0.7735,0 1.2495,0.0935 1.6405,0.36525 0.357,0.2125 0.59475,0.5865 0.59475,1.071 0,0.527 -0.3315,1.01125 -0.95175,1.24075 l 0,0.017 c 0.60375,0.15275 1.156,0.629 1.156,1.4195 0,0.51025 -0.22125,0.9095 -0.55225,1.1815 z m 3.61225,-2.745 c -0.085,-0.017 -0.17875,-0.034 -0.30625,-0.034 -0.5015,0 -0.84125,0.323 -0.9345,0.79025 -0.017,0.0935 -0.03425,0.204 -0.03425,0.323 l 0,2.14175 -1.0455,0 0,-2.8045 c 0,-0.561 -0.00825,-0.9605 -0.03425,-1.33425 l 0.90975,0 0.03425,0.7905 0.03375,0 c 0.204,-0.5865 0.6885,-0.884 1.13025,-0.884 0.102,0 0.1615,0.0085 0.2465,0.0255 l 0,0.98575 z m -5.46525,0.595 -0.5185,0 0,1.86975 c 0.136,0.01675 0.3145,0.0255 0.55225,0.0255 0.6715,0 1.26625,-0.255 1.26625,-0.9605 2.5e-4,-0.66275 -0.57775,-0.93475 -1.3,-0.93475 z M 6.494125,5.279 c 0,-0.5355 -0.408,-0.782 -1.071,-0.782 -0.306,0 -0.4845,0.017 -0.59475,0.0425 l 0,1.56375 0.5355,0 C 6.086125,6.1035 6.494125,5.7635 6.494125,5.279 Z" fill="#4A3D18"/></svg>
|
||||
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
@ -14,4 +14,4 @@ CATEGORIES="WinApps;Adobe"
|
||||
MIME_TYPES="image/vnd.adobe.photoshop;"
|
||||
|
||||
# System Icon
|
||||
ICON="AdobeBridge"
|
||||
ICON="AdobeBridge"
|
||||
|
2
apps/bridge-cs6/icon.svg
Executable file → Normal file
@ -1 +1 @@
|
||||
<svg role="img" focusable="false" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14"><path d="m 1.000125,1 0,12 11.99975,0 0,-12 -11.99975,0 z m 6.19975,8.0185 c -0.40825,0.35725 -1.0795,0.53575 -2.125,0.53575 -0.578,0 -1.02,-0.0425 -1.2835,-0.07675 l 0,-5.635 c 0.3315,-0.068 0.935,-0.119 1.52125,-0.119 0.7735,0 1.2495,0.0935 1.6405,0.36525 0.357,0.2125 0.59475,0.5865 0.59475,1.071 0,0.527 -0.3315,1.01125 -0.95175,1.24075 l 0,0.017 c 0.60375,0.15275 1.156,0.629 1.156,1.4195 0,0.51025 -0.22125,0.9095 -0.55225,1.1815 z m 3.61225,-2.745 c -0.085,-0.017 -0.17875,-0.034 -0.30625,-0.034 -0.5015,0 -0.84125,0.323 -0.9345,0.79025 -0.017,0.0935 -0.03425,0.204 -0.03425,0.323 l 0,2.14175 -1.0455,0 0,-2.8045 c 0,-0.561 -0.00825,-0.9605 -0.03425,-1.33425 l 0.90975,0 0.03425,0.7905 0.03375,0 c 0.204,-0.5865 0.6885,-0.884 1.13025,-0.884 0.102,0 0.1615,0.0085 0.2465,0.0255 l 0,0.98575 z m -5.46525,0.595 -0.5185,0 0,1.86975 c 0.136,0.01675 0.3145,0.0255 0.55225,0.0255 0.6715,0 1.26625,-0.255 1.26625,-0.9605 2.5e-4,-0.66275 -0.57775,-0.93475 -1.3,-0.93475 z M 6.494125,5.279 c 0,-0.5355 -0.408,-0.782 -1.071,-0.782 -0.306,0 -0.4845,0.017 -0.59475,0.0425 l 0,1.56375 0.5355,0 C 6.086125,6.1035 6.494125,5.7635 6.494125,5.279 Z" fill="#4A3D18"/></svg>
|
||||
<svg role="img" focusable="false" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14"><path d="m 1.000125,1 0,12 11.99975,0 0,-12 -11.99975,0 z m 6.19975,8.0185 c -0.40825,0.35725 -1.0795,0.53575 -2.125,0.53575 -0.578,0 -1.02,-0.0425 -1.2835,-0.07675 l 0,-5.635 c 0.3315,-0.068 0.935,-0.119 1.52125,-0.119 0.7735,0 1.2495,0.0935 1.6405,0.36525 0.357,0.2125 0.59475,0.5865 0.59475,1.071 0,0.527 -0.3315,1.01125 -0.95175,1.24075 l 0,0.017 c 0.60375,0.15275 1.156,0.629 1.156,1.4195 0,0.51025 -0.22125,0.9095 -0.55225,1.1815 z m 3.61225,-2.745 c -0.085,-0.017 -0.17875,-0.034 -0.30625,-0.034 -0.5015,0 -0.84125,0.323 -0.9345,0.79025 -0.017,0.0935 -0.03425,0.204 -0.03425,0.323 l 0,2.14175 -1.0455,0 0,-2.8045 c 0,-0.561 -0.00825,-0.9605 -0.03425,-1.33425 l 0.90975,0 0.03425,0.7905 0.03375,0 c 0.204,-0.5865 0.6885,-0.884 1.13025,-0.884 0.102,0 0.1615,0.0085 0.2465,0.0255 l 0,0.98575 z m -5.46525,0.595 -0.5185,0 0,1.86975 c 0.136,0.01675 0.3145,0.0255 0.55225,0.0255 0.6715,0 1.26625,-0.255 1.26625,-0.9605 2.5e-4,-0.66275 -0.57775,-0.93475 -1.3,-0.93475 z M 6.494125,5.279 c 0,-0.5355 -0.408,-0.782 -1.071,-0.782 -0.306,0 -0.4845,0.017 -0.59475,0.0425 l 0,1.56375 0.5355,0 C 6.086125,6.1035 6.494125,5.7635 6.494125,5.279 Z" fill="#4A3D18"/></svg>
|
||||
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
@ -14,4 +14,4 @@ CATEGORIES="WinApps;Adobe"
|
||||
MIME_TYPES="image/vnd.adobe.photoshop;"
|
||||
|
||||
# System Icon
|
||||
ICON="AdobeBridge"
|
||||
ICON="AdobeBridge"
|
||||
|
@ -14,4 +14,4 @@ CATEGORIES="WinApps;Windows"
|
||||
MIME_TYPES=""
|
||||
|
||||
# System Icon
|
||||
ICON="Terminal"
|
||||
ICON="Terminal"
|
||||
|
@ -14,4 +14,4 @@ CATEGORIES="WinApps;Office"
|
||||
MIME_TYPES="application/vnd.ms-excel;application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;application/vnd.openxmlformats-officedocument.spreadsheetml.template;application/vnd.ms-excel.sheet.macroEnabled.12;application/vnd.ms-excel.template.macroEnabled.12;application/vnd.ms-excel.addin.macroEnabled.12;application/vnd.ms-excel.sheet.binary.macroEnabled.12;"
|
||||
|
||||
# System Icon
|
||||
ICON="ms-excel"s
|
||||
ICON="ms-excel"s
|
||||
|
@ -14,4 +14,4 @@ CATEGORIES="WinApps;Office"
|
||||
MIME_TYPES="application/vnd.ms-excel;application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;application/vnd.openxmlformats-officedocument.spreadsheetml.template;application/vnd.ms-excel.sheet.macroEnabled.12;application/vnd.ms-excel.template.macroEnabled.12;application/vnd.ms-excel.addin.macroEnabled.12;application/vnd.ms-excel.sheet.binary.macroEnabled.12;"
|
||||
|
||||
# System Icon
|
||||
ICON="ms-excel"
|
||||
ICON="ms-excel"
|
||||
|
@ -14,4 +14,4 @@ CATEGORIES="WinApps;Office"
|
||||
MIME_TYPES="application/vnd.ms-excel;application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;application/vnd.openxmlformats-officedocument.spreadsheetml.template;application/vnd.ms-excel.sheet.macroEnabled.12;application/vnd.ms-excel.template.macroEnabled.12;application/vnd.ms-excel.addin.macroEnabled.12;application/vnd.ms-excel.sheet.binary.macroEnabled.12;"
|
||||
|
||||
# System Icon
|
||||
ICON="ms-excel"
|
||||
ICON="ms-excel"
|
||||
|
@ -14,4 +14,4 @@ CATEGORIES="WinApps;Office"
|
||||
MIME_TYPES="application/vnd.ms-excel;application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;application/vnd.openxmlformats-officedocument.spreadsheetml.template;application/vnd.ms-excel.sheet.macroEnabled.12;application/vnd.ms-excel.template.macroEnabled.12;application/vnd.ms-excel.addin.macroEnabled.12;application/vnd.ms-excel.sheet.binary.macroEnabled.12;"
|
||||
|
||||
# System Icon
|
||||
ICON="ms-excel"
|
||||
ICON="ms-excel"
|
||||
|
2
apps/illustrator-cc/icon.svg
Executable file → Normal file
@ -1 +1 @@
|
||||
<svg role="img" focusable="false" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14"><path d="M 1,1 1,13 13,13 13,1 1,1 Z m 6.32925,9.0415 -0.5095,-1.595 -1.787,0 -0.4845,1.595 -1.06,0 1.8035,-5.62825 1.311,0 1.82875,5.62825 -1.10225,0 z m 2.673,0 -1.03575,0 0,-4.06675 1.03575,0 0,4.06675 z M 9.476,5.3905 c -0.3425,0 -0.56775,-0.24225 -0.56775,-0.55125 0,-0.3175 0.234,-0.5595 0.57625,-0.5595 0.35075,0 0.56775,0.242 0.57625,0.5595 C 10.0605,5.14825 9.83525,5.3905 9.476,5.3905 Z m -3.558,-0.15875 -0.01675,0 C 5.81775,5.5575 5.73425,5.95 5.634,6.284 L 5.2,7.67 6.6445,7.67 6.202,6.284 C 6.0935,5.9415 6.0015,5.55725 5.918,5.23175 Z" fill="#E08B29"/></svg>
|
||||
<svg role="img" focusable="false" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14"><path d="M 1,1 1,13 13,13 13,1 1,1 Z m 6.32925,9.0415 -0.5095,-1.595 -1.787,0 -0.4845,1.595 -1.06,0 1.8035,-5.62825 1.311,0 1.82875,5.62825 -1.10225,0 z m 2.673,0 -1.03575,0 0,-4.06675 1.03575,0 0,4.06675 z M 9.476,5.3905 c -0.3425,0 -0.56775,-0.24225 -0.56775,-0.55125 0,-0.3175 0.234,-0.5595 0.57625,-0.5595 0.35075,0 0.56775,0.242 0.57625,0.5595 C 10.0605,5.14825 9.83525,5.3905 9.476,5.3905 Z m -3.558,-0.15875 -0.01675,0 C 5.81775,5.5575 5.73425,5.95 5.634,6.284 L 5.2,7.67 6.6445,7.67 6.202,6.284 C 6.0935,5.9415 6.0015,5.55725 5.918,5.23175 Z" fill="#E08B29"/></svg>
|
||||
|
Before Width: | Height: | Size: 681 B After Width: | Height: | Size: 682 B |
@ -14,4 +14,4 @@ CATEGORIES="WinApps;Adobe"
|
||||
MIME_TYPES="application/illustrator;"
|
||||
|
||||
# System Icon
|
||||
ICON="AdobeIllustrator"
|
||||
ICON="AdobeIllustrator"
|
||||
|
2
apps/indesign-cc/icon.svg
Executable file → Normal file
@ -1 +1 @@
|
||||
<svg role="img" focusable="false" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14"><path d="M 1,1 1,13 13,13 13,1 1,1 Z m 4.3125,8.5915 -0.97425,0 0,-5.33875 0.97425,0 0,5.33875 z m 3.4775,0 -0.0395,-0.6095 -0.0155,0 C 8.505,9.4095 8.03775,9.679 7.47525,9.679 6.5565,9.679 5.82775,8.89475 5.82775,7.70625 5.81975,6.41525 6.628,5.64675 7.555,5.64675 c 0.53075,0 0.91075,0.22175 1.085,0.507 l 0.016,0 0,-2.18625 0.974,0 0,4.539 c 0,0.39625 0.016,0.824 0.03175,1.08525 l -0.87175,0 z M 7.792,6.3995 c -0.626,0 -0.97425,0.55425 -0.97425,1.2755 0,0.70475 0.34825,1.22 0.9665,1.22 C 8.18075,8.895 8.529,8.6255 8.624,8.20575 8.648,8.1185 8.65575,8.0235 8.65575,7.92025 l 0,-0.578 c 0,-0.0795 -0.00825,-0.1745 -0.024,-0.254 C 8.5445,6.70825 8.23575,6.3995 7.792,6.3995 Z" fill="#DB398D"/></svg>
|
||||
<svg role="img" focusable="false" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14"><path d="M 1,1 1,13 13,13 13,1 1,1 Z m 4.3125,8.5915 -0.97425,0 0,-5.33875 0.97425,0 0,5.33875 z m 3.4775,0 -0.0395,-0.6095 -0.0155,0 C 8.505,9.4095 8.03775,9.679 7.47525,9.679 6.5565,9.679 5.82775,8.89475 5.82775,7.70625 5.81975,6.41525 6.628,5.64675 7.555,5.64675 c 0.53075,0 0.91075,0.22175 1.085,0.507 l 0.016,0 0,-2.18625 0.974,0 0,4.539 c 0,0.39625 0.016,0.824 0.03175,1.08525 l -0.87175,0 z M 7.792,6.3995 c -0.626,0 -0.97425,0.55425 -0.97425,1.2755 0,0.70475 0.34825,1.22 0.9665,1.22 C 8.18075,8.895 8.529,8.6255 8.624,8.20575 8.648,8.1185 8.65575,8.0235 8.65575,7.92025 l 0,-0.578 c 0,-0.0795 -0.00825,-0.1745 -0.024,-0.254 C 8.5445,6.70825 8.23575,6.3995 7.792,6.3995 Z" fill="#DB398D"/></svg>
|
||||
|
Before Width: | Height: | Size: 811 B After Width: | Height: | Size: 812 B |
@ -14,4 +14,4 @@ CATEGORIES="WinApps;Adobe"
|
||||
MIME_TYPES="application/x-adobe-indesign-interchange;application/x-adobe-indesign;"
|
||||
|
||||
# System Icon
|
||||
ICON="AdobeIndesign"
|
||||
ICON="AdobeIndesign"
|
||||
|
2
apps/lightroom-cc/icon.svg
Executable file → Normal file
@ -1 +1 @@
|
||||
<svg role="img" focusable="false" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14"><path d="m 1.000125,1 0,12 11.99975,0 0,-12 -11.99975,0 z m 6.59525,8.49475 -3.39975,0 0,-5.7285 1.0455,0 0,4.853 2.35425,0 0,0.8755 z m 2.9155,-3.22125 c -0.085,-0.017 -0.17875,-0.034 -0.30625,-0.034 -0.5015,0 -0.84125,0.323 -0.9345,0.79025 -0.017,0.0935 -0.03425,0.204 -0.03425,0.323 l 0,2.14175 -1.0455,0 0,-2.8045 c 0,-0.561 -0.00825,-0.9605 -0.03425,-1.33425 l 0.90975,0 0.03425,0.7905 0.03375,0 c 0.204,-0.5865 0.6885,-0.884 1.13025,-0.884 0.102,0 0.1615,0.0085 0.2465,0.0255 l 0,0.98575 z" fill="#B5C9EC"/></svg>
|
||||
<svg role="img" focusable="false" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14"><path d="m 1.000125,1 0,12 11.99975,0 0,-12 -11.99975,0 z m 6.59525,8.49475 -3.39975,0 0,-5.7285 1.0455,0 0,4.853 2.35425,0 0,0.8755 z m 2.9155,-3.22125 c -0.085,-0.017 -0.17875,-0.034 -0.30625,-0.034 -0.5015,0 -0.84125,0.323 -0.9345,0.79025 -0.017,0.0935 -0.03425,0.204 -0.03425,0.323 l 0,2.14175 -1.0455,0 0,-2.8045 c 0,-0.561 -0.00825,-0.9605 -0.03425,-1.33425 l 0.90975,0 0.03425,0.7905 0.03375,0 c 0.204,-0.5865 0.6885,-0.884 1.13025,-0.884 0.102,0 0.1615,0.0085 0.2465,0.0255 l 0,0.98575 z" fill="#B5C9EC"/></svg>
|
||||
|
Before Width: | Height: | Size: 627 B After Width: | Height: | Size: 628 B |
@ -14,4 +14,4 @@ CATEGORIES="WinApps;Adobe"
|
||||
MIME_TYPES=""
|
||||
|
||||
# System Icon
|
||||
ICON="AdobeLightroom"
|
||||
ICON="AdobeLightroom"
|
||||
|
@ -1,3 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="8 8 16 16">
|
||||
<path d="M9 10.398l8-1.351v13.906l-8-1.352V10.398zm2.227 8.086l.796.04V15c0-.031.005-.06.016-.086a.21.21 0 0 0 .016-.078.058.058 0 0 0 .039.043c.02.008.036.022.047.043a4.335 4.335 0 0 0 .171.344l1.829 3.375 1.062.062v-5.547l-.992.063v3.523a.82.82 0 0 0 .031.227h-.016a42.727 42.727 0 0 0-.976-1.824c-.339-.597-.675-1.2-1.008-1.809l-1.016.04v5.108zM23 13.836c0 .068-.008.112-.023.133-.016.02-.061.031-.133.031H22v7.102a.544.544 0 0 1-.074.254.415.415 0 0 1-.086.101.17.17 0 0 1-.113.043H17.5V20h3v-.5h-3v-1h3V18h-3v-1h3v-.5h-3v-1h3V15h-3v-1h3v-.5h-3v-1h3V12h-3v-1.5h4.227c.103 0 .175.044.214.133.04.089.059.177.059.265v.602h.844c.072 0 .117.01.133.027.015.019.023.064.023.137v2.172zm-.203.664c.067 0 .118.033.152.098a.41.41 0 0 1 .051.183v1.938c0 .057-.018.119-.05.183-.035.066-.086.098-.153.098H22.5v-2.5h.297zm0 3c.067 0 .118.033.152.098.033.065.051.127.051.183v1.938c0 .057-.018.119-.05.183-.035.066-.086.098-.153.098H22.5v-2.5h.297z" fill="#ca64ea"/>
|
||||
</svg>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.0 KiB |
@ -14,4 +14,4 @@ CATEGORIES="WinApps;Office"
|
||||
MIME_TYPES="application/msonenote;"
|
||||
|
||||
# System Icon
|
||||
ICON="ms-outlook"
|
||||
ICON="ms-outlook"
|
||||
|
@ -1,3 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="8 8 16 16">
|
||||
<path d="M9 10.398l8-1.351v13.906l-8-1.352V10.398zm2.227 8.086l.796.04V15c0-.031.005-.06.016-.086a.21.21 0 0 0 .016-.078.058.058 0 0 0 .039.043c.02.008.036.022.047.043a4.335 4.335 0 0 0 .171.344l1.829 3.375 1.062.062v-5.547l-.992.063v3.523a.82.82 0 0 0 .031.227h-.016a42.727 42.727 0 0 0-.976-1.824c-.339-.597-.675-1.2-1.008-1.809l-1.016.04v5.108zM23 13.836c0 .068-.008.112-.023.133-.016.02-.061.031-.133.031H22v7.102a.544.544 0 0 1-.074.254.415.415 0 0 1-.086.101.17.17 0 0 1-.113.043H17.5V20h3v-.5h-3v-1h3V18h-3v-1h3v-.5h-3v-1h3V15h-3v-1h3v-.5h-3v-1h3V12h-3v-1.5h4.227c.103 0 .175.044.214.133.04.089.059.177.059.265v.602h.844c.072 0 .117.01.133.027.015.019.023.064.023.137v2.172zm-.203.664c.067 0 .118.033.152.098a.41.41 0 0 1 .051.183v1.938c0 .057-.018.119-.05.183-.035.066-.086.098-.153.098H22.5v-2.5h.297zm0 3c.067 0 .118.033.152.098.033.065.051.127.051.183v1.938c0 .057-.018.119-.05.183-.035.066-.086.098-.153.098H22.5v-2.5h.297z" fill="#ca64ea"/>
|
||||
</svg>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.0 KiB |
@ -14,4 +14,4 @@ CATEGORIES="WinApps;Office"
|
||||
MIME_TYPES="application/msonenote;"
|
||||
|
||||
# System Icon
|
||||
ICON="ms-outlook"
|
||||
ICON="ms-outlook"
|
||||
|
@ -1,3 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="8 8 16 16">
|
||||
<path d="M9 10.398l8-1.351v13.906l-8-1.352V10.398zm2.227 8.086l.796.04V15c0-.031.005-.06.016-.086a.21.21 0 0 0 .016-.078.058.058 0 0 0 .039.043c.02.008.036.022.047.043a4.335 4.335 0 0 0 .171.344l1.829 3.375 1.062.062v-5.547l-.992.063v3.523a.82.82 0 0 0 .031.227h-.016a42.727 42.727 0 0 0-.976-1.824c-.339-.597-.675-1.2-1.008-1.809l-1.016.04v5.108zM23 13.836c0 .068-.008.112-.023.133-.016.02-.061.031-.133.031H22v7.102a.544.544 0 0 1-.074.254.415.415 0 0 1-.086.101.17.17 0 0 1-.113.043H17.5V20h3v-.5h-3v-1h3V18h-3v-1h3v-.5h-3v-1h3V15h-3v-1h3v-.5h-3v-1h3V12h-3v-1.5h4.227c.103 0 .175.044.214.133.04.089.059.177.059.265v.602h.844c.072 0 .117.01.133.027.015.019.023.064.023.137v2.172zm-.203.664c.067 0 .118.033.152.098a.41.41 0 0 1 .051.183v1.938c0 .057-.018.119-.05.183-.035.066-.086.098-.153.098H22.5v-2.5h.297zm0 3c.067 0 .118.033.152.098.033.065.051.127.051.183v1.938c0 .057-.018.119-.05.183-.035.066-.086.098-.153.098H22.5v-2.5h.297z" fill="#ca64ea"/>
|
||||
</svg>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.0 KiB |
@ -14,4 +14,4 @@ CATEGORIES="WinApps;Office"
|
||||
MIME_TYPES="application/msonenote;"
|
||||
|
||||
# System Icon
|
||||
ICON="ms-onenote"
|
||||
ICON="ms-onenote"
|
||||
|
@ -1,3 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="8 8 16 16">
|
||||
<path d="M9 10.398l8-1.351v13.906l-8-1.352V10.398zm2.227 8.086l.796.04V15c0-.031.005-.06.016-.086a.21.21 0 0 0 .016-.078.058.058 0 0 0 .039.043c.02.008.036.022.047.043a4.335 4.335 0 0 0 .171.344l1.829 3.375 1.062.062v-5.547l-.992.063v3.523a.82.82 0 0 0 .031.227h-.016a42.727 42.727 0 0 0-.976-1.824c-.339-.597-.675-1.2-1.008-1.809l-1.016.04v5.108zM23 13.836c0 .068-.008.112-.023.133-.016.02-.061.031-.133.031H22v7.102a.544.544 0 0 1-.074.254.415.415 0 0 1-.086.101.17.17 0 0 1-.113.043H17.5V20h3v-.5h-3v-1h3V18h-3v-1h3v-.5h-3v-1h3V15h-3v-1h3v-.5h-3v-1h3V12h-3v-1.5h4.227c.103 0 .175.044.214.133.04.089.059.177.059.265v.602h.844c.072 0 .117.01.133.027.015.019.023.064.023.137v2.172zm-.203.664c.067 0 .118.033.152.098a.41.41 0 0 1 .051.183v1.938c0 .057-.018.119-.05.183-.035.066-.086.098-.153.098H22.5v-2.5h.297zm0 3c.067 0 .118.033.152.098.033.065.051.127.051.183v1.938c0 .057-.018.119-.05.183-.035.066-.086.098-.153.098H22.5v-2.5h.297z" fill="#ca64ea"/>
|
||||
</svg>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.0 KiB |
@ -14,4 +14,4 @@ CATEGORIES="WinApps;Office"
|
||||
MIME_TYPES="application/msonenote;"
|
||||
|
||||
# System Icon
|
||||
ICON="ms-outlook"
|
||||
ICON="ms-outlook"
|
||||
|
@ -14,4 +14,4 @@ CATEGORIES="WinApps;Office"
|
||||
MIME_TYPES="application/vnd.ms-outlook;application/octet-stream;"
|
||||
|
||||
# System Icon
|
||||
ICON="ms-outlook"
|
||||
ICON="ms-outlook"
|
||||
|
@ -14,4 +14,4 @@ CATEGORIES="WinApps;Office"
|
||||
MIME_TYPES="application/vnd.ms-outlook;application/octet-stream;"
|
||||
|
||||
# System Icon
|
||||
ICON="ms-outlook"
|
||||
ICON="ms-outlook"
|
||||
|
@ -14,4 +14,4 @@ CATEGORIES="WinApps;Office"
|
||||
MIME_TYPES="application/vnd.ms-outlook;application/octet-stream;"
|
||||
|
||||
# System Icon
|
||||
ICON="ms-outlook"
|
||||
ICON="ms-outlook"
|
||||
|
@ -14,4 +14,4 @@ CATEGORIES="WinApps;Office"
|
||||
MIME_TYPES="application/vnd.ms-outlook;application/octet-stream;"
|
||||
|
||||
# System Icon
|
||||
ICON="ms-outlook"
|
||||
ICON="ms-outlook"
|
||||
|
@ -1 +1 @@
|
||||
<svg role="img" focusable="false" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14"><path d="M 1,1 1,13 13,13 13,1 1,1 Z M 6.8475,7.1225 C 6.47325,7.497 5.885,7.6725 5.2205,7.6725 5.045,7.6725 4.8845,7.6647 4.76225,7.642 l 0,1.94 -0.93175,0 0,-5.079 c 0.336,-0.06125 0.802,-0.107 1.436,-0.107 0.6875,0 1.1915,0.14525 1.52,0.42 0.3055,0.252 0.504,0.65675 0.504,1.138 -2.5e-4,0.48875 -0.15275,0.8935 -0.443,1.1685 z M 8.65725,9.65825 C 8.207,9.65825 7.80225,9.5515 7.527,9.39875 l 0.183,-0.68 C 7.92375,8.849 8.32875,8.986 8.66475,8.986 c 0.4125,0 0.5955,-0.16825 0.5955,-0.41225 0,-0.252 -0.1525,-0.38175 -0.6105,-0.54225 C 7.924,7.77925 7.61825,7.382 7.626,6.947 c 0,-0.65675 0.5425,-1.16875 1.40525,-1.16875 0.41275,0 0.7715,0.107 0.98525,0.2215 L 9.83325,6.66425 C 9.673,6.57275 9.375,6.4505 9.04675,6.4505 8.7105,6.4505 8.5275,6.611 8.5275,6.84025 c 0,0.23675 0.17575,0.35125 0.6495,0.51925 0.672,0.2445 0.985,0.588 0.99275,1.13825 0,0.67175 -0.527,1.1605 -1.5125,1.1605 z M 5.3045,5.114 c -0.25975,0 -0.443,0.023 -0.54225,0.04575 l 0,1.7415 C 4.87675,6.93175 5.0295,6.9395 5.2205,6.9395 5.92325,6.9395 6.35075,6.59575 6.35075,5.99225 6.35075,5.4195 5.95375,5.114 5.3045,5.114 Z" fill="#00CDF7" /></svg>
|
||||
<svg role="img" focusable="false" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14"><path d="M 1,1 1,13 13,13 13,1 1,1 Z M 6.8475,7.1225 C 6.47325,7.497 5.885,7.6725 5.2205,7.6725 5.045,7.6725 4.8845,7.6647 4.76225,7.642 l 0,1.94 -0.93175,0 0,-5.079 c 0.336,-0.06125 0.802,-0.107 1.436,-0.107 0.6875,0 1.1915,0.14525 1.52,0.42 0.3055,0.252 0.504,0.65675 0.504,1.138 -2.5e-4,0.48875 -0.15275,0.8935 -0.443,1.1685 z M 8.65725,9.65825 C 8.207,9.65825 7.80225,9.5515 7.527,9.39875 l 0.183,-0.68 C 7.92375,8.849 8.32875,8.986 8.66475,8.986 c 0.4125,0 0.5955,-0.16825 0.5955,-0.41225 0,-0.252 -0.1525,-0.38175 -0.6105,-0.54225 C 7.924,7.77925 7.61825,7.382 7.626,6.947 c 0,-0.65675 0.5425,-1.16875 1.40525,-1.16875 0.41275,0 0.7715,0.107 0.98525,0.2215 L 9.83325,6.66425 C 9.673,6.57275 9.375,6.4505 9.04675,6.4505 8.7105,6.4505 8.5275,6.611 8.5275,6.84025 c 0,0.23675 0.17575,0.35125 0.6495,0.51925 0.672,0.2445 0.985,0.588 0.99275,1.13825 0,0.67175 -0.527,1.1605 -1.5125,1.1605 z M 5.3045,5.114 c -0.25975,0 -0.443,0.023 -0.54225,0.04575 l 0,1.7415 C 4.87675,6.93175 5.0295,6.9395 5.2205,6.9395 5.92325,6.9395 6.35075,6.59575 6.35075,5.99225 6.35075,5.4195 5.95375,5.114 5.3045,5.114 Z" fill="#00CDF7" /></svg>
|
||||
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
@ -14,4 +14,4 @@ CATEGORIES="WinApps;Adobe"
|
||||
MIME_TYPES="image/vnd.adobe.photoshop;"
|
||||
|
||||
# System Icon
|
||||
ICON="AdobePhotoshop"
|
||||
ICON="AdobePhotoshop"
|
||||
|
@ -1 +1 @@
|
||||
<svg role="img" focusable="false" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14"><path d="M 1,1 1,13 13,13 13,1 1,1 Z M 6.8475,7.1225 C 6.47325,7.497 5.885,7.6725 5.2205,7.6725 5.045,7.6725 4.8845,7.6647 4.76225,7.642 l 0,1.94 -0.93175,0 0,-5.079 c 0.336,-0.06125 0.802,-0.107 1.436,-0.107 0.6875,0 1.1915,0.14525 1.52,0.42 0.3055,0.252 0.504,0.65675 0.504,1.138 -2.5e-4,0.48875 -0.15275,0.8935 -0.443,1.1685 z M 8.65725,9.65825 C 8.207,9.65825 7.80225,9.5515 7.527,9.39875 l 0.183,-0.68 C 7.92375,8.849 8.32875,8.986 8.66475,8.986 c 0.4125,0 0.5955,-0.16825 0.5955,-0.41225 0,-0.252 -0.1525,-0.38175 -0.6105,-0.54225 C 7.924,7.77925 7.61825,7.382 7.626,6.947 c 0,-0.65675 0.5425,-1.16875 1.40525,-1.16875 0.41275,0 0.7715,0.107 0.98525,0.2215 L 9.83325,6.66425 C 9.673,6.57275 9.375,6.4505 9.04675,6.4505 8.7105,6.4505 8.5275,6.611 8.5275,6.84025 c 0,0.23675 0.17575,0.35125 0.6495,0.51925 0.672,0.2445 0.985,0.588 0.99275,1.13825 0,0.67175 -0.527,1.1605 -1.5125,1.1605 z M 5.3045,5.114 c -0.25975,0 -0.443,0.023 -0.54225,0.04575 l 0,1.7415 C 4.87675,6.93175 5.0295,6.9395 5.2205,6.9395 5.92325,6.9395 6.35075,6.59575 6.35075,5.99225 6.35075,5.4195 5.95375,5.114 5.3045,5.114 Z" fill="#00CDF7" /></svg>
|
||||
<svg role="img" focusable="false" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14"><path d="M 1,1 1,13 13,13 13,1 1,1 Z M 6.8475,7.1225 C 6.47325,7.497 5.885,7.6725 5.2205,7.6725 5.045,7.6725 4.8845,7.6647 4.76225,7.642 l 0,1.94 -0.93175,0 0,-5.079 c 0.336,-0.06125 0.802,-0.107 1.436,-0.107 0.6875,0 1.1915,0.14525 1.52,0.42 0.3055,0.252 0.504,0.65675 0.504,1.138 -2.5e-4,0.48875 -0.15275,0.8935 -0.443,1.1685 z M 8.65725,9.65825 C 8.207,9.65825 7.80225,9.5515 7.527,9.39875 l 0.183,-0.68 C 7.92375,8.849 8.32875,8.986 8.66475,8.986 c 0.4125,0 0.5955,-0.16825 0.5955,-0.41225 0,-0.252 -0.1525,-0.38175 -0.6105,-0.54225 C 7.924,7.77925 7.61825,7.382 7.626,6.947 c 0,-0.65675 0.5425,-1.16875 1.40525,-1.16875 0.41275,0 0.7715,0.107 0.98525,0.2215 L 9.83325,6.66425 C 9.673,6.57275 9.375,6.4505 9.04675,6.4505 8.7105,6.4505 8.5275,6.611 8.5275,6.84025 c 0,0.23675 0.17575,0.35125 0.6495,0.51925 0.672,0.2445 0.985,0.588 0.99275,1.13825 0,0.67175 -0.527,1.1605 -1.5125,1.1605 z M 5.3045,5.114 c -0.25975,0 -0.443,0.023 -0.54225,0.04575 l 0,1.7415 C 4.87675,6.93175 5.0295,6.9395 5.2205,6.9395 5.92325,6.9395 6.35075,6.59575 6.35075,5.99225 6.35075,5.4195 5.95375,5.114 5.3045,5.114 Z" fill="#00CDF7" /></svg>
|
||||
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
@ -14,4 +14,4 @@ CATEGORIES="WinApps;Adobe"
|
||||
MIME_TYPES="image/vnd.adobe.photoshop;"
|
||||
|
||||
# System Icon
|
||||
ICON="AdobePhotoshop"
|
||||
ICON="AdobePhotoshop"
|
||||
|
@ -1 +1 @@
|
||||
<svg role="img" focusable="false" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14"><path d="M 1,1 1,13 13,13 13,1 1,1 Z M 6.8475,7.1225 C 6.47325,7.497 5.885,7.6725 5.2205,7.6725 5.045,7.6725 4.8845,7.6647 4.76225,7.642 l 0,1.94 -0.93175,0 0,-5.079 c 0.336,-0.06125 0.802,-0.107 1.436,-0.107 0.6875,0 1.1915,0.14525 1.52,0.42 0.3055,0.252 0.504,0.65675 0.504,1.138 -2.5e-4,0.48875 -0.15275,0.8935 -0.443,1.1685 z M 8.65725,9.65825 C 8.207,9.65825 7.80225,9.5515 7.527,9.39875 l 0.183,-0.68 C 7.92375,8.849 8.32875,8.986 8.66475,8.986 c 0.4125,0 0.5955,-0.16825 0.5955,-0.41225 0,-0.252 -0.1525,-0.38175 -0.6105,-0.54225 C 7.924,7.77925 7.61825,7.382 7.626,6.947 c 0,-0.65675 0.5425,-1.16875 1.40525,-1.16875 0.41275,0 0.7715,0.107 0.98525,0.2215 L 9.83325,6.66425 C 9.673,6.57275 9.375,6.4505 9.04675,6.4505 8.7105,6.4505 8.5275,6.611 8.5275,6.84025 c 0,0.23675 0.17575,0.35125 0.6495,0.51925 0.672,0.2445 0.985,0.588 0.99275,1.13825 0,0.67175 -0.527,1.1605 -1.5125,1.1605 z M 5.3045,5.114 c -0.25975,0 -0.443,0.023 -0.54225,0.04575 l 0,1.7415 C 4.87675,6.93175 5.0295,6.9395 5.2205,6.9395 5.92325,6.9395 6.35075,6.59575 6.35075,5.99225 6.35075,5.4195 5.95375,5.114 5.3045,5.114 Z" fill="#00CDF7" /></svg>
|
||||
<svg role="img" focusable="false" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14"><path d="M 1,1 1,13 13,13 13,1 1,1 Z M 6.8475,7.1225 C 6.47325,7.497 5.885,7.6725 5.2205,7.6725 5.045,7.6725 4.8845,7.6647 4.76225,7.642 l 0,1.94 -0.93175,0 0,-5.079 c 0.336,-0.06125 0.802,-0.107 1.436,-0.107 0.6875,0 1.1915,0.14525 1.52,0.42 0.3055,0.252 0.504,0.65675 0.504,1.138 -2.5e-4,0.48875 -0.15275,0.8935 -0.443,1.1685 z M 8.65725,9.65825 C 8.207,9.65825 7.80225,9.5515 7.527,9.39875 l 0.183,-0.68 C 7.92375,8.849 8.32875,8.986 8.66475,8.986 c 0.4125,0 0.5955,-0.16825 0.5955,-0.41225 0,-0.252 -0.1525,-0.38175 -0.6105,-0.54225 C 7.924,7.77925 7.61825,7.382 7.626,6.947 c 0,-0.65675 0.5425,-1.16875 1.40525,-1.16875 0.41275,0 0.7715,0.107 0.98525,0.2215 L 9.83325,6.66425 C 9.673,6.57275 9.375,6.4505 9.04675,6.4505 8.7105,6.4505 8.5275,6.611 8.5275,6.84025 c 0,0.23675 0.17575,0.35125 0.6495,0.51925 0.672,0.2445 0.985,0.588 0.99275,1.13825 0,0.67175 -0.527,1.1605 -1.5125,1.1605 z M 5.3045,5.114 c -0.25975,0 -0.443,0.023 -0.54225,0.04575 l 0,1.7415 C 4.87675,6.93175 5.0295,6.9395 5.2205,6.9395 5.92325,6.9395 6.35075,6.59575 6.35075,5.99225 6.35075,5.4195 5.95375,5.114 5.3045,5.114 Z" fill="#00CDF7" /></svg>
|
||||
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
@ -14,4 +14,4 @@ CATEGORIES="WinApps;Adobe"
|
||||
MIME_TYPES="image/vnd.adobe.photoshop;"
|
||||
|
||||
# System Icon
|
||||
ICON="AdobePhotoshop"
|
||||
ICON="AdobePhotoshop"
|
||||
|
@ -14,4 +14,4 @@ CATEGORIES="WinApps;Office"
|
||||
MIME_TYPES="application/vnd.ms-powerpoint;application/vnd.openxmlformats-officedocument.presentationml.presentation;application/vnd.openxmlformats-officedocument.presentationml.template;application/vnd.openxmlformats-officedocument.presentationml.slideshow;application/vnd.ms-powerpoint.addin.macroEnabled.12;application/vnd.ms-powerpoint.presentation.macroEnabled.12;application/vnd.ms-powerpoint.template.macroEnabled.12;application/vnd.ms-powerpoint.slideshow.macroEnabled.12;"
|
||||
|
||||
# System Icon
|
||||
ICON="ms-powerpoint"
|
||||
ICON="ms-powerpoint"
|
||||
|
@ -14,4 +14,4 @@ CATEGORIES="WinApps;Office"
|
||||
MIME_TYPES="application/vnd.ms-powerpoint;application/vnd.openxmlformats-officedocument.presentationml.presentation;application/vnd.openxmlformats-officedocument.presentationml.template;application/vnd.openxmlformats-officedocument.presentationml.slideshow;application/vnd.ms-powerpoint.addin.macroEnabled.12;application/vnd.ms-powerpoint.presentation.macroEnabled.12;application/vnd.ms-powerpoint.template.macroEnabled.12;application/vnd.ms-powerpoint.slideshow.macroEnabled.12;"
|
||||
|
||||
# System Icon
|
||||
ICON="ms-powerpoint"
|
||||
ICON="ms-powerpoint"
|
||||
|
@ -14,4 +14,4 @@ CATEGORIES="WinApps;Office"
|
||||
MIME_TYPES="application/vnd.ms-powerpoint;application/vnd.openxmlformats-officedocument.presentationml.presentation;application/vnd.openxmlformats-officedocument.presentationml.template;application/vnd.openxmlformats-officedocument.presentationml.slideshow;application/vnd.ms-powerpoint.addin.macroEnabled.12;application/vnd.ms-powerpoint.presentation.macroEnabled.12;application/vnd.ms-powerpoint.template.macroEnabled.12;application/vnd.ms-powerpoint.slideshow.macroEnabled.12;"
|
||||
|
||||
# System Icon
|
||||
ICON="ms-powerpoint"
|
||||
ICON="ms-powerpoint"
|
||||
|
@ -14,4 +14,4 @@ CATEGORIES="WinApps;Office"
|
||||
MIME_TYPES="application/vnd.ms-powerpoint;application/vnd.openxmlformats-officedocument.presentationml.presentation;application/vnd.openxmlformats-officedocument.presentationml.template;application/vnd.openxmlformats-officedocument.presentationml.slideshow;application/vnd.ms-powerpoint.addin.macroEnabled.12;application/vnd.ms-powerpoint.presentation.macroEnabled.12;application/vnd.ms-powerpoint.template.macroEnabled.12;application/vnd.ms-powerpoint.slideshow.macroEnabled.12;"
|
||||
|
||||
# System Icon
|
||||
ICON="ms-powerpoint"
|
||||
ICON="ms-powerpoint"
|
||||
|
@ -1,3 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2048 2048">
|
||||
<path d="M496 819q49 0 78 19t29 72q0 23-10 37t-27 24-36 12-38 4h-92V819h96zm1552-482v1374q0 33-24 57t-57 24h-175v41q0 36-25 61t-62 26H599q-36 0-61-25t-26-62v-297H85q-35 0-60-25t-25-60V597q0-35 25-60t60-25h427V215q0-36 25-61t62-26h1106q36 0 61 25t26 62v41h175q33 0 57 24t24 57zM767 905q0-58-19-99t-54-68-80-38-100-12H243v671h157v-234h106q49 0 95-14t84-42 59-69 23-95zm897 887v-256H640v256h1024zm0-384v-320h-640v320h640zm0-448V256H640v256h299q35 0 60 25t25 60v363h640zm256 704V384h-128v1280h128z" fill="#37C6D0" />
|
||||
<path d="M496 819q49 0 78 19t29 72q0 23-10 37t-27 24-36 12-38 4h-92V819h96zm1552-482v1374q0 33-24 57t-57 24h-175v41q0 36-25 61t-62 26H599q-36 0-61-25t-26-62v-297H85q-35 0-60-25t-25-60V597q0-35 25-60t60-25h427V215q0-36 25-61t62-26h1106q36 0 61 25t26 62v41h175q33 0 57 24t24 57zM767 905q0-58-19-99t-54-68-80-38-100-12H243v671h157v-234h106q49 0 95-14t84-42 59-69 23-95zm897 887v-256H640v256h1024zm0-384v-320h-640v320h640zm0-448V256H640v256h299q35 0 60 25t25 60v363h640zm256 704V384h-128v1280h128z" fill="#37C6D0" />
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 586 B After Width: | Height: | Size: 587 B |
@ -1,3 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2048 2048">
|
||||
<path d="M496 819q49 0 78 19t29 72q0 23-10 37t-27 24-36 12-38 4h-92V819h96zm1552-482v1374q0 33-24 57t-57 24h-175v41q0 36-25 61t-62 26H599q-36 0-61-25t-26-62v-297H85q-35 0-60-25t-25-60V597q0-35 25-60t60-25h427V215q0-36 25-61t62-26h1106q36 0 61 25t26 62v41h175q33 0 57 24t24 57zM767 905q0-58-19-99t-54-68-80-38-100-12H243v671h157v-234h106q49 0 95-14t84-42 59-69 23-95zm897 887v-256H640v256h1024zm0-384v-320h-640v320h640zm0-448V256H640v256h299q35 0 60 25t25 60v363h640zm256 704V384h-128v1280h128z" fill="#37C6D0" />
|
||||
<path d="M496 819q49 0 78 19t29 72q0 23-10 37t-27 24-36 12-38 4h-92V819h96zm1552-482v1374q0 33-24 57t-57 24h-175v41q0 36-25 61t-62 26H599q-36 0-61-25t-26-62v-297H85q-35 0-60-25t-25-60V597q0-35 25-60t60-25h427V215q0-36 25-61t62-26h1106q36 0 61 25t26 62v41h175q33 0 57 24t24 57zM767 905q0-58-19-99t-54-68-80-38-100-12H243v671h157v-234h106q49 0 95-14t84-42 59-69 23-95zm897 887v-256H640v256h1024zm0-384v-320h-640v320h640zm0-448V256H640v256h299q35 0 60 25t25 60v363h640zm256 704V384h-128v1280h128z" fill="#37C6D0" />
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 586 B After Width: | Height: | Size: 587 B |
@ -1,3 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2048 2048">
|
||||
<path d="M496 819q49 0 78 19t29 72q0 23-10 37t-27 24-36 12-38 4h-92V819h96zm1552-482v1374q0 33-24 57t-57 24h-175v41q0 36-25 61t-62 26H599q-36 0-61-25t-26-62v-297H85q-35 0-60-25t-25-60V597q0-35 25-60t60-25h427V215q0-36 25-61t62-26h1106q36 0 61 25t26 62v41h175q33 0 57 24t24 57zM767 905q0-58-19-99t-54-68-80-38-100-12H243v671h157v-234h106q49 0 95-14t84-42 59-69 23-95zm897 887v-256H640v256h1024zm0-384v-320h-640v320h640zm0-448V256H640v256h299q35 0 60 25t25 60v363h640zm256 704V384h-128v1280h128z" fill="#37C6D0" />
|
||||
<path d="M496 819q49 0 78 19t29 72q0 23-10 37t-27 24-36 12-38 4h-92V819h96zm1552-482v1374q0 33-24 57t-57 24h-175v41q0 36-25 61t-62 26H599q-36 0-61-25t-26-62v-297H85q-35 0-60-25t-25-60V597q0-35 25-60t60-25h427V215q0-36 25-61t62-26h1106q36 0 61 25t26 62v41h175q33 0 57 24t24 57zM767 905q0-58-19-99t-54-68-80-38-100-12H243v671h157v-234h106q49 0 95-14t84-42 59-69 23-95zm897 887v-256H640v256h1024zm0-384v-320h-640v320h640zm0-448V256H640v256h299q35 0 60 25t25 60v363h640zm256 704V384h-128v1280h128z" fill="#37C6D0" />
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 586 B After Width: | Height: | Size: 587 B |
@ -1,3 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2048 2048">
|
||||
<path d="M496 819q49 0 78 19t29 72q0 23-10 37t-27 24-36 12-38 4h-92V819h96zm1552-482v1374q0 33-24 57t-57 24h-175v41q0 36-25 61t-62 26H599q-36 0-61-25t-26-62v-297H85q-35 0-60-25t-25-60V597q0-35 25-60t60-25h427V215q0-36 25-61t62-26h1106q36 0 61 25t26 62v41h175q33 0 57 24t24 57zM767 905q0-58-19-99t-54-68-80-38-100-12H243v671h157v-234h106q49 0 95-14t84-42 59-69 23-95zm897 887v-256H640v256h1024zm0-384v-320h-640v320h640zm0-448V256H640v256h299q35 0 60 25t25 60v363h640zm256 704V384h-128v1280h128z" fill="#37C6D0" />
|
||||
<path d="M496 819q49 0 78 19t29 72q0 23-10 37t-27 24-36 12-38 4h-92V819h96zm1552-482v1374q0 33-24 57t-57 24h-175v41q0 36-25 61t-62 26H599q-36 0-61-25t-26-62v-297H85q-35 0-60-25t-25-60V597q0-35 25-60t60-25h427V215q0-36 25-61t62-26h1106q36 0 61 25t26 62v41h175q33 0 57 24t24 57zM767 905q0-58-19-99t-54-68-80-38-100-12H243v671h157v-234h106q49 0 95-14t84-42 59-69 23-95zm897 887v-256H640v256h1024zm0-384v-320h-640v320h640zm0-448V256H640v256h299q35 0 60 25t25 60v363h640zm256 704V384h-128v1280h128z" fill="#37C6D0" />
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 586 B After Width: | Height: | Size: 587 B |
@ -14,4 +14,4 @@ CATEGORIES="WinApps;Office"
|
||||
MIME_TYPES="application/msword;application/vnd.openxmlformats-officedocument.wordprocessingml.document;application/vnd.openxmlformats-officedocument.wordprocessingml.template;application/vnd.ms-word.document.macroEnabled.12;application/vnd.ms-word.template.macroEnabled.12;"
|
||||
|
||||
# System Icon
|
||||
ICON="ms-word"
|
||||
ICON="ms-word"
|
||||
|
@ -14,4 +14,4 @@ CATEGORIES="WinApps;Office"
|
||||
MIME_TYPES="application/msword;application/vnd.openxmlformats-officedocument.wordprocessingml.document;application/vnd.openxmlformats-officedocument.wordprocessingml.template;application/vnd.ms-word.document.macroEnabled.12;application/vnd.ms-word.template.macroEnabled.12;"
|
||||
|
||||
# System Icon
|
||||
ICON="ms-word"
|
||||
ICON="ms-word"
|
||||
|
@ -14,4 +14,4 @@ CATEGORIES="WinApps;Office"
|
||||
MIME_TYPES="application/msword;application/vnd.openxmlformats-officedocument.wordprocessingml.document;application/vnd.openxmlformats-officedocument.wordprocessingml.template;application/vnd.ms-word.document.macroEnabled.12;application/vnd.ms-word.template.macroEnabled.12;"
|
||||
|
||||
# System Icon
|
||||
ICON="ms-word"
|
||||
ICON="ms-word"
|
||||
|
@ -14,4 +14,4 @@ CATEGORIES="WinApps;Office"
|
||||
MIME_TYPES="application/msword;application/vnd.openxmlformats-officedocument.wordprocessingml.document;application/vnd.openxmlformats-officedocument.wordprocessingml.template;application/vnd.ms-word.document.macroEnabled.12;application/vnd.ms-word.template.macroEnabled.12;"
|
||||
|
||||
# System Icon
|
||||
ICON="ms-word"
|
||||
ICON="ms-word"
|
||||
|
177
bin/winapps
@ -1,123 +1,130 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
if [ ! -f "${HOME}/.config/winapps/winapps.conf" ] && [ ! -f "${HOME}/.winapps" ]; then
|
||||
echo "You need to create a ~/.config/winapps/winapps.conf configuration. Exiting..."
|
||||
exit
|
||||
if [ ! -f "$HOME/.config/winapps/winapps.conf" ] && [ ! -f "$HOME/.winapps" ]; then
|
||||
echo "You need to create a ~/.config/winapps/winapps.conf configuration. Exiting..."
|
||||
exit
|
||||
fi
|
||||
DIR="$(dirname "$(readlink -f "$0")")"
|
||||
RUN="$(date)-${RANDOM}"
|
||||
RUN="$(date)-$RANDOM"
|
||||
|
||||
if [ ! -d "${HOME}/.local/share/winapps" ]; then
|
||||
mkdir -p "${HOME}/.local/share/winapps"
|
||||
if [ ! -d "$HOME/.local/share/winapps" ]; then
|
||||
mkdir -p "$HOME/.local/share/winapps"
|
||||
fi
|
||||
|
||||
RDP_SCALE=100
|
||||
|
||||
if [ -f "${HOME}/.config/winapps/winapps.conf" ]; then
|
||||
. "${HOME}/.config/winapps/winapps.conf"
|
||||
if [ -f "$HOME/.config/winapps/winapps.conf" ]; then
|
||||
# shellcheck source=/dev/null
|
||||
. "$HOME/.config/winapps/winapps.conf"
|
||||
else
|
||||
. "${HOME}/.winapps"
|
||||
# shellcheck source=/dev/null
|
||||
. "$HOME/.winapps"
|
||||
fi
|
||||
|
||||
function dprint() {
|
||||
if [ "${DEBUG}" = "true" ]; then
|
||||
echo "[${RUN}] ${1}" >>"${HOME}/.local/share/winapps/winapps.log"
|
||||
fi
|
||||
if [ "$DEBUG" = "true" ]; then
|
||||
echo "[$RUN] $1" >>"$HOME/.local/share/winapps/winapps.log"
|
||||
fi
|
||||
}
|
||||
|
||||
dprint "START"
|
||||
|
||||
if [ -f "${HOME}/.local/share/winapps/run" ]; then
|
||||
LAST_RAN=$(stat -t -c %Y "${HOME}/.local/share/winapps/run")
|
||||
dprint "LAST_RAN:${LAST_RAN}"
|
||||
touch "${HOME}/.local/share/winapps/run"
|
||||
THIS_RUN=$(stat -t -c %Y "${HOME}/.local/share/winapps/run")
|
||||
dprint "THIS_RUN:${THIS_RUN}"
|
||||
if ((THIS_RUN - LAST_RAN < 2)); then
|
||||
exit
|
||||
fi
|
||||
if [ -f "$HOME/.local/share/winapps/run" ]; then
|
||||
LAST_RAN=$(stat -t -c %Y "$HOME/.local/share/winapps/run")
|
||||
dprint "LAST_RAN:${LAST_RAN}"
|
||||
touch "$HOME/.local/share/winapps/run"
|
||||
THIS_RUN=$(stat -t -c %Y "$HOME/.local/share/winapps/run")
|
||||
dprint "THIS_RUN:$THIS_RUN"
|
||||
if ((THIS_RUN - LAST_RAN < 2)); then
|
||||
exit
|
||||
fi
|
||||
else
|
||||
touch "${HOME}/.local/share/winapps/run"
|
||||
touch "$HOME/.local/share/winapps/run"
|
||||
fi
|
||||
|
||||
if [ -z "${FREERDP_COMMAND}" ]; then
|
||||
if command -v xfreerdp &> /dev/null
|
||||
then
|
||||
FREERDP_COMMAND="xfreerdp"
|
||||
elif command -v xfreerdp3 &> /dev/null
|
||||
then
|
||||
FREERDP_COMMAND="xfreerdp3"
|
||||
fi
|
||||
elif command -v $FREERDP_COMMAND &> /dev/null
|
||||
if command -v xfreerdp &> /dev/null
|
||||
then
|
||||
FREERDP_COMMAND="xfreerdp"
|
||||
elif command -v xfreerdp3 &> /dev/null
|
||||
then
|
||||
FREERDP_COMMAND="xfreerdp3"
|
||||
fi
|
||||
elif command -v "$FREERDP_COMMAND" &> /dev/null
|
||||
then
|
||||
dprint "Using custom freerdp command ${FREERDP_COMMAND}"
|
||||
dprint "Using custom freerdp command $FREERDP_COMMAND"
|
||||
else
|
||||
echo "You have supplied a custom FreeRDP command, but the command is not available."
|
||||
exit
|
||||
echo "You have supplied a custom FreeRDP command, but the command is not available."
|
||||
exit
|
||||
fi
|
||||
|
||||
if [ -z "${RDP_IP}" ]; then
|
||||
if [ ! "$(groups | grep -v libvirt)" ]; then
|
||||
echo "You are not a member of the libvirt group. Run the below then reboot."
|
||||
echo ' sudo usermod -a -G libvirt $(whoami)'
|
||||
echo ' sudo usermod -a -G kvm $(whoami)'
|
||||
exit
|
||||
fi
|
||||
if [ ! "$(virsh list | grep -v RDPWindows)" ]; then
|
||||
echo "RDPWindows is not running, run:"
|
||||
echo " virsh start RDPWindows"
|
||||
exit
|
||||
fi
|
||||
RDP_IP=$(virsh net-dhcp-leases default | grep RDPWindows | awk '{print $5}')
|
||||
RDP_IP=${RDP_IP%%\/*}
|
||||
if [ -z "$RDP_IP" ]; then
|
||||
if groups | grep -vq libvirt; then
|
||||
echo "You are not a member of the libvirt group. Run the below then reboot."
|
||||
echo " sudo usermod -a -G libvirt $(whoami)"
|
||||
echo " sudo usermod -a -G kvm $(whoami)"
|
||||
exit
|
||||
fi
|
||||
if virsh list | grep -vq RDPWindows; then
|
||||
echo "RDPWindows is not running, run:"
|
||||
echo " virsh start RDPWindows"
|
||||
exit
|
||||
fi
|
||||
RDP_IP=$(virsh net-dhcp-leases default | grep RDPWindows | awk '{print $5}')
|
||||
RDP_IP=${RDP_IP%%\/*}
|
||||
|
||||
fi
|
||||
|
||||
dprint "1:${1}"
|
||||
dprint "2:${2}"
|
||||
dprint "1:$1"
|
||||
dprint "2:$2"
|
||||
# this is just for debug logging anyways
|
||||
# shellcheck disable=SC2145
|
||||
dprint "@:${@}"
|
||||
|
||||
MULTI_FLAG="+span"
|
||||
if [ "${MULTIMON}" = "true" ]; then
|
||||
MULTI_FLAG="/multimon"
|
||||
if [ "$MULTIMON" = "true" ]; then
|
||||
MULTI_FLAG="/multimon"
|
||||
fi
|
||||
|
||||
if [ "${1}" = "windows" ]; then
|
||||
$FREERDP_COMMAND ${RDP_FLAGS} /d:"${RDP_DOMAIN}" /u:"${RDP_USER}" /p:"${RDP_PASS}" /scale:${RDP_SCALE} +dynamic-resolution +auto-reconnect +home-drive /wm-class:"Microsoft Windows" /v:${RDP_IP} 1>/dev/null 2>&1 &
|
||||
elif [ "${1}" = "check" ]; then
|
||||
dprint "CHECK"
|
||||
$FREERDP_COMMAND ${RDP_FLAGS} /d:"${RDP_DOMAIN}" /u:"${RDP_USER}" /p:"${RDP_PASS}" /scale:${RDP_SCALE} +auto-reconnect +home-drive -wallpaper +dynamic-resolution ${MULTI_FLAG} /app:program:"explorer.exe" /v:${RDP_IP}
|
||||
elif [ "${1}" = "manual" ]; then
|
||||
dprint "MANUAL:${2}"
|
||||
$FREERDP_COMMAND ${RDP_FLAGS} /d:"${RDP_DOMAIN}" /u:"${RDP_USER}" /p:"${RDP_PASS}" /scale:${RDP_SCALE} +auto-reconnect +home-drive +dynamic-resolution ${MULTI_FLAG} /app:program:"${2}" /v:"${RDP_IP}" 1>/dev/null 2>&1 &
|
||||
elif [ "${1}" != "install" ]; then
|
||||
dprint "DIR:${DIR}"
|
||||
if [ -e "${DIR}/../apps/${1}/info" ]; then
|
||||
# shellcheck disable=SC1090
|
||||
. "${DIR}/../apps/${1}/info"
|
||||
ICON="${DIR}/../apps/${1}/icon.svg"
|
||||
elif [ -e "${HOME}/.local/share/winapps/apps/${1}/info" ]; then
|
||||
# shellcheck disable=SC1090
|
||||
. "${HOME}/.local/share/winapps/apps/${1}/info"
|
||||
ICON="${HOME}/.local/share/winapps/apps/${1}/icon.svg"
|
||||
elif [ -e "/usr/local/share/winapps/apps/${1}/info" ]; then
|
||||
# shellcheck disable=SC1090
|
||||
. "/usr/local/share/winapps/apps/${1}/info"
|
||||
ICON="/usr/local/share/winapps/apps/${1}/icon.svg"
|
||||
else
|
||||
echo "You need to run 'installer.sh' first."
|
||||
exit 1
|
||||
fi
|
||||
if [ -n "${2}" ]; then
|
||||
dprint "HOME:${HOME}"
|
||||
FILE=$(echo "${2}" | sed 's|'"${HOME}"'|\\\\tsclient\\home|;s|/|\\|g;s|\\|\\\\|g')
|
||||
dprint "FILE:${FILE}"
|
||||
$FREERDP_COMMAND ${RDP_FLAGS} /d:"${RDP_DOMAIN}" /u:"${RDP_USER}" /p:"${RDP_PASS}" /scale:${RDP_SCALE} +auto-reconnect +clipboard +home-drive -wallpaper +dynamic-resolution ${MULTI_FLAG} /wm-class:"${FULL_NAME}" /app:program:"${WIN_EXECUTABLE}",icon:"${ICON}",name:"${FULL_NAME}",cmd:"\"$FILE\"" /v:"${RDP_IP}" 1>/dev/null 2>&1 &
|
||||
else
|
||||
$FREERDP_COMMAND ${RDP_FLAGS} /d:"${RDP_DOMAIN}" /u:"${RDP_USER}" /p:"${RDP_PASS}" /scale:${RDP_SCALE} +auto-reconnect +clipboard +home-drive -wallpaper +dynamic-resolution ${MULTI_FLAG} /wm-class:"${FULL_NAME}" /app:program:"${WIN_EXECUTABLE}",icon:"${ICON}",name:"${FULL_NAME}" /v:"${RDP_IP}" 1>/dev/null 2>&1 &
|
||||
fi
|
||||
if [[ -n "$RDP_FLAGS" ]]; then
|
||||
FREERDP_COMMAND="$FREERDP_COMMAND $RDP_FLAGS"
|
||||
fi
|
||||
|
||||
if [ "$1" = "windows" ]; then
|
||||
$FREERDP_COMMAND /d:"$RDP_DOMAIN" /u:"$RDP_USER" /p:"$RDP_PASS" /scale:$RDP_SCALE +dynamic-resolution +auto-reconnect +home-drive /wm-class:"Microsoft Windows" /v:"$RDP_IP" 1>/dev/null 2>&1 &
|
||||
elif [ "$1" = "check" ]; then
|
||||
dprint "CHECK"
|
||||
$FREERDP_COMMAND /d:"$RDP_DOMAIN" /u:"$RDP_USER" /p:"$RDP_PASS" /scale:$RDP_SCALE +auto-reconnect +home-drive -wallpaper +dynamic-resolution $MULTI_FLAG /app:program:"explorer.exe" /v:"$RDP_IP"
|
||||
elif [ "$1" = "manual" ]; then
|
||||
dprint "MANUAL:$2"
|
||||
$FREERDP_COMMAND /d:"$RDP_DOMAIN" /u:"$RDP_USER" /p:"$RDP_PASS" /scale:$RDP_SCALE +auto-reconnect +home-drive +dynamic-resolution $MULTI_FLAG /app:program:"$2" /v:"$RDP_IP" 1>/dev/null 2>&1 &
|
||||
elif [ "$1" != "install" ]; then
|
||||
dprint "DIR:${DIR}"
|
||||
if [ -e "${DIR}/../apps/$1/info" ]; then
|
||||
# shellcheck disable=SC1090
|
||||
. "${DIR}/../apps/$1/info"
|
||||
ICON="${DIR}/../apps/$1/icon.svg"
|
||||
elif [ -e "$HOME/.local/share/winapps/apps/$1/info" ]; then
|
||||
# shellcheck disable=SC1090
|
||||
. "$HOME/.local/share/winapps/apps/$1/info"
|
||||
ICON="$HOME/.local/share/winapps/apps/$1/icon.svg"
|
||||
elif [ -e "/usr/local/share/winapps/apps/$1/info" ]; then
|
||||
# shellcheck disable=SC1090
|
||||
. "/usr/local/share/winapps/apps/$1/info"
|
||||
ICON="/usr/local/share/winapps/apps/$1/icon.svg"
|
||||
else
|
||||
echo "You need to run 'installer.sh' first."
|
||||
exit 1
|
||||
fi
|
||||
if [ -n "$2" ]; then
|
||||
dprint "HOME:$HOME"
|
||||
FILE=$(echo "$2" | sed 's|'"$HOME"'|\\\\tsclient\\home|;s|/|\\|g;s|\\|\\\\|g')
|
||||
dprint "FILE:${FILE}"
|
||||
# shellcheck disable=SC2140
|
||||
$FREERDP_COMMAND /d:"$RDP_DOMAIN" /u:"$RDP_USER" /p:"$RDP_PASS" /scale:$RDP_SCALE +auto-reconnect +clipboard +home-drive -wallpaper +dynamic-resolution $MULTI_FLAG /wm-class:"$FULL_NAME" /app:program:"$WIN_EXECUTABLE",icon:"$ICON",name:"$FULL_NAME",cmd:"\"$FILE\"" /v:"$RDP_IP" 1>/dev/null 2>&1 &
|
||||
else
|
||||
$FREERDP_COMMAND /d:"$RDP_DOMAIN" /u:"$RDP_USER" /p:"$RDP_PASS" /scale:$RDP_SCALE +auto-reconnect +clipboard +home-drive -wallpaper +dynamic-resolution $MULTI_FLAG /wm-class:"$FULL_NAME" /app:program:"$WIN_EXECUTABLE",icon:"$ICON",name:"$FULL_NAME" /v:"$RDP_IP" 1>/dev/null 2>&1 &
|
||||
fi
|
||||
fi
|
||||
|
||||
dprint "END"
|
||||
|
23
compose.yaml
Normal file
@ -0,0 +1,23 @@
|
||||
name: "winapps"
|
||||
|
||||
volumes:
|
||||
data:
|
||||
|
||||
services:
|
||||
windows:
|
||||
image: dockurr/windows
|
||||
container_name: windows
|
||||
environment:
|
||||
VERSION: "tiny11"
|
||||
RAM_SIZE: "4G"
|
||||
CPU_CORES: "4"
|
||||
privileged: true
|
||||
ports:
|
||||
- 8006:8006
|
||||
- 3389:3389/tcp
|
||||
- 3389:3389/udp
|
||||
stop_grace_period: 2m
|
||||
restart: on-failure
|
||||
volumes:
|
||||
- data:/storage
|
||||
- ./oem:/oem
|
@ -198,6 +198,3 @@ sudo systemctl restart libvirtd
|
||||
sudo ln -s /etc/apparmor.d/usr.sbin.libvirtd /etc/apparmor.d/disable/
|
||||
```
|
||||
You will likely need to reboot to ensure your current shell is added to the group.
|
||||
|
||||
|
||||
|
||||
|
162
docs/docker.md
@ -1,81 +1,83 @@
|
||||
# Docker
|
||||
|
||||
## Why docker?
|
||||
|
||||
While working with virsh is completely fine for winapps, however you have to setup and optimise you vm manually. Docker on the other hand setups most of the stuff automatically and also makes the vm highly portable between linux distros.
|
||||
|
||||
# Requirements
|
||||
|
||||
Since docker manages the dependencies of the container automatically you only need to install docker or podman itself. (Podman is recommended because of the faster container startup times. Note that podman and docker are interchangeable so no instructions will change depending on which one you use)
|
||||
|
||||
You might also want to take a look in the docs:
|
||||
- [podman docs](https://docs.podman.io/)
|
||||
- [docker docs](https://docs.docker.com/)
|
||||
|
||||
When using podman you want to make sure podman socket is enabled with:
|
||||
```shell
|
||||
sudo systemctl enable --now podman.socket
|
||||
```
|
||||
|
||||
> [!NOTE]
|
||||
> This will only work on linux systems since some kernel interfaces (like kvm) are needed by the vm. Because of this performance can vary in kernel versions (newer will likely perform better).
|
||||
|
||||
# Setup docker container
|
||||
|
||||
The easiest way to setup a windows vm is by using docker compose. Just create a `compose.yml` with following content:
|
||||
|
||||
```yaml
|
||||
name: "winapps"
|
||||
|
||||
volumes:
|
||||
data:
|
||||
|
||||
services:
|
||||
windows:
|
||||
image: dockurr/windows
|
||||
container_name: windows
|
||||
environment:
|
||||
VERSION: "tiny11"
|
||||
RAM_SIZE: "4G"
|
||||
CPU_CORES: "4"
|
||||
privileged: true
|
||||
ports:
|
||||
- 8006:8006
|
||||
- 3389:3389/tcp
|
||||
- 3389:3389/udp
|
||||
stop_grace_period: 2m
|
||||
restart: on-failure
|
||||
volumes:
|
||||
- data:/storage
|
||||
```
|
||||
|
||||
Now you can tune the ram/usage by changing RAM_SIZE/CPU_CORES. You can also specify the windows versions you want to use. You might also want to take a look at the [docker image repo](https://github.com/dockur/windows).
|
||||
|
||||
> [!NOTE]
|
||||
> Older versions than Windows 10 are not officially supported. However they might still work with some additional tuning.
|
||||
|
||||
You can now just run:
|
||||
```shell
|
||||
docker compose up
|
||||
```
|
||||
|
||||
After this just open http://127.0.0.1:8006 in your webbrowser and finish you windows installation as usual.
|
||||
|
||||
> [!WARNING]
|
||||
> Change the RDP_IP in your winapps config to localhost or "127.0.0.1".
|
||||
# Docker
|
||||
|
||||
> [!WARNING]
|
||||
> RDP will be automatically enabled, however you still need to load the [reg file](https://github.com/winapps-org/winapps/blob/main/install%2FRDPApps.reg) into you vm.
|
||||
> Just use a browser inside the vm to download.
|
||||
|
||||
Now you should be ready to go and try to connect to your vm with winapps.
|
||||
|
||||
For stopping the vm just use:
|
||||
```shell
|
||||
docker compose stop
|
||||
```
|
||||
|
||||
For starting again afterwards use:
|
||||
```shell
|
||||
docker compose start
|
||||
```
|
||||
## Why docker?
|
||||
|
||||
While working with `virsh` is completely fine for winapps, you have to set up and optimize you vm manually. Docker on the other hand sets up most of the stuff automatically and also makes the VM highly portable between Linux distros.
|
||||
|
||||
# Requirements
|
||||
|
||||
Since Docker manages the dependencies of the container automatically you only need to install Docker itself.
|
||||
|
||||
You can try using Podman too because of their faster container startup times, but note that Podman and Docker are not always fully interchangeable. In case you want to follow this guide using podman, you will have to install the `docker` CLI to be able to run `docker compose` commands. You'll also have to enable the Podman socket. Refer to the podman docs for how to do that.
|
||||
|
||||
See:
|
||||
- [Podman installation docs](https://podman.io/docs/installation)
|
||||
- [Docker installation docs](https://docs.docker.com/engine/install)
|
||||
- [Using `docker compose` with Podman](https://www.redhat.com/sysadmin/podman-docker-compose) (slightly outdated)
|
||||
|
||||
> [!NOTE]
|
||||
> This will only work on Linux systems since some kernel interfaces (like KVM) are needed by the VM. Because of this performance can vary depending on kernel version (newer will likely perform better).
|
||||
|
||||
# Setup docker container
|
||||
|
||||
The easiest way to set up a Windows VM is by using docker compose. A compose file that looks like this is already shipped with winapps:
|
||||
|
||||
```yaml
|
||||
name: "winapps"
|
||||
|
||||
volumes:
|
||||
data:
|
||||
|
||||
services:
|
||||
windows:
|
||||
image: dockurr/windows
|
||||
container_name: windows
|
||||
environment:
|
||||
VERSION: "tiny11"
|
||||
RAM_SIZE: "4G"
|
||||
CPU_CORES: "4"
|
||||
privileged: true
|
||||
ports:
|
||||
- 8006:8006
|
||||
- 3389:3389/tcp
|
||||
- 3389:3389/udp
|
||||
stop_grace_period: 2m
|
||||
restart: on-failure
|
||||
volumes:
|
||||
- data:/storage
|
||||
```
|
||||
|
||||
Now you can tune the ram/usage by changing `RAM_SIZE` & `CPU_CORES`. You can also specify the windows versions you want to use. You might also want to take a look at the [repo of the Docker image](https://github.com/dockur/windows) for further information.
|
||||
|
||||
This compose file uses Windows 11 by default. You can use Windows 10 by changing the `VERSION` to `tiny10`.
|
||||
|
||||
> [!NOTE]
|
||||
> We use a stripped-down Windows installation by default. This is recommended, but you can still opt for stock windows by changing the version to one of the versions listed in the README of the images repository linked above.
|
||||
|
||||
> [!NOTE]
|
||||
> Older versions than Windows 10 are not officially supported by us. However they might still work with some additional tuning.
|
||||
|
||||
You can now just run:
|
||||
```shell
|
||||
docker compose up -d
|
||||
```
|
||||
to run the VM in the background.
|
||||
|
||||
After this just open http://127.0.0.1:8006 in your web browser and wait for the Windows installation to finish.
|
||||
|
||||
> [!WARNING]
|
||||
> Make sure to change the `RDP_IP` in your winapps config to `127.0.0.1`.
|
||||
|
||||
Now you should be ready to go and try to connect to your VM with winapps.
|
||||
|
||||
For stopping the VM just use:
|
||||
```shell
|
||||
docker compose stop
|
||||
```
|
||||
|
||||
For starting again afterwards use:
|
||||
```shell
|
||||
docker compose start
|
||||
```
|
||||
|
||||
(All compose commands have to be run from the directory where the `compose.yaml` is located.)
|
||||
|
@ -1,3 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2048 2048">
|
||||
<path d="M0 268l768-107v735H0V268zM1920 0v896H896V143L1920 0zM896 1024h1024v896L896 1777v-753zm-896 0h768v735L0 1652v-628z" fill="#73A1FB" />
|
||||
</svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2048 2048">
|
||||
<path d="M0 268l768-107v735H0V268zM1920 0v896H896V143L1920 0zM896 1024h1024v896L896 1777v-753zm-896 0h768v735L0 1652v-628z" fill="#73A1FB" />
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 218 B After Width: | Height: | Size: 216 B |
@ -63,7 +63,7 @@ Function Get-Icon {
|
||||
.EXAMPLE
|
||||
Get-Icon -Path 'C:\windows\system32\WindowsPowerShell\v1.0\PowerShell.exe' -ToBitmap
|
||||
|
||||
Tag :
|
||||
Tag :
|
||||
PhysicalDimension : {Width=32, Height=32}
|
||||
Size : {Width=32, Height=32}
|
||||
Width : 32
|
||||
@ -173,25 +173,25 @@ Function Get-Icon {
|
||||
$Path = Convert-Path -Path $Path
|
||||
Write-Debug $Path
|
||||
If (Test-Path -Path $Path) {
|
||||
#$Icon = [System.Drawing.Icon]::ExtractAssociatedIcon($Path)|
|
||||
$Icon = [System.Drawing.Icon]::ExtractAssociatedIcon($Path)|
|
||||
#$Icon = [System.Drawing.Icon]::ExtractAssociatedIcon($Path)|
|
||||
$Icon = [System.Drawing.Icon]::ExtractAssociatedIcon($Path)|
|
||||
Add-Member -MemberType NoteProperty -Name FullName -Value $Path -PassThru
|
||||
If ($PSBoundParameters.ContainsKey('ToBytes')) {
|
||||
Write-Verbose "Retrieving bytes"
|
||||
$MemoryStream = New-Object System.IO.MemoryStream
|
||||
$Icon.save($MemoryStream)
|
||||
Write-Debug ($MemoryStream | Out-String)
|
||||
$MemoryStream.ToArray()
|
||||
$MemoryStream.Flush()
|
||||
$MemoryStream.Dispose()
|
||||
$MemoryStream.ToArray()
|
||||
$MemoryStream.Flush()
|
||||
$MemoryStream.Dispose()
|
||||
} ElseIf ($PSBoundParameters.ContainsKey('ToBitmap')) {
|
||||
$Icon.ToBitMap()
|
||||
} ElseIf ($PSBoundParameters.ContainsKey('ToBase64')) {
|
||||
$MemoryStream = New-Object System.IO.MemoryStream
|
||||
$Icon.save($MemoryStream)
|
||||
Write-Debug ($MemoryStream | Out-String)
|
||||
$Bytes = $MemoryStream.ToArray()
|
||||
$MemoryStream.Flush()
|
||||
$Bytes = $MemoryStream.ToArray()
|
||||
$MemoryStream.Flush()
|
||||
$MemoryStream.Dispose()
|
||||
[convert]::ToBase64String($Bytes)
|
||||
} Else {
|
||||
@ -219,4 +219,3 @@ Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\*" |
|
||||
"EXES+=(""$Exe"")"
|
||||
"ICONS+=(""$Icon"")"
|
||||
}
|
||||
|
||||
|
1188
install/inquirer.sh
615
installer.sh
@ -1,9 +1,9 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
if ! command -v bc &> /dev/null
|
||||
if ! command -v bc &> /dev/null
|
||||
then
|
||||
echo "You need bc!"
|
||||
exit
|
||||
echo "You need bc!"
|
||||
exit
|
||||
fi
|
||||
|
||||
DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
|
||||
@ -11,211 +11,221 @@ DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
|
||||
MAKEDEMO=0
|
||||
USEDEMO=0
|
||||
|
||||
. "${DIR}/install/inquirer.sh"
|
||||
# shellcheck disable=SC1094
|
||||
. "$DIR/install/inquirer.sh"
|
||||
|
||||
INSTALLED_EXES=()
|
||||
|
||||
function waUsage() {
|
||||
echo 'Usage:
|
||||
./installer.sh --user # Install everything in ${HOME}
|
||||
./installer.sh --system # Install everything in /usr'
|
||||
exit
|
||||
echo "Usage:
|
||||
./installer.sh --user # Install everything in $HOME
|
||||
./installer.sh --system # Install everything in /usr"
|
||||
exit
|
||||
}
|
||||
|
||||
function waNoSudo() {
|
||||
echo 'You are attempting to switch from a --system install to a --user install.
|
||||
Please run "./installer.sh --system --uninstall" first.'
|
||||
exit
|
||||
echo "You are attempting to switch from a --system install to a --user install.
|
||||
Please run \"./installer.sh --system --uninstall\" first."
|
||||
exit
|
||||
}
|
||||
|
||||
function waInstall() {
|
||||
${SUDO} mkdir -p "${SYS_PATH}/apps"
|
||||
. "${DIR}/bin/winapps" install
|
||||
$SUDO mkdir -p "$SYS_PATH/apps"
|
||||
. "$DIR/bin/winapps" install
|
||||
}
|
||||
|
||||
function waFindInstalled() {
|
||||
echo -n " Checking for installed apps in RDP machine (this may take a while)..."
|
||||
if [ $USEDEMO != 1 ]; then
|
||||
rm -f ${HOME}/.local/share/winapps/installed.bat
|
||||
rm -f ${HOME}/.local/share/winapps/installed.tmp
|
||||
rm -f ${HOME}/.local/share/winapps/installed
|
||||
rm -f ${HOME}/.local/share/winapps/detected
|
||||
cp "${DIR}/install/ExtractPrograms.ps1" ${HOME}/.local/share/winapps/ExtractPrograms.ps1
|
||||
for F in $(ls "${DIR}/apps"); do
|
||||
. "${DIR}/apps/${F}/info"
|
||||
echo "IF EXIST \"${WIN_EXECUTABLE}\" ECHO ${F} >> \\\\tsclient\\home\\.local\\share\\winapps\\installed.tmp" >>${HOME}/.local/share/winapps/installed.bat
|
||||
done
|
||||
echo "powershell.exe -ExecutionPolicy Bypass -File \\\\tsclient\\home\\.local\\share\\winapps\\ExtractPrograms.ps1 > \\\\tsclient\home\\.local\\share\\winapps\\detected" >>${HOME}/.local/share/winapps/installed.bat
|
||||
echo "RENAME \\\\tsclient\\home\\.local\\share\\winapps\\installed.tmp installed" >>${HOME}/.local/share/winapps/installed.bat
|
||||
$FREERDP_COMMAND /d:"${RDP_DOMAIN}" /u:"${RDP_USER}" /p:"${RDP_PASS}" +auto-reconnect +home-drive -wallpaper +span /app:program:"C:\Windows\System32\cmd.exe",cmd:"/C \\\\tsclient\\home\\.local\\share\\winapps\\installed.bat" /v:${RDP_IP} 1>/dev/null 2>&1 &
|
||||
COUNT=0
|
||||
while [ ! -f "${HOME}/.local/share/winapps/installed" ]; do
|
||||
sleep 5
|
||||
COUNT=$((COUNT + 1))
|
||||
if ((COUNT == 15)); then
|
||||
echo " Finished."
|
||||
echo ""
|
||||
echo "The RDP connection failed to connect or run. Please confirm FreeRDP can connect with:"
|
||||
echo " bin/winapps check"
|
||||
echo ""
|
||||
echo "If it cannot connect, this is most likely due to:"
|
||||
echo " - You need to accept the security cert the first time you connect (with 'check')"
|
||||
echo " - Not enabling RDP in the Windows VM"
|
||||
echo " - Not being able to connect to the IP of the VM"
|
||||
echo " - Incorrect user credentials in winapps.conf"
|
||||
echo " - Not merging install/RDPApps.reg into the VM"
|
||||
exit
|
||||
fi
|
||||
done
|
||||
if [ $MAKEDEMO = 1 ]; then
|
||||
rm -rf /tmp/winapps_demo
|
||||
cp -a ${HOME}/.local/share/winapps /tmp/winapps_demo
|
||||
exit
|
||||
fi
|
||||
else
|
||||
rm -rf ${HOME}/.local/share/winapps
|
||||
cp -a /tmp/winapps_demo ${HOME}/.local/share/winapps
|
||||
#sleep 3
|
||||
fi
|
||||
echo " Finished."
|
||||
echo -n " Checking for installed apps in RDP machine (this may take a while)..."
|
||||
if [ $USEDEMO != 1 ]; then
|
||||
rm -f "$HOME/.local/share/winapps/installed.bat"
|
||||
rm -f "$HOME/.local/share/winapps/installed.tmp"
|
||||
rm -f "$HOME/.local/share/winapps/installed"
|
||||
rm -f "$HOME/.local/share/winapps/detected"
|
||||
cp "$DIR/install/ExtractPrograms.ps1" "$HOME/.local/share/winapps/ExtractPrograms.ps1"
|
||||
# FIXME
|
||||
# shellcheck disable=SC2066
|
||||
for F in "$DIR/apps"; do
|
||||
[[ -e "$F" ]] || break
|
||||
# shellcheck disable=SC1090
|
||||
. "$DIR/apps/$F/info"
|
||||
printf "IF EXIST \"%s\" ECHO %s >> \\\\tsclient\\home\\.local\\share\\winapps\\installed.tmp" "$WIN_EXECUTABLE" "$F" >>"$HOME/.local/share/winapps/installed.bat"
|
||||
done
|
||||
printf "powershell.exe -ExecutionPolicy Bypass -File \\\\tsclient\\home\\.local\\share\\winapps\\ExtractPrograms.ps1 > \\\\tsclient\home\\.local\\share\\winapps\\detected" >>"$HOME/.local/share/winapps/installed.bat"
|
||||
printf "RENAME \\\\tsclient\\home\\.local\\share\\winapps\\installed.tmp installed" >>"$HOME/.local/share/winapps/installed.bat"
|
||||
# shellcheck disable=SC2140
|
||||
$FREERDP_COMMAND /d:"$RDP_DOMAIN" /u:"$RDP_USER" /p:"$RDP_PASS" +auto-reconnect +home-drive -wallpaper +span /app:program:"C:\Windows\System32\cmd.exe",cmd:"/C \\\\tsclient\\home\\.local\\share\\winapps\\installed.bat" /v:"$RDP_IP" 1>/dev/null 2>&1 &
|
||||
COUNT=0
|
||||
while [ ! -f "$HOME/.local/share/winapps/installed" ]; do
|
||||
sleep 5
|
||||
COUNT=$((COUNT + 1))
|
||||
if ((COUNT == 15)); then
|
||||
echo " Finished."
|
||||
echo ""
|
||||
echo "The RDP connection failed to connect or run. Please confirm FreeRDP can connect with:"
|
||||
echo " bin/winapps check"
|
||||
echo ""
|
||||
echo "If it cannot connect, this is most likely due to:"
|
||||
echo " - You need to accept the security cert the first time you connect (with 'check')"
|
||||
echo " - Not enabling RDP in the Windows VM"
|
||||
echo " - Not being able to connect to the IP of the VM"
|
||||
echo " - Incorrect user credentials in winapps.conf"
|
||||
echo " - Not merging install/RDPApps.reg into the VM"
|
||||
exit
|
||||
fi
|
||||
done
|
||||
if [ $MAKEDEMO = 1 ]; then
|
||||
rm -rf /tmp/winapps_demo
|
||||
cp -a "$HOME/.local/share/winapps" /tmp/winapps_demo
|
||||
exit
|
||||
fi
|
||||
else
|
||||
rm -rf "$HOME/.local/share/winapps"
|
||||
cp -a /tmp/winapps_demo "$HOME/.local/share/winapps"
|
||||
#sleep 3
|
||||
fi
|
||||
echo " Finished."
|
||||
}
|
||||
|
||||
function waConfigureApp() {
|
||||
if [ -z "${ICON}" ]; then
|
||||
ICON=${SYS_PATH}/apps/${1}/icon.${2}
|
||||
fi
|
||||
|
||||
. "${SYS_PATH}/apps/${1}/info"
|
||||
echo -n " Configuring ${NAME}..."
|
||||
if [ ${USEDEMO} != 1 ]; then
|
||||
${SUDO} rm -f "${APP_PATH}/${1}.desktop"
|
||||
echo "[Desktop Entry]
|
||||
Name=${NAME}
|
||||
Exec=${BIN_PATH}/winapps ${1} %F
|
||||
if [ -z "$ICON" ]; then
|
||||
ICON=$SYS_PATH/apps/$1/icon.$2
|
||||
fi
|
||||
# shellcheck disable=SC1090
|
||||
. "$SYS_PATH/apps/$1/info"
|
||||
echo -n " Configuring $NAME..."
|
||||
if [ $USEDEMO != 1 ]; then
|
||||
$SUDO rm -f "$APP_PATH/$1.desktop"
|
||||
echo "[Desktop Entry]
|
||||
Name=$NAME
|
||||
Exec=$BIN_PATH/winapps $1 %F
|
||||
Terminal=false
|
||||
Type=Application
|
||||
Icon=$ICON
|
||||
StartupWMClass=${FULL_NAME}
|
||||
Comment=${FULL_NAME}
|
||||
Categories=${CATEGORIES}
|
||||
MimeType=${MIME_TYPES}
|
||||
" | ${SUDO} tee "${APP_PATH}/${1}.desktop" >/dev/null
|
||||
${SUDO} rm -f "${BIN_PATH}/${1}"
|
||||
echo "#!/usr/bin/env bash
|
||||
${BIN_PATH}/winapps ${1} $@
|
||||
" | ${SUDO} tee "${BIN_PATH}/${1}" >/dev/null
|
||||
${SUDO} chmod a+x "${BIN_PATH}/${1}"
|
||||
fi
|
||||
echo " Finished."
|
||||
StartupWMClass=$FULL_NAME
|
||||
Comment=$FULL_NAME
|
||||
Categories=$CATEGORIES
|
||||
MimeType=$MIME_TYPES
|
||||
" | $SUDO tee "$APP_PATH/$1.desktop" >/dev/null
|
||||
$SUDO rm -f "$BIN_PATH/$1"
|
||||
echo "#!/usr/bin/env bash $BIN_PATH/winapps $1 $*
|
||||
" | $SUDO tee "$BIN_PATH/$1" >/dev/null
|
||||
$SUDO chmod a+x "$BIN_PATH/$1"
|
||||
fi
|
||||
echo " Finished."
|
||||
|
||||
ICON=""
|
||||
ICON=""
|
||||
}
|
||||
|
||||
function waConfigureApps() {
|
||||
APPS=()
|
||||
for F in $(cat "${HOME}/.local/share/winapps/installed" | sed 's/\r/\n/g'); do
|
||||
. "${DIR}/apps/${F}/info"
|
||||
APPS+=("${FULL_NAME} (${F})")
|
||||
INSTALLED_EXES+=("$(echo "${WIN_EXECUTABLE##*\\}" | tr '[:upper:]' '[:lower:]')")
|
||||
done
|
||||
IFS=$'\n' APPS=($(sort <<<"${APPS[*]}"))
|
||||
unset IFS
|
||||
OPTIONS=("Set up all detected pre-configured applications" "Select which pre-configured applications to set up" "Do not set up any pre-configured applications")
|
||||
|
||||
if [ "${INSTALL_TYPE}" != 'User' ]; then
|
||||
menuFromArr APP_INSTALL "How would you like to handle WinApps pre-configured applications?" "${OPTIONS[@]}"
|
||||
else "grep -l -d skip"
|
||||
menuFromArr APP_INSTALL "How would you like to handle WinApps pre-configured applications? If any web browser is set-up, may be configured as default browser." "${OPTIONS[@]}"
|
||||
fi
|
||||
if [ "${APP_INSTALL}" = "Select which pre-configured applications to set up" ]; then
|
||||
checkbox_input "Which pre-configured apps would you like to set up?" APPS SELECTED_APPS
|
||||
echo "" >"${HOME}/.local/share/winapps/installed"
|
||||
for F in "${SELECTED_APPS[@]}"; do
|
||||
APP="${F##*(}"
|
||||
APP="${APP%%)}"
|
||||
echo "${APP}" >>"${HOME}/.local/share/winapps/installed"
|
||||
done
|
||||
fi
|
||||
${SUDO} cp "${DIR}/bin/winapps" "${BIN_PATH}/winapps"
|
||||
COUNT=0
|
||||
if [ "${APP_INSTALL}" != "Do not set up any pre-configured applications" ]; then
|
||||
for F in $(cat "${HOME}/.local/share/winapps/installed" | sed 's/\r/\n/g'); do
|
||||
COUNT=$((COUNT + 1))
|
||||
${SUDO} cp -r "apps/${F}" "${SYS_PATH}/apps"
|
||||
waConfigureApp "${F}" svg
|
||||
done
|
||||
fi
|
||||
rm -f "${HOME}/.local/share/winapps/installed"
|
||||
rm -f "${HOME}/.local/share/winapps/installed.bat"
|
||||
if (($COUNT == 0)); then
|
||||
echo " No configured applications."
|
||||
fi
|
||||
APPS=()
|
||||
while IFS= read -r F; do
|
||||
# shellcheck disable=SC1090
|
||||
. "$DIR/apps/$F/info"
|
||||
APPS+=("$FULL_NAME ($F)")
|
||||
INSTALLED_EXES+=("$(echo "${WIN_EXECUTABLE##*\\}" | tr '[:upper:]' '[:lower:]')")
|
||||
done < <(sed 's/\r/\n/g' < "$HOME/.local/share/winapps/installed")
|
||||
# FIXME
|
||||
# shellcheck disable=SC2207,SC2031
|
||||
IFS=$'\n' APPS=($(sort <<<"${APPS[*]}"))
|
||||
unset IFS
|
||||
OPTIONS=("Set up all detected pre-configured applications" "Select which pre-configured applications to set up" "Do not set up any pre-configured applications")
|
||||
|
||||
if [ "$INSTALL_TYPE" != 'User' ]; then
|
||||
menuFromArr APP_INSTALL "How would you like to handle WinApps pre-configured applications?" "${OPTIONS[@]}"
|
||||
else "grep -l -d skip"
|
||||
menuFromArr APP_INSTALL "How would you like to handle WinApps pre-configured applications? If any web browser is set-up, may be configured as default browser." "${OPTIONS[@]}"
|
||||
fi
|
||||
if [ "$APP_INSTALL" = "Select which pre-configured applications to set up" ]; then
|
||||
checkbox_input "Which pre-configured apps would you like to set up?" APPS SELECTED_APPS
|
||||
echo "" >"$HOME/.local/share/winapps/installed"
|
||||
for F in "${SELECTED_APPS[@]}"; do
|
||||
APP="${F##*(}"
|
||||
APP="${APP%%)}"
|
||||
echo "${APP}" >>"$HOME/.local/share/winapps/installed"
|
||||
done
|
||||
fi
|
||||
$SUDO cp "$DIR/bin/winapps" "$BIN_PATH/winapps"
|
||||
COUNT=0
|
||||
if [ "$APP_INSTALL" != "Do not set up any pre-configured applications" ]; then
|
||||
while IFS= read -r F; do
|
||||
COUNT=$((COUNT + 1))
|
||||
$SUDO cp -r "apps/$F" "$SYS_PATH/apps"
|
||||
waConfigureApp "$F" svg
|
||||
done < <(sed 's/\r/\n/g' < "$HOME/.local/share/winapps/installed")
|
||||
fi
|
||||
rm -f "$HOME/.local/share/winapps/installed"
|
||||
rm -f "$HOME/.local/share/winapps/installed.bat"
|
||||
if ((COUNT == 0)); then
|
||||
echo " No configured applications."
|
||||
fi
|
||||
}
|
||||
|
||||
function waConfigureAppsAllOfficiallySupported(){
|
||||
${SUDO} cp "${DIR}/bin/winapps" "${BIN_PATH}/winapps"
|
||||
COUNT=0
|
||||
for F in $(cat "${HOME}/.local/share/winapps/installed" | sed 's/\r/\n/g'); do
|
||||
COUNT=$((COUNT + 1))
|
||||
${SUDO} cp -r "apps/${F}" "${SYS_PATH}/apps"
|
||||
waConfigureApp "${F}" svg
|
||||
done
|
||||
rm -f "${HOME}/.local/share/winapps/installed"
|
||||
rm -f "${HOME}/.local/share/winapps/installed.bat"
|
||||
if (($COUNT == 0)); then
|
||||
echo " No configured applications."
|
||||
fi
|
||||
$SUDO cp "$DIR/bin/winapps" "$BIN_PATH/winapps"
|
||||
COUNT=0
|
||||
while IFS= read -r F; do
|
||||
COUNT=$((COUNT + 1))
|
||||
$SUDO cp -r "apps/$F" "$SYS_PATH/apps"
|
||||
waConfigureApp "$F" svg
|
||||
done < <(sed 's/\r/\n/g' < "$HOME/.local/share/winapps/installed")
|
||||
rm -f "$HOME/.local/share/winapps/installed"
|
||||
rm -f "$HOME/.local/share/winapps/installed.bat"
|
||||
if ((COUNT == 0)); then
|
||||
echo " No configured applications."
|
||||
fi
|
||||
}
|
||||
|
||||
function waConfigureDetectedApps() {
|
||||
if [ -f "${HOME}/.local/share/winapps/detected" ]; then
|
||||
sed -i 's/\r//g' "${HOME}/.local/share/winapps/detected"
|
||||
. "${HOME}/.local/share/winapps/detected"
|
||||
APPS=()
|
||||
for I in "${!NAMES[@]}"; do
|
||||
EXE=${EXES[$I]##*\\}
|
||||
EXE_LOWER=$(echo "${EXE}" | tr '[:upper:]' '[:lower:]')
|
||||
if (
|
||||
dlm=$'\x1F'
|
||||
IFS="$dlm"
|
||||
[[ "$dlm${INSTALLED_EXES[*]}$dlm" != *"$dlm${EXE_LOWER}$dlm"* ]]
|
||||
); then
|
||||
APPS+=("${NAMES[$I]} (${EXE})")
|
||||
fi
|
||||
done
|
||||
IFS=$'\n' APPS=($(sort <<<"${APPS[*]}"))
|
||||
unset IFS
|
||||
OPTIONS=("Set up all detected applications" "Select which applications to set up" "Do not set up any applications")
|
||||
menuFromArr APP_INSTALL "How would you like to handle other detected applications?" "${OPTIONS[@]}"
|
||||
if [ "${APP_INSTALL}" = "Select which applications to set up" ]; then
|
||||
checkbox_input "Which other apps would you like to set up?" APPS SELECTED_APPS
|
||||
echo "" >"${HOME}/.local/share/winapps/installed"
|
||||
for F in "${SELECTED_APPS[@]}"; do
|
||||
EXE="${F##*(}"
|
||||
EXE="${EXE%%)}"
|
||||
APP="${F% (*}"
|
||||
echo "${EXE}|${APP}" >>"${HOME}/.local/share/winapps/installed"
|
||||
done
|
||||
elif [ "${APP_INSTALL}" = "Set up all detected applications" ]; then
|
||||
for I in "${!EXES[@]}"; do
|
||||
EXE=${EXES[$I]##*\\}
|
||||
echo "${EXE}|${NAMES[$I]}" >>"${HOME}/.local/share/winapps/installed"
|
||||
done
|
||||
fi
|
||||
COUNT=0
|
||||
if [ -f "${HOME}/.local/share/winapps/installed" ]; then
|
||||
while read LINE; do
|
||||
EXE="${LINE%|*}"
|
||||
NAME="${LINE#*|}"
|
||||
for I in "${!NAMES[@]}"; do
|
||||
if [ "${NAME}" = "${NAMES[$I]}" ] && [[ "${EXES[$I]}" == *"\\${EXE}" ]]; then
|
||||
EXE=$(echo "${EXE}" | tr '[:upper:]' '[:lower:]')
|
||||
${SUDO} mkdir -p "${SYS_PATH}/apps/${EXE}"
|
||||
echo "# GNOME shortcut name
|
||||
NAME=\"${NAME}\"
|
||||
if [ -f "$HOME/.local/share/winapps/detected" ]; then
|
||||
sed -i 's/\r//g' "$HOME/.local/share/winapps/detected"
|
||||
# shellcheck disable=SC1091
|
||||
. "$HOME/.local/share/winapps/detected"
|
||||
APPS=()
|
||||
# shellcheck disable=SC2153
|
||||
for I in "${!NAMES[@]}"; do
|
||||
EXE=${EXES[$I]##*\\}
|
||||
EXE_LOWER=$(echo "$EXE" | tr '[:upper:]' '[:lower:]')
|
||||
if (
|
||||
dlm=$'\x1F'
|
||||
IFS="$dlm"
|
||||
[[ "$dlm${INSTALLED_EXES[*]}$dlm" != *"$dlm$EXE_LOWER$dlm"* ]]
|
||||
); then
|
||||
APPS+=("${NAMES[$I]} ($EXE)")
|
||||
fi
|
||||
done
|
||||
IFS=$'\n' APPS=("$(sort <<<"${APPS[*]}")")
|
||||
unset IFS
|
||||
OPTIONS=("Set up all detected applications" "Select which applications to set up" "Do not set up any applications")
|
||||
menuFromArr APP_INSTALL "How would you like to handle other detected applications?" "${OPTIONS[@]}"
|
||||
if [ "$APP_INSTALL" = "Select which applications to set up" ]; then
|
||||
checkbox_input "Which other apps would you like to set up?" APPS SELECTED_APPS
|
||||
echo "" >"$HOME/.local/share/winapps/installed"
|
||||
for F in "${SELECTED_APPS[@]}"; do
|
||||
EXE="${F##*(}"
|
||||
EXE="${EXE%%)}"
|
||||
APP="${F% (*}"
|
||||
echo "$EXE|${APP}" >>"$HOME/.local/share/winapps/installed"
|
||||
done
|
||||
elif [ "$APP_INSTALL" = "Set up all detected applications" ]; then
|
||||
for I in "${!EXES[@]}"; do
|
||||
EXE=${EXES[$I]##*\\}
|
||||
echo "$EXE|${NAMES[$I]}" >>"$HOME/.local/share/winapps/installed"
|
||||
done
|
||||
fi
|
||||
COUNT=0
|
||||
if [ -f "$HOME/.local/share/winapps/installed" ]; then
|
||||
while read -r LINE; do
|
||||
EXE="${LINE%|*}"
|
||||
NAME="${LINE#*|}"
|
||||
for I in "${!NAMES[@]}"; do
|
||||
if [ "$NAME" = "${NAMES[$I]}" ] && [[ "${EXES[$I]}" == *"\\$EXE" ]]; then
|
||||
EXE=$(echo "$EXE" | tr '[:upper:]' '[:lower:]')
|
||||
$SUDO mkdir -p "$SYS_PATH/apps/$EXE"
|
||||
echo "# GNOME shortcut name
|
||||
NAME=\"$NAME\"
|
||||
|
||||
# Used for descriptions and window class
|
||||
FULL_NAME=\"${NAME}\"
|
||||
FULL_NAME=\"$NAME\"
|
||||
|
||||
# The executable inside windows
|
||||
WIN_EXECUTABLE=\"${EXES[$I]}\"
|
||||
@ -225,149 +235,154 @@ CATEGORIES=\"WinApps\"
|
||||
|
||||
# GNOME mimetypes
|
||||
MIME_TYPES=\"\"
|
||||
" | sudo tee "${SYS_PATH}/apps/${EXE}/info" >/dev/null
|
||||
echo "${ICONS[$I]}" | base64 -d | sudo tee "${SYS_PATH}/apps/${EXE}/icon.ico" >/dev/null
|
||||
waConfigureApp "${EXE}" ico
|
||||
COUNT=$((COUNT + 1))
|
||||
fi
|
||||
done
|
||||
done <"${HOME}/.local/share/winapps/installed"
|
||||
rm -f "${HOME}/.local/share/winapps/installed"
|
||||
fi
|
||||
rm -f "${HOME}/.local/share/winapps/installed.bat"
|
||||
if (($COUNT == 0)); then
|
||||
echo " No configured applications."
|
||||
fi
|
||||
fi
|
||||
" | sudo tee "$SYS_PATH/apps/$EXE/info" >/dev/null
|
||||
# shellcheck disable=SC2153
|
||||
echo "${ICONS[$I]}" | base64 -d | sudo tee "$SYS_PATH/apps/$EXE/icon.ico" >/dev/null
|
||||
waConfigureApp "$EXE" ico
|
||||
COUNT=$((COUNT + 1))
|
||||
fi
|
||||
done
|
||||
done <"$HOME/.local/share/winapps/installed"
|
||||
rm -f "$HOME/.local/share/winapps/installed"
|
||||
fi
|
||||
rm -f "$HOME/.local/share/winapps/installed.bat"
|
||||
if ((COUNT == 0)); then
|
||||
echo " No configured applications."
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
function waConfigureWindows() {
|
||||
echo -n " Configuring Windows..."
|
||||
if [ ${USEDEMO} != 1 ]; then
|
||||
${SUDO} rm -f "${APP_PATH}/windows.desktop"
|
||||
${SUDO} mkdir -p "${SYS_PATH}/icons"
|
||||
${SUDO} cp "${DIR}/icons/windows.svg" "${SYS_PATH}/icons/windows.svg"
|
||||
echo "[Desktop Entry]
|
||||
echo -n " Configuring Windows..."
|
||||
if [ $USEDEMO != 1 ]; then
|
||||
$SUDO rm -f "$APP_PATH/windows.desktop"
|
||||
$SUDO mkdir -p "$SYS_PATH/icons"
|
||||
$SUDO cp "$DIR/icons/windows.svg" "$SYS_PATH/icons/windows.svg"
|
||||
echo "[Desktop Entry]
|
||||
Name=Windows
|
||||
Exec=${BIN_PATH}/winapps windows %F
|
||||
Exec=$BIN_PATH/winapps windows %F
|
||||
Terminal=false
|
||||
Type=Application
|
||||
Icon=${SYS_PATH}/icons/windows.svg
|
||||
Icon=$SYS_PATH/icons/windows.svg
|
||||
StartupWMClass=Microsoft Windows
|
||||
Comment=Microsoft Windows
|
||||
" | ${SUDO} tee "${APP_PATH}/windows.desktop" >/dev/null
|
||||
${SUDO} rm -f "${BIN_PATH}/windows"
|
||||
echo "#!/usr/bin/env bash
|
||||
${BIN_PATH}/winapps windows
|
||||
" | ${SUDO} tee "/${BIN_PATH}/windows" >/dev/null
|
||||
${SUDO} chmod a+x "${BIN_PATH}/windows"
|
||||
fi
|
||||
echo " Finished."
|
||||
" | $SUDO tee "$APP_PATH/windows.desktop" >/dev/null
|
||||
$SUDO rm -f "$BIN_PATH/windows"
|
||||
echo "#!/usr/bin/env bash
|
||||
$BIN_PATH/winapps windows
|
||||
" | $SUDO tee "/$BIN_PATH/windows" >/dev/null
|
||||
$SUDO chmod a+x "$BIN_PATH/windows"
|
||||
fi
|
||||
echo " Finished."
|
||||
}
|
||||
|
||||
function waUninstallUser() {
|
||||
rm -f "${HOME}/.local/bin/winapps"
|
||||
rm -rf "${HOME}/.local/share/winapps"
|
||||
for F in $(grep -l -d skip "bin/winapps" "${HOME}/.local/share/applications/"* -s); do
|
||||
echo -n " Removing ${F}..."
|
||||
${SUDO} rm ${F}
|
||||
echo " Finished."
|
||||
done
|
||||
for F in $(grep -l -d skip "bin/winapps" "${HOME}/.local/bin/"* -s); do
|
||||
echo -n " Removing ${F}..."
|
||||
${SUDO} rm ${F}
|
||||
echo " Finished."
|
||||
done
|
||||
rm -f "$HOME/.local/bin/winapps"
|
||||
rm -rf "$HOME/.local/share/winapps"
|
||||
grep -l -d skip "bin/winapps" "$HOME/.local/share/applications/"* -s | while IFS= read -r F
|
||||
do
|
||||
echo -n " Removing $F..."
|
||||
"$SUDO" rm "$F"
|
||||
echo " Finished."
|
||||
done
|
||||
grep -l -d skip "bin/winapps" "$HOME/.local/bin/"* -s | while IFS= read -r F
|
||||
do
|
||||
echo -n " Removing $F..."
|
||||
"$SUDO" rm "$F"
|
||||
echo " Finished."
|
||||
done
|
||||
}
|
||||
|
||||
function waUninstallSystem() {
|
||||
${SUDO} rm -f "/usr/local/bin/winapps"
|
||||
${SUDO} rm -rf "/usr/local/share/winapps"
|
||||
for F in $(grep -l -d skip "bin/winapps" "/usr/share/applications/"* -s); do
|
||||
if [ -z "${SUDO}" ]; then
|
||||
waNoSudo
|
||||
fi
|
||||
echo -n " Removing ${F}..."
|
||||
${SUDO} rm ${F}
|
||||
echo " Finished."
|
||||
done
|
||||
for F in $(grep -l -d skip "bin/winapps" "/usr/local/bin/"* -s); do
|
||||
if [ -z "${SUDO}" ]; then
|
||||
waNoSudo
|
||||
fi
|
||||
echo -n " Removing ${F}..."
|
||||
${SUDO} rm ${F}
|
||||
echo " Finished."
|
||||
done
|
||||
"$SUDO" rm -f "/usr/local/bin/winapps"
|
||||
"$SUDO" rm -rf "/usr/local/share/winapps"
|
||||
grep -l -d skip "bin/winapps" "/usr/share/applications/"* -s | while IFS= read -r F
|
||||
do
|
||||
if [ -z "$SUDO" ]; then
|
||||
waNoSudo
|
||||
fi
|
||||
echo -n " Removing $F..."
|
||||
"$SUDO" rm "$F"
|
||||
echo " Finished."
|
||||
done
|
||||
grep -l -d skip "bin/winapps" "/usr/local/bin/"* -s | while IFS= read -r F
|
||||
do
|
||||
if [ -z "$SUDO" ]; then
|
||||
waNoSudo
|
||||
fi
|
||||
echo -n " Removing $F..."
|
||||
"$SUDO" rm "$F"
|
||||
echo " Finished."
|
||||
done
|
||||
}
|
||||
|
||||
if [ -z "${1}" ]; then
|
||||
OPTIONS=(User System)
|
||||
menuFromArr INSTALL_TYPE "Would you like to install for the current user or the whole system?" "${OPTIONS[@]}"
|
||||
elif [ "${1}" = '--user' ]; then
|
||||
INSTALL_TYPE='User'
|
||||
elif [ "${1}" = '--system' ]; then
|
||||
INSTALL_TYPE='System'
|
||||
if [ -z "$1" ]; then
|
||||
OPTIONS=(User System)
|
||||
menuFromArr INSTALL_TYPE "Would you like to install for the current user or the whole system?" "${OPTIONS[@]}"
|
||||
elif [ "$1" = '--user' ]; then
|
||||
INSTALL_TYPE='User'
|
||||
elif [ "$1" = '--system' ]; then
|
||||
INSTALL_TYPE='System'
|
||||
else
|
||||
waUsage
|
||||
waUsage
|
||||
fi
|
||||
|
||||
if [ "${INSTALL_TYPE}" = 'User' ]; then
|
||||
SUDO=""
|
||||
BIN_PATH="${HOME}/.local/bin"
|
||||
APP_PATH="${HOME}/.local/share/applications"
|
||||
SYS_PATH="${HOME}/.local/share/winapps"
|
||||
mkdir -p $BIN_PATH
|
||||
mkdir -p $APP_PATH
|
||||
mkdir -p $SYS_PATH
|
||||
if [ -n "${2}" ]; then
|
||||
if [ "${2}" = '--uninstall' ]; then
|
||||
# Uninstall
|
||||
echo "Uninstalling..."
|
||||
waUninstallUser
|
||||
exit
|
||||
elif [ "${2}" = '--setupAllOfficiallySupportedApps' ]; then
|
||||
echo "Setting up All Officially Supported Apps "
|
||||
echo "Removing any old configurations..."
|
||||
waUninstallUser
|
||||
waUninstallSystem
|
||||
waInstall
|
||||
waFindInstalled
|
||||
waConfigureWindows
|
||||
waConfigureAppsAllOfficiallySupported
|
||||
exit
|
||||
else
|
||||
usage
|
||||
fi
|
||||
fi
|
||||
elif [ "${INSTALL_TYPE}" = 'System' ]; then
|
||||
SUDO="sudo"
|
||||
sudo ls >/dev/null
|
||||
BIN_PATH="/usr/local/bin"
|
||||
APP_PATH="/usr/share/applications"
|
||||
SYS_PATH="/usr/local/share/winapps"
|
||||
if [ -n "${2}" ]; then
|
||||
if [ "${2}" = '--uninstall' ]; then
|
||||
# Uninstall
|
||||
echo "Uninstalling..."
|
||||
waUninstallSystem
|
||||
exit
|
||||
elif [ "${2}" = '--setupAllOfficiallySupportedApps' ]; then
|
||||
echo "Setting up All Officially Supported Apps "
|
||||
echo "Removing any old configurations..."
|
||||
waUninstallUser
|
||||
waUninstallSystem
|
||||
if [ "$INSTALL_TYPE" = 'User' ]; then
|
||||
SUDO=""
|
||||
BIN_PATH="$HOME/.local/bin"
|
||||
APP_PATH="$HOME/.local/share/applications"
|
||||
SYS_PATH="$HOME/.local/share/winapps"
|
||||
mkdir -p "$BIN_PATH"
|
||||
mkdir -p "$APP_PATH"
|
||||
mkdir -p "$SYS_PATH"
|
||||
if [ -n "$2" ]; then
|
||||
if [ "$2" = '--uninstall' ]; then
|
||||
# Uninstall
|
||||
echo "Uninstalling..."
|
||||
waUninstallUser
|
||||
exit
|
||||
elif [ "$2" = '--setupAllOfficiallySupportedApps' ]; then
|
||||
echo "Setting up All Officially Supported Apps "
|
||||
echo "Removing any old configurations..."
|
||||
waUninstallUser
|
||||
waUninstallSystem
|
||||
waInstall
|
||||
waFindInstalled
|
||||
waConfigureWindows
|
||||
waConfigureAppsAllOfficiallySupported
|
||||
exit
|
||||
else
|
||||
usage
|
||||
fi
|
||||
fi
|
||||
elif [ "$INSTALL_TYPE" = 'System' ]; then
|
||||
SUDO="sudo"
|
||||
sudo ls >/dev/null
|
||||
BIN_PATH="/usr/local/bin"
|
||||
APP_PATH="/usr/share/applications"
|
||||
SYS_PATH="/usr/local/share/winapps"
|
||||
if [ -n "$2" ]; then
|
||||
if [ "$2" = '--uninstall' ]; then
|
||||
# Uninstall
|
||||
echo "Uninstalling..."
|
||||
waUninstallSystem
|
||||
exit
|
||||
elif [ "$2" = '--setupAllOfficiallySupportedApps' ]; then
|
||||
echo "Setting up All Officially Supported Apps "
|
||||
echo "Removing any old configurations..."
|
||||
waUninstallUser
|
||||
waUninstallSystem
|
||||
|
||||
echo "Installing..."
|
||||
waInstall
|
||||
waFindInstalled
|
||||
waConfigureWindows
|
||||
waConfigureAppsAllOfficiallySupported
|
||||
exit
|
||||
else
|
||||
usage
|
||||
fi
|
||||
fi
|
||||
echo "Installing..."
|
||||
waInstall
|
||||
waFindInstalled
|
||||
waConfigureWindows
|
||||
waConfigureAppsAllOfficiallySupported
|
||||
exit
|
||||
else
|
||||
usage
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "Removing any old configurations..."
|
||||
|
@ -208,4 +208,3 @@
|
||||
<imagelabel>+385601105:+385600513</imagelabel>
|
||||
</seclabel>
|
||||
</domain>
|
||||
|
||||
|
3
oem/install.bat
Normal file
@ -0,0 +1,3 @@
|
||||
@echo off
|
||||
|
||||
REG IMPORT C:\OEM\RDPApps.reg
|