Avatar billede trygleren2000 Nybegynder
13. april 2004 - 16:58 Der er 15 kommentarer og
1 løsning

Egne punkter i menusystem i blackbox/fluxbox/etc

Hey,

jeg bruger Debian og så fluxbox til x. Menuen i fluxbox bliver så genereret ud fra hvad jeg har installeret via apt. Problemet er bare, at jeg gerne ville have egne punkter under den menu, men samtidig beholde den automatiske vedligeholdelse. Jeg kan sagtens manuelt ændre menufilen, men næste gang jeg installerer noget vha. apt, så går min egen redigering tabt. Jeg går ud fra at jeg skal have fortalt debians pakkesystem at jeg har installeret yderligere programmer. Det er lidt trælst at skulle starte en term, for at køre opera.
Avatar billede strych9 Praktikant
13. april 2004 - 19:36 #1
Du kan jo sætte menufilen til at være read-only med chmod 444 feks.
Quick and dirty. Det er det eneste jeg kender til :)
Avatar billede strych9 Praktikant
13. april 2004 - 19:38 #2
Egentlig kan du også bare lave et patch med diff kommandoen, og herefter lave patch -p0 hver gang den laver det stunt der.
Avatar billede trygleren2000 Nybegynder
13. april 2004 - 20:05 #3
Det holder ikke. Jeg ønsker jo at beholde den automatiske vedligeholdelse (som jeg også skriver). Hvis jeg laver den skrivebeskyttet, bliver den jo ikke opdateret. Mit problem går principielt ud på at få Debian til at forstå der findes andre programmer, end dem man apt'er ned. Hvis blot jeg kan få føjet mine egne programmer til Debians liste over installerede programmer, så vil jeg kunne bibeholde mine egne entries til menuen, samt de automatisk genererede.
Avatar billede trygleren2000 Nybegynder
13. april 2004 - 20:14 #4
-
Avatar billede strych9 Praktikant
13. april 2004 - 20:15 #5
Jamen det kan Debian altså ikke forstå :)
Forstår du mit forslag med diff/patch?
Avatar billede trygleren2000 Nybegynder
13. april 2004 - 20:26 #6
Jeg forstår det ikke helt, men det er egentlig heller ikke nødvendigt at forstå den præcise mening. Jeg kunne forestille mig det har noget med hashværdier at gøre, og at patch sørger for at et bestemt mønster bliver vedligeholdt i en fil... MEN: Det kræver stadig en manuel handling, og så er jeg lige vidt. Pt. har jeg en lille fil med egne punkter i. Når så apt har lavet det gøj der, så åbner jeg fluxbox-menu og indsætter min egen fil foroven som en submenu.

Kan det virkelig passe at man ikke kan få adgang til den pakkeliste?!?
Avatar billede Slettet bruger
15. april 2004 - 07:02 #7
Prøv at se på update-menus kommandoen.

Først skal du lave en fil for Opera og lægge den i /etc/menu - bare kald filen opera. Indholdet skal være i samme stil som filerne i /usr/lib/menu/ - her er for eksempel den, der specificerer min Firefox-browser:

?package(mozilla-firefox):needs="x11" section="Apps/Net" \
        title="Mozilla Firefox" \
        icon="/usr/share/pixmaps/mozilla-firefox.xpm" \
        command="firefox" hints="Web browsers"

Hvis du placerer filen i samme mappe som de andre, vil systemet måske fjerne den, men når du placerer den i /etc/menu ved update-menus, at det er en hjemmelavet fil.

Når filen er lavet, skal du bare køre update-menus (som root.)
Avatar billede trygleren2000 Nybegynder
15. april 2004 - 16:00 #8
Jeg har kopieret følgende ind i ~/.menu/opera :

?package(opera):command="/usr/bin/opera" \
icon="opera.png" \
needs="X11" \
section="Networking/WWW" \
title="Opera" \
longtitle="Opera Web Browser" \
mimetypes="text/html,text/plain,text/vnd.csr,text/vnd.wap.wml,text/wml,text/xml$
accept_url="true" \
multiple_files="false"

og ændret Networking/WWW til Apps/Net.
Filen har korrekte rettigheder, men update-menus inkluderer den ikke =(
Avatar billede Slettet bruger
15. april 2004 - 22:34 #9
Så vidt jeg kan se på filen, er den egentlig beregnet til at skulle være på en enkelt linie. Det er derfor, at alle linier slutter med en \, som fortæller, at næste tegn skal ignoreres. Du mangler et " i slutningen af mimetypes-linien foruden \. Hvorvidt det er vigtigt, at linierne efter den første er indrykket, ved jeg ikke, men jeg tror ikke, at det betyder noget.

Til at starte med vil jeg anbefale dig at lave en minimaludgave af filen - bare for at få det til at virke - så kan du altid tilføje flere ting bagefter. Prøv med:

?package(opera):needs="x11" section="Apps/Net" \
        title="Opera" \
        icon="/usr/share/pixmaps/mozilla-firefox.xpm" \
        command="/usr/bin/opera" hints="Web browsers"

(Ret eventuelt stien til ikonet til den fulde sti for et Opera-ikon.)
Avatar billede Slettet bruger
15. april 2004 - 22:39 #10
På man-siden står også, at update-menus ikke læser i brugeres hjemmemapper, når den køres som root, og at den ikke nødvendigvis virker for alle windowmanagers, når den køres som normal bruger.

Jeg vil derfor anbefale, at du lægger filen som /etc/menu/opera i stedet for ~/.menu/opera og derefter kører update-menus som root.
Avatar billede trygleren2000 Nybegynder
16. april 2004 - 17:36 #11
Det virker stadig ikke. Jeg har kopieret din udgave ind i /etc/menu/opera og kørt update-menus. Jeg desuden prøvet at apt'e noget og så fjerne det igen. Bare for at se =)
Avatar billede Slettet bruger
18. april 2004 - 23:04 #12
Så ved jeg det ikke - jeg har ikke selv prøvet, men det burde virke. Bliver andre pakker tilføjet og fjernet fra fluxbox-menuen, som de skal?

Eventuelt kunne du prøve at hente den som deb pakke fra Operas downloadside. Der burde en korrekt menufil være med. Den installeres med

dpkg -i pakkefilnavn
Avatar billede trygleren2000 Nybegynder
19. april 2004 - 16:33 #13
>>Bliver andre pakker tilføjet og fjernet fra fluxbox-menuen, som de skal?

Jepper.

>>Eventuelt kunne du prøve at hente den som deb pakke fra Operas downloadside

Det virker meget fint, men det løser jo ikke mit problem. Opera var bare et eksempel =)
Avatar billede Slettet bruger
19. april 2004 - 19:37 #14
OK, vi har løst det specifikke problem med Opera, og nu tror jeg, at jeg også har fundet en løsning på det generelle problem.

Fidusen er pakkenavnet i starten af menu-definitionen. Det er navnet på en pakke, der skal være installeret, for at update-menus vil sætte menupunktet ind i menuen. Da der ikke var en pakke ved navn opera installeret, kom punktet ikke med i menuen. Løsningen er at skrive local.opera, da pakkenavne, der starter med "local." tæller som værende installeret. Dvs. at filen for opera, når den ikke var installeret som Debianpakke, skulle have set således ud:

?package(local.opera):needs="x11" section="Apps/Net" \
        title="Opera" \
        icon="/usr/share/pixmaps/mozilla-firefox.xpm" \
        command="/usr/bin/opera" hints="Web browsers"

Jeg fandt løsningen i /usr/share/doc/menu/html/ch5.html
Avatar billede trygleren2000 Nybegynder
19. april 2004 - 19:48 #15
Sandbox:

Jeg elsker dig max lige nu! Jeg har gøjlet med det local, men bare efter pakkenavnet =) Desuden har jeg heller ikke lavet filen helt rigtigt, tror jeg.

Takker og bukker mange gange =)
Avatar billede Slettet bruger
19. april 2004 - 19:56 #16
Fint, når det nu virker, kan du prøve at tilføje flere punkter til listen for at få mere præcis styring over menuen. update-menus kan for eksempel forsøge at undgå menuer med alt for mange punkter. Til det bruger den section og hints variablerne i menuspecifikationen. Der er en hel lille bog om det. Indholdsfortegnelsen findes i /usr/share/doc/menu/html/index.html
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester