LINUX.ORG.RU

bash-скрипты на рабочем столе kde

 , ,


1

2

Давно на kde, однако недавно столкнулся с проблемой. Я запускаю программу из sh-скрипта, однако жене это неудобно. Как корректно создать запускающий плазмоид на рабочий стол? Обычный софт я либо по alt+F2 запускаю, или ярлык из «пуска» перетаскиваю. В сети ничего внятного не нашел. Костыли городить не хочется. Нужно просто скрипт по клику запустить. Внутри - Minecraft в консоли исполняется.


Ответ на: комментарий от anonymous

Desktop разве не частный случай плазмоида? Мне он и нужен, собственно. Я так понимаю, что варианта типа «отправить на рабочий стол» не будет? Впрочем я и руками напишу.

meklon
() автор топика
Ответ на: комментарий от meklon

Но вообще можно просто в папку же положить и так куда-угодно, в зависимости откуда программа их берет.

dearboy
()
Ответ на: комментарий от Deleted

Поменять на какой именно тип и зачем? Я по факту комнатами не пользуюсь. На столе 4 ярлыка-плазмоида, которые desktop-файлы

meklon
() автор топика
Ответ на: комментарий от anonymous

А на рабочем столе тот объект, размер которого можно менять, крутить и т.п. - это что за сущность?

meklon
() автор топика
Ответ на: комментарий от meklon

Под рабочим столом я не имею в виду соответствующий виджет, а рабочее пространство при входе в систему.

meklon
() автор топика
Ответ на: комментарий от cdshines

Понял, спасибо за помощь. Буду ковыряться. Если там еще и дефолтные настройки координат и размеров ярлыков можно будет удобно прописать - я значительно упрощу свой скрипт быстрой настройки/установки на новых системах. Но это где-то в настройках .kde в home, видимо.

meklon
() автор топика
Ответ на: комментарий от cdshines
[Desktop Entry]
Name=Minecraft
Comment=Minecraft launcher
Icon=jockey-kde
Encoding=UTF-8
Type=Application
TryExec=sh /home/meklon/Games/Minecraft_patched/start.sh
Exec=sh /home/meklon/Games/Minecraft_patched/start.sh
Categories=Game;
OnlyShowIn=KDE;

Появился ярлык в меню, но при запуске задумывается и нифига не делает. По сути, ему надо стартануть скрипт.

meklon
() автор топика
Ответ на: комментарий от meklon

Exec=sh /home/meklon/Games/Minecraft_patched/start.sh

а если без sh в начале?

anonymous
()
Ответ на: комментарий от anonymous

брошу. кстати, обычно приложение запускалось в терминале. если бы java стартовала без него - было бы прекрасно.

meklon
() автор топика
Ответ на: комментарий от unikum

Вроде разобрался, добавил Terminal=true, однако после выполнения последовательности в скрипте, он закрывает терминал и java-программу вместе с ним.

echo -n 'Введите свой ник: ' && read username
java -cp 'bin/*' -Djava.library.path='bin/natives/' net.minecraft.client.Minecraft $username

meklon
() автор топика
Ответ на: комментарий от meklon
Encoding=UTF-8
Type=Application
- TryExec=sh /home/meklon/Games/Minecraft_patched/start.sh
- Exec=sh /home/meklon/Games/Minecraft_patched/start.sh
+ Exec=/home/meklon/Games/Minecraft_patched/start.sh
Categories=Game;
OnlyShowIn=KDE;

И не забудь

$ chmod +x /home/meklon/Games/Minecraft_patched/start.sh

i_gnatenko_brain ★★★★
()
Последнее исправление: i_gnatenko_brain (всего исправлений: 1)
Ответ на: комментарий от i_gnatenko_brain

Попробую, спасибо. У меня стартует уже, в принципе.я новую проблему чуть выше описал.обычно, когда я запускаю скрипт, он держит включенным java машину с minecraft. Если закрыть окно терминала - minecraft аварийно завершится. При запуске с рабочего стола стартует терминал, выполняет все действия по списку и закрывается, вырубая сам java процесс. Как с этим бороться я не понял.

meklon
() автор топика
Ответ на: комментарий от anonymous

Не понял смысл скриншота. Если терминал - false, тупо ничего не стартует. Мне по сути надо понять как сделать ярлык на фоновый процесс, которым является minecraft под java. Безумно раздражает, что процесс гасится. У меня так проблема была - надо было запустить виртуальную машину из-под ssh. Так она сволочь вырубается при отключении от ssh. Как ее удаленно запустить в фоне изнутри, я не понял. Vnc это изврат в данном случае.

meklon
() автор топика
Ответ на: комментарий от meklon

Смысл в kmenuedit- удобно. И в приложении wimax,которое запускает «bin/bash»,который запускает подключение «gctwimax -C...» и спокойно работает с «терминал - false» в фоне. А если напрямую вбить в поле «Команда» -«gctwimax -C...», не стартует. Попробуй создать скрипт на запуск своего «фоновый процесс...под java» и укажи его как команду, а уж из меню на раб. стол вытяни.

anonymous
()
Ответ на: комментарий от meklon

Видимо ты отвечал в ветку с комментариями анонимусов, а они у меня заболочены. Запускай без использования терминала и будет счастье.

i_gnatenko_brain ★★★★
()
Ответ на: комментарий от i_gnatenko_brain

Без терминала не работает.) Но анонимусы тут подсказывают тоже: Смысл в kmenuedit- удобно. И в приложении wimax,которое запускает «bin/bash»,который запускает подключение «gctwimax -C...» и спокойно работает с «терминал - false» в фоне. А если напрямую вбить в поле «Команда» -«gctwimax -C...», не стартует. Попробуй создать скрипт на запуск своего «фоновый процесс...под java» и укажи его как команду, а уж из меню на раб. стол вытяни.

anonymous (12.05.2013 2:51:27)

meklon
() автор топика
Ответ на: комментарий от i_gnatenko_brain

Предельно простой.

echo -n 'Введите свой ник: ' && read username
java -cp 'bin/*' -Djava.library.path='bin/natives/' net.minecraft.client.Minecraft $username

meklon
() автор топика
Ответ на: комментарий от i_gnatenko_brain

Javaw посоветовали выше попробовать. Есть вообще универсальный способ сделать запуск программы из скрипта независимым от терминала, в котором его запустили? А то падает терминал - падает вся связанная ветка процессов.

meklon
() автор топика
Ответ на: комментарий от meklon

Предлагаю свой патч

--- minecraft.sh.orig	2013-05-12 09:56:29.273627225 +0400
+++ minecraft.sh	2013-05-12 09:56:53.395611302 +0400
@@ -1,2 +1,3 @@
+#!/bin/bash
 echo -n 'Введите свой ник: ' && read username
-java -cp 'bin/*' -Djava.library.path='bin/natives/' net.minecraft.client.Minecraft $username
+java -cp 'bin/*' -Djava.library.path='bin/natives/' net.minecraft.client.Minecraft $username & >/dev/null 2>&1

i_gnatenko_brain ★★★★
()
Последнее исправление: i_gnatenko_brain (всего исправлений: 1)
Ответ на: комментарий от i_gnatenko_brain

Если я правильно понял проблему, после запуска java необходимо дописать disown %1 - это отвяжет ее от терминала.

Array
()
Ответ на: комментарий от Array

Из твоего сообщения вывел для себя полезную информацияю. Предыдущий патч объявляю obsolete.

--- minecraft.sh.orig	2013-05-12 11:01:10.118091652 +0400
+++ minecraft.sh	2013-05-12 11:01:27.296101087 +0400
@@ -1,2 +1,4 @@
+#!/bin/bash
 echo -n 'Введите свой ник: ' && read username
-java -cp 'bin/*' -Djava.library.path='bin/natives/' net.minecraft.client.Minecraft $username
+java -cp 'bin/*' -Djava.library.path='bin/natives/' net.minecraft.client.Minecraft $username &
+disown

i_gnatenko_brain ★★★★
()
Ответ на: комментарий от i_gnatenko_brain
meklon@meklon-kubuntu:~/Games/Minecraft_patched$ sh start.sh 
Введите свой ник: Meklon
start.sh: 4: start.sh: disown: not found
meklon@meklon-kubuntu:~/Games/Minecraft_patched$ Fontconfig warning: "/etc/fonts/conf.d/50-user.conf", line 9: reading configurations from ~/.fonts.conf is deprecated.
Fontconfig warning: "/etc/fonts/conf.d/50-user.conf", line 9: reading configurations from ~/.fonts.conf is deprecated.
Fontconfig warning: "/etc/fonts/conf.d/50-user.conf", line 9: reading configurations from ~/.fonts.conf is deprecated.
229 recipes
27 achievements
2013-05-12 12:07:54 [CLIENT] [INFO] Setting user: Meklon
(Session ID is -)
Client asked for parameter: server
2013-05-12 12:07:54 [CLIENT] [INFO] LWJGL Version: 2.8.4
2013-05-12 12:07:55 [CLIENT] [INFO] Found animation info for: textures/blocks/lava_flow.txt
2013-05-12 12:07:55 [CLIENT] [INFO] Found animation info for: textures/blocks/water_flow.txt
2013-05-12 12:07:55 [CLIENT] [INFO] Found animation info for: textures/blocks/fire_0.txt
2013-05-12 12:07:55 [CLIENT] [INFO] Found animation info for: textures/blocks/fire_1.txt
2013-05-12 12:07:55 [CLIENT] [INFO] Found animation info for: textures/blocks/lava.txt
2013-05-12 12:07:55 [CLIENT] [INFO] Found animation info for: textures/blocks/portal.txt
2013-05-12 12:07:55 [CLIENT] [INFO] Found animation info for: textures/blocks/water.txt
2013-05-12 12:07:55 [CLIENT] [INFO] Found animation info for: textures/items/clock.txt
2013-05-12 12:07:55 [CLIENT] [INFO] Found animation info for: textures/items/compass.txt
java.io.FileNotFoundException: http://assets.minecraft.net/1_6_has_been_released.flag
        at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1401)
        at kn.a(SourceFile:234)
        at bkg.run(SourceFile:113)
        at java.lang.Thread.run(Thread.java:679)

это простой запуск. Последнюю строку он не распарсил, но после закрытия терминала работает независимо, прекрасно. По поводу ярлыка. внутри .desktop-файла содержимое

#!/usr/bin/env xdg-open
[Desktop Entry]
Name=Minecraft
Comment=Minecraft launcher
Icon=jockey-kde
Encoding=UTF-8
Type=Application
Terminal=true
Exec=sh /home/meklon/Games/Minecraft_patched/start.sh
Categories=Game;
OnlyShowIn=KDE;
Вылетает точно так же после ввода ника.

meklon
() автор топика
Ответ на: комментарий от meklon

sh

убери ты уже наконец-таки это
и покажи текущий вариант своего скрипта
я бы протестил это всё с твоими файлами, но добавь меня тогда в жаббер или отошли на почту файлы - потестирую и дам рабочий вариант

i_gnatenko_brain ★★★★
()
Последнее исправление: i_gnatenko_brain (всего исправлений: 2)
Ответ на: комментарий от i_gnatenko_brain

https://www.dropbox.com/sh/v8j9t71id7jubfk/TW0eSn3fpq Здесь все файлы. Ресурсы он должен подтянуть сам в .minecraft после запуска start.sh Эта версия Minecraft отвязана от официальной лицензии, мне нужна для тестирования домашнего сервера, чтобы под разнвми никами заходить. Так официалка есть. Впрочем работает без проблем. Только проверку на главном сервере не проходит. А к локальному на виртуальной машине цепляется.

meklon
() автор топика

Лучше в меня добавь, а потом уже и перетащишь куда хочешь.

anonymous
()
Ответ на: комментарий от meklon

На будущее не имей привязки к home директории.
start.sh должен быть в той же директории, где и папка bin.
держи патч:

diff -uNr Minecraft.orig/minecraft.desktop Minecraft/minecraft.desktop
--- Minecraft.orig/minecraft.desktop	2013-05-12 08:11:44.000000000 +0400
+++ Minecraft/minecraft.desktop	2013-05-12 13:16:31.790176324 +0400
@@ -1,11 +1,9 @@
-#!/usr/bin/env xdg-open
 [Desktop Entry]
 Name=Minecraft
 Comment=Minecraft launcher
-Icon=jockey-kde
+Icon=utilities-terminal
 Encoding=UTF-8
 Type=Application
 Terminal=true
-Exec=sh /home/meklon/Games/Minecraft_patched/start.sh
+Exec=/home/brain/Minecraft/Minecraft_patched/start.sh
 Categories=Game;
-OnlyShowIn=KDE;
diff -uNr Minecraft.orig/Minecraft_patched/start.sh Minecraft/Minecraft_patched/start.sh
--- Minecraft.orig/Minecraft_patched/start.sh	2013-05-12 08:06:42.000000000 +0400
+++ Minecraft/Minecraft_patched/start.sh	2013-05-12 13:24:57.282211830 +0400
@@ -1,5 +1,2 @@
 #!/bin/bash
-echo -n 'Введите свой ник: ' && read username
-java -cp 'bin/*' -Djava.library.path='bin/natives/' net.minecraft.client.Minecraft $username &
-disown
-
+read -e -p "Enter you nick: " tmp && echo $tmp | { read username; nohup java -cp "`dirname $0`/bin/*" -Djava.library.path="`dirname $0`/bin/natives/" net.minecraft.client.Minecraft $username; }
diff -uNr Minecraft.orig/Minecraft_patched/start.sh.old Minecraft/Minecraft_patched/start.sh.old
--- Minecraft.orig/Minecraft_patched/start.sh.old	2013-05-12 06:53:08.000000000 +0400
+++ Minecraft/Minecraft_patched/start.sh.old	1970-01-01 03:00:00.000000000 +0300
@@ -1,2 +0,0 @@
-echo -n 'Введите свой ник: ' && read username
-java -cp 'bin/*' -Djava.library.path='bin/natives/' net.minecraft.client.Minecraft $username
http://ur1.ca/dtemv

i_gnatenko_brain ★★★★
()
Последнее исправление: i_gnatenko_brain (всего исправлений: 4)
Ответ на: комментарий от meklon

найди нормальный ланчер майнкрафта. будет гораздо легче все и без скриптов с терминалами

anonymous
()
Ответ на: комментарий от i_gnatenko_brain

Боюсь, что не знаю. Я максимум баг-репорты писал. В совместной разработке ПО я не участвовал. Знания VisualBasic никому не нужны) Вручную я вижу по списку, что именно изменилось. Но автоматом не применю.

meklon
() автор топика
Ответ на: комментарий от i_gnatenko_brain

Все заработало, спасибо огромное. Только путь в exec вел в твой хомяк. Поправил. С концепцией патчей вроде разобрался. Удобно. Мне вроде применять негде, но удобно. Если на пальцах объяснишь про nohup - буду благодарен.

meklon
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.