first commit

This commit is contained in:
krolyxon 2022-06-01 22:55:52 +05:30
commit 7232200280
55 changed files with 3374 additions and 0 deletions

View File

@ -0,0 +1,132 @@
# Window Customization
window:
#opacity: 0.95
dimensions:
columns: 122
lines: 50
# padding:
# x: 10
# y: 10
dynamic_padding: true
decorations: none
scrolling:
history: 10000
multiplier: 11
window.dynamic_title: false
env:
WINIT_X11_SCALE_FACTOR: "1.0"
# Font configuration (changes require restart)
font:
# The normal (roman) font face to use.
normal:
family: Hack Nerd Font
# Style can be specified to pick a specific face.
style: Regular
# The bold font face
bold:
family: Hack Nerd Font
# Style can be specified to pick a specific face.
style: Bold
# The italic font face
italic:
family: Hack Nerd Font
# Style can be specified to pick a specific face.
style: italic
colors:
# Default colors
primary:
background: '0x1e2127'
foreground: '0xabb2bf'
# Bright and dim foreground colors
#
# The dimmed foreground color is calculated automatically if it is not present.
# If the bright foreground color is not set, or `draw_bold_text_with_bright_colors`
# is `false`, the normal foreground color will be used.
#dim_foreground: '0x9a9a9a'
bright_foreground: '0xe6efff'
# Cursor colors
#
# Colors which should be used to draw the terminal cursor. If these are unset,
# the cursor color will be the inverse of the cell color.
#cursor:
# text: '0x000000'
# cursor: '0xffffff'
# Normal colors
normal:
black: '0x1e2127'
red: '0xe06c75'
green: '0x98c379'
yellow: '0xd19a66'
blue: '0x61afef'
magenta: '0xc678dd'
cyan: '0x56b6c2'
white: '0x828791'
# Bright colors
bright:
black: '0x5c6370'
red: '0xe06c75'
green: '0x98c379'
yellow: '0xd19a66'
blue: '0x61afef'
magenta: '0xc678dd'
cyan: '0x56b6c2'
white: '0xe6efff'
# Dim colors
#
# If the dim colors are not set, they will be calculated automatically based
# on the `normal` colors.
dim:
black: '0x1e2127'
red: '0xe06c75'
green: '0x98c379'
yellow: '0xd19a66'
blue: '0x61afef'
magenta: '0xc678dd'
cyan: '0x56b6c2'
white: '0x828791'
# Indexed Colors
#
# The indexed colors include all colors from 16 to 256.
# When these are not set, they're filled with sensible defaults.
#indexed_colors:
# - { index: 16, color: '0x000000' }
# Extras
hide_cursor_when_typing: true
cursor:
style: Block
#blinking: Always
#blink_interval: 750
unfocused_hollow: true
key_bindings:
# (Windows, Linux, and BSD only)
- { key: V, mods: Control|Shift, action: Paste }
- { key: C, mods: Control|Shift, action: Copy }
- { key: Insert, mods: Shift, action: PasteSelection }
- { key: Key0, mods: Control, action: ResetFontSize }
- { key: Equals, mods: Control, action: IncreaseFontSize }
- { key: Plus, mods: Control, action: IncreaseFontSize }
- { key: Minus, mods: Control, action: DecreaseFontSize }
- { key: F11, mods: None, action: ToggleFullscreen }
- { key: Paste, mods: None, action: Paste }
- { key: Copy, mods: None, action: Copy }
- { key: L, mods: Control, action: ClearLogNotice }
- { key: L, mods: Control, chars: "\x0c" }
- { key: PageUp, mods: None, action: ScrollPageUp, mode: ~Alt }
- { key: PageDown, mods: None, action: ScrollPageDown, mode: ~Alt }
- { key: Home, mods: Shift, action: ScrollToTop, mode: ~Alt }
- { key: End, mods: Shift, action: ScrollToBottom, mode: ~Alt }

168
.config/cava/config Normal file
View File

@ -0,0 +1,168 @@
## Configuration file for CAVA. Default values are commented out. Use either ';' or '#' for commenting.
[general]
# Smoothing mode. Can be 'normal', 'scientific' or 'waves'. DEPRECATED as of 0.6.0
mode = 0
# Accepts only non-negative values.
; framerate = 60
# 'autosens' will attempt to decrease sensitivity if the bars peak. 1 = on, 0 = off
# new as of 0.6.0 autosens of low values (dynamic range)
# 'overshoot' allows bars to overshoot (in % of terminal height) without initiating autosens. DEPRECATED as of 0.6.0
; autosens = 1
; overshoot = 20
# Manual sensitivity in %. If autosens is enabled, this will only be the initial value.
# 200 means double height. Accepts only non-negative values.
; sensitivity = 100
# The number of bars (0-200). 0 sets it to auto (fill up console).
# Bars' width and space between bars in number of characters.
; bars = 0
; bar_width = 2
; bar_spacing = 1
# Lower and higher cutoff frequencies for lowest and highest bars
# the bandwidth of the visualizer.
# Note: there is a minimum total bandwidth of 43Mhz x number of bars.
# Cava will automatically increase the higher cutoff if a too low band is specified.
; lower_cutoff_freq = 50
; higher_cutoff_freq = 10000
# Seconds with no input before cava goes to sleep mode. Cava will not perform FFT or drawing and
# only check for input once per second. Cava will wake up once input is detected. 0 = disable.
; sleep_timer = 0
[input]
# Audio capturing method. Possible methods are: 'pulse', 'alsa', 'fifo', 'sndio' or 'shmem'
# Defaults to 'pulse', 'alsa' or 'fifo', in that order, dependent on what support cava was built with.
#
# All input methods uses the same config variable 'source'
# to define where it should get the audio.
#
# For pulseaudio 'source' will be the source. Default: 'auto', which uses the monitor source of the default sink
# (all pulseaudio sinks(outputs) have 'monitor' sources(inputs) associated with them).
#
# For alsa 'source' will be the capture device.
# For fifo 'source' will be the path to fifo-file.
# For shmem 'source' will be /squeezelite-AA:BB:CC:DD:EE:FF where 'AA:BB:CC:DD:EE:FF' will be squeezelite's MAC address
; method = pulse
; source = auto
; method = alsa
; source = hw:Loopback,1
; method = fifo
; source = /tmp/mpd.fifo
; sample_rate = 44100
; sample_bits = 16
; method = shmem
; source = /squeezelite-AA:BB:CC:DD:EE:FF
; method = portaudio
; source = auto
[output]
# Output method. Can be 'ncurses', 'noncurses' or 'raw'.
# 'noncurses' uses a custom framebuffer technique and draws only changes
# from frame to frame. 'ncurses' is default if supported
#
# 'raw' is an 8 or 16 bit (configurable via the 'bit_format' option) data
# stream of the bar heights that can be used to send to other applications.
# 'raw' defaults to 200 bars, which can be adjusted in the 'bars' option above.
; method = ncurses
# Visual channels. Can be 'stereo' or 'mono'.
# 'stereo' mirrors both channels with low frequencies in center.
# 'mono' outputs left to right lowest to highest frequencies.
# 'mono_option' set mono to either take input from 'left', 'right' or 'average'.
; channels = stereo
; mono_option = average
# Raw output target. A fifo will be created if target does not exist.
; raw_target = /dev/stdout
# Raw data format. Can be 'binary' or 'ascii'.
; data_format = binary
# Binary bit format, can be '8bit' (0-255) or '16bit' (0-65530).
; bit_format = 16bit
# Ascii max value. In 'ascii' mode range will run from 0 to value specified here
; ascii_max_range = 1000
# Ascii delimiters. In ascii format each bar and frame is separated by a delimiters.
# Use decimal value in ascii table (i.e. 59 = ';' and 10 = '\n' (line feed)).
; bar_delimiter = 59
; frame_delimiter = 10
[color]
# Colors can be one of seven predefined: black, blue, cyan, green, magenta, red, white, yellow.
# Or defined by hex code '#xxxxxx' (hex code must be within ''). User defined colors requires
# ncurses output method and a terminal that can change color definitions such as Gnome-terminal or rxvt.
# if supported, ncurses mode will be forced on if user defined colors are used.
# default is to keep current terminal color
; background = #ff6c6b
; foreground = #ff6c6b
# Gradient mode, only hex defined colors (and thereby ncurses mode) are supported,
# background must also be defined in hex or remain commented out. 1 = on, 0 = off.
# You can define as many as 8 different colors. They range from bottom to top of screen
# gradient = 1
# gradient_count = 2
# gradient_color_1 = '#E1FFAF'
# gradient_color_2 = '#E1FFAF'
# gradient_color_3 = '#a6cc33'
# gradient_color_4 = '#cccc33'
# gradient_color_5 = '#cca633'
# gradient_color_6 = '#cc8033'
# gradient_color_7 = '#cc5933'
# gradient_color_8 = '#c792ea'
[smoothing]
# Percentage value for integral smoothing. Takes values from 0 - 100.
# Higher values means smoother, but less precise. 0 to disable.
; integral = 77
# Disables or enables the so-called "Monstercat smoothing" with or without "waves". Set to 0 to disable.
; monstercat = 0
; waves = 0
# Set gravity percentage for "drop off". Higher values means bars will drop faster.
# Accepts only non-negative values. 50 means half gravity, 200 means double. Set to 0 to disable "drop off".
; gravity = 100
# In bar height, bars that would have been lower that this will not be drawn.
; ignore = 0
[eq]
# This one is tricky. You can have as much keys as you want.
# Remember to uncomment more then one key! More keys = more precision.
# Look at readme.md on github for further explanations and examples.
1 = 1 # bass
2 = 1
3 = 1 # midtone
4 = 1
5 = 1 # treble

1
.config/dunst/dunstrc Symbolic link
View File

@ -0,0 +1 @@
/home/krolyxon/.cache/wal/dunstrc

View File

@ -0,0 +1,11 @@
[Filechooser Settings]
LocationMode=path-bar
ShowHidden=true
ShowSizeColumn=true
GeometryX=0
GeometryY=0
GeometryWidth=780
GeometryHeight=585
SortColumn=name
SortOrder=ascending
StartupMode=recent

18
.config/gtk-2.0/gtkrc-2.0 Normal file
View File

@ -0,0 +1,18 @@
# DO NOT EDIT! This file will be overwritten by LXAppearance.
# Any customization should be done in ~/.gtkrc-2.0.mine instead.
include "/home/glizzster/.gtkrc-2.0.mine"
gtk-theme-name="Arc-Dark"
gtk-icon-theme-name="Papirus-Dark"
gtk-font-name="Cantarell 11"
gtk-cursor-theme-name="Adwaita"
gtk-cursor-theme-size=0
gtk-toolbar-style=GTK_TOOLBAR_BOTH
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
gtk-button-images=1
gtk-menu-images=1
gtk-enable-event-sounds=1
gtk-enable-input-feedback-sounds=1
gtk-xft-antialias=1
gtk-xft-hinting=1
gtk-xft-hintstyle="hintfull"

View File

@ -0,0 +1,7 @@
file:///home/krolyxon/media/dl dl
file:///home/krolyxon/media/dox dox
file:///home/krolyxon/media/pix pix
file:///home/krolyxon/media/vids vids
file:///home/krolyxon/media/music music
file:///home/krolyxon/media media
file:///home/krolyxon/code code

View File

@ -0,0 +1,15 @@
[Settings]
gtk-theme-name=Arc-Dark
gtk-icon-theme-name=Papirus-Dark
gtk-font-name=Cantarell 11
gtk-cursor-theme-name=Adwaita
gtk-cursor-theme-size=0
gtk-toolbar-style=GTK_TOOLBAR_BOTH
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
gtk-button-images=1
gtk-menu-images=1
gtk-enable-event-sounds=1
gtk-enable-input-feedback-sounds=1
gtk-xft-antialias=1
gtk-xft-hinting=1
gtk-xft-hintstyle=hintfull

14
.config/mimeapps.list Normal file
View File

@ -0,0 +1,14 @@
[Default Applications]
text/x-shellscript=text.desktop;
x-scheme-handler/magnet=torrent.desktop;
application/x-bittorrent=torrent.desktop;
text/plain=nvim.desktop
application/postscript=pdf.desktop;
application/pdf=pdf.desktop;
image/png=img.desktop;
image/jpeg=img.desktop;
image/gif=img.desktop;
application/rss+xml=rss.desktop
video/x-matroska=video.desktop
x-scheme-handler/lbry=lbry.desktop
inode/directory=file.desktop

38
.config/paru/paru.conf Normal file
View File

@ -0,0 +1,38 @@
#
# $PARU_CONF
# /etc/paru.conf
# ~/.config/paru/paru.conf
#
# See the paru.conf(5) manpage for options
#
# GENERAL OPTIONS
#
[options]
PgpFetch
Devel
Provides
DevelSuffixes = -git -cvs -svn -bzr -darcs -always -hg
#AurOnly
#BottomUp
RemoveMake
#SudoLoop
#UseAsk
#SaveChanges
#CombinedUpgrade
#CleanAfter
#UpgradeMenu
#NewsOnUpgrade
#LocalRepo
#Chroot
#Sign
#SignDb
#
# Binary OPTIONS
#
#[bin]
#FileManager = vifm
#MFlags = --skippgpcheck
#Sudo = doas

View File

@ -0,0 +1,26 @@
[config]
bm_open_method=0
[volume]
mount_on_startup=1
mount_removable=1
autorun=1
[ui]
always_show_tabs=0
max_tab_chars=32
win_width=1049
win_height=1053
splitter_pos=147
media_in_new_tab=0
desktop_folder_new_win=0
change_tab_on_drop=1
close_on_unmount=1
focus_previous=0
side_pane_mode=places
view_mode=icon
show_hidden=1
sort=name;ascending;
toolbar=newtab;navigation;home;
show_statusbar=1
pathbar_mode_buttons=0

View File

View File

@ -0,0 +1,15 @@
import os
import ranger.api
from ranger.core.linemode import LinemodeBase
from .devicons import *
SEPARATOR = os.getenv('RANGER_DEVICONS_SEPARATOR', ' ')
@ranger.api.register_linemode
class DevIconsLinemode(LinemodeBase):
name = "devicons"
uses_metadata = False
def filetitle(self, file, metadata):
return devicon(file) + SEPARATOR + file.relative_path

View File

@ -0,0 +1,381 @@
#!/usr/bin/python
# coding=UTF-8
# These glyphs, and the mapping of file extensions to glyphs
# has been copied from the vimscript code that is present in
# https://github.com/ryanoasis/vim-devicons
import re;
import os;
# Get the XDG_USER_DIRS directory names from enviromental variables
xdgs_dirs = {path.split('/')[-2]: icon for key, icon in [
('XDG_DOCUMENTS_DIR' , ''),
('XDG_DOWNLOAD_DIR' , ''),
('XDG_CONFIG_DIR' , ''),
('XDG_MUSIC_DIR' , ''),
('XDG_PICTURES_DIR' , ''),
('XDG_PUBLICSHARE_DIR', ''),
('XDG_TEMPLATES_DIR' , ''),
('XDG_VIDEOS_DIR' , ''),
] if (path := os.getenv(key))}
# all those glyphs will show as weird squares if you don't have the correct patched font
# My advice is to use NerdFonts which can be found here:
# https://github.com/ryanoasis/nerd-fonts
file_node_extensions = {
'7z' : '',
'a' : '',
'ai' : '',
'apk' : '',
'asm' : '',
'asp' : '',
'aup' : '',
'avi' : '',
'awk' : '',
'bash' : '',
'bat' : '',
'bmp' : '',
'bz2' : '',
'c' : '',
'c++' : '',
'cab' : '',
'cbr' : '',
'cbz' : '',
'cc' : '',
'class' : '',
'clj' : '',
'cljc' : '',
'cljs' : '',
'cmake' : '',
'coffee' : '',
'conf' : '',
'cp' : '',
'cpio' : '',
'cpp' : '',
'cs' : '',
'csh' : '',
'css' : '',
'cue' : '',
'cvs' : '',
'cxx' : '',
'd' : '',
'dart' : '',
'db' : '',
'deb' : '',
'diff' : '',
'dll' : '',
'doc' : '',
'docx' : '',
'dump' : '',
'edn' : '',
'eex' : '',
'efi' : '',
'ejs' : '',
'elf' : '',
'elm' : '',
'epub' : '',
'erl' : '',
'ex' : '',
'exe' : '',
'exs' : '',
'f#' : '',
'fifo' : '',
'fish' : '',
'flac' : '',
'flv' : '',
'fs' : '',
'fsi' : '',
'fsscript' : '',
'fsx' : '',
'gem' : '',
'gemspec' : '',
'gif' : '',
'go' : '',
'gz' : '',
'gzip' : '',
'h' : '',
'haml' : '',
'hbs' : '',
'hh' : '',
'hpp' : '',
'hrl' : '',
'hs' : '',
'htaccess' : '',
'htm' : '',
'html' : '',
'htpasswd' : '',
'hxx' : '',
'ico' : '',
'img' : '',
'ini' : '',
'iso' : '',
'jar' : '',
'java' : '',
'jl' : '',
'jpeg' : '',
'jpg' : '',
'js' : '',
'json' : '',
'jsx' : '',
'key' : '',
'ksh' : '',
'leex' : '',
'less' : '',
'lha' : '',
'lhs' : '',
'log' : '',
'lua' : '',
'lzh' : '',
'lzma' : '',
'm4a' : '',
'm4v' : '',
'markdown' : '',
'md' : '',
'mdx' : '',
'mjs' : '',
'mkv' : '',
'ml' : 'λ',
'mli' : 'λ',
'mov' : '',
'mp3' : '',
'mp4' : '',
'mpeg' : '',
'mpg' : '',
'msi' : '',
'mustache' : '',
'nix' : '',
'o' : '',
'ogg' : '',
'part' : '',
'pdf' : '',
'php' : '',
'pl' : '',
'pm' : '',
'png' : '',
'pp' : '',
'ppt' : '',
'pptx' : '',
'ps1' : '',
'psb' : '',
'psd' : '',
'pub' : '',
'py' : '',
'pyc' : '',
'pyd' : '',
'pyo' : '',
'r' : '',
'rake' : '',
'rar' : '',
'rb' : '',
'rc' : '',
'rlib' : '',
'rmd' : '',
'rom' : '',
'rpm' : '',
'rproj' : '',
'rs' : '',
'rss' : '',
'rtf' : '',
's' : '',
'sass' : '',
'scala' : '',
'scss' : '',
'sh' : '',
'slim' : '',
'sln' : '',
'so' : '',
'sql' : '',
'styl' : '',
'suo' : '',
'swift' : '',
't' : '',
'tar' : '',
'tex' : '',
'tgz' : '',
'toml' : '',
'torrent' : '',
'ts' : '',
'tsx' : '',
'twig' : '',
'vim' : '',
'vimrc' : '',
'vue' : '',
'wav' : '',
'webm' : '',
'webmanifest' : '',
'webp' : '',
'xbps' : '',
'xcplayground' : '',
'xhtml' : '',
'xls' : '',
'xlsx' : '',
'xml' : '',
'xul' : '',
'xz' : '',
'yaml' : '',
'yml' : '',
'zip' : '',
'zsh' : '',
}
dir_node_exact_matches = {
# English
'.git' : '',
'Desktop' : '',
'Documents' : '',
'Downloads' : '',
'Dotfiles' : '',
'Dropbox' : '',
'Music' : '',
'Pictures' : '',
'Public' : '',
'Templates' : '',
'Videos' : '',
# Spanish
'Escritorio' : '',
'Documentos' : '',
'Descargas' : '',
'Música' : '',
'Imágenes' : '',
'Público' : '',
'Plantillas' : '',
'Vídeos' : '',
# French
'Bureau' : '',
'Documents' : '',
'Images' : '',
'Musique' : '',
'Publique' : '',
'Téléchargements' : '',
'Vidéos' : '',
# Portuguese
'Documentos' : '',
'Imagens' : '',
'Modelos' : '',
'Música' : '',
'Público' : '',
'Vídeos' : '',
'Área de trabalho' : '',
# Italian
'Documenti' : '',
'Immagini' : '',
'Modelli' : '',
'Musica' : '',
'Pubblici' : '',
'Scaricati' : '',
'Scrivania' : '',
'Video' : '',
# German
'Bilder' : '',
'Dokumente' : '',
'Musik' : '',
'Schreibtisch' : '',
'Vorlagen' : '',
'Öffentlich' : '',
# Hungarian
'Dokumentumok' : '',
'Képek' : '',
'Modelli' : '',
'Zene' : '',
'Letöltések' : '',
'Számítógép' : '',
'Videók' : '',
# XDG_USER_DIRS
**xdgs_dirs
}
file_node_exact_matches = {
'.bash_aliases' : '',
'.bash_history' : '',
'.bash_logout' : '',
'.bash_profile' : '',
'.bashprofile' : '',
'.bashrc' : '',
'.dmrc' : '',
'.DS_Store' : '',
'.fasd' : '',
'.fehbg' : '',
'.gitattributes' : '',
'.gitconfig' : '',
'.gitignore' : '',
'.gitlab-ci.yml' : '',
'.gvimrc' : '',
'.inputrc' : '',
'.jack-settings' : '',
'.mime.types' : '',
'.ncmpcpp' : '',
'.nvidia-settings-rc' : '',
'.pam_environment' : '',
'.profile' : '',
'.recently-used' : '',
'.selected_editor' : '',
'.vim' : '',
'.viminfo' : '',
'.vimrc' : '',
'.Xauthority' : '',
'.Xdefaults' : '',
'.xinitrc' : '',
'.xinputrc' : '',
'.Xresources' : '',
'.zshrc' : '',
'_gvimrc' : '',
'_vimrc' : '',
'a.out' : '',
'authorized_keys' : '',
'bspwmrc' : '',
'cmakelists.txt' : '',
'config' : '',
'config.ac' : '',
'config.m4' : '',
'config.mk' : '',
'config.ru' : '',
'configure' : '',
'docker-compose.yml' : '',
'dockerfile' : '',
'Dockerfile' : '',
'dropbox' : '',
'exact-match-case-sensitive-1.txt' : 'X1',
'exact-match-case-sensitive-2' : 'X2',
'favicon.ico' : '',
'gemfile' : '',
'gruntfile.coffee' : '',
'gruntfile.js' : '',
'gruntfile.ls' : '',
'gulpfile.coffee' : '',
'gulpfile.js' : '',
'gulpfile.ls' : '',
'ini' : '',
'known_hosts' : '',
'ledger' : '',
'license' : '',
'LICENSE' : '',
'LICENSE.md' : '',
'LICENSE.txt' : '',
'Makefile' : '',
'makefile' : '',
'Makefile.ac' : '',
'Makefile.in' : '',
'mimeapps.list' : '',
'mix.lock' : '',
'node_modules' : '',
'package-lock.json' : '',
'package.json' : '',
'playlists' : '',
'procfile' : '',
'Rakefile' : '',
'rakefile' : '',
'react.jsx' : '',
'README' : '',
'README.markdown' : '',
'README.md' : '',
'README.rst' : '',
'README.txt' : '',
'sxhkdrc' : '',
'user-dirs.dirs' : '',
'webpack.config.js' : '',
}
def devicon(file):
if file.is_directory: return dir_node_exact_matches.get(file.relative_path, '')
return file_node_exact_matches.get(os.path.basename(file.relative_path), file_node_extensions.get(file.extension, ''))

25
.config/ranger/rc.conf Normal file
View File

@ -0,0 +1,25 @@
# How many columns are there, and what are their relative widths?
set column_ratios 1,3,5
# Ask for a confirmation when running the "delete" command?
# Valid values are "always", "never", "multiple" (default)
# With "multiple", ranger will ask only if you delete multiple files at once.
#Always confirm delete.
#set confirm_on_delete always
# Which colorscheme to use? These colorschemes are available by default:
# default, jungle, snow, solarized
set colorscheme jungle
#The files preview is a nice feature but it slowing down ranger, so can be preferable to turn it off. Look for:
# Preview files on the rightmost column?
# And collapse (shrink) the last column if there is nothing to preview?
# set preview_files true
# set preview_directories true
# set collapse_preview true
set show_hidden true
set draw_borders both
set preview_images true
set preview_images_method ueberzug
default_linemode devicons

31
.config/shell/aliasrc Normal file
View File

@ -0,0 +1,31 @@
#!/bin/sh
# Use neovim for vim if present
[ -x "$(command -v nvim)" ] && alias vim="nvim" vimdiff="nvim -d"
alias \
zconf='nvim ~/.config/zsh/.zshrc' \
ls='exa -a --group-directories-first --icons' \
lsa='exa -la --group-directories-first --icons' \
ytdl='yt-dlp' \
ytdlv='yt-dlp -f "(mp4)"' \
ytdlm='yt-dlp -f "(mp3)"' \
cl='clear' \
dots='/usr/bin/git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME' \
fm='ranger' \
# Verbosity and settings that you pretty much just always are going to want.
alias \
cp="cp -iv" \
mv="mv -iv" \
rm="rm -vI" \
# Colorize commands when possible.
alias \
grep="grep --color=auto" \
diff="diff --color=auto" \
ip="ip -color=auto"
ec() {find ~/.config -type f | fzf | xargs -r $EDITOR ;}
es() {find ~/.local/bin -type f | fzf | xargs -r $EDITOR ;}
ef() {fzf | xargs -r -I % $EDITOR % ;}

34
.config/shell/profile Normal file
View File

@ -0,0 +1,34 @@
#!/bin/sh
export EDITOR="nvim"
export TERMINAL="st"
export BROWSER="firefox"
export XDG_CONFIG_HOME="$HOME/.config"
export XDG_DATA_HOME="$HOME/.local/share"
export XDG_CACHE_HOME="$HOME/.cache"
export XAUTHORITY=/tmp/Xauthority # This causes other window managers to break, who cares anyways?
export XINITRC="$XDG_CONFIG_HOME/x11/xinitrc"
export ZDOTDIR="$XDG_CONFIG_HOME/zsh"
export INPUTRC="$XDG_CONFIG_HOME/shell/inputrc"
# export GNUPGHOME="$XDG_DATA_HOME/gnupg"
export KODI_DATA="$XDG_DATA_HOME/kodi"
export CARGO_HOME="$XDG_DATA_HOME/cargo"
export RUSTUP_HOME="$XDG_DATA_HOME/rustup"
export GTK2_RC_FILES="${XDG_CONFIG_HOME:-$HOME/.config}/gtk-2.0/gtkrc-2.0"
#export LESSHISTFILE="-"
export WGETRC="${XDG_CONFIG_HOME:-$HOME/.config}/wget/wgetrc"
# export QT_QPA_PLATFORMTHEME="gtk2" # Have QT use gtk2 theme.
export __GL_SHADER_DISK_CACHE_PATH=~/.cache/
# Other program settings
export FZF_DEFAULT_OPTS="--layout=reverse --height 40%"
export PATH=$PATH:$HOME/.local/bin
# Starting X
if [ -z "${DISPLAY}" ] && [ "${XDG_VTNR}" -eq 1 ]; then
exec startx
fi

30
.config/sxhkd/sxhkdrc Executable file
View File

@ -0,0 +1,30 @@
#
# wm independent hotkeys
#
#emoji menu
# super + period
super + grave
unicode_emoji
# swap cap if stops working
super + c
setxkbmap -option caps:swapescape
# Screenshot tool
Print
maimshot
# file explorer
super + shift + f
pcmanfm
# web browser
super + shift + b
firefox
# make sxhkd reload its configuration files:
super + Escape
pkill -USR1 -x sxhkd
# Volume
XF86Audio{RaiseVolume,LowerVolume,Mute}
pamixer -{i,d,t} 2; kill -34 $(cat ~/.cache/pidofbar)

11
.config/sxiv/exec/key-handler Executable file
View File

@ -0,0 +1,11 @@
#!/bin/sh
while read file
do
case "$1" in
"d")
[ "$(printf "No\\nYes" | dmenu -i -p "Really delete $file?")" = "Yes" ] && rm "$file" && notify-send "$file deleted." ;;
"w")
genwall $file
esac
done

15
.config/user-dirs.dirs Normal file
View File

@ -0,0 +1,15 @@
# This file is written by xdg-user-dirs-update
# If you want to change or add directories, just edit the line you're
# interested in. All local changes will be retained on the next run.
# Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped
# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an
# absolute path. No other format is supported.
#
XDG_DESKTOP_DIR="$HOME/"
XDG_DOWNLOAD_DIR="$HOME/dl"
XDG_TEMPLATES_DIR="$HOME/"
XDG_PUBLICSHARE_DIR="$HOME/"
XDG_DOCUMENTS_DIR="$HOME/dox"
XDG_MUSIC_DIR="$HOME/"
XDG_PICTURES_DIR="$HOME/pix"
XDG_VIDEOS_DIR="$HOME/vids"

View File

@ -0,0 +1,60 @@
# New Start: A modern Arch workflow built with an emphasis on functionality.
# Copyright (C) 2018 Donovan Glover
# NOTE: This file is automatically generated by pywal. Do not edit it by hand.
[global]
# Make the width 3740 (3840 - 100), have 50 left margin and 95 above
# geometry = "3740x5-50+95"
offset = 3x20
# Show multiple notifications in the same box
separator_height = 0
# Add vertical padding to the inside of the notification
padding = 8
# Add horizontal padding for when the text gets long enough
horizontal_padding = 8
# The frame color and width of the notification
frame_color = "{color6}"
frame_width = 2
# How long a user needs to be idle for sticky notifications
idle_threshold = 120
# Font and typography settings
font = Hack Nerd Font 10
alignment = left
word_wrap = yes
# Format for how notifications will be displayed
# Usage: `notify-send 'Title' 'Summary'`
format = "<b>%s</b>\n%b"
# Allow some HTML tags like <i> and <u> in notifications
markup = full
max_icon_size = 120
transparency = 5
# These are the keybindings used to control dunst notifications
[shortcuts]
close = ctrl+space
close_all = ctrl+shift+space
history = ctrl+grave
# Set the background and foreground (text) color for all notifications
[urgency_low]
background = "{background}"
foreground = "{foreground}"
[urgency_normal]
background = "{background}"
foreground = "{foreground}"
[urgency_critical]
background = "{background}"
foreground = "{foreground}"
# vim:ft=cfg

13
.config/x11/xinitrc Normal file
View File

@ -0,0 +1,13 @@
#!/bin/sh
slstatus &
setwall &
xcompmgr &
dunst &
sxhkd &
# xmodmap ~/.config/xmodmap/Xmodmap &
setxkbmap -option caps:swapescape
# exec dwm > /dev/null 2>&1
while type dwm > /dev/null ; do dwm && continue || break ; done
exec dwm

56
.config/zathura/zathurarc Executable file
View File

@ -0,0 +1,56 @@
set sandbox none
set statusbar-h-padding 0
set statusbar-v-padding 0
set page-padding 1
set selection-clipboard clipboard
map u scroll half-up
map d scroll half-down
map D toggle_page_mode
map r reload
map R rotate
map K zoom in
map J zoom out
map i recolor
map p print
map g goto top
/* set notification-error-bg "#282828" # bg */
/* set notification-error-fg "#fb4934" # bright:red */
/* set notification-warning-bg "#282828" # bg */
/* set notification-warning-fg "#fabd2f" # bright:yellow */
/* set notification-bg "#282828" # bg */
/* set notification-fg "#b8bb26" # bright:green */
/* set completion-bg "#504945" # bg2 */
/* set completion-fg "#ebdbb2" # fg */
/* set completion-group-bg "#3c3836" # bg1 */
/* set completion-group-fg "#928374" # gray */
/* set completion-highlight-bg "#83a598" # bright:blue */
/* set completion-highlight-fg "#504945" # bg2 */
/* # Define the color in index mode */
/* set index-bg "#504945" # bg2 */
/* set index-fg "#ebdbb2" # fg */
/* set index-active-bg "#83a598" # bright:blue */
/* set index-active-fg "#504945" # bg2 */
/* set inputbar-bg "#282828" # bg */
/* set inputbar-fg "#ebdbb2" # fg */
/* set statusbar-bg "#504945" # bg2 */
/* set statusbar-fg "#ebdbb2" # fg */
/* set highlight-color "#fabd2f" # bright:yellow */
/* set highlight-active-color "#fe8019" # bright:orange */
/* set default-bg "#282828" # bg */
/* set default-fg "#D4BE98" # fg */
/* set render-loading true */
/* set render-loading-bg "#282828" # bg */
/* set render-loading-fg "#ebdbb2" # fg */
/* # Recolor book content's color */
/* set recolor-lightcolor "#282828" # bg */
/* set recolor-darkcolor "#ebdbb2" # fg */
/* set recolor "true" */
/* # set recolor-keephue true # keep original color */

27
.config/zsh/.zshrc Normal file
View File

@ -0,0 +1,27 @@
autoload -U colors && colors # Load colors
PS1="%B%{$fg[red]%}[%{$fg[yellow]%}%n%{$fg[green]%}@%{$fg[blue]%}%M %{$fg[magenta]%}%~%{$fg[red]%}]%{$reset_color%}$%b "
setopt autocd # Automatically cd into typed directory.
stty stop undef # Disable ctrl-s to freeze terminal.
# History in cache directory:
HISTSIZE=1000
SAVEHIST=1000
HISTFILE=~/.cache/history
source "$XDG_CONFIG_HOME/shell/aliasrc"
# Basic auto/tab complete:
autoload -U compinit
zstyle ':completion:*' menu select
zmodload zsh/complist
compinit
_comp_options+=(globdots) # Include hidden files.
# Enable searching through history
bindkey '^R' history-incremental-pattern-search-backward
cowsay "$(shuf -n 1 ~/.local/share/vocab/words.txt)"
#should be last.
source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
source /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh

BIN
.local/bin/colorpicker Executable file

Binary file not shown.

5
.local/bin/connect_wifi Executable file
View File

@ -0,0 +1,5 @@
#!/bin/sh
bssid=$(nmcli device wifi list | sed -n '1!p' | cut -b 9- | dmenu -p "Select wifi:" -l 20 | cut -d' ' -f1)
pass=$(echo "" | dmenu -P -p "Enter Password: ")
nmcli device wifi connect $bssid password $pass

67
.local/bin/dmenumount Executable file
View File

@ -0,0 +1,67 @@
#!/bin/sh
# Gives a dmenu prompt to mount unmounted drives and Android phones. If
# they're in /etc/fstab, they'll be mounted automatically. Otherwise, you'll
# be prompted to give a mountpoint from already existsing directories. If you
# input a novel directory, it will prompt you to create that directory.
getmount() { \
[ -z "$chosen" ] && exit 1
# shellcheck disable=SC2086
mp="$(find $1 2>/dev/null | dmenu -i -p "Type in mount point.")" || exit 1
test -z "$mp" && exit 1
if [ ! -d "$mp" ]; then
mkdiryn=$(printf "No\\nYes" | dmenu -i -p "$mp does not exist. Create it?") || exit 1
[ "$mkdiryn" = "Yes" ] && (mkdir -p "$mp" || sudo -A mkdir -p "$mp")
fi
}
mountusb() { \
chosen="$(echo "$usbdrives" | dmenu -i -p "Mount which drive?")" || exit 1
chosen="$(echo "$chosen" | awk '{print $1}')"
sudo -A mount "$chosen" 2>/dev/null && notify-send "💻 USB mounting" "$chosen mounted." && exit 0
alreadymounted=$(lsblk -nrpo "name,type,mountpoint" | awk '$3!~/\/boot|\/home$|SWAP/&&length($3)>1{printf "-not ( -path *%s -prune ) ",$3}')
getmount "/mnt /media /mount /home -maxdepth 5 -type d $alreadymounted"
partitiontype="$(lsblk -no "fstype" "$chosen")"
case "$partitiontype" in
"vfat") sudo -A mount -t vfat "$chosen" "$mp" -o rw,umask=0000;;
"exfat") sudo -A mount "$chosen" "$mp" -o uid="$(id -u)",gid="$(id -g)";;
*) sudo -A mount "$chosen" "$mp"; user="$(whoami)"; ug="$(groups | awk '{print $1}')"; sudo -A chown "$user":"$ug" "$mp";;
esac
notify-send "💻 USB mounting" "$chosen mounted to $mp."
}
mountandroid() { \
chosen="$(echo "$anddrives" | dmenu -i -p "Which Android device?")" || exit 1
chosen="$(echo "$chosen" | cut -d : -f 1)"
getmount "$HOME -maxdepth 3 -type d"
simple-mtpfs --device "$chosen" "$mp"
echo "OK" | dmenu -i -p "Tap Allow on your phone if it asks for permission and then press enter" || exit 1
simple-mtpfs --device "$chosen" "$mp"
notify-send "🤖 Android Mounting" "Android device mounted to $mp."
}
asktype() { \
choice="$(printf "USB\\nAndroid" | dmenu -i -p "Mount a USB drive or Android device?")" || exit 1
case $choice in
USB) mountusb ;;
Android) mountandroid ;;
esac
}
anddrives=$(simple-mtpfs -l 2>/dev/null)
usbdrives="$(lsblk -rpo "name,type,size,mountpoint" | grep 'part\|rom' | awk '$4==""{printf "%s (%s)\n",$1,$3}')"
if [ -z "$usbdrives" ]; then
[ -z "$anddrives" ] && echo "No USB drive or Android device detected" && exit
echo "Android device(s) detected."
mountandroid
else
if [ -z "$anddrives" ]; then
echo "USB drive(s) detected."
mountusb
else
echo "Mountable USB drive(s) and Android device(s) detected."
asktype
fi
fi

45
.local/bin/ext Executable file
View File

@ -0,0 +1,45 @@
#!/bin/sh
# A general, all-purpose extraction script. Not all extraction programs here
# are installed by LARBS automatically.
#
# Default behavior: Extract archive into new directory
# Behavior with `-c` option: Extract contents into current directory
while getopts "hc" o; do case "${o}" in
c) extracthere="True" ;;
*) printf "Options:\\n -c: Extract archive into current directory rather than a new one.\\n" && exit 1 ;;
esac done
if [ -z "$extracthere" ]; then
archive="$(readlink -f "$*")" &&
directory="$(echo "$archive" | sed 's/\.[^\/.]*$//')" &&
mkdir -p "$directory" &&
cd "$directory" || exit 1
else
archive="$(readlink -f "$(echo "$*" | cut -d' ' -f2)" 2>/dev/null)"
fi
[ -z "$archive" ] && printf "Give archive to extract as argument.\\n" && exit 1
if [ -f "$archive" ] ; then
case "$archive" in
*.tar.bz2|*.tbz2) bsdtar -xf "$archive" ;;
*.tar.xz) bsdtar -xf "$archive" ;;
*.tar.gz|*.tgz) bsdtar -xf "$archive" ;;
*.tar.zst) bsdtar -xf "$archive" ;;
*.tar) bsdtar -xf "$archive" ;;
*.lzma) unlzma "$archive" ;;
*.bz2) bunzip2 "$archive" ;;
*.rar) unrar x -ad "$archive" ;;
*.gz) gunzip "$archive" ;;
*.zip) unzip "$archive" ;;
*.Z) uncompress "$archive" ;;
*.7z) 7z x "$archive" ;;
*.xz) unxz "$archive" ;;
*.exe) cabextract "$archive" ;;
*) printf "extract: '%s' - unknown archive method\\n" "$archive" ;;
esac
else
printf "File \"%s\" not found.\\n" "$archive"
fi

18
.local/bin/genwall Executable file
View File

@ -0,0 +1,18 @@
#!/bin/sh
# Dependencies:
# convert wal xdotool xwallpaper
wall_dir=~/pix/wall
if [ -z "$1" ]; then
wall="$(find "$wall_dir" -type f -name "*.jpg" -o -name "*.png" | shuf -n1)"
else
wall="$1"
fi
convert "$wall" ~/.local/share/bg.jpg
xwallpaper --zoom ~/.local/share/bg.jpg
wal -c
wal -i ~/.local/share/bg.jpg
xdotool key super+F5

23
.local/bin/linkhandler Executable file
View File

@ -0,0 +1,23 @@
#!/bin/sh
# Feed script a url or file location.
# If an image, it will view in sxiv,
# if a video or gif, it will view in mpv
# if a music file or pdf, it will download,
# otherwise it opens link in browser.
# If no url given. Opens browser. For using script as $BROWSER.
[ -z "$1" ] && { "$BROWSER"; exit; }
case "$1" in
*mkv|*webm|*mp4|*youtube.com/watch*|*youtube.com/playlist*|*youtu.be*|*hooktube.com*|*bitchute.com*|*videos.lukesmith.xyz*|*odysee.com*)
setsid -f mpv -quiet "$1" >/dev/null 2>&1 ;;
*png|*jpg|*jpe|*jpeg|*gif)
curl -sL "$1" > "/tmp/$(echo "$1" | sed "s/.*\///;s/%20/ /g")" && sxiv -a "/tmp/$(echo "$1" | sed "s/.*\///;s/%20/ /g")" >/dev/null 2>&1 & ;;
*pdf|*cbz|*cbr)
curl -sL "$1" > "/tmp/$(echo "$1" | sed "s/.*\///;s/%20/ /g")" && zathura "/tmp/$(echo "$1" | sed "s/.*\///;s/%20/ /g")" >/dev/null 2>&1 & ;;
*mp3|*flac|*opus|*mp3?source*)
qndl "$1" 'curl -LO' >/dev/null 2>&1 ;;
*)
[ -f "$1" ] && setsid -f "$TERMINAL" -e "$EDITOR" "$1" >/dev/null 2>&1 || setsid -f "$BROWSER" "$1" >/dev/null 2>&1
esac

11
.local/bin/maimshot Executable file
View File

@ -0,0 +1,11 @@
#!/bin/sh
case "$(printf "a selected area (copy)\\ncurrent window (copy)\\nfull screen (copy)\\na selected area\\ncurrent window\\nfull screen" | dmenu -l 6 -i -p "Screenshot which area?")" in
"a selected area (copy)") maim -s | xclip -selection clipboard -t image/png ;;
"current window (copy)") maim -i "$(xdotool getactivewindow)" | xclip -selection clipboard -t image/png ;;
"full screen (copy)") sleep 0.2 ; maim | xclip -selection clipboard -t image/png ;;
"a selected area") maim -s ~/pix/ss/pic-selected-"$(date '+%y-%m-%d-%H-%M').png" ;;
"current window") maim -i "$(xdotool getactivewindow)" ~/pix/ss/pic-window-"$(date '+%y-%m-%d-%H-%M').png" ;;
"full screen") sleep 0.2 ; maim ~/pix/ss/pic-full-"$(date '+%y-%m-%d-%H-%M').png" ;;
esac

6
.local/bin/newword Executable file
View File

@ -0,0 +1,6 @@
#!/bin/sh
word=$(dmenu -p "Enter Word: " <&-)
mean=$(dmenu -p "Enter Meaning: " <&-)
echo "$word -> $mean" >> ~/.local/share/vocab/words.txt

5
.local/bin/setwall Executable file
View File

@ -0,0 +1,5 @@
#!/bin/sh
xwallpaper --zoom ~/.local/share/bg.jpg
wal -c
wal -i ~/.local/share/bg.jpg
xdotool key super+F5

9
.local/bin/spammer Executable file
View File

@ -0,0 +1,9 @@
#!/bin/sh
i=0
while [ $i -le 100 ]
do
xdotool type "$1" ;xdotool key KP_Enter; sleep 1 ;
done

2
.local/bin/spot-adblock Executable file
View File

@ -0,0 +1,2 @@
#!/bin/sh
LD_PRELOAD=/usr/local/lib/spotify-adblock.so spotify

9
.local/bin/transadd Executable file
View File

@ -0,0 +1,9 @@
#!/bin/sh
# Mimeapp script for adding torrent to transmission-daemon, but will also start the daemon first if not running.
# transmission-daemon sometimes fails to take remote requests in its first moments, hence the sleep.
pidof transmission-daemon >/dev/null || (transmission-daemon && notify-send "Starting transmission daemon...")
sleep 3
transmission-remote -a "$@" && notify-send "🔽 Torrent added."

83
.local/bin/ufetch Executable file
View File

@ -0,0 +1,83 @@
#!/bin/sh
#
# ufetch-arch - tiny system info for arch
## INFO
# user is already defined
host="$(cat /etc/hostname)"
os='Arch Linux'
kernel="$(uname -sr)"
uptime="$(uptime -p | sed 's/up //')"
packages="$(pacman -Q | wc -l)"
shell="$(basename "${SHELL}")"
## UI DETECTION
parse_rcs() {
for f in "${@}"; do
wm="$(tail -n 1 "${f}" 2> /dev/null | cut -d ' ' -f 2)"
[ -n "${wm}" ] && echo "${wm}" && return
done
}
rcwm="$(parse_rcs "${HOME}/.xinitrc" "${HOME}/.xsession")"
ui='unknown'
uitype='UI'
if [ -n "${DE}" ]; then
ui="${DE}"
uitype='DE'
elif [ -n "${WM}" ]; then
ui="${WM}"
uitype='WM'
elif [ -n "${XDG_CURRENT_DESKTOP}" ]; then
ui="${XDG_CURRENT_DESKTOP}"
uitype='DE'
elif [ -n "${DESKTOP_SESSION}" ]; then
ui="${DESKTOP_SESSION}"
uitype='DE'
elif [ -n "${rcwm}" ]; then
ui="${rcwm}"
uitype='WM'
elif [ -n "${XDG_SESSION_TYPE}" ]; then
ui="${XDG_SESSION_TYPE}"
fi
ui="$(basename "${ui}")"
## DEFINE COLORS
# probably don't change these
if [ -x "$(command -v tput)" ]; then
bold="$(tput bold)"
black="$(tput setaf 0)"
red="$(tput setaf 1)"
green="$(tput setaf 2)"
yellow="$(tput setaf 3)"
blue="$(tput setaf 4)"
magenta="$(tput setaf 5)"
cyan="$(tput setaf 6)"
white="$(tput setaf 7)"
reset="$(tput sgr0)"
fi
# you can change these
lc="${reset}${bold}${blue}" # labels
nc="${reset}${bold}${blue}" # user and hostname
ic="${reset}" # info
c0="${reset}${blue}" # first color
## OUTPUT
cat <<EOF
${c0} /\\ ${nc}${USER}${ic}@${nc}${host}${reset}
${c0} / \\ ${lc}OS: ${ic}${os}${reset}
${c0} /\\ \\ ${lc}KERNEL: ${ic}${kernel}${reset}
${c0} / __ \\ ${lc}UPTIME: ${ic}${uptime}${reset}
${c0} / ( ) \\ ${lc}PACKAGES: ${ic}${packages}${reset}
${c0} / __| |__\\\\ ${lc}SHELL: ${ic}${shell}${reset}
${c0} /.\` \`.\\ ${lc}${uitype}: ${ic}${ui}${reset}
EOF

13
.local/bin/unicode_emoji Executable file
View File

@ -0,0 +1,13 @@
#!/bin/sh
# The famous "get a menu of emojis to copy" script.
# Get user selection via dmenu from emoji file.
chosen=$(cut -d ';' -f1 ~/.local/share/emoji | dmenu -i -l 30 | sed "s/ .*//")
# Exit if none chosen.
[ -z "$chosen" ] && exit
xdotool type "$chosen"
printf "$chosen" | xclip -selection clipboard
notify-send "'$chosen' copied to clipboard." &

12
.local/bin/upfile Executable file
View File

@ -0,0 +1,12 @@
#!/bin/sh
if [ -n "$1" ]; then
file=$1
else
file=$(find . -maxdepth 2 -type f | fzf)
fi
[ -z "$file" ] && exit
curl -F"file=@$file" 0x0.st | xclip -sel c
notify-send "The url has been copied to your clipboard."

44
.local/bin/vimv Executable file
View File

@ -0,0 +1,44 @@
#!/usr/bin/env bash
set -eu
# Lists the current directory's files in Vim, so you can edit it and save to rename them
# USAGE: vimv [file1 file2]
# https://github.com/thameera/vimv
declare -r FILENAMES_FILE=$(mktemp "${TMPDIR:-/tmp}/vimv.XXX")
trap '{ rm -f "${FILENAMES_FILE}" ; }' EXIT
if [ $# -ne 0 ]; then
src=( "$@" )
else
IFS=$'\r\n' GLOBIGNORE='*' command eval 'src=($(ls))'
fi
for ((i=0;i<${#src[@]};++i)); do
echo "${src[i]}" >> "${FILENAMES_FILE}"
done
${EDITOR:-vi} "${FILENAMES_FILE}"
IFS=$'\r\n' GLOBIGNORE='*' command eval 'dest=($(cat "${FILENAMES_FILE}"))'
if (( ${#src[@]} != ${#dest[@]} )); then
echo "WARN: Number of files changed. Did you delete a line by accident? Aborting.." >&2
exit 1
fi
declare -i count=0
for ((i=0;i<${#src[@]};++i)); do
if [ "${src[i]}" != "${dest[i]}" ]; then
mkdir -p "$(dirname "${dest[i]}")"
if git ls-files --error-unmatch "${src[i]}" > /dev/null 2>&1; then
git mv "${src[i]}" "${dest[i]}"
else
mv "${src[i]}" "${dest[i]}"
fi
((++count))
fi
done
echo "$count" files renamed.

158
.local/bin/waldl Executable file
View File

@ -0,0 +1,158 @@
#!/bin/sh
# https://github.com/pystardust/waldl
# script to find and download wallpapers from wallhaven
version="0.0.1"
# Usage:
# waldl <query>
# if query left empty then sh_menu will be used (dmenu by default)
# after the thumbnails are cached, sxiv would open up with the thumbnails
# Select the wallpapers using `m` on the image. ( marking the image in sxiv )
# press `q` to quit sxiv, the marked images would start downloading
####################
## User variables ##
####################
# the dir where wallpapers are stored
walldir="$HOME/pix/wallhaven"
# the dir used to cache thumbnails
cachedir="$HOME/.cache/wallhaven"
# sxiv options
sxiv_otps=" -tfpo -z 200" # o is needed for selection
# number of pages to show in search results
# each page contains 24 results
max_pages=4
# sorting : date_added, relevance, random, views, favorites, toplist
sorting=relevance
# quality : large original small
quality=large
# atleast : least res
atleast=1920x1080
# the menu command used when no query is provided
sh_menu () {
: | dmenu -p "search wallhaven: "
# ROFI: comment the previous line and uncomment the next line for rofi
# rofi -dmenu -l 0 -p "search wallpapers"
}
##########################
## getting search query ##
##########################
[ -n "$*" ] && query="$*" || query=$( sh_menu )
[ -z "$query" ] && exit 1
query=$(printf '%s' "$query" | tr ' ' '+' )
######################
## start up commands #
######################
rm -rf "$cachedir"
mkdir -p "$walldir" "$cachedir"
# progress display command
sh_info () {
printf "%s\n" "$1" >&2
notify-send "wallhaven" "$1"
[ -n "$2" ] && exit "$2"
}
# dependency checking
dep_ck () {
for pr; do
command -v $pr >/dev/null 2>&1 || sh_info "command $pr not found, install: $pr" 1
done
}
dep_ck "sxiv" "curl" "jq"
# clean up command that would be called when the program exits
clean_up () {
printf "%s\n" "cleaning up..." >&2
rm -rf "$datafile" "$cachedir"
}
# data file to store the api information
datafile="/tmp/wald.$$"
# clean up if killed
trap "exit" INT TERM
trap "clean_up" EXIT
##################
## getting data ##
##################
# request the search results for each page
get_results () {
for page_no in $(seq $max_pages)
do
{
json=$(curl -s -G "https://wallhaven.cc/api/v1/search" \
-d "q=$1" \
-d "page=$page_no" \
-d "atleast=$atleast" \
-d "sorting=$sorting"
)
printf "%s\n" "$json" >> "$datafile"
} &
sleep 0.001
done
wait
}
# search wallpapers
sh_info "getting data..."
get_results "$query"
# check if data file is empty, if so then exit
[ -s "$datafile" ] || sh_info "no images found" 1
############################
## downloading thumbnails ##
############################
# get a list of thumnails from the data
thumbnails=$( jq -r '.data[]?|.thumbs.'"$quality" < "$datafile")
[ -z "$thumbnails" ] && sh_info "no-results found" 1
# download the thumbnails
sh_info "caching thumbnails..."
for url in $thumbnails
do
printf "url = %s\n" "$url"
printf "output = %s\n" "$cachedir/${url##*/}"
done | curl -Z -K -
#sh_info "downloaded thumbnails..."
###########################
## user selection (sxiv) ##
###########################
# extract the id's out of the thumbnail name
image_ids="$(sxiv $sxiv_otps "$cachedir")"
[ -z "$image_ids" ] && exit
#########################
## download wallpapers ##
#########################
# download the selected wall papers
mkdir "$walldir/$query"
cd "$walldir/$query"
sh_info "downloading wallpapers..."
for ids in $image_ids
do
ids="${ids##*/}"
ids="${ids%.*}"
url=$( jq -r '.data[]?|select( .id == "'$ids'" )|.path' < "$datafile" )
printf "url = %s\n" "$url"
printf -- "-O\n"
done | curl -K -
sh_info "wallpapers downloaded in:- '$walldir/$query'"
sxiv $(ls -c)

6
.local/bin/wordmean Executable file
View File

@ -0,0 +1,6 @@
#!/bin/sh
word=$(dmenu -p "Enter Word: " <&-)
#$BROWSER https://www.merriam-webster.com/dictionary/$word
$BROWSER "https://www.google.com/search?hl=en&q=define+$word"

View File

@ -0,0 +1,4 @@
[Desktop Entry]
Type=Application
Name=File Manager
Exec=/usr/local/bin/st -e fm %u

View File

@ -0,0 +1,4 @@
[Desktop Entry]
Type=Application
Name=Image viewer
Exec=/usr/bin/sxiv -a %f

View File

@ -0,0 +1,4 @@
[Desktop Entry]
Type=Application
Name=PDF reader
Exec=/usr/bin/zathura %u

View File

@ -0,0 +1,4 @@
[Desktop Entry]
Type=Application
Name=RSS feed addition
Exec=/usr/bin/env rssadd %U

View File

@ -0,0 +1,4 @@
[Desktop Entry]
Type=Application
Name=Text editor
Exec=/usr/local/bin/st -e nvim %u

View File

@ -0,0 +1,4 @@
[Desktop Entry]
Type=Application
Name=Torrent
Exec=/usr/bin/env transadd %U

View File

@ -0,0 +1,7 @@
[Desktop Entry]
Type=Application
Name=Trilium Notes
Icon=/opt/trilium-bin/icon.png
Exec=/opt/trilium-bin/trilium
Categories=Office
Terminal=false

1630
.local/share/emoji Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,67 @@
bigot -> a person with very strong beliefs or opinions
allocate -> assign
territory -> region
criteria -> fixed basis to judge
keep ones head -> not to get angry
triumph -> victory
knaves -> dishonest people
keep ones virtue -> keep ones goodness or morals under any condition
queer -> strange
exclusive -> availabe to only one person or group
fate -> a power that is believed to control what happens in the future
established -> accepted or followed by many people
compelled -> forced to do
abundant -> existing or occuring in large ammounts
bias -> a tendency to believe that some people,idias, etc are better than others useually results in treating some people unfairly
desperate -> feeling or showing a hopeless sense taht a situation is so bad as to be impossible to deal with
iteration -> the repetition of a process or utterance
cope -> deal with something difficult
revile -> critisize in an abusive or angrily insulting manner
serveillance -> close observation, especially of a suspected spy or criminal
negotiate -> obtain or bring about by discussion
caveat -> a warning or proviso of specific conditions or limitatations
punitive -> inteded as punishment
legislation -> laws, considered collectively
narcissism -> excessive interest in or admiration of onself and one's physical appearance
neoligism -> a newly coined word or expression
ideology -> a system of idias, especially one which forms the basis of economic or political theory and policy
rebuke -> to criticize sharply
bizzare -> odd, extravagant
AWOL -> absent without official leave
pursue -> follow or chase (someone or something)
apologist -> a person who offers an arguement in defence of something controversial.
stereotype -> a widely held but fixed and oversimplified image or idea of a particular type of person or thing
MIA -> missing in action
exodus -> a mass departure of people
departure -> the action of leaving, especially to start a journey
destiny -> the event that will necessarily happen to a particular person or thing in the future
torment -> severe physical or mental suffering
inferior -> lower in rank, status, or quality.
excerpt -> a short extract from a film, broadcast, or piece of music or writing
ambitious -> having or showing a strong desire and determination to succeed
innocuous -> not harmful or offensive
evacuate -> remove (someone) from a place of danger to a safer place
indulge -> allow oneself to enjoy the pleasure of
to take for granted -> to value (something or someone) too lightly
afaik -> abbreviation for "as far as i know"
fatal -> causing death
intercept -> obstruct (someone or something) so as to prevent them from continuing to a destination
pry -> inquire too closely into a person's private affairs
relent -> abondon a sever or harsh attitude, especially by finally yielding to a request
fiance -> a man to whom someone is engaged or married
credible -> able to be believed; convincing.
implode -> collapse or cause to collapse violently inwards.
shenanigans -> secret or dishonest activity
prelude -> an action or event serving as an introduction to something more important
sedative -> promoting calm or inducing sleep
induce -> succeed in persuading or loading (someone) to do something
immigrant -> a person who comes to live permanently in a foreign country.
con -> persuade (someone) to do or believe in something by lying to them.
obnoxious -> extremely unpleasant
debut -> a person's first appearance or performance in a particular capacity or role
convention -> a way in which something is usually done
deduct -> subtract or take away (an amount or part) from a total
derive -> obtain something from (a specified source)
sceptical -> not easily convinced; having doubts or reservations
psyched -> excited and full of anticipation
faucet -> a tap, "nal" in hindi

1
.xinitrc Symbolic link
View File

@ -0,0 +1 @@
.config/x11/xinitrc

1
.zprofile Symbolic link
View File

@ -0,0 +1 @@
.config/shell/profile