config.load_autoconfig(False)

# セッションの保存
c.auto_save.session = True

# クッキー
# デフォルト＝同じドメインのみを許可する（no-3rdparty）
# 全然許可しない場合、never
# 全部許可する場合、all
c.content.cookies.accept = 'no-3rdparty'
config.set('content.cookies.accept', 'all', 'chrome-devtools://*')
config.set('content.cookies.accept', 'all', 'devtools://*')

# ダークモード
config.set('colors.webpage.darkmode.enabled', False)
config.set('colors.webpage.darkmode.threshold.background', 205)
config.set('colors.webpage.darkmode.threshold.text', 150)

# ホストのブロッキング（Google、Facebook、Twitter、CloudFlare、及び広告のブロック）
c.content.blocking.enabled = True
c.content.blocking.hosts.block_subdomains = True
c.content.blocking.method = "both"

c.content.blocking.adblock.lists = ['https://easylist.to/easylist/easylist.txt', 'https://easylist.to/easylist/easyprivacy.txt', 'https://secure.fanboy.co.nz/fanboy-annoyance.txt', 'https://raw.githubusercontent.com/bogachenko/fuckfuckadblock/master/fuckfuckadblock.txt', 'https://www.i-dont-care-about-cookies.eu/abp/', 'https://abp.oisd.nl/']

c.content.blocking.hosts.lists = ["https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts", "https://git.076.ne.jp/TechnicalSuwako/anti-malware-hostfile/raw/branch/master/goolag", "https://git.076.ne.jp/TechnicalSuwako/anti-malware-hostfile/raw/branch/master/koukoku", "https://git.076.ne.jp/TechnicalSuwako/anti-malware-hostfile/raw/branch/master/massmediatube", "https://git.076.ne.jp/TechnicalSuwako/anti-malware-hostfile/raw/branch/master/fakebook", "https://git.076.ne.jp/TechnicalSuwako/anti-malware-hostfile/raw/branch/master/twitter"]
# CloudFlareもブロックするには、上記の行列を無効にすると、下記の行列を有効にして下さい。CloudFlareをブロックしたら、インターネットの90%を壊れますので、ご注意下さい。
#c.content.blocking.hosts.lists = ["https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts", "https://git.076.ne.jp/TechnicalSuwako/anti-malware-hostfile/raw/branch/master/goolag", "https://git.076.ne.jp/TechnicalSuwako/anti-malware-hostfile/raw/branch/master/koukoku", "https://git.076.ne.jp/TechnicalSuwako/anti-malware-hostfile/raw/branch/master/massmediatube", "https://git.076.ne.jp/TechnicalSuwako/anti-malware-hostfile/raw/branch/master/fakebook", "https://git.076.ne.jp/TechnicalSuwako/anti-malware-hostfile/raw/branch/master/crimeflare", "https://git.076.ne.jp/TechnicalSuwako/anti-malware-hostfile/raw/branch/master/twitter"]

# フィンガープリントの対策
c.content.headers.user_agent = "Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0"
#c.content.headers.user_agent = "Mozilla/5.0 ({os_info}) AppleWebKit/{webkit_version} (KHTML, like Gecko) {qt_key}/{qt_version} {upstream_browser_key}/{upstream_browser_version} Safari/{webkit_version}"
c.content.headers.accept_language = "en_US,en;q=0.5"
#c.content.headers.accept_language = "ja-JP,ja;q=0.9"
c.content.headers.custom = {"accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}
c.content.headers.do_not_track = True
c.content.webgl = False
c.content.canvas_reading = False
#c.content.headers.user_agent = "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/QtWebEngine (KHTML, like Gecko) QtWebEngine/{qt_version} {upstream_browser_key}/{upstream_browser_version} Safari/{webkit_version}"
#c.content.headers.user_agent = "Mozilla/5.0 ({os_info}) AppleWebKit/{webkit_version} (KHTML, like Gecko) {qt_key}/{qt_version} {upstream_browser_key}/{upstream_browser_version} Safari/{webkit_version}"

c.url.default_page = 'https://www.technicalsuwako.jp'
c.url.start_pages = 'https://www.technicalsuwako.jp'

#c.url.searchengines = {'DEFAULT': 'https://search.076.ne.jp/yacysearch.html?query={}'}
c.url.searchengines = {'DEFAULT': 'https://duckduckgo.com/?q={}'}

# Custom key
config.bind('M', 'hint links spawn mpv {hint-url}') # 動画URLはMPVに開く
config.bind('Z', 'hint links spawn st -e yt-dlp {hint-url}') # YouTubeの動画URLを保存する
config.bind('t', ':set-cmd-text -s :open -t') # 新しいタブに開く
config.bind('ef', 'spawn --userscript qute-pass')
config.bind('eu', 'spawn --userscript qute-pass --username-only')
config.bind('ep', 'spawn --userscript qute-pass --password-only')
config.bind('eo', 'spawn --userscript qute-pass --otp-only')
config.bind('t', ':set-cmd-text -s :open -t') # 新しいタブに開くi
config.bind('ps', 'tab-pin') # タブにピン留め
config.bind('pt', ':set-cmd-text -s :open -p') # 新しいURLをプライベートウィンドウに開く
config.bind('po', ':set-cmd-text -s :open -p {url}'); # 現在のURLをプライベートウィンドウに開く
config.bind('xb', 'config-cycle statusbar.show always never') # 下にある状況バーの有無
config.bind('xt', 'config-cycle tabs.show always never') #上にあるタブバーの有無
config.bind('xx', 'config-cycle statusbar.show always never;; config-cycle tabs.show always never') # 両方のバー同時にの有無
config.bind('xd', 'config-cycle colors.webpage.darkmode.enabled true false') # ダークモードの有無
config.bind('xj', 'config-cycle content.javascript.enabled true false') # JSの有無
config.bind('xp', 'config-cycle content.proxy system socks://localhost:9050/ socks://localhost:4447/') # 普通↔Tor↔I2Pの交換
config.bind(';i', 'hint images spawn --output-messages wget -P "/home/suwako/ダウンロード" {hint-url}') # 画像等の保存
config.bind(';I', 'hint images fill :open -b {hint-url}')
config.bind('yc', 'hint images yank');
config.bind('gh', 'back') # 戻る
config.bind('gl', 'forward') # 次
config.bind('ee', ':set-cmd-text -s :open {url}') # 現在のURLの編集

c.content.proxy = 'socks://localhost:9050/' # デフォルト：torは有効、無効は「'system'」
c.content.javascript.enabled = False #デフォルト：javascriptは無効
c.content.images = True # デフォルト：画像は有効

# 動画は遅すぎるから、peertubeでtorを使わない。そうして、テク諏訪でトラッキングは０だから、torか普通か違いがない
#config.set('content.proxy', 'system', 'https://video.076.ne.jp/*')
#config.set('content.proxy', 'system', 'https://*.technicalsuwako.jp/*')

# 下記のサイトだけでjavascriptを使える
config.set('content.javascript.enabled', True, 'https://git.076.ne.jp/*')
config.set('content.javascript.enabled', True, 'https://social.076.ne.jp/*')
config.set('content.javascript.enabled', True, 'https://video.076.ne.jp/*')
config.set('content.javascript.enabled', True, 'http://127.0.0.1/*')
config.set('content.javascript.enabled', True, 'chrome-devtools://*')
config.set('content.javascript.enabled', True, 'devtools://*')
config.set('content.javascript.enabled', True, 'chrome://*/*')
config.set('content.javascript.enabled', True, 'qute://*/*')

#config.set('content.images', True, 'chrome-devtools://*')
#config.set('content.images', True, 'devtools://*')

# ファイルブラウザはrangerに設定しますので、rangerをインストールすることが必要です。
config.set('fileselect.handler', 'external');
config.set('fileselect.single_file.command', ['alacritty', '--class', 'ranger,ranger', '-e', 'ranger', '--choosefile', '{}']);
config.set('fileselect.multiple_files.command', ['alacritty', '--class', 'ranger,ranger', '-e', 'ranger', '--choosefiles', '{}']);

# テーマ
c.window.hide_decoration = True
c.colors.completion.category.bg = 'qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #46195a, stop:1 #341242)'
c.colors.completion.category.border.bottom = '#232629'
c.colors.completion.category.border.top = '#232629'
c.colors.completion.even.bg = '#232629'
c.colors.completion.item.selected.bg = '#61237c'
c.colors.completion.item.selected.border.bottom = '#cb81ea'
c.colors.completion.item.selected.border.top = '#cb81ea'
c.colors.completion.item.selected.fg = '#fcfcfc'
c.colors.completion.item.selected.match.fg = '#f31de8'
c.colors.completion.match.fg = '#f31de8'
c.colors.completion.odd.bg = '#31363b'
c.colors.completion.scrollbar.bg = '#31363b'
c.colors.completion.scrollbar.fg = '#cb81ea'

c.colors.downloads.bar.bg = '#31363b'
c.colors.downloads.error.bg = '#ff3636'
c.colors.downloads.error.fg = '#fcfcfc'
c.colors.downloads.start.bg = '#1d99f3'
c.colors.downloads.start.fg = '#fcfcfc'
c.colors.downloads.stop.bg = '#27ae60'
c.colors.downloads.stop.fg = '#fcfcfc'

c.colors.hints.bg = 'qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 rgba(234, 129, 232, 0.8), stop:1 rgba(229, 153, 229, 0.8))'
c.colors.hints.fg = '#fcfcfc'

c.colors.statusbar.command.bg = '#c0392b'
c.colors.statusbar.command.fg = '#fcfcfc'
c.colors.statusbar.command.private.bg = '#611e24'
c.colors.statusbar.command.private.fg = '#fcfcfc'

c.colors.statusbar.insert.bg = '#27ae60'
c.colors.statusbar.insert.fg = '#fcfcfc'
# 普通＝オレンジ、Tor＝黒、I2P＝青
if config.get('content.proxy') == 'socks://localhost:9050/':
    c.colors.statusbar.normal.bg = '#31363b'
elif config.get('content.proxy') == 'socks://localhost:4447/':
    c.colors.statusbar.normal.bg = '#3daee9'
else:
    c.colors.statusbar.normal.bg = '#f67400'
c.colors.statusbar.normal.fg = '#fcfcfc'
c.colors.statusbar.passthrough.bg = '#1d99f3'
c.colors.statusbar.passthrough.fg = '#fcfcfc'
c.colors.statusbar.private.bg = '#6c29b9'
c.colors.statusbar.private.fg = '#fcfcfc'


c.colors.tabs.bar.bg = '#232629'
c.colors.tabs.even.bg = '#4d4d4d'
c.colors.tabs.even.fg = '#fcfcfc'
c.colors.tabs.indicator.error = '#ff3636'
c.colors.tabs.indicator.start = '#1d99f3'
c.colors.tabs.indicator.stop = '#27ae60'

c.colors.tabs.odd.bg = '#727272'
c.colors.tabs.odd.fg = '#fcfcfc'
c.colors.tabs.selected.even.bg = '#232629'
c.colors.tabs.selected.even.fg = '#fcfcfc'
c.colors.tabs.selected.odd.bg = '#232629'
c.colors.tabs.selected.odd.fg = '#fcfcfc'

c.hints.border = '1px solid #b459b6'

c.qt.force_software_rendering = 'qt-quick'
c.qt.low_end_device_mode = 'always'
