From me at the-compiler.org Mon Sep 1 22:25:25 2014 From: me at the-compiler.org (Florian Bruhin) Date: Mon, 1 Sep 2014 22:25:25 +0200 Subject: This week's qutebrowser updates Message-ID: <20140901202524.GA11933@lupin> Ohai, to get some action here I thought I'd start posting (more or less) weekly updates on what happened regarding qutebrowser. This might also contain some questions from time to time when I crave some user input ;) This will be a bit more filtered than the raw commit log of course. It also might contain useful migration information, e.g. when evil me decided to break the config again :( Some things I want to point out first: - You shouldn't use qutebrowser to download important files just yet, there might still be hangs and/or corrupted files (it does work in general for me, but I can't guarantee anything). - We still need a logo! Anyone up for it? Now the updates for the past week: Upgrade notes ------------- - You should remove your ~/.cache/qutebrowser (or similiar) because some directories in there have been renamed, and the old directories won't be cleaned up automatically. Features -------- - An AppArmor profile has been added, thanks to longneck[1] (whee, first contribution merged! \o/) - A disk cache for websites has been added, which might improve the browsing experience a bit on slow connections. Improvements ------------ - Some speed bottlenecks have been improved a bit (e.g. adding an internal cache to the config). - The download location prompt now also accepts a directory. - Pasting from the (non-existent) primary selection on Windows now falls back to the clipboard. - Tabs now should flicker less when using gl/gr/gm to move the tabs. Bugfixes -------- - An issue was fixed which caused qutebrowser to not start up on Windows under some special circumstances. - Handling of cookies with non-ascii content has been fixed (caused a crash on quit). - Shift-Return presses in the command bar are now handled properly. - HTML local storage is now correctly stored in the data directory instead of the cache directory. - The --logfilter option has been fixed. - Case-insensitive searching on websites has been fixed. - The ss/sl/sk keybindings (in the default config) have been fixed. Under the hood -------------- - Some modules have been renamed and imports have been cleaned up. - qutebrowser now uses jinja[2] internally to render HTML pages (like the error page). This means jinja2 has been added as a dependency. [1] http://scratchbook.ch/ [2] http://jinja.pocoo.org/ Florian -- http://www.the-compiler.org | me at the-compiler.org (Mail/XMPP) GPG 0xFD55A072 | http://the-compiler.org/pubkey.asc I love long mails! | http://email.is-not-s.ms/ -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 819 bytes Desc: not available URL: From me at the-compiler.org Mon Sep 8 21:50:43 2014 From: me at the-compiler.org (Florian Bruhin) Date: Mon, 8 Sep 2014 21:50:43 +0200 Subject: This week's qutebrowser updates Message-ID: <20140908195043.GC3596@lupin> Another week, another bunch of updates! First of all, let me say something about this quote from http://blog.qt.digia.com/blog/2014/09/08/qt-5-4-alpha-available/ : The biggest new item Qt 5.4 brings is the new Qt WebEngine, integrating the comprehensive web capabilities of Chromium 37 into Qt. ... Qt 5.4 also contains Qt WebKit. It is still supported, but as of Qt 5.4 we consider it done, so no new functionality will be added to it. We are also planning to deprecate Qt WebKit in future releases, as the new Qt WebEngine provides what is needed. I certainly didn't think Qt WebEngine would come so fast! I think for v0.1 I still will focus on QtWebKit, and then after v0.1 is out I'll start playing with Qt WebEngine. I plan to have support for multiple backends, so there's no need to worry for people who are unable to upgrade to 5.4 immediately. Last time I looked at the QtWebEngine API it was rather incomplete, I hope this will change before QtWebKit is deprecated. I also hope Qt will still care about bugs in QtWebKit. We will see what time brings! Upgrade notes ------------- Nothing (hopefully?) Features -------- - In the newcmd branch, I'm working on the new command system (and some other breaking changes) which are not quite finished yet. It's not merged yet, but when it is, these features will be added: - A reduced set of commands, but with arguments (e.g. :open [-t] [-b] instead of :open/:open-tab/:open-bgtab) - An awesome (or at least I think so) integrated help system. A :help command has been added which works similiar to vim: :help :open -> show help for the open command :help general->editor -> show help about the editor option You can also invoke any command with -h or --help to get its help shown. - A separate config file for keybindigs, as the normal qutebrowser.conf ini format has proven to be unsuitable for them. If you're feeling adventurous you can checkout the newcmd branch to play with it, though it might be broken. The last working commit right now is 709e8dbb2ef31e4a75ca189ba7013ff1677bdf4b Improvements ------------ - The matching for the prev-page/next-page commands was improved. Bugfixes -------- - Many URL detection corner cases fixed, e.g. IPv6 literals like "::1" are now correctly identified as URL, and single integers (e.g. "2342") are now not interpreted as IP anymore. - Crashfix when a startup-command is given which needs a webview window. - Fix for incorrect statusbar text when entering insert mode via hinting. - Fix the behaviour of the rl-unix-line-discard command (Ctrl-U). - The completion now quotes strings including characters which are special to the qutebrowser commandline (e.g. spaces). Under the hood -------------- - An old workaround for a problem which showed up under an old Ubuntu version was removed. This hopefully shouldn't cause any problems, as the minimum Qt version is higher now, and I believe the bug was fixed upstream. - Most @property's were removed, as PyQt hides exceptions inside them. - It's now possible to use normal pdb (instead of qutebrowser.utils.debug) for debugging. - The webelement API has been refactored to be a lot more Pythonic, helping possible future contributors and plugin authors. - All workarounds for PyQt/Qt bugs are now tagged with "WORKAROUND" and documented properly, so they can be removed when the minimum Qt version gets bumped. -- http://www.the-compiler.org | me at the-compiler.org (Mail/XMPP) GPG 0xFD55A072 | http://the-compiler.org/pubkey.asc I love long mails! | http://email.is-not-s.ms/ -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 819 bytes Desc: not available URL: From me at the-compiler.org Mon Sep 15 22:54:09 2014 From: me at the-compiler.org (Florian Bruhin) Date: Mon, 15 Sep 2014 22:54:09 +0200 Subject: This week's qutebrowser updates Message-ID: <20140915205409.GF2118@lupin> And there we go, it's Monday evening (at least here) again! First of all, a call for help with trying to reproduce a segfault: Can you please check if opening [1] works for you, and if you get a segfault and have some time, get in touch with me? iggy can reproduce this issue, and I can't on multiple setups (Arch, Windows 8, Ubuntu, Debian jessie). [1] http://docs.saltstack.com/en/latest/topics/tutorials/pillar.html The newcmd branch is still not merged, because I first want to find a way to remove the HTML files from the repository and generate them via setup.py. It'll hopefully be merged somewhere in the next days. Because of that, I splitted the news into the two different branches. master branch ============= Features -------- - New view_source command (bound to gf) to view a page's source. This adds `pygments' as dependency. Also, I *think* this will be the last added dependency for a while :D - Packages are available in the official repos for Debian jessie/Ubuntu trusty/Ubuntu utopic/ Archlinux. Improvements ------------ - Consolas is now not used as preferred font on Windows anymore as it looks bad with a small size (Courier New will most likely be used instead). Bugfixes -------- - Changed config values which are used as interpolation for other values are now handled correctly (i.e. stuff updates without restarting qutebrowser). - Fix for a bug which executed all "config changed" handlers while starting qutebrowser, hopefully improving the start time a bit (1-2 seconds on Windows). - Fix for the "config changed" handler for the tabbar which was not getting executed correctly. - ShellCommands now get validated correctly in the config. - Crash fix when selecting an element without href-attribute via hints. - Crash fix when selecting elements with an invalid URL as href via hints. - When starting qutebrowser with python2, a proper error message instead of a SyntaxError exception is now displayed again. Under the hood -------------- - A new segfault_test script was added which tests some different pages and environments (HarfBuzz rendering engines) for segfaults. - A workaround (logging swallowed exceptions in QWebPage extension handlers) now is fixed in PyQt 5.3.2 and gets deactivated there automatically. - Some docs for the used python libaries are now added to HACKING. newcmd branch ============= Features -------- - New :bind command to bind keys. - New :unbind command to unbind keys. - New config format for keys. - Exact duplicate keychains are now rejected. - Error when unknown sections are in the main config. - Docs are now generated according to the new format. - Bring back support for *args in command handlers. - The :get command was removed and replaced by a vim-like ":set sect opt?" Bugfixes -------- - The newcmd branch now actually works. - Fix crash when opening qute://help without any path. - Lots of other minor stuff. Under the hood -------------- - Cleanups for network.qutehandlers - Cleanups for commands.command - Cleanups for commands.cmdutils - Some additional checks for registered command functions. Florian -- http://www.the-compiler.org | me at the-compiler.org (Mail/XMPP) GPG 0xFD55A072 | http://the-compiler.org/pubkey.asc I love long mails! | http://email.is-not-s.ms/ -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 819 bytes Desc: not available URL: From me at the-compiler.org Mon Sep 22 23:28:41 2014 From: me at the-compiler.org (Florian Bruhin) Date: Mon, 22 Sep 2014 23:28:41 +0200 Subject: This week's qutebrowser updates Message-ID: <20140922212841.GK5091@lupin> Monday again, and this time with a lot of changes! First some misc. news and stuff: - I spoke to the QtWebKit people and found out no new features will be added, but they still will care about bug reports. - If you have a ~/.local/share/qutebrowser/crash.log without qutebrowser running, you should delete it. If you notice a pattern when this file persists after closing qutebrowser, please tell me. - Does anyone want to do something like the "graphical vim cheatsheet" for qutebrowser? http://www.viemu.com/a_vi_vim_graphical_cheat_sheet_tutorial.html http://www.haskell.org/haskellwiki/File:Xmbindings.png - We still need a logo! :P - The newcmd branch got merged - I'll mention all news here for people who haven't tried it yet, i.e. this will be more then a week. Upgrade notes ------------- - You'll need to delete all keybind sections from your config - as some command names changed as well it's probably easiest to rebind your keys again after upgrading (e.g. using the new :bind command). - If you tried the newcmd branch before, delete ~/.config/qutebrowser/keys.conf so it gets updated with new keybindings. - Run scripts/asciidoc2html.py after updating. You should now do this after every pull if you want up to date docs. qutebrowser will warn you if it can find the asciidoc files and they are older than the html files. Released versions will have the docs pre-generated. Features -------- - New command system! Many similiar commands are now merged into one command, with shell-like options (e.g. open/open -t/open -b instead of open/open-tab/open-bgtab). - Integrated help system. * Commands can be invoked with -h/--help to get their help. * :help :command shows help for a command * :help sect->opt shows help for a setting * :help shows an overview - New :bind and :unbind commands to bind/unbind keys. - New tabs->auto-hide option which hides the tabbar if there's only one tab. - Use the user-stylesheet improvement to hide the scrollbar by default. - New :navigate comand (replacing :prev-page/:next-page) with new options "up" (go one level up in the url hierarchy, bound to gu/gU), "increment" (increment the last number in the URL, bound to Ctrl-A) and "decrement" (decrement the last number in the URL, bound to Ctrl-X). :prev-page/:next-page are now mapped to the arguments "prev"/"next" to :navigate. Improvements ------------ - The :get command got removed, use ":set sect opt?" instead (vim-like) - Better general handling of exceptions and more verbose exception logging. Let me know if you see errors/exceptions logged during normal use. - The ui->user-stylesheet option now takes a filename or a simple CSS string. - Huge performance gain for webelements/hinting (on my machine, >3s to <0.5s when hinting on a reddit page). Bugfixes -------- - Fix for exceptions at certain places potentially causing a segfault. - Allow "-" chars in font names. - Fix hang when using a single quote in the commandline. - Fix white text in the commandline right-click menu. - Possible fix for a segfault when downloads produce an error. Under the hood -------------- - Keybindings are now in a new file, solving many issues the ini-format had before. - Many cleanups for scripts - scripts/generate_doc.py got split into src2asciidoc.py and asciidoc2html.py. - New segfault_test script to test problematic sites for segfaults. - Scripts now work without colorama. - Lots and lots of other things. Florian -- http://www.the-compiler.org | me at the-compiler.org (Mail/XMPP) GPG 0xFD55A072 | http://the-compiler.org/pubkey.asc I love long mails! | http://email.is-not-s.ms/ -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 819 bytes Desc: not available URL: From me at the-compiler.org Mon Sep 29 22:52:47 2014 From: me at the-compiler.org (Florian Bruhin) Date: Mon, 29 Sep 2014 22:52:47 +0200 Subject: This week's qutebrowser updates Message-ID: <20140929205247.GU30684@lupin> Monday again, so time for the next update! I'm working on multi-window support in the multiwin branch, but it's not quite ready yet - though hopefully I'll merge it in the next few days. Also, after fixing some bugs I could run qutebrowser under OS X, though setting Qt/PyQt up is some effort. Other than that there have been many internal changes, let's hope I didn't introduce many new bugs! :) Upgrade notes ------------- No action required! Features -------- - :tab-clone/tC command to clone a tab with history. - -t argument to :back/:foward (bound to th/tl) to go back/forward in a new tab, including cloned history. Improvements ------------ - Improved :debug-get-all-objects output. - Add Ctrl-C shortcut in debug console to delete line. - :undo/u now also saves/restores the tab history Bugfixes -------- - Fix the :bind command. - Fix commands with ignored args (e.g. :restart) - Fix exception when using :quickmark-save with an empty name. - Fix :restart when installed as a Python egg. - Fix for wrong tab title when javascript opens a new window. - Fix for weird application title ("- qutebrowser" instead of "qutebrowser") when tab has no title. - Fix for some mode entered/left handlers being called once per tab instead of just once. - Fix version info (e.g. in crash dialog) for Mac OS X. - Fix division by zero for tab sizes which only occured on Mac OS X. - Fix default window geometry on first run. - Fix for the Ctrl-Key on Mac OS X. - Fix/workaround for very small fonts on Mac OS X. - Fix shutdown when it's occuring very early. - Remove focus rectangle on OS X in commandline. Under the hood -------------- - Much refactoring - Many objects now are in an "object registry" instead of attributes, cmdutils.register now takes an object name instead of a dotted attribute path. - Config change handlers are now registered inside the "listeners" instead of being signals. - Many other changes and cleanups. -- http://www.the-compiler.org | me at the-compiler.org (Mail/XMPP) GPG 0xFD55A072 | http://the-compiler.org/pubkey.asc I love long mails! | http://email.is-not-s.ms/ -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 819 bytes Desc: not available URL: