给大家推荐一个牛逼的浏览器 qutebrowser (几乎全用键盘实现...
Tofloor
poster avatar
摇摆哥
deepin
2018-09-10 03:21
Author
本帖最后由 supermew 于 2018-10-9 11:05 编辑

Qutebrowser 完全不像其他这些浏览器。如果你遇到过 Vim 这样的轻量级浏览器,它基本上就是这样子――简单的界面、简约的设计,而且只要使用键盘就能够处理任何事务。
尽管 qutebrowser 的作者推荐我们使用 qt 5.11.1, pyqt 5.10.1, 但是通过相当长的一段时间的使用后, 还是推荐大家使用 qt 5.10.1 , pyqt5 5.10.1。 (推荐使用 qt 5.10.1, pyqt5 5.10.1 的主要原因是 adobe 公司已经宣布将在 2020 年停止对 adobe flash player 的支持, adobe 即将退出历史舞台。 然后现在我们的大部分视频网站还在使用 adobe flash player 技术, 因此如果使用 qt 5.11 以后的版本将会遇到一些小问题, 比如视频不能全屏播放。)
由于不同 linux 版本的更新进度不同, 因此所使用的 qt 版本也有高低不同, 因此需要源代码编译。 下面就是一个简单的编译过程。(因为 qutebrowser 的作者写的代码是遵守开源标准的, 因此要源代码编译时相当的简单。) 其步骤为:
  • 到 qt 官网下载最新版的 qt 5.10, 并安装。如下载下来的文件为: qt-opensource-linux-x64-5.10.1.run
    • chmod +x qt-opensource-linux-x64-5.11.1.run
    • ./qt-opensource-linux-x64-5.11.1.run
  • 安装 qtchooser (qtchooser 是用于管理多版本的 qt 的工具包。)。
    • sudo apt-get install qtchooser
    • sudo qtchooser -install 5.10.1 /安装qt版本的qmake路径/qmake
    • cd /usr/lib/x86_64/qt-chooser/
    • sudo rm -rf default.conf
    • ln -s ../qt-default/qtchooser/5.10.1.conf default.conf
  • 到 PyQt 官网下载 PyQt5 5.10.1, 下载 sip 4.9.12 , 并按照下面的步骤进行编译安装。
    • 首先安装 sip 4.9.12
      • cd sip-4.9.12
      • python3 configure.py
      • make
      • sudo make install
    • 再安装 PyQt5 5.10.1
      • cd PyQt5-5.10.1
      • python3 configure.py
      • make
      • sudo make install

  • 到 github.com 中去 clone qutebrowser 的源代码, 并进行安装
    • cd qutebrowser
    • python3 script/asciidoc2html.py
    • python3 setup.py build
    • python3 setup.py install –record install_files.txt –user
  • 再编译安装 PyQt5 中遇到的问题及解决办法

      • 在启动 qutebrowser 时, 出现 SystemError: intialization of QtCore 的问题。 这是因为 PyQt5 编译不当造成的。注意在编译 5.11 及以后的版本需要用 python3 configure.py –sip-moduler PyQt5.sip 。然后再重新编译 PyQt5 。

    • 出现 sip 的版本问题的问题时, 注意检查一下系统是否自带了 python-sip, 或者 python3-sip , 或者 python-sip-dev, python3-sip-dev 等软件包, 直接将他们卸载就行了, 最好用 sudo apt-get purge python-sip-dev pthon3-sip-dev python3-sip python-sip
    1. #! /usr/bin/env python3
    2. # coding=utf-8

    3. import sqlite3
    4. import time
    5. import os
    6. import sys
    7. from qutescript import userscript
    8. from io import StringIO
    9. import pdb


    10. # pdb.set_trace() #采用这玩意还真调试不来; 只有通过记录 log 调试。

    11. @userscript
    12. def convert_cookies(request):
    13.     cookies_path = request.data_dir + "/webengine/Cookies"
    14.     export_cookies_txt_path = request.data_dir + "/webengine/Cookies.txt"
    15.     with sqlite3.connect(cookies_path) as conn:
    16.         conn = sqlite3.connect(cookies_path)
    17.         c=conn.cursor()
    18.         #print("Opend database (%s) successfully"%cookies_path)
    19.         cursor = c.execute("select host_key, path, is_secure, expires_utc, name, value from cookies")
    20.         with open(export_cookies_txt_path, "w") as cookies:
    21.             ftstr = ["FALSE","TRUE"]
    22.             cookies.write("""\
    23. # Netscape HTTP Cookie File
    24. # http://www.netscape.com/newsref/std/cookie_spec.html
    25. # This is a generated file!  Do not edit.  """)
    26.             for item in cursor.fetchall():
    27.                 item_3_3 = int(item[3])
    28.                 item_3 = ""
    29.                 if item_3_3 == 0:
    30.                     item_3 = "0"
    31.                 else:
    32.                     item_3 = str(round(int(item[3]) / 1000000 - 1164473600 ))
    33.                 cookies.write("%s\t%s\t%s\t%s\t%s\t%s\t%s\n" % (
    34.                     item[0], ftstr[item[0].startswith('.')],
    35.                     item[1],ftstr[item[2]], item_3, item[4], item[5]))
    36.     with open("./wxl.log","a") as log:
    37.         log.write("%s : %s is updated!\n"%(time.asctime(time.localtime(time.time())),export_cookies_txt_path))

    38. @userscript
    39. def my_you_get(request):
    40.     export_cookies_txt_path = request.data_dir + "/webengine/Cookies.txt"
    41.     cmd = 'you-get -p mpv -c ' + export_cookies_txt_path + ' \'' + request.url + '\''
    42.     with open("./wxl.log","a") as log:
    43.         log.write("%s : cmd is \"%s\".\n"%(time.asctime(time.localtime(time.time())), cmd))
    44.     os.system(cmd)


    45. if __name__ == '__main__':
    46.     convert_cookies()
    47.     my_you_get()
    Copy the Code
    这是进行 cookies  转换的qutebrowser 脚本。
  • 在 youku 播放的时候,可能会出现 cookies  被禁止的情况, 那是因为 adblock 阻止了其相关流导致的。

Reply Favorite View the author
All Replies
avatar
摇摆哥
deepin
2018-09-10 03:26
#1
该浏览器可以很好的在笔记本上使用, 特别是没有鼠标只有触摸板时, 应用起来要比其他的浏览器流畅得多。
Reply View the author
avatar
siyucao
deepin
2018-09-10 04:38
#2
我想说,直接sudo apt install qutebrowser就行......
Reply View the author
avatar
摇摆哥
deepin
2018-09-10 05:14
#3
https://bbs.deepin.org/post/168656
我想说,直接sudo apt install qutebrowser就行......

不是所有的版本都能用 sudo apt install , 有时候版本太新、或是太就都不好。
Reply View the author
avatar
135******02
deepin
2018-09-10 06:42
#4
如果鼠标是多余的,那发明鼠标不知道是什么意义
Reply View the author
avatar
177******80
deepin
2018-09-10 07:56
#5
能使用鼠标和触控板的,就不会用键盘,嫌手指不会得肌健炎吗。。。。。。。这种浏览器应该和emacs一个极别的,除了键盘,什么输入设备都没有的情况下用,连方向键都没的哪种键盘。。。。
Reply View the author
avatar
摇摆哥
deepin
2018-09-10 08:14
#6
https://bbs.deepin.org/post/168656
能使用鼠标和触控板的,就不会用键盘,嫌手指不会得肌健炎吗。。。。。。。这种浏览器应该和emacs一个极别 ...

得看你怎么想了, vim, emacs 都纯在了这么久了, 相信他们目前还是比较受欢迎的。 这个浏览器的还是在github.com 上还是比较活跃, 说民还是比较受欢迎的。
Reply View the author
avatar
177******80
deepin
2018-09-10 08:39
#7
https://bbs.deepin.org/post/168656
得看你怎么想了, vim, emacs 都纯在了这么久了, 相信他们目前还是比较受欢迎的。 这个浏览器的还是在g ...

正常人上个网不会记哪么多快捷键吧。。。。再说,google chrome 的Vimium插件也可以实现这种功能。。。。
Reply View the author