🐛 fix #333, fix #327

This commit is contained in:
muwoo 2023-12-27 11:34:55 +08:00
parent 583e9934fa
commit a0644c0ccf
11 changed files with 35 additions and 105 deletions

View File

@ -5864,7 +5864,7 @@ lodash.memoize@^4.1.2:
lodash.throttle@^4.1.1: lodash.throttle@^4.1.1:
version "4.1.1" version "4.1.1"
resolved "https://registry.yarnpkg.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4" resolved "https://registry.npmmirror.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4"
integrity sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ== integrity sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==
lodash.transform@^4.6.0: lodash.transform@^4.6.0:

View File

@ -283,14 +283,15 @@ state.local = perf.local;
state.global = defaultGlobal; state.global = defaultGlobal;
const setConfig = debounce(() => { const setConfig = debounce(() => {
const { perf } = localConfig.getConfig();
localConfig.setConfig( localConfig.setConfig(
JSON.parse( JSON.parse(
JSON.stringify({ JSON.stringify({
perf: { perf: {
...perf,
shortCut: state.shortCut, shortCut: state.shortCut,
common: state.common, common: state.common,
local: state.local, local: state.local,
custom: state.custom,
}, },
global: state.global, global: state.global,
}) })

View File

@ -64,6 +64,8 @@ const theme = ref(perf.custom.theme);
state.custom = perf.custom || {}; state.custom = perf.custom || {};
const setConfig = debounce(() => { const setConfig = debounce(() => {
const { perf } = localConfig.getConfig();
localConfig.setConfig( localConfig.setConfig(
JSON.parse( JSON.parse(
JSON.stringify({ JSON.stringify({

View File

@ -1,6 +1,6 @@
{ {
"name": "rubick", "name": "rubick",
"version": "4.2.0-beta.1", "version": "4.2.1",
"author": "muwoo <2424880409@qq.com>", "author": "muwoo <2424880409@qq.com>",
"private": true, "private": true,
"scripts": { "scripts": {

Binary file not shown.

BIN
public/icons/shield@2x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 828 B

View File

@ -32,63 +32,6 @@ const getIconFile = (appFileInput) => {
}); });
}; };
// const sortIcons = (icons) => {
// const aWins = -1;
// const bWins = 1;
// const catWins = 0;
// return icons.sort((a, b) => {
// const aSize = parseInt(a.match(/(\d+)x\1/)[1], 10);
// const bSize = parseInt(b.match(/(\d+)x\1/)[1], 10);
// if (aSize === bSize) {
// if (a.indexOf('@2x') > -1) return aWins;
// if (b.indexOf('@2x') > -1) return bWins;
// return catWins;
// }
// if (aSize > bSize) return aWins;
// if (aSize < bSize) return bWins;
// return catWins;
// });
// };
// const icnsToPng = (iconFile, pngFileOutput) => {
// const outputDir = pngFileOutput.split('.')[0] + '.iconset'
// return new Promise((resolve, reject) => {
// exec(`iconutil --convert iconset '${iconFile}' --output '${outputDir}'`, (error) => {
// if (error) return reject(error)
// fs.readdir(outputDir, (error, files) => {
// if (error) {
// return resolve(tiffToPng(iconFile, pngFileOutput))
// }
// const realIcons = files.map((file) => {
// return path.join(outputDir, file)
// })
// const biggestIcon = sortIcons(realIcons).find(Boolean)
// fs.rename(biggestIcon, pngFileOutput, (error) => {
// error ? reject(error) : resolve(realIcons.filter((file) => {
// return file !== biggestIcon
// }))
// })
// })
// })
// }).then((files) => {
// // Cleanup temp icons
// return Promise.all(files.map((file) => {
// return new Promise((resolve, reject) => {
// fs.unlink(file, (error) => {
// error ? reject(error) : resolve()
// })
// })
// }))
// }).then(() => {
// // Cleanup temp directory
// return new Promise((resolve, reject) => {
// fs.rmdir(outputDir, (error) => {
// error ? reject(error) : resolve()
// })
// })
// })
// }
const tiffToPng = (iconFile, pngFileOutput) => { const tiffToPng = (iconFile, pngFileOutput) => {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
exec( exec(

View File

@ -1,23 +1,23 @@
import { spawn } from "child_process"; import { spawn } from 'child_process';
import plist from "plist"; import plist from 'plist';
export default function getApps(resolve, reject, filterByAppName = false) { export default function getApps(resolve, reject, filterByAppName = false) {
// eslint-disable-next-line @typescript-eslint/ban-ts-comment // eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore // @ts-ignore
let resultBuffer = new Buffer.from([]); let resultBuffer = new Buffer.from([]);
const profileInstalledApps = spawn("/usr/sbin/system_profiler", [ const profileInstalledApps = spawn('/usr/sbin/system_profiler', [
"-xml", '-xml',
"-detailLevel", '-detailLevel',
"mini", 'mini',
"SPApplicationsDataType", 'SPApplicationsDataType',
]); ]);
profileInstalledApps.stdout.on("data", (chunckBuffer) => { profileInstalledApps.stdout.on('data', (chunckBuffer) => {
resultBuffer = Buffer.concat([resultBuffer, chunckBuffer]); resultBuffer = Buffer.concat([resultBuffer, chunckBuffer]);
}); });
profileInstalledApps.on("exit", (exitCode) => { profileInstalledApps.on('exit', (exitCode) => {
if (exitCode !== 0) { if (exitCode !== 0) {
reject([]); reject([]);
return; return;
@ -37,7 +37,7 @@ export default function getApps(resolve, reject, filterByAppName = false) {
} }
}); });
profileInstalledApps.on("error", (err) => { profileInstalledApps.on('error', (err) => {
reject(err); reject(err);
}); });
} }

View File

@ -61,7 +61,7 @@ class AdapterHandler {
const packageJSON = JSON.parse( const packageJSON = JSON.parse(
fs.readFileSync(`${this.baseDir}/package.json`, 'utf-8') fs.readFileSync(`${this.baseDir}/package.json`, 'utf-8')
); );
const registryUrl = `https://registry.npm.taobao.org/${name}`; const registryUrl = `${this.registry}${name}`;
// 从npm源中获取依赖包的最新版本 // 从npm源中获取依赖包的最新版本
try { try {
@ -185,40 +185,6 @@ class AdapterHandler {
console.log(message); console.log(message);
}); });
}); });
// if (cmd !== 'link') {
// args = args
// .concat('--color=always')
// .concat('--save')
// .concat(`--registry=${this.registry}`);
// }
// const npm = spawn('npm', args, {
// cwd: this.baseDir,
// });
//
// console.log(args);
//
// let output = '';
// npm.stdout
// .on('data', (data: string) => {
// output += data; // 获取输出日志
// })
// .pipe(process.stdout);
//
// npm.stderr
// .on('data', (data: string) => {
// output += data; // 获取报错日志
// })
// .pipe(process.stderr);
//
// npm.on('close', (code: number) => {
// if (!code) {
// resolve({ code: 0, data: output }); // 如果没有报错就输出正常日志
// } else {
// reject({ code: code, data: output }); // 如果报错就输出报错日志
// }
// });
}); });
} }
} }

View File

@ -139,6 +139,7 @@ class API extends DBInstance {
public hideMainWindow(arg, window) { public hideMainWindow(arg, window) {
window.hide(); window.hide();
} }
public showMainWindow(arg, window) { public showMainWindow(arg, window) {
window.show(); window.show();
} }
@ -156,6 +157,15 @@ class API extends DBInstance {
if (!originWindow) return; if (!originWindow) return;
const targetHeight = height; const targetHeight = height;
originWindow.setSize(originWindow.getSize()[0], targetHeight); originWindow.setSize(originWindow.getSize()[0], targetHeight);
const screenPoint = screen.getCursorScreenPoint();
const display = screen.getDisplayNearestPoint(screenPoint);
const position =
originWindow.getPosition()[1] + targetHeight > display.bounds.height
? height - 60
: 0;
originWindow.webContents.executeJavaScript(
`window.setPosition && typeof window.setPosition === "function" && window.setPosition(${position})`
);
} }
public setSubInput({ data }, window, e) { public setSubInput({ data }, window, e) {
@ -326,6 +336,7 @@ class API extends DBInstance {
shell.showItemInFolder(data.path); shell.showItemInFolder(data.path);
return true; return true;
} }
public async getFileIcon({ data }) { public async getFileIcon({ data }) {
const nativeImage = await app.getFileIcon(data.path, { size: 'normal' }); const nativeImage = await app.getFileIcon(data.path, { size: 'normal' });
return nativeImage.toDataURL(); return nativeImage.toDataURL();

View File

@ -35,6 +35,7 @@
<script setup lang="ts"> <script setup lang="ts">
import { watch, ref, toRaw } from 'vue'; import { watch, ref, toRaw } from 'vue';
import { exec } from 'child_process';
import Result from './components/result.vue'; import Result from './components/result.vue';
import Search from './components/search.vue'; import Search from './components/search.vue';
import getWindowHeight from '../common/utils/getWindowHeight'; import getWindowHeight from '../common/utils/getWindowHeight';
@ -142,6 +143,12 @@ const choosePlugin = (plugin) => {
const localPlugins = getGlobal('LOCAL_PLUGINS').getLocalPlugins(); const localPlugins = getGlobal('LOCAL_PLUGINS').getLocalPlugins();
const currentChoose = plugin || pluginHistory.value[currentSelect.value]; const currentChoose = plugin || pluginHistory.value[currentSelect.value];
let hasRemove = true; let hasRemove = true;
if (currentChoose.pluginType === 'app') {
hasRemove = false;
changePluginHistory(currentChoose);
exec(currentChoose.action);
return;
}
localPlugins.find((plugin) => { localPlugins.find((plugin) => {
if (plugin.name === currentChoose.originName) { if (plugin.name === currentChoose.originName) {
hasRemove = false; hasRemove = false;