some fix, dri3, wps, readme, ...

This commit is contained in:
Caten
2024-09-21 11:43:14 +08:00
parent a117050fde
commit 49c2377e46
14 changed files with 347 additions and 160 deletions

1
.gitignore vendored
View File

@@ -39,6 +39,7 @@ app.*.symbols
app.*.map.json app.*.map.json
# Android Studio will place build artifacts here # Android Studio will place build artifacts here
/android/app/build
/android/app/debug /android/app/debug
/android/app/profile /android/app/profile
/android/app/release /android/app/release

View File

@@ -4,7 +4,7 @@
给所有安卓arm64设备的“PC应用引擎”平替 给所有安卓arm64设备的“PC应用引擎”平替
Click-to-run debian bookworm xfce on android for Chinese users, with fcitx pinyin input method preinstalled. No termux required. Click-to-run Debian Bookworm XFCE on Android for Chinese users, with the Fcitx Pinyin input method preinstalled. No Termux is required. If you want to change the language in the container, run "tmoe", since this root filesystem is made using [tmoe](https://github.com/2moe/tmoe).
## 特点 ## 特点
@@ -33,7 +33,7 @@ Click-to-run debian bookworm xfce on android for Chinese users, with fcitx pinyi
使用proot运行debian环境 使用proot运行debian环境
内置[noVNC](https://github.com/novnc/noVNC)显示图形界面 内置[noVNC](https://github.com/novnc/noVNC)/[AVNC](https://github.com/gujjwal00/avnc)/[Termux:X11](https://github.com/termux/termux-x11)显示图形界面
## 项目结构 ## 项目结构
@@ -54,16 +54,22 @@ lib目录
## 编译 ## 编译
你需要配置好flutter和安卓sdk然后克隆此项目。 你需要配置好flutter和安卓sdk还需安装python3、bison、patch、gcc然后克隆此项目。
在编译之前需要在release中下载系统rootfs(或者[自行制作](extra/build-tiny-rootfs.md))之后使用split命令分割拷贝到assets。一般我将其分为98MB。 在编译之前需要在release中下载系统rootfs(或者[自行制作](extra/build-tiny-rootfs.md))之后使用split命令分割拷贝到assets。一般我将其分为98MB。
`split -b 98M debian.tar.xz` `split -b 98M debian.tar.xz`
还需要对flutter的一些默认配置作修改因为其与项目中build.gradle的一些设置冲突。
- 删除`flutter\packages\flutter_tools\gradle\src\main\flutter.groovy`路径下与`ShrinkResources`相关的`if`代码块。
接下来就可以编译了。我使用的命令如下: 接下来就可以编译了。我使用的命令如下:
`flutter build apk --target-platform android-arm64 --split-per-abi --obfuscate --split-debug-info=tiny_computer/sdi` `flutter build apk --target-platform android-arm64 --split-per-abi --obfuscate --split-debug-info=tiny_computer/sdi`
有一些C代码可能报错。比如KeyBind.c等文件报错一些符号未定义。但其实包含那些符号的函数并没有被使用所以可以把它们删掉再编译。
应该有编译选项可以避免这种情况但我对cmake不熟就先这样了:P
## 目前已知bug ## 目前已知bug
多用户/分身情形无法sudo, 其它见issue 多用户/分身情形无法sudo, 其它见issue

View File

@@ -1,108 +0,0 @@
package com.termux.x11;
import java.util.HashMap;
import android.content.Context;
import com.termux.x11.utils.TermuxX11ExtraKeys;
import com.example.tiny_computer.R;
public class Prefs extends LoriePreferences.PrefsProto {
public final ListPreference displayResolutionMode = new ListPreference("displayResolutionMode", "native", R.array.displayResolutionVariants, R.array.displayResolutionVariants);
public final IntPreference displayScale = new IntPreference("displayScale", 100);
public final ListPreference displayResolutionExact = new ListPreference("displayResolutionExact", "1280x1024", R.array.displayResolution, R.array.displayResolution);
public final StringPreference displayResolutionCustom = new StringPreference("displayResolutionCustom", "1280x1024");
public final BooleanPreference adjustResolution = new BooleanPreference("adjustResolution", false);
public final BooleanPreference displayStretch = new BooleanPreference("displayStretch", false);
public final BooleanPreference Reseed = new BooleanPreference("Reseed", true);
public final BooleanPreference PIP = new BooleanPreference("PIP", true);
public final BooleanPreference fullscreen = new BooleanPreference("fullscreen", true);
public final ListPreference forceOrientation = new ListPreference("forceOrientation", "no", R.array.forceOrientationVariants, R.array.forceOrientationVariants);
public final BooleanPreference hideCutout = new BooleanPreference("hideCutout", false);
public final BooleanPreference keepScreenOn = new BooleanPreference("keepScreenOn", true);
public final BooleanPreference xrMode = new BooleanPreference("xrMode", false);
public final ListPreference touchMode = new ListPreference("touchMode", "1", R.array.touchscreenInputModesEntries, R.array.touchscreenInputModesValues);
public final BooleanPreference scaleTouchpad = new BooleanPreference("scaleTouchpad", true);
public final BooleanPreference showStylusClickOverride = new BooleanPreference("showStylusClickOverride", false);
public final BooleanPreference stylusIsMouse = new BooleanPreference("stylusIsMouse", false);
public final BooleanPreference stylusButtonContactModifierMode = new BooleanPreference("stylusButtonContactModifierMode", false);
public final BooleanPreference showMouseHelper = new BooleanPreference("showMouseHelper", false);
public final BooleanPreference pointerCapture = new BooleanPreference("pointerCapture", false);
public final ListPreference transformCapturedPointer = new ListPreference("transformCapturedPointer", "no", R.array.transformCapturedPointerEntries, R.array.transformCapturedPointerValues);
public final IntPreference capturedPointerSpeedFactor = new IntPreference("capturedPointerSpeedFactor", 100);
public final BooleanPreference tapToMove = new BooleanPreference("tapToMove", true);
public final BooleanPreference showAdditionalKbd = new BooleanPreference("showAdditionalKbd", true);
public final BooleanPreference additionalKbdVisible = new BooleanPreference("additionalKbdVisible", true);
public final BooleanPreference showIMEWhileExternalConnected = new BooleanPreference("showIMEWhileExternalConnected", true);
public final BooleanPreference preferScancodes = new BooleanPreference("preferScancodes", false);
public final BooleanPreference hardwareKbdScancodesWorkaround = new BooleanPreference("hardwareKbdScancodesWorkaround", true);
public final BooleanPreference dexMetaKeyCapture = new BooleanPreference("dexMetaKeyCapture", false);
public final BooleanPreference enableAccessibilityServiceAutomatically = new BooleanPreference("enableAccessibilityServiceAutomatically", false);
public final BooleanPreference pauseKeyInterceptingWithEsc = new BooleanPreference("pauseKeyInterceptingWithEsc", false);
public final BooleanPreference filterOutWinkey = new BooleanPreference("filterOutWinkey", false);
public final BooleanPreference enableGboardCJK = new BooleanPreference("enableGboardCJK", false);
public final BooleanPreference clipboardEnable = new BooleanPreference("clipboardEnable", true);
public final BooleanPreference storeSecondaryDisplayPreferencesSeparately = new BooleanPreference("storeSecondaryDisplayPreferencesSeparately", false);
public final BooleanPreference adjustHeightForEK = new BooleanPreference("adjustHeightForEK", true);
public final BooleanPreference useTermuxEKBarBehaviour = new BooleanPreference("useTermuxEKBarBehaviour", true);
public final IntPreference opacityEKBar = new IntPreference("opacityEKBar", 100);
public final ListPreference swipeUpAction = new ListPreference("swipeUpAction", "no action", R.array.userActionsValues, R.array.userActionsValues);
public final ListPreference swipeDownAction = new ListPreference("swipeDownAction", "toggle additional key bar", R.array.userActionsValues, R.array.userActionsValues);
public final ListPreference volumeUpAction = new ListPreference("volumeUpAction", "no action", R.array.userActionsVolumeUpValues, R.array.userActionsVolumeUpValues);
public final ListPreference volumeDownAction = new ListPreference("volumeDownAction", "no action", R.array.userActionsVolumeDownValues, R.array.userActionsVolumeDownValues);
public final ListPreference backButtonAction = new ListPreference("backButtonAction", "toggle additional key bar", R.array.userActionsValues, R.array.userActionsValues);
public final ListPreference notificationTapAction = new ListPreference("notificationTapAction", "open preferences", R.array.userActionsValues, R.array.userActionsValues);
public final ListPreference notificationButton0Action = new ListPreference("notificationButton0Action", "open preferences", R.array.userActionsValues, R.array.userActionsValues);
public final ListPreference notificationButton1Action = new ListPreference("notificationButton1Action", "exit", R.array.userActionsValues, R.array.userActionsValues);
public final StringPreference extra_keys_config = new StringPreference("extra_keys_config", TermuxX11ExtraKeys.DEFAULT_IVALUE_EXTRA_KEYS);
public final HashMap<String, Preference> keys = new HashMap<String, Preference>() {{
put("displayResolutionMode", displayResolutionMode);
put("displayScale", displayScale);
put("displayResolutionExact", displayResolutionExact);
put("displayResolutionCustom", displayResolutionCustom);
put("adjustResolution", adjustResolution);
put("displayStretch", displayStretch);
put("Reseed", Reseed);
put("PIP", PIP);
put("fullscreen", fullscreen);
put("forceOrientation", forceOrientation);
put("hideCutout", hideCutout);
put("keepScreenOn", keepScreenOn);
put("xrMode", xrMode);
put("touchMode", touchMode);
put("scaleTouchpad", scaleTouchpad);
put("showStylusClickOverride", showStylusClickOverride);
put("stylusIsMouse", stylusIsMouse);
put("stylusButtonContactModifierMode", stylusButtonContactModifierMode);
put("showMouseHelper", showMouseHelper);
put("pointerCapture", pointerCapture);
put("transformCapturedPointer", transformCapturedPointer);
put("capturedPointerSpeedFactor", capturedPointerSpeedFactor);
put("tapToMove", tapToMove);
put("showAdditionalKbd", showAdditionalKbd);
put("additionalKbdVisible", additionalKbdVisible);
put("showIMEWhileExternalConnected", showIMEWhileExternalConnected);
put("preferScancodes", preferScancodes);
put("hardwareKbdScancodesWorkaround", hardwareKbdScancodesWorkaround);
put("dexMetaKeyCapture", dexMetaKeyCapture);
put("enableAccessibilityServiceAutomatically", enableAccessibilityServiceAutomatically);
put("pauseKeyInterceptingWithEsc", pauseKeyInterceptingWithEsc);
put("filterOutWinkey", filterOutWinkey);
put("enableGboardCJK", enableGboardCJK);
put("clipboardEnable", clipboardEnable);
put("storeSecondaryDisplayPreferencesSeparately", storeSecondaryDisplayPreferencesSeparately);
put("adjustHeightForEK", adjustHeightForEK);
put("useTermuxEKBarBehaviour", useTermuxEKBarBehaviour);
put("opacityEKBar", opacityEKBar);
put("swipeUpAction", swipeUpAction);
put("swipeDownAction", swipeDownAction);
put("volumeUpAction", volumeUpAction);
put("volumeDownAction", volumeDownAction);
put("backButtonAction", backButtonAction);
put("notificationTapAction", notificationTapAction);
put("notificationButton0Action", notificationButton0Action);
put("notificationButton1Action", notificationButton1Action);
put("extra_keys_config", extra_keys_config);
}};
public Prefs(Context ctx) {
super(ctx);
}
}

View File

@@ -37,7 +37,7 @@ import com.example.tiny_computer.BuildConfig;
@Keep @SuppressLint({"StaticFieldLeak", "UnsafeDynamicallyLoadedCode"}) @Keep @SuppressLint({"StaticFieldLeak", "UnsafeDynamicallyLoadedCode"})
public class CmdEntryPoint extends ICmdEntryInterface.Stub { public class CmdEntryPoint extends ICmdEntryInterface.Stub {
public static final String ACTION_START = "com.termux.x11.CmdEntryPoint.ACTION_START"; public static final String ACTION_START = "com.termux.x11.CmdEntryPoint.ACTION_START";
public static final int PORT = 7892; public static final int PORT = 7897;
public static final byte[] MAGIC = "0xDEADBEEF".getBytes(); public static final byte[] MAGIC = "0xDEADBEEF".getBytes();
private static final Handler handler; private static final Handler handler;
public static Context ctx; public static Context ctx;

View File

@@ -736,9 +736,28 @@ public class LoriePreferences extends AppCompatActivity implements PreferenceFra
return getArrayItems(values, ctx.getResources()); return getArrayItems(values, ctx.getResources());
} }
// private String[] getArrayItems(int resourceId, Resources resources) {
// ArrayList<String> itemList = new ArrayList<>();
// try(TypedArray typedArray = resources.obtainTypedArray(resourceId)) {
// for (int i = 0; i < typedArray.length(); i++) {
// int type = typedArray.getType(i);
// if (type == TypedValue.TYPE_STRING) {
// itemList.add(typedArray.getString(i));
// } else if (type == TypedValue.TYPE_REFERENCE) {
// int resIdOfArray = typedArray.getResourceId(i, 0);
// itemList.addAll(Arrays.asList(resources.getStringArray(resIdOfArray)));
// }
// }
// }
// Object[] objectArray = itemList.toArray();
// return Arrays.copyOf(objectArray, objectArray.length, String[].class);
// }
private String[] getArrayItems(int resourceId, Resources resources) { private String[] getArrayItems(int resourceId, Resources resources) {
ArrayList<String> itemList = new ArrayList<>(); ArrayList<String> itemList = new ArrayList<>();
try(TypedArray typedArray = resources.obtainTypedArray(resourceId)) { TypedArray typedArray = resources.obtainTypedArray(resourceId);
try {
for (int i = 0; i < typedArray.length(); i++) { for (int i = 0; i < typedArray.length(); i++) {
int type = typedArray.getType(i); int type = typedArray.getType(i);
if (type == TypedValue.TYPE_STRING) { if (type == TypedValue.TYPE_STRING) {
@@ -748,11 +767,12 @@ public class LoriePreferences extends AppCompatActivity implements PreferenceFra
itemList.addAll(Arrays.asList(resources.getStringArray(resIdOfArray))); itemList.addAll(Arrays.asList(resources.getStringArray(resIdOfArray)));
} }
} }
} finally {
typedArray.recycle();
}
return itemList.toArray(new String[0]);
} }
Object[] objectArray = itemList.toArray();
return Arrays.copyOf(objectArray, objectArray.length, String[].class);
}
} }

View File

@@ -85,7 +85,7 @@ public class MainActivity extends AppCompatActivity implements View.OnApplyWindo
protected ICmdEntryInterface service = null; protected ICmdEntryInterface service = null;
public TermuxX11ExtraKeys mExtraKeys; public TermuxX11ExtraKeys mExtraKeys;
private Notification mNotification; private Notification mNotification;
private final int mNotificationId = 7892; private final int mNotificationId = 7897;
NotificationManager mNotificationManager; NotificationManager mNotificationManager;
static InputMethodManager inputMethodManager; static InputMethodManager inputMethodManager;
private static boolean showIMEWhileExternalConnected = true; private static boolean showIMEWhileExternalConnected = true;

View File

@@ -38,7 +38,7 @@
<PreferenceScreen app:key="kbd"> <PreferenceScreen app:key="kbd">
<SwitchPreferenceCompat app:key="showAdditionalKbd" app:defaultValue="true" /> <SwitchPreferenceCompat app:key="showAdditionalKbd" app:defaultValue="true" />
<!-- this preference should be a part of `Prefs` but should not appear in PreferenceScreen --> <!-- this preference should be a part of `Prefs` but should not appear in PreferenceScreen -->
<SwitchPreferenceCompat app:key="additionalKbdVisible" app:defaultValue="true" app:isPreferenceVisible="false" /> <SwitchPreferenceCompat app:key="additionalKbdVisible" app:defaultValue="false" app:isPreferenceVisible="false" />
<SwitchPreferenceCompat app:key="showIMEWhileExternalConnected" app:defaultValue="true" /> <SwitchPreferenceCompat app:key="showIMEWhileExternalConnected" app:defaultValue="true" />
<SwitchPreferenceCompat app:key="preferScancodes" app:defaultValue="false" /> <SwitchPreferenceCompat app:key="preferScancodes" app:defaultValue="false" />
<SwitchPreferenceCompat app:key="hardwareKbdScancodesWorkaround" app:defaultValue="true" /> <SwitchPreferenceCompat app:key="hardwareKbdScancodesWorkaround" app:defaultValue="true" />

247
extra/cross/chn_fonts.reg Normal file
View File

@@ -0,0 +1,247 @@
REGEDIT4
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink]
"Agency FB"="XiaolaiMonoSC-Regular.ttf"
"Alef"="XiaolaiMonoSC-Regular.ttf"
"Algerian"="XiaolaiMonoSC-Regular.ttf"
"Amiri Quran"="XiaolaiMonoSC-Regular.ttf"
"Amiri"="XiaolaiMonoSC-Regular.ttf"
"Arial Rounded MT Bold"="XiaolaiMonoSC-Regular.ttf"
"Arial"="XiaolaiMonoSC-Regular.ttf"
"Bahnschrift"="XiaolaiMonoSC-Regular.ttf"
"Baskerville Old Face"="XiaolaiMonoSC-Regular.ttf"
"Bauhaus 93"="XiaolaiMonoSC-Regular.ttf"
"Bell MT"="XiaolaiMonoSC-Regular.ttf"
"Berlin Sans FB Demi"="XiaolaiMonoSC-Regular.ttf"
"Berlin Sans FB"="XiaolaiMonoSC-Regular.ttf"
"Bernard MT Condensed"="XiaolaiMonoSC-Regular.ttf"
"Blackadder ITC"="XiaolaiMonoSC-Regular.ttf"
"Bodoni MT"="XiaolaiMonoSC-Regular.ttf"
"Book Antiqua"="XiaolaiMonoSC-Regular.ttf"
"Bookman Old Style"="XiaolaiMonoSC-Regular.ttf"
"Bookshelf Symbol 7"="XiaolaiMonoSC-Regular.ttf"
"Bradley Hand ITC"="XiaolaiMonoSC-Regular.ttf"
"Britannic Bold"="XiaolaiMonoSC-Regular.ttf"
"Broadway"="XiaolaiMonoSC-Regular.ttf"
"Brush Script MT"="XiaolaiMonoSC-Regular.ttf"
"Caladea"="XiaolaiMonoSC-Regular.ttf"
"Calibri"="XiaolaiMonoSC-Regular.ttf"
"Californian FB"="XiaolaiMonoSC-Regular.ttf"
"Calisto MT"="XiaolaiMonoSC-Regular.ttf"
"Cambria"="XiaolaiMonoSC-Regular.ttf"
"Candara"="XiaolaiMonoSC-Regular.ttf"
"Carlito"="XiaolaiMonoSC-Regular.ttf"
"Cascadia Code"="XiaolaiMonoSC-Regular.ttf"
"Cascadia Mono"="XiaolaiMonoSC-Regular.ttf"
"Castellar"="XiaolaiMonoSC-Regular.ttf"
"Centaur"="XiaolaiMonoSC-Regular.ttf"
"Century Gothic"="XiaolaiMonoSC-Regular.ttf"
"Century Schoolbook"="XiaolaiMonoSC-Regular.ttf"
"Century"="XiaolaiMonoSC-Regular.ttf"
"Chiller"="XiaolaiMonoSC-Regular.ttf"
"Colonna MT"="XiaolaiMonoSC-Regular.ttf"
"Comic Sans MS"="XiaolaiMonoSC-Regular.ttf"
"Consolas"="XiaolaiMonoSC-Regular.ttf"
"Constantia"="XiaolaiMonoSC-Regular.ttf"
"Cooper Black"="XiaolaiMonoSC-Regular.ttf"
"Copperplate Gothic Bold"="XiaolaiMonoSC-Regular.ttf"
"Copperplate Gothic Light"="XiaolaiMonoSC-Regular.ttf"
"Corbel"="XiaolaiMonoSC-Regular.ttf"
"Courier New"="XiaolaiMonoSC-Regular.ttf"
"Curlz MT"="XiaolaiMonoSC-Regular.ttf"
"David CLM"="XiaolaiMonoSC-Regular.ttf"
"David Libre"="XiaolaiMonoSC-Regular.ttf"
"DejaVu Math TeX Gyre"="XiaolaiMonoSC-Regular.ttf"
"DejaVu Sans Mono"="XiaolaiMonoSC-Regular.ttf"
"DejaVu Sans"="XiaolaiMonoSC-Regular.ttf"
"DejaVu Serif"="XiaolaiMonoSC-Regular.ttf"
"DengXian"="XiaolaiMonoSC-Regular.ttf"
"Dubai"="XiaolaiMonoSC-Regular.ttf"
"Ebrima"="XiaolaiMonoSC-Regular.ttf"
"Edwardian Script ITC"="XiaolaiMonoSC-Regular.ttf"
"Elephant"="XiaolaiMonoSC-Regular.ttf"
"Engravers MT"="XiaolaiMonoSC-Regular.ttf"
"Eras Bold ITC"="XiaolaiMonoSC-Regular.ttf"
"Eras Demi ITC"="XiaolaiMonoSC-Regular.ttf"
"Eras Light ITC"="XiaolaiMonoSC-Regular.ttf"
"Eras Medium ITC"="XiaolaiMonoSC-Regular.ttf"
"FZShuTi"="XiaolaiMonoSC-Regular.ttf"
"FZYaoTi"="XiaolaiMonoSC-Regular.ttf"
"FangSong"="XiaolaiMonoSC-Regular.ttf"
"Felix Titling"="XiaolaiMonoSC-Regular.ttf"
"Footlight MT Light"="XiaolaiMonoSC-Regular.ttf"
"Forte"="XiaolaiMonoSC-Regular.ttf"
"Frank Ruehl CLM"="XiaolaiMonoSC-Regular.ttf"
"Frank Ruhl Hofshi"="XiaolaiMonoSC-Regular.ttf"
"Franklin Gothic Book"="XiaolaiMonoSC-Regular.ttf"
"Franklin Gothic Demi Cond"="XiaolaiMonoSC-Regular.ttf"
"Franklin Gothic Demi"="XiaolaiMonoSC-Regular.ttf"
"Franklin Gothic Heavy"="XiaolaiMonoSC-Regular.ttf"
"Franklin Gothic Medium Cond"="XiaolaiMonoSC-Regular.ttf"
"Franklin Gothic Medium"="XiaolaiMonoSC-Regular.ttf"
"Freestyle Script"="XiaolaiMonoSC-Regular.ttf"
"French Script MT"="XiaolaiMonoSC-Regular.ttf"
"Gabriola"="XiaolaiMonoSC-Regular.ttf"
"Gadugi"="XiaolaiMonoSC-Regular.ttf"
"Garamond"="XiaolaiMonoSC-Regular.ttf"
"Gentium Basic"="XiaolaiMonoSC-Regular.ttf"
"Gentium Book Basic"="XiaolaiMonoSC-Regular.ttf"
"Georgia"="XiaolaiMonoSC-Regular.ttf"
"Gigi"="XiaolaiMonoSC-Regular.ttf"
"Gill Sans MT Condensed"="XiaolaiMonoSC-Regular.ttf"
"Gill Sans MT Ext Condensed Bold"="XiaolaiMonoSC-Regular.ttf"
"Gill Sans MT"="XiaolaiMonoSC-Regular.ttf"
"Gill Sans Ultra Bold Condensed"="XiaolaiMonoSC-Regular.ttf"
"Gill Sans Ultra Bold"="XiaolaiMonoSC-Regular.ttf"
"Gloucester MT Extra Condensed"="XiaolaiMonoSC-Regular.ttf"
"Goudy Old Style"="XiaolaiMonoSC-Regular.ttf"
"Goudy Stout"="XiaolaiMonoSC-Regular.ttf"
"Haettenschweiler"="XiaolaiMonoSC-Regular.ttf"
"Harlow Solid Italic"="XiaolaiMonoSC-Regular.ttf"
"Harrington"="XiaolaiMonoSC-Regular.ttf"
"High Tower Text"="XiaolaiMonoSC-Regular.ttf"
"HoloLens MDL2 Assets"="XiaolaiMonoSC-Regular.ttf"
"Impact"="XiaolaiMonoSC-Regular.ttf"
"Imprint MT Shadow"="XiaolaiMonoSC-Regular.ttf"
"Informal Roman"="XiaolaiMonoSC-Regular.ttf"
"Ink Free"="XiaolaiMonoSC-Regular.ttf"
"Javanese Text"="XiaolaiMonoSC-Regular.ttf"
"Jokerman"="XiaolaiMonoSC-Regular.ttf"
"Juice ITC"="XiaolaiMonoSC-Regular.ttf"
"KaiTi"="XiaolaiMonoSC-Regular.ttf"
"Kristen ITC"="XiaolaiMonoSC-Regular.ttf"
"Kunstler Script"="XiaolaiMonoSC-Regular.ttf"
"Leelawadee UI"="XiaolaiMonoSC-Regular.ttf"
"Leelawadee"="XiaolaiMonoSC-Regular.ttf"
"LiSu"="XiaolaiMonoSC-Regular.ttf"
"Liberation Mono"="XiaolaiMonoSC-Regular.ttf"
"Liberation Sans Narrow"="XiaolaiMonoSC-Regular.ttf"
"Liberation Sans"="XiaolaiMonoSC-Regular.ttf"
"Liberation Serif"="XiaolaiMonoSC-Regular.ttf"
"Linux Biolinum G"="XiaolaiMonoSC-Regular.ttf"
"Linux Libertine Display G"="XiaolaiMonoSC-Regular.ttf"
"Linux Libertine G"="XiaolaiMonoSC-Regular.ttf"
"Lucida Bright"="XiaolaiMonoSC-Regular.ttf"
"Lucida Calligraphy"="XiaolaiMonoSC-Regular.ttf"
"Lucida Console"="XiaolaiMonoSC-Regular.ttf"
"Lucida Fax"="XiaolaiMonoSC-Regular.ttf"
"Lucida Handwriting"="XiaolaiMonoSC-Regular.ttf"
"Lucida Sans Typewriter"="XiaolaiMonoSC-Regular.ttf"
"Lucida Sans Unicode"="XiaolaiMonoSC-Regular.ttf"
"Lucida Sans"="XiaolaiMonoSC-Regular.ttf"
"MS Gothic"="XiaolaiMonoSC-Regular.ttf"
"MS Outlook"="XiaolaiMonoSC-Regular.ttf"
"MS Reference Sans Serif"="XiaolaiMonoSC-Regular.ttf"
"MS Reference Specialty"="XiaolaiMonoSC-Regular.ttf"
"MT Extra"="XiaolaiMonoSC-Regular.ttf"
"MV Boli"="XiaolaiMonoSC-Regular.ttf"
"Magneto"="XiaolaiMonoSC-Regular.ttf"
"Maiandra GD"="XiaolaiMonoSC-Regular.ttf"
"Malgun Gothic"="XiaolaiMonoSC-Regular.ttf"
"Marlett"="XiaolaiMonoSC-Regular.ttf"
"Matura MT Script Capitals"="XiaolaiMonoSC-Regular.ttf"
"Microsoft Himalaya"="XiaolaiMonoSC-Regular.ttf"
"Microsoft JhengHei"="XiaolaiMonoSC-Regular.ttf"
"Microsoft New Tai Lue"="XiaolaiMonoSC-Regular.ttf"
"Microsoft PhagsPa"="XiaolaiMonoSC-Regular.ttf"
"Microsoft Sans Serif"="XiaolaiMonoSC-Regular.ttf"
"Microsoft Tai Le"="XiaolaiMonoSC-Regular.ttf"
"Microsoft Uighur"="XiaolaiMonoSC-Regular.ttf"
"Microsoft YaHei"="XiaolaiMonoSC-Regular.ttf"
"Microsoft Yi Baiti"="XiaolaiMonoSC-Regular.ttf"
"MingLiU-ExtB"="XiaolaiMonoSC-Regular.ttf"
"Miriam CLM"="XiaolaiMonoSC-Regular.ttf"
"Miriam Libre"="XiaolaiMonoSC-Regular.ttf"
"Miriam Mono CLM"="XiaolaiMonoSC-Regular.ttf"
"Mistral"="XiaolaiMonoSC-Regular.ttf"
"Modern No. 20"="XiaolaiMonoSC-Regular.ttf"
"Mongolian Baiti"="XiaolaiMonoSC-Regular.ttf"
"Monotype Corsiva"="XiaolaiMonoSC-Regular.ttf"
"Myanmar Text"="XiaolaiMonoSC-Regular.ttf"
"Nachlieli CLM"="XiaolaiMonoSC-Regular.ttf"
"Niagara Engraved"="XiaolaiMonoSC-Regular.ttf"
"Niagara Solid"="XiaolaiMonoSC-Regular.ttf"
"Nirmala UI"="XiaolaiMonoSC-Regular.ttf"
"Noto Kufi Arabic"="XiaolaiMonoSC-Regular.ttf"
"Noto Naskh Arabic"="XiaolaiMonoSC-Regular.ttf"
"Noto Sans Arabic"="XiaolaiMonoSC-Regular.ttf"
"Noto Sans Armenian"="XiaolaiMonoSC-Regular.ttf"
"Noto Sans Georgian"="XiaolaiMonoSC-Regular.ttf"
"Noto Sans Hebrew"="XiaolaiMonoSC-Regular.ttf"
"Noto Sans Lao"="XiaolaiMonoSC-Regular.ttf"
"Noto Sans Lisu"="XiaolaiMonoSC-Regular.ttf"
"Noto Sans"="XiaolaiMonoSC-Regular.ttf"
"Noto Serif Armenian"="XiaolaiMonoSC-Regular.ttf"
"Noto Serif Georgian"="XiaolaiMonoSC-Regular.ttf"
"Noto Serif Hebrew"="XiaolaiMonoSC-Regular.ttf"
"Noto Serif Lao"="XiaolaiMonoSC-Regular.ttf"
"Noto Serif"="XiaolaiMonoSC-Regular.ttf"
"OCR A Extended"="XiaolaiMonoSC-Regular.ttf"
"Old English Text MT"="XiaolaiMonoSC-Regular.ttf"
"Onyx"="XiaolaiMonoSC-Regular.ttf"
"OpenSymbol"="XiaolaiMonoSC-Regular.ttf"
"Palace Script MT"="XiaolaiMonoSC-Regular.ttf"
"Palatino Linotype"="XiaolaiMonoSC-Regular.ttf"
"Papyrus"="XiaolaiMonoSC-Regular.ttf"
"Parchment"="XiaolaiMonoSC-Regular.ttf"
"Perpetua Titling MT"="XiaolaiMonoSC-Regular.ttf"
"Perpetua"="XiaolaiMonoSC-Regular.ttf"
"Playbill"="XiaolaiMonoSC-Regular.ttf"
"Poor Richard"="XiaolaiMonoSC-Regular.ttf"
"Pristina"="XiaolaiMonoSC-Regular.ttf"
"Rage Italic"="XiaolaiMonoSC-Regular.ttf"
"Ravie"="XiaolaiMonoSC-Regular.ttf"
"Reem Kufi"="XiaolaiMonoSC-Regular.ttf"
"Rockwell Condensed"="XiaolaiMonoSC-Regular.ttf"
"Rockwell Extra Bold"="XiaolaiMonoSC-Regular.ttf"
"Rockwell"="XiaolaiMonoSC-Regular.ttf"
"Rubik"="XiaolaiMonoSC-Regular.ttf"
"STCaiyun"="XiaolaiMonoSC-Regular.ttf"
"STFangsong"="XiaolaiMonoSC-Regular.ttf"
"STHupo"="XiaolaiMonoSC-Regular.ttf"
"STKaiti"="XiaolaiMonoSC-Regular.ttf"
"STLiti"="XiaolaiMonoSC-Regular.ttf"
"STSong"="XiaolaiMonoSC-Regular.ttf"
"STXihei"="XiaolaiMonoSC-Regular.ttf"
"STXingkai"="XiaolaiMonoSC-Regular.ttf"
"STXinwei"="XiaolaiMonoSC-Regular.ttf"
"STZhongsong"="XiaolaiMonoSC-Regular.ttf"
"Sans Serif Collection"="XiaolaiMonoSC-Regular.ttf"
"Scheherazade"="XiaolaiMonoSC-Regular.ttf"
"Script MT Bold"="XiaolaiMonoSC-Regular.ttf"
"Segoe Fluent Icons"="XiaolaiMonoSC-Regular.ttf"
"Segoe MDL2 Assets"="XiaolaiMonoSC-Regular.ttf"
"Segoe Print"="XiaolaiMonoSC-Regular.ttf"
"Segoe Script"="XiaolaiMonoSC-Regular.ttf"
"Segoe UI Emoji"="XiaolaiMonoSC-Regular.ttf"
"Segoe UI Historic"="XiaolaiMonoSC-Regular.ttf"
"Segoe UI Symbol"="XiaolaiMonoSC-Regular.ttf"
"Segoe UI Variable"="XiaolaiMonoSC-Regular.ttf"
"Segoe UI"="XiaolaiMonoSC-Regular.ttf"
"Showcard Gothic"="XiaolaiMonoSC-Regular.ttf"
"SimHei"="XiaolaiMonoSC-Regular.ttf"
"SimSun"="XiaolaiMonoSC-Regular.ttf"
"SimSun-ExtB"="XiaolaiMonoSC-Regular.ttf"
"Sitka"="XiaolaiMonoSC-Regular.ttf"
"Snap ITC"="XiaolaiMonoSC-Regular.ttf"
"Stencil"="XiaolaiMonoSC-Regular.ttf"
"Sylfaen"="XiaolaiMonoSC-Regular.ttf"
"Symbol"="XiaolaiMonoSC-Regular.ttf"
"Tahoma"="XiaolaiMonoSC-Regular.ttf"
"Tempus Sans ITC"="XiaolaiMonoSC-Regular.ttf"
"Times New Roman"="XiaolaiMonoSC-Regular.ttf"
"Trebuchet MS"="XiaolaiMonoSC-Regular.ttf"
"Tw Cen MT Condensed Extra Bold"="XiaolaiMonoSC-Regular.ttf"
"Tw Cen MT Condensed"="XiaolaiMonoSC-Regular.ttf"
"Tw Cen MT"="XiaolaiMonoSC-Regular.ttf"
"Verdana"="XiaolaiMonoSC-Regular.ttf"
"Viner Hand ITC"="XiaolaiMonoSC-Regular.ttf"
"Vivaldi"="XiaolaiMonoSC-Regular.ttf"
"Vladimir Script"="XiaolaiMonoSC-Regular.ttf"
"Webdings"="XiaolaiMonoSC-Regular.ttf"
"Wide Latin"="XiaolaiMonoSC-Regular.ttf"
"Wingdings 2"="XiaolaiMonoSC-Regular.ttf"
"Wingdings 3"="XiaolaiMonoSC-Regular.ttf"
"Wingdings"="XiaolaiMonoSC-Regular.ttf"
"YouYuan"="XiaolaiMonoSC-Regular.ttf"
"Yu Gothic"="XiaolaiMonoSC-Regular.ttf"

View File

@@ -29,6 +29,10 @@ linux在需要数据时使用socket通知位于安卓的getifaddrs_bridge_ser
这些是用于跨架构/跨系统支持的box86/box64和wine安装脚本。 这些是用于跨架构/跨系统支持的box86/box64和wine安装脚本。
#### extra/chn_fonts.reg, extra/XiaolaiMonoSC-Regular.ttf:
修复wine显示方块字的注册表文件和[小赖字体](https://github.com/lxgw/kose-font)。
#### caj, edraw #### caj, edraw
这些分别是cajviewer亿图图示的补丁 这些分别是cajviewer亿图图示的补丁

View File

@@ -28,7 +28,6 @@ import 'package:clipboard/clipboard.dart';
import 'package:dynamic_color/dynamic_color.dart'; import 'package:dynamic_color/dynamic_color.dart';
import 'package:flutter/gestures.dart'; import 'package:flutter/gestures.dart';
import 'package:flutter_pty/flutter_pty.dart'; import 'package:flutter_pty/flutter_pty.dart';
import 'package:flutter_speed_dial/flutter_speed_dial.dart';
import 'package:network_info_plus/network_info_plus.dart'; import 'package:network_info_plus/network_info_plus.dart';
import 'package:permission_handler/permission_handler.dart'; import 'package:permission_handler/permission_handler.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
@@ -338,16 +337,20 @@ sed -i -E "s@^(VNC_RESOLUTION)=.*@\\1=${w}x${h}@" \$(command -v startvnc)""");
const Divider(height: 2, indent: 8, endIndent: 8), const Divider(height: 2, indent: 8, endIndent: 8),
const SizedBox.square(dimension: 16), const SizedBox.square(dimension: 16),
const Text("""Termux X11可以带来比VNC更快的速度某些情况下兼容性也会更好。这是一个实验性功能。 const Text("""Termux X11可以带来比VNC更快的速度某些情况下兼容性也会更好。这是一个实验性功能。
支持使用DRI3需在图形加速中开启可以带来相当大的性能提升。
随着版本的迭代Termux X11如今也支持了双向剪切板等功能。"""), 随着版本的迭代Termux X11如今也支持了双向剪切板等功能。"""),
const SizedBox.square(dimension: 16), const SizedBox.square(dimension: 16),
Wrap(alignment: WrapAlignment.center, spacing: 4.0, runSpacing: 4.0, children: [ Wrap(alignment: WrapAlignment.center, spacing: 4.0, runSpacing: 4.0, children: [
OutlinedButton(style: D.commandButtonStyle, child: const Text("Termux X11设置"), onPressed: () async { OutlinedButton(style: D.commandButtonStyle, child: const Text("Termux X11偏好设置"), onPressed: () async {
await D.androidChannel.invokeMethod("launchX11PrefsPage", {}); await D.androidChannel.invokeMethod("launchX11PrefsPage", {});
}), }),
]), ]),
const SizedBox.square(dimension: 8), const SizedBox.square(dimension: 8),
SwitchListTile(title: const Text("默认使用Termux X11"), subtitle: const Text("不使用VNC。重启生效"), value: Util.getGlobal("useX11") as bool, onChanged:(value) { SwitchListTile(title: const Text("默认使用Termux X11"), subtitle: const Text("不使用VNC。重启生效"), value: Util.getGlobal("useX11") as bool, onChanged:(value) {
G.prefs.setBool("useX11", value); G.prefs.setBool("useX11", value);
if (!value && Util.getGlobal("dri3")) {
G.prefs.setBool("dri3", false);
}
setState(() {}); setState(() {});
},), },),
const SizedBox.square(dimension: 16), const SizedBox.square(dimension: 16),
@@ -517,6 +520,22 @@ Virgl可为使用OpenGL ES的应用提供加速。"""),
const SizedBox.square(dimension: 8), const SizedBox.square(dimension: 8),
SwitchListTile(title: const Text("启用Turnip+Zink驱动"), subtitle: const Text("下次启动时生效"), value: Util.getGlobal("turnip") as bool, onChanged:(value) async { SwitchListTile(title: const Text("启用Turnip+Zink驱动"), subtitle: const Text("下次启动时生效"), value: Util.getGlobal("turnip") as bool, onChanged:(value) async {
G.prefs.setBool("turnip", value); G.prefs.setBool("turnip", value);
if (!value && Util.getGlobal("dri3")) {
G.prefs.setBool("dri3", false);
}
setState(() {});
},),
const SizedBox.square(dimension: 8),
SwitchListTile(title: const Text("启用DRI3"), subtitle: const Text("下次启动时生效"), value: Util.getGlobal("dri3") as bool, onChanged:(value) async {
if (value && !(Util.getGlobal("turnip") && Util.getGlobal("useX11"))) {
if (!context.mounted) return;
ScaffoldMessenger.of(context).hideCurrentSnackBar();
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(content: Text("DRI3必须配合Termux X11和Turnip使用"))
);
return;
}
G.prefs.setBool("dri3", value);
setState(() {}); setState(() {});
},), },),
const SizedBox.square(dimension: 16), const SizedBox.square(dimension: 16),

View File

@@ -115,6 +115,7 @@ class Util {
case "isWineEnabled" : return b ? G.prefs.getBool(key)! : (value){G.prefs.setBool(key, value); return value;}(false); case "isWineEnabled" : return b ? G.prefs.getBool(key)! : (value){G.prefs.setBool(key, value); return value;}(false);
case "virgl" : return b ? G.prefs.getBool(key)! : (value){G.prefs.setBool(key, value); return value;}(false); case "virgl" : return b ? G.prefs.getBool(key)! : (value){G.prefs.setBool(key, value); return value;}(false);
case "turnip" : return b ? G.prefs.getBool(key)! : (value){G.prefs.setBool(key, value); return value;}(false); case "turnip" : return b ? G.prefs.getBool(key)! : (value){G.prefs.setBool(key, value); return value;}(false);
case "dri3" : return b ? G.prefs.getBool(key)! : (value){G.prefs.setBool(key, value); return value;}(false);
case "wakelock" : return b ? G.prefs.getBool(key)! : (value){G.prefs.setBool(key, value); return value;}(false); case "wakelock" : return b ? G.prefs.getBool(key)! : (value){G.prefs.setBool(key, value); return value;}(false);
case "isHidpiEnabled" : return b ? G.prefs.getBool(key)! : (value){G.prefs.setBool(key, value); return value;}(false); case "isHidpiEnabled" : return b ? G.prefs.getBool(key)! : (value){G.prefs.setBool(key, value); return value;}(false);
case "useAvnc" : return b ? G.prefs.getBool(key)! : (value){G.prefs.setBool(key, value); return value;}(true); case "useAvnc" : return b ? G.prefs.getBool(key)! : (value){G.prefs.setBool(key, value); return value;}(true);
@@ -122,7 +123,7 @@ class Util {
case "defaultFFmpegCommand" : return b ? G.prefs.getString(key)! : (value){G.prefs.setString(key, value); return value;}("-hide_banner -an -max_delay 1000000 -r 30 -f android_camera -camera_index 0 -i 0:0 -vf scale=iw/2:-1 -rtsp_transport udp -f rtsp rtsp://127.0.0.1:8554/stream"); case "defaultFFmpegCommand" : return b ? G.prefs.getString(key)! : (value){G.prefs.setString(key, value); return value;}("-hide_banner -an -max_delay 1000000 -r 30 -f android_camera -camera_index 0 -i 0:0 -vf scale=iw/2:-1 -rtsp_transport udp -f rtsp rtsp://127.0.0.1:8554/stream");
case "defaultVirglCommand" : return b ? G.prefs.getString(key)! : (value){G.prefs.setString(key, value); return value;}("--socket-path=\$CONTAINER_DIR/tmp/.virgl_test"); case "defaultVirglCommand" : return b ? G.prefs.getString(key)! : (value){G.prefs.setString(key, value); return value;}("--socket-path=\$CONTAINER_DIR/tmp/.virgl_test");
case "defaultVirglOpt" : return b ? G.prefs.getString(key)! : (value){G.prefs.setString(key, value); return value;}("GALLIUM_DRIVER=virpipe"); case "defaultVirglOpt" : return b ? G.prefs.getString(key)! : (value){G.prefs.setString(key, value); return value;}("GALLIUM_DRIVER=virpipe");
case "defaultTurnipOpt" : return b ? G.prefs.getString(key)! : (value){G.prefs.setString(key, value); return value;}("MESA_LOADER_DRIVER_OVERRIDE=zink VK_ICD_FILENAMES=/home/tiny/.local/share/tiny/extra/freedreno_icd.aarch64.json TU_DEBUG=noconform MESA_VK_WSI_DEBUG=sw"); case "defaultTurnipOpt" : return b ? G.prefs.getString(key)! : (value){G.prefs.setString(key, value); return value;}("MESA_LOADER_DRIVER_OVERRIDE=zink VK_ICD_FILENAMES=/home/tiny/.local/share/tiny/extra/freedreno_icd.aarch64.json TU_DEBUG=noconform");
case "defaultHidpiOpt" : return b ? G.prefs.getString(key)! : (value){G.prefs.setString(key, value); return value;}("GDK_SCALE=2 QT_FONT_DPI=192"); case "defaultHidpiOpt" : return b ? G.prefs.getString(key)! : (value){G.prefs.setString(key, value); return value;}("GDK_SCALE=2 QT_FONT_DPI=192");
case "containersInfo" : return G.prefs.getStringList(key)!; case "containersInfo" : return G.prefs.getStringList(key)!;
} }
@@ -385,7 +386,7 @@ VSCode、输入法
{"name":"安装科学计算软件Octave", "command":"sudo apt update && sudo apt install -y octave"}, {"name":"安装科学计算软件Octave", "command":"sudo apt update && sudo apt install -y octave"},
{"name":"卸载Octave", "command":"sudo apt autoremove --purge -y octave"}, {"name":"卸载Octave", "command":"sudo apt autoremove --purge -y octave"},
{"name":"安装WPS", "command":r"""cat << 'EOF' | sh && sudo dpkg --configure -a && sudo apt update && sudo apt install -y /tmp/wps.deb {"name":"安装WPS", "command":r"""cat << 'EOF' | sh && sudo dpkg --configure -a && sudo apt update && sudo apt install -y /tmp/wps.deb
wget https://mirrors.sdu.edu.cn/spark-store-repository/aarch64-store/office/wps-office/wps-office_11.1.0.11720_arm64.deb -O /tmp/wps.deb wget https://mirrors.sdu.edu.cn/spark-store-repository/aarch64-store/office/wps-office/wps-office_11.1.0.11720-fix1_arm64.deb -O /tmp/wps.deb
EOF EOF
rm /tmp/wps.deb"""}, rm /tmp/wps.deb"""},
{"name":"卸载WPS", "command":"sudo apt autoremove --purge -y wps-office"}, {"name":"卸载WPS", "command":"sudo apt autoremove --purge -y wps-office"},
@@ -646,6 +647,7 @@ done
"""); """);
//一些数据初始化 //一些数据初始化
//$DATA_DIR是数据文件夹, $CONTAINER_DIR是容器根目录 //$DATA_DIR是数据文件夹, $CONTAINER_DIR是容器根目录
//Termux:X11的启动命令并不在这里面而是写死了。这下成💩山代码了:P
await G.prefs.setStringList("containersInfo", ["""{ await G.prefs.setStringList("containersInfo", ["""{
"name":"Debian Bookworm", "name":"Debian Bookworm",
"boot":"${D.boot}", "boot":"${D.boot}",
@@ -757,6 +759,9 @@ ${G.dataPath}/bin/virgl_test_server ${Util.getGlobal("defaultVirglCommand")}""")
} }
if (Util.getGlobal("turnip")) { if (Util.getGlobal("turnip")) {
extraOpt += "${Util.getGlobal("defaultTurnipOpt")} "; extraOpt += "${Util.getGlobal("defaultTurnipOpt")} ";
if (!(Util.getGlobal("dri3"))) {
extraOpt += "MESA_VK_WSI_DEBUG=sw ";
}
} }
if (Util.getGlobal("isBoxEnabled")) { if (Util.getGlobal("isBoxEnabled")) {
G.wasBoxEnabled = true; G.wasBoxEnabled = true;
@@ -793,7 +798,7 @@ export PROOT_LOADER=\$DATA_DIR/libexec/proot/loader
export PROOT_LOADER_32=\$DATA_DIR/libexec/proot/loader32 export PROOT_LOADER_32=\$DATA_DIR/libexec/proot/loader32
${Util.getCurrentProp("boot")} ${Util.getCurrentProp("boot")}
${G.postCommand} ${G.postCommand}
${(Util.getGlobal("autoLaunchVnc") as bool)?((Util.getGlobal("useX11") as bool)?"/etc/X11/xinit/Xsession &":Util.getCurrentProp("vnc")):""} ${(Util.getGlobal("autoLaunchVnc") as bool)?((Util.getGlobal("useX11") as bool)?"bash /etc/X11/xinit/Xsession &>~/.vnc/x.log &":Util.getCurrentProp("vnc")):""}
clear"""); clear""");
} }

View File

@@ -14,6 +14,7 @@ import path_provider_foundation
import shared_preferences_foundation import shared_preferences_foundation
import url_launcher_macos import url_launcher_macos
import wakelock_plus import wakelock_plus
import webview_flutter_wkwebview
func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
DeviceInfoPlusMacosPlugin.register(with: registry.registrar(forPlugin: "DeviceInfoPlusMacosPlugin")) DeviceInfoPlusMacosPlugin.register(with: registry.registrar(forPlugin: "DeviceInfoPlusMacosPlugin"))
@@ -25,4 +26,5 @@ func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin")) SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin"))
UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin")) UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin"))
WakelockPlusMacosPlugin.register(with: registry.registrar(forPlugin: "WakelockPlusMacosPlugin")) WakelockPlusMacosPlugin.register(with: registry.registrar(forPlugin: "WakelockPlusMacosPlugin"))
FLTWebViewFlutterPlugin.register(with: registry.registrar(forPlugin: "FLTWebViewFlutterPlugin"))
} }

View File

@@ -162,18 +162,10 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: flutter_pty name: flutter_pty
sha256: "08b6f37a4f394159e3a6adb6f07295e6fb6acb71270c87a4d0be187db34535cd" sha256: "0a8429900118482e97336ce3ef888e47044d7277829c463e00a680ebe69181b3"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.4.0" version: "0.4.1"
flutter_speed_dial:
dependency: "direct main"
description:
name: flutter_speed_dial
sha256: "698a037274a66dbae8697c265440e6acb6ab6cae9ac5f95c749e7944d8f28d41"
url: "https://pub.dev"
source: hosted
version: "7.0.0"
flutter_test: flutter_test:
dependency: "direct dev" dependency: "direct dev"
description: flutter description: flutter
@@ -388,18 +380,18 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: permission_handler_html name: permission_handler_html
sha256: d220eb8476b466d58b161e10b3001d93999010a26228a3fb89c4280db1249546 sha256: af26edbbb1f2674af65a8f4b56e1a6f526156bc273d0e65dd8075fab51c78851
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.1.3+1" version: "0.1.3+2"
permission_handler_platform_interface: permission_handler_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: permission_handler_platform_interface name: permission_handler_platform_interface
sha256: fe0ffe274d665be8e34f9c59705441a7d248edebbe5d9e3ec2665f88b79358ea sha256: e9c8eadee926c4532d0305dff94b85bf961f16759c3af791486613152af4b4f9
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "4.2.2" version: "4.2.3"
permission_handler_windows: permission_handler_windows:
dependency: transitive dependency: transitive
description: description:
@@ -436,10 +428,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: quiver name: quiver
sha256: b1c1ac5ce6688d77f65f3375a9abb9319b3cb32486bdc7a1e0fdf004d7ba4e47 sha256: ea0b925899e64ecdfbf9c7becb60d5b50e706ade44a85b2363be2a22d88117d2
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.2.1" version: "3.2.2"
retry: retry:
dependency: "direct main" dependency: "direct main"
description: description:
@@ -460,10 +452,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: shared_preferences_android name: shared_preferences_android
sha256: a7e8467e9181cef109f601e3f65765685786c1a738a83d7fbbde377589c0d974 sha256: "480ba4345773f56acda9abf5f50bd966f581dac5d514e5fc4a18c62976bbba7e"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.3.1" version: "2.3.2"
shared_preferences_foundation: shared_preferences_foundation:
dependency: transitive dependency: transitive
description: description:
@@ -577,10 +569,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: url_launcher_android name: url_launcher_android
sha256: f0c73347dfcfa5b3db8bc06e1502668265d39c08f310c29bff4e28eea9699f79 sha256: e35a698ac302dd68e41f73250bd9517fe3ab5fa4f18fe4647a0872db61bacbab
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "6.3.9" version: "6.3.10"
url_launcher_ios: url_launcher_ios:
dependency: transitive dependency: transitive
description: description:
@@ -673,18 +665,18 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: webview_flutter name: webview_flutter
sha256: "6869c8786d179f929144b4a1f86e09ac0eddfe475984951ea6c634774c16b522" sha256: ec81f57aa1611f8ebecf1d2259da4ef052281cb5ad624131c93546c79ccc7736
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "4.8.0" version: "4.9.0"
webview_flutter_android: webview_flutter_android:
dependency: transitive dependency: transitive
description: description:
name: webview_flutter_android name: webview_flutter_android
sha256: c66651fba15f9d7ddd31daec42da8d6bce46c85610a7127e3ebcb39a4395c3c9 sha256: "6e64fcb1c19d92024da8f33503aaeeda35825d77142c01d0ea2aa32edc79fdc8"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.16.6" version: "3.16.7"
webview_flutter_platform_interface: webview_flutter_platform_interface:
dependency: transitive dependency: transitive
description: description:
@@ -697,10 +689,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: webview_flutter_wkwebview name: webview_flutter_wkwebview
sha256: "9c62cc46fa4f2d41e10ab81014c1de470a6c6f26051a2de32111b2ee55287feb" sha256: "1942a12224ab31e9508cf00c0c6347b931b023b8a4f0811e5dec3b06f94f117d"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.14.0" version: "3.15.0"
win32: win32:
dependency: transitive dependency: transitive
description: description:
@@ -713,10 +705,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: win32_registry name: win32_registry
sha256: "723b7f851e5724c55409bb3d5a32b203b3afe8587eaf5dafb93a5fed8ecda0d6" sha256: "21ec76dfc731550fd3e2ce7a33a9ea90b828fdf19a5c3bcf556fa992cfa99852"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.1.4" version: "1.1.5"
xdg_directories: xdg_directories:
dependency: transitive dependency: transitive
description: description:
@@ -750,5 +742,5 @@ packages:
source: hosted source: hosted
version: "0.0.6" version: "0.0.6"
sdks: sdks:
dart: ">=3.4.0 <4.0.0" dart: ">=3.5.0 <4.0.0"
flutter: ">=3.22.0" flutter: ">=3.24.0"

View File

@@ -31,21 +31,20 @@ dependencies:
flutter: flutter:
sdk: flutter sdk: flutter
xterm: ^4.0.0 xterm: ^4.0.0
flutter_pty: ^0.4.0 flutter_pty: ^0.4.1
path_provider: ^2.1.2 path_provider: ^2.1.4
webview_flutter: ^4.8.0 webview_flutter: ^4.9.0
permission_handler: ^11.3.1 permission_handler: ^11.3.1
http: ^1.2.2 http: ^1.2.2
retry: ^3.1.2 retry: ^3.1.2
url_launcher: ^6.3.0 url_launcher: ^6.3.0
shared_preferences: ^2.2.3 shared_preferences: ^2.3.2
intl: ^0.19.0 #日期字符串转换 intl: ^0.19.0 #日期字符串转换
clipboard: ^0.1.3 clipboard: ^0.1.3
ffmpeg_kit_flutter_full_gpl: ^6.0.3 ffmpeg_kit_flutter_full_gpl: ^6.0.3
wakelock_plus: ^1.2.7 wakelock_plus: ^1.2.8
dynamic_color: ^1.7.0 dynamic_color: ^1.7.0
flutter_speed_dial: ^7.0.0 network_info_plus: ^6.0.1
network_info_plus: ^6.0.0
device_info_plus: ^10.1.2 device_info_plus: ^10.1.2
# The following adds the Cupertino Icons font to your application. # The following adds the Cupertino Icons font to your application.