[#1] GoShell
Jakiś czas temu na własne potrzeby napisałem małego toola, którego głównym założeniem był szybki dostęp do shella, okno miało być na pełnym ekranie - i tylko okno, nawet bez górnej belki dla maksymalnego wykorzystania powierzchni. Do tego shell miał być ciemny z jasną czcionką.

W rezultacie powstał program który roboczo nazwałem GoShell, i tak już zostało. Teraz na tyle dojrzał, że zdecydowałem się go udostępnić publicznie, może komuś się przyda - mi akurat brakowało takiego dostępu do Shella.

Program pozwala określić ekran, czcionkę i kolory - ma do tego gadtoolsowe okno preferencji, które wywołuje się parametrem PREFS. Ustawienia zapisują sie do ENVARC:
Dodatkowo jeśli nie znajdzie ustawień wyświetli się automatycznie. Po odpaleniu shell można przywoływać standardowym Amiga+m (lub wrócić w ten sposób do workbencha).

Osobiście uzywam w dwóch kolorach - małe zużycie pamięci i szybkie operacje przewijania zawartości okna.

Wychodzi się standardowym ENDSHELL lub kombinacją Ctrl+\

Na pełnym ekranie nie ma nic oprócz shella - nawet pointer myszy jest wyłączony.

Jeśli w systemie jest zainstalowany KingCon i urządzenie KCON: - zostanie wykorzystane.

Program jest darmowy (freeware), do pobrania ze strony http://www.bitplan.pl/amiga/

Wymaga dowolnej Amigi 68k z KS 3.0

A wygląda tak:

Okno preferencji:



Przykładowy wygląd shella:


Uruchamiamy z ikony lub przez "run goshell".
Zapraszam do pobierania i używania ;)

Ostatnia aktualizacja: 15.03.2022 08:07:10 przez vojo

Ostatnia aktualizacja: 15.03.2022 08:07:47 przez vojo

Ostatnia aktualizacja: 17.06.2023 09:28:40 przez vojo

Ostatnia aktualizacja: 17.06.2023 09:29:23 przez vojo
1
[#2] Re: GoShell 1.0

@vojo, post #1

Produkcja softu pełną parą, zawsze coś ciekawego wymyślisz OK
W wolnej chwili przetestuję.
[#3] Re: GoShell 1.0

@vojo, post #1

szybki dostęp do shella, okno miało być na pełnym ekranie - i tylko okno, nawet bez górnej belki dla maksymalnego wykorzystania powierzchni. Do tego shell miał być ciemny z jasną czcionką.
Używam takiego shell'a od wielu lat, nazywa się to ScreenShell i działa i wygląda tak jak opisałeś (chociaż konfiguracja jest ręczna): link
Sprawdzę i Twojego to może podmienię
[#4] Re: GoShell 1.0

@vojo, post #1

Pierwszy bug i pierwszy fix (problem gdy nie było w systemie KingCONa).
Poprawione w wersji 1.1
[#5] Re: GoShell 1.0

@vojo, post #1

Czyli taki Shell FullScreen- może i to nie głupi pomysł- sprawdzę OK
[#6] Re: GoShell 1.0

@vojo, post #1

Kiedyś był taki program jak AScreen - takie amigowe podejście do GNU Screen. Tylko nie widzę go na Aminecie ;(
[#7] Re: GoShell 1.0

@hrw, post #6

Ale info jest na naszym forum. szeroki uśmiech
Link na końcu wątka
link
[#8] Re: GoShell 2.0

@vojo, post #1

Wersja 2.0 programu GoShell do pobrania ze strony http://bitplan.pl/goshell/.

Z nowych rzeczy:
  • obok KingCon doszło wsparcie dla konsoli ViNCEd, jeśli znajduje się w systemie
  • wydzielony program do konfiguracji (do sys:prefs ), dzięki czemu główny program jest lżejszy i uruchamia się szybciej
  • Obok Save nowa opcja Use, działająca zgodnie z amigowym standardem
  • Kilka predefiniowanych schematów kolorystycznych do wyboru (mozliwośc ustawienia własnego schematu została)
  • Możliwość ustawienia skryptu AmigaDOS, który ma się wykonać po uruchomieniu terminala
  • kilka poprawionych błędów (w tym babol który potrafił zawiesić Amigę...)





Z mojej strony ta wersja spełnia wszystkie moje założenia, wobec czego nie planuje kolejnych, chyba że coś sobie wymyślę (co niestety jest prawdopodobne), znajdzie się jakiś babo, lub jeśli ktoś podsunie jakiś ciekawy i realizowalny pomysł :)
1
[#9] Re: GoShell 2.0

@vojo, post #8

Oj, trzeba przetestowac
[#10] Re: GoShell 2.0

@vojo, post #8

O panie, aleś mnie teraz dobrze zrobił. Konsola jak w Linuksie OK
[#11] Re: GoShell 2.0

@vojo, post #8

pewnie się nie da zrobić tak że jak zmieniam ekrany A+M to żeby nie trzeba było uaktywniać okna kliknięciem myszki ?
a jak się da to by było super, bo teraz trzeba kliknąć myszką żeby coś wpisać
[#12] Re: GoShell 2.0

@QUAD, post #11

Możesz to uzyskać nawet bez proszenia programisty o dodanie takiej możliwości do programu.

Obadaj sobie program AutoPoint z szuflady Tools/Commodities - aktywuje okienka pod przyciskiem myszy automatycznie.
[#13] Re: GoShell 1.0

@vojo, post #1

Sympatyczne. OK Chociaż wskaźnik myszy to bym akurat zostawił, bo czasem jakiś wynik shelowych operacji chciałbym np. zaznaczyć i skopiować.

To znaczy ja nie skorzystam, bo używam MorphOS i taką konsolę (dodatkowo z tabami) mogę odpalić bez dodatkowego narzędzia. Ale i tak duże brawa za narzędzie. Już widać, że rozwiązanie podoba się wielu osobom.
Generalnie (nie tylko w amigowym świecie) zauważyłem, że po latach fascynacji oknami i GUI jakby więcej ludzi zaczyna doceniać różne takie CLI. Zwłaszcza gdy są fajne, szybkie, mają autouzupełnianie.
[#14] Re: GoShell 2.0

@QUAD, post #11

[#15] Re: GoShell 2.0

@QUAD, post #11

Z ciekawości sprawdzę czy mogę się zapiąć na jakieś zdarzenia typu aktywacja ekranu, tym bardziej że GoShell ma zgłoszony błąd związany z uruchamianiem z WB (ikony) - nie ma aktywnych wszystkich ścieżek gdzie szuka programów, tak jak GoShell uruchomiony z CLI. Ma tylko C: i aktywny katalog, co można sprawdzić poleceniem PATH.
Pewnie muszę jakiś zainicjować obiekt CLI z biblioteki DOS czy coś w tym stylu... Do obczajenia wszystko :)

Ostatnia aktualizacja: 07.03.2021 20:48:38 przez vojo

Ostatnia aktualizacja: 07.03.2021 20:49:44 przez vojo
[#16] Re: GoShell 2.0

@vojo, post #15

Jest jeszcze jedno rozwiązanie oprócz podanych. Możesz też dodać Hot-key do aktywacji Twojego programu za pomocą Commodities.library.

Wówczas po naciśnięciu kombinacji klawiszy (np. CTRL+ALT+S) ekran GoShell zostanie wyciągnięty na wierzch, a okno uaktywnione. Taka idea.
[#17] Re: GoShell 1.0

@MDW, post #13


Chociaż wskaźnik myszy to bym akurat zostawił, bo czasem jakiś wynik shelowych operacji chciałbym np. zaznaczyć i skopiować

Wyłączanie wskaźnika myszy jest opcjonalne w aktualnej wersji.
[#18] Re: GoShell 1.0

@vojo, post #17

Troszkę kiszka jest. Przy użyciu ctrl+\ screen się nie zamyka. Okno zamyka się, ale cały czas pozostaje screen otwarty.
EDIT:
Nie zamyka się jak używam KingCONa. Na Vinced jest ok.

Ostatnia aktualizacja: 22.04.2021 00:57:29 przez QkiZ
[#19] Re: GoShell 3.0 BETA

@QkiZ, post #18

Sprawdź jeśli możesz czy na poniższej wersji masz ten sam problem, kombinowałem jak mogłem ale - jak to mówią koledzy - u mnie działa ;)

https://bitplan.pl/goshell/download/3.0BETA/GoShell.lha

To kandydat do wersji 3.0, z nowych rzeczy najważniejsze to:

  • konfigurowalny tekst na belce ekranu, można zdefiniować tytuł ze zmiennymi:
    $CHIP - ilość wolnej pamięci CHIP (w bajtach)
    $KB_CHIP - ilość wolnej pamięci CHIP (w kilobajtach)
    $FAST - ilość wolnej pamięci FAST(w bajtach)
    $KB_FAST - ilość wolnej pamięci FAST(w kilobajtach)
    $DATE - aktualna data systemowa
    $TIME - aktualna godzina systemowa
    $SCREEN - nazwa ekranu publicznego

    Np:
    GoShell - Chip: $KB_CHIP KB, FAST: $KB_FAST KB, $DATE $TIME

  • poprawiony bug związany z tym że uruchomienie terminala z WB nie znało systemowych zmiennych, np dodatkowych ścieżek wyszukiwania programów
  • mozliwość uruchomienia ekranu GoShell w tle, za innymi ekranami ( fajne, bo mam GoShell w WBStartup i zawsze dostępny terminal pod Amiga+m )
  • i pewnie coś jeszcze, czego nie pamietam


To wersja BETA, wiec coś jeszcze może ostatecznie się zmienić.


Ostatnia aktualizacja: 22.04.2021 17:27:45 przez vojo



Ostatnia aktualizacja: 22.04.2021 17:38:54 przez vojo
[#20] Re: GoShell 3.0 BETA

@vojo, post #19

Dalej to samo. Shell znika, screen zostaje. Podejrzewam, że to przez customowy con-handler w kickstarcie. Używam KingCONa w kicku, mam go już na starcie systemu. Nawet zwykłe cli mam w kingconie.
Gdy przełącze w ustawieniach na zwykły CON to już w ogóle Goshell szaleje. Requestery plików stają się nieczytelne. W ustawieniach KingCONa requestery działają ok, ale screen się nie zamyka. Tylko Vinced działa ok.
[#21] Re: GoShell 3.0 BETA

@QkiZ, post #20

Customowy kickstart faktycznie moze mieć wpływ na GoShell, program był testowany na OS 3.0, 3.1.4 i 3.2 i zamykanie działa wszedzie OK.

Ewentualnie jeśli mozesz podesłać ten swój połatany kickstart to w wolnej chwili potestuje i może namierzę problem.


Ostatnia aktualizacja: 22.04.2021 23:32:29 przez vojo
[#22] Re: GoShell 3.0 BETA

@vojo, post #21

To jest standardowy 3.1.4 z załadowanym workbench.library (standardowy) i icon.library (Aminet) do kickstartu. Do tego podmieniony con-handler na ten z KingCONem. Nic więcej. W jakiej formie chcesz? Jak do emulatora czy jak do remap (1MB kickstart, w jednym pliku)?
[#23] Re: GoShell 3.0 BETA

@QkiZ, post #22

Najpierw do emu do szybkiej weryfikacji, potem zobaczymy.
[#24] Re: GoShell 3.0 BETA

@vojo, post #23

Hej, ja tylko podpowiem, że niezamykanie się ekranu może wynikać z tego, że okno Shella jest jeszcze aktywne.

Od wersji V36 systemu Amiga OS funkcja CloseScreen() zwraca wartość - TRUE gdy ekran zamknięto, oraz FALSE, gdy ekranu nie udało się zamknąć, bo otwarte są jeszcze okienka.

Możesz zrobić np. kod warunkowy (w języku C):

if (!CloseScreen(screen))
{
    /* Kod gdy nie udało się zamknąć ekranu */
}


Jeszcze mam pytanie: używasz ekranu publicznego czy prywatnego?

Ostatnia aktualizacja: 23.04.2021 10:06:30 przez Hexmage960
[#25] Re: GoShell 3.0 BETA

@Hexmage960, post #24

Nie sądzę aby to była kwestia CloseScreen().
Moim zdaniem program nie dostaje informacji że wszystkie okna na ekranie zostały zamknięte.
Do tego celu wykorzystuję tag ekranu SA_PUBSIG:
Signal for notification that the last window has closed on a public screen


Dodatkową weryfikacją jest funkcja która sprawdza w strukturze PubScreenNode mojego ekranu wartość pola VisitorCount.

struct PubScreenNode	{
    struct Node		psn_Node;	/* ln_Name is screen name */
    struct Screen	*psn_Screen;
    UWORD		psn_Flags;	/* below		*/
    WORD		psn_Size;	/* includes name buffer	*/
    WORD		psn_VisitorCount; /* how many visitor windows */
    struct Task		*psn_SigTask;	/* who to signal when visitors gone */
    UBYTE		psn_SigBit;	/* which signal	*/
};


Wg mnie brakuje sygnału, ewentualnie z jakiegoś powodu VisitorCount jest >0.

No ale bez zreplikowania sytuacji to sobie mogę gdybać :)


A odpowiadając na pytanie - ekran jest publiczny, nazwa ekranu to GOSHELL.x, gdzie x to numer otwartego ekranu GoShell, począwszy od 0.
[#26] Re: GoShell 3.0 BETA

@vojo, post #25

Acha, od wersji 3.0 pętla obsługująca wiadomości nie tylko czeka na sygnał z SA_PUBSIG, ale tez co sekunda tyka timer (z timer.device, dodany na potrzeby zegarka na belce ekranu), i tam tez sprawdzam liczbę VistorCount, więc gdyby było 0 to ekran by się zamknął nawet bez sygnału z SA_PUBSIG po maksymalnie 1 sekundzie.
[#27] Re: GoShell 3.0 BETA

@vojo, post #25

Nie sądzę aby to była kwestia CloseScreen().
Moim zdaniem program nie dostaje informacji że wszystkie okna na ekranie zostały zamknięte.
Do tego celu wykorzystuję tag ekranu SA_PUBSIG:

Jasne, dlatego pytałem czy używasz ekranu publicznego, czy prywatnego.

Mimo wszystko możesz sprawdzać wynik funkcji CloseScreen() - żeby być pewny, czy ekran został zamknięty - nawet w celach debugowania.

Ostatnia aktualizacja: 23.04.2021 11:29:44 przez Hexmage960
[#28] Re: GoShell 3.0 BETA

@vojo, post #26

Tak czy inaczej, nowa wersja pobrana i z rana przetestowana, bardzo fajnie ze można otworzyć goshell pod spodem, jedynie co nadal mnie wnerwia to to że jak coś robię pod wb i się przełączam a+m to muszę myszka kliknąć, co do comodity i zaznaczania okna z automatu to jest to nie do przyjęcia w moim przypadku, np. Jak z belki wybiorę execute command i chce coś wpisać i kursor jest w innym miejscu to okno się robi nieaktywne i nie mogę wpisać komendy.
[#29] Re: GoShell 3.0 BETA

@QUAD, post #28

co do comodity i zaznaczania okna z automatu to jest to nie do przyjęcia w moim przypadku, np. Jak z belki wybiorę execute command i chce coś wpisać i kursor jest w innym miejscu to okno się robi nieaktywne i nie mogę wpisać komendy.

Rozumiem. AutoPoint tak już ma.

Znam dwie metody na wykrycie czy ekran jest na wierzchu:

  • sprawdzenie FirstScreen w IntuitionBase (pomiędzy LockIBase() i UnlockIBase()),
  • użycie Copperlisty użytkownika i przerwania Coppera na swoim ekranie.

Pierwsza metoda wymaga sprawdzania tego pola co jakiś czas.

Druga wymaga Coppera w Amidze. Korzystam z tej metody - dzięki czemu np. moja gra jest aktywna gdy ekran jest widoczny.

Ja nadal polecam dodanie skrótu klawiszowego dla GoShell poprzez użycie commodities.library.
[#30] Re: GoShell 3.0 BETA

@QUAD, post #28

.. jak coś robię pod wb i się przełączam a+m to muszę myszka kliknąć..


o Panie.. hehe
jakbys uzywal moich blitz-owych wypocin pod tytulem "naat" to bys klikac myszka nie musial

chyba ze chodzi o cos innego niz na filmie to wtedy zapomnij o tym co napisalem wyzej, hehe

1
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem