You are not logged in.

#1 2014-12-14 23:07:56

The Compiler
Member
From: Winterthur, Switzerland
Registered: 2011-05-01
Posts: 211
Website

qutebrowser - A keyboard-driven, vim-like browser based on PyQt5

Hi,

qutebrowser is a keyboard-driven, vim-like browser based on PyQt5. It is mainly inspired by dwb and similiar to projects like Vimperator/Pentadactyl, luakit, and others.

More information about qutebrowser is available at https://www.qutebrowser.org.
There's qutebrowser in [community] and qutebrowser-git in the AUR.

I originally started with qutebrowser because it was announced dwb (my favourite browser at the time) was unmaintained and I was unsatisfied with existing alternatives.

The following features are already available:

  • All the basic functionality you'd expect (i.e. browsing, tabs, javascript, flash support, etc.)

  • Modal, vim-like input scheme.

  • Cross-platform support (Linux, Windows, OS X)

  • Adblocking via /etc/hosts-like files.

  • Hinting (selecting links via keyboard)

  • Downloads

  • quickmarks (bookmarks with a label)

  • Userscripts (e.g. shellscripts writing commands to a FIFO)

  • Basic completion for URLs, commands, settings and quickmarks

  • Sessions

Support is available in #qutebrowser on Freenode via IRC, or on the mailinglist at qutebrowser@lists.qutebrowser.org (mailman info page).

I'd be happy to hear about your thoughts and feature requests either here, via the above channels, or via the issue tracker.

Florian

Last edited by The Compiler (2017-05-20 21:35:41)


>>> from __future__ import braces
  File "<stdin>", line 1
SyntaxError: not a chance

Offline

#2 2014-12-14 23:54:54

lucas7_
Member
Registered: 2014-10-21
Posts: 10

Re: qutebrowser - A keyboard-driven, vim-like browser based on PyQt5

does it support greasemonkey scripts?

Offline

#3 2014-12-14 23:56:44

The Compiler
Member
From: Winterthur, Switzerland
Registered: 2011-05-01
Posts: 211
Website

Re: qutebrowser - A keyboard-driven, vim-like browser based on PyQt5

I'm afraid not yet - and due to QtWebKit, if implemented, it won't work when javascript is turned off for the page.

The closest thing possible currently is an user-defined stylesheet.


>>> from __future__ import braces
  File "<stdin>", line 1
SyntaxError: not a chance

Offline

#4 2014-12-15 05:13:21

sdothum
Member
Registered: 2013-04-26
Posts: 14

Re: qutebrowser - A keyboard-driven, vim-like browser based on PyQt5

Great 0.1 release! I just caught your "shameless plug" and scooted over.

Quick AUR install. But with only a few minutes available to test before retiring for the night, I am impressed! ..Enough so that I will be attempting to migrate my luakit customizations (mainly search and keyboard shortcuts and bookmark/history dmenu integration) to qutebrowser. dwb never displaced luakit for me -- some security issues with tt-rss for me but qutebrowser has no problems here.

Great work. Now to sort out my luakit keybindings with qutebrowser..

Offline

#5 2014-12-15 06:05:25

The Compiler
Member
From: Winterthur, Switzerland
Registered: 2011-05-01
Posts: 211
Website

Re: qutebrowser - A keyboard-driven, vim-like browser based on PyQt5

sdothum wrote:

Great 0.1 release! I just caught your "shameless plug" and scooted over.

Quick AUR install. But with only a few minutes available to test before retiring for the night, I am impressed! ..Enough so that I will be attempting to migrate my luakit customizations (mainly search and keyboard shortcuts and bookmark/history dmenu integration) to qutebrowser. dwb never displaced luakit for me -- some security issues with tt-rss for me but qutebrowser has no problems here.

Great work. Now to sort out my luakit keybindings with qutebrowser..

Glad to hear! As always, let me know about any things you miss and bugs you might encounter wink

Mind elaborating on the dwb tt-rss issue? Did you just have some kind of SSL errors?


>>> from __future__ import braces
  File "<stdin>", line 1
SyntaxError: not a chance

Offline

#6 2014-12-15 15:12:58

sdothum
Member
Registered: 2013-04-26
Posts: 14

Re: qutebrowser - A keyboard-driven, vim-like browser based on PyQt5

I never pin pointed the problem.. only that dwb was the only browser amongst many that required (being launched by) root to access tt-rss. That was a deal breaker for me as I use tt-rss extensively (that's how I found qutebrowser)!

A couple of things I've noticed which may be due to not having studied your well documented configuration files..

1. Bookmark and history databases: where are they, if at all? I scoured the directories but didn't find anything obvious. If not, something similar to luakit's implementation would be nice using sqlite3. History -> date, time, url, url title. Bookmark -> date, time, url, url title, tags. I use dmenu extensively for searching these databases and providing me the option of which browser to launch. However you would implement such, I would integrate it into my dmenu configuration.

2. Is there a way to hot key a java script?

3. I like to toggle the visibility of the tab / status bars -- I generally have them hidden with luakit, one of the reasons I use it. Either I don't have many tabs open (in which case moving between tabs is easy) or I have too many tabs open (in which case the content showing in the tabs is truncated beyond usefulness other than to illustrate lots of tabs open -- though qutebrowser's ability to position them east/west is brilliant)! I just generally like looking at a clean window -- a personal thing. Perhaps being able to set the auto-hide trigger point (from a default value of 1) would be a useful.

That's it for now.. Now I have to decide whether to try to remap everything to what I am familiar with after years of luakit usage and customization, or learn something new!

Offline

#7 2014-12-15 15:27:39

The Compiler
Member
From: Winterthur, Switzerland
Registered: 2011-05-01
Posts: 211
Website

Re: qutebrowser - A keyboard-driven, vim-like browser based on PyQt5

sdothum wrote:

I never pin pointed the problem.. only that dwb was the only browser amongst many that required (being launched by) root to access tt-rss. That was a deal breaker for me as I use tt-rss extensively (that's how I found qutebrowser)!

That sounds weird! I wonder if it just was some cookie/cache/... problem which went away because root is another user. I can try with dwb and my tt-rss installation later today.

sdothum wrote:

1. Bookmark and history databases: where are they, if at all? I scoured the directories but didn't find anything obvious. If not, something similar to luakit's implementation would be nice using sqlite3. History -> date, time, url, url title. Bookmark -> date, time, url, url title, tags. I use dmenu extensively for searching these databases and providing me the option of which browser to launch. However you would implement such, I would integrate it into my dmenu configuration.

Currently there are only "quickmarks" which are a label and an URL. You can set a mark using m and then reopen it using b and entering the name. Those are saved in ~/.config/qutebrowser/quickmarks as a plaintext file. See issue #17 for real bookmarks.

There's no history yet. See issue #33.

I'd prefer plaintext files to sqlite if it's feasible performance-wise.

sdothum wrote:

2. Is there a way to hot key a java script?

issue #221 (javascript bookmarklets) is related, but probably there should be a :jseval command. I created issue #334 so I don't forget. smile

sdothum wrote:

3. I like to toggle the visibility of the tab / status bars -- I generally have them hidden with luakit, one of the reasons I use it. Either I don't have many tabs open (in which case moving between tabs is easy) or I have too many tabs open (in which case the content showing in the tabs is truncated beyond usefulness other than to illustrate lots of tabs open -- though qutebrowser's ability to position them east/west is brilliant)! I just generally like looking at a clean window -- a personal thing. Perhaps being able to set the auto-hide trigger point (from a default value of 1) would be a useful.

Currently there's the tabs -> auto-hide setting which hides the tabbar as soon as only one tab is open. What you'd need is basically a "minimum/maximum tab count to show tabs" setting, right?

Maybe auto-hide should accept an integer min and min,max in addition to true/false?

sdothum wrote:

That's it for now.. Now I have to decide whether to try to remap everything to what I am familiar with after years of luakit usage and customization, or learn something new!

The cheat sheet might help smile

Florian


>>> from __future__ import braces
  File "<stdin>", line 1
SyntaxError: not a chance

Offline

#8 2014-12-15 18:12:05

sdothum
Member
Registered: 2013-04-26
Posts: 14

Re: qutebrowser - A keyboard-driven, vim-like browser based on PyQt5

The Compiler wrote:

I'd prefer plaintext files to sqlite if it's feasible performance-wise.

That would work for me.. if memory serves me right, I believe luakit originally stored its bookmarks and history in plain text. That actually would save me a step to pull the data into a text file for dmenu processing smile It would be advantageous to be able to have tags added if possible to bookmarks e.g. bookmarks = url, url title, tags and history = date, time, url, url title. I'll jump on that when you have that functionality available!

The Compiler wrote:

Maybe auto-hide should accept an integer min and min,max in addition to true/false?

I was thinking that a single value would suffice, with more than the value showing tabs, less than with no tabs.

Steven

Offline

#9 2014-12-15 19:13:36

skottish
Forum Fellow
From: Here
Registered: 2006-06-16
Posts: 7,942

Re: qutebrowser - A keyboard-driven, vim-like browser based on PyQt5

Plain text is a million times better for bookmarks. A billion. An ubergazillion.

sdothum wrote:

That would work for me.. if memory serves me right, I believe luakit originally stored its bookmarks and history in plain text. That actually would save me a step to pull the data into a text file for dmenu processing smile It would be advantageous to be able to have tags added if possible to bookmarks e.g. bookmarks = url, url title, tags and history = date, time, url, url title. I'll jump on that when you have that functionality available!

URLs, page descriptions, and tags together for bookmarks makes life an ubergazillion times better as well... as long as reading everything is case insensitive.

*** One more thing ***

Please do not sort the bookmarks. My bookmarks for dwb are organized so that the stuff that I use a lot is on top of the auto-completion list.

Last edited by skottish (2014-12-15 19:20:09)

Offline

#10 2014-12-16 22:28:27

Gadileth
Member
Registered: 2013-08-02
Posts: 32

Re: qutebrowser - A keyboard-driven, vim-like browser based on PyQt5

Installed the browser. Seems really great.

Will test it in the next days!

Offline

#11 2014-12-17 01:52:45

r6
Member
From: Melbourne
Registered: 2008-07-02
Posts: 156

Re: qutebrowser - A keyboard-driven, vim-like browser based on PyQt5

Thanks for the browser, it would be nice to move on from luakit.

A few niggles so far:

Vertical scrolling with my touchpad works in reverse to other apps.
The app seems to overwrite the configs when it's closed - bleh.
Is it possible to follow links by typing the link text?

Offline

#12 2014-12-17 06:07:56

wretch
Member
From: pdx
Registered: 2012-11-24
Posts: 22

Re: qutebrowser - A keyboard-driven, vim-like browser based on PyQt5

Hi Florian,

Awesome work! A few questions:
    * I currently set my window/frame borders in hlwm, and my colors in bar, based off my terminal color hex codes for urxvt in Xresources.  Are there any hooks (current or planned) that would allow me to do this during qutebrowser startup? A post-configuration callback (python or otherwise)? Or should I just do some sed'ing in xinit?
    * Any way to change status and tab bar heights via the conf file?

Thanks for the sane defaults btw, I switched it over to my default browser without much hesitation.

EDIT: How about disabling the scroll-on-tabbar-to-switch-tabs feature?

Last edited by wretch (2014-12-17 06:14:50)

Offline

#13 2014-12-17 10:37:11

kiiroitori
Member
Registered: 2013-11-06
Posts: 8

Re: qutebrowser - A keyboard-driven, vim-like browser based on PyQt5

Hi Florian,

The browser feels and looks very nice. I am using both dwb and firefox but qutebrowser looks like it will replace my dwb.
Questions:

Will there be a 'request policy' add-on or function?
Apart from the bind function, is there another to edit keybindings?

Thanks a lot for your work!

Offline

#14 2014-12-17 17:48:14

thearcherblog
Member
Registered: 2014-10-30
Posts: 165

Re: qutebrowser - A keyboard-driven, vim-like browser based on PyQt5

Hello smile

Amazing browser... I just discovered because dwb, the one I love, was not loading properly some sites... then I found that has been unmaintained sad

Fortunately, I found yours and I'm really happy but... (always there is a but) I found that some bank websites are giving me messages about the version (refers as Safari smile)

I attach you and screen shot:
http://postimg.org/image/llfso6u3n/
Bank Warning

I hope to help to make of this, the best browser smile

Best regards,


TheArcher

Offline

#15 2014-12-17 20:11:42

rikn00
Member
Registered: 2014-06-26
Posts: 21

Re: qutebrowser - A keyboard-driven, vim-like browser based on PyQt5

Default user agent is Safari something I think. Try to change that setting.

Offline

#16 2014-12-17 20:48:15

sdothum
Member
Registered: 2013-04-26
Posts: 14

Re: qutebrowser - A keyboard-driven, vim-like browser based on PyQt5

r6 wrote:

The app seems to overwrite the configs when it's closed - bleh.

The configuration update can be disabled by setting "auto-save-config" to false in the qutebrowser.conf.

My guess is that the author wants to make sure the configuration file remains current as configuration settings are added or changed as features are implemented. I'm daunted just looking at the list of features and requests in the queue!

qutebrowser is shaping up into a great browser.. Once history and bookmarks are implemented qutebrowser will replace luakit for my day to day usage. That's saying a lot considering how long I've used luakit and how young this project is! Kudos Florian!

Offline

#17 2014-12-18 06:09:19

thearcherblog
Member
Registered: 2014-10-30
Posts: 165

Re: qutebrowser - A keyboard-driven, vim-like browser based on PyQt5

rikn00 wrote:

Default user agent is Safari something I think. Try to change that setting.

As soon as I know how to change it, I will do it smile

Btw, yesterday I was surfing the web a bit more with this broser... amazing, really good. I missing less the DWB smile

Of course, would be nice, at least for me, to have a nice welcome screen as dwb had with the settings in html format, bookmarks and quickmarks and so on. But, c'mon, is a young project so I would be really happy if we can make it grow smile

Thanks a lot!

Offline

#18 2014-12-18 09:03:14

hollandheese
Member
Registered: 2014-08-11
Posts: 2

Re: qutebrowser - A keyboard-driven, vim-like browser based on PyQt5

Super fast. Just wish it wasn't using QT5 since font rendering is terrible in that toolkit. Not your fault of course.

Offline

#19 2014-12-18 11:14:16

thearcherblog
Member
Registered: 2014-10-30
Posts: 165

Re: qutebrowser - A keyboard-driven, vim-like browser based on PyQt5

hollandheese wrote:

Super fast. Just wish it wasn't using QT5 since font rendering is terrible in that toolkit. Not your fault of course.

I'm agree as well wink

Maybe will be a GTK version in the future? smile

Offline

#20 2014-12-18 12:06:06

rikn00
Member
Registered: 2014-06-26
Posts: 21

Re: qutebrowser - A keyboard-driven, vim-like browser based on PyQt5

thearcherblog wrote:
rikn00 wrote:

Default user agent is Safari something I think. Try to change that setting.

As soon as I know how to change it, I will do it smile

You can set user agent with command

:set network user-agent ***

where *** is the user agent string. Or you can change it in ~/.config/qutebrowser/qutebrowser.conf.

Offline

#21 2014-12-18 12:48:30

thearcherblog
Member
Registered: 2014-10-30
Posts: 165

Re: qutebrowser - A keyboard-driven, vim-like browser based on PyQt5

rikn00 wrote:
thearcherblog wrote:
rikn00 wrote:

Default user agent is Safari something I think. Try to change that setting.

As soon as I know how to change it, I will do it smile

You can set user agent with command

:set network user-agent ***

where *** is the user agent string. Or you can change it in ~/.config/qutebrowser/qutebrowser.conf.

Working like a charm after changing it to: Mozilla/5.0

Super thanks smile

Regards,


TheArcher

Last edited by thearcherblog (2014-12-18 12:49:33)

Offline

#22 2014-12-18 17:41:32

erykroom
Member
Registered: 2013-12-06
Posts: 25

Re: qutebrowser - A keyboard-driven, vim-like browser based on PyQt5

Thanks for the contribution. I really liked dwb and I have great hopes for this

Offline

#23 2014-12-19 01:21:00

r6
Member
From: Melbourne
Registered: 2008-07-02
Posts: 156

Re: qutebrowser - A keyboard-driven, vim-like browser based on PyQt5

sdothum wrote:
r6 wrote:

The app seems to overwrite the configs when it's closed - bleh.

The configuration update can be disabled by setting "auto-save-config" to false in the qutebrowser.conf.

My guess is that the author wants to make sure the configuration file remains current as configuration settings are added or changed as features are implemented. I'm daunted just looking at the list of features and requests in the queue!

Ok, thanks. I feel like you should have to explicitly turn the auto-save feature on, because that behaviour was unexpected and I lost all my changes the first time.

Regardless I've gone back to luakit for now, but as others have said, a GTK version would be great. Though I see on reddit the main dev isn't a fan of WebkitGTK.

Offline

#24 2014-12-19 06:10:43

The Compiler
Member
From: Winterthur, Switzerland
Registered: 2011-05-01
Posts: 211
Website

Re: qutebrowser - A keyboard-driven, vim-like browser based on PyQt5

Oh wow! I was relying on the forum mail to get notified when there are new replies here, and I already was wondering why nothing was going on in here... until I just got a mail now, and there are a lot more replies!

Not sure why that happened, but I subscribed to the Atom-feed now as well, hope that'll help!

I'll try to answer to everthing in this post. Probably with issue links for the most things though, as I'm busy fixing bugs for v0.1.1 and only then will look at new features big_smile

If you have a github account I suggest subscribing to the issues, then you'll know when there are updates!

Also there's the mailinglist with weekly posts by me explaining what's new.

skottish wrote:

URLs, page descriptions, and tags together for bookmarks makes life an ubergazillion times better as well... as long as reading everything is case insensitive.

I added these ideas to issue #17.

skottish wrote:

Please do not sort the bookmarks. My bookmarks for dwb are organized so that the stuff that I use a lot is on top of the auto-completion list.

issue #372.

r6 wrote:

Vertical scrolling with my touchpad works in reverse to other apps.

Huh? So it scrolls up when you scroll down and vice-versa? That's odd.

Does that also happen in other widgets than the web view, e.g. if you do :report and open the text field under "Show log" there? Does it also happen when you start minimal_webkit_testbrowser.py with some URL as argument?

Can you share some more details, like the hardware you're on, and the output of xinput list --long?

r6 wrote:

The app seems to overwrite the configs when it's closed - bleh.

I'm sorry to hear this has caused trouble! sad

Honestly I didn't expect many people to edit the config by hand. Then again, I probably shouldn't have made the generated config so well documented! tongue

I opened issue #373 to add a warning to the config until this is solved properly. (I'd do that right now, but I'm writing this from inside qutebrowser tongue)

r6 wrote:

Is it possible to follow links by typing the link text?

Yes - :set hints mode number.

wretch wrote:

I currently set my window/frame borders in hlwm, and my colors in bar, based off my terminal color hex codes for urxvt in Xresources.  Are there any hooks (current or planned) that would allow me to do this during qutebrowser startup? A post-configuration callback (python or otherwise)? Or should I just do some sed'ing in xinit?

There's issue #35 for "generic" hooks calling scripts. And issue #30 for Python plugin support. Though both probably will take a while until they're implemented (unless someone contributes code on that!), so for now probably the sed'ing tongue

wretch wrote:

Any way to change status and tab bar heights via the conf file?

They should adjust to the text size in them, which you can customize via the fonts -> statusbar and fonts -> tabbar settings.

Does this suffice for you? Maybe a "padding" setting would make sense? Or what's the motivation behind changing this exactly?

wretch wrote:

How about disabling the scroll-on-tabbar-to-switch-tabs feature?

Oh! I got bitten by that as well but didn't think about turning it off big_smile

I'll probably add a config option though, as there might be people who want that behaviour.

I opened issue #374 for that.

kiiroitori wrote:

Will there be a 'request policy' add-on or function?

Yes, when domain-wide settings are implemented. See issue #27 and issue #28.

kiiroitori wrote:

Apart from the bind function, is there another to edit keybindings?

Yes - close qutebrowser, then edit ~/.config/qutebrowser/keys.conf.

thearcherblog wrote:

Of course, would be nice, at least for me, to have a nice welcome screen as dwb had with the settings in html format, bookmarks and quickmarks and so on.

Right now there's just the "qutebrowser quickstart" thingy you see on the first run with some helpful hints. I agree a nice start-page would be something useful - I opened issue #375 for this.

Note you can already show a HTML-page for setting by using :set without arguments or opening qute:settings. I probably should make that more obvious somehow. I opened issue #376 to add it to the quickstart at least.

hollandheese wrote:

Super fast. Just wish it wasn't using QT5 since font rendering is terrible in that toolkit. Not your fault of course.

Could you explain (and maybe add a screenshot) of what you're seeing exactly? I'm having some issues on Windows with ClearType (their subpixel-rendering feature, AFAIK) turned off (so my ProggyTiny bitmap font looks right). But on Linux, everything looks great for me.

thearcherblog wrote:
hollandheese wrote:

Super fast. Just wish it wasn't using QT5 since font rendering is terrible in that toolkit. Not your fault of course.

I'm agree as well wink

Maybe will be a GTK version in the future? smile

No.

Feel free to prove me wrong, but I've not seen any application using two GUI toolkits from a single source. Also, I'm using some non-GUI features of Qt, so "doing a GTK version" essentialy would mean rewriting large parts of it, just to get more crashes wink

r6 wrote:

Regardless I've gone back to luakit for now, but as others have said, a GTK version would be great. Though I see on reddit the main dev isn't a fan of WebkitGTK.

Yeah - the frequent crashes (nobody will ever fix) in dwb and all other WebKitGTK-based browsers was probably the main reason I started writing qutebrowser.

On a sidenote: WebKitGTK1 what all the others are using is deprecated and unmaintained. I'm not sure using such a technology is a good idea for a browser. POODLE, anyone?

r6 wrote:
sdothum wrote:
r6 wrote:

The app seems to overwrite the configs when it's closed - bleh.

The configuration update can be disabled by setting "auto-save-config" to false in the qutebrowser.conf.

My guess is that the author wants to make sure the configuration file remains current as configuration settings are added or changed as features are implemented. I'm daunted just looking at the list of features and requests in the queue!

Ok, thanks. I feel like you should have to explicitly turn the auto-save feature on, because that behaviour was unexpected and I lost all my changes the first time.

Again, sorry for that!

I'm not sure why it'd be surprising though. Most GUI applications with a way to edit configs in the GUI do the same, dwb included. Hell, I even know some daemons which overwrite the config when closed.

Regardless, I'm planning 3 things to avoid this in the future:

  • Only save the config if there were new settings (because of an update) or the user changed something in the GUI

  • Reload the config live when it has been edited.

  • If the config has been changed in the meantime, move it to a backup file before writing the new one

See issue #155 for details.

Phew, hope that's all. Keep it coming, and poke me if I missed something! Also, thanks for all the love, I'm flattered!

Florian


>>> from __future__ import braces
  File "<stdin>", line 1
SyntaxError: not a chance

Offline

#25 2014-12-19 06:15:01

thearcherblog
Member
Registered: 2014-10-30
Posts: 165

Re: qutebrowser - A keyboard-driven, vim-like browser based on PyQt5

I just would like to say thanks for your work and I hope we can improve it with our testing. To be honest, really nice browser and really fast.

I was watching some streaming movies yesterday and everything looks ok, I hot a few delays but not sure if it's related with the browser, I need to make more testing smile

Please, do not hesitate to contact if you need specific testing smile

Best regards,


TheArcher

Offline

Board footer

Powered by FluxBB