Metadata-Version: 2.4
Name: ani2xcur-gui
Version: 2.0.0
Summary: Ani2xcur GUI - 一个功能强大的图形界面工具，用于在 Windows 和 Linux 平台上发现、转换、安装和管理鼠标指针主题。支持双向转换，可将 Linux 光标主题 (XCursor) 转为 Windows 格式 (.cur/.ani)，亦可将 Windows 主题转为 Linux 格式，并提供安装、应用和卸载鼠标主题的全套管理功能。
Author: licyk
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Win32 (MS Windows)
Classifier: Environment :: X11 Applications
Classifier: Intended Audience :: End Users/Desktop
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Desktop Environment
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: Pillow>=10.0
Requires-Dist: typer>=0.26.7
Requires-Dist: zstandard
Requires-Dist: py7zr
Requires-Dist: rarfile
Requires-Dist: requests
Requires-Dist: tqdm
Requires-Dist: rich
Requires-Dist: PySide6>=6.5.0
Requires-Dist: pywin32; sys_platform == "win32"
Dynamic: license-file

<div align="center">

<img src="assets/ani2xcur_icon.png" width="200" height="200" alt="Ani2xcur GUI">

# Ani2xcur GUI

_✨一站式鼠标指针转换与管理工具（图形界面版）_
  <p align="center">
    <a href="https://github.com/yhj2014/ani2xcur-gui/stargazers" style="margin: 2px;">
      <img src="https://img.shields.io/github/stars/yhj2014/ani2xcur-gui?style=flat&logo=github&logoColor=silver&color=bluegreen&labelColor=grey" alt="Stars">
    </a>
    <a href="https://github.com/yhj2014/ani2xcur-gui/forks" style="margin: 2px;">
      <img src="https://img.shields.io/github/forks/yhj2014/ani2xcur-gui?style=flat&logo=github&logoColor=silver&color=bluegreen&labelColor=grey" alt="GitHub forks">
    </a>
    <a href="https://github.com/yhj2014/ani2xcur-gui/issues" style="margin: 2px;">
      <img src="https://img.shields.io/github/issues/yhj2014/ani2xcur-gui?style=flat&logo=github&logoColor=silver&color=bluegreen&labelColor=grey" alt="Issues">
    </a>
    <a href="https://github.com/yhj2014/ani2xcur-gui/commits/main" style="margin: 2px;">
      <img src="https://flat.badgen.net/github/last-commit/yhj2014/ani2xcur-gui/main?icon=github&color=green&label=last%20commit" alt="Commit">
    </a>
    <a href="https://github.com/yhj2014/ani2xcur-gui/actions/workflows/build.yml" style="margin: 2px;">
      <img src="https://github.com/yhj2014/ani2xcur-gui/actions/workflows/build.yml/badge.svg" alt="Build">
    </a>
    <a href="https://github.com/yhj2014/ani2xcur-gui/releases" style="margin: 2px;">
      <img src="https://img.shields.io/github/v/release/yhj2014/ani2xcur-gui?include_prereleases" alt="Release">
    </a>
    <a href="https://pypi.org/project/ani2xcur-gui" style="margin: 2px;">
      <img src="https://img.shields.io/pypi/v/ani2xcur-gui" alt="PyPI">
    </a>
    <a href="https://pypi.org/project/ani2xcur-gui" style="margin: 2px;">
      <img src="https://img.shields.io/pypi/pyversions/ani2xcur-gui.svg" alt="Python Version">
    </a>
  </p>

</div>

- [Ani2xcur GUI](#ani2xcur-gui)
- [简介](#简介)
- [功能特性](#功能特性)
- [安装](#安装)
- [使用](#使用)
  - [图形界面](#图形界面)
  - [命令行模式](#命令行模式)
    - [鼠标指针格式转换](#鼠标指针格式转换)
      - [Windows 转 Linux](#windows-转-linux)
      - [Linux 转 Windows](#linux-转-windows)
    - [鼠标指针管理](#鼠标指针管理)
      - [安装指针](#安装指针)
      - [卸载指针](#卸载指针)
      - [设置指针主题和大小](#设置指针主题和大小)
      - [查看指针信息](#查看指针信息)
      - [导出指针](#导出指针)
    - [ImageMagick 管理](#imagemagick-管理)
    - [查看版本信息](#查看版本信息)
- [使用的项目](#使用的项目)
- [许可证](#许可证)

***

# 简介
Ani2xcur GUI 是一个强大且易于使用的跨平台鼠标指针主题管理、转换和安装工具，基于 PySide6 提供了直观的图形界面，同时保留了完整的命令行功能，支持 Windows 平台与 Linux 平台。


# 功能特性
- **图形界面**: 基于 PySide6 的现代化 GUI，操作直观，支持浅色/深色主题切换。
- **跨平台支持**: 完美兼容 Windows 和主流 Linux 桌面环境。
- **格式转换**:
  - 将 Windows 鼠标指针主题 (`.inf`, `.ani`, `.cur`) 转换为 Linux Xcursor 主题。
  - 将 Linux Xcursor 鼠标指针主题 (`index.theme`) 转换为 Windows 格式。
- **指针管理**:
  - **安装**: 轻松将本地或压缩包中的指针主题安装到系统中。
  - **卸载**: 按名称移除已安装的指针主题。
  - **设置**: 一键应用系统中的指针主题和调整指针大小。
  - **查看**: 列出所有已安装的指针主题，并显示当前使用的主题和大小。
  - **导出**: 将系统中的指针主题导出为文件，方便备份和分享。
- **智能识别**: 自动在压缩包或目录中查找指针配置文件 (`.inf` 或 `index.theme`)。
- **辅助管理**: 保留独立的 ImageMagick 安装和卸载命令，可用于手动排障；当前转换流程不依赖 ImageMagick。


# 安装
确保您的系统已安装 [Python](https://www.python.org) 3.10+。

```bash
pip install ani2xcur-gui
```


# 使用

## 图形界面
安装后直接运行命令即可启动图形界面：

```bash
ani2xcur-gui
```

GUI 提供以下功能页面：
- **转换**: Windows ↔ Linux 双向光标转换，支持自定义参数和自动安装。
- **管理**: 浏览、安装、卸载、导出已安装的光标主题，设置当前主题和大小。
- **工具**: ImageMagick 管理和内置日志查看器。
- **设置**: 切换浅色/深色主题，查看版本信息。

## 命令行模式
如需使用命令行，可添加 `--cli` 参数：

```bash
ani2xcur-gui --cli --help
```

### 鼠标指针格式转换
Windows 鼠标指针主题和 Linux 鼠标指针主题并不能互相兼容，而 Ani2xcur 可以将鼠标指针主题文件转换为对应平台的文件。

鼠标指针主题的转换功能由 Ani2xcur 内置的 Pillow 转换器完成，不需要额外安装 ImageMagick。

#### Windows 转 Linux
将 Windows 指针主题转换为 Linux Xcursor 主题，兼容 X11 和 Wayland/XWayland 的标准 Xcursor 加载路径。转换结果默认会在每个真实光标文件中补齐 `24, 28, 32, 40, 48, 56, 64, 72, 80` 这些名义尺寸，方便桌面环境切换不同鼠标指针大小。

```bash
ani2xcur-gui --cli convert win2x <Windows 指针路径或者是鼠标指针压缩包下载链接>
```

- **高级选项**:
  - `--output-path <路径>`: 保存转换后的鼠标指针路径。
  - `--shadow`: 是否模拟 Windows 的阴影效果。
  - `--shadow-opacity <不透明度>`: 阴影的不透明度 (0 到 255)。
  - `--shadow-radius <分数值>`: 阴影模糊效果的半径 (宽度的分数值)。
  - `--shadow-sigma <分数值>`: 阴影模糊效果的西格玛值 (宽度的分数值)。
  - `--shadow-x <偏移量>`: 阴影的 x 偏移量 (宽度的分数值)。
  - `--shadow-y <偏移量>`: 阴影的 y 偏移量 (宽度的分数值)。
  - `--shadow-color`: 阴影的颜色 (十六进制颜色格式)。
  - `--scale <倍数>`: 按指定倍数缩放光标。
  - `--xcursor-size <尺寸>`: 自定义写入的 Xcursor 名义尺寸，可重复传入；不传则使用默认尺寸列表。
  - `--compress`: 转换完成后将鼠标指针打包成压缩包。
  - `--compress-format <压缩包格式>`: 打包成压缩包时使用的压缩包格式 (`.zip`|`.7z`|`.rar`|`.tar`|`.tar.Z`|`.tar.lz`|`.tar.lzma`|`.tar.bz2`|`.tar.7z`|`.tar.gz`|`.tar.xz`|`.tar.zst`)。
  - `--install`: 在转换完成后立即安装鼠标指针到系统中。
  - `--install-path <安装路径>`: 自定义鼠标指针文件安装路径。


#### Linux 转 Windows
将 Linux Xcursor 指针主题转换为 Windows 格式。

```bash
ani2xcur-gui --cli convert x2win <Linux 指针路径或者是鼠标指针压缩包下载链接>
```

- **高级选项**:
  - `--output-path <路径>`: 保存转换后的鼠标指针路径。
  - `--scale <倍数>`: 按指定倍数缩放光标。
  - `--compress`: 转换完成后将鼠标指针打包成压缩包。
  - `--compress-format <压缩包格式>`: 打包成压缩包时使用的压缩包格式 (`.zip`|`.7z`|`.rar`|`.tar`|`.tar.Z`|`.tar.lz`|`.tar.lzma`|`.tar.bz2`|`.tar.7z`|`.tar.gz`|`.tar.xz`|`.tar.zst`)。
  - `--install`: 在转换完成后立即安装鼠标指针到系统中。
  - `--install-path <安装路径>`: 自定义鼠标指针文件安装路径。


### 鼠标指针管理

#### 安装指针
从本地路径（压缩包、`.inf` 文件或 `index.theme` 文件）安装指针主题。

```bash
ani2xcur-gui --cli cursor install <指针路径>
```

- **高级选项**:
  - `--install-path <安装路径>`: 自定义鼠标指针文件安装路径, 默认为鼠标指针配置文件中指定的安装路径。
  - `--use-inf-config-path`: (仅 Windows 平台) 使用 INF 配置文件中的鼠标指针安装路径。


#### 卸载指针
按名称删除一个已安装的指针主题。

```bash
ani2xcur-gui --cli cursor uninstall <指针名称>
```

- **高级选项**:
  - `-y`|`--yes`: 直接确认卸载鼠标指针。


#### 设置指针主题和大小
设置当前系统指针主题。

```bash
ani2xcur-gui --cli cursor set theme <指针名称>
```

设置指针大小。

```bash
ani2xcur-gui --cli cursor set size <大小值>
```

- **指针大小值范围**:
  - Windows 系统中为 `1-15`, 对应 Windows 11 设置中的鼠标指针大小滑块, 默认值为 `1`。
  - Linux 系统中为 `16-96`, 默认值为 `24`。


#### 查看指针信息
列出系统中所有已安装的指针。

```bash
ani2xcur-gui --cli cursor list
```

显示当前正在使用的指针主题和大小。

```bash
ani2xcur-gui --cli cursor status
```


#### 导出指针
将已安装的指针导出到指定目录。

```bash
ani2xcur-gui --cli cursor export <指针名称> <导出路径>
```

- **高级选项**:
  - `--custom-install-path <路径>`: 自定义鼠标指针配置文件在安装时的文件安装路径。
  - `--compress`: 导出完成后将鼠标指针打包成压缩包。
  - `--compress-format <压缩包格式>`: 打包成压缩包时使用的压缩包格式 (`.zip`|`.7z`|`.rar`|`.tar`|`.tar.Z`|`.tar.lz`|`.tar.lzma`|`.tar.bz2`|`.tar.7z`|`.tar.gz`|`.tar.xz`|`.tar.zst`)。


### ImageMagick 管理
Ani2xcur 保留 ImageMagick 管理命令用于手动排障；当前内置转换器不需要安装 ImageMagick。

#### 自动下载并安装 ImageMagick
```bash
ani2xcur-gui --cli imagemagick install
```

- **高级选项**:
  - `--install-path <安装路径>`: (仅 Windows 平台) 自定义安装 ImageMagick 的目录。
  - `-y`|`--yes`: 直接确认安装。


#### 从系统中卸载 ImageMagick
```bash
ani2xcur-gui --cli imagemagick uninstall
```

- **高级选项**:
  - `-y`|`--yes`: 直接确认卸载。


### 查看版本信息
```bash
ani2xcur-gui --cli version
```


# 使用的项目
- [Pillow](https://python-pillow.github.io): 图像解码与处理。
- [PySide6](https://wiki.qt.io/Qt_for_Python): 跨平台 GUI 框架。
- [Breeze cursor](https://store.kde.org/p/999927): 鼠标指针补全文件。


# 许可证
- [GPL-3.0](LICENSE)
