qutebrowser/TODO

501 lines
16 KiB
Plaintext
Raw Normal View History

2014-05-06 06:29:48 +02:00
Before 0.1
==========
- Check FIXMEs
- Manpage
- Website
- Tests for URL detection and fix corner cases
2014-05-06 21:03:03 +02:00
- Fix some crashes if we can
- Fix shutdown
2014-05-07 07:51:36 +02:00
- Maybe test under other platforms
- Autosave feature (against segfaults/...)
- Save tabs feature
- More dwb keybindings
- Use :open engine searchterm syntax for searching
2014-05-08 20:15:17 +02:00
- Basic SSL handling
e.g. broken on https://fsinf.fh-worms.de/
2014-05-06 06:29:48 +02:00
2014-05-06 07:50:27 +02:00
Crashes
=======
2014-05-06 09:56:35 +02:00
- When following a hint:
2014-05-06 07:50:27 +02:00
2014-05-06 09:56:35 +02:00
QNetworkReplyImplPrivate::error: Internal problem, this method must only be called once.
2014-05-06 07:50:27 +02:00
2014-05-06 09:56:35 +02:00
- When enabling javascript on http://google.com/accounts and reloading:
2014-05-06 07:50:27 +02:00
2014-05-06 09:56:35 +02:00
OpenType support missing for script 12
2014-05-06 07:50:27 +02:00
2014-05-06 10:02:29 +02:00
Then it quits.
2014-05-06 09:56:35 +02:00
When javascript is enabled already, hangs.
With minimal browser, prints error but continues to run.
2014-05-06 10:02:29 +02:00
Also quits on http://de.wikipedia.org/wiki/Hallo-Welt-Programm
It seems this only happens on Windows.
2014-05-06 10:32:35 +02:00
- Closing some tabs and undo all them -> quits and CMD.exe hangs
QHttpNetworkConnectionPrivate::_q_hostLookupFinished could not dequeu request
2014-05-06 07:50:27 +02:00
2014-05-08 23:08:33 +02:00
- Clicking the blank area of the grey titlebar of the webinspector closed
qutebrowser on windows
2014-05-06 07:50:27 +02:00
2014-02-11 14:09:31 +01:00
Bugs
====
2014-05-06 06:29:48 +02:00
- All kind of FIXMEs
2014-05-06 11:39:05 +02:00
- F on duckduckgo result page opens in current page
It seems we don't get a linkClicked signal there.
Maybe it does some weird js stuff?
See also: http://qt-project.org/doc/qt-4.8/qwebpage.html#createWindow
2014-05-06 17:50:57 +02:00
Asked here: http://stackoverflow.com/q/23498666/2085149
2014-05-06 11:39:05 +02:00
- Shutdown is still flaky.
Some pointers:
https://code.google.com/p/webscraping/source/browse/webkit.py
Simply does setPage(None) in __del__ of webview.
http://www.tenox.net/out/wrp11-qt.py
does del self._window; del self._view; del self._page
http://pydoc.net/Python/grab/0.4.5/ghost.ghost/
does webview.close(); del self.manager; del self.page; del self.mainframe
2014-04-16 23:34:49 +02:00
2014-05-07 23:11:47 +02:00
- Tabbar in print dialog has same visual style as main tabbar
- Sometimes there's a horizontal scrollbar in the completer
2014-05-07 09:06:22 +02:00
- Eliding doesn't work correctly in tabs (cuts off start)
This especially happens when there's no favicon
2014-05-08 09:07:16 +02:00
- Opening via commandline / startpage doesn't work with absolute file paths.
- Relative file paths and ~ don't work at all.
2014-05-08 11:51:51 +02:00
- Pasting highlighted text (to mrxvt) does not work (iggy).
2014-05-08 20:15:17 +02:00
- Text rendering errors on https://campus.fh-worms.de/~progbau/Routing/05/index.html
https://paste.xinu.at/vw6r/
This seems to happen only with ttf-ms-fonts installed.
- Hinting problems on https://bugreports.qt-project.org/secure/Dashboard.jspa
2014-05-08 21:56:38 +02:00
- scroll_page doesn't care about always visible bars, so content gets hidden
e.g. http://www.mtb-news.de/forum/t/welcher-schuh-five-ten-vs-oneal.529148/
2014-04-17 11:43:39 +02:00
Style
=====
2014-05-06 06:29:48 +02:00
- initialize completion models at some nicer place (not in widget)
2014-04-17 11:43:39 +02:00
2014-01-22 08:51:02 +01:00
Major features
==============
2014-05-06 21:03:03 +02:00
- Per domain settings
- RequestPolicy
2014-05-06 06:29:48 +02:00
- Plugin architecture
2014-01-28 08:02:24 +01:00
Adblock?
RequestPolicy
Ghostery/Disconnect?
NoScript
Certificate Patrol
2014-02-04 07:42:45 +01:00
https://chrome.google.com/webstore/detail/remove-google-redirects/ccenmflbeofaceccfhhggbagkblihpoh
2014-05-06 06:29:48 +02:00
- Downloads
- session handling / saving
- IPC, like dwb -x
- Bookmarks
- Internationalization
- more completions (URLs, ...)
- SSL handling
- history
2014-02-13 13:02:06 +01:00
2014-02-11 14:09:31 +01:00
Minor features
==============
2014-01-22 08:51:02 +01:00
2014-05-06 21:03:03 +02:00
- Make inspector height resizable
2014-05-08 23:08:33 +02:00
- Make inspector detachable (own window)
2014-05-06 10:53:38 +02:00
- Enable disk caching
QNetworkManager.setCache() and use a QNetworkDiskCache probably
2014-05-06 10:32:35 +02:00
- clear cookies
2014-05-06 06:29:48 +02:00
- keybind/aliases should have completion for commands/arguments
- Hiding scrollbars
- Ctrl+A/X to increase/decrease last number in URL
- logging contexts
- catch import errors for PyQt and QtWebKit
2014-04-25 06:57:11 +02:00
- Add more element-selection-detection code (with options?) based on:
-> javascript: http://stackoverflow.com/a/2848120/2085149
-> microFocusChanged and check active element via:
frame = page.currentFrame()
elem = frame.findFirstElement('*:focus')
2014-05-06 06:29:48 +02:00
- somehow unfocus elements (hide blinking cursor) when insert mode is left?
- tabs: some more padding?
- Really fix URL detection properly
2014-05-08 09:13:07 +02:00
- Make it possible to open inspector in a new window.
2014-04-22 23:25:51 +02:00
2014-04-25 07:00:08 +02:00
hints
-----
2014-05-06 06:29:48 +02:00
- bindings for prev/next hint
- more intelligent clicking (end of textfields)
- filter close hints when it's the same link
- ignore keypresses shortly after link following
2014-04-25 07:00:08 +02:00
2014-05-06 11:39:05 +02:00
Useful things
=============
http://www.tenox.net/out/wrp11-qt.py
https://code.google.com/p/webscraping/source/browse/webkit.py
https://github.com/jeanphix/Ghost.py/blob/master/ghost/ghost.py
2014-05-07 07:51:36 +02:00
http://otter-browser.org/
2014-05-06 11:39:05 +02:00
Upstream Bugs
=============
2014-04-22 23:25:51 +02:00
- Printing under windows produced blank pages
https://bugreports.qt-project.org/browse/QTBUG-19571
If this isn't fixed in Qt 5.3, bug should be reopened.
2014-04-30 14:34:37 +02:00
- QWebElement needs geometries()
https://bugreports.qt-project.org/browse/QTBUG-38698
- Impossible to retrieve user value of QWebElement:
https://bugreports.qt-project.org/browse/QTBUG-38669
2014-04-22 23:25:51 +02:00
- Web inspector is blank unless .hide()/.show() is called.
2014-05-06 17:50:57 +02:00
Asked on SO: http://stackoverflow.com/q/23499159/2085149
2014-01-20 07:15:05 +01:00
2014-04-25 14:14:55 +02:00
- Weird font rendering
https://bugreports.qt-project.org/browse/QTBUG-20973
https://bugreports.qt-project.org/browse/QTBUG-21036
2014-05-06 11:39:05 +02:00
- dead_actute
https://bugs.freedesktop.org/show_bug.cgi?id=69476
- QNetworkReplyImplPrivate::error: Internal problem, this method must only be called once.
https://bugreports.qt-project.org/browse/QTBUG-30298
2014-05-06 12:03:44 +02:00
Probably fixed crashes
======================
- Segfault when closing some tab:
QIODevice::read: device not open
QIODevice::read: device not open
QIODevice::read: device not open
Fatal Python error: Segmentation fault
Current thread 0x00007ff4ed080700 (most recent call first):
File "/home/florian/proj/qutebrowser/git/qutebrowser/__main__.py", line 29 in main
File "/home/florian/proj/qutebrowser/git/qutebrowser/__main__.py", line 33 in <module>
File "/usr/lib/python3.4/runpy.py", line 86 in _run_code
File "/usr/lib/python3.4/runpy.py", line 171 in _run_module_as_main
@ e5000c315dd29ae9356e1b33ed041917c637c85b
Probably fixed by de7c6a63b48f66e164bf4baa6e892bcbb326d6b9
- When opening a hint with F:
2014-05-06 09:01:25 [DEBUG] [_tabbedbrowser:tabopen:153] Opening PyQt5.QtCore.QUrl('http://ddg.gg/')
Traceback (most recent call last):
File ".\qutebrowser\widgets\_tabbedbrowser.py", line 155, in tabopen
tab = WebView(self)
File ".\qutebrowser\widgets\webview.py", line 83, in __init__
self.page_ = BrowserPage(self)
File ".\qutebrowser\browser\webpage.py", line 44, in __init__
self.setNetworkAccessManager(QApplication.instance().networkmanager)
RuntimeError: wrapped C/C++ object of type NetworkManager has been deleted
Probably fixed by de7c6a63b48f66e164bf4baa6e892bcbb326d6b9
2014-05-07 07:51:36 +02:00
dwb keybindings to possibly implement
=====================================
2014-01-22 08:51:02 +01:00
2014-05-07 07:51:36 +02:00
window
------
2014-01-22 08:51:02 +01:00
2014-05-07 07:51:36 +02:00
wh
Go back in a new window (command win_hist_back, aliases: winback, wba).
2014-01-22 08:51:02 +01:00
2014-05-07 07:51:36 +02:00
wl
Go forward in a new window (command win_hist_forward, aliases: winforward, wfo).
2014-01-22 08:51:02 +01:00
2014-05-07 07:51:36 +02:00
wB
Show Bookmarks, open bookmark in a new window (command win_bookmarks, aliases: winmarks).
2014-01-22 08:51:02 +01:00
2014-05-07 07:51:36 +02:00
wb[:graph:]
Open quickmark in a new window (command win_quickmark, aliases: winqmarks).
2014-01-22 08:51:02 +01:00
2014-05-07 07:51:36 +02:00
wf
Show hints, open link in a new window. (command hints_win, aliases: winhints, whi).
2014-01-22 08:51:02 +01:00
2014-05-07 07:51:36 +02:00
;R
Rapid hint mode, each matching hint opens a new window. (command hints_rapid_win, aliases: wrhints, wrhi).
2014-01-22 08:51:02 +01:00
2014-05-07 07:51:36 +02:00
wp
Paste from clipboard and load in a new window (command paste_nw, aliases: winpaste).
2014-01-22 08:51:02 +01:00
2014-05-07 07:51:36 +02:00
wP
Paste from primary selection and load in a new window (command paste_primary_nw, aliases: winppaste).
2014-01-22 08:51:02 +01:00
2014-05-07 07:51:36 +02:00
W
Next navigation action will be opened in a new window (command new_win).
2014-01-22 08:51:02 +01:00
2014-05-07 07:51:36 +02:00
downloads
---------
2014-01-22 08:51:02 +01:00
2014-05-07 07:51:36 +02:00
;d
Download via hints (command hints_download, aliases: dhints).
2014-01-22 08:51:02 +01:00
2014-05-07 07:51:36 +02:00
[n]ad
Cancel the download with number n or the first download in the lists of running downloads if n is omitted. (command cancel_download).
2014-01-22 08:51:02 +01:00
2014-05-07 07:51:36 +02:00
gd
Download the current site. (command download).
Sd
Show download (command show_downloads, aliases: sdownloads).
Bookmarks/quickmarks
--------------------
2014-01-22 08:51:02 +01:00
M
Add a bookmark (command bookmark, aliases: bmark, bma).
gb
Show Bookmarks (command bookmarks, aliases: bmarks, bmas).
gB
Show Bookmarks, open bookmark in a new tab (command tab_bookmarks, aliases: tabmarks).
m
Add a quickmark (command save_quickmark, aliases: quickmark, qmark).
b
Open quickmark (command quickmark, aliases: qmarks).
B
Open quickmark in a new tab (command tab_quickmark, aliases: tabqmarks).
2014-05-07 07:51:36 +02:00
tab-handling
------------
2014-01-22 08:51:02 +01:00
2014-05-07 07:51:36 +02:00
co
Close all tabs except for the current one (command only).
2014-01-22 08:51:02 +01:00
[n]T
Focus nth tab, first tab if n is omitted or last tab if n is 0. (command focus_tab, aliases: tab).
C-Tab
Toggle between current and last focused tab (command toggle_tab, aliases: ttab)
[n]gm
Move current tab to position [n] or to first position if n is omitted. (command tab_move, aliases: tabm).
[n]gl
Move current tab [n] positions left. (command tab_move_left, aliases: tabl).
[n]gr
Move current tab [n] positions right. (command tab_move_right, aliases: tabr).
gt
Show all open tabs. (command buffers, aliases: bu).
[n]C-P
Protect tab [n]. Closing this tab must be confirmed (command protect, aliases: prot).
[n]xd
Lock tab [n]. Locking a tab will lock this tab to the current domain, its not possible to navigate to another domain until unlocked. lock_domain, aliases: dlock).
[n]xu
Lock tab [n]. Locking a tab will lock this tab to the current uri, its not possible to navigate to another uri until unlocked. lock_uri, aliases: ulock).
2014-05-07 07:51:36 +02:00
Blacklisting
------------
2014-01-22 08:51:02 +01:00
2014-05-07 07:51:36 +02:00
tsh
Toggle scripts for current host permanently (command toggle_scripts_host, aliases: hscript).
2014-01-22 08:51:02 +01:00
2014-05-07 07:51:36 +02:00
tsu
Toggle scripts for current url permanently (command toggle_scripts_uri, aliases: uscript).
2014-01-22 08:51:02 +01:00
2014-05-07 07:51:36 +02:00
tth
Toggle scripts for current host temporarily (command toggle_scripts_host_tmp, aliases: thscript).
ttu
Toggle scripts for current url temporarily (command toggle_scripts_uri_tmp, aliases: tuscript).
ph
Toggle plugins for current host permanently (command toggle_plugins_host, aliases: hplugin).
pu
Toggle plugins for current url permanently (command toggle_plugins_uri, aliases: uplugin).
pth
Toggle plugins for current host temporarily (command toggle_plugins_host_tmp, aliases: thplugin).
ptu
Toggle plugins for current url temporarily (command toggle_plugins_uri_tmp, aliases: tuplugin).
2014-01-22 08:51:02 +01:00
CC
Allow persistent cookie for the current website. The domain will be saved in cookies.allow. Cookies that are allowed by the cookies.allow whitelist are stored in $XDG_CONFIG_HOME/dwb/$profilename/cookies. (command allow_cookie, aliases: cookie).
CS
Allow session cookie for the current website. The domain will be saved in cookies_session.allow. This is only useful if cookies-store-policy is set to never, see cookies-store-policy for details. (command allow_session_cookie, aliases: scookie).
CT
Allow session cookies for the current website temporarily. Only first party cookies are allowed. The domain is not saved to a whitelist and the cookies will not be saved persitently. (command allow_session_cookie_tmp, aliases: tcookie).
2014-05-07 07:51:36 +02:00
Show
----
2014-01-22 08:51:02 +01:00
Sb
Show bookmarks (command show_bookmarks, aliases: sbookmarks).
Sq
Show quickmarks (command show_quickmarks, aliases: squickmarks).
Sh
Show history (command show_history, aliases: shistory).
Sk
Show keys (command show_keys, aliases: skeys).
Ss
Show settings (command show_settings, aliases: ssettings).
2014-05-07 07:51:36 +02:00
eu
Show and execute userscripts (command execute_userscript).
2014-01-22 08:51:02 +01:00
2014-05-07 07:51:36 +02:00
Other
-----
2014-01-22 08:51:02 +01:00
2014-05-07 07:51:36 +02:00
xo
Open url in a new tab in background, the argument $URI will be repaced with the current uri (command: backopen, aliases: bopen ).
2014-01-22 08:51:02 +01:00
2014-05-07 07:51:36 +02:00
xO
Open url in a new tab in background, set current url in the navigation bar (command: backopen_url).
2014-01-22 08:51:02 +01:00
2014-05-07 07:51:36 +02:00
wo
Open url in a new instance (command: winopen, aliases: wopen, w).
2014-01-22 08:51:02 +01:00
2014-05-07 07:51:36 +02:00
C-n
Enter normal mode.
2014-01-22 08:51:02 +01:00
2014-05-07 07:51:36 +02:00
[n]gc
Clear tab n or of current tab, clears the history of the tab and loads about:blank. (command clear_tab, aliases: clear).
2014-01-22 08:51:02 +01:00
2014-05-07 07:51:36 +02:00
C-h
Open the default startpage (command start_page, aliases: home).
2014-01-22 08:51:02 +01:00
2014-05-07 07:51:36 +02:00
th
Go back in a new tab (command tab_hist_back, aliases: tabback, tba).
2014-01-22 08:51:02 +01:00
2014-05-07 07:51:36 +02:00
tl
Go forward in a new tab (command tab_hist_forward, aliases: tabforward, tfo).
2014-01-22 08:51:02 +01:00
2014-05-07 07:51:36 +02:00
c/
Find forward, ignore case (command find_forward_ic, alias: iffind).
2014-01-22 08:51:02 +01:00
2014-05-07 07:51:36 +02:00
c?
Find backward, ignore case (command find_backward_ic, alias ibfind).
2014-01-22 08:51:02 +01:00
2014-05-07 07:51:36 +02:00
[n]R
Reload tab n or current tab if n is omitted without using any cached data (command reload_bypass_cache, aliases: refull).
2014-01-22 08:51:02 +01:00
2014-05-07 07:51:36 +02:00
[n]C-s
Stop loading of tab n or of current tab is [n] is omitted (command stop_loading, aliases: stop, st).
[n]=
Zoom to n percent or to 100% if n is omitted(command zoom, aliases: z).
sf
Save all configuration files (command save).
ZZ
Save current session and exit (command save_session, aliases: wq).
gZZ
Save current session with name and exit (command save_named_session, aliases: wqn).
gf
Toggle "view source" (command view_source, aliases: source, so).
gs
Add a searchengine. Textfields can be chosen with tab and a keyword must be specified. The first defined searchengine will be the default searchengine. The keyword can be used in all open commands, e.g. :open <keyword> <searchterm> (command save_search_field, aliases: search).
ss
Set setting, the interactive version of the command set, for changing settings in scripts use set instead (command set_setting).
sl
Set local setting, changes a setting but doesnt save the setting to configuration file. The interactive version of the command local_set, for changing settings locally in scripts use local_set instead (command set_local_setting).
sk
Set keyboard shortcut (command set_key, aliases: keys).
C-p
Toggle proxy (command proxy).
V
Next navigation action will be opened in a new tab (command new_tab).
2014-01-22 08:51:02 +01:00
[n]wi
Show the webinspector of tab n or of current tab if n is omitted. Note that enable-developer-extras has to be set. (commmand web_inspector, aliases: inspect, insp).
C-e
Open external editor for current input/textarea (command open_editor, aliases: editor).
g.
Toggle hidden files when browsing local filesystem. (command open_editor, aliases: editor).
F11
Toggle fullscreen (command fullscreen, aliases: fs).
F12
Toggle presentation mode. (command presentation_mode, aliases: present).
xx
Toggle visibility of tabbar and statusbar. (command toggle_bars, aliases: bars).
xt
Toggle visibility of tabbar. (command toggle_tabbar, aliases: tbar).
xb
Toggle visibility of statusbar. (command toggle_statusbar, aliases: sbar).
xv
Toggle visibility of a tab. (command visible, aliases: vis).
[n]C-M-p
Print focused frame of tab n or of current tab if n is omitted. (command print, aliases: ha).
unbound
Execute a javascript snippet (command execute_javascript, aliases: exja, js).
unbound
Set a setting from commandline (command set).
unbound
Toggle a boolean setting from commandline (command toggle_setting, aliases: toggle, tog).
unbound
Load a html string. This command is mainly intended for use in userscripts (command load_html).
unbound
Load a html string in a new tab. This command is mainly intended for use in userscripts (command load_html_tab).
unbound
Execute a javascript snippet that uses the the internal javascript api. This command only works if the javascript interface is enabled, i.e. if there are scripts in $XDG_CONFIG_HOME/dwb/userscripts that use the api or if dwb is started with -S/--enable-scripts (command eval).
Tab (S-Tab)
In normal mode Tab shows the next (previous) shortcut, that matches the currently entered keysequence. When opening a url, the next (previous) item in command history, bookmarks or history will be completed. In hint mode the next (previous) hint will get focus. Tab also completes settings and shortcut-settings. When initiating a download, full paths (downloads and spawning programs) and binaries (spawning programs) in PATH will be completed. In command mode tab will complete builtin commands and urls if the command accepts an url.