diff --git a/README.md b/README.md
index d517a56..3729095 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,3 @@
-# dotfiles
+
+
-Dotfiles for i3-wm, zsh, polybar, neomutt etc.
\ No newline at end of file
diff --git a/alacritty/alacritty.yml b/alacritty/alacritty.yml
new file mode 100644
index 0000000..472f58c
--- /dev/null
+++ b/alacritty/alacritty.yml
@@ -0,0 +1,10 @@
+
+font:
+ normal:
+ family: Envy Code R
+ size: 8.0
+
+window:
+ padding:
+ x: 18
+ y: 14
diff --git a/dunst/dunstrc b/dunst/dunstrc
new file mode 100644
index 0000000..a7f82e2
--- /dev/null
+++ b/dunst/dunstrc
@@ -0,0 +1,326 @@
+[global]
+ ### Display ###
+
+ # Which monitor should the notifications be displayed on.
+ monitor = 0
+
+ # Display notification on focused monitor. Possible modes are:
+ # mouse: follow mouse pointer
+ # keyboard: follow window with keyboard focus
+ # none: don't follow anything
+ #
+ # "keyboard" needs a window manager that exports the
+ # _NET_ACTIVE_WINDOW property.
+ # This should be the case for almost all modern window managers.
+ #
+ # If this option is set to mouse or keyboard, the monitor option
+ # will be ignored.
+ follow = mouse
+
+ # The geometry of the window:
+ # [{width}]x{height}[+/-{x}+/-{y}]
+ # The geometry of the message window.
+ # The height is measured in number of notifications everything else
+ # in pixels. If the width is omitted but the height is given
+ # ("-geometry x2"), the message window expands over the whole screen
+ # (dmenu-like). If width is 0, the window expands to the longest
+ # message displayed. A positive x is measured from the left, a
+ # negative from the right side of the screen. Y is measured from
+ # the top and down respectively.
+ # The width can be negative. In this case the actual width is the
+ # screen width minus the width defined in within the geometry option.
+ geometry = "400x200-30+20"
+
+ # Show how many messages are currently hidden (because of geometry).
+ indicate_hidden = yes
+
+ # Shrink window if it's smaller than the width. Will be ignored if
+ # width is 0.
+ shrink = no
+
+ # The transparency of the window. Range: [0; 100].
+ # This option will only work if a compositing window manager is
+ # present (e.g. xcompmgr, compiz, etc.).
+ transparency = 0
+
+ # The height of the entire notification. If the height is smaller
+ # than the font height and padding combined, it will be raised
+ # to the font height and padding.
+ notification_height = 60
+
+ # Draw a line of "separator_height" pixel height between two
+ # notifications.
+ # Set to 0 to disable.
+ separator_height = 2
+
+ # Padding between text and separator.
+ padding = 8
+
+ # Horizontal padding.
+ horizontal_padding = 8
+
+ # Defines width in pixels of frame around the notification window.
+ # Set to 0 to disable.
+ frame_width = 3
+
+ # Defines color of the frame around the notification window.
+ frame_color = "#000000"
+
+ # Define a color for the separator.
+ # possible values are:
+ # * auto: dunst tries to find a color fitting to the background;
+ # * foreground: use the same color as the foreground;
+ # * frame: use the same color as the frame;
+ # * anything else will be interpreted as a X color.
+ separator_color = frame
+
+ # Sort messages by urgency.
+ sort = yes
+
+ # Don't remove messages, if the user is idle (no mouse or keyboard input)
+ # for longer than idle_threshold seconds.
+ # Set to 0 to disable.
+ # Transient notifications ignore this setting.
+ idle_threshold = 120
+
+ ### Text ###
+
+ font = Envy Code R 14
+
+ # The spacing between lines. If the height is smaller than the
+ # font height, it will get raised to the font height.
+ line_height = 0
+
+ # Possible values are:
+ # full: Allow a small subset of html markup in notifications:
+ # bold
+ # italic
+ # strikethrough
+ # underline
+ #
+ # For a complete reference see
+ # .
+ #
+ # strip: This setting is provided for compatibility with some broken
+ # clients that send markup even though it's not enabled on the
+ # server. Dunst will try to strip the markup but the parsing is
+ # simplistic so using this option outside of matching rules for
+ # specific applications *IS GREATLY DISCOURAGED*.
+ #
+ # no: Disable markup parsing, incoming notifications will be treated as
+ # plain text. Dunst will not advertise that it has the body-markup
+ # capability if this is set as a global setting.
+ #
+ # It's important to note that markup inside the format option will be parsed
+ # regardless of what this is set to.
+ markup = full
+
+ # The format of the message. Possible variables are:
+ # %a appname
+ # %s summary
+ # %b body
+ # %i iconname (including its path)
+ # %I iconname (without its path)
+ # %p progress value if set ([ 0%] to [100%]) or nothing
+ # %n progress value if set without any extra characters
+ # %% Literal %
+ # Markup is allowed
+ format = "%s\n%b"
+
+ # Alignment of message text.
+ # Possible values are "left", "center" and "right".
+ alignment = left
+
+ # Show age of message if message is older than show_age_threshold
+ # seconds.
+ # Set to -1 to disable.
+ show_age_threshold = 60
+
+ # Split notifications into multiple lines if they don't fit into
+ # geometry.
+ word_wrap = yes
+
+ # When word_wrap is set to no, specify where to ellipsize long lines.
+ # Possible values are "start", "middle" and "end".
+ ellipsize = middle
+
+ # Ignore newlines '\n' in notifications.
+ ignore_newline = no
+
+ # Merge multiple notifications with the same content
+ stack_duplicates = true
+
+ # Hide the count of merged notifications with the same content
+ hide_duplicate_count = false
+
+ # Display indicators for URLs (U) and actions (A).
+ show_indicators = yes
+
+ ### Icons ###
+
+ # Align icons left/right/off
+ icon_position = left
+
+ # Scale larger icons down to this size, set to 0 to disable
+ max_icon_size = 32
+
+ # Paths to default icons.
+ icon_path = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/
+
+ ### History ###
+
+ # Should a notification popped up from history be sticky or timeout
+ # as if it would normally do.
+ sticky_history = yes
+
+ # Maximum amount of notifications kept in history
+ history_length = 20
+
+ ### Misc/Advanced ###
+
+ # dmenu path.
+ dmenu = /usr/bin/dmenu -p dunst:
+
+ # Browser for opening urls in context menu.
+ browser = /usr/bin/firefox -new-tab
+
+ # Always run rule-defined scripts, even if the notification is suppressed
+ always_run_script = true
+
+ # Define the title of the windows spawned by dunst
+ title = Dunst
+
+ # Define the class of the windows spawned by dunst
+ class = Dunst
+
+ # Print a notification on startup.
+ # This is mainly for error detection, since dbus (re-)starts dunst
+ # automatically after a crash.
+ startup_notification = false
+
+ ### Legacy
+
+ # Use the Xinerama extension instead of RandR for multi-monitor support.
+ # This setting is provided for compatibility with older nVidia drivers that
+ # do not support RandR and using it on systems that support RandR is highly
+ # discouraged.
+ #
+ # By enabling this setting dunst will not be able to detect when a monitor
+ # is connected or disconnected which might break follow mode if the screen
+ # layout changes.
+ force_xinerama = false
+
+# Experimental features that may or may not work correctly. Do not expect them
+# to have a consistent behaviour across releases.
+[experimental]
+ # Calculate the dpi to use on a per-monitor basis.
+ # If this setting is enabled the Xft.dpi value will be ignored and instead
+ # dunst will attempt to calculate an appropriate dpi value for each monitor
+ # using the resolution and physical size. This might be useful in setups
+ # where there are multiple screens with very different dpi values.
+ per_monitor_dpi = false
+
+[shortcuts]
+
+ # Shortcuts are specified as [modifier+][modifier+]...key
+ # Available modifiers are "ctrl", "mod1" (the alt-key), "mod2",
+ # "mod3" and "mod4" (windows-key).
+ # Xev might be helpful to find names for keys.
+
+ # Close notification.
+ close = ctrl+space
+
+ # Close all notifications.
+ close_all = ctrl+shift+space
+
+ # Redisplay last message(s).
+ # On the US keyboard layout "grave" is normally above TAB and left
+ # of "1". Make sure this key actually exists on your keyboard layout,
+ # e.g. check output of 'xmodmap -pke'
+ history = ctrl+grave
+
+ # Context menu.
+ context = ctrl+shift+period
+
+[urgency_low]
+ # IMPORTANT: colors have to be defined in quotation marks.
+ # Otherwise the "#" and following would be interpreted as a comment.
+ background = "#000000"
+ foreground = "#888888"
+ timeout = 10
+ # Icon for notifications with low urgency, uncomment to enable
+ #icon = /path/to/icon
+
+[urgency_normal]
+ background = "#000000"
+ foreground = "#ffffff"
+ timeout = 10
+ # Icon for notifications with normal urgency, uncomment to enable
+ #icon = /path/to/icon
+
+[urgency_critical]
+ background = "#900000"
+ foreground = "#ffffff"
+ frame_color = "#ff0000"
+ timeout = 0
+ # Icon for notifications with critical urgency, uncomment to enable
+ #icon = /path/to/icon
+
+# Every section that isn't one of the above is interpreted as a rules to
+# override settings for certain messages.
+# Messages can be matched by "appname", "summary", "body", "icon", "category",
+# "msg_urgency" and you can override the "timeout", "urgency", "foreground",
+# "background", "new_icon" and "format".
+# Shell-like globbing will get expanded.
+#
+# SCRIPTING
+# You can specify a script that gets run when the rule matches by
+# setting the "script" option.
+# The script will be called as follows:
+# script appname summary body icon urgency
+# where urgency can be "LOW", "NORMAL" or "CRITICAL".
+#
+# NOTE: if you don't want a notification to be displayed, set the format
+# to "".
+# NOTE: It might be helpful to run dunst -print in a terminal in order
+# to find fitting options for rules.
+
+#[espeak]
+# summary = "*"
+# script = dunst_espeak.sh
+
+#[script-test]
+# summary = "*script*"
+# script = dunst_test.sh
+
+#[ignore]
+# # This notification will not be displayed
+# summary = "foobar"
+# format = ""
+
+#[history-ignore]
+# # This notification will not be saved in history
+# summary = "foobar"
+# history_ignore = yes
+
+#[signed_on]
+# appname = Pidgin
+# summary = "*signed on*"
+# urgency = low
+#
+#[signed_off]
+# appname = Pidgin
+# summary = *signed off*
+# urgency = low
+#
+#[says]
+# appname = Pidgin
+# summary = *says*
+# urgency = critical
+#
+#[twitter]
+# appname = Pidgin
+# summary = *twitter.com*
+# urgency = normal
+#
+# vim: ft=cfg
diff --git a/font/DejaVuSansMono.zip b/font/DejaVuSansMono.zip
new file mode 100644
index 0000000..e81fc80
Binary files /dev/null and b/font/DejaVuSansMono.zip differ
diff --git a/font/Envy Code R.ttf b/font/Envy Code R.ttf
new file mode 100644
index 0000000..e8e4a60
Binary files /dev/null and b/font/Envy Code R.ttf differ
diff --git a/font/Iosevka-Nerd-Font.ttf b/font/Iosevka-Nerd-Font.ttf
new file mode 100644
index 0000000..bbb351c
Binary files /dev/null and b/font/Iosevka-Nerd-Font.ttf differ
diff --git a/i3/config b/i3/config
new file mode 100644
index 0000000..69d06c6
--- /dev/null
+++ b/i3/config
@@ -0,0 +1,257 @@
+# This file has been auto-generated by i3-config-wizard(1).
+# It will not be overwritten, so edit it as you like.
+#
+# Should you change your keyboard layout some time, delete
+# this file and re-run i3-config-wizard(1).
+#
+
+# i3 config file (v4)
+#
+# Please see https://i3wm.org/docs/userguide.html for a complete reference!
+
+set $mod Mod4
+
+# Font for window titles. Will also be used by the bar unless a different font
+# is used in the bar {} block below.
+#font pango:Iosevka Fixed Medium 0
+
+# This font is widely installed, provides lots of unicode glyphs, right-to-left
+# text rendering and scalability on retina/hidpi displays (thanks to pango).
+font pango: Envy Code R 10
+
+# The combination of xss-lock, nm-applet and pactl is a popular choice, so
+# they are included here as an example. Modify as you see fit.
+
+# xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the
+# screen before suspend. Use loginctl lock-session to lock your screen.
+exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork
+
+# NetworkManager is the most popular way to manage wireless networks on Linux,
+# and nm-applet is a desktop environment-independent system tray GUI for it.
+#exec --no-startup-id nm-applet
+
+# Use pactl to adjust volume in PulseAudio.
+set $refresh_i3status killall -SIGUSR1 i3status
+bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status
+bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status
+bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status
+bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status
+
+#multimedia keys
+bindsym XF86AudioPlay exec playerctl play-pause
+bindsym XF86AudioNext exec playerctl next
+bindsym XF86AudioPrev exec playerctl previous
+# Use Mouse+$mod to drag floating windows to their wanted position
+floating_modifier $mod
+
+# start a terminal
+bindsym $mod+Return exec --no-startup-id alacritty
+bindsym $mod+Shift+Return exec --no-startup-id st
+
+# kill focused window
+bindsym $mod+Shift+q kill
+
+# start dmenu (a program launcher)
+bindsym $mod+d exec rofi -show drun -theme ~/.config/rofi/menu.rasi
+# There also is the (new) i3-dmenu-desktop which only displays applications
+# shipping a .desktop file. It is a wrapper around dmenu, so you need that
+# installed.
+# bindsym $mod+d exec --no-startup-id i3-dmenu-desktop
+
+# change focus
+bindsym $mod+j focus left
+bindsym $mod+k focus down
+bindsym $mod+l focus up
+bindsym $mod+semicolon focus right
+
+# alternatively, you can use the cursor keys:
+bindsym $mod+Left focus left
+bindsym $mod+Down focus down
+bindsym $mod+Up focus up
+bindsym $mod+Right focus right
+
+# move focused window
+bindsym $mod+Shift+j move left
+bindsym $mod+Shift+k move down
+bindsym $mod+Shift+l move up
+bindsym $mod+Shift+semicolon move right
+
+# alternatively, you can use the cursor keys:
+bindsym $mod+Shift+Left move left
+bindsym $mod+Shift+Down move down
+bindsym $mod+Shift+Up move up
+bindsym $mod+Shift+Right move right
+
+# split in horizontal orientation
+bindsym $mod+h split h
+
+# split in vertical orientation
+bindsym $mod+v split v
+
+# enter fullscreen mode for the focused container
+bindsym $mod+f fullscreen toggle
+
+# window borders
+default_border none
+#border_radius 4
+
+# change container layout (stacked, tabbed, toggle split)
+bindsym $mod+s layout stacking
+bindsym $mod+w layout tabbed
+bindsym $mod+e layout toggle split
+
+# toggle tiling / floating
+bindsym $mod+Shift+space floating toggle
+
+# change focus between tiling / floating windows
+bindsym $mod+space focus mode_toggle
+
+# focus the parent container
+bindsym $mod+a focus parent
+
+# focus the child container
+#bindsym $mod+d focus child
+
+# Define names for default workspaces for which we configure key bindings later on.
+# We use variables to avoid repeating the names in multiple places.
+set $ws1 "1: "
+set $ws2 "2: "
+set $ws3 "3: "
+set $ws4 "4:嗢 "
+set $ws5 "5: "
+set $ws6 "6: "
+set $ws7 "7: "
+set $ws8 "8"
+set $ws9 "9"
+set $ws10 "10: "
+
+# switch to workspace
+bindsym $mod+1 workspace number $ws1
+bindsym $mod+2 workspace number $ws2
+bindsym $mod+3 workspace number $ws3
+bindsym $mod+4 workspace number $ws4
+bindsym $mod+5 workspace number $ws5
+bindsym $mod+6 workspace number $ws6
+bindsym $mod+7 workspace number $ws7
+bindsym $mod+8 workspace number $ws8
+bindsym $mod+9 workspace number $ws9
+bindsym $mod+0 workspace number $ws10
+
+# move focused container to workspace
+bindsym $mod+Shift+1 move container to workspace number $ws1
+bindsym $mod+Shift+2 move container to workspace number $ws2
+bindsym $mod+Shift+3 move container to workspace number $ws3
+bindsym $mod+Shift+4 move container to workspace number $ws4
+bindsym $mod+Shift+5 move container to workspace number $ws5
+bindsym $mod+Shift+6 move container to workspace number $ws6
+bindsym $mod+Shift+7 move container to workspace number $ws7
+bindsym $mod+Shift+8 move container to workspace number $ws8
+bindsym $mod+Shift+9 move container to workspace number $ws9
+bindsym $mod+Shift+0 move container to workspace number $ws10
+
+#assign
+assign [class="Firefox"] $ws2
+assign [class="TelegramDesktop"] $ws9
+assign [class="Element"] $ws7
+assign [class="tutanota-desktop"] $ws8
+assign [class="qBittorrent"] $ws10
+assign [class="vlc"] $ws4
+assign [class="thunderbird"] $ws3
+assign [class="Padloc"] $ws5
+#assign [class="Nextcloud"] $ws6
+
+#back and forth
+bindsym $mod+b workspace back_and_forth
+
+#sticky windows
+bindsym $mod+Shift+s sticky toggle
+
+# reload the configuration file
+bindsym $mod+Shift+c reload
+# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
+bindsym $mod+Shift+r restart
+# exit i3 (logs you out of your X session)
+bindsym $mod+Shift+e exec ~/.config/i3/logout.sh
+
+# resize window (you can also use the mouse for that)
+mode "resize" {
+ # These bindings trigger as soon as you enter the resize mode
+
+ # Pressing left will shrink the window’s width.
+ # Pressing right will grow the window’s width.
+ # Pressing up will shrink the window’s height.
+ # Pressing down will grow the window’s height.
+ bindsym j resize shrink width 10 px or 10 ppt
+ bindsym k resize grow height 10 px or 10 ppt
+ bindsym l resize shrink height 10 px or 10 ppt
+ bindsym semicolon resize grow width 10 px or 10 ppt
+
+ # same bindings, but for the arrow keys
+ bindsym Left resize shrink width 10 px or 10 ppt
+ bindsym Down resize grow height 10 px or 10 ppt
+ bindsym Up resize shrink height 10 px or 10 ppt
+ bindsym Right resize grow width 10 px or 10 ppt
+
+ # back to normal: Enter or Escape or $mod+r
+ bindsym Return mode "default"
+ bindsym Escape mode "default"
+ bindsym $mod+r mode "default"
+}
+
+bindsym $mod+r mode "resize"
+
+bar {
+ status_command LC_ALL=C i3status -c ~/.config/i3/i3status/config
+ font pango:Envy Code R 10
+ position top
+ colors {
+ background #000000
+ # statusline #00ff00
+ separator #ffb25a
+ active_workspace #4c7899 #4c7899 #ffffff
+ focused_workspace #ffb25a #ffb25a #000000
+}
+}
+##-c ~/.config/i3/i3status/config
+bindsym XF86MonBrightnessUp exec xbacklight -inc 5
+bindsym XF86MonBrightnessDown exec xbacklight -dec 5
+
+#exec_always --no-startup-id wal -i ~/Downloads/d1.png
+exec_always --no-startup-id ~/.config/i3/low_bat.sh
+exec_always --no-startup-id picom --config ~/.config/picom.conf
+exec_always --no-startup-id feh --bg-center ~/Downloads/d1.png
+#exec_always --no-startup-id xautolock -locker ~/.config/i3/lock.sh -time 3
+#exec_always --no-startup-id ~/.config/lowBat.sh
+exec_always --no-startup-id setxkbmap -option caps:swapescape
+bindsym $mod+Shift+x exec --no-startup-id ~/.config/i3/lock/lock.sh
+
+#client.focused #808080 #808080 #ffffff #808080 #0000ff
+
+#bindsym $mod+Shift+p exec --no-startup-id ~/Downloads/lw.AppImage
+bindsym $mod+Shift+t exec --no-startup-id ~/Downloads/tutanota.AppImage --no-sandbox
+bindsym $mod+Shift+g exec --no-startup-id signal-desktop --no-sandbox
+bindsym $mod+Shift+u exec --no-startup-id ~/Downloads/Padloc.AppImage --no-sandbox
+bindsym $mod+Shift+n exec --no-startup-id ~/Downloads/nextcloud.AppImage
+
+bindsym $mod+Shift+o exec --no-startup-id scrot
+bindsym $mod+Shift+i exec --no-startup-id ~/.config/i3/touchpad_toggle.sh
+bindsym $mod+Shift+m exec ( st -e cava & st -e cmus ); workspace 10; layout splitv;
+bindsym $mod+Shift+f exec --no-startup-id st -e nnn
+
+### i3-gaps stuff ###
+
+# Necessary for i3-gaps to work properly (pixel can be any value)
+for_window [class="^.*"] border pixel 0
+
+# Smart Gaps
+smart_gaps on
+
+# Smart Borders
+smart_borders on
+border_radius 5
+
+# Set inner/outer gaps
+gaps inner 10
+gaps outer 6
+
+client.focused #ffffcc #000000 #ffffcc #2e9ef4 #ffffcE
diff --git a/i3/lock/icon.png b/i3/lock/icon.png
new file mode 100644
index 0000000..ad8d7d1
Binary files /dev/null and b/i3/lock/icon.png differ
diff --git a/i3/lock/lock.sh b/i3/lock/lock.sh
new file mode 100755
index 0000000..dc27b1c
--- /dev/null
+++ b/i3/lock/lock.sh
@@ -0,0 +1,11 @@
+#!/usr/bin/env bash
+
+icon="$HOME/.config/i3/lock/icon.png"
+tmpbg='/tmp/screen.png'
+
+(( $# )) && { icon=$1; }
+
+scrot "$tmpbg"
+convert "$tmpbg" -scale 10% -scale 1000% "$tmpbg"
+convert "$tmpbg" "$icon" -gravity center -composite -matte "$tmpbg"
+i3lock -u -i "$tmpbg"
diff --git a/i3/logout.sh b/i3/logout.sh
new file mode 100755
index 0000000..7010a69
--- /dev/null
+++ b/i3/logout.sh
@@ -0,0 +1,28 @@
+#!/usr/bin/env bash
+o0=""
+o1=""
+o2=""
+o3=""
+o4=""
+a1="1"
+a2="0"
+option="$o4\n$o1\n$o3\n$o2\n$o0"
+answer="$a2\n$a1"
+chosen="$(echo -e "$option" | rofi -theme ~/.config/rofi/powermenu/powermenu.rasi -lines 5 -dmenu)"
+if [ -z "$chosen" ]; then
+ exit
+else
+ sure="$(echo -e "$answer" | rofi -theme ~/.config/rofi/powermenu/powermenu-confirm.rasi -lines 2 -dmenu)"
+ case $chosen$sure in
+ $o0$a1)
+ i3-msg exit;;
+ $o1$a1)
+ systemctl suspend;;
+ $o2$a1)
+ reboot;;
+ $o3$a1)
+ poweroff;;
+ $o4$a1)
+ exec bash ~/.config/i3/lock/lock.sh;;
+ esac
+fi
diff --git a/i3/low_bat.sh b/i3/low_bat.sh
new file mode 100755
index 0000000..46a6d67
--- /dev/null
+++ b/i3/low_bat.sh
@@ -0,0 +1,13 @@
+#!/bin/bash
+
+bat_percent=$(acpi -b| grep -P -o '[0-9]+(?=%)')
+bat_status=$(acpi -b| grep -c 'Charging')
+bat_full=$(acpi -b | grep -c "Full")
+
+if [ $bat_status -eq 0 -a $bat_percent -le 15 ]; then
+ exec /usr/bin/notify-send -u critical -t 10000 "Low Battery, Please Charge"
+fi
+if [ $bat_full -eq 1 -a $bat_percent -eq 100 ]; then
+ exec notify-send "Full Charge"
+fi
+
diff --git a/i3status/config b/i3status/config
new file mode 100644
index 0000000..0974cc4
--- /dev/null
+++ b/i3status/config
@@ -0,0 +1,59 @@
+general {
+ colors = true
+ interval = 5
+ color_good = "#2AA198"
+ color_bad = "#586E75"
+ color_degraded = "#DC322F"
+ output_format = i3bar
+}
+
+order += "disk /"
+order += "cpu_usage"
+order += "wireless wlp2s0"
+order += "battery all"
+order += "volume master"
+order += "tztime local"
+order += "time"
+
+disk "/" {
+ format = " %free "
+}
+
+cpu_usage {
+ format = " %usage "
+}
+
+wireless wlp2s0 {
+ format_up = " %essid %bitrate "
+ format_down = " 睊"
+}
+
+
+battery all {
+ format = " %status %percentage "
+ format_down = "No battery"
+ last_full_capacity = true
+ integer_battery_capacity = true
+ status_chr = ""
+ status_bat = ""
+ status_unk = ""
+ status_full = ""
+ low_threshold = 20
+ threshold_type = percentage
+}
+
+volume master {
+ format = " 墳 %volume "
+ format_muted = " ﱝ "
+ device = "default"
+ mixer = "Master"
+ mixer_idx = 0
+}
+
+tztime local {
+ format = " %A %d-%m-%Y "
+}
+
+time {
+ format = " %H:%M "
+}
diff --git a/neomutt/gpg.rc b/neomutt/gpg.rc
new file mode 100644
index 0000000..ebcc37f
--- /dev/null
+++ b/neomutt/gpg.rc
@@ -0,0 +1,14 @@
+set pgp_default_key=0xkey
+set pgp_sign_as=0xkey
+set crypt_use_gpgme=yes
+set crypt_autosign=yes
+set crypt_verify_sig=yes
+set crypt_replysign=yes
+set crypt_replyencrypt=yes
+set crypt_replysignencrypted=yes
+set crypt_autoencrypt = yes
+
+
+set pgp_check_gpg_decrypt_status_fd
+set pgp_use_gpg_agent = yes
+set pgp_self_encrypt = yes
diff --git a/neomutt/mailcap b/neomutt/mailcap
new file mode 100644
index 0000000..0390069
--- /dev/null
+++ b/neomutt/mailcap
@@ -0,0 +1,10 @@
+# HTML
+#text/html; w3m -I %{charset} -T text/html; copiousoutput;
+text/plain; vim %s
+
+#PDFs
+application/pdf; /usr/bin/okular %s pdf
+
+#Images
+image/png; /usr/bin/feh %s
+ image/jpeg; /usr/bin/feh %s
diff --git a/neomutt/neomuttrc b/neomutt/neomuttrc
new file mode 100644
index 0000000..7a6ef5e
--- /dev/null
+++ b/neomutt/neomuttrc
@@ -0,0 +1,299 @@
+#
+# System configuration file for NeoMutt
+#
+
+# Default list of header fields to weed when displaying.
+# Ignore all lines by default...
+ignore *
+
+# ... then allow these through.
+unignore from: subject to cc date x-mailer x-url user-agent
+
+# Display the fields in this order
+hdr_order date from to cc subject
+
+# emacs-like bindings
+bind editor "\e" kill-word
+bind editor "\e" kill-word
+
+# map delete-char to a sane value
+bind editor delete-char
+
+# some people actually like these settings
+#set pager_stop
+#bind pager previous-line
+#bind pager next-line
+
+# Specifies how to sort messages in the index menu.
+set sort=threads
+
+# The behavior of this option on the Debian mutt package is
+# not the original one because exim4, the default SMTP on Debian
+# does not strip bcc headers so this can cause privacy problems;
+# see man muttrc for more info
+#unset write_bcc
+# Postfix and qmail use Delivered-To for detecting loops
+unset bounce_delivered
+
+set mixmaster="mixmaster-filter"
+
+# System-wide CA file managed by the ca-certificates package
+# set ssl_ca_certificates_file="/etc/ssl/certs/ca-certificates.crt"
+
+# imitate the old search-body function
+macro index \eb "~b " "search in message bodies"
+
+# simulate the old url menu
+macro index,pager,attach,compose \cb "\
+ set my_pipe_decode=\$pipe_decode pipe_decode\
+ urlview\
+ set pipe_decode=\$my_pipe_decode; unset my_pipe_decode" \
+"call urlview to extract URLs out of a message"
+
+# Show documentation when pressing F1
+macro generic,pager " zcat /usr/share/doc/neomutt/manual.txt.gz | sensible-pager" "show NeoMutt documentation"
+
+# show the incoming mailboxes list (just like "neomutt -y") and back when pressing "y"
+macro index y "?" "show incoming mailboxes list"
+macro pager y "?" "show incoming mailboxes list"
+bind browser y exit
+
+# Handler for gzip compressed mailboxes
+# open-hook '\.gz$' "gzip --stdout --decompress '%f' > '%t'"
+# close-hook '\.gz$' "gzip --stdout '%t' > '%f'"
+# append-hook '\.gz$' "gzip --stdout '%t' >> '%f'"
+
+# If NeoMutt is unable to determine your site's domain name correctly, you can
+# set the default here. (better: fix /etc/mailname)
+#
+# set hostname=cs.hmc.edu
+
+# If your sendmail supports the -B8BITMIME flag, enable the following
+#
+# set use_8bitmime
+
+# Use mime.types to look up handlers for application/octet-stream. Can
+# be undone with unmime_lookup.
+mime_lookup application/octet-stream
+
+# Upgrade the progress counter every 250ms, good for mutt over SSH
+# see http://bugs.debian.org/537746
+set time_inc=250
+
+# Allow mutt to understand References, Cc and In-Reply-To as headers in mailto:
+mailto_allow = cc in-reply-to references
+
+##
+## *** DEFAULT SETTINGS FOR THE ATTACHMENTS PATCH ***
+##
+
+##
+## Please see the manual (section "attachments") for detailed
+## documentation of the "attachments" command.
+##
+## Removing a pattern from a list removes that pattern literally. It
+## does not remove any type matching the pattern.
+##
+## attachments +A */.*
+## attachments +A image/jpeg
+## unattachments +A */.*
+##
+## This leaves "attached" image/jpeg files on the allowed attachments
+## list. It does not remove all items, as you might expect, because the
+## second */.* is not a matching expression at this time.
+##
+## Remember: "unattachments" only undoes what "attachments" has done!
+## It does not trigger any matching on actual messages.
+
+## Qualify any MIME part with an "attachment" disposition, EXCEPT for
+## text/x-vcard and application/pgp parts. (PGP parts are already known
+## to neomutt, and can be searched for with ~g, ~G, and ~k.)
+##
+## I've added x-pkcs7 to this, since it functions (for S/MIME)
+## analogously to PGP signature attachments. S/MIME isn't supported
+## in a stock neomutt build, but we can still treat it specially here.
+##
+attachments +A */.*
+attachments -A text/x-vcard application/pgp.*
+attachments -A application/x-pkcs7-.*
+
+## Discount all MIME parts with an "inline" disposition, unless they're
+## text/plain. (Why inline a text/plain part unless it's external to the
+## message flow?)
+##
+attachments +I text/plain
+
+## These two lines make NeoMutt qualify MIME containers. (So, for example,
+## a message/rfc822 forward will count as an attachment.) The first
+## line is unnecessary if you already have "attach-allow */.*", of
+## course. These are off by default! The MIME elements contained
+## within a message/* or multipart/* are still examined, even if the
+## containers themselves don't qualify.
+##
+#attachments +A message/.* multipart/.*
+#attachments +I message/.* multipart/.*
+
+## You probably don't really care to know about deleted attachments.
+attachments -A message/external-body
+attachments -I message/external-body
+
+##
+source /usr/lib/neomutt/source-neomuttrc.d|
+
+
+# main options
+# set envelope_from
+# set edit_headers # show headers when composing
+ set fast_reply # skip to compose when replying
+# set askcc # ask for CC:
+ set fcc_attach # save attachments with the body
+ set forward_format = "Fwd: %s" # format of subject when forwarding
+ set forward_decode # decode when forwarding
+ set attribution = "On %d, %n wrote:" # format of quoting header
+ set reply_to # reply to Reply to: field
+ set reverse_name # reply as whomever it was to
+ set include # include message in replies
+ set forward_quote # include message in forwards
+ set text_flowed
+ unset sig_dashes # no dashes before sig
+ unset mime_forward # forward attachments as part of body
+
+# status bar, date format, finding stuff etc.
+ set status_chars = " *%A"
+ set status_format = "[ Folder: %f ] [%r%m messages%?n? (%n new)?%?d? (%d to delete)?%?t? (%t tagged)? ]%>─%?p?( %p postponed )?"
+ set date_format = "%d.%m.%Y %H:%M"
+ set sort = threads
+ set sort_aux = reverse-last-date-received
+ set uncollapse_jump
+ set sort_re
+ set reply_regex = "^(([Rr][Ee]?(\[[0-9]+\])?: *)?(\[[^]]+\] *)?)*"
+ set quote_regex = "^( {0,4}[>|:#%]| {0,4}[a-z0-9]+[>|]+)+"
+ set send_charset = "utf-8:iso-8859-1:us-ascii"
+ set charset = "utf-8"
+ set arrow_cursor = "no" # Change `color indicator` depending
+
+ # Pager View Options
+ set pager_index_lines = 10 # Shows 10 lines of index when pager is active
+ set pager_context = 3
+ set pager_stop
+ set menu_scroll
+ set tilde
+ unset markers
+
+ set mailcap_path = ~/.config/neomutt/mailcap
+ set header_cache = "~/.cache/mutt"
+ set message_cachedir = "~/.cache/mutt"
+
+ #set query_command = "khard email --parsable --search-in-source-files '%s'"
+set mbox_type = Maildir
+set smtp_url = "https://example.com:587 "
+set smtp_pass = "secret"
+set folder = ""
+set imap_pass = "secret"
+set realname = "Akshay Pushparaj"
+set spoolfile = "+INBOX"
+set ssl_starttls = yes
+#set ssl_force_tls = yes
+
+mailboxes =INBOX =Sent =Drafts =Junk =Trash
+set envelope_from_address = ".in"
+set use_envelope_from = yes
+set record = "=Sent"
+set trash = "=Trash"
+set postponed = "=Drafts"
+set mail_check=60
+
+set editor = "vim"
+set tmpdir = "/tmp/neomutt/"
+
+set sidebar_width = 20
+set sidebar_short_path = yes
+set sidebar_next_new_wrap = yes
+set mail_check_stats
+set sidebar_format = "%B%?F? [%F]?%* %?N?%N/?%S"
+bind index,pager \Ck sidebar-prev
+bind index,pager \Cj sidebar-next
+bind index,pager \Co sidebar-open
+bind index,pager \Cp sidebar-prev-new
+bind index,pager \Cn sidebar-next-new
+bind index,pager B sidebar-toggle-visible
+
+#gpg
+source ~/.config/neomutt/gpg.rc
+
+#set autocrypt = yes
+#set autocrypt_dir = "~/.neomutt/autocrypt"
+
+
+
+#set crypt_use_gpgme = yes
+#set crypt_protected_headers_write = yes
+#set crypt_autosign = yes
+#set crypt_autopgp = yes
+#set crypt_autoencrypt = yes
+
+# Set preffered view modes
+ auto_view text/html text/calendar application/ics # view html automatically
+ alternative_order text/html text/plain text/enriched text/*
+
+#colors
+color normal default default
+color indicator brightyellow default # currently selected message. default makes bar clear, disabled arrow to save space.
+color sidebar_highlight red default
+color sidebar_divider brightblack black
+color sidebar_flagged red black
+color sidebar_new green black
+color normal brightyellow default
+color error red default
+color tilde black default
+color message cyan default
+color markers red white
+color attachment white default
+color search brightmagenta default
+color status brightyellow black
+color hdrdefault brightgreen default
+color quoted green default
+color quoted1 blue default
+color quoted2 cyan default
+color quoted3 yellow default
+color quoted4 red default
+color quoted5 brightred default
+color signature brightgreen default
+color bold black default
+color underline black default
+color normal default default
+
+color body brightred default "[\-\.+_a-zA-Z0-9]+@[\-\.a-zA-Z0-9]+" # Email addresses
+color body brightblue default "(https?|ftp)://[\-\.,/%~_:?&=\#a-zA-Z0-9]+" # URL
+color body green default "\`[^\`]*\`" # Green text between ` and `
+color body brightblue default "^# \.*" # Headings as bold blue
+color body brightcyan default "^## \.*" # Subheadings as bold cyan
+color body brightgreen default "^### \.*" # Subsubheadings as bold green
+color body yellow default "^(\t| )*(-|\\*) \.*" # List items as yellow
+color body brightcyan default "[;:][-o][)/(|]" # emoticons
+color body brightcyan default "[;:][)(|]" # emoticons
+color body brightcyan default "[ ][*][^*]*[*][ ]?" # more emoticon?
+color body brightcyan default "[ ]?[*][^*]*[*][ ]" # more emoticon?
+color body red default "(BAD signature)"
+color body cyan default "(Good signature)"
+color body brightblack default "^gpg: Good signature .*"
+color body brightyellow default "^gpg: "
+color body brightyellow red "^gpg: BAD signature from.*"
+mono body bold "^gpg: Good signature"
+#mohttps://neomutt.org/code/config_vars.htmlno body bold "^gpg: BAD signature from.*"
+color body red default "([a-z][a-z0-9+-]*://(((([a-z0-9_.!~*'();:&=+$,-]|%[0-9a-f][0-9a-f])*@)?((([a-z0-9]([a-z0-9-]*[a-z0-9])?)\\.)*([a-z]([a-z0-9-]*[a-z0-9])?)\\.?|[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+)(:[0-9]+)?)|([a-z0-9_.!~*'()$,;:@&=+-]|%[0-9a-f][0-9a-f])+)(/([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*(;([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*)*(/([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*(;([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*)*)*)?(\\?([a-z0-9_.!~*'();/?:@&=+$,-]|%[0-9a-f][0-9a-f])*)?(#([a-z0-9_.!~*'();/?:@&=+$,-]|%[0-9a-f][0-9a-f])*)?|(www|ftp)\\.(([a-z0-9]([a-z0-9-]*[a-z0-9])?)\\.)*([a-z]([a-z0-9-]*[a-z0-9])?)\\.?(:[0-9]+)?(/([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*(;([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*)*(/([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*(;([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*)*)*)?(\\?([-a-z0-9_.!~*'();/?:@&=+$,]|%[0-9a-f][0-9a-f])*)?(#([-a-z0-9_.!~*'();/?:@&=+$,]|%[0-9a-f][0-9a-f])*)?)[^].,:;!)? \t\r\n<>\"]"
+
+# Default index colors:
+color index yellow default '.*'
+color index_author red default '.*'
+color index_number blue default
+color index_subject cyan default '.*'
+
+# For new mail:
+color index brightyellow black "~N"
+color index_author brightred black "~N"
+color index_subject brightcyan black "~N"
+
+color progress black cyan
+
+
diff --git a/picom.conf b/picom.conf
new file mode 100755
index 0000000..2d6e190
--- /dev/null
+++ b/picom.conf
@@ -0,0 +1,414 @@
+#################################
+# Shadows #
+#################################
+
+
+# Enabled client-side shadows on windows. Note desktop windows
+# (windows with '_NET_WM_WINDOW_TYPE_DESKTOP') never get shadow,
+# unless explicitly requested using the wintypes option.
+#
+# shadow = false
+shadow = true;
+
+# The blur radius for shadows, in pixels. (defaults to 12)
+# shadow-radius = 12
+shadow-radius = 7;
+
+# The opacity of shadows. (0.0 - 1.0, defaults to 0.75)
+# shadow-opacity = .75
+
+# The left offset for shadows, in pixels. (defaults to -15)
+# shadow-offset-x = -15
+shadow-offset-x = -7;
+
+# The top offset for shadows, in pixels. (defaults to -15)
+# shadow-offset-y = -15
+shadow-offset-y = -7;
+
+# Red color value of shadow (0.0 - 1.0, defaults to 0).
+# shadow-red = 0
+
+# Green color value of shadow (0.0 - 1.0, defaults to 0).
+# shadow-green = 0
+
+# Blue color value of shadow (0.0 - 1.0, defaults to 0).
+# shadow-blue = 0
+
+# Hex string color value of shadow (#000000 - #FFFFFF, defaults to #000000). This option will override options set shadow-(red/green/blue)
+# shadow-color = "#000000"
+
+# Specify a list of conditions of windows that should have no shadow.
+#
+# examples:
+# shadow-exclude = "n:e:Notification";
+#
+# shadow-exclude = []
+shadow-exclude = [
+ "name = 'Notification'",
+ "class_g = 'Conky'",
+ "class_g ?= 'Notify-osd'",
+ "class_g = 'Cairo-clock'",
+ "_GTK_FRAME_EXTENTS@:c"
+];
+
+# Specify a X geometry that describes the region in which shadow should not
+# be painted in, such as a dock window region. Use
+# shadow-exclude-reg = "x10+0+0"
+# for example, if the 10 pixels on the bottom of the screen should not have shadows painted on.
+#
+# shadow-exclude-reg = ""
+
+# Crop shadow of a window fully on a particular Xinerama screen to the screen.
+# xinerama-shadow-crop = false
+
+
+#################################
+# Fading #
+#################################
+
+
+# Fade windows in/out when opening/closing and when opacity changes,
+# unless no-fading-openclose is used.
+# fading = false
+fading = true;
+
+# Opacity change between steps while fading in. (0.01 - 1.0, defaults to 0.028)
+# fade-in-step = 0.028
+fade-in-step = 0.03;
+
+# Opacity change between steps while fading out. (0.01 - 1.0, defaults to 0.03)
+# fade-out-step = 0.03
+fade-out-step = 0.03;
+
+# The time between steps in fade step, in milliseconds. (> 0, defaults to 10)
+# fade-delta = 10
+
+# Specify a list of conditions of windows that should not be faded.
+# fade-exclude = []
+
+# Do not fade on window open/close.
+# no-fading-openclose = false
+
+# Do not fade destroyed ARGB windows with WM frame. Workaround of bugs in Openbox, Fluxbox, etc.
+# no-fading-destroyed-argb = false
+
+
+#################################
+# Transparency / Opacity #
+#################################
+
+
+# Opacity of inactive windows. (0.1 - 1.0, defaults to 1.0)
+ inactive-opacity = 0.8
+#inactive-opacity = 0.8;
+
+# Opacity of window titlebars and borders. (0.1 - 1.0, disabled by default)
+# frame-opacity = 1.0
+frame-opacity = 0.2;
+
+# Let inactive opacity set by -i override the '_NET_WM_OPACITY' values of windows.
+# inactive-opacity-override = true
+inactive-opacity-override = false;
+
+# Default opacity for active windows. (0.0 - 1.0, defaults to 1.0)
+ active-opacity = 1.0
+
+# Dim inactive windows. (0.0 - 1.0, defaults to 0.0)
+# inactive-dim = 0.0
+
+# Specify a list of conditions of windows that should never be considered focused.
+# focus-exclude = []
+focus-exclude = [ "class_g = 'Cairo-clock'" ];
+
+# Use fixed inactive dim value, instead of adjusting according to window opacity.
+# inactive-dim-fixed = 1.0
+
+# Specify a list of opacity rules, in the format `PERCENT:PATTERN`,
+# like `50:name *= "Firefox"`. picom-trans is recommended over this.
+# Note we don't make any guarantee about possible conflicts with other
+# programs that set '_NET_WM_WINDOW_OPACITY' on frame or client windows.
+# example:
+# opacity-rule = [ "80:class_g = 'URxvt'" ];
+#
+ opacity-rule = [
+ "100:class_g = 'Dunst' && !focused "
+]
+
+
+#################################
+# Corners #
+#################################
+
+# Sets the radius of rounded window corners. When > 0, the compositor will
+# round the corners of windows. Does not interact well with
+# `transparent-clipping`.
+corner-radius = 8
+
+# Exclude conditions for rounded corners.
+rounded-corners-exclude = [
+ "window_type = 'dock'",
+ "window_type = 'desktop'"
+];
+
+
+#################################
+# Background-Blurring #
+#################################
+
+
+# Parameters for background blurring, see the *BLUR* section for more information.
+# blur-method =
+# blur-size = 12
+#
+# blur-deviation = false
+#
+# blur-strength = 5
+
+# Blur background of semi-transparent / ARGB windows.
+# Bad in performance, with driver-dependent behavior.
+# The name of the switch may change without prior notifications.
+#
+# blur-background = false
+
+# Blur background of windows when the window frame is not opaque.
+# Implies:
+# blur-background
+# Bad in performance, with driver-dependent behavior. The name may change.
+#
+# blur-background-frame = false
+
+
+# Use fixed blur strength rather than adjusting according to window opacity.
+# blur-background-fixed = false
+
+
+# Specify the blur convolution kernel, with the following format:
+# example:
+# blur-kern = "5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1";
+#
+# blur-kern = ""
+blur-kern = "3x3box";
+
+
+# Exclude conditions for background blur.
+# blur-background-exclude = []
+blur-background-exclude = [
+ "window_type = 'dock'",
+ "window_type = 'desktop'",
+ "_GTK_FRAME_EXTENTS@:c"
+];
+
+#################################
+# General Settings #
+#################################
+
+# Daemonize process. Fork to background after initialization. Causes issues with certain (badly-written) drivers.
+# daemon = false
+
+# Specify the backend to use: `xrender`, `glx`, or `xr_glx_hybrid`.
+# `xrender` is the default one.
+#
+# backend = "glx"
+backend = "xrender";
+
+# Enable/disable VSync.
+# vsync = false
+vsync = true;
+
+# Enable remote control via D-Bus. See the *D-BUS API* section below for more details.
+# dbus = false
+
+# Try to detect WM windows (a non-override-redirect window with no
+# child that has 'WM_STATE') and mark them as active.
+#
+# mark-wmwin-focused = false
+mark-wmwin-focused = true;
+
+# Mark override-redirect windows that doesn't have a child window with 'WM_STATE' focused.
+# mark-ovredir-focused = false
+mark-ovredir-focused = true;
+
+# Try to detect windows with rounded corners and don't consider them
+# shaped windows. The accuracy is not very high, unfortunately.
+#
+# detect-rounded-corners = false
+detect-rounded-corners = true;
+
+# Detect '_NET_WM_OPACITY' on client windows, useful for window managers
+# not passing '_NET_WM_OPACITY' of client windows to frame windows.
+#
+# detect-client-opacity = false
+detect-client-opacity = true;
+
+# Specify refresh rate of the screen. If not specified or 0, picom will
+# try detecting this with X RandR extension.
+#
+# refresh-rate = 60
+refresh-rate = 0;
+
+# Use EWMH '_NET_ACTIVE_WINDOW' to determine currently focused window,
+# rather than listening to 'FocusIn'/'FocusOut' event. Might have more accuracy,
+# provided that the WM supports it.
+#
+# use-ewmh-active-win = false
+
+# Unredirect all windows if a full-screen opaque window is detected,
+# to maximize performance for full-screen windows. Known to cause flickering
+# when redirecting/unredirecting windows.
+#
+# unredir-if-possible = false
+
+# Delay before unredirecting the window, in milliseconds. Defaults to 0.
+# unredir-if-possible-delay = 0
+
+# Conditions of windows that shouldn't be considered full-screen for unredirecting screen.
+# unredir-if-possible-exclude = []
+
+# Use 'WM_TRANSIENT_FOR' to group windows, and consider windows
+# in the same group focused at the same time.
+#
+# detect-transient = false
+detect-transient = true;
+
+# Use 'WM_CLIENT_LEADER' to group windows, and consider windows in the same
+# group focused at the same time. 'WM_TRANSIENT_FOR' has higher priority if
+# detect-transient is enabled, too.
+#
+# detect-client-leader = false
+detect-client-leader = true;
+
+# Resize damaged region by a specific number of pixels.
+# A positive value enlarges it while a negative one shrinks it.
+# If the value is positive, those additional pixels will not be actually painted
+# to screen, only used in blur calculation, and such. (Due to technical limitations,
+# with use-damage, those pixels will still be incorrectly painted to screen.)
+# Primarily used to fix the line corruption issues of blur,
+# in which case you should use the blur radius value here
+# (e.g. with a 3x3 kernel, you should use `--resize-damage 1`,
+# with a 5x5 one you use `--resize-damage 2`, and so on).
+# May or may not work with *--glx-no-stencil*. Shrinking doesn't function correctly.
+#
+# resize-damage = 1
+
+# Specify a list of conditions of windows that should be painted with inverted color.
+# Resource-hogging, and is not well tested.
+#
+# invert-color-include = []
+
+# GLX backend: Avoid using stencil buffer, useful if you don't have a stencil buffer.
+# Might cause incorrect opacity when rendering transparent content (but never
+# practically happened) and may not work with blur-background.
+# My tests show a 15% performance boost. Recommended.
+#
+# glx-no-stencil = false
+
+# GLX backend: Avoid rebinding pixmap on window damage.
+# Probably could improve performance on rapid window content changes,
+# but is known to break things on some drivers (LLVMpipe, xf86-video-intel, etc.).
+# Recommended if it works.
+#
+# glx-no-rebind-pixmap = false
+
+# Disable the use of damage information.
+# This cause the whole screen to be redrawn everytime, instead of the part of the screen
+# has actually changed. Potentially degrades the performance, but might fix some artifacts.
+# The opposing option is use-damage
+#
+# no-use-damage = false
+use-damage = true;
+
+# Use X Sync fence to sync clients' draw calls, to make sure all draw
+# calls are finished before picom starts drawing. Needed on nvidia-drivers
+# with GLX backend for some users.
+#
+# xrender-sync-fence = false
+
+# GLX backend: Use specified GLSL fragment shader for rendering window contents.
+# See `compton-default-fshader-win.glsl` and `compton-fake-transparency-fshader-win.glsl`
+# in the source tree for examples.
+#
+# glx-fshader-win = ""
+
+# Force all windows to be painted with blending. Useful if you
+# have a glx-fshader-win that could turn opaque pixels transparent.
+#
+# force-win-blend = false
+
+# Do not use EWMH to detect fullscreen windows.
+# Reverts to checking if a window is fullscreen based only on its size and coordinates.
+#
+# no-ewmh-fullscreen = false
+
+# Dimming bright windows so their brightness doesn't exceed this set value.
+# Brightness of a window is estimated by averaging all pixels in the window,
+# so this could comes with a performance hit.
+# Setting this to 1.0 disables this behaviour. Requires --use-damage to be disabled. (default: 1.0)
+#
+# max-brightness = 1.0
+
+# Make transparent windows clip other windows like non-transparent windows do,
+# instead of blending on top of them.
+#
+# transparent-clipping = false
+
+# Set the log level. Possible values are:
+# "trace", "debug", "info", "warn", "error"
+# in increasing level of importance. Case doesn't matter.
+# If using the "TRACE" log level, it's better to log into a file
+# using *--log-file*, since it can generate a huge stream of logs.
+#
+# log-level = "debug"
+log-level = "warn";
+
+# Set the log file.
+# If *--log-file* is never specified, logs will be written to stderr.
+# Otherwise, logs will to written to the given file, though some of the early
+# logs might still be written to the stderr.
+# When setting this option from the config file, it is recommended to use an absolute path.
+#
+# log-file = "/path/to/your/log/file"
+
+# Show all X errors (for debugging)
+# show-all-xerrors = false
+
+# Write process ID to a file.
+# write-pid-path = "/path/to/your/log/file"
+
+# Window type settings
+#
+# 'WINDOW_TYPE' is one of the 15 window types defined in EWMH standard:
+# "unknown", "desktop", "dock", "toolbar", "menu", "utility",
+# "splash", "dialog", "normal", "dropdown_menu", "popup_menu",
+# "tooltip", "notification", "combo", and "dnd".
+#
+# Following per window-type options are available: ::
+#
+# fade, shadow:::
+# Controls window-type-specific shadow and fade settings.
+#
+# opacity:::
+# Controls default opacity of the window type.
+#
+# focus:::
+# Controls whether the window of this type is to be always considered focused.
+# (By default, all window types except "normal" and "dialog" has this on.)
+#
+# full-shadow:::
+# Controls whether shadow is drawn under the parts of the window that you
+# normally won't be able to see. Useful when the window has parts of it
+# transparent, and you want shadows in those areas.
+#
+# redir-ignore:::
+# Controls whether this type of windows should cause screen to become
+# redirected again after been unredirected. If you have unredir-if-possible
+# set, and doesn't want certain window to cause unnecessary screen redirection,
+# you can set this to `true`.
+#
+wintypes:
+{
+ tooltip = { fade = true; shadow = true; opacity = 0.75; focus = true; full-shadow = false; };
+ dock = { shadow = false; }
+ dnd = { shadow = false; }
+ popup_menu = { opacity = 0.8; }
+ dropdown_menu = { opacity = 0.8; }
+};
diff --git a/polybar/config b/polybar/config
new file mode 100644
index 0000000..13629ed
--- /dev/null
+++ b/polybar/config
@@ -0,0 +1,244 @@
+
+[colors]
+color0 = #0a0b08
+color1 = #675638
+color2 = #555B47
+color3 = #5A6651
+color4 = #6E6754
+color5 = #656D56
+color6 = #936D51
+color7 = #ccc0ac
+color8 = #8e8678
+color9 = #675638
+color10 = #555B47
+color11 = #5A6651
+color12 = #6E6754
+color13 = #656D56
+color14 = #936D51
+color15 = #ccc0ac
+background = #000000
+;background = #0c0f10
+background-alt = #ffb25a
+foreground = #dfdfdf
+foreground-alt = #bbb
+;foreground-alt = #222
+;primary = #ffb52a
+;primary = #666666
+primary = #abbcc8
+secondary = #e60053
+alert = #bd2c40
+
+[bar/bar]
+;monitor = ${env:MONITOR:HDMI-1}
+width = 100%
+height = 22
+;offset-x = 1%
+;offset-y = 1%
+radius = 0.0
+fixed-center = false
+bottom = true
+
+background = ${colors.color0}
+foreground = ${colors.color15}
+
+border-size = 1
+border-color = #00000000
+
+padding-left = 0
+padding-right = 0
+
+
+font-0 = terminessTTF Nerd Font Mono:size=12;3
+font-1 = DejavuSansMono NF:style=Book:size=13;3
+
+modules-left = i3
+modules-center = media
+modules-right = wlp2s0 pulseaudio battery cpu date time
+
+tray-position = right
+tray-padding = 1
+tray-background = ${colors.color1}
+
+;wm-restack = bspwm
+wm-restack = i3
+
+;override-redirect = true
+
+;scroll-up = bspwm-desknext
+;scroll-down = bspwm-deskprev
+
+;scroll-up = i3wm-wsnext
+;scroll-down = i3wm-wsprev
+
+cursor-click = pointer
+cursor-scroll = ns-resize
+
+[module/i3]
+type = internal/i3
+format =
+index-sort = true
+wrapping-scroll = false
+
+label-mode = %mode%
+
+; Only show workspaces on the same output as the bar
+;pin-workspaces = true
+
+label-mode-padding = 1
+label-mode-foreground = ${colors.colors1}
+label-mode-background = ${colors.colors0}
+
+; focused = Active workspace on focused monitor
+label-focused = %icon%
+label-focused-foreground = ${colors.color0}
+label-focused-background = ${colors.color1}
+label-focused-padding = 1
+
+; unfocused = Inactive workspace on any monitor
+label-unfocused = %index%
+label-unfocused-padding = 1
+
+; visible = Active workspace on unfocused monitor
+label-visible = %index%
+label-visible-background = ${self.label-focused-background}
+label-visible-padding = ${self.label-focused-padding}
+
+; urgent = Workspace with urgency hint set
+label-urgent = %icon%:%index%
+label-urgent-background = ${colors.alert}
+label-urgent-padding = 1
+
+ws-icon-0 = 1;
+ws-icon-1 = 2;
+ws-icon-2 = 3;
+ws-icon-3 = 4;嗢
+ws-icon-4 = 5;
+ws-icon-5 = 6;
+ws-icon-6 = 7;
+ws-icon-7 = 8;
+ws-icon-8 = 9;
+ws-icon-9 = 10;
+
+[module/media]
+type = custom/script
+exec = ~/.config/polybar/scripts/music
+interval = 1
+tail = true
+label = " %output% "
+label-foreground = ${colors.color0}
+label-background = ${colors.color3}
+
+[module/wlp2s0]
+type = internal/network
+interface = wlp2s0
+interval = 3.0
+label-connected-background = ${colors.color5}
+format-connected =
+label-connected = " %signal%% %essid% %downspeed% "
+label-connected-foreground = ${colors.color0}
+format-disconnected =
+;label-disconnected = " 睊 "
+
+[module/eth]
+type = internal/network
+interface = eno0
+interval = 3.0
+
+format-connected-underline = #55aa55
+format-connected-prefix = " "
+format-connected-prefix-foreground = ${colors.color0}
+label-connected = %essid%
+format-disconnected =
+
+[module/pulseaudio]
+type = internal/pulseaudio
+
+ramp-volume-background = ${colors.color7}
+ramp-volume-foreground = ${colors.color0}
+label-volume-background = ${colors.color7}
+label-volume-foreground = ${colors.color0}
+
+format-volume =
+label-volume = "%percentage% "
+
+label-muted = 🔇 muted
+label-muted-foreground = #666
+ramp-volume-0 = " "
+
+[module/battery]
+type = internal/battery
+battery = BAT0
+adapter = AC
+full-at = 98
+label-charging = "%percentage% "
+label-discharging = "%percentage% "
+label-full = "%percentage_raw% "
+format-charging = ""
+format-discharging = ""
+format-full-prefix = " "
+format-full-prefix-foreground = ${colors.color0}
+format-full-prefix-background= ${colors.color9}
+label-full-background = ${colors.color9}
+label-full-foreground = ${colors.color0}
+label-charging-background = ${colors.color9}
+label-charging-foreground = ${colors.color0}
+
+label-discharging-background = ${colors.color9}
+label-discharging-foreground = ${colors.color0}
+ramp-capacity-0 =" "
+ramp-capacity-1 =" "
+ramp-capacity-2 =" "
+ramp-capacity-3 =" "
+ramp-capacity-4 =" "
+ramp-capacity-5 =" "
+ramp-capacity-6 =" "
+ramp-capacity-7 =" "
+ramp-capacity-8 =" "
+ramp-capacity-9 =" "
+
+ramp-capacity-foreground = ${colors.color0}
+ramp-capacity-background = ${colors.color9}
+animation-charging-0 =" "
+animation-charging-foreground = ${colors.color0}
+animation-charging-background = ${colors.color9}
+
+[module/cpu]
+type = internal/cpu
+interval = 2
+padding = 2
+format-prefix = " "
+format-background = ${colors.color11}
+format-prefix-foreground = ${colors.color0}
+label-background = ${colors.color11}
+label-foreground = ${colors.color0}
+label = "%percentage% "
+
+[module/date]
+type=internal/date
+date = " %d-%m-%Y "
+label = %date%
+label-background =${colors.color13}
+label-foreground = ${colors.color0}
+
+[module/time]
+type = internal/date
+interval = 5
+time = " %H:%M "
+time-alt = %H:%M:%S
+label = %time%
+label-background = ${colors.color14}
+label-foreground = ${colors.color0}
+
+[settings]
+screenchange-reload = true
+;compositing-background = xor
+;compositing-background = screen
+;compositing-foreground = source
+;compositing-border = over
+;pseudo-transparency = false
+
+[global/wm]
+margin-top = 1
+margin-bottom = 1
+
+
diff --git a/polybar/scripts/.cmus.swp b/polybar/scripts/.cmus.swp
new file mode 100644
index 0000000..f2d1a54
Binary files /dev/null and b/polybar/scripts/.cmus.swp differ
diff --git a/polybar/scripts/cmus b/polybar/scripts/cmus
new file mode 100755
index 0000000..f617240
--- /dev/null
+++ b/polybar/scripts/cmus
@@ -0,0 +1,16 @@
+#!/bin/bash
+
+duration=$(cmus-remote -Q 2> /dev/null | grep duration | cut -d ' ' -f2-)
+position=$(cmus-remote -Q 2> /dev/null | grep position | cut -d ' ' -f2-)
+stat=$(cmus-remote -Q 2> /dev/null | grep status | cut -d ' ' -f2-)
+artist=$(cmus-remote -Q 2> /dev/null | grep ' artist ' | cut -d ' ' -f3-)
+song=$(cmus-remote -Q 2> /dev/null | grep title | cut -d ' ' -f3-)
+if [ "$stat" != "" -a "$artist" != "" ]; then
+ cur=$(date -d@"$position" -u +%M:%S)
+ dur=$(date -d@"$duration" -u +%M:%S)
+ if [ "$stat" = "playing" ]; then
+ echo "$artist - $song || $cur"
+ else
+ echo "$song - $cur - paused"
+ fi
+fi
diff --git a/polybar/scripts/launch.sh b/polybar/scripts/launch.sh
new file mode 100755
index 0000000..5baf50d
--- /dev/null
+++ b/polybar/scripts/launch.sh
@@ -0,0 +1,4 @@
+#! /usr/bin/env bash
+killall -q polybar
+echo "---" | tee -a /tmp/polybar1.log /tmp/polybar2.log
+polybar bar 2>&1 | tee -a /tmp/polybar.log & disown
diff --git a/polybar/scripts/music b/polybar/scripts/music
new file mode 100755
index 0000000..ad746b5
--- /dev/null
+++ b/polybar/scripts/music
@@ -0,0 +1,32 @@
+#!/bin/bash
+
+# install playerctl
+
+none="No players found"
+down=$(playerctl status 2>&1)
+if [ "$down" = "$none" -o "$down" = "Stopped" ]; then
+ echo ""
+ exit
+else
+ tracklength=$(playerctl metadata mpris:length 2>&1| sed 's/.\{6\}$//')
+ current=$(playerctl position 2>&1 | sed 's/.\{7\}$//')
+ if [ "$tracklength" -ge 3600 ]; then
+ duration=$(date -d@"$tracklength" -u +%H:%M:%S 2>&1)
+ else
+ duration=$(date -d@"$tracklength" -u +%M:%S 2>&1)
+ fi
+ if [ "$current" -ge 3600 ]; then
+ position=$(date -d@"$current" -u +%H:%M:%S 2>&1)
+ else
+ position=$(date -d@"$current" -u +%M:%S 2>&1)
+ fi
+ artist=$(playerctl metadata xesam:artist 2>&1)
+ song=$(playerctl metadata xesam:title 2>&1)
+ if [ "$down" = "Playing" ]; then
+ echo "$song | $position"
+ elif [ "$down" = "Paused" ]; then
+ echo "$song | $position | $duration | paused"
+ else
+ exit
+ fi
+fi
diff --git a/redshift.conf b/redshift.conf
new file mode 100644
index 0000000..64b0894
--- /dev/null
+++ b/redshift.conf
@@ -0,0 +1,7 @@
+[redshift]
+adjustment-method=randr
+location-provider=manual
+
+[manual]
+lat=11.25
+lon=75.78
diff --git a/rtorrent/rtorrentrc b/rtorrent/rtorrentrc
new file mode 100644
index 0000000..8edc506
--- /dev/null
+++ b/rtorrent/rtorrentrc
@@ -0,0 +1,145 @@
+#############################################################################
+# A minimal rTorrent configuration that provides the basic features
+# you want to have in addition to the built-in defaults.
+#
+# See https://github.com/rakshasa/rtorrent/wiki/CONFIG-Template
+# for an up-to-date version.
+#############################################################################
+
+
+## Instance layout (base paths)
+method.insert = cfg.basedir, private|const|string, (cat,"/home/akshay/Downloads/rtorrent/")
+method.insert = cfg.download, private|const|string, (cat,(cfg.basedir),"download/")
+method.insert = cfg.logs, private|const|string, (cat,(cfg.basedir),"log/")
+method.insert = cfg.logfile, private|const|string, (cat,(cfg.logs),"rtorrent-",(system.time),".log")
+method.insert = cfg.session, private|const|string, (cat,(cfg.basedir),".session/")
+method.insert = cfg.watch, private|const|string, (cat,(cfg.basedir),"watch/")
+
+
+## Create instance directories
+execute.throw = sh, -c, (cat,\
+ "mkdir -p \"",(cfg.download),"\" ",\
+ "\"",(cfg.logs),"\" ",\
+ "\"",(cfg.session),"\" ",\
+ "\"",(cfg.watch),"/load\" ",\
+ "\"",(cfg.watch),"/start\" ")
+
+
+## Listening port for incoming peer traffic (fixed; you can also randomize it)
+network.port_range.set = 50000-50000
+network.port_random.set = no
+
+
+## Tracker-less torrent and UDP tracker support
+## (conservative settings for 'private' trackers, change for 'public')
+dht.mode.set = disable
+protocol.pex.set = no
+
+trackers.use_udp.set = no
+
+
+## Peer settings
+throttle.max_downloads.global.set = 100
+throttle.max_uploads.global.set = 60
+throttle.max_downloads.set = 50
+throttle.max_uploads.set = 50
+throttle.global_down.max_rate.set_kb = 0
+throttle.global_up.max_rate.set_kb = 0
+
+throttle.min_peers.normal.set = 1
+throttle.max_peers.normal.set = 400
+throttle.min_peers.seed.set = -1
+throttle.max_peers.seed.set = -1
+trackers.numwant.set = 80
+
+protocol.encryption.set = allow_incoming,try_outgoing,enable_retry
+
+
+## Limits for file handle resources, this is optimized for
+## an `ulimit` of 1024 (a common default). You MUST leave
+## a ceiling of handles reserved for rTorrent's internal needs!
+network.http.max_open.set = 50
+network.max_open_files.set = 600
+network.max_open_sockets.set = 300
+
+
+## Memory resource usage (increase if you have a large number of items loaded,
+## and/or the available resources to spend)
+pieces.memory.max.set = 1800M
+network.xmlrpc.size_limit.set = 4M
+
+
+## Basic operational settings (no need to change these)
+session.path.set = (cat, (cfg.session))
+directory.default.set = (cat, (cfg.download))
+log.execute = (cat, (cfg.logs), "execute.log")
+#log.xmlrpc = (cat, (cfg.logs), "xmlrpc.log")
+execute.nothrow = sh, -c, (cat, "echo >",\
+ (session.path), "rtorrent.pid", " ",(system.pid))
+
+
+## Other operational settings (check & adapt)
+encoding.add = utf8
+system.umask.set = 0027
+system.cwd.set = (directory.default)
+network.http.dns_cache_timeout.set = 25
+schedule2 = monitor_diskspace, 15, 60, ((close_low_diskspace, 1000M))
+#pieces.hash.on_completion.set = no
+#view.sort_current = seeding, greater=d.ratio=
+#keys.layout.set = qwerty
+#network.http.capath.set = "/etc/ssl/certs"
+#network.http.ssl_verify_peer.set = 0
+#network.http.ssl_verify_host.set = 0
+
+
+## Some additional values and commands
+method.insert = system.startup_time, value|const, (system.time)
+method.insert = d.data_path, simple,\
+ "if=(d.is_multi_file),\
+ (cat, (d.directory), /),\
+ (cat, (d.directory), /, (d.name))"
+method.insert = d.session_file, simple, "cat=(session.path), (d.hash), .torrent"
+
+
+## Watch directories (add more as you like, but use unique schedule names)
+## Add torrent
+schedule2 = watch_load, 11, 10, ((load.verbose, (cat, (cfg.watch), "load/*.torrent")))
+## Add & download straight away
+schedule2 = watch_start, 10, 10, ((load.start_verbose, (cat, (cfg.watch), "start/*.torrent")))
+
+
+## Run the rTorrent process as a daemon in the background
+## (and control via XMLRPC sockets)
+#system.daemon.set = true
+#network.scgi.open_local = (cat,(session.path),rpc.socket)
+#execute.nothrow = chmod,770,(cat,(session.path),rpc.socket)
+
+
+## Logging:
+## Levels = critical error warn notice info debug
+## Groups = connection_* dht_* peer_* rpc_* storage_* thread_* tracker_* torrent_*
+print = (cat, "Logging to ", (cfg.logfile))
+log.open_file = "log", (cfg.logfile)
+log.add_output = "info", "log"
+#log.add_output = "tracker_debug", "log"
+
+
+
+# Create symlinks in the watch directory with a suffix indicating the download state.
+method.set_key = event.download.resumed,link1,"d.create_link=tied,,.started"
+method.set_key = event.download.paused,link1,"d.delete_link=tied,,.started"
+method.set_key = event.download.finished,"d.create_link=tied,,.finished"
+method.set_key = event.download.erased,"d.delete_link=tied,,.finished"
+
+# Create symlinks in the same directory as the download.
+method.set_key = event.download.resumed,link2,"d.create_link=base_path,,.started"
+method.set_key = event.download.paused,link2,"d.delete_link=base_path,,.started"
+method.set_key = event.download.finished,link2,"d.create_link=base_path,,.finished"
+method.set_key = event.download.erased,link2,"d.delete_link=base_path,,.finished"
+
+# Create a symlink in another directory without a suffix.
+# You need to quote the command in this case.
+method.set_key = event.download.finished,link3,"d.create_link=base_filename,/files,"
+
+
+### END of rtorrent.rc ###
diff --git a/screenshot/cmus.png b/screenshot/cmus.png
new file mode 100644
index 0000000..78d4426
Binary files /dev/null and b/screenshot/cmus.png differ
diff --git a/screenshot/colorscheme.gif b/screenshot/colorscheme.gif
new file mode 100644
index 0000000..67b5819
Binary files /dev/null and b/screenshot/colorscheme.gif differ
diff --git a/screenshot/image.png b/screenshot/image.png
new file mode 100644
index 0000000..07a5acc
Binary files /dev/null and b/screenshot/image.png differ
diff --git a/screenshot/lap.png b/screenshot/lap.png
new file mode 100644
index 0000000..6b3ec84
Binary files /dev/null and b/screenshot/lap.png differ
diff --git a/screenshot/lock.png b/screenshot/lock.png
new file mode 100644
index 0000000..abb55b1
Binary files /dev/null and b/screenshot/lock.png differ
diff --git a/systemd/lidlock.service b/systemd/lidlock.service
new file mode 100755
index 0000000..8926f7a
--- /dev/null
+++ b/systemd/lidlock.service
@@ -0,0 +1,13 @@
+# add this to /etc/systemd/system and enable service
+[Unit]
+Description=i3lock on suspend
+After=sleep.target
+
+[Service]
+User=akshay
+Type=forking
+Environment=DISPLAY=:0
+ExecStart=/home/akshay/.config/i3/lock/lock.sh
+
+[Install]
+WantedBy=sleep.target
diff --git a/touchpad_toggle.sh b/touchpad_toggle.sh
new file mode 100644
index 0000000..a79b1f1
--- /dev/null
+++ b/touchpad_toggle.sh
@@ -0,0 +1,16 @@
+#!/bin/bash
+
+declare -i ID
+ID=`xinput list | grep -Eio '(touchpad|glidepoint)\s*id\=[0-9]{1,2}' | grep -Eo '[0-9]{1,2}'`
+declare -i STATE
+STATE=`xinput list-props $ID|grep 'Device Enabled'|awk '{print $4}'`
+if [ $STATE -eq 1 ]
+then
+ xinput disable $ID
+ # echo "Touchpad disabled."
+ # notify-send -a 'Touchpad' 'Disabled' -i /usr/share/icons/Adwaita/48x48/devices/input-touchpad.png
+ else
+ xinput enable $ID
+ # echo "Touchpad enabled."
+ # notify-send -a 'Touchpad' 'Enabled' -i /usr/share/icons/Adwaita/48x48/devices/input-touchpad.png
+fi
diff --git a/vimrc b/vimrc
new file mode 100644
index 0000000..3dbd53a
--- /dev/null
+++ b/vimrc
@@ -0,0 +1,40 @@
+call plug#begin()
+Plug 'ayu-theme/ayu-vim'
+Plug 'scrooloose/nerdtree'
+Plug 'ryanoasis/vim-devicons'
+Plug 'tmsvg/pear-tree'
+Plug 'makerj/vim-pdf'
+Plug 'junegunn/goyo.vim'
+Plug 'rust-lang/rust.vim'
+Plug 'sainnhe/gruvbox-material'
+call plug#end()
+
+"merdtree
+autocmd StdinReadPre * let s:std_in=1
+autocmd VimEnter * if argc() == 0 && !exists('s:std_in') | NERDTree | endif
+
+"colorscheme
+set background=dark
+colorscheme gruvbox-material
+
+set tabstop=2
+set number
+"borders and tilde
+highlight NonText ctermfg='Black'
+set enc=utf-8
+set fillchars=
+
+"key remap
+map :NERDTreeToggle
+map l
+map h
+map j
+map k
+autocmd! bufwritepost *.h make && sudo make install
+
+"auto source
+autocmd! bufwritepost .vimrc source %
+
+"rust syntax
+syntax enable
+filetype plugin indent on
diff --git a/wallpaper/README.md b/wallpaper/README.md
new file mode 100644
index 0000000..a7e8db0
--- /dev/null
+++ b/wallpaper/README.md
@@ -0,0 +1 @@
+Wallpapers from [Wallhaven](https://wallhaven.cc)
diff --git a/wallpaper/city.jpg b/wallpaper/city.jpg
new file mode 100644
index 0000000..b0a875a
Binary files /dev/null and b/wallpaper/city.jpg differ
diff --git a/wallpaper/com2.png b/wallpaper/com2.png
new file mode 100644
index 0000000..09ad5d5
Binary files /dev/null and b/wallpaper/com2.png differ
diff --git a/wallpaper/comedian.jpg b/wallpaper/comedian.jpg
new file mode 100644
index 0000000..cabe846
Binary files /dev/null and b/wallpaper/comedian.jpg differ
diff --git a/wallpaper/d1.png b/wallpaper/d1.png
new file mode 100755
index 0000000..bd66b4f
Binary files /dev/null and b/wallpaper/d1.png differ
diff --git a/wallpaper/dune.jpg b/wallpaper/dune.jpg
new file mode 100644
index 0000000..3d8d501
Binary files /dev/null and b/wallpaper/dune.jpg differ
diff --git a/wallpaper/leaves.png b/wallpaper/leaves.png
new file mode 100644
index 0000000..2632fee
Binary files /dev/null and b/wallpaper/leaves.png differ
diff --git a/wallpaper/neon.jpg b/wallpaper/neon.jpg
new file mode 100644
index 0000000..e7593d0
Binary files /dev/null and b/wallpaper/neon.jpg differ
diff --git a/wallpaper/rhone.jpg b/wallpaper/rhone.jpg
new file mode 100644
index 0000000..cd8bf16
Binary files /dev/null and b/wallpaper/rhone.jpg differ
diff --git a/wallpaper/sa-flowers.jpeg b/wallpaper/sa-flowers.jpeg
new file mode 100644
index 0000000..def6ccb
Binary files /dev/null and b/wallpaper/sa-flowers.jpeg differ
diff --git a/wallpaper/sa-train.jpeg b/wallpaper/sa-train.jpeg
new file mode 100644
index 0000000..34c2785
Binary files /dev/null and b/wallpaper/sa-train.jpeg differ
diff --git a/wallpaper/sa.jpeg b/wallpaper/sa.jpeg
new file mode 100644
index 0000000..80fb6cc
Binary files /dev/null and b/wallpaper/sa.jpeg differ
diff --git a/wallpaper/samurai-think.jpg b/wallpaper/samurai-think.jpg
new file mode 100644
index 0000000..d1591f5
Binary files /dev/null and b/wallpaper/samurai-think.jpg differ
diff --git a/wallpaper/samurai.jpg b/wallpaper/samurai.jpg
new file mode 100644
index 0000000..fff9dcd
Binary files /dev/null and b/wallpaper/samurai.jpg differ
diff --git a/wallpaper/sea.jpg b/wallpaper/sea.jpg
new file mode 100644
index 0000000..74f5ed9
Binary files /dev/null and b/wallpaper/sea.jpg differ
diff --git a/wallpaper/space.jpg b/wallpaper/space.jpg
new file mode 100644
index 0000000..f8d3353
Binary files /dev/null and b/wallpaper/space.jpg differ
diff --git a/wallpaper/starry.jpg b/wallpaper/starry.jpg
new file mode 100644
index 0000000..c249e2c
Binary files /dev/null and b/wallpaper/starry.jpg differ
diff --git a/wallpaper/the-starry-night-over-the-rhone.jpg b/wallpaper/the-starry-night-over-the-rhone.jpg
new file mode 100644
index 0000000..bd247c3
Binary files /dev/null and b/wallpaper/the-starry-night-over-the-rhone.jpg differ
diff --git a/zsh/zimrc b/zsh/zimrc
new file mode 100644
index 0000000..e695306
--- /dev/null
+++ b/zsh/zimrc
@@ -0,0 +1,40 @@
+# Start configuration added by Zim install {{{
+# -------
+# Modules
+# -------
+
+# Sets sane Zsh built-in environment options.
+zmodule environment
+# Provides handy git aliases and functions.
+zmodule git
+# Applies correct bindkeys for input events.
+zmodule input
+# Sets a custom terminal title.
+zmodule termtitle
+# Utility aliases and functions. Adds colour to ls, grep and less.
+zmodule utility
+
+#
+# Prompt
+#
+#
+zmodule gitster
+# Exposes git repository status information to prompts.
+zmodule git-info
+# A customizable version of steeef's prompt theme.
+
+# Additional completion definitions for Zsh.
+zmodule zsh-users/zsh-completions
+# Enables and configures smart and extensive tab completion.
+# completion must be sourced after zsh-users/zsh-completions
+zmodule completion
+# Fish-like autosuggestions for Zsh.
+zmodule zsh-users/zsh-autosuggestions
+# Fish-like syntax highlighting for Zsh.
+# zsh-users/zsh-syntax-highlighting must be sourced after completion
+zmodule zsh-users/zsh-syntax-highlighting
+# Fish-like history search (up arrow) for Zsh.
+# zsh-users/zsh-history-substring-search must be sourced after zsh-users/zsh-syntax-highlighting
+zmodule zsh-users/zsh-history-substring-search
+# }}} End configuration added by Zim install
+
diff --git a/zsh/zshrc b/zsh/zshrc
new file mode 100644
index 0000000..bd441e7
--- /dev/null
+++ b/zsh/zshrc
@@ -0,0 +1,186 @@
+# Start configuration added by Zim install {{{
+#
+# User configuration sourced by interactive shells
+#
+
+# -----------------
+# Zsh configuration
+# -----------------
+
+#
+# History
+#
+
+# Remove older command from the history if a duplicate is to be added.
+setopt HIST_IGNORE_ALL_DUPS
+
+#
+# Input/output
+#
+
+# Set editor default keymap to emacs (`-e`) or vi (`-v`)
+bindkey -e
+
+# Prompt for spelling correction of commands.
+#setopt CORRECT
+
+# Customize spelling correction prompt.
+#SPROMPT='zsh: correct %F{red}%R%f to %F{green}%r%f [nyae]? '
+
+# Remove path separator from WORDCHARS.
+WORDCHARS=${WORDCHARS//[\/]}
+
+
+# --------------------
+# Module configuration
+# --------------------
+
+#
+# completion
+#
+
+# Set a custom path for the completion dump file.
+# If none is provided, the default ${ZDOTDIR:-${HOME}}/.zcompdump is used.
+#zstyle ':zim:completion' dumpfile "${ZDOTDIR:-${HOME}}/.zcompdump-${ZSH_VERSION}"
+
+#
+# git
+#
+
+# Set a custom prefix for the generated aliases. The default prefix is 'G'.
+#zstyle ':zim:git' aliases-prefix 'g'
+
+#
+# input
+#
+
+# Append `../` to your input for each `.` you type after an initial `..`
+#zstyle ':zim:input' double-dot-expand yes
+
+#
+# termtitle
+#
+
+# Set a custom terminal title format using prompt expansion escape sequences.
+# See http://zsh.sourceforge.net/Doc/Release/Prompt-Expansion.html#Simple-Prompt-Escapes
+# If none is provided, the default '%n@%m: %~' is used.
+#zstyle ':zim:termtitle' format '%1~'
+
+#
+# zsh-autosuggestions
+#
+
+# Customize the style that the suggestions are shown with.
+# See https://github.com/zsh-users/zsh-autosuggestions/blob/master/README.md#suggestion-highlight-style
+#ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE='fg=10'
+
+#
+# zsh-syntax-highlighting
+#
+
+# Set what highlighters will be used.
+# See https://github.com/zsh-users/zsh-syntax-highlighting/blob/master/docs/highlighters.md
+ZSH_HIGHLIGHT_HIGHLIGHTERS=(main brackets)
+
+# Customize the main highlighter styles.
+# See https://github.com/zsh-users/zsh-syntax-highlighting/blob/master/docs/highlighters/main.md#how-to-tweak-it
+#typeset -A ZSH_HIGHLIGHT_STYLES
+#ZSH_HIGHLIGHT_STYLES[comment]='fg=10'
+
+# ------------------
+# Initialize modules
+# ------------------
+
+if [[ ! ${ZIM_HOME}/init.zsh -nt ${ZDOTDIR:-${HOME}}/.zimrc ]]; then
+ # Update static initialization script if it does not exist or it's outdated, before sourcing it
+ source ${ZIM_HOME}/zimfw.zsh init -q
+fi
+source ${ZIM_HOME}/init.zsh
+
+# ------------------------------
+# Post-init module configuration
+# ------------------------------
+
+#
+# zsh-history-substring-search
+#
+
+# Bind ^[[A/^[[B manually so up/down works both before and after zle-line-init
+bindkey '^[[A' history-substring-search-up
+bindkey '^[[B' history-substring-search-down
+
+# Bind up and down keys
+zmodload -F zsh/terminfo +p:terminfo
+if [[ -n ${terminfo[kcuu1]} && -n ${terminfo[kcud1]} ]]; then
+ bindkey ${terminfo[kcuu1]} history-substring-search-up
+ bindkey ${terminfo[kcud1]} history-substring-search-down
+fi
+
+bindkey '^P' history-substring-search-up
+bindkey '^N' history-substring-search-down
+bindkey -M vicmd 'k' history-substring-search-up
+bindkey -M vicmd 'j' history-substring-search-down
+# }}} End configuration added by Zim install
+
+# Set name of the theme to load --- if set to "random", it will
+# load a random theme each time oh-my-zsh is loaded, in which case,
+# to know which specific one was loaded, run: echo $RANDOM_THEME
+# See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes
+#ZSH_THEME="robbyrussell"
+
+# Which plugins would you like to load?
+# Standard plugins can be found in $ZSH/plugins/
+# Custom plugins may be added to $ZSH_CUSTOM/plugins/
+# Example format: plugins=(rails git textmate ruby lighthouse)
+# Add wisely, as too many plugins slow down shell startup.
+
+export LANG=en_US.UTF-8
+export EDITOR='vim'
+export FZF_BASE="/usr/bin/fzf"
+
+alias vi="vim"
+alias freq="watch grep \"cpu MHz\" /proc/cpuinfo"
+alias c="clear"
+alias cpu_p="~/.config/i3/cpu_percentage.sh"
+alias screen="screen -U"
+
+#(cat ~/.cache/wal/sequences &)
+#cat ~/.cache/wal/sequences
+#source ~/.cache/wal/colors-tty.sh
+
+#source ~/git/zsh-autocomplete/zsh-autocomplete.plugin.zsh
+
+#nnn cofig
+TERMINAL="alacritty"
+BLK="0B" CHR="0B" DIR="04" EXE="06" REG="00" HARDLINK="06" SYMLINK="06" MISSING="00" ORPHAN="09" FIFO="06" SOCK="0B" OTHER="06"
+#export NNN_COLORS='1234'
+export NNN_FCOLORS="$BLK$CHR$DIR$EXE$REG$HARDLINK$SYMLINK$MISSING$ORPHAN$FIFO$SOCK$OTHER"
+export NNN_PLUG='p:preview-tui;i:imgthumb;m:nmount;k:kdeconnect;g:gpg*;t:mtpmount'
+export NNN_TRASH=1
+export NNN_FIFO=/tmp/nnn.fifo nnn
+source /usr/share/doc/fzf/examples/key-bindings.zsh
+
+export GEM_HOME="$HOME/.gems"
+export PATH="$HOME/.gems/bin:/usr/sbin:$PATH"
+
+#(cat ~/.cache/wal/sequences &)
+
+# Alternative (blocks terminal for 0-3ms)
+#cat ~/.cache/wal/sequences
+
+# To add support for TTYs this line can be optionally added.
+#source ~/.cache/wal/colors-tty.sh
+
+ffs() {
+ firefox --search $1
+}
+
+lks() {
+ search="${1}"
+ links "https://duckduckgo.com/?q=$search"
+}
+
+
+if [ -z "${DISPLAY}" ] && [ "${XDG_VTNR}" -eq 1 ]; then
+ exec startx
+fi