From 272ed4245759fb4070984fb4d6fc7dafd2da7779 Mon Sep 17 00:00:00 2001 From: "Haelwenn (lanodan) Monnier" Date: Tue, 12 Mar 2019 08:37:52 +0100 Subject: fixup: Add configuration of tab label (ellipsis, size) --- badwolf.c | 4 ++-- config.h | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/badwolf.c b/badwolf.c index b0fa3f1..117f19a 100644 --- a/badwolf.c +++ b/badwolf.c @@ -113,8 +113,8 @@ GtkWidget *badwolf_new_tab_box(const gchar *title, struct Client *browser) GtkWidget *playing = gtk_image_new_from_icon_name("media-playback-start-symbolic", GTK_ICON_SIZE_SMALL_TOOLBAR); - gtk_label_set_width_chars(GTK_LABEL(label), BADWOLF_TAB_LABEL_CHARWIDTH); // 26 - gtk_label_set_ellipsize(GTK_LABEL(label), BADWOLF_TAB_LABEL_ELLIPSIZE); // PANGO_ELLIPSIZE_MIDDLE + gtk_label_set_width_chars(GTK_LABEL(label), BADWOLF_TAB_LABEL_CHARWIDTH); + gtk_label_set_ellipsize(GTK_LABEL(label), BADWOLF_TAB_LABEL_ELLIPSIZE); gtk_label_set_single_line_mode(GTK_LABEL(label), TRUE); gtk_box_pack_start(GTK_BOX(tab_box), playing, FALSE, FALSE, 0); diff --git a/config.h b/config.h index 9202a1e..f4a8a59 100644 --- a/config.h +++ b/config.h @@ -19,6 +19,7 @@ * * See https://developer.gnome.org/pango/stable/pango-Layout-Objects.html#PangoEllipsizeMode */ +#define BADWOLF_TAB_LABEL_ELLIPSIZE PANGO_ELLIPSIZE_MIDDLE // BADWOLF_BOX_PADDING: Amount of padding between browser’s box (tab child) elements #define BADWOLF_BOX_PADDING 0 -- cgit v1.3.1-23-gd82d From 6c28568f2fe50e0cea5206dbba6dc307c3adb7da Mon Sep 17 00:00:00 2001 From: "Haelwenn (lanodan) Monnier" Date: Tue, 12 Mar 2019 09:00:39 +0100 Subject: Add `make format` and format the code --- .clang-format | 20 ++++++++++++++++++++ Makefile | 3 +++ badwolf.c | 33 ++++++++++++++++++++++++--------- 3 files changed, 47 insertions(+), 9 deletions(-) create mode 100644 .clang-format diff --git a/.clang-format b/.clang-format new file mode 100644 index 0000000..0fc9f1a --- /dev/null +++ b/.clang-format @@ -0,0 +1,20 @@ +AlignAfterOpenBracket: true +AlignConsecutiveAssignments: true +AlignOperands: true +AlignTrailingComments: true +AllowShortCaseLabelsOnASingleLine: true +AllowShortFunctionsOnASingleLine: true +AllowShortIfStatementsOnASingleLine: true +BinPackArguments: false +BinPackParameters: false +BreakBeforeBraces: Allman +SpaceBeforeParens: Never +IncludeBlocks: Regroup +ReflowComments: false +SortIncludes: true +UseTab: ForIndentation +IndentWidth: 2 +TabWidth: 2 +ColumnLimit: 100 + +NamespaceIndentation: All diff --git a/Makefile b/Makefile index ebadbcf..17e7b2c 100644 --- a/Makefile +++ b/Makefile @@ -11,4 +11,7 @@ install: badwolf clean: rm badwolf +format: *.c *.h + clang-format -style=file -assume-filename=~/.clang-format -i *.c *.h + .PHONY: clean install diff --git a/badwolf.c b/badwolf.c index 117f19a..d537f38 100644 --- a/badwolf.c +++ b/badwolf.c @@ -327,13 +327,28 @@ new_browser(struct Window *window, gchar *target_url, WebKitWebView *related_web gtk_widget_set_tooltip_text(browser->javascript, "Toggle javascript"); - gtk_box_pack_start(GTK_BOX(browser->toolbar), GTK_WIDGET(browser->javascript), FALSE, FALSE, BADWOLF_TOOLBAR_PADDING); - gtk_box_pack_start(GTK_BOX(browser->toolbar), GTK_WIDGET(browser->location), TRUE, TRUE, BADWOLF_TOOLBAR_PADDING); - gtk_box_pack_start(GTK_BOX(browser->toolbar), GTK_WIDGET(browser->search), FALSE, FALSE, BADWOLF_TOOLBAR_PADDING); - - gtk_box_pack_start(GTK_BOX(browser->box), GTK_WIDGET(browser->toolbar), FALSE, FALSE, BADWOLF_BOX_PADDING); - gtk_box_pack_start(GTK_BOX(browser->box), GTK_WIDGET(browser->webView), TRUE, TRUE, BADWOLF_BOX_PADDING); - gtk_box_pack_start(GTK_BOX(browser->box), GTK_WIDGET(browser->statusbar), FALSE, FALSE, BADWOLF_BOX_PADDING); + gtk_box_pack_start(GTK_BOX(browser->toolbar), + GTK_WIDGET(browser->javascript), + FALSE, + FALSE, + BADWOLF_TOOLBAR_PADDING); + gtk_box_pack_start(GTK_BOX(browser->toolbar), + GTK_WIDGET(browser->location), + TRUE, + TRUE, + BADWOLF_TOOLBAR_PADDING); + gtk_box_pack_start(GTK_BOX(browser->toolbar), + GTK_WIDGET(browser->search), + FALSE, + FALSE, + BADWOLF_TOOLBAR_PADDING); + + gtk_box_pack_start( + GTK_BOX(browser->box), GTK_WIDGET(browser->toolbar), FALSE, FALSE, BADWOLF_BOX_PADDING); + gtk_box_pack_start( + GTK_BOX(browser->box), GTK_WIDGET(browser->webView), TRUE, TRUE, BADWOLF_BOX_PADDING); + gtk_box_pack_start( + GTK_BOX(browser->box), GTK_WIDGET(browser->statusbar), FALSE, FALSE, BADWOLF_BOX_PADDING); gtk_widget_set_halign(browser->statusbar, GTK_ALIGN_START); gtk_label_set_single_line_mode(GTK_LABEL(browser->statusbar), TRUE); @@ -433,8 +448,8 @@ void closeCb_clicked(GtkButton *close, gpointer user_data) (void)close; struct Client *browser = (struct Client *)user_data; GtkNotebook *notebook = GTK_NOTEBOOK(browser->window->notebook); - GValue position = G_VALUE_INIT; - g_value_init (&position, G_TYPE_INT); + GValue position = G_VALUE_INIT; + g_value_init(&position, G_TYPE_INT); gtk_container_child_get_property(GTK_CONTAINER(notebook), browser->box, "position", &position); -- cgit v1.3.1-23-gd82d From e0fae8b8cc66cb5eda25d85a3ce36ab51121cc9a Mon Sep 17 00:00:00 2001 From: "Haelwenn (lanodan) Monnier" Date: Tue, 12 Mar 2019 08:56:08 +0100 Subject: Follow Gnome Icon guidline / Epiphany choices --- badwolf.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/badwolf.c b/badwolf.c index d537f38..6147885 100644 --- a/badwolf.c +++ b/badwolf.c @@ -108,10 +108,11 @@ GtkWidget *badwolf_new_tab_box(const gchar *title, struct Client *browser) { (void)browser; GtkWidget *tab_box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); - GtkWidget *close = gtk_button_new_from_icon_name("window-close", GTK_ICON_SIZE_SMALL_TOOLBAR); - GtkWidget *label = gtk_label_new(title); + GtkWidget *close = + gtk_button_new_from_icon_name("window-close-symbolic", GTK_ICON_SIZE_SMALL_TOOLBAR); + GtkWidget *label = gtk_label_new(title); GtkWidget *playing = - gtk_image_new_from_icon_name("media-playback-start-symbolic", GTK_ICON_SIZE_SMALL_TOOLBAR); + gtk_image_new_from_icon_name("audio-volume-high-symbolic", GTK_ICON_SIZE_SMALL_TOOLBAR); gtk_label_set_width_chars(GTK_LABEL(label), BADWOLF_TAB_LABEL_CHARWIDTH); gtk_label_set_ellipsize(GTK_LABEL(label), BADWOLF_TAB_LABEL_ELLIPSIZE); @@ -468,7 +469,7 @@ int main(int argc, char *argv[]) window->main_window = gtk_window_new(GTK_WINDOW_TOPLEVEL); window->notebook = gtk_notebook_new(); - window->new_tab = gtk_button_new_from_icon_name("tab-new", GTK_ICON_SIZE_SMALL_TOOLBAR); + window->new_tab = gtk_button_new_from_icon_name("tab-new-symbolic", GTK_ICON_SIZE_SMALL_TOOLBAR); gtk_window_set_role(GTK_WINDOW(window->main_window), "browser"); -- cgit v1.3.1-23-gd82d From 39c7dc371bf8dbcc724e30d11c668cf7850d86f5 Mon Sep 17 00:00:00 2001 From: "Haelwenn (lanodan) Monnier" Date: Thu, 14 Mar 2019 23:31:12 +0100 Subject: KnowledgeBase.md: Add “Content-Blockers firt look” MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- KnowledgeBase.md | 1 + 1 file changed, 1 insertion(+) diff --git a/KnowledgeBase.md b/KnowledgeBase.md index 12bf3b8..f5f9f9a 100644 --- a/KnowledgeBase.md +++ b/KnowledgeBase.md @@ -1,3 +1,4 @@ - Similar WebKitGTK+ browser: https://www.uninformativ.de/git/lariza/ - WebKit2 Extensions Tutorial: https://blogs.igalia.com/carlosgc/2013/09/10/webkit2gtk-web-process-extensions/ - https://trac.torproject.org/projects/tor/wiki/doc/ImportantGoogleChromeBugs / https://trac.torproject.org/projects/tor/ticket/1925 +- https://webkit.org/blog/3476/content-blockers-first-look/ -- cgit v1.3.1-23-gd82d From 7e7de609f22e277778ce4d83cac236e6084bf065 Mon Sep 17 00:00:00 2001 From: "Haelwenn (lanodan) Monnier" Date: Thu, 14 Mar 2019 23:32:34 +0100 Subject: README.md: Add differencies, document installation --- README.md | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index d707444..7421583 100644 --- a/README.md +++ b/README.md @@ -5,15 +5,28 @@ SPDX-License-Identifier: BSD-3-Clause The name is a reference to BBC’s Doctor Who Tv serie, I took it simply because I wanted to have a specie in the name, like some other web browsers do, but doesn’t go into the “gentle” zone. -Target: https://hacktivis.me/articles/www-client%20are%20broken +## Differencies +Comparing from other small WebKit browsers for unixes found in the wild: + +- Independent of environment, should just work if GTK and WebKitGTK does +- Static UI, no element should be added at runtime, this is to avoid potential tracking via viewport changes +- Small codebase, right now we are well under 1 000 lines +- Does not use modal editing (from vi) as that was designed for editing, not browsing +- UTF-8 encoding by default + +Motivation from other clients ## Repositories - Main: , - Mirror: , this one can also be used if you prefer tickets/PRs over emails -## Dependencies -- WebKitGTK+ -- GTK3+ +## Manual Installation +Dependencies are: +- [WebKitGTK](https://webkitgtk.org/), only the latest stable will be fully supported +- C99+ Compiler (such as clang or gcc) +- POSIX make (works with GNU or BSD) + +Compilation is done with `make`, install with `make install`. ## Notes Most of the privacy/security stuff will be done with patches against WebKit as quite a lot isn’t into [WebKitSettings](https://webkitgtk.org/reference/webkit2gtk/stable/WebKitSettings.html) and with a generic WebKit extension that should be resuseable. -- cgit v1.3.1-23-gd82d From 8394c14c20249bb8410f18cc7385a9ef170f8527 Mon Sep 17 00:00:00 2001 From: "Haelwenn (lanodan) Monnier" Date: Thu, 14 Mar 2019 23:35:20 +0100 Subject: README.md: release tarballs and their signature --- README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/README.md b/README.md index 7421583..ba66abf 100644 --- a/README.md +++ b/README.md @@ -17,9 +17,16 @@ Comparing from other small WebKit browsers for unixes found in the wild: Motivation from other clients ## Repositories +### git - Main: , - Mirror: , this one can also be used if you prefer tickets/PRs over emails +### release tarballs +- Main: +- Mirror: + +Files ending in `.sig` are OpenPGP signatures done with my [key](https://hacktivis.me/key.asc)(`DDC9 237C 14CF 6F4D D847 F6B3 90D9 3ACC FEFF 61AE`). + ## Manual Installation Dependencies are: - [WebKitGTK](https://webkitgtk.org/), only the latest stable will be fully supported -- cgit v1.3.1-23-gd82d From 0212b95883a4587183dae292b2e5badf64353e37 Mon Sep 17 00:00:00 2001 From: "Haelwenn (lanodan) Monnier" Date: Thu, 14 Mar 2019 23:40:40 +0100 Subject: README.md: Fix copyright header formatting --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index ba66abf..0ac1779 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,9 @@ # BadWolf Minimalist and privacy-oriented WebKitGTK+ browser +``` Copyright © 2019 Haelwenn (lanodan) Monnier SPDX-License-Identifier: BSD-3-Clause +``` The name is a reference to BBC’s Doctor Who Tv serie, I took it simply because I wanted to have a specie in the name, like some other web browsers do, but doesn’t go into the “gentle” zone. -- cgit v1.3.1-23-gd82d