diff --git a/.Xdefaults b/.Xdefaults new file mode 100644 index 0000000..1d60a4e --- /dev/null +++ b/.Xdefaults @@ -0,0 +1,119 @@ +*font: monospace:size=16 +*faceSize: 16 + +!! Transparency (0-1): +st.alpha: 0.92 + +! st.termname: st-256color +! st.borderpx: 2 + +/* !! gruvbox: */ +/* *.color0: #1d2021 + *.color1: #cc241d + *.color2: #98971a + *.color3: #d79921 + *.color4: #458588 + *.color5: #b16286 + *.color6: #689d6a + *.color7: #a89984 + *.color8: #928374 + *.color9: #fb4934 + *.color10: #b8bb26 + *.color11: #fabd2f + *.color12: #83a598 + *.color13: #d3869b + *.color14: #8ec07c + *.color15: #ebdbb2 */ + +/* !! gruvbox light: */ +/* *.color0: #fbf1c7 */ +/* *.color1: #cc241d */ +/* *.color2: #98971a */ +/* *.color3: #d79921 */ +/* *.color4: #458588 */ +/* *.color5: #b16286 */ +/* *.color6: #689d6a */ +/* *.color7: #7c6f64 */ +/* *.color8: #928374 */ +/* *.color9: #9d0006 */ +/* *.color10: #79740e */ +/* *.color11: #b57614 */ +/* *.color12: #076678 */ +/* *.color13: #8f3f71 */ +/* *.color14: #427b58 */ +/* *.color15: #3c3836 */ + +/* !! brogrammer: */ +/* *.foreground: #d6dbe5 */ +/* *.background: #131313 */ +/* *.color0: #1f1f1f */ +/* *.color8: #d6dbe5 */ +/* *.color1: #f81118 */ +/* *.color9: #de352e */ +/* *.color2: #2dc55e */ +/* *.color10: #1dd361 */ +/* *.color3: #ecba0f */ +/* *.color11: #f3bd09 */ +/* *.color4: #2a84d2 */ +/* *.color12: #1081d6 */ +/* *.color5: #4e5ab7 */ +/* *.color13: #5350b9 */ +/* *.color6: #1081d6 */ +/* *.color14: #0f7ddb */ +/* *.color7: #d6dbe5 */ +/* *.color15: #ffffff */ +/* *.colorBD: #d6dbe5 */ + +/* ! base16 */ +/* *.color0: #181818 + *.color1: #ab4642 + *.color2: #a1b56c + *.color3: #f7ca88 + *.color4: #7cafc2 + *.color5: #ba8baf + *.color6: #86c1b9 + *.color7: #d8d8d8 + *.color8: #585858 + *.color9: #ab4642 + *.color10: #a1b56c + *.color11: #f7ca88 + *.color12: #7cafc2 + *.color13: #ba8baf + *.color14: #86c1b9 + *.color15: #f8f8f8 */ + +/* !! solarized */ + *.color0: #073642 + *.color1: #dc322f + *.color2: #859900 + *.color3: #b58900 + *.color4: #268bd2 + *.color5: #d33682 + *.color6: #2aa198 + *.color7: #eee8d5 + *.color9: #cb4b16 + *.color8: #fdf6e3 + *.color10: #586e75 + *.color11: #657b83 + *.color12: #839496 + *.color13: #6c71c4 + *.color14: #93a1a1 + *.color15: #fdf6e3 + +/* !! xterm */ +/* *.color0: #000000 + *.color1: #cd0000 + *.color2: #00cd00 + *.color3: #cdcd00 + *.color4: #0000cd + *.color5: #cd00cd + *.color6: #00cdcd + *.color7: #e5e5e5 + *.color8: #4d4d4d + *.color9: #ff0000 + *.color10: #00ff00 + *.color11: #ffff00 + *.color12: #0000ff + *.color13: #ff00ff + *.color14: #00ffff + *.color15: #aabac8 */ diff --git a/.config/aliasrc b/.config/aliasrc new file mode 100644 index 0000000..a51f01c --- /dev/null +++ b/.config/aliasrc @@ -0,0 +1,53 @@ +#!/bin/sh + +# bash +alias ":wq"="exit" +alias ":q"="exit" + +# cd +alias ".."="cd .." +alias "..1"="cd .." +alias "..2"="cd ../.." +alias "..3"="cd ../../.." +alias "..4"="cd ../../../.." +alias "..5"="cd ../../../../.." + +# clear +alias clear="clear && neofetch" + +# config +alias config="/usr/bin/git --git-dir=$HOME/dotfiles --work-tree=$HOME" + +# grep +alias grep="grep --color=auto" + +# lastpass +alias lastpass="lpass" + +# ls(d) +alias l="lsd" +alias la="lsd -la" +alias ll="lsd -l" +alias tree="lsd --tree" + +# mount +alias mount="mount |column -t" + +# pacman +alias pac="sudo pacman" +alias pacclean="sudo pacman -Rs $(pacman -Qtdq)" + +# ping +alias ping="ping -c 5" + +# root/sudo +alias root="sudo -i" +alias su="sudo -i" + +# vim +alias svim="sudo vim" + +alias image="sxiv" +alias mail="neomutt" +alias reddit="rtv" +alias video="mpv" diff --git a/.config/i3/config b/.config/i3/config new file mode 100644 index 0000000..71e9344 --- /dev/null +++ b/.config/i3/config @@ -0,0 +1,150 @@ +# vim: filetype=i3 +# File originally by Luke Smith + +# This config file will use environmental variables such as $BROWSER and $TERMINAL. +# You can set these variables in ~/.profile or ~/.bash_profile if you have it as below: +# +# export FILE="ranger" +# export TERMINAL="st" + +# #---Basic Definitions---# # +for_window [class="^.*"] border pixel 2 +gaps inner 15 +gaps outer 15 +set $term --no-startup-id $TERMINAL +set $mod Mod4 +font xft:mono 16 + +# #---Dropdown Windows---# # +# General dropdown window traits. The order can matter. +for_window [instance="dropdown_*"] floating enable +for_window [instance="dropdown_*"] move scratchpad +for_window [instance="dropdown_*"] sticky enable +for_window [instance="dropdown_*"] scratchpad show +for_window [instance="dropdown_tmuxdd"] resize set 625 450 +for_window [instance="dropdown_dropdowncalc"] resize set 800 300 +for_window [instance="dropdown_tmuxdd"] border pixel 3 +for_window [instance="dropdown_dropdowncalc"] border pixel 2 +for_window [instance="dropdown_*"] move position center + +bar { + font pango:mono 14 + status_command i3blocks + position top + mode dock + modifier None +} + +# #---Basic Bindings---# # + +bindsym $mod+Shift+Escape exec --no-startup-id prompt "Exit i3?" "i3-msg exit" + +# #---Letter Key Bindings---# # +bindsym $mod+q [con_id="__focused__" instance="^(?!dropdown_).*$"] kill +bindsym $mod+Shift+q [con_id="__focused__" instance="^(?!dropdown_).*$"] exec --no-startup-id kill -9 `xdotool getwindowfocus getwindowpid` + +bindsym $mod+t split toggle +bindsym $mod+Shift+t gaps inner current set 15; gaps outer current set 15 + +bindsym $mod+Shift+z exec --no-startup-id i3resize left + +bindsym $mod+u exec --no-startup-id ddspawn tmuxdd +bindsym $mod+Shift+u exec --no-startup-id i3resize down + +bindsym $mod+Shift+i exec --no-startup-id i3resize up + +bindsym $mod+o sticky toggle +bindsym $mod+Shift+o exec --no-startup-id i3resize right + +bindsym $mod+a exec --no-startup-id ddspawn dropdowncalc -f mono:pixelsize=24 + +bindsym $mod+s gaps inner current plus 5 +bindsym $mod+Shift+s gaps inner current minus 5 + +bindsym $mod+Shift+d gaps inner current set 0; gaps outer current set 0 + +bindsym $mod+f fullscreen toggle + +bindsym $mod+h focus left +bindsym $mod+Shift+h move left 30 + +bindsym $mod+j focus down +bindsym $mod+Shift+j move down 30 + +bindsym $mod+k focus up +bindsym $mod+Shift+k move up 30 + +bindsym $mod+l focus right +bindsym $mod+Shift+l move right 30 + +bindsym $mod+y gaps outer current plus 5 +bindsym $mod+Shift+y gaps outer current minus 5 + +bindsym $mod+b bar mode toggle +bindsym $mod+Shift+b floating toggle; sticky toggle; exec --no-startup-id hover left + +bindsym $mod+Shift+n floating toggle; sticky toggle; exec --no-startup-id hover right + +# #---Workspace Bindings---# # +set $ws1 "DEF" +set $ws2 "WWW" +set $ws3 "MED" +set $ws4 "CHT" +set $ws5 "DOC" +set $ws6 "WRK" +set $ws7 "EXT" +set $ws8 "ET1" +set $ws9 "ET2" +set $ws0 "ET3" + +# switch to workspace +bindsym $mod+1 workspace $ws1 +bindsym $mod+2 workspace $ws2 +bindsym $mod+3 workspace $ws3 +bindsym $mod+4 workspace $ws4 +bindsym $mod+5 workspace $ws5 +bindsym $mod+6 workspace $ws6 +bindsym $mod+7 workspace $ws7 +bindsym $mod+8 workspace $ws8 +bindsym $mod+9 workspace $ws9 +bindsym $mod+0 workspace $ws0 + +# move focused container to workspace +bindsym $mod+Shift+1 move container to workspace $ws1 +bindsym $mod+Shift+2 move container to workspace $ws2 +bindsym $mod+Shift+3 move container to workspace $ws3 +bindsym $mod+Shift+4 move container to workspace $ws4 +bindsym $mod+Shift+5 move container to workspace $ws5 +bindsym $mod+Shift+6 move container to workspace $ws6 +bindsym $mod+Shift+7 move container to workspace $ws7 +bindsym $mod+Shift+8 move container to workspace $ws8 +bindsym $mod+Shift+9 move container to workspace $ws9 +bindsym $mod+Shift+0 move container to workspace $ws0 + +for_window [class="Pinentry"] sticky enable +for_window [class="sent"] border pixel 0px +for_window [title="GIMP Startup"] move workspace $ws5 +for_window [class="Gimp"] move workspace $ws5 +for_window [window_role="GtkFileChooserDialog"] resize set 800 600 +for_window [window_role="GtkFileChooserDialog"] move position center +for_window [title="Default - Wine desktop"] floating enable + +# Bindings to make the webcam float and stick. +for_window [title="mpvfloat"] floating enable +for_window [title="mpvfloat"] sticky enable +for_window [title="mpvfloat"] border pixel 0 +no_focus [title="mpvfloat"] + +# #---Arrow Keys---# # +bindsym $mod+Left focus left +bindsym $mod+Ctrl+Left move workspace to output left +bindsym $mod+Down focus down +bindsym $mod+Ctrl+Down move workspace to output down +bindsym $mod+Up focus up +bindsym $mod+Ctrl+Up move workspace to output up +bindsym $mod+Right focus right +bindsym $mod+Ctrl+Right move workspace to output right +bindsym $mod+Shift+Left move left +bindsym $mod+Shift+Down move down +bindsym $mod+Shift+Up move up +bindsym $mod+Shift+Right move right diff --git a/.config/i3blocks/config b/.config/i3blocks/config new file mode 100644 index 0000000..e21244b --- /dev/null +++ b/.config/i3blocks/config @@ -0,0 +1,70 @@ +command=~/.local/bin/statusbar/$BLOCK_NAME +separator_block_width=15 +markup=pango + +#[record] +#command=cat /tmp/recordingicon +#interval=once +#signal=9 + +#[music] +#label=🎼 +#interval=once +#signal=11 + +#[news] +#label=📰 +#interval=once +#signal=6 + +#[iplocate] +#interval=30 + +[pacpackages] +label=📦 +interval=once +signal=8 + +#[torrent] +#interval=20 +#signal=7 + +#[weather] +#interval=180 +#signal=5 + +[mailbox] +label=📬 +interval=180 +signal=12 + +[memory] +interval=30 +label=🧠 + +[cpu] +interval=15 +label=💻 + +[volume] +interval=once +signal=10 + +#[disk] +#interval=60 +#command=disk / + +[disk] +interval=60 +command=disk /home 🏠 + +[battery] +command=battery BAT0 +interval=5 + +[clock] +label=📅 +interval=30 + +[internet] +interval=10 diff --git a/.config/rtv/rtv.cfg b/.config/rtv/rtv.cfg new file mode 100644 index 0000000..40b07e3 --- /dev/null +++ b/.config/rtv/rtv.cfg @@ -0,0 +1,177 @@ +; Reddit Terminal Viewer Configuration File +; https://github.com/michael-lazar/rtv +; +; This file should be placed in $XDG_CONFIG/rtv/rtv.cfg +; If $XDG_CONFIG is not set, use ~/.config/rtv/rtv.cfg + +[rtv] +################## +# General Settings +################## + +; Turn on ascii-only mode to disable all unicode characters. +; This may be necessary for compatibility with some terminal browsers. +ascii = False + +; Turn on monochrome mode to disable color. +monochrome = False + +; Flash when an invalid action is executed. +flash = True + +; Enable debugging by logging all HTTP requests and errors to the given file. +;log = /tmp/rtv.log + +; Default subreddit that will be opened when the program launches. +subreddit = front +;subreddit = python +;subreddit = python+linux+programming +;subreddit = all + +; Allow rtv to store reddit authentication credentials between sessions. +persistent = True + +; Automatically log in on startup, if credentials are available. +autologin = True + +; Clear any stored credentials when the program starts. +clear_auth = False + +; Maximum number of opened links that will be saved in the history file. +history_size = 200 + +; Open external links using programs defined in the mailcap config. +enable_media = False + +; Maximum number of columns for a comment +max_comment_cols = 120 + +; Maximum number of columns for pager +;max_pager_cols = 70 + +; Hide username if logged in, display "Logged in" instead +hide_username = False + +; Color theme, use "rtv --list-themes" to view a list of valid options. +; This can be an absolute filepath, or the name of a theme file that has +; been installed into either the custom of default theme paths. +;theme = molokai + +################ +# OAuth Settings +################ +; This sections defines the paramaters that will be used during the OAuth +; authentication process. rtv is registered as an "installed app", +; see https://github.com/reddit/reddit/wiki/OAuth2 for more information. + +; These settings are defined at https://www.reddit.com/prefs/apps and should +; not be altered unless you are defining your own developer application. +oauth_client_id = E2oEtRQfdfAfNQ +oauth_client_secret = praw_gapfill +oauth_redirect_uri = http://127.0.0.1:65000/ + +; Port that the rtv webserver will listen on. This should match the redirect +; uri defined above. +oauth_redirect_port = 65000 + +; Access permissions that will be requested. +oauth_scope = edit,history,identity,mysubreddits,privatemessages,read,report,save,submit,subscribe,vote + +; This is a separate token for the imgur api. It's used to extract images +; from imgur links and albums so they can be opened with mailcap. +; See https://imgur.com/account/settings/apps to generate your own key. +imgur_client_id = 93396265f59dec9 + +[bindings] +############## +# Key Bindings +############## +; If you would like to define custom bindings, copy this section into your +; config file with the [bindings] heading. All commands must be bound to at +; least one key for the config to be valid. +; +; 1.) Plain keys can be represented by either uppercase/lowercase characters +; or the hexadecimal numbers referring their ascii codes. For reference, see +; https://en.wikipedia.org/wiki/ASCII#ASCII_printable_code_chart +; e.g. Q, q, 1, ? +; e.g. 0x20 (space), 0x3c (less-than sign) +; +; 2.) Special ascii control codes should be surrounded with <>. For reference, +; see https://en.wikipedia.org/wiki/ASCII#ASCII_control_code_chart +; e.g. (enter), (escape) +; +; 3.) Other special keys are defined by curses, they should be surrounded by <> +; and prefixed with KEY_. For reference, see +; https://docs.python.org/2/library/curses.html#constants +; e.g. (left arrow), , (page down) +; +; Notes: +; - Curses is unreliable and should always be used in conjunction +; with . +; - Use 0x20 for the space key. +; - A subset of Ctrl modifiers are available through the ascii control codes. +; For example, Ctrl-D will trigger an signal. See the table above for +; a complete reference. + +; Base page +EXIT = q +FORCE_EXIT = Q +HELP = ? +SORT_1 = 1 +SORT_2 = 2 +SORT_3 = 3 +SORT_4 = 4 +SORT_5 = 5 +SORT_6 = 6 +SORT_7 = 7 +MOVE_UP = k, +MOVE_DOWN = j, +PREVIOUS_THEME = +NEXT_THEME = +PAGE_UP = m, , +PAGE_DOWN = n, , +PAGE_TOP = gg +PAGE_BOTTOM = G +UPVOTE = a +DOWNVOTE = z +LOGIN = u +DELETE = d +EDIT = e +INBOX = i +REFRESH = r, +PROMPT = / +SAVE = w +COPY_PERMALINK = y +COPY_URL = Y +PRIVATE_MESSAGE = C +SUBSCRIPTIONS = s +MULTIREDDITS = S + +; Submission page +SUBMISSION_TOGGLE_COMMENT = 0x20 +SUBMISSION_OPEN_IN_BROWSER = o, , +SUBMISSION_POST = c +SUBMISSION_EXIT = h, +SUBMISSION_OPEN_IN_PAGER = l, +SUBMISSION_OPEN_IN_URLVIEWER = b +SUBMISSION_GOTO_PARENT = K +SUBMISSION_GOTO_SIBLING = J + +; Subreddit page +SUBREDDIT_SEARCH = f +SUBREDDIT_POST = c +SUBREDDIT_OPEN = l, +SUBREDDIT_OPEN_IN_BROWSER = o, , +SUBREDDIT_FRONTPAGE = p +SUBREDDIT_HIDE = 0x20 + +; Subscription page +SUBSCRIPTION_SELECT = l, , , +SUBSCRIPTION_EXIT = h, s, S, , + +; Inbox page +INBOX_VIEW_CONTEXT = l, +INBOX_OPEN_SUBMISSION = o, , +INBOX_REPLY = c +INBOX_MARK_READ = w +INBOX_EXIT = h, , diff --git a/.config/sxhkd/sxhkdrc b/.config/sxhkd/sxhkdrc new file mode 100644 index 0000000..ed8e74f --- /dev/null +++ b/.config/sxhkd/sxhkdrc @@ -0,0 +1,76 @@ +# Basic binds +super + Return + $TERMINAL +super + d + dmenu_run + +# Et cetera... +XF86Launch1 + xset dpms force off +XF86AudioMute + lmc mute +XF86AudioLowerVolume + lmc down 5 +shift+XF86AudioLowerVolume + lmc down 10 +control+XF86AudioLowerVolume + lmc down 1 +XF86AudioRaiseVolume + lmc up 5 +shift+XF86AudioRaiseVolume + lmc up 10 +control+XF86AudioRaiseVolume + lmc up 1 +XF86AudioNext + lmc next +XF86AudioPlay + lmc toggle +XF86AudioPrev + lmc prev +XF86AudioStop + lmc toggle +XF86MonBrightnessDown + light -U 15 +XF86MonBrightnessUp + light -A 15 + + +# Function keys +# Show readme +super + F1 + groff -mom $HOME/.local/share/larbs/readme.mom -Tpdf | zathura - +# Browser +super + F2 + $BROWSER +# File Manager +super + F3 + $TERMINAL -e $FILE +# VS Code +super + F4 + code +# xournal +super + F5 + xournalpp +# Mount a USB drive or Android device +super + F6 + dmenumount +# Unmount a USB drive or Android device +super + F7 + dmenuumount +# Restart/rescan wifi/eth networks +super + F8 + sudo -A systemctl restart NetworkManager +# Network Manager interface +super + F9 + $TERMINAL -e sudo -A nmtui +# Reboot +super + F11 + prompt "Reboot computer?" "sudo -A shutdown -r now" +# Hibernate +super + F10 + prompt 'Hibernate computer?' 'sudo systemctl suspend' +# Shutdown +super + F12 + prompt "Shutdown computer?" "sudo -A shutdown -h now" + + diff --git a/.local/bin/tools/remaps b/.local/bin/tools/remaps new file mode 100755 index 0000000..d4de05f --- /dev/null +++ b/.local/bin/tools/remaps @@ -0,0 +1,4 @@ +#!/bin/sh +# This script is called by i3 on startup to remap keys. +# Increase key speed via a rate change +xset r rate 300 50 diff --git a/.vimrc b/.vimrc new file mode 120000 index 0000000..25b6a3b --- /dev/null +++ b/.vimrc @@ -0,0 +1 @@ +.config/nvim/init.vim \ No newline at end of file diff --git a/.xinitrc b/.xinitrc new file mode 100644 index 0000000..9e79ea9 --- /dev/null +++ b/.xinitrc @@ -0,0 +1,7 @@ +#!/bin/sh + +[ -f "$HOME/.xprofile" ] && . ~/.xprofile +[ -f "$HOME/.Xdefaults" ] && xrdb -merge "$HOME/.Xdefaults" +xterm -geometry 80x24+10+10 -fn 10x20 + +exec i3