1. Здраво и добредојдовте на форумот на IT.mk.

    Доколку сеуште не сте дел од најголемата заедница на ИТ професионалци и ентузијасти во Македонија, можете бесплатно да се - процесот нема да ви одземе повеќе од 2-3 минути, а за полесна регистрација овозможивме и регистрирање со Facebook и Steam.
    Сокриј

Како да направам икона за стартување програм?

Дискусија во форумот 'GNU/Linux' започната од JensenInterceptor, 12 Април 2017.

  1. JensenInterceptor

    JensenInterceptor
    Gaining Experience

    511
    203
    28 ноември 2015
    Машко
    Во Виндозе е лесно да направиш икона на десктоп и да упалиш даден програм. Притоа и лесно се поставуваат и команди што треба да се извршат при палење на програмот кога со двојно кликање ќе стиснеш на иконата.

    Но ете на Линукс не е баш така едноставно, треба да се напише Јуникс Шел скрипта. Сеа, јас би можел да научам Јуникс Шел АПИто ама ќе ми треба време. Сум пробал сам да направам икона на десктоп за оваа намена ама не ми работеше. Нешто фали.

    Епа ако може пример некој како?

    Користам Убунту 14.04 и на пример сакам икона која ќе ми стартува http-server на Node.js

    Пример за команда што треба да се изврши е:

    Код:
    http-server /var/www/nodejs -a 127.0.0.1 -p 8081
    Значи имам инсталирано Node.js, http-server npm приклучок(plugin) и кога ќе кликнам на иконата да се упали терминал прозор и да ја изврши командата погоре.

    Епа да чујам ваши мислења.
     
  2. Глупав

    Глупав
    Gaining Experience

    289
    122
    20 Април 2008
    Машко
    ако паметам убаво пред едно 15 години
    само пред команда се внесува #!/bin/bash
    редиш после тоа комади кои сакаш да ги стартуваш
    нека ме корегира некој SysAdmin
     
    На Oktar и JensenInterceptor им се допаѓа ова.
  3. JensenInterceptor

    JensenInterceptor
    Gaining Experience

    511
    203
    28 ноември 2015
    Машко
    Еве проба:
    Код:
    #!/bin/bash
    #
    # ---------------------------------------------------------------------
    # NodeJS Http Server startup script.
    # ---------------------------------------------------------------------
    #
    
    #cd /usr/local/lib/node_modules/http-server/bin
    ./http-server /var/www/nodejs/ -a 0.0.0.0 -p 8081
    Само го глеам тоа икончето како врти, џоа вчитува нешто, и после 5-10 секунди ништо не се дешава. Не глеам терминал :D
    Пробав и со
    Код:
    #!/bin/sh
    Исто е, не се појавува терминал.

    Иконата ми се вика http-server-nodejs.sh. Не знам дали е добро вака?
     
  4. bokiscout

    bokiscout
    Practice makes perfect

    1,699
    1,998
    17 Март 2011
    Машко
    Embedded C, Linux Kernel
    На alekcackko и Oktar им се допаѓа ова.
  5. JensenInterceptor

    JensenInterceptor
    Gaining Experience

    511
    203
    28 ноември 2015
    Машко
    Не ми е битно да е икона во старт мени, туку на десктоп, само да ми упали терминал и да изврши команда.
     
  6. JensenInterceptor

    JensenInterceptor
    Gaining Experience

    511
    203
    28 ноември 2015
    Машко
    Каква е таа #bash скрипта? Објасни малце. Со вид на фајл "sh"?

    И зошто не можам да уредам *.desktop фајл? Ми вика, „се појави грешка при извршување“
     
  7. Глупав

    Глупав
    Gaining Experience

    289
    122
    20 Април 2008
    Машко
    како што знам
    ./ во Linux значи working directory или pwd
    ако не е во $PATH значи не може да се изврши
    декоментирај ја командата со cd
     
    На JensenInterceptor му/ѝ се допаѓа ова.
  8. kebe

    kebe
    Gaining Experience

    209
    168
    29 Март 2012
    Ако си на Убунту, оди во ~/Desktop и направи датотека start-server.sh и стави го кодчето погоре.

    На крај не заборавај во терминал да направиш chmod +x

    Код:
    cd ~/Desktop
    chmod +x start-server.sh
     
    На JensenInterceptor и Oktar им се допаѓа ова.
  9. bokiscout

    bokiscout
    Practice makes perfect

    1,699
    1,998
    17 Март 2011
    Машко
    Embedded C, Linux Kernel
    Не сум чачкал node.js и немам појма што треба да се деси по командава ама претпоставувам треба да се отвори терминал, во него да видиш некаков аутпут и истиот да осатне видлив на екранот.

    За таа цел ке ја стартуваш програмата terminal (кој и да го користиш, претпоставувам gnome-terminal) и како парамтери на gnome-terminal ке го ставиш кодот што сакаш да се изврши во тој прозорец (буквално треба да креираш процес кој е дете на gnome-terminal) од терминалот. Во спротивно ако ставиш само команда за извршување, истата може да се изврши во background и ти воопшто нема да видииш терминал, евентуално термианлот ке се појави и ке го снема.

    Ако добро те разбрав тебе ти треба оваа .sh скрипта
    Код:
    #!/bin/bash
    gnome-terminal -e "bash -c 'http-server /var/www/nodejs -a 127.0.0.1 -p 8081';bash"
    каде што:
    1. gnome terminal -> ке отвориме прозорец од програмата gnome-terminal
    2. -е -> параметарот "-е" значи дека во прозорецот ке го извршиме нешто
    3. "bash -c ..." -> ке повикаме извршување на bash скрипта, "-c" значи веднаш ке ти ја кажам содржината на скриптата наместо да ја вчиташ од фајл.
    4. 'http-server ...' -> твојата скрипта
    5. ;bash -> штом ке заврши претходанта команда, отвори shell за да куцам нова команда. Ова ти треба за да спречиш гасење на прозорецот од gnome-terminal.

    Не заборавај chmod +x <ime_na_skripta.sh>

    Ако ова е океј, ке креираме и .desktop.
     
    На alekcackko и JensenInterceptor им се допаѓа ова.
  10. JensenInterceptor

    JensenInterceptor
    Gaining Experience

    511
    203
    28 ноември 2015
    Машко
    Ај вака, прво да направиме скрипта да упали терминал па за извршување команда во истиот после.

    Имам икона на декстоп за стартување Андроид Студио: AndroidStudio.sh
    и има едно 200 линии код.
    Горе започнува со: #!/bin/sh

    А најдоле има дел со следново:

    Код:
    # ---------------------------------------------------------------------
    # Run the IDE.
    # ---------------------------------------------------------------------
    LD_LIBRARY_PATH="$IDE_BIN_HOME:$LD_LIBRARY_PATH" "$JAVA_BIN" \
      $AGENT \
      "-Xbootclasspath/a:$IDE_HOME/lib/boot.jar" \
      -classpath "$CLASSPATH" \
      $VM_OPTIONS "-Djb.vmOptionsFile=$VM_OPTIONS_FILES_USED" \
      "-XX:ErrorFile=$HOME/java_error_in_STUDIO_%p.log" \
      -Djb.restart.code=88 -Didea.paths.selector=AndroidStudio2.0 \
      $IDE_PROPERTIES_PROPERTY \
      $IDE_JVM_ARGS \
      com.intellij.idea.Main \
      "$@"
    EC=$?
    
    test $EC -ne 88 && exit $EC
    
    RESTARTER="$HOME/.AndroidStudio2.0/restart/restarter.sh"
    if [ -x "$RESTARTER" ]; then
      "$RESTARTER"
      "$RM" -f "$RESTARTER"
    fi
    
    exec "$0" "$@"
    Дали помага ова?

    Иначе ја пробав командата со gnome-terminal ама пак истото, само врти кругчето и не се дешава ништо.

    И да користам bash shell, тој со виолетова или каква и да е позадина, пембе :D
     
  11. Simeon Aleksov

    Simeon Aleksov
    Intern

    23
    20
    14 Декември 2015
    Машко
    Shebang
    Ќе отвореп Terminal и ќе напишеш:
    mono@simeon:~$ echo $SHELL
    /bin/bash

    chmod +x file.sh
    ./file.sh
     
    На JensenInterceptor му/ѝ се допаѓа ова.
  12. JensenInterceptor

    JensenInterceptor
    Gaining Experience

    511
    203
    28 ноември 2015
    Машко
    Не знам вас како ви успева, ама за мене ова работеше:

    Код:
    [Desktop Entry]
    Name=My script
    Comment=Test hello world script
    Exec=/home/user/yourscript.sh
    Icon=/home/user/youricon.gif
    Terminal=true
    Type=Application
    Значи прво ќе направите скрипта myscript.sh и ќе го вметнете кодов внатре. Потоа ќе внесете патека до yourscript.sh и до сликичката youricon.gif. Ќе изберете дали сакате да се отвори темирнал прозорец со Terminal=true/false
    Ќе ги снимите измените.

    Ќе го преимените myscript.sh во myscript.desktop. Ова ќе го смени името и ликот на фајлот на работната површина(дектоп). Сега ќе личи со слика на youricon.gif и ќе се вика My Script.

    Потоа во терминал со sudo chmod +x myscript.desktop ќе овозможите извршување на иконата. Притоа мора да сте сигурни дека yourscript.sh се извршува како програма.

    Со двоен клик на (My Script)myscript.desktop ќе се отвори терминал ако беше на true, а ако е на false само ќе ја изврши наредбата во yourscript.sh без да отвара терминал. Најверојатно е скриен процес(Видете во Process Monitor).

    Туторијалот погоре го дава истото. Не сум загледал. ;)
     
    Последна промена: 21 Април 2017
  13. JensenInterceptor

    JensenInterceptor
    Gaining Experience

    511
    203
    28 ноември 2015
    Машко
    А каква и колкава треба да е сликичката? 16x16 пиксели, и мора да е gif?
     
  14. JensenInterceptor

    JensenInterceptor
    Gaining Experience

    511
    203
    28 ноември 2015
    Машко
    Малку зезање и бам:

    [​IMG]

    Пробав со 480х480 пиксели на icon.png и добив ова. Можда требаше помала, не знам ;)
     
    На boriseto и bokiscout им се допаѓа ова.

Сподели

Вчитување...