AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / ubuntu / Perguntas / 1160626
Accepted
James Newton
James Newton
Asked: 2019-07-24 23:39:54 +0800 CST2019-07-24 23:39:54 +0800 CST 2019-07-24 23:39:54 +0800 CST

Como usar um arquivo .desktop para iniciar um aplicativo node.js

  • 772

No Ubuntu 16.04, eu (eventualmente) quero soltar um arquivo de texto em um ícone da área de trabalho e executar um aplicativo Node.js, tratando o arquivo descartado e gerando um novo arquivo.

Eu descobri .desktoparquivos e estou fazendo o meu melhor para entender como fazer o processo funcionar, usando uma configuração básica. Atualmente, tenho três arquivos: dois arquivos em um diretório em /home/blackslate/Utilities/e um na minha área de trabalho.

Arquivos de utilitários

Um arquivo de texto chamado convert.js:

const fs = require('fs');
const crypto = require('crypto');
const random = crypto.randomBytes(4).toString('hex');
const filename = random + '.txt'

fs.appendFile(filename, 'Hello ' + random + '!', function (err) {
  if (err) throw err;
  console.log(filename + ' saved');
});

Um arquivo executável chamado convert.sh:

#!/bin/sh
node ./convert.js

gnome-terminal -e "bash -c 'echo hello world; sleep 3'"

Arquivo da área de trabalho

Um arquivo executável chamado convert.desktop:

[Desktop Entry]
Exec=gnome-terminal -e "/home/blackslate/Utilities/convert.sh \"%u\""
Icon=utilities-terminal
Type=Application
Name=Convert

Aqui está o que acontece:

  1. Se eu ligar node ./convert.jsde uma janela do Terminal, vejo que:

    • Um novo arquivo é criado e seu nome é mostrado na janela Terminal
  2. Se eu ligar ./convert.shde uma janela do Terminal, vejo que:

    • Um novo arquivo é criado e seu nome é mostrado na mesma janela do Terminal
    • Uma segunda janela do Terminal é aberta e diz hello worldantes de fechar 3 segundos depois
  3. Se eu clicar no arquivo da área de trabalho Converter, vejo que:

    • Uma janela do Terminal é aberta, mostrando um monte de texto e, em seguida, fecha imediatamente
    • Uma segunda janela do Terminal é aberta e diz hello worldantes de fechar 3 segundos depois
    • Nenhum novo arquivo de texto é criado

É óbvio que o segundo comando no convert.sharquivo está sendo executado, mas parece que algo está errado com o primeiro. Que passos posso tomar para depurar e corrigir isso?

bash .desktop nodejs
  • 1 1 respostas
  • 990 Views

1 respostas

  • Voted
  1. Best Answer
    cmak.fr
    2019-07-24T23:54:40+08:002019-07-24T23:54:40+08:00

    Um .desktop pode executar facilmente um script bash

    Você deve alterar as coisas em seu convert.sh:

    #!/bin/bash
    # set prompt to the working dir with cd
    cd /home/blackslate/Utilities/
    node ./convert.js
    
    # You want some text notification? Use notify-send
    notify-send -t 3000 'echo hello world'
    

    Observe que você pode redirecionar a saída de node ./convert.js para uma variável e usá-la como texto de notificação...
    MYVAR=$(node ./convert.js)entãonotify-send -t 3000 "Convert" "$MYVAR"

    E você pode fazer algumas alterações no .desktoparquivo
    , encontre ícones lá/usr/share/icons

    #!/usr/bin/env xdg-open
    [Desktop Entry]
    Version=1.0
    Type=Application
    Terminal=false
    Exec='/home/blackslate/Utilities/convert.sh'
    Name=Convert
    Icon=utilities-terminal
    
    • 3

relate perguntas

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Existe um comando para listar todos os usuários? Também para adicionar, excluir, modificar usuários, no terminal?

    • 9 respostas
  • Marko Smith

    Como excluir um diretório não vazio no Terminal?

    • 4 respostas
  • Marko Smith

    Como descompactar um arquivo zip do Terminal?

    • 9 respostas
  • Marko Smith

    Como instalo um arquivo .deb por meio da linha de comando?

    • 11 respostas
  • Marko Smith

    Como instalo um arquivo .tar.gz (ou .tar.bz2)?

    • 14 respostas
  • Marko Smith

    Como listar todos os pacotes instalados

    • 24 respostas
  • Martin Hope
    Flimm Como posso usar o docker sem sudo? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    led-Zepp Como faço para salvar a saída do terminal em um arquivo? 2014-02-15 11:49:07 +0800 CST
  • Martin Hope
    ubuntu-nerd Como descompactar um arquivo zip do Terminal? 2011-12-11 20:37:54 +0800 CST
  • Martin Hope
    TheXed Como instalo um arquivo .deb por meio da linha de comando? 2011-05-07 09:40:28 +0800 CST
  • Martin Hope
    Ivan Como listar todos os pacotes instalados 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    David Barry Como determino o tamanho total de um diretório (pasta) na linha de comando? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher "Os seguintes pacotes foram retidos:" Por que e como resolvo isso? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford Como os PPAs podem ser removidos? 2010-07-30 01:09:42 +0800 CST

Hot tag

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve