mirror of
https://github.com/Cateners/tiny_computer.git
synced 2026-05-20 08:35:46 +08:00
some fix, dri3, wps, readme, ...
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -39,6 +39,7 @@ app.*.symbols
|
||||
app.*.map.json
|
||||
|
||||
# Android Studio will place build artifacts here
|
||||
/android/app/build
|
||||
/android/app/debug
|
||||
/android/app/profile
|
||||
/android/app/release
|
||||
|
||||
12
README.md
12
README.md
@@ -4,7 +4,7 @@
|
||||
|
||||
给所有安卓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环境
|
||||
|
||||
内置[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。
|
||||
|
||||
`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`
|
||||
|
||||
有一些C代码可能报错。比如KeyBind.c等文件,报错一些符号未定义。但其实包含那些符号的函数并没有被使用,所以可以把它们删掉再编译。
|
||||
应该有编译选项可以避免这种情况,但我对cmake不熟,就先这样了:P
|
||||
|
||||
## 目前已知bug
|
||||
|
||||
多用户/分身情形无法sudo, 其它见issue
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -37,7 +37,7 @@ import com.example.tiny_computer.BuildConfig;
|
||||
@Keep @SuppressLint({"StaticFieldLeak", "UnsafeDynamicallyLoadedCode"})
|
||||
public class CmdEntryPoint extends ICmdEntryInterface.Stub {
|
||||
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();
|
||||
private static final Handler handler;
|
||||
public static Context ctx;
|
||||
|
||||
@@ -736,9 +736,28 @@ public class LoriePreferences extends AppCompatActivity implements PreferenceFra
|
||||
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) {
|
||||
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++) {
|
||||
int type = typedArray.getType(i);
|
||||
if (type == TypedValue.TYPE_STRING) {
|
||||
@@ -748,11 +767,12 @@ public class LoriePreferences extends AppCompatActivity implements PreferenceFra
|
||||
itemList.addAll(Arrays.asList(resources.getStringArray(resIdOfArray)));
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
typedArray.recycle();
|
||||
}
|
||||
|
||||
Object[] objectArray = itemList.toArray();
|
||||
return Arrays.copyOf(objectArray, objectArray.length, String[].class);
|
||||
return itemList.toArray(new String[0]);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -85,7 +85,7 @@ public class MainActivity extends AppCompatActivity implements View.OnApplyWindo
|
||||
protected ICmdEntryInterface service = null;
|
||||
public TermuxX11ExtraKeys mExtraKeys;
|
||||
private Notification mNotification;
|
||||
private final int mNotificationId = 7892;
|
||||
private final int mNotificationId = 7897;
|
||||
NotificationManager mNotificationManager;
|
||||
static InputMethodManager inputMethodManager;
|
||||
private static boolean showIMEWhileExternalConnected = true;
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
<PreferenceScreen app:key="kbd">
|
||||
<SwitchPreferenceCompat app:key="showAdditionalKbd" app:defaultValue="true" />
|
||||
<!-- 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="preferScancodes" app:defaultValue="false" />
|
||||
<SwitchPreferenceCompat app:key="hardwareKbdScancodesWorkaround" app:defaultValue="true" />
|
||||
|
||||
247
extra/cross/chn_fonts.reg
Normal file
247
extra/cross/chn_fonts.reg
Normal 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"
|
||||
@@ -29,6 +29,10 @@ linux在需要数据时,使用socket通知位于安卓的getifaddrs_bridge_ser
|
||||
|
||||
这些是用于跨架构/跨系统支持的box86/box64和wine安装脚本。
|
||||
|
||||
#### extra/chn_fonts.reg, extra/XiaolaiMonoSC-Regular.ttf:
|
||||
|
||||
修复wine显示方块字的注册表文件和[小赖字体](https://github.com/lxgw/kose-font)。
|
||||
|
||||
#### caj, edraw
|
||||
|
||||
这些分别是cajviewer,亿图图示的补丁
|
||||
|
||||
@@ -28,7 +28,6 @@ import 'package:clipboard/clipboard.dart';
|
||||
import 'package:dynamic_color/dynamic_color.dart';
|
||||
import 'package:flutter/gestures.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:permission_handler/permission_handler.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 SizedBox.square(dimension: 16),
|
||||
const Text("""Termux X11可以带来比VNC更快的速度,某些情况下兼容性也会更好。这是一个实验性功能。
|
||||
支持使用DRI3(需在图形加速中开启),可以带来相当大的性能提升。
|
||||
随着版本的迭代,Termux X11如今也支持了双向剪切板等功能。"""),
|
||||
const SizedBox.square(dimension: 16),
|
||||
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", {});
|
||||
}),
|
||||
]),
|
||||
const SizedBox.square(dimension: 8),
|
||||
SwitchListTile(title: const Text("默认使用Termux X11"), subtitle: const Text("不使用VNC。重启生效"), value: Util.getGlobal("useX11") as bool, onChanged:(value) {
|
||||
G.prefs.setBool("useX11", value);
|
||||
if (!value && Util.getGlobal("dri3")) {
|
||||
G.prefs.setBool("dri3", false);
|
||||
}
|
||||
setState(() {});
|
||||
},),
|
||||
const SizedBox.square(dimension: 16),
|
||||
@@ -517,6 +520,22 @@ Virgl可为使用OpenGL ES的应用提供加速。"""),
|
||||
const SizedBox.square(dimension: 8),
|
||||
SwitchListTile(title: const Text("启用Turnip+Zink驱动"), subtitle: const Text("下次启动时生效"), value: Util.getGlobal("turnip") as bool, onChanged:(value) async {
|
||||
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(() {});
|
||||
},),
|
||||
const SizedBox.square(dimension: 16),
|
||||
|
||||
@@ -115,6 +115,7 @@ class Util {
|
||||
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 "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 "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);
|
||||
@@ -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 "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 "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 "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 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
|
||||
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
|
||||
rm /tmp/wps.deb"""},
|
||||
{"name":"卸载WPS", "command":"sudo apt autoremove --purge -y wps-office"},
|
||||
@@ -646,6 +647,7 @@ done
|
||||
""");
|
||||
//一些数据初始化
|
||||
//$DATA_DIR是数据文件夹, $CONTAINER_DIR是容器根目录
|
||||
//Termux:X11的启动命令并不在这里面,而是写死了。这下成💩山代码了:P
|
||||
await G.prefs.setStringList("containersInfo", ["""{
|
||||
"name":"Debian Bookworm",
|
||||
"boot":"${D.boot}",
|
||||
@@ -757,6 +759,9 @@ ${G.dataPath}/bin/virgl_test_server ${Util.getGlobal("defaultVirglCommand")}""")
|
||||
}
|
||||
if (Util.getGlobal("turnip")) {
|
||||
extraOpt += "${Util.getGlobal("defaultTurnipOpt")} ";
|
||||
if (!(Util.getGlobal("dri3"))) {
|
||||
extraOpt += "MESA_VK_WSI_DEBUG=sw ";
|
||||
}
|
||||
}
|
||||
if (Util.getGlobal("isBoxEnabled")) {
|
||||
G.wasBoxEnabled = true;
|
||||
@@ -793,7 +798,7 @@ export PROOT_LOADER=\$DATA_DIR/libexec/proot/loader
|
||||
export PROOT_LOADER_32=\$DATA_DIR/libexec/proot/loader32
|
||||
${Util.getCurrentProp("boot")}
|
||||
${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""");
|
||||
}
|
||||
|
||||
|
||||
@@ -14,6 +14,7 @@ import path_provider_foundation
|
||||
import shared_preferences_foundation
|
||||
import url_launcher_macos
|
||||
import wakelock_plus
|
||||
import webview_flutter_wkwebview
|
||||
|
||||
func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
|
||||
DeviceInfoPlusMacosPlugin.register(with: registry.registrar(forPlugin: "DeviceInfoPlusMacosPlugin"))
|
||||
@@ -25,4 +26,5 @@ func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
|
||||
SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin"))
|
||||
UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin"))
|
||||
WakelockPlusMacosPlugin.register(with: registry.registrar(forPlugin: "WakelockPlusMacosPlugin"))
|
||||
FLTWebViewFlutterPlugin.register(with: registry.registrar(forPlugin: "FLTWebViewFlutterPlugin"))
|
||||
}
|
||||
|
||||
52
pubspec.lock
52
pubspec.lock
@@ -162,18 +162,10 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: flutter_pty
|
||||
sha256: "08b6f37a4f394159e3a6adb6f07295e6fb6acb71270c87a4d0be187db34535cd"
|
||||
sha256: "0a8429900118482e97336ce3ef888e47044d7277829c463e00a680ebe69181b3"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.4.0"
|
||||
flutter_speed_dial:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: flutter_speed_dial
|
||||
sha256: "698a037274a66dbae8697c265440e6acb6ab6cae9ac5f95c749e7944d8f28d41"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "7.0.0"
|
||||
version: "0.4.1"
|
||||
flutter_test:
|
||||
dependency: "direct dev"
|
||||
description: flutter
|
||||
@@ -388,18 +380,18 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: permission_handler_html
|
||||
sha256: d220eb8476b466d58b161e10b3001d93999010a26228a3fb89c4280db1249546
|
||||
sha256: af26edbbb1f2674af65a8f4b56e1a6f526156bc273d0e65dd8075fab51c78851
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.1.3+1"
|
||||
version: "0.1.3+2"
|
||||
permission_handler_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: permission_handler_platform_interface
|
||||
sha256: fe0ffe274d665be8e34f9c59705441a7d248edebbe5d9e3ec2665f88b79358ea
|
||||
sha256: e9c8eadee926c4532d0305dff94b85bf961f16759c3af791486613152af4b4f9
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "4.2.2"
|
||||
version: "4.2.3"
|
||||
permission_handler_windows:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -436,10 +428,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: quiver
|
||||
sha256: b1c1ac5ce6688d77f65f3375a9abb9319b3cb32486bdc7a1e0fdf004d7ba4e47
|
||||
sha256: ea0b925899e64ecdfbf9c7becb60d5b50e706ade44a85b2363be2a22d88117d2
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.2.1"
|
||||
version: "3.2.2"
|
||||
retry:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
@@ -460,10 +452,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: shared_preferences_android
|
||||
sha256: a7e8467e9181cef109f601e3f65765685786c1a738a83d7fbbde377589c0d974
|
||||
sha256: "480ba4345773f56acda9abf5f50bd966f581dac5d514e5fc4a18c62976bbba7e"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.3.1"
|
||||
version: "2.3.2"
|
||||
shared_preferences_foundation:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -577,10 +569,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: url_launcher_android
|
||||
sha256: f0c73347dfcfa5b3db8bc06e1502668265d39c08f310c29bff4e28eea9699f79
|
||||
sha256: e35a698ac302dd68e41f73250bd9517fe3ab5fa4f18fe4647a0872db61bacbab
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "6.3.9"
|
||||
version: "6.3.10"
|
||||
url_launcher_ios:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -673,18 +665,18 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: webview_flutter
|
||||
sha256: "6869c8786d179f929144b4a1f86e09ac0eddfe475984951ea6c634774c16b522"
|
||||
sha256: ec81f57aa1611f8ebecf1d2259da4ef052281cb5ad624131c93546c79ccc7736
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "4.8.0"
|
||||
version: "4.9.0"
|
||||
webview_flutter_android:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: webview_flutter_android
|
||||
sha256: c66651fba15f9d7ddd31daec42da8d6bce46c85610a7127e3ebcb39a4395c3c9
|
||||
sha256: "6e64fcb1c19d92024da8f33503aaeeda35825d77142c01d0ea2aa32edc79fdc8"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.16.6"
|
||||
version: "3.16.7"
|
||||
webview_flutter_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -697,10 +689,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: webview_flutter_wkwebview
|
||||
sha256: "9c62cc46fa4f2d41e10ab81014c1de470a6c6f26051a2de32111b2ee55287feb"
|
||||
sha256: "1942a12224ab31e9508cf00c0c6347b931b023b8a4f0811e5dec3b06f94f117d"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.14.0"
|
||||
version: "3.15.0"
|
||||
win32:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -713,10 +705,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: win32_registry
|
||||
sha256: "723b7f851e5724c55409bb3d5a32b203b3afe8587eaf5dafb93a5fed8ecda0d6"
|
||||
sha256: "21ec76dfc731550fd3e2ce7a33a9ea90b828fdf19a5c3bcf556fa992cfa99852"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.1.4"
|
||||
version: "1.1.5"
|
||||
xdg_directories:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -750,5 +742,5 @@ packages:
|
||||
source: hosted
|
||||
version: "0.0.6"
|
||||
sdks:
|
||||
dart: ">=3.4.0 <4.0.0"
|
||||
flutter: ">=3.22.0"
|
||||
dart: ">=3.5.0 <4.0.0"
|
||||
flutter: ">=3.24.0"
|
||||
|
||||
13
pubspec.yaml
13
pubspec.yaml
@@ -31,21 +31,20 @@ dependencies:
|
||||
flutter:
|
||||
sdk: flutter
|
||||
xterm: ^4.0.0
|
||||
flutter_pty: ^0.4.0
|
||||
path_provider: ^2.1.2
|
||||
webview_flutter: ^4.8.0
|
||||
flutter_pty: ^0.4.1
|
||||
path_provider: ^2.1.4
|
||||
webview_flutter: ^4.9.0
|
||||
permission_handler: ^11.3.1
|
||||
http: ^1.2.2
|
||||
retry: ^3.1.2
|
||||
url_launcher: ^6.3.0
|
||||
shared_preferences: ^2.2.3
|
||||
shared_preferences: ^2.3.2
|
||||
intl: ^0.19.0 #日期字符串转换
|
||||
clipboard: ^0.1.3
|
||||
ffmpeg_kit_flutter_full_gpl: ^6.0.3
|
||||
wakelock_plus: ^1.2.7
|
||||
wakelock_plus: ^1.2.8
|
||||
dynamic_color: ^1.7.0
|
||||
flutter_speed_dial: ^7.0.0
|
||||
network_info_plus: ^6.0.0
|
||||
network_info_plus: ^6.0.1
|
||||
device_info_plus: ^10.1.2
|
||||
|
||||
# The following adds the Cupertino Icons font to your application.
|
||||
|
||||
Reference in New Issue
Block a user