Seite 1 von 1

Kein Programm-Icon

Verfasst: 20.04.2025 12:03
von Berti27
Nach längerer PureBasic-Abstinenz habe ich nun die Version 6.20 auf meinem Linux-MINT-System installiert. Allerdings bin ich zu blöd, das Programm-Icon auf den Desktop zu bringen. Momentan starte ich PureBasic noch aus dem Installationsordner heraus.
Die Instllationsanleitung habe ich befolgt.

Re: Kein Programm-Icon

Verfasst: 20.04.2025 13:06
von mk-soft
Schaue dir meine Installationsanleitung an die von Fred teilweise übernommen wurde.
Link: Simple Install of PureBasic ...

Dann findest du das Programm in dem Menu und kannst es nach dem Start in der Leiste anheften.

Part:

Create desktop file
- Open gedit and save it as purebasic-v620.desktop into folder /home/[user_name]/.local/share/applications
- Change [user_name] to path of purebasic!
[Desktop Entry]
Type=Application
Icon=/home/[user_name]/Apps/purebasic-v620/logo.png
Name=Purebasic v6.20
Comment=Developer Utility
Exec=/home/[user_name]/Apps/purebasic-v620/compilers/purebasic
Path=/home/[user_name]/Apps/purebasic-v620/compilers
StartupNotify=false
Terminal=false
Categories=Development
Wenn du möchtest kannst du dann auch die gleiche Datei in den Ordner Schreibtisch kopieren und dann die Datei den Zugriffsrecht als Programm ausführen geben.

Re: Kein Programm-Icon

Verfasst: 20.04.2025 15:27
von mk-soft
Für faule Leute (wie ich) ;)

CreateDesktopFile.pb

Code: Alles auswählen

;-TOP

#ProgramTitle = "Create PureBasic Desktop File"
#ProgramVersion = "v1.01.2 by mk-soft"

Enumeration Windows
  #Main
EndEnumeration

Enumeration MenuBar
  #MainMenu
EndEnumeration

Enumeration MenuItems
  #MainMenuAbout
  #MainMenuExit
EndEnumeration

Enumeration Gadgets
  #MainList
  #MainButtonSave
EndEnumeration

Enumeration StatusBar
  #MainStatusBar
EndEnumeration

; ----

Macro AddElementValue(List, Value)
  AddElement(List) : List = Value
EndMacro

Global NewList Rows.s()

Procedure CreateDesktopFile()
  Protected Name.s
  
  Name = "PureBasic v" + Str(#PB_Compiler_Version / 100) + "." + LSet(Str(#PB_Compiler_Version % 100), 2, "0")
  
  AddElementValue(Rows(), "[Desktop Entry]")
  AddElementValue(Rows(), "Type=Application")
  AddElementValue(Rows(), "Icon=" + #PB_Compiler_Home + "logo.png")
  AddElementValue(Rows(), "Name=" + Name + " (gtk3)")
  AddElementValue(Rows(), "Comment=Developer Utility")
  AddElementValue(Rows(), "Exec=" + #PB_Compiler_Home + "compilers/purebasic")
  AddElementValue(Rows(), "Path=" + #PB_Compiler_Home + "compilers")
  AddElementValue(Rows(), "StartupNotify=false")
  AddElementValue(Rows(), "Terminal=false")
  AddElementValue(Rows(), "Categories=Development")
  
  ForEach Rows()
    AddGadgetItem(#MainList, -1, Rows())
  Next

EndProcedure

Procedure SaveDesktopFile()
  Protected path.s, filename.s, file.s
  
  path = "/home/" + UserName() + "/.local/share/applications/"
  filename = path + "purebasic-v" + LSet(Str(#PB_Compiler_Version), 3, "0") + ".desktop"
  
  file = SaveFileRequester("Save Desktop File", filename, "", 0)
  If file
    If CreateFile(0, file)
      ForEach Rows()
        WriteStringN(0, Rows())
      Next
      CloseFile(0)
    Else
      MessageRequester("Error", "File Not Saved!", #PB_MessageRequester_Error)
    EndIf
  EndIf
EndProcedure

; ----

Procedure UpdateWindow()
  Protected dx, dy
  dx = WindowWidth(#Main)
  dy = WindowHeight(#Main) - StatusBarHeight(#MainStatusBar) - MenuHeight()
  ; Resize gadgets
  ResizeGadget(#MainList, 5, 5, dx - 10, dy - 45)
  ResizeGadget(#MainButtonSave, dx - 130, dy - 35, 120, 30)
EndProcedure

Procedure Main()
  Protected dx, dy
  
  #MainStyle = #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_MaximizeGadget | #PB_Window_MinimizeGadget
  
  If OpenWindow(#Main, #PB_Ignore, #PB_Ignore, 800, 600, #ProgramTitle , #MainStyle)
    ; Menu
    CreateMenu(#MainMenu, WindowID(#Main))
    MenuTitle("&File")
    MenuItem(#MainMenuAbout, "About")
    MenuBar()
    MenuItem(#MainMenuExit, "E&xit")
    
    ; StatusBar
    CreateStatusBar(#MainStatusBar, WindowID(#Main))
    AddStatusBarField(#PB_Ignore)
    
    ; Gadgets
    dx = WindowWidth(#Main)
    dy = WindowHeight(#Main) - StatusBarHeight(#MainStatusBar) - MenuHeight()
    ListViewGadget(#MainList, 5, 5, dx -10, dy - 45)
    ButtonGadget(#MainButtonSave, dx - 130, dy - 35, 120, 30, "Save")
    
    ; Bind Events
    BindEvent(#PB_Event_SizeWindow, @UpdateWindow(), #Main)
    
    CreateDesktopFile()
    
    ; Event Loop
    Repeat
      Select WaitWindowEvent()
        Case #PB_Event_CloseWindow
          Select EventWindow()
            Case #Main
              Break
              
          EndSelect
          
        Case #PB_Event_Menu
          Select EventMenu()
            Case #MainMenuAbout
              MessageRequester("About", #ProgramTitle + #LF$ + #ProgramVersion, #PB_MessageRequester_Info)
                
            Case #MainMenuExit
              PostEvent(#PB_Event_CloseWindow, #Main, #Null)
              
          EndSelect
          
        Case #PB_Event_Gadget
          Select EventGadget()
            Case #MainList
              Select EventType()
                Case #PB_EventType_Change
                  ;
                  
              EndSelect
              
            Case #MainButtonSave
              SaveDesktopFile()
              
          EndSelect
          
      EndSelect
    ForEver
    
  EndIf
  
EndProcedure : Main()

Re: Kein Programm-Icon

Verfasst: 21.04.2025 08:52
von Berti27
Danke! So schnelle Hilfe ist nicht überall üblich. - Das musste mal gesagt werden!
Heute komme ich wahrscheinlich nicht dazu, es auszuprobieren, da sich Besuch angekündigt hat.
Einen schönen Ostermontag!
Berti27

Re: Kein Programm-Icon

Verfasst: 04.05.2025 18:00
von Berti27
Irgendwie stehe ich mit dem Terminal auf Kriegsfuß. Ich weiß, ich weiß, dass Linux-User, zumindest die allermeisten, tiefer in die Materie schauen, als Windows- und Mac-User.
Aber so widerspenstig ist zumindest Linux Mint gar nicht bei den "Klickern"! Allein mit Mausoperationen habe ich es geschafft, das Programmicon auf den Desktop/Schreibtisch zu bekommen, und zwar folgendermaßen:
1. Auf dem Desktop Rechtsklick in eine leere Stelle
2. Es öffnet sich das Kontextmenü Startereigenschaften
3. Im Kontextmenü auf +Neuen Starter erstellen klicken
4. Links-oben auf das Icon klicken und das neue Icon auswählen
5. Name hinter Name: eintragen
6. Auf Durchsuchen klicken und Programm auswählen.
7. Klick auf OK
Das wäre es schon im Prinzip.
Vielleicht kann damit mancher etwas anfangen.
Berti27

Re: Kein Programm-Icon

Verfasst: 04.05.2025 19:48
von mk-soft
Warum nicht einfach wie ich beschrieben habe oder einfach mein CreateDesktopFile.pb in der PB-IDE ausführen.
Schon hast du es unter Menu -> Entwicklung.

Im Datei Manager kannst du auch die verstecken dateien anschauen (Rechte Maus -> Verborgende Dateien anzeigen)
So findest du auch die Ordner die beschrieben habe.

Re: Kein Programm-Icon

Verfasst: 04.05.2025 20:14
von TroaX
Als kleiner Zucker. Unter Mint rechte Maustaste auf das Start-Symbol, dann "Menü bearbeiten", den Eintrag hinzufügen und dann im Startmenü rechte Maustaste drauf und "Zum Schreibtisch hinzufügen" klicken. Oder zur (Task-)leiste hinzufügen. Oder Favoriten. Oder oder oder ;)

Re: Kein Programm-Icon

Verfasst: 04.05.2025 20:29
von mk-soft
Ich finde mein CreateDesktopFile.pb code noch einfacher ;)
Dann ist es auch im Menu in der richtigen Kategorie