Electron:linux 在系统启动时启动

问题描述 投票:0回答:3

这是一个适用于 Linux 的 Electron 应用程序。

main.js

const electron = require("electron");
const app = electron.app;
const browserWindow = electron.BrowserWindow;
const path = require("path");
const url = require("url");
let win;

function createWindow() {
    win = new browserWindow({width: 800, height: 600});
    win.loadURL(url.format({
        pathname : path.join(__dirname,"index.html"),
        protocol : "file",
        slashes : true ,
    }));
    win.on("closed", () => {win = null;})
}

app.on("ready", createWindow);

app.on("window-all-closed", () => {
    if(prcess.platform !== "darwin")
        app.quit()
});

app.on ("activate", ()=> {
    if(win == null)
        createWindow()
});

我通过

npm start
在 Linux 中启动应用程序。

问题:

i) 如何在启动时自动启动它?

ii)要实现哪部分代码?

linux electron autostart
3个回答
5
投票

要在会话启动时在 Linux 中自动运行文件,请创建一个桌面条目文件 (fileName.desktop)

[Desktop Entry]
Name= app_name
Comment= comment_optional
Icon= app_icon
Exec= your file path 
Terminal=false
Type=Application

将其保存在

/.config/autostart/
/etc/xdg/autostart/

然后该文件将在系统启动时自动运行。


0
投票

我不认为你可以在 Linux 中以编程方式在启动时启动应用程序

替代方法是

  1. 添加启动脚本,在您登录时启动应用程序

  2. 创建一个 systemd 服务文件,该文件将在启动期间启动应用程序

https://www.howtoing.com/auto-execute-linux-scripts-during-reboot-or-startup/amp/

此站点提供了创建脚本的示例(https://developer.toradex.com/knowledge-base/how-to-autorun-application-at-the-start-up-in-linux#LXSession_Autostart_File )

此站点提供了在电子中创建文件的示例(https://ourcodeworld.com/articles/read/106/how-to-choose-read-save-delete-or-create-a-file-with-electron -框架

首次安装时,您可以通过 Electron 应用手动创建一个文件,然后将脚本内容写入该文件

喜欢

file.create(/etc/xdg/autostart/.desktop)

file.write("[桌面条目]

名称=LXTerminal

类型=应用

执行=lxterminal

终端=假 ”)

或者你可以使用 https://www.npmjs.com/package/auto-launch

如果您仍然遇到问题,那么您可以通过自动启动模块并在代码中实现自动启动部分


0
投票

刚刚遇到同样的问题。
用下一段代码解决了它。
它仅适用于 APPIMAGE,如果您需要它作为独立解决方案,您可以使用 `constexecutablePath = app.getPath('exe') 作为文件路径。

import createDesktopShortcut from "create-desktop-shortcuts";
// ...
if (os.platform() == "linux" && process.env.APPIMAGE) {
  const shortcutsCreated = createDesktopShortcut({
    linux: { 
      filePath: process.env.APPIMAGE, 
      name: APP_NAME, 
      outputPath: "~/.config/autostart/" 
    },
  });
}

我正在存储自动启动的桌面快捷方式...
另外,我认为如果您在运行时,您可以将图标复制到目标文件夹并链接到它们

© www.soinside.com 2019 - 2024. All rights reserved.