From 723220028038a3c6e155259e28d07e867e2d45c9 Mon Sep 17 00:00:00 2001 From: krolyxon Date: Wed, 1 Jun 2022 22:55:52 +0530 Subject: [PATCH] first commit --- .config/alacritty/alacritty.yml | 132 ++ .config/cava/config | 168 ++ .config/dunst/dunstrc | 1 + .config/gtk-2.0/gtkfilechooser.ini | 11 + .config/gtk-2.0/gtkrc-2.0 | 18 + .config/gtk-3.0/bookmarks | 7 + .config/gtk-3.0/settings.ini | 15 + .config/mimeapps.list | 14 + .config/paru/paru.conf | 38 + .config/pcmanfm/default/pcmanfm.conf | 26 + .config/ranger/plugins/__init__.py | 0 .../__init__.cpython-310.opt-1.pyc | Bin 0 -> 143 bytes .../plugins/ranger_devicons/__init__.py | 15 + .../__init__.cpython-310.opt-1.pyc | Bin 0 -> 777 bytes .../devicons.cpython-310.opt-1.pyc | Bin 0 -> 8378 bytes .../plugins/ranger_devicons/devicons.py | 381 ++++ .config/ranger/rc.conf | 25 + .config/shell/aliasrc | 31 + .config/shell/profile | 34 + .config/sxhkd/sxhkdrc | 30 + .config/sxiv/exec/key-handler | 11 + .config/user-dirs.dirs | 15 + .config/wal/templates/dunstrc | 60 + .config/x11/xinitrc | 13 + .config/zathura/zathurarc | 56 + .config/zsh/.zshrc | 27 + .local/bin/colorpicker | Bin 0 -> 23168 bytes .local/bin/connect_wifi | 5 + .local/bin/dmenumount | 67 + .local/bin/ext | 45 + .local/bin/genwall | 18 + .local/bin/linkhandler | 23 + .local/bin/maimshot | 11 + .local/bin/newword | 6 + .local/bin/setwall | 5 + .local/bin/spammer | 9 + .local/bin/spot-adblock | 2 + .local/bin/transadd | 9 + .local/bin/ufetch | 83 + .local/bin/unicode_emoji | 13 + .local/bin/upfile | 12 + .local/bin/vimv | 44 + .local/bin/waldl | 158 ++ .local/bin/wordmean | 6 + .local/share/applications/file.desktop | 4 + .local/share/applications/img.desktop | 4 + .local/share/applications/pdf.desktop | 4 + .local/share/applications/rss.desktop | 4 + .local/share/applications/text.desktop | 4 + .local/share/applications/torrent.desktop | 4 + .../share/applications/trilium-notes.desktop | 7 + .local/share/emoji | 1630 +++++++++++++++++ .local/share/vocab/words.txt | 67 + .xinitrc | 1 + .zprofile | 1 + 55 files changed, 3374 insertions(+) create mode 100644 .config/alacritty/alacritty.yml create mode 100644 .config/cava/config create mode 120000 .config/dunst/dunstrc create mode 100644 .config/gtk-2.0/gtkfilechooser.ini create mode 100644 .config/gtk-2.0/gtkrc-2.0 create mode 100644 .config/gtk-3.0/bookmarks create mode 100644 .config/gtk-3.0/settings.ini create mode 100644 .config/mimeapps.list create mode 100644 .config/paru/paru.conf create mode 100644 .config/pcmanfm/default/pcmanfm.conf create mode 100644 .config/ranger/plugins/__init__.py create mode 100644 .config/ranger/plugins/__pycache__/__init__.cpython-310.opt-1.pyc create mode 100644 .config/ranger/plugins/ranger_devicons/__init__.py create mode 100644 .config/ranger/plugins/ranger_devicons/__pycache__/__init__.cpython-310.opt-1.pyc create mode 100644 .config/ranger/plugins/ranger_devicons/__pycache__/devicons.cpython-310.opt-1.pyc create mode 100644 .config/ranger/plugins/ranger_devicons/devicons.py create mode 100644 .config/ranger/rc.conf create mode 100644 .config/shell/aliasrc create mode 100644 .config/shell/profile create mode 100755 .config/sxhkd/sxhkdrc create mode 100755 .config/sxiv/exec/key-handler create mode 100644 .config/user-dirs.dirs create mode 100644 .config/wal/templates/dunstrc create mode 100644 .config/x11/xinitrc create mode 100755 .config/zathura/zathurarc create mode 100644 .config/zsh/.zshrc create mode 100755 .local/bin/colorpicker create mode 100755 .local/bin/connect_wifi create mode 100755 .local/bin/dmenumount create mode 100755 .local/bin/ext create mode 100755 .local/bin/genwall create mode 100755 .local/bin/linkhandler create mode 100755 .local/bin/maimshot create mode 100755 .local/bin/newword create mode 100755 .local/bin/setwall create mode 100755 .local/bin/spammer create mode 100755 .local/bin/spot-adblock create mode 100755 .local/bin/transadd create mode 100755 .local/bin/ufetch create mode 100755 .local/bin/unicode_emoji create mode 100755 .local/bin/upfile create mode 100755 .local/bin/vimv create mode 100755 .local/bin/waldl create mode 100755 .local/bin/wordmean create mode 100644 .local/share/applications/file.desktop create mode 100644 .local/share/applications/img.desktop create mode 100644 .local/share/applications/pdf.desktop create mode 100644 .local/share/applications/rss.desktop create mode 100644 .local/share/applications/text.desktop create mode 100644 .local/share/applications/torrent.desktop create mode 100644 .local/share/applications/trilium-notes.desktop create mode 100644 .local/share/emoji create mode 100644 .local/share/vocab/words.txt create mode 120000 .xinitrc create mode 120000 .zprofile diff --git a/.config/alacritty/alacritty.yml b/.config/alacritty/alacritty.yml new file mode 100644 index 0000000..ff01e9b --- /dev/null +++ b/.config/alacritty/alacritty.yml @@ -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 } diff --git a/.config/cava/config b/.config/cava/config new file mode 100644 index 0000000..77575bd --- /dev/null +++ b/.config/cava/config @@ -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 + + + diff --git a/.config/dunst/dunstrc b/.config/dunst/dunstrc new file mode 120000 index 0000000..ff68f1c --- /dev/null +++ b/.config/dunst/dunstrc @@ -0,0 +1 @@ +/home/krolyxon/.cache/wal/dunstrc \ No newline at end of file diff --git a/.config/gtk-2.0/gtkfilechooser.ini b/.config/gtk-2.0/gtkfilechooser.ini new file mode 100644 index 0000000..00ae93b --- /dev/null +++ b/.config/gtk-2.0/gtkfilechooser.ini @@ -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 diff --git a/.config/gtk-2.0/gtkrc-2.0 b/.config/gtk-2.0/gtkrc-2.0 new file mode 100644 index 0000000..9d288ab --- /dev/null +++ b/.config/gtk-2.0/gtkrc-2.0 @@ -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" diff --git a/.config/gtk-3.0/bookmarks b/.config/gtk-3.0/bookmarks new file mode 100644 index 0000000..cd36ca4 --- /dev/null +++ b/.config/gtk-3.0/bookmarks @@ -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 diff --git a/.config/gtk-3.0/settings.ini b/.config/gtk-3.0/settings.ini new file mode 100644 index 0000000..0318e32 --- /dev/null +++ b/.config/gtk-3.0/settings.ini @@ -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 diff --git a/.config/mimeapps.list b/.config/mimeapps.list new file mode 100644 index 0000000..c8410f4 --- /dev/null +++ b/.config/mimeapps.list @@ -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 diff --git a/.config/paru/paru.conf b/.config/paru/paru.conf new file mode 100644 index 0000000..fb8db4c --- /dev/null +++ b/.config/paru/paru.conf @@ -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 diff --git a/.config/pcmanfm/default/pcmanfm.conf b/.config/pcmanfm/default/pcmanfm.conf new file mode 100644 index 0000000..8f13c74 --- /dev/null +++ b/.config/pcmanfm/default/pcmanfm.conf @@ -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 diff --git a/.config/ranger/plugins/__init__.py b/.config/ranger/plugins/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/.config/ranger/plugins/__pycache__/__init__.cpython-310.opt-1.pyc b/.config/ranger/plugins/__pycache__/__init__.cpython-310.opt-1.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ac1fed76ce816ace3e639265edec174ad17e1d45 GIT binary patch literal 143 zcmd1j<>g`kg62xTBoO@=L?8o3AjbiSi&=m~3PUi1CZpdd zSyfeBl3Jv%mz&M4u=4F<|$LkeT-r}&y%}*)KNwou+ KRm=n=SQr5IF&}XN literal 0 HcmV?d00001 diff --git a/.config/ranger/plugins/ranger_devicons/__init__.py b/.config/ranger/plugins/ranger_devicons/__init__.py new file mode 100644 index 0000000..664b276 --- /dev/null +++ b/.config/ranger/plugins/ranger_devicons/__init__.py @@ -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 diff --git a/.config/ranger/plugins/ranger_devicons/__pycache__/__init__.cpython-310.opt-1.pyc b/.config/ranger/plugins/ranger_devicons/__pycache__/__init__.cpython-310.opt-1.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7217fe6a825968e008c5f19d85265b0cdb88dd6a GIT binary patch literal 777 zcmZ8f&2Abo5VpO`Vko3dR5fbVL$CAzFHl7x35_B}q=Kl2y;xg3Y>dn3XFp z!ng;R#g`Ow!Nk`$4yV*&B$9-uJ8XoBmJ?d*8Z)?(NOsnSL6D>V0DvoTA&0 z2tZOQ2`Z#%Bv~2nOtdt%ZFcK1a7l2#)-s zE9&Smt`l}lkdF3SQCi*9``S*VZyL~9kSKSmhm)6*-18J0h+(LFj7| z1deV4a1yhaHP}nG^~$r-`ucjNb~aN!S?~SZO>R^gXzR_3Fku8!Mes=u4vK{doIVPb ohX!&Lu1f5Vht7Ly!o`{($@4Gk$xg!avLVF@rwxkE684V%18mR5H2?qr literal 0 HcmV?d00001 diff --git a/.config/ranger/plugins/ranger_devicons/__pycache__/devicons.cpython-310.opt-1.pyc b/.config/ranger/plugins/ranger_devicons/__pycache__/devicons.cpython-310.opt-1.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2e46d80b4bfad8beb1dcb7e31b86bf9c6094d5db GIT binary patch literal 8378 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 GGye;Jx?(8+ literal 0 HcmV?d00001 diff --git a/.config/ranger/plugins/ranger_devicons/devicons.py b/.config/ranger/plugins/ranger_devicons/devicons.py new file mode 100644 index 0000000..ba67667 --- /dev/null +++ b/.config/ranger/plugins/ranger_devicons/devicons.py @@ -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, '')) diff --git a/.config/ranger/rc.conf b/.config/ranger/rc.conf new file mode 100644 index 0000000..103fc56 --- /dev/null +++ b/.config/ranger/rc.conf @@ -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 diff --git a/.config/shell/aliasrc b/.config/shell/aliasrc new file mode 100644 index 0000000..0458438 --- /dev/null +++ b/.config/shell/aliasrc @@ -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 % ;} diff --git a/.config/shell/profile b/.config/shell/profile new file mode 100644 index 0000000..bee277a --- /dev/null +++ b/.config/shell/profile @@ -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 + diff --git a/.config/sxhkd/sxhkdrc b/.config/sxhkd/sxhkdrc new file mode 100755 index 0000000..ca4dc11 --- /dev/null +++ b/.config/sxhkd/sxhkdrc @@ -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) diff --git a/.config/sxiv/exec/key-handler b/.config/sxiv/exec/key-handler new file mode 100755 index 0000000..303ea63 --- /dev/null +++ b/.config/sxiv/exec/key-handler @@ -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 diff --git a/.config/user-dirs.dirs b/.config/user-dirs.dirs new file mode 100644 index 0000000..b530e7e --- /dev/null +++ b/.config/user-dirs.dirs @@ -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" diff --git a/.config/wal/templates/dunstrc b/.config/wal/templates/dunstrc new file mode 100644 index 0000000..2bcddd4 --- /dev/null +++ b/.config/wal/templates/dunstrc @@ -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 = "%s\n%b" + + # Allow some HTML tags like and 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 diff --git a/.config/x11/xinitrc b/.config/x11/xinitrc new file mode 100644 index 0000000..4d3d62f --- /dev/null +++ b/.config/x11/xinitrc @@ -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 diff --git a/.config/zathura/zathurarc b/.config/zathura/zathurarc new file mode 100755 index 0000000..115489a --- /dev/null +++ b/.config/zathura/zathurarc @@ -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 */ diff --git a/.config/zsh/.zshrc b/.config/zsh/.zshrc new file mode 100644 index 0000000..016aae1 --- /dev/null +++ b/.config/zsh/.zshrc @@ -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 diff --git a/.local/bin/colorpicker b/.local/bin/colorpicker new file mode 100755 index 0000000000000000000000000000000000000000..ab19d07455004131568596de9fd4087647df4c97 GIT binary patch literal 23168 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 literal 0 HcmV?d00001 diff --git a/.local/bin/connect_wifi b/.local/bin/connect_wifi new file mode 100755 index 0000000..3b4d5f8 --- /dev/null +++ b/.local/bin/connect_wifi @@ -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 diff --git a/.local/bin/dmenumount b/.local/bin/dmenumount new file mode 100755 index 0000000..b414dc8 --- /dev/null +++ b/.local/bin/dmenumount @@ -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 \ No newline at end of file diff --git a/.local/bin/ext b/.local/bin/ext new file mode 100755 index 0000000..9810c83 --- /dev/null +++ b/.local/bin/ext @@ -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 \ No newline at end of file diff --git a/.local/bin/genwall b/.local/bin/genwall new file mode 100755 index 0000000..ccbe75e --- /dev/null +++ b/.local/bin/genwall @@ -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 diff --git a/.local/bin/linkhandler b/.local/bin/linkhandler new file mode 100755 index 0000000..fa74caf --- /dev/null +++ b/.local/bin/linkhandler @@ -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 diff --git a/.local/bin/maimshot b/.local/bin/maimshot new file mode 100755 index 0000000..10335f6 --- /dev/null +++ b/.local/bin/maimshot @@ -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 diff --git a/.local/bin/newword b/.local/bin/newword new file mode 100755 index 0000000..dc44076 --- /dev/null +++ b/.local/bin/newword @@ -0,0 +1,6 @@ +#!/bin/sh + +word=$(dmenu -p "Enter Word: " <&-) +mean=$(dmenu -p "Enter Meaning: " <&-) + +echo "$word -> $mean" >> ~/.local/share/vocab/words.txt \ No newline at end of file diff --git a/.local/bin/setwall b/.local/bin/setwall new file mode 100755 index 0000000..35b5f06 --- /dev/null +++ b/.local/bin/setwall @@ -0,0 +1,5 @@ +#!/bin/sh +xwallpaper --zoom ~/.local/share/bg.jpg +wal -c +wal -i ~/.local/share/bg.jpg +xdotool key super+F5 diff --git a/.local/bin/spammer b/.local/bin/spammer new file mode 100755 index 0000000..c23a81c --- /dev/null +++ b/.local/bin/spammer @@ -0,0 +1,9 @@ +#!/bin/sh + +i=0 + +while [ $i -le 100 ] +do + xdotool type "$1" ;xdotool key KP_Enter; sleep 1 ; + +done diff --git a/.local/bin/spot-adblock b/.local/bin/spot-adblock new file mode 100755 index 0000000..c68a75c --- /dev/null +++ b/.local/bin/spot-adblock @@ -0,0 +1,2 @@ +#!/bin/sh +LD_PRELOAD=/usr/local/lib/spotify-adblock.so spotify diff --git a/.local/bin/transadd b/.local/bin/transadd new file mode 100755 index 0000000..ffa31fb --- /dev/null +++ b/.local/bin/transadd @@ -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." diff --git a/.local/bin/ufetch b/.local/bin/ufetch new file mode 100755 index 0000000..eb29af3 --- /dev/null +++ b/.local/bin/ufetch @@ -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 <> "${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. diff --git a/.local/bin/waldl b/.local/bin/waldl new file mode 100755 index 0000000..1957354 --- /dev/null +++ b/.local/bin/waldl @@ -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 +# 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) diff --git a/.local/bin/wordmean b/.local/bin/wordmean new file mode 100755 index 0000000..e8f5f4e --- /dev/null +++ b/.local/bin/wordmean @@ -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" + diff --git a/.local/share/applications/file.desktop b/.local/share/applications/file.desktop new file mode 100644 index 0000000..a8e458b --- /dev/null +++ b/.local/share/applications/file.desktop @@ -0,0 +1,4 @@ +[Desktop Entry] +Type=Application +Name=File Manager +Exec=/usr/local/bin/st -e fm %u diff --git a/.local/share/applications/img.desktop b/.local/share/applications/img.desktop new file mode 100644 index 0000000..42aa81e --- /dev/null +++ b/.local/share/applications/img.desktop @@ -0,0 +1,4 @@ +[Desktop Entry] +Type=Application +Name=Image viewer +Exec=/usr/bin/sxiv -a %f diff --git a/.local/share/applications/pdf.desktop b/.local/share/applications/pdf.desktop new file mode 100644 index 0000000..8c38677 --- /dev/null +++ b/.local/share/applications/pdf.desktop @@ -0,0 +1,4 @@ +[Desktop Entry] +Type=Application +Name=PDF reader +Exec=/usr/bin/zathura %u diff --git a/.local/share/applications/rss.desktop b/.local/share/applications/rss.desktop new file mode 100644 index 0000000..6fafc4f --- /dev/null +++ b/.local/share/applications/rss.desktop @@ -0,0 +1,4 @@ +[Desktop Entry] +Type=Application +Name=RSS feed addition +Exec=/usr/bin/env rssadd %U diff --git a/.local/share/applications/text.desktop b/.local/share/applications/text.desktop new file mode 100644 index 0000000..41ee05f --- /dev/null +++ b/.local/share/applications/text.desktop @@ -0,0 +1,4 @@ +[Desktop Entry] +Type=Application +Name=Text editor +Exec=/usr/local/bin/st -e nvim %u diff --git a/.local/share/applications/torrent.desktop b/.local/share/applications/torrent.desktop new file mode 100644 index 0000000..f6d28d9 --- /dev/null +++ b/.local/share/applications/torrent.desktop @@ -0,0 +1,4 @@ +[Desktop Entry] +Type=Application +Name=Torrent +Exec=/usr/bin/env transadd %U diff --git a/.local/share/applications/trilium-notes.desktop b/.local/share/applications/trilium-notes.desktop new file mode 100644 index 0000000..0cca26d --- /dev/null +++ b/.local/share/applications/trilium-notes.desktop @@ -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 diff --git a/.local/share/emoji b/.local/share/emoji new file mode 100644 index 0000000..6803731 --- /dev/null +++ b/.local/share/emoji @@ -0,0 +1,1630 @@ +😀 grinning face +😃 grinning face with big eyes +😄 grinning face with smiling eyes +😁 beaming face with smiling eyes +😆 grinning squinting face +😅 grinning face with sweat +🤣 rolling on the floor laughing +😂 face with tears of joy +🙂 slightly smiling face +🙃 upside-down face +🫠 melting face +😉 winking face +😊 smiling face with smiling eyes +😇 smiling face with halo +🥰 smiling face with hearts +😍 smiling face with heart-eyes +🤩 star-struck +😘 face blowing a kiss +😗 kissing face +☺️ smiling face +😚 kissing face with closed eyes +😙 kissing face with smiling eyes +🥲 smiling face with tear +😋 face savoring food +😛 face with tongue +😜 winking face with tongue +🤪 zany face +😝 squinting face with tongue +🤑 money-mouth face +🤗 smiling face with open hands +🤭 face with hand over mouth +🫢 face with open eyes and hand over mouth +🫣 face with peeking eye +🤫 shushing face +🤔 thinking face +🫡 saluting face +🤐 zipper-mouth face +🤨 face with raised eyebrow +😐 neutral face +😑 expressionless face +😶 face without mouth +🫥 dotted line face +😏 smirking face +😒 unamused face +🙄 face with rolling eyes +😬 grimacing face +🤥 lying face +😌 relieved face +😔 pensive face +😪 sleepy face +🤤 drooling face +😴 sleeping face +😷 face with medical mask +🤒 face with thermometer +🤕 face with head-bandage +🤢 nauseated face +🤮 face vomiting +🤧 sneezing face +🥵 hot face +🥶 cold face +🥴 woozy face +😵 face with crossed-out eyes +🤯 exploding head +🤠 cowboy hat face +🥳 partying face +🥸 disguised face +😎 smiling face with sunglasses +🤓 nerd face +🧐 face with monocle +😕 confused face +🫤 face with diagonal mouth +😟 worried face +🙁 slightly frowning face +☹️ frowning face +😮 face with open mouth +😯 hushed face +😲 astonished face +😳 flushed face +🥺 pleading face +🥹 face holding back tears +😦 frowning face with open mouth +😧 anguished face +😨 fearful face +😰 anxious face with sweat +😥 sad but relieved face +😢 crying face +😭 loudly crying face +😱 face screaming in fear +😖 confounded face +😣 persevering face +😞 disappointed face +😓 downcast face with sweat +😩 weary face +😫 tired face +🥱 yawning face +😤 face with steam from nose +😡 pouting face +😠 angry face +🤬 face with symbols on mouth +😈 smiling face with horns +👿 angry face with horns +💀 skull +☠️ skull and crossbones +💩 pile of poo +🤡 clown face +👹 ogre +👺 goblin +👻 ghost +👽 alien +👾 alien monster +🤖 robot +😺 grinning cat +😸 grinning cat with smiling eyes +😹 cat with tears of joy +😻 smiling cat with heart-eyes +😼 cat with wry smile +😽 kissing cat +🙀 weary cat +😿 crying cat +😾 pouting cat +🙈 see-no-evil monkey +🙉 hear-no-evil monkey +🙊 speak-no-evil monkey +💋 kiss mark +💌 love letter +💘 heart with arrow +💝 heart with ribbon +💖 sparkling heart +💗 growing heart +💓 beating heart +💞 revolving hearts +💕 two hearts +💟 heart decoration +❣️ heart exclamation +💔 broken heart +❤️ red heart +🧡 orange heart +💛 yellow heart +💚 green heart +💙 blue heart +💜 purple heart +🤎 brown heart +🖤 black heart +🤍 white heart +💯 hundred points +💢 anger symbol +💥 collision +💫 dizzy +💦 sweat droplets +💨 dashing away +🕳️ hole +💣 bomb +💬 speech balloon +🗨️ left speech bubble +🗯️ right anger bubble +💭 thought balloon +💤 zzz +👋 waving hand +🤚 raised back of hand +🖐️ hand with fingers splayed +✋ raised hand +🖖 vulcan salute +🫱 rightwards hand +🫲 leftwards hand +🫳 palm down hand +🫴 palm up hand +👌 OK hand +🤌 pinched fingers +🤏 pinching hand +✌️ victory hand +🤞 crossed fingers +🫰 hand with index finger and thumb crossed +🤟 love-you gesture +🤘 sign of the horns +🤙 call me hand +👈 backhand index pointing left +👉 backhand index pointing right +👆 backhand index pointing up +🖕 middle finger +👇 backhand index pointing down +☝️ index pointing up +🫵 index pointing at the viewer +👍 thumbs up +👎 thumbs down +✊ raised fist +👊 oncoming fist +🤛 left-facing fist +🤜 right-facing fist +👏 clapping hands +🙌 raising hands +🫶 heart hands +👐 open hands +🤲 palms up together +🤝 handshake +🙏 folded hands +✍️ writing hand +💅 nail polish +🤳 selfie +💪 flexed biceps +🦾 mechanical arm +🦿 mechanical leg +🦵 leg +🦶 foot +👂 ear +🦻 ear with hearing aid +👃 nose +🧠 brain +🫀 anatomical heart +🫁 lungs +🦷 tooth +🦴 bone +👀 eyes +👁️ eye +👅 tongue +👄 mouth +🫦 biting lip +👶 baby +🧒 child +👦 boy +👧 girl +🧑 person +👱 person: blond hair +👨 man +🧔 person: beard +👩 woman +🧓 older person +👴 old man +👵 old woman +🙍 person frowning +🙎 person pouting +🙅 person gesturing NO +🙆 person gesturing OK +💁 person tipping hand +🙋 person raising hand +🧏 deaf person +🙇 person bowing +🤦 person facepalming +🤷 person shrugging +👮 police officer +🕵️ detective +💂 guard +🥷 ninja +👷 construction worker +🫅 person with crown +🤴 prince +👸 princess +👳 person wearing turban +👲 person with skullcap +🧕 woman with headscarf +🤵 person in tuxedo +👰 person with veil +🤰 pregnant woman +🫃 pregnant man +🫄 pregnant person +🤱 breast-feeding +👼 baby angel +🎅 Santa Claus +🤶 Mrs. Claus +🦸 superhero +🦹 supervillain +🧙 mage +🧚 fairy +🧛 vampire +🧜 merperson +🧝 elf +🧞 genie +🧟 zombie +🧌 troll +💆 person getting massage +💇 person getting haircut +🚶 person walking +🧍 person standing +🧎 person kneeling +🏃 person running +💃 woman dancing +🕺 man dancing +🕴️ person in suit levitating +👯 people with bunny ears +🧖 person in steamy room +🧗 person climbing +🤺 person fencing +🏇 horse racing +⛷️ skier +🏂 snowboarder +🏌️ person golfing +🏄 person surfing +🚣 person rowing boat +🏊 person swimming +⛹️ person bouncing ball +🏋️ person lifting weights +🚴 person biking +🚵 person mountain biking +🤸 person cartwheeling +🤼 people wrestling +🤽 person playing water polo +🤾 person playing handball +🤹 person juggling +🧘 person in lotus position +🛀 person taking bath +🛌 person in bed +👭 women holding hands +👫 woman and man holding hands +👬 men holding hands +💏 kiss +💑 couple with heart +👪 family +🗣️ speaking head +👤 bust in silhouette +👥 busts in silhouette +🫂 people hugging +👣 footprints +🐵 monkey face +🐒 monkey +🦍 gorilla +🦧 orangutan +🐶 dog face +🐕 dog +🦮 guide dog +🐩 poodle +🐺 wolf +🦊 fox +🦝 raccoon +🐱 cat face +🐈 cat +🦁 lion +🐯 tiger face +🐅 tiger +🐆 leopard +🐴 horse face +🐎 horse +🦄 unicorn +🦓 zebra +🦌 deer +🦬 bison +🐮 cow face +🐂 ox +🐃 water buffalo +🐄 cow +🐷 pig face +🐖 pig +🐗 boar +🐽 pig nose +🐏 ram +🐑 ewe +🐐 goat +🐪 camel +🐫 two-hump camel +🦙 llama +🦒 giraffe +🐘 elephant +🦣 mammoth +🦏 rhinoceros +🦛 hippopotamus +🐭 mouse face +🐁 mouse +🐀 rat +🐹 hamster +🐰 rabbit face +🐇 rabbit +🐿️ chipmunk +🦫 beaver +🦔 hedgehog +🦇 bat +🐻 bear +🐨 koala +🐼 panda +🦥 sloth +🦦 otter +🦨 skunk +🦘 kangaroo +🦡 badger +🐾 paw prints +🦃 turkey +🐔 chicken +🐓 rooster +🐣 hatching chick +🐤 baby chick +🐥 front-facing baby chick +🐦 bird +🐧 penguin +🕊️ dove +🦅 eagle +🦆 duck +🦢 swan +🦉 owl +🦤 dodo +🪶 feather +🦩 flamingo +🦚 peacock +🦜 parrot +🐸 frog +🐊 crocodile +🐢 turtle +🦎 lizard +🐍 snake +🐲 dragon face +🐉 dragon +🦕 sauropod +🦖 T-Rex +🐳 spouting whale +🐋 whale +🐬 dolphin +🦭 seal +🐟 fish +🐠 tropical fish +🐡 blowfish +🦈 shark +🐙 octopus +🐚 spiral shell +🪸 coral +🐌 snail +🦋 butterfly +🐛 bug +🐜 ant +🐝 honeybee +🪲 beetle +🐞 lady beetle +🦗 cricket +🪳 cockroach +🕷️ spider +🕸️ spider web +🦂 scorpion +🦟 mosquito +🪰 fly +🪱 worm +🦠 microbe +💐 bouquet +🌸 cherry blossom +💮 white flower +🪷 lotus +🏵️ rosette +🌹 rose +🥀 wilted flower +🌺 hibiscus +🌻 sunflower +🌼 blossom +🌷 tulip +🌱 seedling +🪴 potted plant +🌲 evergreen tree +🌳 deciduous tree +🌴 palm tree +🌵 cactus +🌾 sheaf of rice +🌿 herb +☘️ shamrock +🍀 four leaf clover +🍁 maple leaf +🍂 fallen leaf +🍃 leaf fluttering in wind +🪹 empty nest +🪺 nest with eggs +🍇 grapes +🍈 melon +🍉 watermelon +🍊 tangerine +🍋 lemon +🍌 banana +🍍 pineapple +🥭 mango +🍎 red apple +🍏 green apple +🍐 pear +🍑 peach +🍒 cherries +🍓 strawberry +🫐 blueberries +🥝 kiwi fruit +🍅 tomato +🫒 olive +🥥 coconut +🥑 avocado +🍆 eggplant +🥔 potato +🥕 carrot +🌽 ear of corn +🌶️ hot pepper +🫑 bell pepper +🥒 cucumber +🥬 leafy green +🥦 broccoli +🧄 garlic +🧅 onion +🍄 mushroom +🥜 peanuts +🫘 beans +🌰 chestnut +🍞 bread +🥐 croissant +🥖 baguette bread +🫓 flatbread +🥨 pretzel +🥯 bagel +🥞 pancakes +🧇 waffle +🧀 cheese wedge +🍖 meat on bone +🍗 poultry leg +🥩 cut of meat +🥓 bacon +🍔 hamburger +🍟 french fries +🍕 pizza +🌭 hot dog +🥪 sandwich +🌮 taco +🌯 burrito +🫔 tamale +🥙 stuffed flatbread +🧆 falafel +🥚 egg +🍳 cooking +🥘 shallow pan of food +🍲 pot of food +🫕 fondue +🥣 bowl with spoon +🥗 green salad +🍿 popcorn +🧈 butter +🧂 salt +🥫 canned food +🍱 bento box +🍘 rice cracker +🍙 rice ball +🍚 cooked rice +🍛 curry rice +🍜 steaming bowl +🍝 spaghetti +🍠 roasted sweet potato +🍢 oden +🍣 sushi +🍤 fried shrimp +🍥 fish cake with swirl +🥮 moon cake +🍡 dango +🥟 dumpling +🥠 fortune cookie +🥡 takeout box +🦀 crab +🦞 lobster +🦐 shrimp +🦑 squid +🦪 oyster +🍦 soft ice cream +🍧 shaved ice +🍨 ice cream +🍩 doughnut +🍪 cookie +🎂 birthday cake +🍰 shortcake +🧁 cupcake +🥧 pie +🍫 chocolate bar +🍬 candy +🍭 lollipop +🍮 custard +🍯 honey pot +🍼 baby bottle +🥛 glass of milk +☕ hot beverage +🫖 teapot +🍵 teacup without handle +🍶 sake +🍾 bottle with popping cork +🍷 wine glass +🍸 cocktail glass +🍹 tropical drink +🍺 beer mug +🍻 clinking beer mugs +🥂 clinking glasses +🥃 tumbler glass +🫗 pouring liquid +🥤 cup with straw +🧋 bubble tea +🧃 beverage box +🧉 mate +🧊 ice +🥢 chopsticks +🍽️ fork and knife with plate +🍴 fork and knife +🥄 spoon +🔪 kitchen knife +🫙 jar +🏺 amphora +🌍 globe showing Europe-Africa +🌎 globe showing Americas +🌏 globe showing Asia-Australia +🌐 globe with meridians +🗺️ world map +🗾 map of Japan +🧭 compass +🏔️ snow-capped mountain +⛰️ mountain +🌋 volcano +🗻 mount fuji +🏕️ camping +🏖️ beach with umbrella +🏜️ desert +🏝️ desert island +🏞️ national park +🏟️ stadium +🏛️ classical building +🏗️ building construction +🧱 brick +🪨 rock +🪵 wood +🛖 hut +🏘️ houses +🏚️ derelict house +🏠 house +🏡 house with garden +🏢 office building +🏣 Japanese post office +🏤 post office +🏥 hospital +🏦 bank +🏨 hotel +🏩 love hotel +🏪 convenience store +🏫 school +🏬 department store +🏭 factory +🏯 Japanese castle +🏰 castle +💒 wedding +🗼 Tokyo tower +🗽 Statue of Liberty +⛪ church +🕌 mosque +🛕 hindu temple +🕍 synagogue +⛩️ shinto shrine +🕋 kaaba +⛲ fountain +⛺ tent +🌁 foggy +🌃 night with stars +🏙️ cityscape +🌄 sunrise over mountains +🌅 sunrise +🌆 cityscape at dusk +🌇 sunset +🌉 bridge at night +♨️ hot springs +🎠 carousel horse +🛝 playground slide +🎡 ferris wheel +🎢 roller coaster +💈 barber pole +🎪 circus tent +🚂 locomotive +🚃 railway car +🚄 high-speed train +🚅 bullet train +🚆 train +🚇 metro +🚈 light rail +🚉 station +🚊 tram +🚝 monorail +🚞 mountain railway +🚋 tram car +🚌 bus +🚍 oncoming bus +🚎 trolleybus +🚐 minibus +🚑 ambulance +🚒 fire engine +🚓 police car +🚔 oncoming police car +🚕 taxi +🚖 oncoming taxi +🚗 automobile +🚘 oncoming automobile +🚙 sport utility vehicle +🛻 pickup truck +🚚 delivery truck +🚛 articulated lorry +🚜 tractor +🏎️ racing car +🏍️ motorcycle +🛵 motor scooter +🦽 manual wheelchair +🦼 motorized wheelchair +🛺 auto rickshaw +🚲 bicycle +🛴 kick scooter +🛹 skateboard +🛼 roller skate +🚏 bus stop +🛣️ motorway +🛤️ railway track +🛢️ oil drum +⛽ fuel pump +🛞 wheel +🚨 police car light +🚥 horizontal traffic light +🚦 vertical traffic light +🛑 stop sign +🚧 construction +⚓ anchor +🛟 ring buoy +⛵ sailboat +🛶 canoe +🚤 speedboat +🛳️ passenger ship +⛴️ ferry +🛥️ motor boat +🚢 ship +✈️ airplane +🛩️ small airplane +🛫 airplane departure +🛬 airplane arrival +🪂 parachute +💺 seat +🚁 helicopter +🚟 suspension railway +🚠 mountain cableway +🚡 aerial tramway +🛰️ satellite +🚀 rocket +🛸 flying saucer +🛎️ bellhop bell +🧳 luggage +⌛ hourglass done +⏳ hourglass not done +⌚ watch +⏰ alarm clock +⏱️ stopwatch +⏲️ timer clock +🕰️ mantelpiece clock +🕛 twelve o’clock +🕧 twelve-thirty +🕐 one o’clock +🕜 one-thirty +🕑 two o’clock +🕝 two-thirty +🕒 three o’clock +🕞 three-thirty +🕓 four o’clock +🕟 four-thirty +🕔 five o’clock +🕠 five-thirty +🕕 six o’clock +🕡 six-thirty +🕖 seven o’clock +🕢 seven-thirty +🕗 eight o’clock +🕣 eight-thirty +🕘 nine o’clock +🕤 nine-thirty +🕙 ten o’clock +🕥 ten-thirty +🕚 eleven o’clock +🕦 eleven-thirty +🌑 new moon +🌒 waxing crescent moon +🌓 first quarter moon +🌔 waxing gibbous moon +🌕 full moon +🌖 waning gibbous moon +🌗 last quarter moon +🌘 waning crescent moon +🌙 crescent moon +🌚 new moon face +🌛 first quarter moon face +🌜 last quarter moon face +🌡️ thermometer +☀️ sun +🌝 full moon face +🌞 sun with face +🪐 ringed planet +⭐ star +🌟 glowing star +🌠 shooting star +🌌 milky way +☁️ cloud +⛅ sun behind cloud +⛈️ cloud with lightning and rain +🌤️ sun behind small cloud +🌥️ sun behind large cloud +🌦️ sun behind rain cloud +🌧️ cloud with rain +🌨️ cloud with snow +🌩️ cloud with lightning +🌪️ tornado +🌫️ fog +🌬️ wind face +🌀 cyclone +🌈 rainbow +🌂 closed umbrella +☂️ umbrella +☔ umbrella with rain drops +⛱️ umbrella on ground +⚡ high voltage +❄️ snowflake +☃️ snowman +⛄ snowman without snow +☄️ comet +🔥 fire +💧 droplet +🌊 water wave +🎃 jack-o-lantern +🎄 Christmas tree +🎆 fireworks +🎇 sparkler +🧨 firecracker +✨ sparkles +🎈 balloon +🎉 party popper +🎊 confetti ball +🎋 tanabata tree +🎍 pine decoration +🎎 Japanese dolls +🎏 carp streamer +🎐 wind chime +🎑 moon viewing ceremony +🧧 red envelope +🎀 ribbon +🎁 wrapped gift +🎗️ reminder ribbon +🎟️ admission tickets +🎫 ticket +🎖️ military medal +🏆 trophy +🏅 sports medal +🥇 1st place medal +🥈 2nd place medal +🥉 3rd place medal +⚽ soccer ball +⚾ baseball +🥎 softball +🏀 basketball +🏐 volleyball +🏈 american football +🏉 rugby football +🎾 tennis +🥏 flying disc +🎳 bowling +🏏 cricket game +🏑 field hockey +🏒 ice hockey +🥍 lacrosse +🏓 ping pong +🏸 badminton +🥊 boxing glove +🥋 martial arts uniform +🥅 goal net +⛳ flag in hole +⛸️ ice skate +🎣 fishing pole +🤿 diving mask +🎽 running shirt +🎿 skis +🛷 sled +🥌 curling stone +🎯 bullseye +🪀 yo-yo +🪁 kite +🎱 pool 8 ball +🔮 crystal ball +🪄 magic wand +🧿 nazar amulet +🪬 hamsa +🎮 video game +🕹️ joystick +🎰 slot machine +🎲 game die +🧩 puzzle piece +🧸 teddy bear +🪅 piñata +🪩 mirror ball +🪆 nesting dolls +♠️ spade suit +♥️ heart suit +♦️ diamond suit +♣️ club suit +♟️ chess pawn +🃏 joker +🀄 mahjong red dragon +🎴 flower playing cards +🎭 performing arts +🖼️ framed picture +🎨 artist palette +🧵 thread +🪡 sewing needle +🧶 yarn +🪢 knot +👓 glasses +🕶️ sunglasses +🥽 goggles +🥼 lab coat +🦺 safety vest +👔 necktie +👕 t-shirt +👖 jeans +🧣 scarf +🧤 gloves +🧥 coat +🧦 socks +👗 dress +👘 kimono +🥻 sari +🩱 one-piece swimsuit +🩲 briefs +🩳 shorts +👙 bikini +👚 woman’s clothes +👛 purse +👜 handbag +👝 clutch bag +🛍️ shopping bags +🎒 backpack +🩴 thong sandal +👞 man’s shoe +👟 running shoe +🥾 hiking boot +🥿 flat shoe +👠 high-heeled shoe +👡 woman’s sandal +🩰 ballet shoes +👢 woman’s boot +👑 crown +👒 woman’s hat +🎩 top hat +🎓 graduation cap +🧢 billed cap +🪖 military helmet +⛑️ rescue worker’s helmet +📿 prayer beads +💄 lipstick +💍 ring +💎 gem stone +🔇 muted speaker +🔈 speaker low volume +🔉 speaker medium volume +🔊 speaker high volume +📢 loudspeaker +📣 megaphone +📯 postal horn +🔔 bell +🔕 bell with slash +🎼 musical score +🎵 musical note +🎶 musical notes +🎙️ studio microphone +🎚️ level slider +🎛️ control knobs +🎤 microphone +🎧 headphone +📻 radio +🎷 saxophone +🪗 accordion +🎸 guitar +🎹 musical keyboard +🎺 trumpet +🎻 violin +🪕 banjo +🥁 drum +🪘 long drum +📱 mobile phone +📲 mobile phone with arrow +☎️ telephone +📞 telephone receiver +📟 pager +📠 fax machine +🔋 battery +🪫 low battery +🔌 electric plug +💻 laptop +🖥️ desktop computer +🖨️ printer +⌨️ keyboard +🖱️ computer mouse +🖲️ trackball +💽 computer disk +💾 floppy disk +💿 optical disk +📀 dvd +🧮 abacus +🎥 movie camera +🎞️ film frames +📽️ film projector +🎬 clapper board +📺 television +📷 camera +📸 camera with flash +📹 video camera +📼 videocassette +🔍 magnifying glass tilted left +🔎 magnifying glass tilted right +🕯️ candle +💡 light bulb +🔦 flashlight +🏮 red paper lantern +🪔 diya lamp +📔 notebook with decorative cover +📕 closed book +📖 open book +📗 green book +📘 blue book +📙 orange book +📚 books +📓 notebook +📒 ledger +📃 page with curl +📜 scroll +📄 page facing up +📰 newspaper +🗞️ rolled-up newspaper +📑 bookmark tabs +🔖 bookmark +🏷️ label +💰 money bag +🪙 coin +💴 yen banknote +💵 dollar banknote +💶 euro banknote +💷 pound banknote +💸 money with wings +💳 credit card +🧾 receipt +💹 chart increasing with yen +✉️ envelope +📧 e-mail +📨 incoming envelope +📩 envelope with arrow +📤 outbox tray +📥 inbox tray +📦 package +📫 closed mailbox with raised flag +📪 closed mailbox with lowered flag +📬 open mailbox with raised flag +📭 open mailbox with lowered flag +📮 postbox +🗳️ ballot box with ballot +✏️ pencil +✒️ black nib +🖋️ fountain pen +🖊️ pen +🖌️ paintbrush +🖍️ crayon +📝 memo +💼 briefcase +📁 file folder +📂 open file folder +🗂️ card index dividers +📅 calendar +📆 tear-off calendar +🗒️ spiral notepad +🗓️ spiral calendar +📇 card index +📈 chart increasing +📉 chart decreasing +📊 bar chart +📋 clipboard +📌 pushpin +📍 round pushpin +📎 paperclip +🖇️ linked paperclips +📏 straight ruler +📐 triangular ruler +✂️ scissors +🗃️ card file box +🗄️ file cabinet +🗑️ wastebasket +🔒 locked +🔓 unlocked +🔏 locked with pen +🔐 locked with key +🔑 key +🗝️ old key +🔨 hammer +🪓 axe +⛏️ pick +⚒️ hammer and pick +🛠️ hammer and wrench +🗡️ dagger +⚔️ crossed swords +🔫 water pistol +🪃 boomerang +🏹 bow and arrow +🛡️ shield +🪚 carpentry saw +🔧 wrench +🪛 screwdriver +🔩 nut and bolt +⚙️ gear +🗜️ clamp +⚖️ balance scale +🦯 white cane +🔗 link +⛓️ chains +🪝 hook +🧰 toolbox +🧲 magnet +🪜 ladder +⚗️ alembic +🧪 test tube +🧫 petri dish +🧬 dna +🔬 microscope +🔭 telescope +📡 satellite antenna +💉 syringe +🩸 drop of blood +💊 pill +🩹 adhesive bandage +🩼 crutch +🩺 stethoscope +🩻 x-ray +🚪 door +🛗 elevator +🪞 mirror +🪟 window +🛏️ bed +🛋️ couch and lamp +🪑 chair +🚽 toilet +🪠 plunger +🚿 shower +🛁 bathtub +🪤 mouse trap +🪒 razor +🧴 lotion bottle +🧷 safety pin +🧹 broom +🧺 basket +🧻 roll of paper +🪣 bucket +🧼 soap +🫧 bubbles +🪥 toothbrush +🧽 sponge +🧯 fire extinguisher +🛒 shopping cart +🚬 cigarette +⚰️ coffin +🪦 headstone +⚱️ funeral urn +🗿 moai +🪧 placard +🪪 identification card +🏧 ATM sign +🚮 litter in bin sign +🚰 potable water +♿ wheelchair symbol +🚹 men’s room +🚺 women’s room +🚻 restroom +🚼 baby symbol +🚾 water closet +🛂 passport control +🛃 customs +🛄 baggage claim +🛅 left luggage +⚠️ warning +🚸 children crossing +⛔ no entry +🚫 prohibited +🚳 no bicycles +🚭 no smoking +🚯 no littering +🚱 non-potable water +🚷 no pedestrians +📵 no mobile phones +🔞 no one under eighteen +☢️ radioactive +☣️ biohazard +⬆️ up arrow +↗️ up-right arrow +➡️ right arrow +↘️ down-right arrow +⬇️ down arrow +↙️ down-left arrow +⬅️ left arrow +↖️ up-left arrow +↕️ up-down arrow +↔️ left-right arrow +↩️ right arrow curving left +↪️ left arrow curving right +⤴️ right arrow curving up +⤵️ right arrow curving down +🔃 clockwise vertical arrows +🔄 counterclockwise arrows button +🔙 BACK arrow +🔚 END arrow +🔛 ON! arrow +🔜 SOON arrow +🔝 TOP arrow +🛐 place of worship +⚛️ atom symbol +🕉️ om +✡️ star of David +☸️ wheel of dharma +☯️ yin yang +✝️ latin cross +☦️ orthodox cross +☪️ star and crescent +☮️ peace symbol +🕎 menorah +🔯 dotted six-pointed star +♈ Aries +♉ Taurus +♊ Gemini +♋ Cancer +♌ Leo +♍ Virgo +♎ Libra +♏ Scorpio +♐ Sagittarius +♑ Capricorn +♒ Aquarius +♓ Pisces +⛎ Ophiuchus +🔀 shuffle tracks button +🔁 repeat button +🔂 repeat single button +▶️ play button +⏩ fast-forward button +⏭️ next track button +⏯️ play or pause button +◀️ reverse button +⏪ fast reverse button +⏮️ last track button +🔼 upwards button +⏫ fast up button +🔽 downwards button +⏬ fast down button +⏸️ pause button +⏹️ stop button +⏺️ record button +⏏️ eject button +🎦 cinema +🔅 dim button +🔆 bright button +📶 antenna bars +📳 vibration mode +📴 mobile phone off +♀️ female sign +♂️ male sign +⚧️ transgender symbol +✖️ multiply +➕ plus +➖ minus +➗ divide +🟰 heavy equals sign +♾️ infinity +‼️ double exclamation mark +⁉️ exclamation question mark +❓ red question mark +❔ white question mark +❕ white exclamation mark +❗ red exclamation mark +〰️ wavy dash +💱 currency exchange +💲 heavy dollar sign +⚕️ medical symbol +♻️ recycling symbol +⚜️ fleur-de-lis +🔱 trident emblem +📛 name badge +🔰 Japanese symbol for beginner +⭕ hollow red circle +✅ check mark button +☑️ check box with check +✔️ check mark +❌ cross mark +❎ cross mark button +➰ curly loop +➿ double curly loop +〽️ part alternation mark +✳️ eight-spoked asterisk +✴️ eight-pointed star +❇️ sparkle +©️ copyright +®️ registered +™️ trade mark +#️⃣ keycap: # +*️⃣ keycap: * +0️⃣ keycap: 0 +1️⃣ keycap: 1 +2️⃣ keycap: 2 +3️⃣ keycap: 3 +4️⃣ keycap: 4 +5️⃣ keycap: 5 +6️⃣ keycap: 6 +7️⃣ keycap: 7 +8️⃣ keycap: 8 +9️⃣ keycap: 9 +🔟 keycap: 10 +🔠 input latin uppercase +🔡 input latin lowercase +🔢 input numbers +🔣 input symbols +🔤 input latin letters +🅰️ A button (blood type) +🆎 AB button (blood type) +🅱️ B button (blood type) +🆑 CL button +🆒 COOL button +🆓 FREE button +ℹ️ information +🆔 ID button +Ⓜ️ circled M +🆕 NEW button +🆖 NG button +🅾️ O button (blood type) +🆗 OK button +🅿️ P button +🆘 SOS button +🆙 UP! button +🆚 VS button +🈁 Japanese “here” button +🈂️ Japanese “service charge” button +🈷️ Japanese “monthly amount” button +🈶 Japanese “not free of charge” button +🈯 Japanese “reserved” button +🉐 Japanese “bargain” button +🈹 Japanese “discount” button +🈚 Japanese “free of charge” button +🈲 Japanese “prohibited” button +🉑 Japanese “acceptable” button +🈸 Japanese “application” button +🈴 Japanese “passing grade” button +🈳 Japanese “vacancy” button +㊗️ Japanese “congratulations” button +㊙️ Japanese “secret” button +🈺 Japanese “open for business” button +🈵 Japanese “no vacancy” button +🔴 red circle +🟠 orange circle +🟡 yellow circle +🟢 green circle +🔵 blue circle +🟣 purple circle +🟤 brown circle +⚫ black circle +⚪ white circle +🟥 red square +🟧 orange square +🟨 yellow square +🟩 green square +🟦 blue square +🟪 purple square +🟫 brown square +⬛ black large square +⬜ white large square +◼️ black medium square +◻️ white medium square +◾ black medium-small square +◽ white medium-small square +▪️ black small square +▫️ white small square +🔶 large orange diamond +🔷 large blue diamond +🔸 small orange diamond +🔹 small blue diamond +🔺 red triangle pointed up +🔻 red triangle pointed down +💠 diamond with a dot +🔘 radio button +🔳 white square button +🔲 black square button +🏁 chequered flag +🚩 triangular flag +🎌 crossed flags +🏴 black flag +🏳️ white flag +🇦🇨 flag: Ascension Island +🇦🇩 flag: Andorra +🇦🇪 flag: United Arab Emirates +🇦🇫 flag: Afghanistan +🇦🇬 flag: Antigua & Barbuda +🇦🇮 flag: Anguilla +🇦🇱 flag: Albania +🇦🇲 flag: Armenia +🇦🇴 flag: Angola +🇦🇶 flag: Antarctica +🇦🇷 flag: Argentina +🇦🇸 flag: American Samoa +🇦🇹 flag: Austria +🇦🇺 flag: Australia +🇦🇼 flag: Aruba +🇦🇽 flag: Åland Islands +🇦🇿 flag: Azerbaijan +🇧🇦 flag: Bosnia & Herzegovina +🇧🇧 flag: Barbados +🇧🇩 flag: Bangladesh +🇧🇪 flag: Belgium +🇧🇫 flag: Burkina Faso +🇧🇬 flag: Bulgaria +🇧🇭 flag: Bahrain +🇧🇮 flag: Burundi +🇧🇯 flag: Benin +🇧🇱 flag: St. Barthélemy +🇧🇲 flag: Bermuda +🇧🇳 flag: Brunei +🇧🇴 flag: Bolivia +🇧🇶 flag: Caribbean Netherlands +🇧🇷 flag: Brazil +🇧🇸 flag: Bahamas +🇧🇹 flag: Bhutan +🇧🇻 flag: Bouvet Island +🇧🇼 flag: Botswana +🇧🇾 flag: Belarus +🇧🇿 flag: Belize +🇨🇦 flag: Canada +🇨🇨 flag: Cocos (Keeling) Islands +🇨🇩 flag: Congo - Kinshasa +🇨🇫 flag: Central African Republic +🇨🇬 flag: Congo - Brazzaville +🇨🇭 flag: Switzerland +🇨🇮 flag: Côte d’Ivoire +🇨🇰 flag: Cook Islands +🇨🇱 flag: Chile +🇨🇲 flag: Cameroon +🇨🇳 flag: China +🇨🇴 flag: Colombia +🇨🇵 flag: Clipperton Island +🇨🇷 flag: Costa Rica +🇨🇺 flag: Cuba +🇨🇻 flag: Cape Verde +🇨🇼 flag: Curaçao +🇨🇽 flag: Christmas Island +🇨🇾 flag: Cyprus +🇨🇿 flag: Czechia +🇩🇪 flag: Germany +🇩🇬 flag: Diego Garcia +🇩🇯 flag: Djibouti +🇩🇰 flag: Denmark +🇩🇲 flag: Dominica +🇩🇴 flag: Dominican Republic +🇩🇿 flag: Algeria +🇪🇦 flag: Ceuta & Melilla +🇪🇨 flag: Ecuador +🇪🇪 flag: Estonia +🇪🇬 flag: Egypt +🇪🇭 flag: Western Sahara +🇪🇷 flag: Eritrea +🇪🇸 flag: Spain +🇪🇹 flag: Ethiopia +🇪🇺 flag: European Union +🇫🇮 flag: Finland +🇫🇯 flag: Fiji +🇫🇰 flag: Falkland Islands +🇫🇲 flag: Micronesia +🇫🇴 flag: Faroe Islands +🇫🇷 flag: France +🇬🇦 flag: Gabon +🇬🇧 flag: United Kingdom +🇬🇩 flag: Grenada +🇬🇪 flag: Georgia +🇬🇫 flag: French Guiana +🇬🇬 flag: Guernsey +🇬🇭 flag: Ghana +🇬🇮 flag: Gibraltar +🇬🇱 flag: Greenland +🇬🇲 flag: Gambia +🇬🇳 flag: Guinea +🇬🇵 flag: Guadeloupe +🇬🇶 flag: Equatorial Guinea +🇬🇷 flag: Greece +🇬🇸 flag: South Georgia & South Sandwich Islands +🇬🇹 flag: Guatemala +🇬🇺 flag: Guam +🇬🇼 flag: Guinea-Bissau +🇬🇾 flag: Guyana +🇭🇰 flag: Hong Kong SAR China +🇭🇲 flag: Heard & McDonald Islands +🇭🇳 flag: Honduras +🇭🇷 flag: Croatia +🇭🇹 flag: Haiti +🇭🇺 flag: Hungary +🇮🇨 flag: Canary Islands +🇮🇩 flag: Indonesia +🇮🇪 flag: Ireland +🇮🇱 flag: Israel +🇮🇲 flag: Isle of Man +🇮🇳 flag: India +🇮🇴 flag: British Indian Ocean Territory +🇮🇶 flag: Iraq +🇮🇷 flag: Iran +🇮🇸 flag: Iceland +🇮🇹 flag: Italy +🇯🇪 flag: Jersey +🇯🇲 flag: Jamaica +🇯🇴 flag: Jordan +🇯🇵 flag: Japan +🇰🇪 flag: Kenya +🇰🇬 flag: Kyrgyzstan +🇰🇭 flag: Cambodia +🇰🇮 flag: Kiribati +🇰🇲 flag: Comoros +🇰🇳 flag: St. Kitts & Nevis +🇰🇵 flag: North Korea +🇰🇷 flag: South Korea +🇰🇼 flag: Kuwait +🇰🇾 flag: Cayman Islands +🇰🇿 flag: Kazakhstan +🇱🇦 flag: Laos +🇱🇧 flag: Lebanon +🇱🇨 flag: St. Lucia +🇱🇮 flag: Liechtenstein +🇱🇰 flag: Sri Lanka +🇱🇷 flag: Liberia +🇱🇸 flag: Lesotho +🇱🇹 flag: Lithuania +🇱🇺 flag: Luxembourg +🇱🇻 flag: Latvia +🇱🇾 flag: Libya +🇲🇦 flag: Morocco +🇲🇨 flag: Monaco +🇲🇩 flag: Moldova +🇲🇪 flag: Montenegro +🇲🇫 flag: St. Martin +🇲🇬 flag: Madagascar +🇲🇭 flag: Marshall Islands +🇲🇰 flag: North Macedonia +🇲🇱 flag: Mali +🇲🇲 flag: Myanmar (Burma) +🇲🇳 flag: Mongolia +🇲🇴 flag: Macao SAR China +🇲🇵 flag: Northern Mariana Islands +🇲🇶 flag: Martinique +🇲🇷 flag: Mauritania +🇲🇸 flag: Montserrat +🇲🇹 flag: Malta +🇲🇺 flag: Mauritius +🇲🇻 flag: Maldives +🇲🇼 flag: Malawi +🇲🇽 flag: Mexico +🇲🇾 flag: Malaysia +🇲🇿 flag: Mozambique +🇳🇦 flag: Namibia +🇳🇨 flag: New Caledonia +🇳🇪 flag: Niger +🇳🇫 flag: Norfolk Island +🇳🇬 flag: Nigeria +🇳🇮 flag: Nicaragua +🇳🇱 flag: Netherlands +🇳🇴 flag: Norway +🇳🇵 flag: Nepal +🇳🇷 flag: Nauru +🇳🇺 flag: Niue +🇳🇿 flag: New Zealand +🇴🇲 flag: Oman +🇵🇦 flag: Panama +🇵🇪 flag: Peru +🇵🇫 flag: French Polynesia +🇵🇬 flag: Papua New Guinea +🇵🇭 flag: Philippines +🇵🇰 flag: Pakistan +🇵🇱 flag: Poland +🇵🇲 flag: St. Pierre & Miquelon +🇵🇳 flag: Pitcairn Islands +🇵🇷 flag: Puerto Rico +🇵🇸 flag: Palestinian Territories +🇵🇹 flag: Portugal +🇵🇼 flag: Palau +🇵🇾 flag: Paraguay +🇶🇦 flag: Qatar +🇷🇪 flag: Réunion +🇷🇴 flag: Romania +🇷🇸 flag: Serbia +🇷🇺 flag: Russia +🇷🇼 flag: Rwanda +🇸🇦 flag: Saudi Arabia +🇸🇧 flag: Solomon Islands +🇸🇨 flag: Seychelles +🇸🇩 flag: Sudan +🇸🇪 flag: Sweden +🇸🇬 flag: Singapore +🇸🇭 flag: St. Helena +🇸🇮 flag: Slovenia +🇸🇯 flag: Svalbard & Jan Mayen +🇸🇰 flag: Slovakia +🇸🇱 flag: Sierra Leone +🇸🇲 flag: San Marino +🇸🇳 flag: Senegal +🇸🇴 flag: Somalia +🇸🇷 flag: Suriname +🇸🇸 flag: South Sudan +🇸🇹 flag: São Tomé & Príncipe +🇸🇻 flag: El Salvador +🇸🇽 flag: Sint Maarten +🇸🇾 flag: Syria +🇸🇿 flag: Eswatini +🇹🇦 flag: Tristan da Cunha +🇹🇨 flag: Turks & Caicos Islands +🇹🇩 flag: Chad +🇹🇫 flag: French Southern Territories +🇹🇬 flag: Togo +🇹🇭 flag: Thailand +🇹🇯 flag: Tajikistan +🇹🇰 flag: Tokelau +🇹🇱 flag: Timor-Leste +🇹🇲 flag: Turkmenistan +🇹🇳 flag: Tunisia +🇹🇴 flag: Tonga +🇹🇷 flag: Turkey +🇹🇹 flag: Trinidad & Tobago +🇹🇻 flag: Tuvalu +🇹🇼 flag: Taiwan +🇹🇿 flag: Tanzania +🇺🇦 flag: Ukraine +🇺🇬 flag: Uganda +🇺🇲 flag: U.S. Outlying Islands +🇺🇳 flag: United Nations +🇺🇸 flag: United States +🇺🇾 flag: Uruguay +🇺🇿 flag: Uzbekistan +🇻🇦 flag: Vatican City +🇻🇨 flag: St. Vincent & Grenadines +🇻🇪 flag: Venezuela +🇻🇬 flag: British Virgin Islands +🇻🇮 flag: U.S. Virgin Islands +🇻🇳 flag: Vietnam +🇻🇺 flag: Vanuatu +🇼🇫 flag: Wallis & Futuna +🇼🇸 flag: Samoa +🇽🇰 flag: Kosovo +🇾🇪 flag: Yemen +🇾🇹 flag: Mayotte +🇿🇦 flag: South Africa +🇿🇲 flag: Zambia +🇿🇼 flag: Zimbabwe +🏴󠁧󠁢󠁥󠁮󠁧󠁿 flag: England +🏴󠁧󠁢󠁳󠁣󠁴󠁿 flag: Scotland +🏴󠁧󠁢󠁷󠁬󠁳󠁿 flag: Wales diff --git a/.local/share/vocab/words.txt b/.local/share/vocab/words.txt new file mode 100644 index 0000000..fe8dd61 --- /dev/null +++ b/.local/share/vocab/words.txt @@ -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 diff --git a/.xinitrc b/.xinitrc new file mode 120000 index 0000000..518bb5d --- /dev/null +++ b/.xinitrc @@ -0,0 +1 @@ +.config/x11/xinitrc \ No newline at end of file diff --git a/.zprofile b/.zprofile new file mode 120000 index 0000000..8486fca --- /dev/null +++ b/.zprofile @@ -0,0 +1 @@ +.config/shell/profile \ No newline at end of file