staging.inyokaproject.org

MyBrowse - ein simpler Webkitbrowser in Python

Status: Ungelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

tuxifreund Team-Icon

Projektleitung
(Themenstarter)

Anmeldungsdatum:
7. November 2020

Beiträge: 1151

Hallo,

ich habe es hinbekommen, die debian-Dateien zu erstellen und das PPA bauen zu lassen. MyBrowse lässt sich jetzt also wie folgt installieren:

Adresszeile zum Hinzufügen des PPAs:

  • ppa:tuxifreund/mybrowse

Hinweis!

Zusätzliche Fremdquellen können das System gefährden.


Ein PPA unterstützt nicht zwangsläufig alle Ubuntu-Versionen. Weitere Informationen sind der

Ungültiges Makro

Dieses Makro ist nicht verfügbar

PPA-Beschreibung des Eigentümers/Teams tuxifreund zu entnehmen.

Falls man jeweils die tagesaktuelle Version aus dem Code haben möchte, lautet das PPA tuxifreund/testing. Das ist aber nicht unbedingt für den Produktiveinsatz geeignet!

Durch das Paketieren hat sich ein Fehler eingeschlichen: die Konfigurationsdatei wird bei der Installation nicht automatisch in das Konfigurationsverzeichnis kopiert. (s. #3) Gleichzeitig fühle ich mich bei dem PPA- und Paketier-Kram noch etwas unsicher. Heißt, es kann sein, dass sich da mehrere Fehler unbemerkt einschleichen.

Was die Umstellung auf die Pathlib betrifft, kümmer ich mich heute mittag darum, da ich das auf dem aktuell verwendeten System nicht testen kann, was ich jedoch will.

LG

tuxifreund

EDIT: Das PPA ist nur für Focal, Groovy und Hirsute möglich.

seahawk1986

Anmeldungsdatum:
27. Oktober 2006

Beiträge: 10978

Ein Paket sollte niemals Dateien ins HOME-Verzeichnis von (beliebigen) Nutzern installieren - aber es ist ok, wenn ein Programm, das vom Nutzer gestartet wurde solche Konfigurationsdateien anlegt, falls sie noch nicht existieren.

tuxifreund Team-Icon

Projektleitung
(Themenstarter)

Anmeldungsdatum:
7. November 2020

Beiträge: 1151

seahawk1986 schrieb:

Ein Paket sollte niemals Dateien ins HOME-Verzeichnis von (beliebigen) Nutzern installieren - aber es ist ok, wenn ein Programm, das vom Nutzer gestartet wurde solche Konfigurationsdateien anlegt, falls sie noch nicht existieren.

😇 Macht ja eigentlich auch Sinn.

Dann füge ich die von Axel-Erfurt hier erwähnte Möglichkeit gelichzeitig mit dem Einführen von Pathlib in den Code ein.

Axel-Erfurt

Anmeldungsdatum:
18. Mai 2016

Beiträge: 1347

Ich würde ein Programm das in der Testphase ist nicht mit Installer oder deb Paket herausgeben.

In der Config (von github) fehlt auch die Sektion Browser

Zum Testen kann man es direkt ausprobieren indem man die mitgelieferte mybrowse.cfg nutzt.

cd /Pfad/zum/myBrowseOrdner
python3 ./mybrowse

Am Anfang des Scripts genügt dann vorerst

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
config = configparser.ConfigParser()
config.read('mybrowse.cfg')

if not config.has_section('Browser'):
    config.add_section('Browser')
    config['Browser']['user-agent'] = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36'
    config['Browser']['firebug'] = ''

searchengine = config['General']['search']
startpage = config['General']['home']

tuxifreund Team-Icon

Projektleitung
(Themenstarter)

Anmeldungsdatum:
7. November 2020

Beiträge: 1151

Hallo,

Axel-Erfurt schrieb:

Ich würde ein Programm das in der Testphase ist nicht mit Installer oder deb Paket herausgeben.

Wieso? Das ein Programm, das gerade erst entsteht, nicht in die offiziellen Repos von Debian, Ubuntu etc. gehört unterstütze ich.

Ich möchte hier nochmal betonen, dass ich mit MyBrowse nicht vorhabe, einen Massenbrowser zu erstellen. Es ist ein Browser für mich und ich werde vorrangig die Features implementieren (natürlich werde ich auch Vorschläge von anderen akzeptieren und ggf. umsetzen, aber ich habe hier auch meine Prioritäten), die für mich wichtig sind. Gleichzeitig ist er ein Lernprojekt für mich. Meine Ziele dafür waren und sind, meine "Kenntnisse" in Python zu verbessern, aber auch zu lernen, wie man paketiert.

In der Config (von github) fehlt auch die Sektion Browser

Ist mir auch aufgefallen, das werde ich im gleichen Zug mit den anderen Änderungen beheben. Da hatte mir ein git push gefehlt.

Gruß, tuxifreund

tuxifreund Team-Icon

Projektleitung
(Themenstarter)

Anmeldungsdatum:
7. November 2020

Beiträge: 1151

Ich habe jetzt den ganzen os-Kram durch Pathlib ersetzt. Gleichzeitig wird jetzt die Konfigurationsdatei beim Start angelegt, wenn sie noch nicht existiert.

haveaproblem

Anmeldungsdatum:
2. Januar 2015

Beiträge: 1127

Ich habe den auch mal probiert. Allerdings funktioniert die Bookmark Funktion bei mir nicht so wirklich.

Traceback (most recent call last):
  File "mybrowse", line 162, in set_bookmark
    bm_file.write('<a href="' + url + '">' + title + '</a><br>\r\n')
NameError: name 'title' is not defined

. Ansonsten ist mir noch negativ aufgefallen, dass die obere Leiste zwar im Fenstermodus ganz gut aussieht, beim maximieren skaliert sie allerdings leider nicht. Ich persönlich würde mir da wünschen, dass die z.B. die Suche rechts angeordnet wird, du könntest ja "einfach" wie es die anderen Browser auch machen, die URL-Leiste skalieren.

Ein andere Punkt wäre noch der user agent, es soll ja noch Websiten geben, die diesen einlesen, die funktionieren mit deinem allerdings eher weniger. Aber Axel-Erfurt hat dafür ja schon ein gutes Beispiel geliefert.

tuxifreund Team-Icon

Projektleitung
(Themenstarter)

Anmeldungsdatum:
7. November 2020

Beiträge: 1151

Hallo,

haveaproblem schrieb:

Ich habe den auch mal probiert. Allerdings funktioniert die Bookmark Funktion bei mir nicht so wirklich.

Traceback (most recent call last):
  File "mybrowse", line 162, in set_bookmark
    bm_file.write('<a href="' + url + '">' + title + '</a><br>\r\n')
NameError: name 'title' is not defined

Oh, da hatte ich hier zu viel gelöscht 😇

Ein andere Punkt wäre noch der user agent, es soll ja noch Websiten geben, die diesen einlesen, die funktionieren mit deinem allerdings eher weniger. Aber Axel-Erfurt hat dafür ja schon ein gutes Beispiel geliefert.

Den User-Agent kann man ja recht einfach in der Konfigurationsdatei bsp. auf den User-Agent von Firefox ändern. Bei dem Darstellen von Webseiten gibt es nämlich IMHO keine großen Fehler. Wobei Browserweichen auf Basis des User-Agents AFAIK in der Webentwicklung verpöhnt sind.

LG

tuxifreund

EDIT: Der Fehler beim als Lesezeichen merkieren von Seiten ist behoben und in das Git-Repo gewandert. Bis heute Abend wird auch das PPA aktuell sein.

haveaproblem

Anmeldungsdatum:
2. Januar 2015

Beiträge: 1127

tuxifreund schrieb:

Den User-Agent kann man ja recht einfach in der Konfigurationsdatei bsp. auf den User-Agent von Firefox ändern. Bei dem Darstellen von Webseiten gibt es nämlich IMHO keine großen Fehler. Wobei Browserweichen auf Basis des User-Agents AFAIK in der Webentwicklung verpöhnt sind.

Verpönt heißt leider nicht, dass es niemand tut. Insbesondere bei kleineren Seite, oder auch älteren kann ich mir vorstellen, dass es zu Problemen kommen kann, ein guter default kann da schon helfen. Aber auch größere greifen gerne mal auf den zurück. ChromeOS unterstützt ja ein besseres Widevin DRM, als die restlichen Linux Distribution, von daher liefert bspw. Netflix da einiges in FHD aus. Überprüfen tun (oder vielleicht haben sie das auch mal geändert) sie das allerdings mithilfe des user strings, wenn man im Firefox den vom Chrome in ChromeOS wählt hat man auch hier unter Ubuntu zugriff, auf die höhere Qualität.

EDIT: Der Fehler beim als Lesezeichen merkieren von Seiten ist behoben und in das Git-Repo gewandert. Bis heute Abend wird auch das PPA aktuell sein.

Supi 😉

tuxifreund Team-Icon

Projektleitung
(Themenstarter)

Anmeldungsdatum:
7. November 2020

Beiträge: 1151

tuxifreund schrieb:

EDIT: Der Fehler beim als Lesezeichen merkieren von Seiten ist behoben und in das Git-Repo gewandert. Bis heute Abend wird auch das PPA aktuell sein.

Das PPA ist aktualisiert. Gleichzeitig ist der Standard-User-Agent jetzt der von Firefox.

tuxifreund Team-Icon

Projektleitung
(Themenstarter)

Anmeldungsdatum:
7. November 2020

Beiträge: 1151

Hallo,

Version 0.3 ist da! Mehrere Änderungen sind eingeflossen:

  • Der Standard-User-Agent ist der von Firefox

  • in der Addressleiste gibt es nun eine Fortschrittsanzeige

  • auf Anregung von ChickenLipsRFun2eat wird die Addressleiste auch als "Kommandoleiste" verwendet

  • einen Starter für’s Startmenü!

  • Tastenkombinationen ( Strg + D zum als Lesezeichen markieren; Strg + R zum Neuladen einer Seite; Strg + Z zum zurückgehen in der chronik sowie Strg + Y zum Vorgehen in der Chronik

  • Chronik (~/.config/mybrowse/history, aufrufbar über about:history)

  • das Fenster ist standardmäßig maximiert

  • beim Hovern über einen Link wird dieser in der Addressleiste angezeigt

  • der Browser-Icon des Systemes wird verwendet

Gleichzeitig ist auch die Addressleiste in eine eigene Zeile gerutscht. Dadurch passt sie sich automatisch der Größe des Fensters an und es ist ein erster Schritt zur Integration von Tabs (kommt bei der nächsten Version ☺ )

In der Kommandoleiste gibt es folgende Kommandos:

  • :report - Link zum Erstellen eines Bugreports

  • :home - Startseite öffnen

  • :back, :undo, :u - zurückgehen in der Chronik

  • :forward, :redo, :r - vorgehen in der Chronik

  • :reload, :rl - Neuladen der Seite

LG

tuxifreund

haveaproblem

Anmeldungsdatum:
2. Januar 2015

Beiträge: 1127

Ich habe die mal kurz angetestet 😉

Kurz Vorweg, ich Nutze nicht das PPA sondern habe einfach nur die Binary upgedatet. Hier gab es dann gleich das Problem, dass der Browser nicht starten wollte

./mybrowse
Traceback (most recent call last):
  File "./mybrowse", line 229, in <module>
    browser = Browser()
  File "./mybrowse", line 129, in __init__
    settings.set_property('enable-webgl', config['Browser']['webgl'])
  File "/usr/lib/python3.8/configparser.py", line 1254, in __getitem__
    raise KeyError(key)
KeyError: 'webgl'

. Ein kurzer Blick in den Code hat mich dann sehen lassen, dass in der Config mittlerweile webgl = True gesetzt wird. Ich habe den Wert dann manuell ergänzt und der Browser startete. Auch wenn ich webgl auf False Setze funktioniert der Browser, ich würde einfach mal den Vorschlag in den Raum werfen alle Parameter, die nicht gesetzt sind als False zu behandeln.

EDIT: Da fällt mir auf gibt es die Option False überhaupt? Es wird ja aktuell nur überprüft, ob die Zeile in der Config gesetzt ist, nicht wie deren Wert ist^^

Wie löst du das eigentlich bei der Distribution mit PPA? Wird da die Config vom Nutzer konstant gelöscht, bei einem Update und der darf das dann neu Anlegen, oder ist es da auch ein Problem?

Ansonsten ist mir letztens Min aufgefallen. Das ist auch ein eher minimaler Browser, deren Bedienflow habe ich allerdings nach einer Minute Nutzen abgelehnt, aber vielleicht ist bei dem Projekt ja was inspirierendes für dich dabei.

tuxifreund Team-Icon

Projektleitung
(Themenstarter)

Anmeldungsdatum:
7. November 2020

Beiträge: 1151

Hallo,

haveaproblem schrieb:

Ich habe die mal kurz angetestet 😉

Ich habe befürchtet, dass dieser Fehler bei irgendwem auftritt... Im übrigen ist das nicht die aktuelle Version die Du getestet hast, sondern der Entwicklungszweig. Die aktuelle Version muss dann halt erst mit Git ausgecheckt werden. WEnn ich das richtig im Kopf habe:

git checkout v0.3

oder so ähnlich... Das ist dann auch das ERgebnis, was man in ppa:tuxifreund/mybrowse erhält (hoffe ich)

. Ein kurzer Blick in den Code hat mich dann sehen lassen, dass in der Config mittlerweile webgl = True gesetzt wird. Ich habe den Wert dann manuell ergänzt und der Browser startete. Auch wenn ich webgl auf False Setze funktioniert der Browser, ich würde einfach mal den Vorschlag in den Raum werfen alle Parameter, die nicht gesetzt sind als False zu behandeln.

Die selbe Frage hatte ich mir auch schon gestellt. An Standardparameter habe ich auch gedacht, habe das aber noch nicht eingebaut.

Wie löst du das eigentlich bei der Distribution mit PPA? Wird da die Config vom Nutzer konstant gelöscht, bei einem Update und der darf das dann neu Anlegen, oder ist es da auch ein Problem?

wenn man das PPA benutzt, wird aktuell nur das Binary (/usr/bin/mybrowse) und der Desktop-Starter (in neueren Versionen) überschrieben, die Konfiguration nicht. Zum einen finde ich es nämlich unschön, wenn man sich bei einer Konfiguration eines Programmes mühe gegeben hat und diese danach über den Jordan gejagt wird und zum anderen darf der Installer, wie man(tm) mir ja beibrachte nicht in das Home-Verzeichnis schreiben.

Was ich mir vorstelle, ist das bei allen Parametern, die nicht in der Konfig sind, wird einfach der Standardwert genommen und auf stdout ein Hinweis ausgegeben.

Ansonsten ist mir letztens Min aufgefallen. Das ist auch ein eher minimaler Browser, deren Bedienflow habe ich allerdings nach einer Minute Nutzen abgelehnt, aber vielleicht ist bei dem Projekt ja was inspirierendes für dich dabei.

Tatsächlich hatte ich Min aufgrund dieses 🇩🇪 Blogbeitrages schon mal benutzt. Der Workflow war nicht das Problem, sondern die Tatsache, dass es ein Webbrowser auf Electron 🇬🇧 ist. Die Idee hinter Electron finde ich gut (und ich streitete mich deshalb sogar im IRC 😉 ), allerdings ist eine Electronanwendung alles, aber nicht immer ressourcenschonend. Sonst hätte ich MyBrowse vielleicht sogar selbst in HTML, CSS und JS geschrieben und das mit Electron verpackt.

Trotzdem: Danke für die vielen Anregungen, die ich hier (und auch per PN, IRC) erreiche! auch die Hinweise auf andere Browser mit tollen Bedienkonzepten berücksichtige ich, erst Qutebrowser, jetzt Min (ich bin gespannt, wann mir der erste Firefox oder Lynx vorschlägt...)

LG

tuxifreund

EDIT: Zur Verfolgung und damit ich es aktuell nicht vergesse → #4

Axel-Erfurt

Anmeldungsdatum:
18. Mai 2016

Beiträge: 1347

Den ersten Beitrag solltest Du vielleicht ändern denn das funktioniert ja nicht mehr da es keine install.sh mehr gibt in deinem master.

tuxifreund schrieb:

Die Installation gestaltet sich wie folgt:

wget https://raw.githubusercontent.com/KaiserBarbarossa/MyBrowse/master/install.sh
chmod +x install.sh
./install.sh

tuxifreund Team-Icon

Projektleitung
(Themenstarter)

Anmeldungsdatum:
7. November 2020

Beiträge: 1151

Axel-Erfurt schrieb:

Den ersten Beitrag solltest Du vielleicht ändern denn das funktioniert ja nicht mehr da es keine install.sh mehr gibt in deinem master.

Ein netter Moderator war so nett und hat sich dessen angenommen 😉