Merge pull request #11 from ful1e5/easy-install-patch

Easy install patch #10
This commit is contained in:
Kaiz 2020-08-10 12:07:55 +05:30 committed by GitHub
commit 97d02b3431
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 375 additions and 15 deletions

View file

@ -10,13 +10,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## Changed ## Changed
- `hand2` and `left_ptr` hotspots alignments fixed. - `hand2` and `left_ptr` hotspots alignments fixed.
- Ignored `docs` files (**.md ,LICENCE, **.bbcode) in `build` GitHub Actions. ([3a19013](https://github.com/ful1e5/apple_cursor/commit/0df635b1cdd18840606956f2188e735321f6f8b5)) - Ignored `docs` files (**.md ,LICENCE, **.bbcode) in `build` GitHub Actions. ([0df635b](https://github.com/ful1e5/apple_cursor/commit/0df635b1cdd18840606956f2188e735321f6f8b5))
- Windows Configs inside `config.py` ([e7d5092](https://github.com/ful1e5/apple_cursor/commit/e7d509295b69fbe43cdc3ea3000c493dcee47824))
- Redesign **Windows package** with `install.inf`. ([5f99e05](https://github.com/ful1e5/apple_cursor/commit/5f99e0565a5730165a498695bcbba4716108e82b))
- Remove **unnecessary** Windows Cursors. ([5f99e05](https://github.com/ful1e5/apple_cursor/commit/5f99e0565a5730165a498695bcbba4716108e82b))
## Added ## Added
- Cursors Preview, Build Dependencies, Runtime Dependencies and other Documents @ [README.md](https://github.com/ful1e5/apple_cursor/blob/master/README.md) - Cursors Preview, Build Dependencies, Runtime Dependencies and other Documents @ [README.md](https://github.com/ful1e5/apple_cursor/blob/master/README.md)
- CONTRIBUTING.md - CONTRIBUTING.md
- CODE_OF_CONDUCT.md - CODE_OF_CONDUCT.md
- Quick Install (Windows & Linux) Documents @ [README.md](https://github.com/ful1e5/apple_cursor/blob/master/README.md) ([686bde5](https://github.com/ful1e5/apple_cursor/commit/686bde5eda5c4d913dd8c9df49aa94c20d24d9bf))
- **install.sh** and **windows.inf**(automated installtion files) added in `scripts` directory.
## [1.0.1-beta] - 3 August 2020 ## [1.0.1-beta] - 3 August 2020
@ -24,7 +29,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- `hand1 hand2 move` cursors finger gap & border in center - `hand1 hand2 move` cursors finger gap & border in center
- Drop shadow & FPS(**62**) imporovments in `wait, left_ptr_watch` cursors. - Drop shadow & FPS(**62**) imporovments in `wait, left_ptr_watch` cursors.
- Build size fix **65x65** to **64x64**. ([b6a8529](https://github.com/ful1e5/apple_cursor/commit/1120d176636baff2aac1838ba316b4f420be7ca7)) - Build size fix **65x65** to **64x64**. ([1120d17](https://github.com/ful1e5/apple_cursor/commit/1120d176636baff2aac1838ba316b4f420be7ca7))
- [Pling](https://www.pling.com/p/1408466/) product page Docs at `PLING.bbcode`. - [Pling](https://www.pling.com/p/1408466/) product page Docs at `PLING.bbcode`.
## [1.0.0-alpha1] - 31 July 2020 ## [1.0.0-alpha1] - 31 July 2020

View file

@ -70,6 +70,28 @@
Enjoy upcoming **[macOS BigSur](https://www.apple.com/macos/big-sur-preview/)** Cursor Theme for `Windows` and `Linux` with _HiDPi Support_ 🎉. Enjoy upcoming **[macOS BigSur](https://www.apple.com/macos/big-sur-preview/)** Cursor Theme for `Windows` and `Linux` with _HiDPi Support_ 🎉.
#### Quick install
##### via curl
```bash
bash <(curl -s "https://raw.githubusercontent.com/ful1e5/apple_cursor/easy-install-patch/scripts/install.sh")
```
##### via wget
```bash
bash <(wget -qO- "https://raw.githubusercontent.com/ful1e5/apple_cursor/easy-install-patch/scripts/install.sh")
```
#### Windows
1. unzip `macOSBigSur_Windows.zip` file
2. Open `macOSBigSur_Windows/` in Explorer, and **right click** on `install.inf`.
3. Click 'Install' from the context menu, and authorise the modifications to your system.
4. Open _Control Panel > Personalisation and Appearance > Change mouse pointers_, and select **MacOSBigSur Cursors**.
5. Click '**Apply**'.
#### Cursor Sizes: 24, 28, 32, 40, 48, 56, 64, 72, 80, 88, 96 #### Cursor Sizes: 24, 28, 32, 40, 48, 56, 64, 72, 80, 88, 96
#### Colors: #### Colors:
@ -156,15 +178,6 @@ mv macOSBigSur ~/.icons/
sudo mv macOSBigSur /usr/share/icons/ sudo mv macOSBigSur /usr/share/icons/
``` ```
### Windows
1. Open the `settings` app.
2. **Goto** `Devices` -> `Mouse` -> `Additional Mouse Options`.
3. **Goto** the `pointers` tab.
4. Replace each cursor in the currently applied cursor set with the corresponding cursor in the `mac OsBigSur Windows Theme` folder.
5. Click "**save as**" and type in the desired name.
6. Click "**apply**" and "**ok**".
## Manual Install ## Manual Install
> Make sure you have installed all [Build dependencies](#build-dependencies). > Make sure you have installed all [Build dependencies](#build-dependencies).
@ -186,6 +199,8 @@ After build `bitmaps` and `packages` are generated at project root directory.
### Install Build Cursor ### Install Build Cursor
#### Linux
All builded cursor packages are available inside `packages` directory. All builded cursor packages are available inside `packages` directory.
```bash ```bash
@ -196,6 +211,16 @@ mkdir macOSBigSur && tar -xvf macOSBigSur.tar -C macOSBigSur
rm -rf ~/.icons/macOSBigSur && cp macOSBigSur ~/.icons/ rm -rf ~/.icons/macOSBigSur && cp macOSBigSur ~/.icons/
``` ```
#### Windows
1. unzip `macOSBigSur_Windows.zip` file
2. Open the `settings` app.
3. **Goto** `Devices` -> `Mouse` -> `Additional Mouse Options`.
4. **Goto** the `pointers` tab.
5. Replace each cursor in the currently applied cursor set with the corresponding cursor in the `macOSBigSur Windows Theme` folder.
6. Click "**save as**" and type in the desired name.
7. Click "**apply**" and "**ok**".
<!-- Bug Report --> <!-- Bug Report -->
# Bugs # Bugs

View file

@ -1,4 +1,5 @@
import tempfile import tempfile
import json
# Build Config # Build Config
delay = 50 delay = 50
@ -9,5 +10,36 @@ bitmaps_dir = "./bitmaps"
temp_folder = tempfile.mkdtemp() temp_folder = tempfile.mkdtemp()
# Cleanup Configs # Cleanup Configs
x11_out = "macOSBigSur" x11_out = name
win_out = "macOSBigSur_Windows" win_out = name + "_Windows"
# getting author name
with open("./package.json") as f:
data = json.loads(f.read())
author = data["author"]
# Windows Cursors Config
windows_cursors = {
"sb_up_arrow.cur": "alt-select.cur",
"bd_double_arrow.cur": "diagonal-resize-1.cur",
"bottom_left_corner.cur": "diagonal-resize-2.cur",
"pencil.cur": "handwriting.cur",
"dnd-ask.cur": "help-select.cur",
"right_side.cur": "horizontal-resize.cur",
"hand2.cur": "link-select.cur",
"all-scroll.cur": "move.cur",
"left_ptr.cur": "normal-select.cur",
"X_cursor.cur": "pirate.cur",
"crosshair.cur": "precision-select.cur",
"xterm.cur": "text-select.cur",
"circle.cur": "unavailable.cur",
"bottom_side.cur": "vertical-resize.cur",
"wait.ani": "busy.ani",
"left_ptr_watch.ani": "working-in-background.ani"
}
# Windows install.inf file content
with open("./scripts/windows.inf") as f:
data = f.read()
window_install_inf = data.replace(
"<inject_theme_name>", name+" Cursors").replace("<inject_author_name>", author)

View file

@ -2,8 +2,8 @@ import shutil
import json import json
import sys import sys
from config import name, temp_folder, bitmaps_dir, win_out, x11_out from config import name, temp_folder, bitmaps_dir, win_out, x11_out, window_install_inf, windows_cursors
from os import path, listdir from os import path, listdir, rename, remove
package_dir = "./packages" package_dir = "./packages"
@ -11,6 +11,24 @@ x11_out_dir = path.join(package_dir, x11_out)
win_out_dir = path.join(package_dir, win_out) win_out_dir = path.join(package_dir, win_out)
def window_bundle() -> None:
# Remove & Rename cursors
# If Key found => Rename else Remove
for cursor in listdir(win_out_dir):
old_path = path.join(win_out_dir, cursor)
try:
new_path = path.join(win_out_dir, windows_cursors[cursor])
rename(old_path, new_path)
except KeyError:
remove(old_path)
# creating install.inf file
install_inf_path = path.join(win_out_dir, "install.inf")
with open(install_inf_path, "w") as file:
file.write(install_inf_path)
def init_build() -> None: def init_build() -> None:
""" """
Print build version. Print build version.
@ -40,6 +58,9 @@ def pack_it() -> None:
shutil.move(path.join(temp_folder, name, "x11"), x11_out_dir) shutil.move(path.join(temp_folder, name, "x11"), x11_out_dir)
shutil.move(path.join(temp_folder, name, "win"), win_out_dir) shutil.move(path.join(temp_folder, name, "win"), win_out_dir)
# create install.inf file in Windows Theme
window_bundle()
# Packaging # Packaging
# - .tar archive for X11 # - .tar archive for X11
# - .zip archive for Windows # - .zip archive for Windows

222
scripts/install.sh Executable file
View file

@ -0,0 +1,222 @@
#! /bin/bash
# auto-install patch by @luizoti on Bibata Cursror => https://github.com/ful1e5/Bibata_Cursor/commit/eb84f27919e433f9b72e7ef9f6444d4a7d276ba9
INPUT=$1
ROOT_UID=0
DEST_DIR=
URL="https://github.com/ful1e5/apple_cursor/releases/download/1.0.1-beta/macOSBigSur.tar"
macOSBigSur="./macOSBigSur"
DOWNLOAD_FILE_NAME="$macOSBigSur.tar"
cd "$( dirname "${BASH_SOURCE[0]}" )" || exitt
# Destination directory
if [ "$UID" -eq "$ROOT_UID" ]; then
DEST_DIR="/usr/share/icons"
else
DEST_DIR="$HOME/.icons"
fi
echo -e "\e[1m\n+---------------------------------------------+"
echo -e "| macOSBigSur Cursor Installer Script |"
echo -e "+---------------------------------------------+\n\e[0m"
# -------------------- Color print Functions --------------------
show_question() {
echo -e "\033[1;34m$@\033[0m"
}
show_dir() {
echo -e "\033[1;32m$@\033[0m"
}
show_error() {
echo -e "\033[1;31m$@\033[0m"
}
end() {
echo -e "\nExiting...\n"
exit 0
}
# -------------------- Helpers --------------------
continue() {
case ${INPUT} in
'-a' )
:
;;
'-h' )
echo " -a - Auto-install for all users!"
;;
* )
show_question "\nDo you want to continue? (Y)es, (N)o : \n"
read INPUT
case $INPUT in
( [Yy]* ) ;;
( [Nn]* ) end;;
( * ) show_error "\nSorry, try again."; continue;;
esac
;;
esac
}
replace() {
show_question "\nFound an existing installation. Replace it? (Y)es, (N)o :\n"
read INPUT
case $INPUT in
( [Yy]* ) rm -rf "$@/macOSBigSur*" 2>/dev/null;;
( [Nn]* ) ;;
( * ) show_error "\tSorry, try again."; replace $@;;
esac
}
# For download the package
function download {
echo -e "\nDownloading macOSBigSur Theme..."
url=$1
filename=$2
if [ -x "$(which wget)" ] ; then
curl -o $2 -fL $url
elif [ -x "$(which curl)" ]; then
wget -q $url -O $2 --show-progress
else
show_error "Could not find curl or wget, please install one." >&2
fi
if [ $? -eq 0 ]; then
echo "Downloading Complete"
else
show_error "Downloading... FAIL"
fi
}
# unpack
function unpack {
echo -e "\nUnpacking Theme..."
file=$1
dir=${file%.*}
echo "$dir"
# creating dir and extract .tar file content to it
mkdir "$dir" && tar -xvf "$file" -C "$dir"
# remove .tar file
rm -rf $file
if [ $? -eq 0 ]; then
echo "Unpacking Complete"
else
show_error "Unpacking Theme... FAIL"
fi
}
install() {
# Cecking old version exits or not
if [ -f "$DOWNLOAD_FILE_NAME" ] || [ -f "$macOSBigSur" ]; then
echo -e "\nmacOSBigSur.tar file already exists"
show_question "\nDownload Fresh Theme OR Continue with existing file? (D)ownload File (recommended), (E)xisting File : \n "
read INPUT
case $INPUT in
( [Dd]* ) download $URL $DOWNLOAD_FILE_NAME;;
( [Ee]* ) ;;
( * ) show_error "\nSorry, try again."; continue;;
esac
else
download $URL $DOWNLOAD_FILE_NAME
fi
# unpack file
unpack $DOWNLOAD_FILE_NAME
# Show destination directory
echo -e "\nmacOSBigSur Cursor Theme will be installed in:\n"
show_dir "\t$DEST_DIR"
if [ "$UID" -eq "$ROOT_UID" ]; then
echo -e "\nIt will be available to all users."
else
echo -e "\nTo make them available to all users, run this script as root."
fi
continue
# Check destination directory
if [ ! -d $DEST_DIR ]; then
mkdir -p $DEST_DIR
elif [[ -d $DEST_DIR/macOSBigSur ]]; then
replace $DEST_DIR
fi
echo -e "\nInstalling macOSBigSur..."
# Copying files
cp -rf $macOSBigSur $DEST_DIR
chmod -R 755 $DEST_DIR/macOSBigSur
echo "Installation complete!"
echo "Do not forget you have to set macOSBigSur Cursor"
}
remove() {
# PREVIEW
# Show installation directory
if [[ -d $DEST_DIR/macOSBigSur ]]; then
echo -e "\nmacOSBigSur Theme installed in:\n"
show_dir "\t$DEST_DIR"
if [ "$UID" -eq "$ROOT_UID" ]; then
echo -e "\nIt will remove for all users."
else
echo -e "\nIt will remove only for current user."
fi
continue
else
show_error "\nmacOSBigSur Cursor is not installed in:\n"
show_dir "\t$DEST_DIR\n"
end
fi
echo -e "\nRemoving macOSBigSur..."
rm -rf $DEST_DIR/macOSBigSur
echo "Removing complete"
echo "I hope to see you soon."
}
main() {
# Cases
case ${INPUT} in
'-a' )
install
;;
'-h' )
echo " -a - Auto-install for all users!"
;;
* )
show_question "What you want to do: (I)nstall, (R)emove : \n"
read INPUT
case $INPUT in
( [Ii]* ) install;;
( [Rr]* ) remove;;
( * ) show_error "\nSorry, try again."; main;;
esac
;;
esac
# Remove directory
rm -rf macOSBigSur
}
( cd /tmp/ && main )

55
scripts/windows.inf Normal file
View file

@ -0,0 +1,55 @@
; <inject_theme_name> By <inject_author_name>
; Right click on the file "install.inf" and select "Install". Then apply <inject_theme_name> in Control Panel > Appearance and Personalization > Personalization > Change mouse pointers.
[Version]
signature="$CHICAGO$"
[DefaultInstall]
CopyFiles = Scheme.Cur, Scheme.Txt
AddReg = Scheme.Reg
[DestinationDirs]
Scheme.Cur = 10,"%CUR_DIR%"
Scheme.Txt = 10,"%CUR_DIR%"
[Scheme.Reg]
HKCU,"Control Panel\Cursors\Schemes","%SCHEME_NAME%",,"%10%\%CUR_DIR%\%pointer%,%10%\%CUR_DIR%\%help%,%10%\%CUR_DIR%\%work%,%10%\%CUR_DIR%\%busy%,%10%\%CUR_DIR%\%cross%,%10%\%CUR_DIR%\%Text%,%10%\%CUR_DIR%\%Hand%,%10%\%CUR_DIR%\%unavailiable%,%10%\%CUR_DIR%\%Vert%,%10%\%CUR_DIR%\%Horz%,%10%\%CUR_DIR%\%Dgn1%,%10%\%CUR_DIR%\%Dgn2%,%10%\%CUR_DIR%\%move%,%10%\%CUR_DIR%\%alternate%,%10%\%CUR_DIR%\%link%"
; -- Installed files
[Scheme.Cur]
busy.ani
working-in-background.ani
normal-select.cur
help-select.cur
link-select.cur
move.cur
diagonal-resize-2.cur
Install.inf
vertical-resize.cur
horizontal-resize.cur
diagonal-resize-1.cur
handwriting.cur
precision-select.cur
text-select.cur
unavailable.cur
alt-select.cur
[Strings]
CUR_DIR = "Cursors\<inject_theme_name>"
SCHEME_NAME = "<inject_theme_name>"
pointer = "normal-select.cur"
help = "help-select.cur"
work = "working-in-background.ani"
busy = "busy.ani"
text = "text-select.cur"
unavailiable = "unavailable.cur"
vert = "vertical-resize.cur"
horz = "horizontal-resize.cur"
dgn1 = "diagonal-resize-1.cur"
dgn2 = "diagonal-resize-2.cur"
move = "move.cur"
link = "link-select.cur"
cross = "precision-select.cur"
hand = "handwriting.cur"
alternate = "alt-select.cur"