diff --git a/arch_linux_init/xorg.bash b/arch_linux_init/xorg.bash deleted file mode 100755 index ad26044..0000000 --- a/arch_linux_init/xorg.bash +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/env bash - -sudo pacman -S xorg-xinit xorg-server xorg-xrdb --noconfirm -pacaur -S gtk-theme-arc gtk-engine-murrine --noconfirm - diff --git a/browser/qutebrowser/bookmarks/urls b/browser/qutebrowser/bookmarks/urls new file mode 100644 index 0000000..cad4295 --- /dev/null +++ b/browser/qutebrowser/bookmarks/urls @@ -0,0 +1,2 @@ +https://security.google.com/settings/security/apppasswords?pli=1 App passwords - Account Settings +https://security.google.com/settings/security/apppasswords App passwords - Account Settings diff --git a/browser/qutebrowser/keys.conf b/browser/qutebrowser/keys.conf new file mode 100644 index 0000000..a82a979 --- /dev/null +++ b/browser/qutebrowser/keys.conf @@ -0,0 +1,658 @@ +# vim: ft=conf +# +# In this config file, qutebrowser's key bindings are configured. +# The format looks like this: +# +# [keymode] +# +# command +# keychain +# keychain2 +# ... +# +# All blank lines and lines starting with '#' are ignored. +# Inline-comments are not permitted. +# +# keymode is a comma separated list of modes in which the key binding should be +# active. If keymode starts with !, the key binding is active in all modes +# except the listed modes. +# +# For special keys (can't be part of a keychain), enclose them in `<`...`>`. +# For modifiers, you can use either `-` or `+` as delimiters, and these names: +# +# * Control: `Control`, `Ctrl` +# * Meta: `Meta`, `Windows`, `Mod4` +# * Alt: `Alt`, `Mod1` +# * Shift: `Shift` +# +# For simple keys (no `<>`-signs), a capital letter means the key is pressed +# with Shift. For special keys (with `<>`-signs), you need to explicitly add +# `Shift-` to match a key pressed with shift. You can bind multiple commands +# by separating them with `;;`. +# +# Note that default keybindings are always bound, and need to be explicitly +# unbound if you wish to remove them: +# +# +# keychain +# keychain2 +# ... + +[!normal] + +clear-keychain ;; leave-mode + + + +[normal] +# Keybindings for normal mode. + +clear-keychain ;; search + + +set-cmd-text -s :open + o + +set-cmd-text :open {url:pretty} + go + +set-cmd-text -s :open -t + O + +set-cmd-text :open -t {url:pretty} + gO + +set-cmd-text -s :open -b + xo + +set-cmd-text :open -b {url:pretty} + xO + +set-cmd-text -s :open -w + wo + +set-cmd-text :open -w {url:pretty} + wO + +open -t + ga + + +open -w + + +tab-close + d + + +tab-close -o + D + +tab-only + co + +tab-focus + K + + +tab-move + gm + +tab-move - + gl + +tab-move + + gr + +tab-prev + J + + +tab-clone + gC + +reload + r + + +reload -f + R + + +back + H + +back -t + th + +back -w + wh + +forward + L + +forward -t + tl + +forward -w + wl + +fullscreen + + +hint + f + +hint all tab + F + +hint all window + wf + +hint all tab-bg + ;b + +hint all tab-fg + ;f + +hint all hover + ;h + +hint images + ;i + +hint images tab + ;I + +hint links fill ":open {hint-url}" + ;o + +hint links fill ":open -t {hint-url}" + ;O + +hint links yank + ;y + +hint links yank-primary + ;Y + +hint --rapid links tab-bg + ;r + +hint --rapid links window + ;R + +hint links download + ;d + +hint inputs + ;t + +scroll left + h + +scroll down + j + +scroll up + k + +scroll right + l + +undo + u + + +scroll-perc 0 + gg + +scroll-perc + G + +search-next + n + +search-prev + N + +enter-mode insert + i + +enter-mode caret + v + +enter-mode set_mark + ` + +enter-mode jump_mark + ' + +yank + yy + +yank -s + yY + +yank -t + yt + +yank -ts + yT + +yank -d + yd + +yank -ds + yD + +yank -p + yp + +yank -ps + yP + +paste + pp + +paste -s + pP + +paste -t + Pp + +paste -ts + PP + +paste -w + wp + +paste -ws + wP + +quickmark-save + m + +set-cmd-text -s :quickmark-load + b + +set-cmd-text -s :quickmark-load -t + B + +set-cmd-text -s :quickmark-load -w + wb + +bookmark-add + M + +set-cmd-text -s :bookmark-load + gb + +set-cmd-text -s :bookmark-load -t + gB + +set-cmd-text -s :bookmark-load -w + wB + +save + sf + +set-cmd-text -s :set + ss + +set-cmd-text -s :set -t + sl + +set-cmd-text -s :set keybind + sk + +zoom-out + - + +zoom-in + + + +zoom + = + +navigate prev + [[ + +navigate next + ]] + +navigate prev -t + {{ + +navigate next -t + }} + +navigate up + gu + +navigate up -t + gU + +navigate increment + + +navigate decrement + + +inspector + wi + +download + gd + +download-cancel + ad + +download-clear + cd + +view-source + gf + +set-cmd-text -s :buffer + gt + +tab-focus last + + +enter-mode passthrough + + +quit + + +scroll-page 0 1 + + +scroll-page 0 -1 + + +scroll-page 0 0.5 + + +scroll-page 0 -0.5 + + +tab-focus 1 + + +tab-focus 2 + + +tab-focus 3 + + +tab-focus 4 + + +tab-focus 5 + + +tab-focus 6 + + +tab-focus 7 + + +tab-focus 8 + + +tab-focus 9 + + +home + + +stop + + +print + + +open qute:settings + Ss + +follow-selected + + + + + + + +follow-selected -t + + + +repeat-command + . + +[insert] +# Keybindings for insert mode. +# Since normal keypresses are passed through, only special keys are +# supported in this mode. +# Useful hidden commands to map in this section: +# * `open-editor`: Open a texteditor with the focused field. +# * `paste-primary`: Paste primary selection at cursor position. + +open-editor + + +paste-primary + + +[hint] +# Keybindings for hint mode. +# Since normal keypresses are passed through, only special keys are +# supported in this mode. +# Useful hidden commands to map in this section: +# * `follow-hint`: Follow the currently selected hint. + +follow-hint + + + + + + + +hint --rapid links tab-bg + + +hint links + + +hint all tab-bg + + +[command] +# Keybindings for command mode. +# Since normal keypresses are passed through, only special keys are +# supported in this mode. +# Useful hidden commands to map in this section: +# * `command-history-prev`: Switch to previous command in history. +# * `command-history-next`: Switch to next command in history. +# * `completion-item-prev`: Select previous item in completion. +# * `completion-item-next`: Select next item in completion. +# * `command-accept`: Execute the command currently in the commandline. + +command-history-prev + + +command-history-next + + +completion-item-prev + + + +completion-item-next + + + +completion-item-del + + +command-accept + + + + + + + +[prompt] +# Keybindings for prompts in the status line. +# You can bind normal keys in this mode, but they will be only active +# when a yes/no-prompt is asked. For other prompt modes, you can only +# bind special keys. +# Useful hidden commands to map in this section: +# * `prompt-accept`: Confirm the entered value. +# * `prompt-yes`: Answer yes to a yes/no question. +# * `prompt-no`: Answer no to a yes/no question. + +prompt-accept + + + + + + + +prompt-yes + y + +prompt-no + n + +prompt-open-download + + +[command,prompt] + +rl-backward-char + + +rl-forward-char + + +rl-backward-word + + +rl-forward-word + + +rl-beginning-of-line + + +rl-end-of-line + + +rl-unix-line-discard + + +rl-kill-line + + +rl-kill-word + + +rl-unix-word-rubout + + + +rl-yank + + +rl-delete-char + + +rl-backward-delete-char + + +[caret] + +toggle-selection + v + + +drop-selection + + +enter-mode normal + c + +move-to-next-line + j + +move-to-prev-line + k + +move-to-next-char + l + +move-to-prev-char + h + +move-to-end-of-word + e + +move-to-next-word + w + +move-to-prev-word + b + +move-to-start-of-next-block + ] + +move-to-start-of-prev-block + [ + +move-to-end-of-next-block + } + +move-to-end-of-prev-block + { + +move-to-start-of-line + 0 + +move-to-end-of-line + $ + +move-to-start-of-document + gg + +move-to-end-of-document + G + +yank-selected -p + Y + +yank-selected + y + + + + + + + +scroll left + H + +scroll down + J + +scroll up + K + +scroll right + L + diff --git a/browser/qutebrowser/link.bash b/browser/qutebrowser/link.bash new file mode 100755 index 0000000..2b14ec1 --- /dev/null +++ b/browser/qutebrowser/link.bash @@ -0,0 +1,10 @@ +#!/usr/bin/env bash + +DIR=$(cd "$(dirname "${BASH_SOURCE[0]}" )/../.." && pwd) +source "$DIR/variables.bash" + +mkdir -p "$HOME/.config/qutebrowser" + +rm -rf "$HOME/.config/qutebrowser" +ln -s "$DOTFILES_PATH/browser/qutebrowser" "$HOME/.config/qutebrowser" + diff --git a/browser/qutebrowser/quickmarks b/browser/qutebrowser/quickmarks new file mode 100644 index 0000000..e69de29 diff --git a/browser/qutebrowser/qutebrowser.conf b/browser/qutebrowser/qutebrowser.conf new file mode 100644 index 0000000..c252ab8 --- /dev/null +++ b/browser/qutebrowser/qutebrowser.conf @@ -0,0 +1,1451 @@ +# vim: ft=dosini + +# Configfile for qutebrowser. +# +# This configfile is parsed by python's configparser in extended +# interpolation mode. The format is very INI-like, so there are +# categories like [general] with "key = value"-pairs. +# +# Note that you shouldn't add your own comments, as this file is +# regenerated every time the config is saved. +# +# Interpolation looks like ${value} or ${section:value} and will be +# replaced by the respective value. +# +# Some settings will expand environment variables. Note that, since +# interpolation is run first, you will need to escape the $ char as +# described below. +# +# This is the default config, so if you want to remove anything from +# here (as opposed to change/add), for example a key binding, set it to +# an empty value. +# +# You will need to escape the following values: +# - # at the start of the line (at the first position of the key) (\#) +# - $ in a value ($$) + +[general] +# General/miscellaneous options. +# +# ignore-case (IgnoreCase): +# Whether to find text on a page case-insensitively. +# true: Search case-insensitively +# false: Search case-sensitively +# smart: Search case-sensitively if there are capital chars +# Default: smart +# +# startpage (List): +# The default page(s) to open at the start, separated by commas. +# Default: https://duckduckgo.com +# +# default-page (FuzzyUrl): +# The page to open if :open -t/-b/-w is used without URL. Use +# `about:blank` for a blank page. +# Default: ${startpage} +# +# auto-search (AutoSearch): +# Whether to start a search when something else than a URL is +# entered. +# naive: Use simple/naive check. +# dns: Use DNS requests (might be slow!). +# false: Never search automatically. +# Default: naive +# +# auto-save-config (Bool): +# Whether to save the config automatically on quit. +# Valid values: true, false +# Default: true +# +# auto-save-interval (Int): +# How often (in milliseconds) to auto-save config/cookies/etc. +# Default: 15000 +# +# editor (ShellCommand): +# The editor (and arguments) to use for the `open-editor` command. +# The arguments get split like in a shell, so you can use `"` or `'` +# to quote them. +# `{}` gets replaced by the filename of the file to be edited. +# Default: gvim -f "{}" +# +# editor-encoding (Encoding): +# Encoding to use for editor. +# Default: utf-8 +# +# private-browsing (Bool): +# Do not record visited pages in the history or store web page +# icons. +# Valid values: true, false +# Default: false +# +# developer-extras (Bool): +# Enable extra tools for Web developers. +# This needs to be enabled for `:inspector` to work and also adds an +# _Inspect_ entry to the context menu. +# Valid values: true, false +# Default: false +# +# print-element-backgrounds (Bool): +# Whether the background color and images are also drawn when the +# page is printed. +# Valid values: true, false +# Default: true +# +# xss-auditing (Bool): +# Whether load requests should be monitored for cross-site scripting +# attempts. +# Suspicious scripts will be blocked and reported in the inspector's +# JavaScript console. Enabling this feature might have an impact on +# performance. +# Valid values: true, false +# Default: false +# +# site-specific-quirks (Bool): +# Enable workarounds for broken sites. +# Valid values: true, false +# Default: true +# +# default-encoding (String): +# Default encoding to use for websites. +# The encoding must be a string describing an encoding such as +# _utf-8_, _iso-8859-1_, etc. If left empty a default value will be +# used. +# Default: +# +# new-instance-open-target (String): +# How to open links in an existing instance if a new one is +# launched. +# tab: Open a new tab in the existing window and activate the +# window. +# tab-bg: Open a new background tab in the existing window and +# activate the window. +# tab-silent: Open a new tab in the existing window without +# activating the window. +# tab-bg-silent: Open a new background tab in the existing +# window without activating the window. +# window: Open in a new window. +# Default: tab +# +# log-javascript-console (String): +# How to log javascript console messages. +# none: Don't log messages. +# debug: Log messages with debug level. +# info: Log messages with info level. +# Default: debug +# +# save-session (Bool): +# Whether to always save the open pages. +# Valid values: true, false +# Default: false +# +# session-default-name (SessionName): +# The name of the session to save by default, or empty for the last +# loaded session. +# Default: +# +# url-incdec-segments (FlagList): +# The URL segments where `:navigate increment/decrement` will search +# for a number. +# Valid values: host, path, query, anchor +# Default: path,query +ignore-case = smart +startpage = https://duckduckgo.com +default-page = ${startpage} +auto-search = naive +auto-save-config = true +auto-save-interval = 15000 +editor = urxvtc -e nvim "{}" +editor-encoding = utf-8 +private-browsing = false +developer-extras = true +print-element-backgrounds = true +xss-auditing = false +site-specific-quirks = true +default-encoding = +new-instance-open-target = tab +log-javascript-console = debug +save-session = true +session-default-name = +url-incdec-segments = path,query + +[ui] +# General options related to the user interface. +# +# zoom-levels (PercList): +# The available zoom levels, separated by commas. +# Default: +# 25%,33%,50%,67%,75%,90%,100%,110%,125%,150%,175%,200%,250%,300%,400%,500% +# +# default-zoom (Perc): +# The default zoom level. +# Default: 100% +# +# downloads-position (VerticalPosition): +# Where to show the downloaded files. +# Valid values: top, bottom +# Default: top +# +# status-position (VerticalPosition): +# The position of the status bar. +# Valid values: top, bottom +# Default: bottom +# +# message-timeout (Int): +# Time (in ms) to show messages in the statusbar for. +# Default: 2000 +# +# message-unfocused (Bool): +# Whether to show messages in unfocused windows. +# Valid values: true, false +# Default: false +# +# confirm-quit (ConfirmQuit): +# Whether to confirm quitting the application. +# always: Always show a confirmation. +# multiple-tabs: Show a confirmation if multiple tabs are +# opened. +# downloads: Show a confirmation if downloads are running +# never: Never show a confirmation. +# Default: never +# +# zoom-text-only (Bool): +# Whether the zoom factor on a frame applies only to the text or to +# all content. +# Valid values: true, false +# Default: false +# +# frame-flattening (Bool): +# Whether to expand each subframe to its contents. +# This will flatten all the frames to become one scrollable page. +# Valid values: true, false +# Default: false +# +# user-stylesheet (UserStyleSheet): +# User stylesheet to use (absolute filename, filename relative to +# the config directory or CSS string). Will expand environment +# variables. +# Default: ::-webkit-scrollbar { width: 0px; height: 0px; } +# +# css-media-type (String): +# Set the CSS media type. +# Default: +# +# smooth-scrolling (Bool): +# Whether to enable smooth scrolling for webpages. +# Valid values: true, false +# Default: false +# +# remove-finished-downloads (Int): +# Number of milliseconds to wait before removing finished downloads. +# Will not be removed if value is -1. +# Default: -1 +# +# hide-statusbar (Bool): +# Whether to hide the statusbar unless a message is shown. +# Valid values: true, false +# Default: false +# +# statusbar-padding (Padding): +# Padding for statusbar (top, bottom, left, right). +# Default: 1,1,0,0 +# +# window-title-format (FormatString): +# The format to use for the window title. The following placeholders +# are defined: +# * `{perc}`: The percentage as a string like `[10%]`. +# * `{perc_raw}`: The raw percentage, e.g. `10` +# * `{title}`: The title of the current web page +# * `{title_sep}`: The string ` - ` if a title is set, empty +# otherwise. +# * `{id}`: The internal window ID of this window. +# * `{scroll_pos}`: The page scroll position. +# * `{host}`: The host of the current web page. +# Default: {perc}{title}{title_sep}qutebrowser +# +# hide-mouse-cursor (Bool): +# Whether to hide the mouse cursor. +# Valid values: true, false +# Default: false +# +# modal-js-dialog (Bool): +# Use standard JavaScript modal dialog for alert() and confirm() +# Valid values: true, false +# Default: false +# +# hide-wayland-decoration (Bool): +# Hide the window decoration when using wayland (requires restart) +# Valid values: true, false +# Default: false +# +# keyhint-blacklist (List): +# Keychains that shouldn't be shown in the keyhint dialog +# Globs are supported, so ';*' will blacklist all keychainsstarting +# with ';'. Use '*' to disable keyhints +# Default: +zoom-levels = 25%,33%,50%,67%,75%,90%,100%,110%,125%,150%,175%,200%,250%,300%,400%,500% +default-zoom = 100% +downloads-position = top +status-position = bottom +message-timeout = 2000 +message-unfocused = false +confirm-quit = always +zoom-text-only = false +frame-flattening = false +user-stylesheet = ::-webkit-scrollbar { width: 0px; height: 0px; } +css-media-type = +smooth-scrolling = true +remove-finished-downloads = -1 +hide-statusbar = false +statusbar-padding = 5,5,5,5 +window-title-format = {perc}{title}{title_sep}qutebrowser +hide-mouse-cursor = false +modal-js-dialog = false +hide-wayland-decoration = false +keyhint-blacklist = + +[network] +# Settings related to the network. +# +# do-not-track (Bool): +# Value to send in the `DNT` header. +# Valid values: true, false +# Default: true +# +# accept-language (String): +# Value to send in the `accept-language` header. +# Default: en-US,en +# +# referer-header (String): +# Send the Referer header +# always: Always send. +# never: Never send; this is not recommended, as some sites may +# break. +# same-domain: Only send for the same domain. This will still +# protect your privacy, but shouldn't break any sites. +# Default: same-domain +# +# user-agent (UserAgent): +# User agent to send. Empty to send the default. +# Default: +# +# proxy (Proxy): +# The proxy to use. +# In addition to the listed values, you can use a `socks://...` or +# `http://...` URL. +# system: Use the system wide proxy. +# none: Don't use any proxy +# Default: system +# +# proxy-dns-requests (Bool): +# Whether to send DNS requests over the configured proxy. +# Valid values: true, false +# Default: true +# +# ssl-strict (BoolAsk): +# Whether to validate SSL handshakes. +# Valid values: true, false, ask +# Default: ask +# +# dns-prefetch (Bool): +# Whether to try to pre-fetch DNS entries to speed up browsing. +# Valid values: true, false +# Default: true +# +# custom-headers (HeaderDict): +# Set custom headers for qutebrowser HTTP requests. +# Default: +do-not-track = true +accept-language = en-US,en +referer-header = same-domain +user-agent = Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36 +proxy = system +proxy-dns-requests = true +ssl-strict = ask +dns-prefetch = true +custom-headers = + +[completion] +# Options related to completion and command history. +# +# auto-open (Bool): +# Automatically open completion when typing. +# Valid values: true, false +# Default: true +# +# download-path-suggestion (String): +# What to display in the download filename input. +# path: Show only the download path. +# filename: Show only download filename. +# both: Show download path and filename. +# Default: path +# +# timestamp-format (TimestampTemplate): +# How to format timestamps (e.g. for history) +# Default: %Y-%m-%d +# +# show (Bool): +# Whether to show the autocompletion window. +# Valid values: true, false +# Default: true +# +# height (PercOrInt): +# The height of the completion, in px or as percentage of the +# window. +# Default: 50% +# +# cmd-history-max-items (Int): +# How many commands to save in the command history. +# 0: no history / -1: unlimited +# Default: 100 +# +# web-history-max-items (Int): +# How many URLs to show in the web history. +# 0: no history / -1: unlimited +# Default: 1000 +# +# quick-complete (Bool): +# Whether to move on to the next part when there's only one possible +# completion left. +# Valid values: true, false +# Default: true +# +# shrink (Bool): +# Whether to shrink the completion to be smaller than the configured +# size if there are no scrollbars. +# Valid values: true, false +# Default: false +# +# scrollbar-width (Int): +# Width of the scrollbar in the completion window (in px). +# Default: 12 +# +# scrollbar-padding (Int): +# Padding of scrollbar handle in completion window (in px). +# Default: 2 +auto-open = true +download-path-suggestion = path +timestamp-format = %Y-%m-%d +show = true +height = 50% +cmd-history-max-items = 100 +web-history-max-items = 1000 +quick-complete = true +shrink = false +scrollbar-width = 12 +scrollbar-padding = 2 + +[input] +# Options related to input modes. +# +# timeout (Int): +# Timeout for ambiguous key bindings. +# If the current input forms both a complete match and a partial +# match, the complete match will be executed after this time. +# Default: 500 +# +# partial-timeout (Int): +# Timeout for partially typed key bindings. +# If the current input forms only partial matches, the keystring +# will be cleared after this time. +# Default: 5000 +# +# insert-mode-on-plugins (Bool): +# Whether to switch to insert mode when clicking flash and other +# plugins. +# Valid values: true, false +# Default: false +# +# auto-leave-insert-mode (Bool): +# Whether to leave insert mode if a non-editable element is clicked. +# Valid values: true, false +# Default: true +# +# auto-insert-mode (Bool): +# Whether to automatically enter insert mode if an editable element +# is focused after page load. +# Valid values: true, false +# Default: false +# +# forward-unbound-keys (String): +# Whether to forward unbound keys to the webview in normal mode. +# all: Forward all unbound keys. +# auto: Forward unbound non-alphanumeric keys. +# none: Don't forward any keys. +# Default: auto +# +# spatial-navigation (Bool): +# Enables or disables the Spatial Navigation feature. +# Spatial navigation consists in the ability to navigate between +# focusable elements in a Web page, such as hyperlinks and form +# controls, by using Left, Right, Up and Down arrow keys. For +# example, if a user presses the Right key, heuristics determine +# whether there is an element he might be trying to reach towards +# the right and which element he probably wants. +# Valid values: true, false +# Default: false +# +# links-included-in-focus-chain (Bool): +# Whether hyperlinks should be included in the keyboard focus chain. +# Valid values: true, false +# Default: true +# +# rocker-gestures (Bool): +# Whether to enable Opera-like mouse rocker gestures. This disables +# the context menu. +# Valid values: true, false +# Default: false +# +# mouse-zoom-divider (Int): +# How much to divide the mouse wheel movements to translate them +# into zoom increments. +# Default: 512 +timeout = 500 +partial-timeout = 5000 +insert-mode-on-plugins = false +auto-leave-insert-mode = true +auto-insert-mode = false +forward-unbound-keys = auto +spatial-navigation = false +links-included-in-focus-chain = true +rocker-gestures = false +mouse-zoom-divider = 512 + +[tabs] +# Configuration of the tab bar. +# +# background-tabs (Bool): +# Whether to open new tabs (middleclick/ctrl+click) in background. +# Valid values: true, false +# Default: false +# +# select-on-remove (SelectOnRemove): +# Which tab to select when the focused tab is removed. +# left: Select the tab on the left. +# right: Select the tab on the right. +# previous: Select the previously selected tab. +# Default: right +# +# new-tab-position (NewTabPosition): +# How new tabs are positioned. +# left: On the left of the current tab. +# right: On the right of the current tab. +# first: At the left end. +# last: At the right end. +# Default: right +# +# new-tab-position-explicit (NewTabPosition): +# How new tabs opened explicitly are positioned. +# left: On the left of the current tab. +# right: On the right of the current tab. +# first: At the left end. +# last: At the right end. +# Default: last +# +# last-close (String): +# Behavior when the last tab is closed. +# ignore: Don't do anything. +# blank: Load a blank page. +# startpage: Load the start page. +# default-page: Load the default page. +# close: Close the window. +# Default: ignore +# +# show (String): +# When to show the tab bar +# always: Always show the tab bar. +# never: Always hide the tab bar. +# multiple: Hide the tab bar if only one tab is open. +# switching: Show the tab bar when switching tabs. +# Default: always +# +# show-switching-delay (Int): +# Time to show the tab bar before hiding it when tabs->show is set +# to 'switching'. +# Default: 800 +# +# wrap (Bool): +# Whether to wrap when changing tabs. +# Valid values: true, false +# Default: true +# +# movable (Bool): +# Whether tabs should be movable. +# Valid values: true, false +# Default: true +# +# close-mouse-button (String): +# On which mouse button to close tabs. +# right: Close tabs on right-click. +# middle: Close tabs on middle-click. +# none: Don't close tabs using the mouse. +# Default: middle +# +# position (Position): +# The position of the tab bar. +# Valid values: top, bottom, left, right +# Default: top +# +# show-favicons (Bool): +# Whether to show favicons in the tab bar. +# Valid values: true, false +# Default: true +# +# width (PercOrInt): +# The width of the tab bar if it's vertical, in px or as percentage +# of the window. +# Default: 20% +# +# indicator-width (Int): +# Width of the progress indicator (0 to disable). +# Default: 3 +# +# tabs-are-windows (Bool): +# Whether to open windows instead of tabs. +# Valid values: true, false +# Default: false +# +# title-format (FormatString): +# The format to use for the tab title. The following placeholders +# are defined: +# * `{perc}`: The percentage as a string like `[10%]`. +# * `{perc_raw}`: The raw percentage, e.g. `10` +# * `{title}`: The title of the current web page +# * `{title_sep}`: The string ` - ` if a title is set, empty +# otherwise. +# * `{index}`: The index of this tab. +# * `{id}`: The internal tab ID of this tab. +# * `{scroll_pos}`: The page scroll position. +# * `{host}`: The host of the current web page. +# Default: {index}: {title} +# +# title-alignment (TextAlignment): +# Alignment of the text inside of tabs +# Valid values: left, right, center +# Default: left +# +# mousewheel-tab-switching (Bool): +# Switch between tabs using the mouse wheel. +# Valid values: true, false +# Default: true +# +# padding (Padding): +# Padding for tabs (top, bottom, left, right). +# Default: 0,0,5,5 +# +# indicator-padding (Padding): +# Padding for indicators (top, bottom, left, right). +# Default: 2,2,0,4 +background-tabs = false +select-on-remove = right +new-tab-position = right +new-tab-position-explicit = last +last-close = ignore +show = always +show-switching-delay = 800 +wrap = true +movable = true +close-mouse-button = middle +position = bottom +show-favicons = true +width = 20% +indicator-width = 3 +tabs-are-windows = false +title-format = {title} +title-alignment = center +mousewheel-tab-switching = true +padding = 5,5,5,5 +indicator-padding = 0,0,0,5 + +[storage] +# Settings related to cache and storage. +# +# download-directory (Directory): +# The directory to save downloads to. An empty value selects a +# sensible os-specific default. Will expand environment variables. +# Default: +# +# prompt-download-directory (Bool): +# Whether to prompt the user for the download location. +# If set to false, 'download-directory' will be used. +# Valid values: true, false +# Default: true +# +# remember-download-directory (Bool): +# Whether to remember the last used download directory. +# Valid values: true, false +# Default: true +# +# maximum-pages-in-cache (Int): +# The maximum number of pages to hold in the global memory page +# cache. +# The Page Cache allows for a nicer user experience when navigating +# forth or back to pages in the forward/back history, by pausing and +# resuming up to _n_ pages. +# For more information about the feature, please refer to: +# http://webkit.org/blog/427/webkit-page-cache-i-the-basics/ +# Default: +# +# object-cache-capacities (WebKitBytesList): +# The capacities for the global memory cache for dead objects such +# as stylesheets or scripts. Syntax: cacheMinDeadCapacity, +# cacheMaxDead, totalCapacity. +# The _cacheMinDeadCapacity_ specifies the minimum number of bytes +# that dead objects should consume when the cache is under pressure. +# _cacheMaxDead_ is the maximum number of bytes that dead objects +# should consume when the cache is *not* under pressure. +# _totalCapacity_ specifies the maximum number of bytes that the +# cache should consume *overall*. +# Default: +# +# offline-storage-default-quota (WebKitBytes): +# Default quota for new offline storage databases. +# Default: +# +# offline-web-application-cache-quota (WebKitBytes): +# Quota for the offline web application cache. +# Default: +# +# offline-storage-database (Bool): +# Whether support for the HTML 5 offline storage feature is enabled. +# Valid values: true, false +# Default: true +# +# offline-web-application-storage (Bool): +# Whether support for the HTML 5 web application cache feature is +# enabled. +# An application cache acts like an HTTP cache in some sense. For +# documents that use the application cache via JavaScript, the +# loader engine will first ask the application cache for the +# contents, before hitting the network. +# The feature is described in details at: +# http://dev.w3.org/html5/spec/Overview.html#appcache +# Valid values: true, false +# Default: true +# +# local-storage (Bool): +# Whether support for the HTML 5 local storage feature is enabled. +# Valid values: true, false +# Default: true +# +# cache-size (Int): +# Size of the HTTP network cache. +# Default: 52428800 +download-directory = ~/Downloads +prompt-download-directory = true +remember-download-directory = true +maximum-pages-in-cache = +object-cache-capacities = +offline-storage-default-quota = +offline-web-application-cache-quota = +offline-storage-database = true +offline-web-application-storage = true +local-storage = true +cache-size = 52428800 + +[content] +# Loaded plugins/scripts and allowed actions. +# +# allow-images (Bool): +# Whether images are automatically loaded in web pages. +# Valid values: true, false +# Default: true +# +# allow-javascript (Bool): +# Enables or disables the running of JavaScript programs. +# Valid values: true, false +# Default: true +# +# allow-plugins (Bool): +# Enables or disables plugins in Web pages. +# Qt plugins with a mimetype such as "application/x-qt-plugin" are +# not affected by this setting. +# Valid values: true, false +# Default: false +# +# webgl (Bool): +# Enables or disables WebGL. +# Valid values: true, false +# Default: false +# +# css-regions (Bool): +# Enable or disable support for CSS regions. +# Valid values: true, false +# Default: true +# +# hyperlink-auditing (Bool): +# Enable or disable hyperlink auditing (). +# Valid values: true, false +# Default: false +# +# geolocation (BoolAsk): +# Allow websites to request geolocations. +# Valid values: true, false, ask +# Default: ask +# +# notifications (BoolAsk): +# Allow websites to show notifications. +# Valid values: true, false, ask +# Default: ask +# +# javascript-can-open-windows (Bool): +# Whether JavaScript programs can open new windows. +# Valid values: true, false +# Default: false +# +# javascript-can-close-windows (Bool): +# Whether JavaScript programs can close windows. +# Valid values: true, false +# Default: false +# +# javascript-can-access-clipboard (Bool): +# Whether JavaScript programs can read or write to the clipboard. +# Valid values: true, false +# Default: false +# +# ignore-javascript-prompt (Bool): +# Whether all javascript prompts should be ignored. +# Valid values: true, false +# Default: false +# +# ignore-javascript-alert (Bool): +# Whether all javascript alerts should be ignored. +# Valid values: true, false +# Default: false +# +# local-content-can-access-remote-urls (Bool): +# Whether locally loaded documents are allowed to access remote +# urls. +# Valid values: true, false +# Default: false +# +# local-content-can-access-file-urls (Bool): +# Whether locally loaded documents are allowed to access other local +# urls. +# Valid values: true, false +# Default: true +# +# cookies-accept (String): +# Control which cookies to accept. +# all: Accept all cookies. +# no-3rdparty: Accept cookies from the same origin only. +# no-unknown-3rdparty: Accept cookies from the same origin only, +# unless a cookie is already set for the domain. +# never: Don't accept cookies at all. +# Default: no-3rdparty +# +# cookies-store (Bool): +# Whether to store cookies. +# Valid values: true, false +# Default: true +# +# host-block-lists (UrlList): +# List of URLs of lists which contain hosts to block. +# The file can be in one of the following formats: +# - An '/etc/hosts'-like file +# - One host per line +# - A zip-file of any of the above, with either only one file, or a +# file named 'hosts' (with any extension). +# Default: +# http://www.malwaredomainlist.com/hostslist/hosts.txt,http://someonewhocares.org/hosts/hosts,http://winhelp2002.mvps.org/hosts.zip,http://malwaredomains.lehigh.edu/files/justdomains.zip,http://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts&mimetype=plaintext +# +# host-blocking-enabled (Bool): +# Whether host blocking is enabled. +# Valid values: true, false +# Default: true +# +# host-blocking-whitelist (List): +# List of domains that should always be loaded, despite being +# ad-blocked. +# Domains may contain * and ? wildcards and are otherwise required +# to exactly match the requested domain. +# Local domains are always exempt from hostblocking. +# Default: piwik.org +# +# enable-pdfjs (Bool): +# Enable pdf.js to view PDF files in the browser. +# Note that the files can still be downloaded by clicking the +# download button in the pdf.js viewer. +# Valid values: true, false +# Default: false +allow-images = true +allow-javascript = true +allow-plugins = false +webgl = true +css-regions = true +hyperlink-auditing = false +geolocation = ask +notifications = ask +javascript-can-open-windows = true +javascript-can-close-windows = true +javascript-can-access-clipboard = true +ignore-javascript-prompt = false +ignore-javascript-alert = false +local-content-can-access-remote-urls = false +local-content-can-access-file-urls = true +cookies-accept = no-3rdparty +cookies-store = true +host-block-lists = http://www.malwaredomainlist.com/hostslist/hosts.txt,http://someonewhocares.org/hosts/hosts,http://winhelp2002.mvps.org/hosts.zip,http://malwaredomains.lehigh.edu/files/justdomains.zip,http://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts&mimetype=plaintext +host-blocking-enabled = true +host-blocking-whitelist = piwik.org +enable-pdfjs = true + +[hints] +# Hinting settings. +# +# border (String): +# CSS border value for hints. +# Default: 1px solid #E3BE23 +# +# opacity (Float): +# Opacity for hints. +# Default: 0.7 +# +# mode (String): +# Mode to use for hints. +# number: Use numeric hints. +# letter: Use the chars in the hints -> chars setting. +# word: Use hints words based on the html elements and the extra +# words. +# Default: letter +# +# chars (UniqueCharString): +# Chars used for hint strings. +# Default: asdfghjkl +# +# min-chars (Int): +# Minimum number of chars used for hint strings. +# Default: 1 +# +# scatter (Bool): +# Whether to scatter hint key chains (like Vimium) or not (like +# dwb). Ignored for number hints. +# Valid values: true, false +# Default: true +# +# uppercase (Bool): +# Make chars in hint strings uppercase. +# Valid values: true, false +# Default: false +# +# dictionary (File): +# The dictionary file to be used by the word hints. +# Default: /usr/share/dict/words +# +# auto-follow (Bool): +# Follow a hint immediately when the hint text is completely +# matched. +# Valid values: true, false +# Default: true +# +# auto-follow-timeout (Int): +# A timeout to inhibit normal-mode key bindings after a +# successfulauto-follow. +# Default: 0 +# +# next-regexes (RegexList): +# A comma-separated list of regexes to use for 'next' links. +# Default: +# \bnext\b,\bmore\b,\bnewer\b,\b[>→≫]\b,\b(>>|»)\b,\bcontinue\b +# +# prev-regexes (RegexList): +# A comma-separated list of regexes to use for 'prev' links. +# Default: \bprev(ious)?\b,\bback\b,\bolder\b,\b[<←≪]\b,\b(<<|«)\b +# +# find-implementation (String): +# Which implementation to use to find elements to hint. +# javascript: Better but slower +# python: Slightly worse but faster +# Default: javascript +border = 1px solid #E3BE23 +opacity = 0.9 +mode = letter +chars = asdfghjkl +min-chars = 1 +scatter = true +uppercase = false +dictionary = /usr/share/dict/words +auto-follow = true +auto-follow-timeout = 0 +next-regexes = \bnext\b,\bmore\b,\bnewer\b,\b[>→≫]\b,\b(>>|»)\b,\bcontinue\b +prev-regexes = \bprev(ious)?\b,\bback\b,\bolder\b,\b[<←≪]\b,\b(<<|«)\b +find-implementation = javascript + +[searchengines] +# Definitions of search engines which can be used via the address bar. +# The searchengine named `DEFAULT` is used when `general -> auto-search` +# is true and something else than a URL was entered to be opened. Other +# search engines can be used by prepending the search engine name to the +# search term, e.g. `:open google qutebrowser`. The string `{}` will be +# replaced by the search term, use `{{` and `}}` for literal `{`/`}` +# signs. +DEFAULT = ${google} +google = https://www.google.com/search?hl=en&q={} +duckduckgo = https://duckduckgo.com/?q={} +d = ${duckduckgo} +g = ${google} + +[aliases] +# Aliases for commands. +# By default, no aliases are defined. Example which adds a new command +# `:qtb` to open qutebrowsers website: +# `qtb = open http://www.qutebrowser.org/` + +[colors] +# Colors used in the UI. +# A value can be in one of the following format: +# * `#RGB`/`#RRGGBB`/`#RRRGGGBBB`/`#RRRRGGGGBBBB` +# * An SVG color name as specified in http://www.w3.org/TR/SVG/types.html#ColorKeywords[the W3C specification]. +# * transparent (no color) +# * `rgb(r, g, b)` / `rgba(r, g, b, a)` (values 0-255 or percentages) +# * `hsv(h, s, v)` / `hsva(h, s, v, a)` (values 0-255, hue 0-359) +# * A gradient as explained in http://doc.qt.io/qt-5/stylesheet-reference.html#list-of-property-types[the Qt documentation] under ``Gradient''. +# A *.system value determines the color system to use for color +# interpolation between similarly-named *.start and *.stop entries, +# regardless of how they are defined in the options. Valid values are +# 'rgb', 'hsv', and 'hsl'. +# The `hints.*` values are a special case as they're real CSS colors, not Qt-CSS colors. There, for a gradient, you need to use `-webkit-gradient`, see https://www.webkit.org/blog/175/introducing-css-gradients/[the WebKit documentation]. +# +# completion.fg (QtColor): +# Text color of the completion widget. +# Default: white +# +# completion.bg (QssColor): +# Background color of the completion widget. +# Default: #333333 +# +# completion.alternate-bg (QssColor): +# Alternating background color of the completion widget. +# Default: #444444 +# +# completion.category.fg (QtColor): +# Foreground color of completion widget category headers. +# Default: white +# +# completion.category.bg (QssColor): +# Background color of the completion widget category headers. +# Default: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #888888, +# stop:1 #505050) +# +# completion.category.border.top (QssColor): +# Top border color of the completion widget category headers. +# Default: black +# +# completion.category.border.bottom (QssColor): +# Bottom border color of the completion widget category headers. +# Default: ${completion.category.border.top} +# +# completion.item.selected.fg (QtColor): +# Foreground color of the selected completion item. +# Default: black +# +# completion.item.selected.bg (QssColor): +# Background color of the selected completion item. +# Default: #e8c000 +# +# completion.item.selected.border.top (QssColor): +# Top border color of the completion widget category headers. +# Default: #bbbb00 +# +# completion.item.selected.border.bottom (QssColor): +# Bottom border color of the selected completion item. +# Default: ${completion.item.selected.border.top} +# +# completion.match.fg (QssColor): +# Foreground color of the matched text in the completion. +# Default: #ff4444 +# +# completion.scrollbar.fg (QssColor): +# Color of the scrollbar handle in completion view. +# Default: ${completion.fg} +# +# completion.scrollbar.bg (QssColor): +# Color of the scrollbar in completion view +# Default: ${completion.bg} +# +# statusbar.fg (QssColor): +# Foreground color of the statusbar. +# Default: white +# +# statusbar.bg (QssColor): +# Background color of the statusbar. +# Default: black +# +# statusbar.fg.error (QssColor): +# Foreground color of the statusbar if there was an error. +# Default: ${statusbar.fg} +# +# statusbar.bg.error (QssColor): +# Background color of the statusbar if there was an error. +# Default: red +# +# statusbar.fg.warning (QssColor): +# Foreground color of the statusbar if there is a warning. +# Default: ${statusbar.fg} +# +# statusbar.bg.warning (QssColor): +# Background color of the statusbar if there is a warning. +# Default: darkorange +# +# statusbar.fg.prompt (QssColor): +# Foreground color of the statusbar if there is a prompt. +# Default: ${statusbar.fg} +# +# statusbar.bg.prompt (QssColor): +# Background color of the statusbar if there is a prompt. +# Default: darkblue +# +# statusbar.fg.insert (QssColor): +# Foreground color of the statusbar in insert mode. +# Default: ${statusbar.fg} +# +# statusbar.bg.insert (QssColor): +# Background color of the statusbar in insert mode. +# Default: darkgreen +# +# statusbar.fg.command (QssColor): +# Foreground color of the statusbar in command mode. +# Default: ${statusbar.fg} +# +# statusbar.bg.command (QssColor): +# Background color of the statusbar in command mode. +# Default: ${statusbar.bg} +# +# statusbar.fg.caret (QssColor): +# Foreground color of the statusbar in caret mode. +# Default: ${statusbar.fg} +# +# statusbar.bg.caret (QssColor): +# Background color of the statusbar in caret mode. +# Default: purple +# +# statusbar.fg.caret-selection (QssColor): +# Foreground color of the statusbar in caret mode with a selection +# Default: ${statusbar.fg} +# +# statusbar.bg.caret-selection (QssColor): +# Background color of the statusbar in caret mode with a selection +# Default: #a12dff +# +# statusbar.progress.bg (QssColor): +# Background color of the progress bar. +# Default: white +# +# statusbar.url.fg (QssColor): +# Default foreground color of the URL in the statusbar. +# Default: ${statusbar.fg} +# +# statusbar.url.fg.success (QssColor): +# Foreground color of the URL in the statusbar on successful load +# (http). +# Default: white +# +# statusbar.url.fg.success.https (QssColor): +# Foreground color of the URL in the statusbar on successful load +# (https). +# Default: lime +# +# statusbar.url.fg.error (QssColor): +# Foreground color of the URL in the statusbar on error. +# Default: orange +# +# statusbar.url.fg.warn (QssColor): +# Foreground color of the URL in the statusbar when there's a +# warning. +# Default: yellow +# +# statusbar.url.fg.hover (QssColor): +# Foreground color of the URL in the statusbar for hovered links. +# Default: aqua +# +# tabs.fg.odd (QtColor): +# Foreground color of unselected odd tabs. +# Default: white +# +# tabs.bg.odd (QtColor): +# Background color of unselected odd tabs. +# Default: grey +# +# tabs.fg.even (QtColor): +# Foreground color of unselected even tabs. +# Default: white +# +# tabs.bg.even (QtColor): +# Background color of unselected even tabs. +# Default: darkgrey +# +# tabs.fg.selected.odd (QtColor): +# Foreground color of selected odd tabs. +# Default: white +# +# tabs.bg.selected.odd (QtColor): +# Background color of selected odd tabs. +# Default: black +# +# tabs.fg.selected.even (QtColor): +# Foreground color of selected even tabs. +# Default: ${tabs.fg.selected.odd} +# +# tabs.bg.selected.even (QtColor): +# Background color of selected even tabs. +# Default: ${tabs.bg.selected.odd} +# +# tabs.bg.bar (QtColor): +# Background color of the tab bar. +# Default: #555555 +# +# tabs.indicator.start (QtColor): +# Color gradient start for the tab indicator. +# Default: #0000aa +# +# tabs.indicator.stop (QtColor): +# Color gradient end for the tab indicator. +# Default: #00aa00 +# +# tabs.indicator.error (QtColor): +# Color for the tab indicator on errors.. +# Default: #ff0000 +# +# tabs.indicator.system (ColorSystem): +# Color gradient interpolation system for the tab indicator. +# rgb: Interpolate in the RGB color system. +# hsv: Interpolate in the HSV color system. +# hsl: Interpolate in the HSL color system. +# none: Don't show a gradient. +# Default: rgb +# +# hints.fg (CssColor): +# Font color for hints. +# Default: black +# +# hints.bg (CssColor): +# Background color for hints. +# Default: -webkit-gradient(linear, left top, left bottom, +# color-stop(0%,#FFF785), color-stop(100%,#FFC542)) +# +# hints.fg.match (CssColor): +# Font color for the matched part of hints. +# Default: green +# +# downloads.bg.bar (QssColor): +# Background color for the download bar. +# Default: black +# +# downloads.fg.start (QtColor): +# Color gradient start for download text. +# Default: white +# +# downloads.bg.start (QtColor): +# Color gradient start for download backgrounds. +# Default: #0000aa +# +# downloads.fg.stop (QtColor): +# Color gradient end for download text. +# Default: ${downloads.fg.start} +# +# downloads.bg.stop (QtColor): +# Color gradient stop for download backgrounds. +# Default: #00aa00 +# +# downloads.fg.system (ColorSystem): +# Color gradient interpolation system for download text. +# rgb: Interpolate in the RGB color system. +# hsv: Interpolate in the HSV color system. +# hsl: Interpolate in the HSL color system. +# none: Don't show a gradient. +# Default: rgb +# +# downloads.bg.system (ColorSystem): +# Color gradient interpolation system for download backgrounds. +# rgb: Interpolate in the RGB color system. +# hsv: Interpolate in the HSV color system. +# hsl: Interpolate in the HSL color system. +# none: Don't show a gradient. +# Default: rgb +# +# downloads.fg.error (QtColor): +# Foreground color for downloads with errors. +# Default: white +# +# downloads.bg.error (QtColor): +# Background color for downloads with errors. +# Default: red +# +# webpage.bg (QtColor): +# Background color for webpages if unset (or empty to use the +# theme's color) +# Default: white +# +# keyhint.fg (QssColor): +# Text color for the keyhint widget. +# Default: #FFFFFF +# +# keyhint.fg.suffix (CssColor): +# Highlight color for keys to complete the current keychain +# Default: #FFFF00 +# +# keyhint.bg (QssColor): +# Background color of the keyhint widget. +# Default: rgba(0, 0, 0, 80%) +completion.fg = white +completion.bg = #333333 +completion.alternate-bg = #444444 +completion.category.fg = white +completion.category.bg = qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #888888, stop:1 #505050) +completion.category.border.top = black +completion.category.border.bottom = ${completion.category.border.top} +completion.item.selected.fg = black +completion.item.selected.bg = #e8c000 +completion.item.selected.border.top = #bbbb00 +completion.item.selected.border.bottom = ${completion.item.selected.border.top} +completion.match.fg = #ff4444 +completion.scrollbar.fg = ${completion.fg} +completion.scrollbar.bg = ${completion.bg} +statusbar.fg = white +statusbar.bg = black +statusbar.fg.error = ${statusbar.fg} +statusbar.bg.error = red +statusbar.fg.warning = ${statusbar.fg} +statusbar.bg.warning = darkorange +statusbar.fg.prompt = ${statusbar.fg} +statusbar.bg.prompt = darkblue +statusbar.fg.insert = ${statusbar.fg} +statusbar.bg.insert = darkgreen +statusbar.fg.command = ${statusbar.fg} +statusbar.bg.command = ${statusbar.bg} +statusbar.fg.caret = ${statusbar.fg} +statusbar.bg.caret = purple +statusbar.fg.caret-selection = ${statusbar.fg} +statusbar.bg.caret-selection = #a12dff +statusbar.progress.bg = white +statusbar.url.fg = ${statusbar.fg} +statusbar.url.fg.success = white +statusbar.url.fg.success.https = lime +statusbar.url.fg.error = orange +statusbar.url.fg.warn = yellow +statusbar.url.fg.hover = aqua +tabs.fg.odd = white +tabs.bg.odd = grey +tabs.fg.even = white +tabs.bg.even = darkgrey +tabs.fg.selected.odd = white +tabs.bg.selected.odd = black +tabs.fg.selected.even = ${tabs.fg.selected.odd} +tabs.bg.selected.even = ${tabs.bg.selected.odd} +tabs.bg.bar = #555555 +tabs.indicator.start = #0000aa +tabs.indicator.stop = #00aa00 +tabs.indicator.error = #ff0000 +tabs.indicator.system = rgb +hints.fg = black +hints.bg = -webkit-gradient(linear, left top, left bottom, color-stop(0%,#FFF785), color-stop(100%,#FFC542)) +hints.fg.match = green +downloads.bg.bar = black +downloads.fg.start = white +downloads.bg.start = #0000aa +downloads.fg.stop = ${downloads.fg.start} +downloads.bg.stop = #00aa00 +downloads.fg.system = rgb +downloads.bg.system = rgb +downloads.fg.error = white +downloads.bg.error = red +webpage.bg = white +keyhint.fg = #FFFFFF +keyhint.fg.suffix = #FFFF00 +keyhint.bg = rgba(0, 0, 0, 80%) + +[fonts] +# Fonts used for the UI, with optional style/weight/size. +# * Style: `normal`/`italic`/`oblique` +# * Weight: `normal`, `bold`, `100`..`900` +# * Size: _number_ `px`/`pt` +# +# _monospace (Font): +# Default monospace fonts. +# Default: Terminus, Monospace, "DejaVu Sans Mono", Monaco, +# "Bitstream Vera Sans Mono", "Andale Mono", "Courier New", Courier, +# "Liberation Mono", monospace, Fixed, Consolas, Terminal +# +# completion (Font): +# Font used in the completion widget. +# Default: 8pt ${_monospace} +# +# tabbar (QtFont): +# Font used in the tab bar. +# Default: 8pt ${_monospace} +# +# statusbar (Font): +# Font used in the statusbar. +# Default: 8pt ${_monospace} +# +# downloads (Font): +# Font used for the downloadbar. +# Default: 8pt ${_monospace} +# +# hints (Font): +# Font used for the hints. +# Default: bold 13px Monospace +# +# debug-console (QtFont): +# Font used for the debugging console. +# Default: 8pt ${_monospace} +# +# web-family-standard (FontFamily): +# Font family for standard fonts. +# Default: +# +# web-family-fixed (FontFamily): +# Font family for fixed fonts. +# Default: +# +# web-family-serif (FontFamily): +# Font family for serif fonts. +# Default: +# +# web-family-sans-serif (FontFamily): +# Font family for sans-serif fonts. +# Default: +# +# web-family-cursive (FontFamily): +# Font family for cursive fonts. +# Default: +# +# web-family-fantasy (FontFamily): +# Font family for fantasy fonts. +# Default: +# +# web-size-minimum (Int): +# The hard minimum font size. +# Default: +# +# web-size-minimum-logical (Int): +# The minimum logical font size that is applied when zooming out. +# Default: +# +# web-size-default (Int): +# The default font size for regular text. +# Default: +# +# web-size-default-fixed (Int): +# The default font size for fixed-pitch text. +# Default: +# +# keyhint (Font): +# Font used in the keyhint widget. +# Default: 8pt ${_monospace} +_monospace = Terminus, Monaco, "DejaVu Sans Mono", Monaco, "Bitstream Vera Sans Mono", "Andale Mono", "Courier New", Courier, "Liberation Mono", monospace, Fixed, Consolas, Terminal +completion = 8pt ${_monospace} +tabbar = 8pt ${_monospace} +statusbar = 8pt ${_monospace} +downloads = 8pt ${_monospace} +hints = bold 13px Monospace +debug-console = 8pt ${_monospace} +web-family-standard = +web-family-fixed = Terminus +web-family-serif = +web-family-sans-serif = +web-family-cursive = +web-family-fantasy = +web-size-minimum = +web-size-minimum-logical = +web-size-default = +web-size-default-fixed = +keyhint = 8pt ${_monospace} diff --git a/colors/link.bash b/colors/link.bash index 1b95b7a..1961ebe 100755 --- a/colors/link.bash +++ b/colors/link.bash @@ -4,9 +4,9 @@ DIR=$(cd "$(dirname "${BASH_SOURCE[0]}" )/.." && pwd) source "$DIR/variables.bash" rm -f ~/.Xresources.colors -rm -f "$DOTFILES_PATH/vim/config/colors/current.vim" +rm -f "$DOTFILES_PATH/editor/nvim/config/colors/current.vim" ln -s "$DOTFILES_PATH/colors/xresources" "$HOME/.Xresources.colors" -ln -s "$DOTFILES_PATH/colors/vim" "$DOTFILES_PATH/vim/config/colors/current.vim" +ln -s "$DOTFILES_PATH/colors/vim" "$DOTFILES_PATH/editor/nvim/config/colors/current.vim" -source "$DOTFILES_PATH/x/xloadresources" +source "$DOTFILES_PATH/env/x/xloadresources" diff --git a/vim/config/init.vim b/editor/nvim/config/init.vim similarity index 90% rename from vim/config/init.vim rename to editor/nvim/config/init.vim index a4be30a..8ecc194 100644 --- a/vim/config/init.vim +++ b/editor/nvim/config/init.vim @@ -49,14 +49,16 @@ Plug 'tmux-plugins/vim-tmux-focus-events' " allow transitions within tmux Plug 'christoomey/vim-tmux-navigator' " allow transitions within tmux Plug 'tasklist.vim' " show tasks with leader,t Plug 'godlygeek/tabular' " align text lines together -Plug 'jez/vim-superman' " view man pages with vim +Plug 'lytedev/vim-superman' " view man pages with vim Plug 'tpope/vim-surround' " quickly modify text surrounding objects Plug 'tpope/vim-speeddating' " vim knows about date-like text objects -Plug 'junegunn/fzf', {'dir': '~/.fzf', 'do': './install --all'} " fuzzy file finding -Plug 'junegunn/fzf.vim' " helpers for using fzf in vim Plug 'michaeljsmith/vim-indent-object' " adds an indentation level text object Plug 'wellle/targets.vim' " adds some more handy text objects +Plug 'junegunn/fzf', {'dir': '~/.fzf', 'do': './install --all'} " fuzzy file finding +Plug 'junegunn/fzf.vim' " helpers for using fzf in vim +let g:fzf_layout = { 'window': 'enew' } + " plugins for specific file types Plug 'kchmck/vim-coffee-script', {'for': ['coffee', 'coffeescript', 'vue']} Plug 'posva/vim-vue', {'for': ['vue']} @@ -101,6 +103,7 @@ set softtabstop=2 set noexpandtab set autoindent smartindent set list +set nostartofline set listchars=trail:·,tab:\ \ " look and feel @@ -120,7 +123,11 @@ set formatoptions=crql1j set title " handle window title set synmaxcol=2048 -set number " line numbers +if exists('asmanviewer') + set nonumber " no line numbers when viewing a man page +else + set number " line numbers +endif " set relativenumber set cursorline " highlight the current line " set cursorcolumn " highlight the current column @@ -213,6 +220,19 @@ endif " no empty buffer on startup autocmd VimEnter * nested if bufname('')=='' && line('$') == 1 && col('$')==1 && !&modified | bd % | endif +function! TerminalSplit() + let current_file = @% + echo current_file + if match(current_file, "term://*") != -1 + split + terminal + else + vsplit + vertical resize 80 + terminal + endif +endfunction + " bindings " common typo fixes @@ -225,6 +245,23 @@ command! Q q " best leader let mapleader = "\" +" terminal mappings +" open a terminal split at 80 columns +nnoremap :call TerminalSplit() +tnoremap :call TerminalSplit() + +" close the terminal +tnoremap :q! + +" moving between terminal splits +tnoremap h +tnoremap j +tnoremap k +tnoremap l + +" enter insert mode when entering a terminal buffer +autocmd BufWinEnter,WinEnter term://* startinsert + " change buffers with leader,tab nnoremap :bnext nnoremap :bprevious @@ -276,10 +313,6 @@ inoremap jk inoremap Jk inoremap jK inoremap JK -inoremap kj -inoremap Kj -inoremap kJ -inoremap KJ " use hjkl-movement between rows when soft wrapping: nnoremap j gj @@ -294,8 +327,6 @@ map ,e CamelCaseMotion_e map ,ge CamelCaseMotion_ge " inner _ objects -omap iw CamelCaseMotion_iw -xmap iw CamelCaseMotion_iw omap ib CamelCaseMotion_ib xmap ib CamelCaseMotion_ib omap ie CamelCaseMotion_ie @@ -313,7 +344,6 @@ xmap ae CamelCaseMotion_ae map mw:%s/\s\+$//:let @/ = ""'w " close buffer: -nnoremap :bd nnoremap w :bd " toggle spell checking: diff --git a/editor/nvim/link.bash b/editor/nvim/link.bash new file mode 100755 index 0000000..3479c2f --- /dev/null +++ b/editor/nvim/link.bash @@ -0,0 +1,10 @@ +#!/usr/bin/env bash + +DIR=$(cd "$(dirname "${BASH_SOURCE[0]}" )/../.." && pwd) +source "$DIR/variables.bash" + +rm -rf "$HOME/.config/nvim" +ln -s "$DOTFILES_PATH/editor/nvim/config" "$HOME/.config/nvim" + +nvim +PlugInstal +qall + diff --git a/email/mutt/config/muttrc b/email/mutt/config/muttrc new file mode 100644 index 0000000..41b9052 --- /dev/null +++ b/email/mutt/config/muttrc @@ -0,0 +1,7 @@ +my_hdr X-Homepage: https://lytedev.io +my_hdr X-PGP-Key: http://pgp.mit.edu/pks/lookup?op=get&search=0x5B2020A0F9921EF4 + +set from="daniel@lytedev.io" +set realname="Daniel Flanagan" +set signature="$DOTFILES_PATH/email/mutt/signature" + diff --git a/email/mutt/config/signature b/email/mutt/config/signature new file mode 100644 index 0000000..fde3c3c --- /dev/null +++ b/email/mutt/config/signature @@ -0,0 +1,2 @@ +Daniel Flanagan +lytedev.io diff --git a/email/mutt/link.bash b/email/mutt/link.bash new file mode 100755 index 0000000..d20b44f --- /dev/null +++ b/email/mutt/link.bash @@ -0,0 +1,7 @@ +#!/usr/bin/env bash + +DIR=$(cd "$(dirname "${BASH_SOURCE[0]}" )/../.." && pwd) +source "$DIR/variables.bash" + +rm -rf "$HOME/.mutt" +ln -s "$DOTFILES_PATH/email/mutt/config" "$HOME/.mutt" diff --git a/sh/bash_profile b/env/sh/bash_profile similarity index 100% rename from sh/bash_profile rename to env/sh/bash_profile diff --git a/sh/bashrc b/env/sh/bashrc similarity index 84% rename from sh/bashrc rename to env/sh/bashrc index fa75ec1..2af4d3e 100644 --- a/sh/bashrc +++ b/env/sh/bashrc @@ -44,8 +44,12 @@ if [ -t 0 ]; then alias gp="git push" alias gac="git add -A && git commit -m" + # browser aliases + alias qutebrowser="qutebrowser --backend webengine" + # networking aliases alias p="ping 8.8.8.8" + alias wifi="sudo systemctl start netctl-auto@$(for wli in /sys/class/net/wl*; do echo $(basename $wli); break; done)" # emacs aliases alias emacs="emacs -nw" @@ -53,19 +57,29 @@ if [ -t 0 ]; then # arch aliases alias archupdate="pacaur -Syyu --noconfirm --noedit" - # wm aliases - alias startbar="source $DOTFILES_PATH/wm/extras/bar/start.bash" stopbar() { if [[ -f "$BAR_PID_FILE" ]]; then + echo kill -SIGINT $(cat "$BAR_PID_FILE") rm -f "$BAR_PID_FILE" - killall lemonbar else echo "Bar is not running." fi } export -f stopbar + # wm aliases + startbar() { + if [[ -f "$BAR_PID_FILE" ]]; then + stopbar + fi + "$BAR_PATH/start.bash" + echo $! > "$BAR_PID_FILE" + bg + disown + } + export -f startbar + # misc aliases alias keyrepeat="xset r rate 250 80" @@ -104,13 +118,17 @@ if [ -t 0 ]; then # man pages with vim vman() { - vim -c "SuperMan $*" + if command -v nvim >/dev/null 2>&1; then + nvim -c "SuperMan $*" + else + vim -c "SuperMan $*" + fi if [ "$?" != "0" ]; then echo "No manual entry for $*" fi } - alias _man="man" + alias _man="\\man" alias man="vman" # save the current directory for later retrieval @@ -119,7 +137,7 @@ if [ -t 0 ]; then if [[ -n $1 ]]; then addon="-$1" fi - echo "$PWD" > "$DOTFILES_PATH/cwd$addon.tmp" + echo "$PWD" > "$DOTFILES_PATH/env/sh/cwd$addon.tmp" } export -f scwd bind '"\C-s"':"\"scwd\C-m\"" @@ -130,7 +148,7 @@ if [ -t 0 ]; then if [[ -n $1 ]]; then addon="-$1" fi - cd $(cat $DOTFILES_PATH/cwd$addon.tmp) + cd $(cat "$DOTFILES_PATH/env/sh/cwd$addon.tmp") } export -f gcwd bind '"\C-g"':"\"gcwd\C-m\"" diff --git a/sh/inputrc b/env/sh/inputrc similarity index 100% rename from sh/inputrc rename to env/sh/inputrc diff --git a/sh/layout_dev.tmux b/env/sh/layout_dev.tmux similarity index 100% rename from sh/layout_dev.tmux rename to env/sh/layout_dev.tmux diff --git a/env/sh/link.bash b/env/sh/link.bash new file mode 100755 index 0000000..1cf31c5 --- /dev/null +++ b/env/sh/link.bash @@ -0,0 +1,23 @@ +#!/usr/bin/env bash + +DIR=$(cd "$(dirname "${BASH_SOURCE[0]}" )/../.." && pwd) +source $DIR/variables.bash + +mkdir -p "$HOME/.tmux/layouts" + +MODULE_PATH="$DOTFILES_PATH/env/sh" + +rm -f "$HOME/.bashrc" +rm -f "$HOME/.bash_profile" +rm -f "$HOME/.tmux.conf" +rm -f "$HOME/.tmux/layouts/dev.tmux" +rm -f "$HOME/.inputrc" +ln -s "$MODULE_PATH/bashrc" "$HOME/.bashrc" +ln -s "$MODULE_PATH/bash_profile" "$HOME/.bash_profile" +ln -s "$MODULE_PATH/tmux.conf" "$HOME/.tmux.conf" +ln -s "$MODULE_PATH/layout_dev.tmux" "$HOME/.tmux/layouts/dev.tmux" +ln -s "$MODULE_PATH/inputrc" "$HOME/.inputrc" + +sed -i "/export DOTFILES_PATH/c export DOTFILES_PATH=\"$DIR\"" "$HOME/.bashrc" + +echo "You should re-source ~/.bashrc ;)" diff --git a/sh/tmux.conf b/env/sh/tmux.conf similarity index 100% rename from sh/tmux.conf rename to env/sh/tmux.conf diff --git a/wm/bspwm_config b/env/wm/bspwm_config similarity index 91% rename from wm/bspwm_config rename to env/wm/bspwm_config index 01bcf60..8c4702d 100755 --- a/wm/bspwm_config +++ b/env/wm/bspwm_config @@ -11,13 +11,12 @@ source "$DOTFILES_PATH/scripts/get_x_fonts.sh" bspc config normal_border_color "#$(get_color 01)" bspc config focused_border_color "#$(get_color 0D)" -bspc config active_border_color "#$(get_color 0C)" +bspc config active_border_color "#$(get_color 09)" bspc config presel_feedback_color "#$(get_color 04)" bspc config border_width "$BORDER_WIDTH" bspc config split_ratio 0.50 bspc config borderless_monocle true bspc config gapless_monocle true -bspc config focus_by_distance true bspc config window_gap "$WINDOW_GAP" diff --git a/wm/bspwmrc b/env/wm/bspwmrc similarity index 100% rename from wm/bspwmrc rename to env/wm/bspwmrc diff --git a/env/wm/extras/bar/colors.bash b/env/wm/extras/bar/colors.bash new file mode 100644 index 0000000..5995e75 --- /dev/null +++ b/env/wm/extras/bar/colors.bash @@ -0,0 +1,12 @@ +export COLOR_FOREGROUND="#$(get_color 05 | awk '{print toupper($0)}')" +export COLOR_DARK="#$(get_color 02 | awk '{print toupper($0)}')" +export COLOR_BACKGROUND="#$(get_color 00 | awk '{print toupper($0)}')" +export COLOR_HIGHLIGHT="#$(get_color 0D | awk '{print toupper($0)}')" +export COLOR_URGENT="#$(get_color 08 | awk '{print toupper($0)}')" + +export COLOR_S1="#$(get_color 0E | awk '{print toupper($0)}')" +export COLOR_S2="#$(get_color 0F | awk '{print toupper($0)}')" +export COLOR_S3="#$(get_color 0D | awk '{print toupper($0)}')" +export COLOR_S4="#$(get_color 0A | awk '{print toupper($0)}')" +export COLOR_S5="#$(get_color 09 | awk '{print toupper($0)}')" + diff --git a/wm/extras/bar/formatter.bash b/env/wm/extras/bar/formatter.bash similarity index 81% rename from wm/extras/bar/formatter.bash rename to env/wm/extras/bar/formatter.bash index 3f5fb01..e9e2065 100755 --- a/wm/extras/bar/formatter.bash +++ b/env/wm/extras/bar/formatter.bash @@ -1,13 +1,12 @@ #!/usr/bin/env bash source "$DOTFILES_PATH/variables.bash" -source "$DOTFILES_PATH/wm/extras/bar/colors.bash" # export BAR_LOG="$PWD/bar.log" # echo -e "BEGIN BAR LOG\n" > "$BAR_LOG" reload_colors() { - source "$DOTFILES_PATH/wm/extras/bar/colors.bash" + source "$BAR_PATH/colors.bash" } # trap reload_colors SIGUSR1 @@ -16,17 +15,23 @@ export MODULE_MATCH=() export MODULE_CALLBACK=() export MODULE_DATA=() export MODULE_CONTENT=() +export MODULE_INIT=() +export MODULE_PIDS="" register_bar_module() { MODULE_MATCH[$1]=$2 MODULE_CALLBACK[$1]=$3 MODULE_DATA[$1]= MODULE_CONTENT[$1]= - # echo -e "Registered Bar Module: $1 $2 $3" >> "$BAR_LOG" + MODULE_INIT[$1]=$4 + ${MODULE_INIT[$1]} & + PID=$! + echo $PID > "$BAR_PATH/modules/$3.pid" + # echo -e "Registered Bar Module: $1 $2 $3 $4 with PID $PID" >> "$BAR_LOG" } export -f register_bar_module -for f in "$DOTFILES_PATH/wm/extras/bar/modules/"*-bm.bash; do +for f in "$BAR_PATH/modules/"*-bm.bash; do source "$f" done diff --git a/wm/extras/bar/modules/bspwm-bm.bash b/env/wm/extras/bar/modules/bspwm-bm.bash similarity index 84% rename from wm/extras/bar/modules/bspwm-bm.bash rename to env/wm/extras/bar/modules/bspwm-bm.bash index d969747..1cc0bb0 100644 --- a/wm/extras/bar/modules/bspwm-bm.bash +++ b/env/wm/extras/bar/modules/bspwm-bm.bash @@ -1,8 +1,7 @@ #!/usr/bin/env bash source "$DOTFILES_PATH/variables.bash" -source "$DOTFILES_PATH/wm/extras/bar/colors.bash" -source "$DOTFILES_PATH/wm/extras/bar/modules/module.bash" +source "$BAR_PATH/colors.bash" PRIORITY=25000 @@ -51,7 +50,12 @@ bar_module_bspwm() { echo -e "$content" } export -f bar_module_bspwm -register_bar_module "$PRIORITY" "$MATCH" "bar_module_bspwm" -bspc subscribe all > "$BAR_FIFO" & +bar_module_bspwm_updater() +{ + bspc subscribe all > "$BAR_FIFO" +} +export -f bar_module_bspwm_updater + +register_bar_module "$PRIORITY" "$MATCH" "bar_module_bspwm" "bar_module_bspwm_updater" diff --git a/wm/extras/bar/modules/clock-bm.bash b/env/wm/extras/bar/modules/clock-bm.bash similarity index 69% rename from wm/extras/bar/modules/clock-bm.bash rename to env/wm/extras/bar/modules/clock-bm.bash index 42c674c..3423462 100644 --- a/wm/extras/bar/modules/clock-bm.bash +++ b/env/wm/extras/bar/modules/clock-bm.bash @@ -1,7 +1,7 @@ #!/usr/bin/env bash source "$DOTFILES_PATH/variables.bash" -source "$DOTFILES_PATH/wm/extras/bar/colors.bash" +source "$BAR_PATH/colors.bash" PRIORITY=38000 @@ -13,7 +13,6 @@ bar_module_clock() { } export -f bar_module_clock -register_bar_module "$PRIORITY" "$MATCH" "bar_module_clock" bar_module_clock_updater() { while true; do @@ -21,5 +20,6 @@ bar_module_clock_updater() { sleep 1 done } -bar_module_clock_updater & +export -f bar_module_clock_updater +register_bar_module "$PRIORITY" "$MATCH" "bar_module_clock" "bar_module_clock_updater" diff --git a/wm/extras/bar/modules/date-bm.bash b/env/wm/extras/bar/modules/date-bm.bash similarity index 69% rename from wm/extras/bar/modules/date-bm.bash rename to env/wm/extras/bar/modules/date-bm.bash index 7fe4685..ec51e54 100644 --- a/wm/extras/bar/modules/date-bm.bash +++ b/env/wm/extras/bar/modules/date-bm.bash @@ -1,7 +1,7 @@ #!/usr/bin/env bash source "$DOTFILES_PATH/variables.bash" -source "$DOTFILES_PATH/wm/extras/bar/colors.bash" +source "$BAR_PATH/colors.bash" PRIORITY=35000 @@ -11,9 +11,7 @@ MATCH="$MATCH_PREFIX*" bar_module_date() { echo -e "%{T-}%{r}%{F$COLOR_S2}${1:7}%{F-}" } - export -f bar_module_date -register_bar_module "$PRIORITY" "$MATCH" "bar_module_date" bar_module_date_updater() { while true; do @@ -21,5 +19,6 @@ bar_module_date_updater() { sleep 60 done } -bar_module_date_updater & +export -f bar_module_date_updater +register_bar_module "$PRIORITY" "$MATCH" "bar_module_date" "bar_module_date_updater" diff --git a/wm/extras/bar/modules/example.bash b/env/wm/extras/bar/modules/example.bash similarity index 100% rename from wm/extras/bar/modules/example.bash rename to env/wm/extras/bar/modules/example.bash diff --git a/wm/extras/bar/modules/pacaur-updates-bm.bash b/env/wm/extras/bar/modules/pacaur-updates-bm.bash similarity index 78% rename from wm/extras/bar/modules/pacaur-updates-bm.bash rename to env/wm/extras/bar/modules/pacaur-updates-bm.bash index 04aba2f..3318672 100644 --- a/wm/extras/bar/modules/pacaur-updates-bm.bash +++ b/env/wm/extras/bar/modules/pacaur-updates-bm.bash @@ -1,7 +1,7 @@ #!/usr/bin/env bash source "$DOTFILES_PATH/variables.bash" -source "$DOTFILES_PATH/wm/extras/bar/colors.bash" +source "$BAR_PATH/colors.bash" PRIORITY=12000 @@ -11,9 +11,7 @@ MATCH="$MATCH_PREFIX*" bar_module_pacaur() { echo -e "%{T-}%{F$COLOR_DARK}pac %{F$COLOR_S1}${1:9}%{F-}" } - export -f bar_module_pacaur -register_bar_module "$PRIORITY" "$MATCH" "bar_module_pacaur" bar_module_pacaur_updater() { while true; do @@ -26,6 +24,8 @@ bar_module_pacaur_updater() { fi done } -bar_module_pacaur_updater & +export -f bar_module_pacaur_updater + +register_bar_module "$PRIORITY" "$MATCH" "bar_module_pacaur" "bar_module_pacaur_updater" echo -e "$MATCH_PREFIX"?? > "$BAR_FIFO" diff --git a/env/wm/extras/bar/run_bar.bash b/env/wm/extras/bar/run_bar.bash new file mode 100755 index 0000000..e69de29 diff --git a/wm/extras/bar/run_bar.bash b/env/wm/extras/bar/start.bash similarity index 62% rename from wm/extras/bar/run_bar.bash rename to env/wm/extras/bar/start.bash index 46feb6e..65d3746 100755 --- a/wm/extras/bar/run_bar.bash +++ b/env/wm/extras/bar/start.bash @@ -10,11 +10,15 @@ function killbar() { else bspc config -m $(bspc query -M | head -n 1) bottom_padding "0" fi + for f in $(ls "$BAR_PATH"/modules/*.pid 2>/dev/null); do + # echo "KILLING MODULE PROCESS $f WITH PID $(cat "$f")" + # kill -SIGTERM $(cat "$f") + rm "$f" + done + kill $! + # kill -SIGTERM $BARPID } - -if [ -e "$BAR_PID_FILE" ]; then - killbar -fi +export -f killbar trap killbar INT TERM QUIT EXIT @@ -38,10 +42,7 @@ else BAR_B="-b" fi -source "$DOTFILES_PATH/wm/extras/bar/colors.bash" +source "$BAR_PATH/colors.bash" -cat "$BAR_FIFO" | "$DOTFILES_PATH/wm/extras/bar/formatter.bash" | lemonbar $BAR_B -g \ - "$WIDTH"x"$BAR_HEIGHT"+"$BAR_MARGIN"+"$POS_Y" -u "$BAR_BORDER_WIDTH" -f \ - "$BAR_FONT_FAMILY" -F "$COLOR_FOREGROUND" -B "$COLOR_BACKGROUND" -n "$BAR_WID" - -killbar +cat "$BAR_FIFO" | "$BAR_PATH/formatter.bash" | \ + lemonbar $BAR_B -g "$WIDTH"x"$BAR_HEIGHT"+"$BAR_MARGIN"+"$POS_Y" -u "$BAR_BORDER_WIDTH" -f "$BAR_FONT_FAMILY" -F "$COLOR_FOREGROUND" -B"$COLOR_BACKGROUND" -n "$BAR_WID" diff --git a/env/wm/link.bash b/env/wm/link.bash new file mode 100755 index 0000000..8a0ec7d --- /dev/null +++ b/env/wm/link.bash @@ -0,0 +1,15 @@ +#!/usr/bin/env bash + +DIR=$(cd "$(dirname "${BASH_SOURCE[0]}" )/../.." && pwd) +source "$DIR/variables.bash" + +MODULE_PATH="$DOTFILES_PATH/env/wm" + +mkdir -p "$HOME/.config/bspwm" +mkdir -p "$HOME/.config/sxhkd" + +rm -f "$HOME/.config/bspwm/bspwmrc" +rm -f "$HOME/.config/sxhkd/sxhkdrc" +ln -s "$MODULE_PATH/bspwmrc" "$HOME/.config/bspwm/bspwmrc" +ln -s "$MODULE_PATH/sxhkdrc" "$HOME/.config/sxhkd/sxhkdrc" + diff --git a/wm/sxhkdrc b/env/wm/sxhkdrc similarity index 62% rename from wm/sxhkdrc rename to env/wm/sxhkdrc index b8d41f1..e6c4e56 100755 --- a/wm/sxhkdrc +++ b/env/wm/sxhkdrc @@ -28,6 +28,10 @@ super + shift + {s,f} super + {grave,Tab} bspc {node,desktop} -f last +# focus the next floating node +super + ctrl + f + bspc node -f next.floating + # swap positions with the previous node super + apostrophe bspc node -s last @@ -98,22 +102,45 @@ super + @button{1-3} # change node gap and desktop padding super + plus - bspc config -d focused node_gap $((`bspc config -d focused node_gap` + 5 )) + bspc config -d focused window_gap $((`bspc config -d focused window_gap` + 5 )) super + equal - bspc config -m $(bspc query -M | head -n 1) top_padding $BAR_HEIGHT; bspc config -d focused node_gap $node_GAP + bspc config -m $(bspc query -M | head -n 1) top_padding $TOP_BAR_PADDING; bspc config -m $(bspc query -M | head -n 1) bottom_padding $BOTTOM_BAR_PADDING; bspc config -d focused window_gap $WINDOW_GAP super + minus - bspc config -d focused node_gap $((`bspc config -d focused node_gap` - 5 )) + bspc config -d focused window_gap $((`bspc config -d focused window_gap` - 5 )) super + alt + r - bspc config -m $(bspc query -M | head -n 1) top_padding $BAR_HEIGHT; bspc config -d focused node_gap 0 + bspc config -m $(bspc query -M | head -n 1) bottom_padding $BOTTOM_BAR_PADDING; bspc config -m $(bspc query -M | head -n 1) top_padding $TOP_BAR_PADDING; bspc config -d focused window_gap $WINDOW_GAP + +super + alt + equal + bspc config -d focused bottom_padding 0; bspc config -d focused top_padding 0; bspc config -d focused left_padding 0; bspc config -d focused right_padding 0 super + alt + plus - bspwm_padding +5 + bspc config -d focused bottom_padding $(expr $(bspc config -d focused bottom_padding) + 5); bspc config -d focused top_padding $(expr $(bspc config -d focused top_padding) + 5); bspc config -d focused left_padding $(expr $(bspc config -d focused left_padding) + 5); bspc config -d focused right_padding $(expr $(bspc config -d focused right_padding) + 5) + +super + ctrl + alt + k + bspc config -d focused bottom_padding $(expr $(bspc config -d focused bottom_padding) - 5); bspc config -d focused top_padding $(expr $(bspc config -d focused top_padding) - 5) + +super + ctrl + alt + j + bspc config -d focused bottom_padding $(expr $(bspc config -d focused bottom_padding) + 5); bspc config -d focused top_padding $(expr $(bspc config -d focused top_padding) + 5) + +super + ctrl + alt + h + bspc config -d focused left_padding $(expr $(bspc config -d focused left_padding) - 5); bspc config -d focused right_padding $(expr $(bspc config -d focused right_padding) - 5) + +super + ctrl + alt + l + bspc config -d focused left_padding $(expr $(bspc config -d focused left_padding) + 5); bspc config -d focused right_padding $(expr $(bspc config -d focused right_padding) + 5) + +super + alt + plus + bspc config -d focused bottom_padding $(expr $(bspc config -d focused bottom_padding) + 5); bspc config -d focused top_padding $(expr $(bspc config -d focused top_padding) + 5); bspc config -d focused left_padding $(expr $(bspc config -d focused left_padding) + 5); bspc config -d focused right_padding $(expr $(bspc config -d focused right_padding) + 5) + +super + ctrl + alt + space + bspc config -d focused bottom_padding 200; bspc config -d focused top_padding 200; bspc config -d focused left_padding 400; bspc config -d focused right_padding 400 + + super + alt + minus - bspwm_padding -5 + bspc config -d focused bottom_padding $(expr $(bspc config -d focused bottom_padding) - 5) # wm-independant shortcuts diff --git a/x/gtk2rc b/env/x/gtk2rc similarity index 100% rename from x/gtk2rc rename to env/x/gtk2rc diff --git a/x/gtk3settings.ini b/env/x/gtk3settings.ini similarity index 100% rename from x/gtk3settings.ini rename to env/x/gtk3settings.ini diff --git a/env/x/link.bash b/env/x/link.bash new file mode 100755 index 0000000..d1594f2 --- /dev/null +++ b/env/x/link.bash @@ -0,0 +1,31 @@ +#!/usr/bin/env bash + +DIR=$(cd "$(dirname "${BASH_SOURCE[0]}" )/../.." && pwd) +source "$DIR/variables.bash" + +MODULE_PATH="$DOTFILES_PATH/env/x" + +mkdir -p "$HOME/.config/gtk-3.0" +rm -f "$HOME/.xinitrc" +rm -f "$HOME/.Xresources" +rm -f "$HOME/.gtkrc-2.0" +rm -f "$HOME/.config/gtk-3.0/settings.ini" +ln -s "$MODULE_PATH/xinitrc" "$HOME/.xinitrc" +ln -s "$MODULE_PATH/xresources" "$HOME/.Xresources" +ln -s "$MODULE_PATH/gtk3settings.ini" "$HOME/.config/gtk-3.0/settings.ini" +ln -s "$MODULE_PATH/gtk2rc" "$HOME/.gtkrc-2.0" + +sudo mkdir -p /root/.gtk-3.0/ +sudo mkdir -p /root/.config/gtk-3.0/ +sudo rm -f "/root/.gtkrc-2.0" +sudo rm -f "/root/.gtk-3.0/settings.ini" +sudo rm -f "/root/.config/gtk-3.0/settings.ini" +sudo ln -s "$MODULE_PATH/gtk2rc" "/root/.gtkrc-2.0" +sudo ln -s "$MODULE_PATH/gtk3settings.ini" "/root/.gtk-3.0/settings.ini" +sudo ln -s "$MODULE_PATH/gtk3settings.ini" "/root/.config/gtk-3.0/settings.ini" + +sudo rm -f "/etc/udev/rules.d/90-usb-device-plugin.rules" +sudo ln -s "$MODULE_PATH/udev_rules/90-usb-device-plugin.rules" "/etc/udev/rules.d/90-usb-device-plugin.rules" + +source "$MODULE_PATH/xloadresources" + diff --git a/x/reset_monitors.bash b/env/x/reset_monitors.bash similarity index 100% rename from x/reset_monitors.bash rename to env/x/reset_monitors.bash diff --git a/x/udev_rules/90-usb-device-plugin.rules b/env/x/udev_rules/90-usb-device-plugin.rules similarity index 100% rename from x/udev_rules/90-usb-device-plugin.rules rename to env/x/udev_rules/90-usb-device-plugin.rules diff --git a/x/xinitrc b/env/x/xinitrc similarity index 76% rename from x/xinitrc rename to env/x/xinitrc index 1a44b70..28424fd 100644 --- a/x/xinitrc +++ b/env/x/xinitrc @@ -4,7 +4,7 @@ if [ -f ~/.fehbg ]; then ~/.fehbg & fi -source "$DOTFILES_PATH/x/xloadresources" +source "$DOTFILES_PATH/env/x/xloadresources" source "$DOTFILES_PATH/variables.bash" # keyrepeat settings @@ -17,10 +17,12 @@ xset s off & # start the bar if we want it if [ "$BAR_ON_XINIT" -eq 1 ]; then - "$DOTFILES_PATH/wm/extras/bar/start.bash" & + "$BAR_PATH/start.bash" & fi # fire up wm +unclutter & sxhkd & +urxvtd & exec bspwm diff --git a/x/xloadresources b/env/x/xloadresources similarity index 100% rename from x/xloadresources rename to env/x/xloadresources diff --git a/x/xresources b/env/x/xresources similarity index 100% rename from x/xresources rename to env/x/xresources diff --git a/git/link.bash b/git/link.bash deleted file mode 100755 index 006891d..0000000 --- a/git/link.bash +++ /dev/null @@ -1,8 +0,0 @@ -#!/usr/bin/env bash - -DIR=$(cd "$(dirname "${BASH_SOURCE[0]}" )/.." && pwd) -source "$DIR/variables.bash" - -rm -f "$HOME/.gitconfig" -ln -s "$DOTFILES_PATH/git/gitconfig" "$HOME/.gitconfig" - diff --git a/irc/link.bash b/irc/link.bash deleted file mode 100755 index 48d13bb..0000000 --- a/irc/link.bash +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -DIR=$(cd "$(dirname "${BASH_SOURCE[0]}" )/.." && pwd) -source "$DIR/variables.bash" - -rm -rf "$HOME/.weechat/weechat.conf" -mkdir -p "$HOME/.weechat/" -ln -s "$DOTFILES_PATH/irc/weechat.conf" "$HOME/.weechat/weechat.conf" - diff --git a/link_all.bash b/link_all.bash index d59634c..073be85 100755 --- a/link_all.bash +++ b/link_all.bash @@ -3,10 +3,12 @@ DIR=$(cd "$(dirname "${BASH_SOURCE[0]}" )/" && pwd) source "$DIR/variables.bash" +ALERT_AGREEMENT_FILE="$DIR/scripts/agree_to_bootstrap.lock" + # Let user know that this script will delete their current configuration and # that they should read this script before running. We'll use a lock file so # the user only needs to agree once. -if [ -f "$DIR/agree_to_bootstrap.lock" ]; then +if [ -f "$ALERT_AGREEMENT_FILE" ]; then # User agreed already - do nothing echo "Linking..." else @@ -16,15 +18,17 @@ else read -r -p "Are you sure you want to continue? [y/N] " response response=${response,,} # to_lower if [[ $response =~ ^(yes|y)$ ]]; then - touch "$DIR/agree_to_bootstrap.lock" + echo "agreed" > "$ALERT_AGREEMENT_FILE" else exit 1 fi fi +source "$DOTFILES_PATH/browser/qutebrowser/link.bash" source "$DOTFILES_PATH/colors/link.bash" -source "$DOTFILES_PATH/git/link.bash" -source "$DOTFILES_PATH/vim/link.bash" -source "$DOTFILES_PATH/sh/link.bash" -source "$DOTFILES_PATH/x/link.bash" -source "$DOTFILES_PATH/wm/link.bash" +source "$DOTFILES_PATH/misc/irc/link.bash" +source "$DOTFILES_PATH/misc/git/link.bash" +source "$DOTFILES_PATH/editor/nvim/link.bash" +source "$DOTFILES_PATH/env/sh/link.bash" +source "$DOTFILES_PATH/env/x/link.bash" +source "$DOTFILES_PATH/env/wm/link.bash" diff --git a/git/gitconfig b/misc/git/gitconfig similarity index 100% rename from git/gitconfig rename to misc/git/gitconfig diff --git a/misc/git/link.bash b/misc/git/link.bash new file mode 100755 index 0000000..faf3dc1 --- /dev/null +++ b/misc/git/link.bash @@ -0,0 +1,8 @@ +#!/usr/bin/env bash + +DIR=$(cd "$(dirname "${BASH_SOURCE[0]}" )/../.." && pwd) +source "$DIR/variables.bash" + +rm -f "$HOME/.gitconfig" +ln -s "$DOTFILES_PATH/misc/git/gitconfig" "$HOME/.gitconfig" + diff --git a/misc/irc/link.bash b/misc/irc/link.bash new file mode 100755 index 0000000..34872a1 --- /dev/null +++ b/misc/irc/link.bash @@ -0,0 +1,9 @@ +#!/usr/bin/env bash + +DIR=$(cd "$(dirname "${BASH_SOURCE[0]}" )/../.." && pwd) +source "$DIR/variables.bash" + +rm -rf "$HOME/.weechat/weechat.conf" +mkdir -p "$HOME/.weechat/" +ln -s "$DOTFILES_PATH/misc/irc/weechat.conf" "$HOME/.weechat/weechat.conf" + diff --git a/irc/weechat.conf b/misc/irc/weechat.conf similarity index 100% rename from irc/weechat.conf rename to misc/irc/weechat.conf diff --git a/arch_linux_init/bar.bash b/os/arch_linux/bar.bash similarity index 100% rename from arch_linux_init/bar.bash rename to os/arch_linux/bar.bash diff --git a/arch_linux_init/fonts.bash b/os/arch_linux/fonts.bash similarity index 100% rename from arch_linux_init/fonts.bash rename to os/arch_linux/fonts.bash diff --git a/arch_linux_init/git.bash b/os/arch_linux/git.bash similarity index 100% rename from arch_linux_init/git.bash rename to os/arch_linux/git.bash diff --git a/arch_linux_init/gmusic.bash b/os/arch_linux/gmusic.bash similarity index 100% rename from arch_linux_init/gmusic.bash rename to os/arch_linux/gmusic.bash diff --git a/arch_linux_init/neovim.bash b/os/arch_linux/neovim.bash similarity index 100% rename from arch_linux_init/neovim.bash rename to os/arch_linux/neovim.bash diff --git a/arch_linux_init/pacaur.bash b/os/arch_linux/pacaur.bash similarity index 100% rename from arch_linux_init/pacaur.bash rename to os/arch_linux/pacaur.bash diff --git a/arch_linux_init/shell.bash b/os/arch_linux/shell.bash similarity index 100% rename from arch_linux_init/shell.bash rename to os/arch_linux/shell.bash diff --git a/arch_linux_init/urxvt.bash b/os/arch_linux/urxvt.bash similarity index 100% rename from arch_linux_init/urxvt.bash rename to os/arch_linux/urxvt.bash diff --git a/arch_linux_init/utils.bash b/os/arch_linux/utils.bash similarity index 81% rename from arch_linux_init/utils.bash rename to os/arch_linux/utils.bash index efcc113..b900cb3 100755 --- a/arch_linux_init/utils.bash +++ b/os/arch_linux/utils.bash @@ -20,7 +20,6 @@ sudo pacman -S \ pacaur -S \ gtk-theme-arc \ - google-chrome-dev \ weechat \ ruby \ tcl \ @@ -28,12 +27,15 @@ pacaur -S \ libmtp \ gvfs-mtp \ pass \ + qutebrowser \ bash-completion \ avr-libc avr-gcc dfu-programmer dfu-util \ reptyr \ fzf \ urxvt-perls-git \ + mutt procmail msmtp \ + ncmpcpp mpd \ --noconfirm --noedit -sudo ln -s /usr/bin/google-chrome-unstable /usr/bin/chrome +# sudo ln -s /usr/bin/google-chrome-unstable /usr/bin/chrome diff --git a/arch_linux_init/wm.bash b/os/arch_linux/wm.bash similarity index 100% rename from arch_linux_init/wm.bash rename to os/arch_linux/wm.bash diff --git a/os/arch_linux/xorg.bash b/os/arch_linux/xorg.bash new file mode 100755 index 0000000..76d92da --- /dev/null +++ b/os/arch_linux/xorg.bash @@ -0,0 +1,5 @@ +#!/usr/bin/env bash + +sudo pacman -S xorg-xinit xorg-server xorg-xrdb --noconfirm +pacaur -S unclutter-xfixes-git gtk-theme-arc gtk-engine-murrine --noconfirm --noedit + diff --git a/sh/link.bash b/sh/link.bash deleted file mode 100755 index 9a8ca6b..0000000 --- a/sh/link.bash +++ /dev/null @@ -1,22 +0,0 @@ -#!/usr/bin/env bash - -DIR=$(cd "$(dirname "${BASH_SOURCE[0]}" )/.." && pwd) -source $DIR/variables.bash - -mkdir -p "$HOME/.tmux/layouts" - -rm -f "$HOME/.bashrc" -rm -f "$HOME/.bash_profile" -rm -f "$HOME/.tmux.conf" -rm -f "$HOME/.tmux/layouts/dev.tmux" -rm -f "$HOME/.inputrc" -ln -s "$DOTFILES_PATH/sh/bashrc" "$HOME/.bashrc" -ln -s "$DOTFILES_PATH/sh/bash_profile" "$HOME/.bash_profile" -ln -s "$DOTFILES_PATH/sh/tmux.conf" "$HOME/.tmux.conf" -ln -s "$DOTFILES_PATH/sh/layout_dev.tmux" "$HOME/.tmux/layouts/dev.tmux" -ln -s "$DOTFILES_PATH/sh/inputrc" "$HOME/.inputrc" - -sed -i "/export DOTFILES_PATH/c export DOTFILES_PATH=\"$DIR\"" "$HOME/.bashrc" - -echo "You should re-source ~/.bashrc ;)" - diff --git a/variables.bash b/variables.bash index a617d8d..bf8a2d5 100755 --- a/variables.bash +++ b/variables.bash @@ -5,25 +5,38 @@ export DOTFILES_PATH="$HOME/.dotfiles" export REPOSITORY_PATH="$HOME/Documents/open-source" +export BORDER_WIDTH=1 export WINDOW_GAP=5 -export BORDER_WIDTH=3 -export BAR_PID_FILE="$DOTFILES_PATH/wm_bar.pid" +export BAR_PATH="$DOTFILES_PATH/env/wm/extras/bar" +export BAR_PID_FILE="$BAR_PATH/wm_bar.pid" source "$DOTFILES_PATH/scripts/get_x_fonts.sh" source "$DOTFILES_PATH/scripts/get_color.sh" export BAR_ON_XINIT=0 -export BAR_FIFO="$DOTFILES_PATH/wm_bar_fifo.lock" +export BAR_FIFO="$BAR_PATH/wm_bar_fifo.lock" +export BAR_LOG="$BAR_PATH/wm_bar.log" export BAR_TOP=0 -export BAR_MARGIN=$WINDOW_GAP export BAR_HEIGHT=20 export BAR_BORDER_WIDTH=1 export BAR_FONT_FAMILY="$PRIMARY_FONT_FAMILY_WITH_SIZE" export BAR_UNDERLINE=1 +# export BAR_MARGIN=$WINDOW_GAP +export BAR_MARGIN=700 export BAR_WID="wmpanel" +export TOP_BAR_PADDING=0 +export BOTTOM_BAR_PADDING=0 + +if [[ $BAR_TOP -eq 0 ]]; then + export BOTTOM_BAR_PADDING=$BAR_HEIGHT +else + export TOP_BAR_PADDING=$BAR_HEIGHT +fi + +export WINDOW_GAP=$(expr $WINDOW_GAP - $BORDER_WIDTH) + # load per-device bashrc_env if it exists if [ -a "$HOME/.bashrc_env" ]; then . "$HOME/.bashrc_env" fi - diff --git a/vim/config/.gitignore b/vim/config/.gitignore deleted file mode 100644 index 9780597..0000000 --- a/vim/config/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -* -!init.vim -!./colors/*.vim diff --git a/vim/config/colors/current.vim b/vim/config/colors/current.vim deleted file mode 120000 index 286c0d2..0000000 --- a/vim/config/colors/current.vim +++ /dev/null @@ -1 +0,0 @@ -/home/daniel/.dotfiles/colors/vim \ No newline at end of file diff --git a/vim/link.bash b/vim/link.bash deleted file mode 100755 index 80bd647..0000000 --- a/vim/link.bash +++ /dev/null @@ -1,10 +0,0 @@ -#!/usr/bin/env bash - -DIR=$(cd "$(dirname "${BASH_SOURCE[0]}" )/.." && pwd) -source "$DIR/variables.bash" - -rm -rf "$HOME/.config/nvim" -ln -s "$DOTFILES_PATH/vim/config" "$HOME/.config/nvim" - -nvim +PlugInstal +qall - diff --git a/wm/extras/bar/colors.bash b/wm/extras/bar/colors.bash deleted file mode 100644 index caa2443..0000000 --- a/wm/extras/bar/colors.bash +++ /dev/null @@ -1,12 +0,0 @@ -export COLOR_FOREGROUND="#ff$(get_color 05)" -export COLOR_DARK="#ff$(get_color 02)" -export COLOR_BACKGROUND="#ff$(get_color 00)" -export COLOR_HIGHLIGHT="#ff$(get_color 0D)" -export COLOR_URGENT="#ff$(get_color 08)" - -export COLOR_S1="#ff$(get_color 0E)" -export COLOR_S2="#ff$(get_color 0F)" -export COLOR_S3="#ff$(get_color 0D)" -export COLOR_S4="#ff$(get_color 0A)" -export COLOR_S5="#ff$(get_color 09)" - diff --git a/wm/extras/bar/modules/module.bash b/wm/extras/bar/modules/module.bash deleted file mode 100644 index f3af2e7..0000000 --- a/wm/extras/bar/modules/module.bash +++ /dev/null @@ -1,17 +0,0 @@ -#!/usr/bin/env bash - -source "$DOTFILES_PATH/variables.bash" -source "$DOTFILES_PATH/wm/extras/bar/colors.bash" - -reserve_bar_module_pid() { - FILE="$DOTFILES_PATH/wm/extras/bar/modules/$1.bm.pid" - if [[ -f "$FILE" ]]; then - - return 1 - else - echo "Starting bar module $1 witrh PID $!" - $2 & - return 0 - fi -} - diff --git a/wm/extras/bar/start.bash b/wm/extras/bar/start.bash deleted file mode 100755 index 6c6b3e4..0000000 --- a/wm/extras/bar/start.bash +++ /dev/null @@ -1,12 +0,0 @@ -#!/usr/bin/env bash - -source "$DOTFILES_PATH/variables.bash" - -"$DOTFILES_PATH/wm/extras/bar/run_bar.bash" & -export BAR_PID=$! - -echo "$BAR_PID" > "$BAR_PID_FILE" -echo "Starting bar with PID $BAR_PID" - -xdo lower -a wmpanel - diff --git a/wm/link.bash b/wm/link.bash deleted file mode 100755 index 7d166c9..0000000 --- a/wm/link.bash +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -DIR=$(cd "$(dirname "${BASH_SOURCE[0]}" )/.." && pwd) -source "$DIR/variables.bash" - -mkdir -p "$HOME/.config/bspwm" -mkdir -p "$HOME/.config/sxhkd" - -rm -f "$HOME/.config/bspwm/bspwmrc" -rm -f "$HOME/.config/sxhkd/sxhkdrc" -ln -s "$DOTFILES_PATH/wm/bspwmrc" "$HOME/.config/bspwm/bspwmrc" -ln -s "$DOTFILES_PATH/wm/sxhkdrc" "$HOME/.config/sxhkd/sxhkdrc" - diff --git a/x/link.bash b/x/link.bash deleted file mode 100755 index 3667180..0000000 --- a/x/link.bash +++ /dev/null @@ -1,29 +0,0 @@ -#!/usr/bin/env bash - -DIR=$(cd "$(dirname "${BASH_SOURCE[0]}" )/.." && pwd) -source "$DIR/variables.bash" - -mkdir -p "$HOME/.config/gtk-3.0" -rm -f "$HOME/.xinitrc" -rm -f "$HOME/.Xresources" -rm -f "$HOME/.gtkrc-2.0" -rm -f "$HOME/.config/gtk-3.0/settings.ini" -ln -s "$DOTFILES_PATH/x/xinitrc" "$HOME/.xinitrc" -ln -s "$DOTFILES_PATH/x/xresources" "$HOME/.Xresources" -ln -s "$DOTFILES_PATH/x/gtk3settings.ini" "$HOME/.config/gtk-3.0/settings.ini" -ln -s "$DOTFILES_PATH/x/gtk2rc" "$HOME/.gtkrc-2.0" - -sudo mkdir -p /root/.gtk-3.0/ -sudo mkdir -p /root/.config/gtk-3.0/ -sudo rm -f "/root/.gtkrc-2.0" -sudo rm -f "/root/.gtk-3.0/settings.ini" -sudo rm -f "/root/.config/gtk-3.0/settings.ini" -sudo ln -s "$DOTFILES_PATH/x/gtk2rc" "/root/.gtkrc-2.0" -sudo ln -s "$DOTFILES_PATH/x/gtk3settings.ini" "/root/.gtk-3.0/settings.ini" -sudo ln -s "$DOTFILES_PATH/x/gtk3settings.ini" "/root/.config/gtk-3.0/settings.ini" - -sudo rm -f "/etc/udev/rules.d/90-usb-device-plugin.rules" -sudo ln -s "$DOTFILES_PATH/x/udev_rules/90-usb-device-plugin.rules" "/etc/udev/rules.d/90-usb-device-plugin.rules" - -source "$DOTFILES_PATH/x/xloadresources" -