diff --git a/.Xresources b/.Xresources
index bad5b0d..e659733 100644
--- a/.Xresources
+++ b/.Xresources
@@ -39,3 +39,35 @@
*.color7: WHITE2
*.color15: WHITE1
*.color16: ORANGE
+
+! Regular DPI Parameters
+#define DPI 96
+#define BAR_HEIGHT 25
+#define MODULE_MARGIN 2
+#define TRAY_MAXSIZE 15
+#define TRAY_SCALE 1
+#define BORDER_SIZE 2
+#define INNER_GAPS 20
+#define OUTER_GAPS 10
+#define MAXLEN 75
+
+! Dunst
+dunst.geometry-x: OUTER_GAPS
+dunst.geometry-y: BAR_HEIGHT
+dunst.sep-height: BORDER_SIZE
+dunst.padding: OUTER_GAPS
+dunst.horiz-padding: OUTER_GAPS
+dunst.max-icon-size: DPI
+dunst.frame-width: BORDER_SIZE
+dunst.low-background: BACKGROUND
+dunst.low-foreground: FOREGROUND
+dunst.low-frame: PURPLE1
+dunst.normal-background: BACKGROUND
+dunst.normal-foreground: FOREGROUND
+dunst.normal-frame: PURPLE1
+dunst.critical-background: RED1
+dunst.critical-foreground: FOREGROUND
+dunst.critical-frame: PURPLE1
+
+! Display Scaling
+*.dpi: DPI
diff --git a/.config/MangoHud/MangoHud.conf b/.config/MangoHud/MangoHud.conf
index 2af54b1..24c2c0b 100644
--- a/.config/MangoHud/MangoHud.conf
+++ b/.config/MangoHud/MangoHud.conf
@@ -1,7 +1,3 @@
-################### File Generated by GOverlay ###################
-
-
-
cpu_stats
cpu_temp
cpu_color=2e97cb
diff --git a/.config/conky/conky-shcts b/.config/conky/conky-shcts
new file mode 100644
index 0000000..adaaa59
--- /dev/null
+++ b/.config/conky/conky-shcts
@@ -0,0 +1,95 @@
+conky.config = {
+ background = true,
+ update_interval = 1,
+
+ cpu_avg_samples = 2,
+ net_avg_samples = 2,
+ temperature_unit = 'celsius',
+ if_up_strictness = 'address',
+
+ double_buffer = true,
+ no_buffers = true,
+ text_buffer_size = 2048,
+
+ own_window = true,
+ own_window_class = 'conky',
+ own_window_type = 'override',
+ own_window_hints = 'undecorated,sticky,skip_taskbar,skip_pager,below',
+
+ --own_window_colour = '#555555',
+ own_window_transparent = true,
+ own_window_argb_visual = true,
+ own_window_argb_value = 0,
+
+ draw_shades = false,
+ draw_outline = false,
+ draw_borders = false,
+ draw_graph_borders = false,
+
+ alignment = 'top_right',
+ gap_x = 50,
+ --von oben |
+ gap_y = 50,
+ minimum_width = 350,
+ minimum_height = 450,
+ maximum_width = 400,
+ border_inner_margin = 0,
+ border_outer_margin = 20,
+ --xinerama_head = 0,
+
+ override_utf8_locale = true,
+ use_xft = true,
+ font = 'monospace:size=8',
+ xftalpha = 0.8,
+ uppercase = false,
+
+ -- Defining colors
+ default_color = '#FFFFFF',
+ -- Shades of Gray
+ color1 = '#DDDDDD',
+ color2 = '#AAAAAA',
+ color3 = '#FFFFFF',
+ -- Orange EF5A29 green 159a7f
+ color4 = '#808080',
+ -- Green Pihole
+ color5 = '#EF5A29',
+ --color0
+ color6='#b2c8d8',
+ -- color1
+ color7='#b2c8d8',
+ color8 = '#697987', -- DeepSkyBlue 00BFFF grau=323232
+ color9 = '#2d3b41', -- CadetBlue 5F9EA0, light grey
+
+}
+
+conky.text = [[
+${font Play:size=10:style=normal}
+${color2}open terminal - ${alignr}${color}super+enter
+${color2}open browser - ${alignr}${color}super+F1
+${color2}open mail - ${alignr}${color}super+F2
+${color2}open filemanager - ${alignr}${color}super+F3
+${color2}open text - ${alignr}${color}super+F4
+
+#rofi
+${color2}application launcher ... - ${alignr}${color}super+d
+${color2}screenshot - ${alignr}${color}print
+
+${color2}resize window - ${alignr}${color}super+r
+${color2}kill focused - ${alignr}${color}super+c | super+q
+${color2}toggle split direction - ${alignr}${color}super+shift+q
+${color2}toggle floating - ${alignr}${color}super+space
+${color2}toggle fullscreen - ${alignr}${color}super+f
+# switch to workspace
+${color2}switch to workspace 1-8 - ${alignr}${color}super+1-8
+# move focused container to workspace
+${color2}send to workspace 1-8 - ${alignr}${color}super+shift+1-8
+# Move to workspace with focused container
+${color2}move to workspace 1-8 - ${alignr}${color}alt+shift+1-8
+${color2}navigate workspaces - ${alignr}${color}super+ctrl+arrowkeys
+${color2}navigate windows - ${alignr}${color}super+shift+arrowkeys
+${color2}change focus - ${alignr}${color}super+arrowkeys
+${color2}restart i3 inplace - ${alignr}${color}super+shift+r
+${color2}reload config file - ${alignr}${color}super+shift+c
+${color2}logout, reboot, shutdown ... - ${alignr}${color}super+0
+]];
+
diff --git a/.config/conky/conky.conf b/.config/conky/conky.conf
index 58fbdca..64d1285 100644
--- a/.config/conky/conky.conf
+++ b/.config/conky/conky.conf
@@ -154,5 +154,4 @@ ${font Montserrat Light:size=9}${color1}${top_mem name 10} ${color}${font} ${got
# ${font Montserrat Light:size=10}${color1}${alignr}by: Mo Abdrabou${color}${font}
-
]];
diff --git a/.config/emacs b/.config/emacs
index cc53769..5505fbd 160000
--- a/.config/emacs
+++ b/.config/emacs
@@ -1 +1 @@
-Subproject commit cc53769619e38efd9608ab70a060452e937d7041
+Subproject commit 5505fbd6a6e66b7829fe1aec46cca0ff7930cf82
diff --git a/.config/fish/config.fish b/.config/fish/config.fish
index da2abd2..4ae6abc 100644
--- a/.config/fish/config.fish
+++ b/.config/fish/config.fish
@@ -1,20 +1,11 @@
-############
-# GREETING #
-############
function fish_greeting
clear
neofetch
echo "¸.·´¯`·.´¯`·.¸¸.·´¯`·.¸><(((º>"
end
-#############
-# VARIABLES #
-#############
set -U fish_user_paths $fish_user_paths $HOME/.local/bin/
-###########
-# ALIASES #
-###########
# pacman and paru
alias pacsyu='sudo pacman -Syyu' # update only standard pkgs
alias parusua='paru -Sua --noconfirm' # update only AUR pkgs
@@ -50,9 +41,6 @@ alias config="GIT_WORK_TREE=~ GIT_DIR=~/.cfg"
# ssh fix for kitty terminal
alias ssh="kitty +kitten ssh"
-#######
-# TTY #
-#######
if [ "$TERM" = "linux" ]
then
printf %b '\e[40m' '\e[8]' # set default background to color 0 'dracula-bg'
@@ -76,8 +64,5 @@ if [ "$TERM" = "linux" ]
clear
end
-##########
-# PROMPT #
-##########
# Starship Prompt
starship init fish | source
diff --git a/.config/gamemode.ini b/.config/gamemode.ini
index d875e26..9bdfa2c 100644
--- a/.config/gamemode.ini
+++ b/.config/gamemode.ini
@@ -23,7 +23,7 @@ softrealtime=off
; GameMode can renice game processes. You can put any value between 0 and 20 here, the value
; will be negated and applied as a nice value (0 means no change). Defaults to 0.
-renice=0
+renice=10
; By default, GameMode adjusts the iopriority of clients to BE/0, you can put any value
; between 0 and 7 here (with 0 being highest priority), or one of the special values
diff --git a/.config/greenclip.cfg b/.config/greenclip.cfg
index 3cf8fd1..f55d5c8 100644
--- a/.config/greenclip.cfg
+++ b/.config/greenclip.cfg
@@ -7,4 +7,4 @@ Config {
blacklistedApps = [],
trimSpaceFromSelection = True,
enableImageSupport = True
-}
\ No newline at end of file
+}
diff --git a/.config/kitty/kitty.conf b/.config/kitty/kitty.conf
index a2d05cc..7f033d6 100644
--- a/.config/kitty/kitty.conf
+++ b/.config/kitty/kitty.conf
@@ -1,5 +1,3 @@
-# vim:fileencoding=utf-8:ft=conf:foldmethod=marker
-
#: Fonts {{{
#: kitty has very powerful font management. You can configure
@@ -1029,6 +1027,8 @@ clear_all_shortcuts no
#: kitty +kitten hints --hints-offset to zero for all mappings,
#: including the builtin ones.
+#: }}}
+
#: Clipboard {{{
map kitty_mod+c copy_to_clipboard
@@ -1309,6 +1309,4 @@ map kitty_mod+delete clear_terminal reset active
#: }}}
-# }}}
-
include dracula.conf
diff --git a/.config/neofetch/config.conf b/.config/neofetch/config.conf
index 250ac0b..2f88744 100644
--- a/.config/neofetch/config.conf
+++ b/.config/neofetch/config.conf
@@ -12,14 +12,14 @@ print_info() {
info "Shell" shell
# info "Resolution" resolution
# info "DE" de
- # info "WM" wm
+ info "WM" wm
# info "WM Theme" wm_theme
# info "Theme" theme
# info "Icons" icons
# info "Terminal" term
# info "Terminal Font" term_font
- # info "CPU" cpu
- # info "GPU" gpu
+ info "CPU" cpu
+ info "GPU" gpu
# info "GPU Driver" gpu_driver # Linux/macOS only
info "CPU Usage" cpu_usage
info "Memory" memory
@@ -35,9 +35,6 @@ print_info() {
info cols
}
-# Title
-
-
# Hide/Show Fully qualified domain name.
#
# Default: 'off'
@@ -45,10 +42,6 @@ print_info() {
# Flag: --title_fqdn
title_fqdn="off"
-
-# Kernel
-
-
# Shorten the output of the kernel function.
#
# Default: 'on'
@@ -61,10 +54,6 @@ title_fqdn="off"
# off: 'Linux 4.8.9-1-ARCH'
kernel_shorthand="on"
-
-# Distro
-
-
# Shorten the output of the distro function
#
# Default: 'off'
@@ -85,10 +74,6 @@ distro_shorthand="off"
# off: 'Arch Linux'
os_arch="on"
-
-# Uptime
-
-
# Shorten the output of the uptime function
#
# Default: 'on'
@@ -101,10 +86,6 @@ os_arch="on"
# off: '2 days, 10 hours, 3 minutes'
uptime_shorthand="on"
-
-# Memory
-
-
# Show memory pecentage in output.
#
# Default: 'off'
@@ -116,10 +97,6 @@ uptime_shorthand="on"
# off: '1801MiB / 7881MiB'
memory_percent="on"
-
-# Packages
-
-
# Show/Hide Package Manager names.
#
# Default: 'tiny'
@@ -132,10 +109,6 @@ memory_percent="on"
# off: '908'
package_managers="on"
-
-# Shell
-
-
# Show the path to $SHELL
#
# Default: 'off'
@@ -158,10 +131,6 @@ shell_path="off"
# off: 'bash'
shell_version="on"
-
-# CPU
-
-
# CPU speed type
#
# Default: 'bios_limit'
@@ -237,10 +206,6 @@ cpu_cores="logical"
# off: 'Intel i7-6500U (4) @ 3.1GHz'
cpu_temp="F"
-
-# GPU
-
-
# Enable/Disable GPU Brand
#
# Default: 'on'
@@ -271,10 +236,6 @@ gpu_brand="on"
# GPU1: Intel Integrated Graphics
gpu_type="all"
-
-# Resolution
-
-
# Display refresh rate next to each monitor
# Default: 'off'
# Values: 'on', 'off'
@@ -286,10 +247,6 @@ gpu_type="all"
# off: '1920x1080'
refresh_rate="on"
-
-# Gtk Theme / Icons / Font
-
-
# Shorten output of GTK Theme / Icons / Font
#
# Default: 'off'
@@ -324,10 +281,6 @@ gtk2="on"
# off: 'Numix [GTK2]'
gtk3="on"
-
-# IP Address
-
-
# Website to ping for the public IP
#
# Default: 'http://ident.me'
@@ -342,10 +295,6 @@ public_ip_host="http://ident.me"
# Flag: --ip_timeout
public_ip_timeout=2
-
-# Desktop Environment
-
-
# Show Desktop Environment version
#
# Default: 'off'
@@ -353,10 +302,6 @@ public_ip_timeout=2
# Flag: --de_version
de_version="on"
-
-# Disk
-
-
# Which disks to display.
# The values can be any /dev/sdXX, mount point or directory.
# NOTE: By default we only show the disk info for '/'.
@@ -411,10 +356,6 @@ disk_subtitle="mount"
# off: 'Disk (/): 74G / 118G'
disk_percent="on"
-
-# Song
-
-
# Manually specify a music player.
#
# Default: 'auto'
@@ -493,10 +434,6 @@ song_shorthand="off"
# Example: mpc_args=(-h HOST -P PASSWORD)
mpc_args=()
-
-# Text Colors
-
-
# Text Colors
#
# Default: 'distro'
@@ -511,10 +448,6 @@ mpc_args=()
# colors=(4 6 1 8 8 6) - Text is colored in the order above.
colors=(distro)
-
-# Text Options
-
-
# Toggle bold text
#
# Default: 'on'
@@ -548,10 +481,6 @@ underline_char="-"
# separator=" =": 'WM = dwm'
separator=":"
-
-# Color Blocks
-
-
# Color block range
# The range of colors to print.
#
@@ -603,9 +532,6 @@ block_height=1
# col_offset=7 - Leave 7 spaces then print the colors
col_offset="auto"
-# Progress Bars
-
-
# Bar characters
#
# Default: '-', '='
@@ -646,7 +572,6 @@ bar_length=15
bar_color_elapsed="distro"
bar_color_total="distro"
-
# Info display
# Display a bar with the info.
#
@@ -667,10 +592,6 @@ memory_display="off"
battery_display="off"
disk_display="off"
-
-# Backend Settings
-
-
# Image backend.
#
# Default: 'ascii'
@@ -693,10 +614,6 @@ image_backend="ascii"
# wallpaper will be used.
image_source="auto"
-
-# Ascii Options
-
-
# Ascii distro
# Which distro's ascii art to display.
#
@@ -764,10 +681,6 @@ ascii_colors=(distro)
# Flag: --ascii_bold
ascii_bold="on"
-
-# Image Options
-
-
# Image loop
# Setting this to on will make neofetch redraw the image constantly until
# Ctrl+C is pressed. This fixes display issues in some terminal emulators.
@@ -836,9 +749,6 @@ xoffset=0
# Flag: --bg_color
background_color=
-
-# Misc Options
-
# Stdout mode
# Turn off all colors and disables image backend (ASCII/Image).
# Useful for piping into another command.
diff --git a/.config/picom/picom.conf b/.config/picom/picom.conf
new file mode 100644
index 0000000..70cab8f
--- /dev/null
+++ b/.config/picom/picom.conf
@@ -0,0 +1,502 @@
+# requires https://github.com/jonaburg/picom
+
+# length of animation in milliseconds (default: 300)
+transition-length = 150;
+
+# animation easing on the x-axis (default: 0.1)
+transition-pow-x = 0.1;
+
+# animation easing on the y-axis (default: 0.1)
+transition-pow-y = 0.1;
+
+#animation easing on the window width (default: 0.1)
+transition-pow-w = 0.1;
+
+# animation easing on the window height (default: 0.1)
+transition-pow-h = 0.1;
+
+# whether to animate window size changes (default: true)
+size-transition = true;
+
+# whether to animate new windows from the center of the screen (default: false)
+spawn-center-screen = false;
+
+# whether to animate new windows from their own center (default: true)
+spawn-center = true;
+
+# Whether to animate down scaling (some programs handle this poorly) (default: false)
+no-scale-down = true;
+
+# requires: https://github.com/sdhand/compton or https://github.com/jonaburg/picom
+corner-radius = 10.0;
+rounded-corners-exclude = [
+ # "window_type = 'normal'",
+ # "class_g = 'awesome'",
+ # "class_g = 'URxvt'",
+ # "class_g = 'XTerm'",
+ # "class_g = 'kitty'",
+ # "class_g = 'Alacritty'",
+ "class_g = 'Polybar'",
+ # "class_g = 'code-oss'",
+ #"class_g = 'TelegramDesktop'",
+ # "class_g = 'firefox'",
+ # "class_g = 'Thunderbird'"
+];
+round-borders = 1;
+round-borders-exclude = [
+ #"class_g = 'TelegramDesktop'",
+];
+
+# 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 = false;
+
+# 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;
+
+# Avoid drawing shadows on dock/panel windows. This option is deprecated,
+# you should use the *wintypes* option in your config file instead.
+#
+# no-dock-shadow = false
+
+# Don't draw shadows on drag-and-drop windows. This option is deprecated,
+# you should use the *wintypes* option in your config file instead.
+#
+# no-dnd-shadow = false
+
+# 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
+
+# Do not paint shadows on shaped windows. Note shaped windows
+# here means windows setting its shape through X Shape extension.
+# Those using ARGB background is beyond our control.
+# Deprecated, use
+# shadow-exclude = 'bounding_shaped'
+# or
+# shadow-exclude = 'bounding_shaped && !rounded_corners'
+# instead.
+#
+# shadow-ignore-shaped = ''
+
+# 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'",
+ # "class_g = 'slop'",
+ # "class_g = 'Polybar'",
+ # "_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
+
+# 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.
+# don't need this, we disable fading for all normal windows with wintypes: {}
+fade-exclude = [
+ # "class_g = 'slop'" # maim
+]
+
+# Do not fade on window open/close.
+# no-fading-openclose = false
+no-fading-openclose = true
+
+# Do not fade destroyed ARGB windows with WM frame. Workaround of bugs in Openbox, Fluxbox, etc.
+# no-fading-destroyed-argb = false
+
+# Opacity of inactive windows. (0.1 - 1.0, defaults to 1.0)
+inactive-opacity = 1
+# inactive-opacity = 0.8;
+
+# Opacity of window titlebars and borders. (0.1 - 1.0, disabled by default)
+frame-opacity = 1.0
+# frame-opacity = 0.7;
+
+# Default opacity for dropdown menus and popup menus. (0.0 - 1.0, defaults to 1.0)
+# menu-opacity = 1.0
+# menu-opacity is depreciated use dropdown-menu and popup-menu instead.
+
+#If using these 2 below change their values in line 530 & 531 aswell
+# popup_menu = { opacity = 0.8; }
+popup_menu = { opacity = 1.0; }
+# dropdown_menu = { opacity = 0.8; }
+dropdown_menu = { opacity = 1.0; }
+
+
+# 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 always be considered focused.
+# focus-exclude = []
+focus-exclude = [
+ # "class_g = 'Cairo-clock'",
+ # "class_g = 'Bar'", # lemonbar
+ # "class_g = 'slop'" # maim
+];
+
+# 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 = []
+opacity-rule = [
+ # "80:class_g = 'Bar'", # lemonbar
+ # "100:class_g = 'slop'", # maim
+ # "100:class_g = 'XTerm'",
+ # "100:class_g = 'URxvt'",
+ # "100:class_g = 'kitty'",
+ # "100:class_g = 'Alacritty'",
+ # "80:class_g = 'Polybar'",
+ # "100:class_g = 'code-oss'",
+ # "100:class_g = 'Meld'",
+ # "70:class_g = 'TelegramDesktop'",
+ # "90:class_g = 'Joplin'",
+ # "100:class_g = 'firefox'",
+ # "100:class_g = 'Thunderbird'"
+];
+
+# Parameters for background blurring, see the *BLUR* section for more information.
+# blur-method =
+# blur-size = 12
+#
+# blur-deviation = false
+
+# 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 = true;
+
+# 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";
+
+blur: {
+ # requires: https://github.com/ibhagwan/picom
+ method = "kawase";
+ #method = "kernel";
+ strength = 7;
+ # deviation = 1.0;
+ # kernel = "11x11gaussian";
+ background = false;
+ background-frame = false;
+ background-fixed = false;
+ kern = "3x3box";
+}
+
+# Exclude conditions for background blur.
+blur-background-exclude = [
+ #"window_type = 'dock'",
+ #"window_type = 'desktop'",
+ #"class_g = 'URxvt'",
+ #
+ # prevents picom from blurring the background
+ # when taking selection screenshot with `main`
+ # https://github.com/naelstrof/maim/issues/130
+ "class_g = 'slop'",
+ "_GTK_FRAME_EXTENTS@:c"
+];
+
+# 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.
+#
+experimental-backends = true;
+backend = "glx";
+#backend = "xrender";
+
+
+# Enable/disable VSync.
+# vsync = false
+vsync = false
+
+# 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
+
+# Limit picom to repaint at most once every 1 / 'refresh_rate' second to
+# boost performance. This should not be used with
+# vsync drm/opengl/opengl-oml
+# as they essentially does sw-opti's job already,
+# unless you wish to specify a lower refresh rate than the actual value.
+#
+# sw-opti =
+
+# 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. paint-on-overlay may make the flickering less obvious.
+#
+# 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 (Causing Weird Black semi opaque rectangles when terminal is opened)
+#Changing use-damage to false fixes the problem
+use-damage = false
+
+# 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 = "info";
+
+# 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:
+{
+ normal = { fade = false; shadow = false; }
+ tooltip = { fade = true; shadow = true; opacity = 0.75; focus = true; full-shadow = false; };
+ dock = { shadow = false; }
+ dnd = { shadow = false; }
+ # popup_menu = { opacity = 0.8; }
+ popup_menu = { opacity = 1.0; }
+ # dropdown_menu = { opacity = 0.8; }
+ dropdown_menu = { opacity = 1.0; }
+};
diff --git a/.config/picom/toggle_picom.sh b/.config/picom/toggle_picom.sh
new file mode 100755
index 0000000..41743f5
--- /dev/null
+++ b/.config/picom/toggle_picom.sh
@@ -0,0 +1,67 @@
+#!/bin/bash
+#!/bin/bash
+
+helpmenu() {
+ echo "Script to toggle picom ON/OFF. Use only one argument at a time."
+ echo "Usage: toggle_picom.sh [--toggle | -t] [--on] [--off] [--help | -h]"
+ echo " - Toggle: toggle_picom.sh OR toggle_picom.sh --toggle OR toggle_picom.sh -t"
+ echo " - Turn On: toggle_picom.sh --on"
+ echo " - Turn Off: toggle_picom.sh --off"
+ echo " - Help: toggle_picom.sh --help OR toggle_picom.sh -h"
+}
+
+check_running() {
+ if pgrep -x picom >/dev/null; then
+ echo 1
+ else
+ echo 0
+ fi
+}
+
+turn_on() {
+ notify-send "Turning Picom ON"
+
+ if [ $(check_running) -eq '0' ]; then
+ picom --config /home/sravan/.config/picom/picom.conf &
+ fi
+}
+
+turn_off() {
+ notify-send "Turning Picom OFF"
+
+ if [ $(check_running) -eq '1' ]; then
+ killall picom
+ fi
+}
+
+toggle() {
+ if [ $(check_running) -eq '1' ]; then
+ turn_off
+ else
+ turn_on
+ fi
+}
+
+main() {
+ if [ $# -eq 0 ]; then
+ # No arguments
+ toggle
+ else
+ case $1 in
+ --help | -h)
+ helpmenu
+ ;;
+ --toggle | -t)
+ toggle
+ ;;
+ --on)
+ turn_on
+ ;;
+ --off)
+ turn_off
+ ;;
+ esac
+ fi
+}
+
+main $@
diff --git a/.config/rofi/config.rasi b/.config/rofi/config.rasi
new file mode 100644
index 0000000..016857b
--- /dev/null
+++ b/.config/rofi/config.rasi
@@ -0,0 +1,152 @@
+configuration {
+ modi: "window,drun,combi,run,clipboard:greenclip print,ssh";
+/* width: 50;*/
+/* lines: 15;*/
+/* columns: 1;*/
+ font: "NotoSans Nerd Font 12";
+/* bw: 1;*/
+/* location: 0;*/
+/* padding: 5;*/
+/* yoffset: 0;*/
+/* xoffset: 0;*/
+/* fixed-num-lines: true;*/
+ show-icons: true;
+ terminal: "kitty";
+/* ssh-client: "ssh";*/
+/* ssh-command: "{terminal} -e {ssh-client} {host} [-p {port}]";*/
+/* run-command: "{cmd}";*/
+/* run-list-command: "";*/
+/* run-shell-command: "{terminal} -e {cmd}";*/
+/* window-command: "wmctrl -i -R {window}";*/
+/* window-match-fields: "all";*/
+ icon-theme: "Papirus-Dark";
+/* drun-match-fields: "name,generic,exec,categories";*/
+/* drun-show-actions: false;*/
+/* drun-display-format: "{name} [({generic})]";*/
+/* disable-history: false;*/
+/* ignored-prefixes: "";*/
+/* sort: false;*/
+/* sorting-method: ;*/
+/* case-sensitive: false;*/
+/* cycle: true;*/
+/* sidebar-mode: false;*/
+/* eh: 1;*/
+/* auto-select: false;*/
+/* parse-hosts: false;*/
+/* parse-known-hosts: true;*/
+ combi-modi: "window,drun";
+/* matching: "normal";*/
+/* tokenize: true;*/
+/* m: "-5";*/
+/* line-margin: 2;*/
+/* line-padding: 1;*/
+/* filter: ;*/
+/* separator-style: "dash";*/
+/* hide-scrollbar: false;*/
+/* fullscreen: false;*/
+/* fake-transparency: false;*/
+/* dpi: -1;*/
+/* threads: 0;*/
+/* scrollbar-width: 8;*/
+/* scroll-method: 0;*/
+/* fake-background: "screenshot";*/
+/* window-format: "{w} {c} {t}";*/
+/* click-to-exit: true;*/
+/* show-match: true;*/
+/* theme: ;*/
+/* color-normal: ;*/
+/* color-urgent: ;*/
+/* color-active: ;*/
+/* color-window: ;*/
+/* max-history-size: 25;*/
+/* combi-hide-mode-prefix: false;*/
+/* matching-negate-char: '-' /* unsupported */;*/
+/* cache-dir: ;*/
+/* pid: "/run/user/1000/rofi.pid";*/
+/* display-window: ;*/
+/* display-windowcd: ;*/
+/* display-run: ;*/
+/* display-ssh: ;*/
+/* display-drun: ;*/
+/* display-combi: ;*/
+/* display-keys: ;*/
+/* kb-primary-paste: "Control+V,Shift+Insert";*/
+/* kb-secondary-paste: "Control+v,Insert";*/
+/* kb-clear-line: "Control+w";*/
+/* kb-move-front: "Control+a";*/
+/* kb-move-end: "Control+e";*/
+/* kb-move-word-back: "Alt+b,Control+Left";*/
+/* kb-move-word-forward: "Alt+f,Control+Right";*/
+/* kb-move-char-back: "Left,Control+b";*/
+/* kb-move-char-forward: "Right,Control+f";*/
+/* kb-remove-word-back: "Control+Alt+h,Control+BackSpace";*/
+/* kb-remove-word-forward: "Control+Alt+d";*/
+/* kb-remove-char-forward: "Delete,Control+d";*/
+/* kb-remove-char-back: "BackSpace,Shift+BackSpace,Control+h";*/
+/* kb-remove-to-eol: "Control+k";*/
+/* kb-remove-to-sol: "Control+u";*/
+/* kb-accept-entry: "Control+j,Control+m,Return,KP_Enter";*/
+/* kb-accept-custom: "Control+Return";*/
+/* kb-accept-alt: "Shift+Return";*/
+/* kb-delete-entry: "Shift+Delete";*/
+/* kb-mode-next: "Shift+Right,Control+Tab";*/
+/* kb-mode-previous: "Shift+Left,Control+ISO_Left_Tab";*/
+/* kb-row-left: "Control+Page_Up";*/
+/* kb-row-right: "Control+Page_Down";*/
+/* kb-row-up: "Up,Control+p,ISO_Left_Tab";*/
+/* kb-row-down: "Down,Control+n";*/
+/* kb-row-tab: "Tab";*/
+/* kb-page-prev: "Page_Up";*/
+/* kb-page-next: "Page_Down";*/
+/* kb-row-first: "Home,KP_Home";*/
+/* kb-row-last: "End,KP_End";*/
+/* kb-row-select: "Control+space";*/
+/* kb-screenshot: "Alt+S";*/
+/* kb-ellipsize: "Alt+period";*/
+/* kb-toggle-case-sensitivity: "grave,dead_grave";*/
+/* kb-toggle-sort: "Alt+grave";*/
+/* kb-cancel: "Escape,Control+g,Control+bracketleft";*/
+/* kb-custom-1: "Alt+1";*/
+/* kb-custom-2: "Alt+2";*/
+/* kb-custom-3: "Alt+3";*/
+/* kb-custom-4: "Alt+4";*/
+/* kb-custom-5: "Alt+5";*/
+/* kb-custom-6: "Alt+6";*/
+/* kb-custom-7: "Alt+7";*/
+/* kb-custom-8: "Alt+8";*/
+/* kb-custom-9: "Alt+9";*/
+/* kb-custom-10: "Alt+0";*/
+/* kb-custom-11: "Alt+exclam";*/
+/* kb-custom-12: "Alt+at";*/
+/* kb-custom-13: "Alt+numbersign";*/
+/* kb-custom-14: "Alt+dollar";*/
+/* kb-custom-15: "Alt+percent";*/
+/* kb-custom-16: "Alt+dead_circumflex";*/
+/* kb-custom-17: "Alt+ampersand";*/
+/* kb-custom-18: "Alt+asterisk";*/
+/* kb-custom-19: "Alt+parenleft";*/
+/* kb-select-1: "Super+1";*/
+/* kb-select-2: "Super+2";*/
+/* kb-select-3: "Super+3";*/
+/* kb-select-4: "Super+4";*/
+/* kb-select-5: "Super+5";*/
+/* kb-select-6: "Super+6";*/
+/* kb-select-7: "Super+7";*/
+/* kb-select-8: "Super+8";*/
+/* kb-select-9: "Super+9";*/
+/* kb-select-10: "Super+0";*/
+/* ml-row-left: "ScrollLeft";*/
+/* ml-row-right: "ScrollRight";*/
+/* ml-row-up: "ScrollUp";*/
+/* ml-row-down: "ScrollDown";*/
+/* me-select-entry: "MousePrimary";*/
+/* me-accept-entry: "MouseDPrimary";*/
+/* me-accept-custom: "Control+MouseDPrimary";*/
+}
+
+@import "./themes/centertab-dracula.rasi"
+/* @import "./themes/dmenu-dracula.rasi" */
+/* @import "./themes/dracula-blurry-full.rasi" */
+/* @import "./themes/dracula.rasi" */
+/* @import "./themes/sidetab-dracula.rasi" */
+/* @import "./themes/slate-dracula.rasi" */
diff --git a/.config/rofi/themes/centertab-dracula.rasi b/.config/rofi/themes/centertab-dracula.rasi
new file mode 100644
index 0000000..c7c85e9
--- /dev/null
+++ b/.config/rofi/themes/centertab-dracula.rasi
@@ -0,0 +1,138 @@
+/**
+ * ROFI Color theme: centertab-dracula
+ * User: balajsra
+ * Copyright: deadguy & Sravan Balaji
+ */
+
+configuration {
+ display-drun: "launch";
+ display-run: "execute";
+ display-window: "window";
+ display-combi: "combi";
+ show-icons: true;
+ sidebar-mode: false;
+ font: "NotoSans Nerd Font 12";
+}
+
+* {
+ background-color: #282a36;
+ text-color: #f8f8f2;
+ selbg: #bd93f9;
+ actbg: #44475a;
+ urgbg: #ff5555;
+ winbg: #50fa7b;
+
+ selected-normal-foreground: @winbg;
+ normal-foreground: @text-color;
+ selected-normal-background: @actbg;
+ normal-background: @background-color;
+
+ selected-urgent-foreground: @background-color;
+ urgent-foreground: @text-color;
+ selected-urgent-background: @urgbg;
+ urgent-background: @background-color;
+
+ selected-active-foreground: @winbg;
+ active-foreground: @text-color;
+ selected-active-background: @actbg;
+ active-background: @selbg;
+
+ line-margin: 2;
+ line-padding: 2;
+ separator-style: "none";
+ hide-scrollbar: "true";
+ margin: 0;
+ padding: 0;
+}
+
+window {
+ location: center;
+ anchor: center;
+ height: 75%;
+ width: 75%;
+ orientation: horizontal;
+ children: [mainbox];
+}
+
+mainbox {
+ spacing: 0.8em;
+ children: [ entry, listview, mode-switcher ];
+}
+
+button {
+ padding: 5px 2px;
+}
+
+button selected {
+ background-color: @active-background;
+ text-color: @background-color;
+}
+
+inputbar {
+ padding: 5px;
+ spacing: 5px;
+}
+
+listview {
+ spacing: 0.5em;
+ dynamic: false;
+ cycle: true;
+}
+
+element {
+ padding: 10px;
+}
+
+entry {
+ expand: false;
+ text-color: @normal-foreground;
+ vertical-align: 1;
+ padding: 5px;
+}
+
+element normal.normal {
+ background-color: @normal-background;
+ text-color: @normal-foreground;
+}
+
+element normal.urgent {
+ background-color: @urgent-background;
+ text-color: @urgent-foreground;
+}
+
+element normal.active {
+ background-color: @active-background;
+ text-color: @active-foreground;
+}
+
+element selected.normal {
+ background-color: @selected-normal-background;
+ text-color: @selected-normal-foreground;
+ border: 0 5px solid 0 0;
+ border-color: @active-background;
+}
+
+element selected.urgent {
+ background-color: @selected-urgent-background;
+ text-color: @selected-urgent-foreground;
+}
+
+element selected.active {
+ background-color: @selected-active-background;
+ text-color: @selected-active-foreground;
+}
+
+element alternate.normal {
+ background-color: @normal-background;
+ text-color: @normal-foreground;
+}
+
+element alternate.urgent {
+ background-color: @urgent-background;
+ text-color: @urgent-foreground;
+}
+
+element alternate.active {
+ background-color: @active-background;
+ text-color: @active-foreground;
+}
diff --git a/.config/rofi/themes/dmenu-dracula.rasi b/.config/rofi/themes/dmenu-dracula.rasi
new file mode 100644
index 0000000..00f1d8a
--- /dev/null
+++ b/.config/rofi/themes/dmenu-dracula.rasi
@@ -0,0 +1,43 @@
+/**
+ * ROFI Color theme: dmenu-dracula
+ * User: balajsra
+ * Copyright: Sravan Balaji
+ */
+
+* {
+ background-color: #282a36;
+ text-color: #f8f8f2;
+ font: "NotoSans Nerd Font 12";
+}
+
+#window {
+ anchor: north;
+ location: north;
+ width: 100%;
+ padding: 2px 5px 2px 5px; /* top right bottom left */
+ children: [ horibox ];
+}
+
+#horibox {
+ orientation: horizontal;
+ children: [ prompt, entry, listview ];
+}
+
+#listview {
+ layout: horizontal;
+ spacing: 10px;
+ lines: 100;
+}
+
+#entry {
+ expand: false;
+ width: 10em;
+}
+
+#element {
+ padding: 1px 5px 1px 5px; /* top right bottom left */
+}
+#element selected {
+ background-color: #bd93f9;
+ text-color: #282a36;
+}
diff --git a/.config/rofi/themes/dracula-blurry-full.rasi b/.config/rofi/themes/dracula-blurry-full.rasi
new file mode 100644
index 0000000..aca75ca
--- /dev/null
+++ b/.config/rofi/themes/dracula-blurry-full.rasi
@@ -0,0 +1,138 @@
+/*
+ *
+ * Author : Aditya Shakya (adi1090x)
+ * Mail : adi1090x@gmail.com
+ * Github : @adi1090x
+ * Reddit : @adi1090x
+ *
+ * Dracula Theme Colors : Sravan Balaji (balajsra)
+ * Mail: balajsra@umich.edu
+ * Github: @balajsra
+ */
+
+configuration {
+ drun-display-format: "{name}";
+ threads: 0;
+ scroll-method: 0;
+ disable-history: false;
+ fullscreen: false;
+ hide-scrollbar: true;
+ sidebar-mode: false;
+}
+
+* {
+ background: #00000000;
+ background-color: #282a36cc;
+ background-entry: #44475acc;
+ background-alt: #44475acc;
+ foreground: #f8f8f2cc;
+ foreground-selected: #50fa7bcc;
+ urgent: #ff5555cc;
+ urgent-selected: #ff5555cc;
+}
+
+window {
+ transparency: "real";
+ background-color: @background;
+ text-color: @foreground;
+ height: 100%;
+ width: 100%;
+ location: northwest;
+ anchor: northwest;
+ x-offset: 0;
+ y-offset: 0;
+}
+
+prompt {
+ enabled: false;
+}
+
+inputbar {
+ background-color: @background-alt;
+ text-color: @foreground;
+ expand: false;
+ border-radius: 6px;
+ margin: 0px 430px 0px 430px;
+ padding: 10px 10px 10px 10px;
+ position: north;
+}
+
+entry {
+ background-color: @background;
+ text-color: @foreground;
+ placeholder-color: @foreground;
+ expand: true;
+ horizontal-align: 0.5;
+ placeholder: "Search applications";
+ blink: true;
+}
+
+case-indicator {
+ background-color: @background;
+ text-color: @foreground;
+ spacing: 0;
+}
+
+listview {
+ background-color: @background;
+ columns: 7;
+ spacing: 4px;
+ cycle: false;
+ dynamic: true;
+ layout: vertical;
+}
+
+mainbox {
+ background-color: @background-color;
+ children: [ inputbar, listview ];
+ spacing: 25px;
+ padding: 70px 135px 55px 135px;
+}
+
+element {
+ background-color: @background;
+ text-color: @foreground;
+ orientation: vertical;
+ border-radius: 9px;
+ padding: 20px 0px 20px 0px;
+}
+
+element-icon {
+ size: 65px;
+ border: 0px;
+}
+
+element-text {
+ expand: true;
+ horizontal-align: 0.5;
+ vertical-align: 0.5;
+ margin: 5px 10px 0px 10px;
+}
+
+element normal.urgent,
+element alternate.urgent {
+ background-color: @urgent;
+ text-color: @foreground;
+ border-radius: 9px;
+}
+
+element normal.active,
+element alternate.active {
+ background-color: @background-alt;
+ text-color: @foreground;
+}
+
+element selected {
+ background-color: @background-alt;
+ text-color: @foreground-selected;
+}
+
+element selected.urgent {
+ background-color: @urgent-selected;
+ text-color: @foreground;
+}
+
+element selected.active {
+ background-color: @background-alt;
+ color: @foreground-selected;
+}
diff --git a/.config/rofi/themes/dracula.rasi b/.config/rofi/themes/dracula.rasi
new file mode 100644
index 0000000..e2eb674
--- /dev/null
+++ b/.config/rofi/themes/dracula.rasi
@@ -0,0 +1,122 @@
+/*Dracula theme based on the Purple official rofi theme*/
+
+* {
+ font: "Jetbrains Mono 12";
+ foreground: #f8f8f2;
+ background-color: #282a36;
+ active-background: #6272a4;
+ urgent-background: #ff5555;
+ selected-background: @active-background;
+ selected-urgent-background: @urgent-background;
+ selected-active-background: @active-background;
+ separatorcolor: @active-background;
+ bordercolor: @active-background;
+}
+
+#window {
+ background-color: @background;
+ border: 1;
+ border-radius: 6;
+ border-color: @bordercolor;
+ padding: 5;
+}
+#mainbox {
+ border: 0;
+ padding: 0;
+}
+#message {
+ border: 1px dash 0px 0px ;
+ border-color: @separatorcolor;
+ padding: 1px ;
+}
+#textbox {
+ text-color: @foreground;
+}
+#listview {
+ fixed-height: 0;
+ border: 2px dash 0px 0px ;
+ border-color: @bordercolor;
+ spacing: 2px ;
+ scrollbar: false;
+ padding: 2px 0px 0px ;
+}
+#element {
+ border: 0;
+ padding: 1px ;
+}
+#element.normal.normal {
+ background-color: @background;
+ text-color: @foreground;
+}
+#element.normal.urgent {
+ background-color: @urgent-background;
+ text-color: @urgent-foreground;
+}
+#element.normal.active {
+ background-color: @active-background;
+ text-color: @foreground;
+}
+#element.selected.normal {
+ background-color: @selected-background;
+ text-color: @foreground;
+}
+#element.selected.urgent {
+ background-color: @selected-urgent-background;
+ text-color: @foreground;
+}
+#element.selected.active {
+ background-color: @selected-active-background;
+ text-color: @foreground;
+}
+#element.alternate.normal {
+ background-color: @background;
+ text-color: @foreground;
+}
+#element.alternate.urgent {
+ background-color: @urgent-background;
+ text-color: @foreground;
+}
+#element.alternate.active {
+ background-color: @active-background;
+ text-color: @foreground;
+}
+#scrollbar {
+ width: 2px ;
+ border: 0;
+ handle-width: 8px ;
+ padding: 0;
+}
+#sidebar {
+ border: 2px dash 0px 0px ;
+ border-color: @separatorcolor;
+}
+#button.selected {
+ background-color: @selected-background;
+ text-color: @foreground;
+}
+#inputbar {
+ spacing: 0;
+ text-color: @foreground;
+ padding: 1px ;
+}
+#case-indicator {
+ spacing: 0;
+ text-color: @foreground;
+}
+#entry {
+ spacing: 0;
+ text-color: @foreground;
+}
+#prompt {
+ spacing: 0;
+ text-color: @foreground;
+}
+#inputbar {
+ children: [ prompt,textbox-prompt-colon,entry,case-indicator ];
+}
+#textbox-prompt-colon {
+ expand: false;
+ str: ":";
+ margin: 0px 0.3em 0em 0em ;
+ text-color: @foreground;
+}
diff --git a/.config/rofi/themes/sidetab-dracula.rasi b/.config/rofi/themes/sidetab-dracula.rasi
new file mode 100644
index 0000000..cb39c60
--- /dev/null
+++ b/.config/rofi/themes/sidetab-dracula.rasi
@@ -0,0 +1,137 @@
+/**
+ * ROFI Color theme: sidetab-dracula
+ * User: balajsra
+ * Copyright: deadguy & Sravan Balaji
+ */
+
+configuration {
+ display-drun: "Launch";
+ display-run: "Execute";
+ display-window: "Window";
+ show-icons: true;
+ sidebar-mode: true;
+ font: "NotoSans Nerd Font 12";
+}
+
+* {
+ background-color: #282a36;
+ text-color: #f8f8f2;
+ selbg: #bd93f9;
+ actbg: #44475a;
+ urgbg: #ff5555;
+ winbg: #50fa7b;
+
+ selected-normal-foreground: @winbg;
+ normal-foreground: @text-color;
+ selected-normal-background: @actbg;
+ normal-background: @background-color;
+
+ selected-urgent-foreground: @background-color;
+ urgent-foreground: @text-color;
+ selected-urgent-background: @urgbg;
+ urgent-background: @background-color;
+
+ selected-active-foreground: @winbg;
+ active-foreground: @text-color;
+ selected-active-background: @actbg;
+ active-background: @selbg;
+
+ line-margin: 2;
+ line-padding: 2;
+ separator-style: "none";
+ hide-scrollbar: "true";
+ margin: 0;
+ padding: 0;
+}
+
+window {
+ location: west;
+ anchor: west;
+ height: 100%;
+ width: 25%;
+ orientation: horizontal;
+ children: [mainbox];
+}
+
+mainbox {
+ spacing: 0.8em;
+ children: [ entry, listview, mode-switcher ];
+}
+
+button {
+ padding: 5px 2px;
+}
+
+button selected {
+ background-color: @active-background;
+ text-color: @background-color;
+}
+
+inputbar {
+ padding: 5px;
+ spacing: 5px;
+}
+
+listview {
+ spacing: 0.5em;
+ dynamic: false;
+ cycle: true;
+}
+
+element {
+ padding: 10px;
+}
+
+entry {
+ expand: false;
+ text-color: @normal-foreground;
+ vertical-align: 1;
+ padding: 5px;
+}
+
+element normal.normal {
+ background-color: @normal-background;
+ text-color: @normal-foreground;
+}
+
+element normal.urgent {
+ background-color: @urgent-background;
+ text-color: @urgent-foreground;
+}
+
+element normal.active {
+ background-color: @active-background;
+ text-color: @active-foreground;
+}
+
+element selected.normal {
+ background-color: @selected-normal-background;
+ text-color: @selected-normal-foreground;
+ border: 0 5px solid 0 0;
+ border-color: @active-background;
+}
+
+element selected.urgent {
+ background-color: @selected-urgent-background;
+ text-color: @selected-urgent-foreground;
+}
+
+element selected.active {
+ background-color: @selected-active-background;
+ text-color: @selected-active-foreground;
+}
+
+element alternate.normal {
+ background-color: @normal-background;
+ text-color: @normal-foreground;
+}
+
+element alternate.urgent {
+ background-color: @urgent-background;
+ text-color: @urgent-foreground;
+}
+
+element alternate.active {
+ background-color: @active-background;
+ text-color: @active-foreground;
+}
diff --git a/.config/rofi/themes/slate-dracula.rasi b/.config/rofi/themes/slate-dracula.rasi
new file mode 100644
index 0000000..d380a67
--- /dev/null
+++ b/.config/rofi/themes/slate-dracula.rasi
@@ -0,0 +1,51 @@
+/**
+ * ROFI Color theme: slate-dracula
+ * User: balajsra
+ * Copyright: Sravan Balaji
+ */
+
+* {
+ background-color: #282a36;
+ border-color: #bd93f9;
+ text-color: #f8f8f2;
+ spacing: 0;
+ width: 1024px;
+ font: "NotoSans Nerd Font 12";
+}
+
+inputbar {
+ border: 0 0 1px 0; /* top right bottom left */
+ children: [prompt, entry];
+}
+
+prompt {
+ padding: 16px;
+ border: 2px 1px 0 2px; /* top right bottom left */
+}
+
+textbox {
+ background-color: #282a36;
+ border: 0 0 1px 0; /* top right bottom left */
+ border-color: #bd93f9;
+ padding: 8px 16px 8px 16px; /* top right bottom left */
+}
+
+entry {
+ border: 2px 2px 0px 0; /* top right bottom left */
+ padding: 16px;
+}
+
+listview {
+ cycle: true;
+ margin: 0 0 0px 0; /* top right bottom left */
+ scrollbar: true;
+}
+
+element {
+ border: 0 2px 1px 2px; /* top right bottom left */
+ padding: 16px;
+}
+
+element selected {
+ background-color: #44475a;
+}
diff --git a/.config/starship.toml b/.config/starship.toml
index d76285e..3fb11e2 100644
--- a/.config/starship.toml
+++ b/.config/starship.toml
@@ -1,5 +1,3 @@
-# ~/.config/starship.toml
-
# Don't print a new line at the start of the prompt
add_newline = false
diff --git a/.gitconfig b/.gitconfig
index f4b6a71..96ad173 100644
--- a/.gitconfig
+++ b/.gitconfig
@@ -1,13 +1,13 @@
# Sravan Balaji's Git Configuration
# Based on: https://gist.github.com/tdd/470582
[user]
- email = balajsra@umich.edu
- name = Sravan Balaji
+ email = balajsra@umich.edu
+ name = Sravan Balaji
[color]
# Enable colors in color-supporting terminals
ui = auto
[pull]
- rebase = true
+ rebase = true
[alias]
# List available aliases
aliases = !git config --get-regexp alias | sed -re 's/alias\\.(\\S*)\\s(.*)$/\\1 = \\2/g'
diff --git a/.gitignore b/.gitignore
index e7dd8b9..0aed936 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,2 @@
-.cfg
\ No newline at end of file
+.cfg
+*~
diff --git a/.vimrc b/.vimrc
index c887221..cad1ca8 100644
--- a/.vimrc
+++ b/.vimrc
@@ -1,5 +1,3 @@
-" Sravan's Vimrc
-
" Don't try to be vi compatible
set nocompatible
diff --git a/.xinitrc b/.xinitrc
old mode 100644
new mode 100755
index 23281ee..8925fe8
--- a/.xinitrc
+++ b/.xinitrc
@@ -1,19 +1,11 @@
#!/bin/sh
-#
-# ~/.xinitrc
-#
-# Executed by startx (run your window manager from here)
-userresources=$HOME/.Xresources
-usermodmap=$HOME/.Xmodmap
-sysresources=/etc/X11/xinit/.Xresources
-sysmodmap=/etc/X11/xinit/.Xmodmap
+export TERM=xterm-256color # Sets the terminal type
+export SHELL=/usr/bin/fish # Preferred shell
+export EDITOR="emacs -nw" # Default editor
+export BROWSER=vivaldi-stable # Web Browser
+export XDG_CONFIG_HOME=$HOME/.config # Set Config directory
+export QT_QPA_PLATFORMTHEME=qt5ct # QGtkStyle
-if [ -d /etc/X11/xinit/xinitrc.d ] ; then
- for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do
- [ -x "$f" ] && . "$f"
- done
- unset f
-fi
+xrdb ~/.Xresources
-export DESKTOP_SESSION=plasma
-exec startplasma-x11
+exec xmonad
diff --git a/.xmonad b/.xmonad
index b1ec8b9..1bb3509 160000
--- a/.xmonad
+++ b/.xmonad
@@ -1 +1 @@
-Subproject commit b1ec8b9e6be70058c42793d8059bee33b0677f34
+Subproject commit 1bb350973637d6b4706efd02ccaed084c2eac4ec
diff --git a/.zshrc b/.zshrc
index c9abe39..13ba1eb 100644
--- a/.zshrc
+++ b/.zshrc
@@ -185,6 +185,5 @@ alias tb='nc termbin.com 9999'
# Set your countries like --country France --country Germany -- or more.
alias upd='sudo reflector --latest 5 --age 2 --fastest 5 --protocol https --sort rate --save /etc/pacman.d/mirrorlist && cat /etc/pacman.d/mirrorlist && sudo pacman -Syu && sudo updatedb'
-
-## Run paleofetch
-paleofetch
+## Run neofetch
+neofetch
diff --git a/README.org b/README.org
index 3267639..ffbc764 100644
--- a/README.org
+++ b/README.org
@@ -1,5 +1,6 @@
#+title: Personal Dotfiles
#+author: Sravan Balaji
+#+auto_tangle: t
* Installation
@@ -69,6 +70,5598 @@ Pull and update submodules
config git submodule update --init --recursive
#+end_src
+* Git
+
+** Config
+
+#+begin_src gitconfig :tangle .gitconfig
+ # Sravan Balaji's Git Configuration
+ # Based on: https://gist.github.com/tdd/470582
+ [user]
+ email = balajsra@umich.edu
+ name = Sravan Balaji
+ [color]
+ # Enable colors in color-supporting terminals
+ ui = auto
+ [pull]
+ rebase = true
+ [alias]
+ # List available aliases
+ aliases = !git config --get-regexp alias | sed -re 's/alias\\.(\\S*)\\s(.*)$/\\1 = \\2/g'
+ # Command shortcuts
+ ci = commit
+ co = checkout
+ st = status
+ # Display tree-like log, because default log is a pain…
+ lg = log --graph --date=relative --pretty=tformat:'%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%an %ad)%Creset'
+ # Useful when you have to update your last commit
+ # with staged files without editing the commit message.
+ oops = commit --amend --no-edit
+ # Ensure that force-pushing won't lose someone else's work (only mine).
+ push-with-lease = push --force-with-lease
+ # Rebase won’t trigger hooks on each "replayed" commit.
+ # This is an ugly hack that will replay each commit during rebase with the
+ # standard `commit` command which will trigger hooks.
+ rebase-with-hooks = rebase -x 'git reset --soft HEAD~1 && git commit -C HEAD@{1}'
+ # List local commits that were not pushed to remote repository
+ review-local = "!git lg @{push}.."
+ # Edit last commit message
+ reword = commit --amend
+ # Undo last commit but keep changed files in stage
+ uncommit = reset --soft HEAD~1
+ # Remove file(s) from Git but not from disk
+ untrack = rm --cache --
+ [core]
+ # VSCode
+ editor = code --wait
+ # Don't consider trailing space change as a cause for merge conflicts
+ whitespace = -trailing-space
+ [diff]
+ # Use better, descriptive initials (c, i, w) instead of a/b.
+ mnemonicPrefix = true
+ # Show renames/moves as such
+ renames = true
+ # When using --word-diff, assume --word-diff-regex=.
+ wordRegex = .
+ # Display submodule-related information (commit listings)
+ submodule = log
+ # Use VSCode as default diff tool when running `git diff-tool`
+ tool = vscode
+ [difftool "vscode"]
+ cmd = code --wait --diff $LOCAL $REMOTE
+ [fetch]
+ # Auto-fetch submodule changes (sadly, won't auto-update)
+ recurseSubmodules = on-demand
+ [grep]
+ break = true
+ heading = true
+ lineNumber = true
+ # Consider most regexes to be ERE
+ extendedRegexp = true
+ [log]
+ # Use abbrev SHAs whenever possible/relevant instead of full 40 chars
+ abbrevCommit = true
+ # Automatically --follow when given a single path
+ follow = true
+ # Disable decorate for reflog
+ # (because there is no dedicated `reflog` section available)
+ decorate = false
+ [status]
+ # Display submodule rev change summaries in status
+ submoduleSummary = true
+ # Recursively traverse untracked directories to display all contents
+ showUntrackedFiles = all
+#+end_src
+
+** Dotfiles Ignore
+
+#+begin_src gitignore :tangle .gitignore
+ .cfg
+ ,*~
+#+end_src
+
+* Notifications
+** Dunst Notification Daemon
+
+*** Global
+
+#+begin_src conf :tangle .config/dunst/dunstrc
+ [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 = keyboard
+
+ # 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 = "0x0-10+40"
+
+ # 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 = 15
+
+ # 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 = 0
+
+ # Draw a line of "separator_height" pixel height between two
+ # notifications.
+ # Set to 0 to disable.
+ separator_height = 1
+
+ # Padding between text and separator.
+ padding = 8
+
+ # Horizontal padding.
+ horizontal_padding = 10
+
+ # Defines width in pixels of frame around the notification window.
+ # Set to 0 to disable.
+ frame_width = 2
+
+ # Defines color of the frame around the notification window.
+ frame_color = "#aaaaaa"
+
+ # 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 = auto
+
+ # 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.
+ # A client can set the 'transient' hint to bypass this. See the rules
+ # section for how to disable this if necessary
+ idle_threshold = 120
+
+ ### Text ###
+
+ font = Monospace 10
+
+ # 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 | %a %p\n%b"
+
+ # Alignment of message text.
+ # Possible values are "left", "center" and "right".
+ alignment = center
+
+ # Vertical alignment of message text and icon.
+ # Possible values are "top", "center" and "bottom".
+ vertical_alignment = center
+
+ # 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 make an ellipsis in long lines.
+ # Possible values are "start", "middle" and "end".
+ ellipsize = middle
+
+ # Ignore newlines '\n' in notifications.
+ ignore_newline = no
+
+ # Stack together notifications with the same content
+ stack_duplicates = true
+
+ # Hide the count of stacked 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 small icons up to this size, set to 0 to disable. Helpful
+ # for e.g. small files or high-dpi screens. In case of conflict,
+ # max_icon_size takes precedence over this.
+ min_icon_size = 0
+
+ # Scale larger icons down to this size, set to 0 to disable
+ max_icon_size = 96
+
+ # Paths to default icons.
+ icon_path = /usr/share/icons/Papirus-Dark/16x16/status/:/usr/share/icons/Papirus-Dark/16x16/devices/:/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/rofi -dmenu -p dunst:
+
+ # Browser for opening urls in context menu.
+ browser = /usr/bin/vivaldi-stable
+
+ # 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 = true
+
+ # Manage dunst's desire for talking
+ # Can be one of the following values:
+ # crit: Critical features. Dunst aborts
+ # warn: Only non-fatal warnings
+ # mesg: Important Messages
+ # info: all unimportant stuff
+ # debug: all less than unimportant stuff
+ verbosity = mesg
+
+ # Define the corner radius of the notification window
+ # in pixel size. If the radius is 0, you have no rounded
+ # corners.
+ # The radius will be automatically lowered if it exceeds half of the
+ # notification height to avoid clipping text and/or icons.
+ corner_radius = 10
+
+ # Ignore the dbus closeNotification message.
+ # Useful to enforce the timeout set by dunst configuration. Without this
+ # parameter, an application may close the notification sent before the
+ # user defined timeout.
+ ignore_dbusclose = 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
+
+ ### mouse
+
+ # Defines list of actions for each mouse event
+ # Possible values are:
+ # * none: Don't do anything.
+ # * do_action: If the notification has exactly one action, or one is marked as default,
+ # invoke it. If there are multiple and no default, open the context menu.
+ # * close_current: Close current notification.
+ # * close_all: Close all notifications.
+ # These values can be strung together for each mouse event, and
+ # will be executed in sequence.
+ mouse_left_click = close_current
+ mouse_middle_click = close_all
+ mouse_right_click = do_action, close_current
+#+end_src
+
+*** Experimental
+
+#+begin_src conf :tangle .config/dunst/dunstrc
+ # 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
+#+end_src
+
+*** Shortcuts
+
+#+begin_src conf :tangle .config/dunst/dunstrc
+ [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
+#+end_src
+
+*** Urgency Low
+
+#+begin_src conf :tangle .config/dunst/dunstrc
+ [urgency_low]
+ # IMPORTANT: colors have to be defined in quotation marks.
+ # Otherwise the "#" and following would be interpreted as a comment.
+ # background = "#222222"
+ # foreground = "#888888"
+ frame_color = "#bd93f9"
+ background = "#282a36"
+ foreground = "#f8f8f2"
+ timeout = 10
+ # Icon for notifications with low urgency, uncomment to enable
+ #icon = /path/to/icon
+#+end_src
+
+*** Urgency Normal
+
+#+begin_src conf :tangle .config/dunst/dunstrc
+ [urgency_normal]
+ # background = "#285577"
+ # foreground = "#ffffff"
+ frame_color = "#bd93f9"
+ background = "#282a36"
+ foreground = "#f8f8f2"
+ timeout = 10
+ # Icon for notifications with normal urgency, uncomment to enable
+ #icon = /path/to/icon
+#+end_src
+
+*** Urgency Critical
+
+#+begin_src conf :tangle .config/dunst/dunstrc
+ [urgency_critical]
+ # background = "#900000"
+ # foreground = "#ffffff"
+ frame_color = "#282a36"
+ background = "#ff5555"
+ foreground = "#f8f8f2"
+ timeout = 0
+ # Icon for notifications with critical urgency, uncomment to enable
+ #icon = /path/to/icon
+#+end_src
+
+*** Miscellaneous
+
+#+begin_src conf :tangle .config/dunst/dunstrc
+ # 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 (discouraged, see desktop_entry)
+ # body
+ # category
+ # desktop_entry
+ # icon
+ # match_transient
+ # msg_urgency
+ # stack_tag
+ # summary
+ #
+ # and you can override the
+ # background
+ # foreground
+ # format
+ # frame_color
+ # fullscreen
+ # new_icon
+ # set_stack_tag
+ # set_transient
+ # timeout
+ # urgency
+ #
+ # Shell-like globbing will get expanded.
+ #
+ # Instead of the appname filter, it's recommended to use the desktop_entry filter.
+ # GLib based applications export their desktop-entry name. In comparison to the appname,
+ # the desktop-entry won't get localized.
+ #
+ # 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.
+
+ # Disable the transient hint so that idle_threshold cannot be bypassed from the
+ # client
+ #[transient_disable]
+ # match_transient = yes
+ # set_transient = no
+ #
+ # Make the handling of transient notifications more strict by making them not
+ # be placed in history.
+ #[transient_history_ignore]
+ # match_transient = yes
+ # history_ignore = yes
+
+ # fullscreen values
+ # show: show the notifications, regardless if there is a fullscreen window opened
+ # delay: displays the new notification, if there is no fullscreen window active
+ # If the notification is already drawn, it won't get undrawn.
+ # pushback: same as delay, but when switching into fullscreen, the notification will get
+ # withdrawn from screen again and will get delayed like a new notification
+ #[fullscreen_delay_everything]
+ # fullscreen = delay
+ #[fullscreen_show_critical]
+ # msg_urgency = critical
+ # fullscreen = show
+
+ #[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
+
+ #[skip-display]
+ # # This notification will not be displayed, but will be included in the history
+ # summary = "foobar"
+ # skip_display = 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
+ #
+ #[stack-volumes]
+ # appname = "some_volume_notifiers"
+ # set_stack_tag = "volume"
+ #
+ # vim: ft=cfg
+#+end_src
+
+*** Launch Script
+
+#+begin_src shell :shebang #!/bin/bash :tangle .config/dunst/launch_dunst.sh
+ #!/bin/bash
+
+ # Get values from Xresources
+ config=~/.config/dunst/dunstrc
+ geometry_x=$(xgetres dunst.geometry-x)
+ geometry_y=$(xgetres dunst.geometry-y)
+ separator_height=$(xgetres dunst.sep-height)
+ padding=$(xgetres dunst.padding)
+ horizontal_padding=$(xgetres dunst.horiz-padding)
+ max_icon_size=$(xgetres dunst.max-icon-size)
+ frame_width=$(xgetres dunst.frame-width)
+ lb=$(xgetres dunst.low-background)
+ lf=$(xgetres dunst.low-foreground)
+ lfr=$(xgetres dunst.low-frame)
+ nb=$(xgetres dunst.normal-background)
+ nf=$(xgetres dunst.normal-foreground)
+ nfr=$(xgetres dunst.normal-frame)
+ cb=$(xgetres dunst.critical-background)
+ cf=$(xgetres dunst.critical-foreground)
+ cfr=$(xgetres dunst.critical-frame)
+
+ # Kill and running dunst instances and start
+ killall dunst;/usr/bin/dunst -config $config \
+ -geometry "0x0-$geometry_x+$geometry_y" \
+ -separator_height "$separator_height" \
+ -padding "$padding" \
+ -horizontal_padding "$horizontal_padding" \
+ -max_icon_size "$max_icon_size" \
+ -frame_width "$frame_width" \
+ -lb "$lb" \
+ -lf "$lf" \
+ -lfr "$lfr" \
+ -nb "$nb" \
+ -nf "$nf" \
+ -nfr "$nfr" \
+ -cb "$cb" \
+ -cf "$cf" \
+ -cfr "$cfr"
+#+end_src
+
+* Application Launcher
+
+** Rofi
+
+*** Configuration
+
+#+begin_src conf :tangle .config/rofi/config.rasi
+ configuration {
+ modi: "window,drun,combi,run,clipboard:greenclip print,ssh";
+ /* width: 50;*/
+ /* lines: 15;*/
+ /* columns: 1;*/
+ font: "NotoSans Nerd Font 12";
+ /* bw: 1;*/
+ /* location: 0;*/
+ /* padding: 5;*/
+ /* yoffset: 0;*/
+ /* xoffset: 0;*/
+ /* fixed-num-lines: true;*/
+ show-icons: true;
+ terminal: "kitty";
+ /* ssh-client: "ssh";*/
+ /* ssh-command: "{terminal} -e {ssh-client} {host} [-p {port}]";*/
+ /* run-command: "{cmd}";*/
+ /* run-list-command: "";*/
+ /* run-shell-command: "{terminal} -e {cmd}";*/
+ /* window-command: "wmctrl -i -R {window}";*/
+ /* window-match-fields: "all";*/
+ icon-theme: "Papirus-Dark";
+ /* drun-match-fields: "name,generic,exec,categories";*/
+ /* drun-show-actions: false;*/
+ /* drun-display-format: "{name} [({generic})]";*/
+ /* disable-history: false;*/
+ /* ignored-prefixes: "";*/
+ /* sort: false;*/
+ /* sorting-method: ;*/
+ /* case-sensitive: false;*/
+ /* cycle: true;*/
+ /* sidebar-mode: false;*/
+ /* eh: 1;*/
+ /* auto-select: false;*/
+ /* parse-hosts: false;*/
+ /* parse-known-hosts: true;*/
+ combi-modi: "window,drun";
+ /* matching: "normal";*/
+ /* tokenize: true;*/
+ /* m: "-5";*/
+ /* line-margin: 2;*/
+ /* line-padding: 1;*/
+ /* filter: ;*/
+ /* separator-style: "dash";*/
+ /* hide-scrollbar: false;*/
+ /* fullscreen: false;*/
+ /* fake-transparency: false;*/
+ /* dpi: -1;*/
+ /* threads: 0;*/
+ /* scrollbar-width: 8;*/
+ /* scroll-method: 0;*/
+ /* fake-background: "screenshot";*/
+ /* window-format: "{w} {c} {t}";*/
+ /* click-to-exit: true;*/
+ /* show-match: true;*/
+ /* theme: ;*/
+ /* color-normal: ;*/
+ /* color-urgent: ;*/
+ /* color-active: ;*/
+ /* color-window: ;*/
+ /* max-history-size: 25;*/
+ /* combi-hide-mode-prefix: false;*/
+ /* matching-negate-char: '-' /* unsupported */;*/
+ /* cache-dir: ;*/
+ /* pid: "/run/user/1000/rofi.pid";*/
+ /* display-window: ;*/
+ /* display-windowcd: ;*/
+ /* display-run: ;*/
+ /* display-ssh: ;*/
+ /* display-drun: ;*/
+ /* display-combi: ;*/
+ /* display-keys: ;*/
+ /* kb-primary-paste: "Control+V,Shift+Insert";*/
+ /* kb-secondary-paste: "Control+v,Insert";*/
+ /* kb-clear-line: "Control+w";*/
+ /* kb-move-front: "Control+a";*/
+ /* kb-move-end: "Control+e";*/
+ /* kb-move-word-back: "Alt+b,Control+Left";*/
+ /* kb-move-word-forward: "Alt+f,Control+Right";*/
+ /* kb-move-char-back: "Left,Control+b";*/
+ /* kb-move-char-forward: "Right,Control+f";*/
+ /* kb-remove-word-back: "Control+Alt+h,Control+BackSpace";*/
+ /* kb-remove-word-forward: "Control+Alt+d";*/
+ /* kb-remove-char-forward: "Delete,Control+d";*/
+ /* kb-remove-char-back: "BackSpace,Shift+BackSpace,Control+h";*/
+ /* kb-remove-to-eol: "Control+k";*/
+ /* kb-remove-to-sol: "Control+u";*/
+ /* kb-accept-entry: "Control+j,Control+m,Return,KP_Enter";*/
+ /* kb-accept-custom: "Control+Return";*/
+ /* kb-accept-alt: "Shift+Return";*/
+ /* kb-delete-entry: "Shift+Delete";*/
+ /* kb-mode-next: "Shift+Right,Control+Tab";*/
+ /* kb-mode-previous: "Shift+Left,Control+ISO_Left_Tab";*/
+ /* kb-row-left: "Control+Page_Up";*/
+ /* kb-row-right: "Control+Page_Down";*/
+ /* kb-row-up: "Up,Control+p,ISO_Left_Tab";*/
+ /* kb-row-down: "Down,Control+n";*/
+ /* kb-row-tab: "Tab";*/
+ /* kb-page-prev: "Page_Up";*/
+ /* kb-page-next: "Page_Down";*/
+ /* kb-row-first: "Home,KP_Home";*/
+ /* kb-row-last: "End,KP_End";*/
+ /* kb-row-select: "Control+space";*/
+ /* kb-screenshot: "Alt+S";*/
+ /* kb-ellipsize: "Alt+period";*/
+ /* kb-toggle-case-sensitivity: "grave,dead_grave";*/
+ /* kb-toggle-sort: "Alt+grave";*/
+ /* kb-cancel: "Escape,Control+g,Control+bracketleft";*/
+ /* kb-custom-1: "Alt+1";*/
+ /* kb-custom-2: "Alt+2";*/
+ /* kb-custom-3: "Alt+3";*/
+ /* kb-custom-4: "Alt+4";*/
+ /* kb-custom-5: "Alt+5";*/
+ /* kb-custom-6: "Alt+6";*/
+ /* kb-custom-7: "Alt+7";*/
+ /* kb-custom-8: "Alt+8";*/
+ /* kb-custom-9: "Alt+9";*/
+ /* kb-custom-10: "Alt+0";*/
+ /* kb-custom-11: "Alt+exclam";*/
+ /* kb-custom-12: "Alt+at";*/
+ /* kb-custom-13: "Alt+numbersign";*/
+ /* kb-custom-14: "Alt+dollar";*/
+ /* kb-custom-15: "Alt+percent";*/
+ /* kb-custom-16: "Alt+dead_circumflex";*/
+ /* kb-custom-17: "Alt+ampersand";*/
+ /* kb-custom-18: "Alt+asterisk";*/
+ /* kb-custom-19: "Alt+parenleft";*/
+ /* kb-select-1: "Super+1";*/
+ /* kb-select-2: "Super+2";*/
+ /* kb-select-3: "Super+3";*/
+ /* kb-select-4: "Super+4";*/
+ /* kb-select-5: "Super+5";*/
+ /* kb-select-6: "Super+6";*/
+ /* kb-select-7: "Super+7";*/
+ /* kb-select-8: "Super+8";*/
+ /* kb-select-9: "Super+9";*/
+ /* kb-select-10: "Super+0";*/
+ /* ml-row-left: "ScrollLeft";*/
+ /* ml-row-right: "ScrollRight";*/
+ /* ml-row-up: "ScrollUp";*/
+ /* ml-row-down: "ScrollDown";*/
+ /* me-select-entry: "MousePrimary";*/
+ /* me-accept-entry: "MouseDPrimary";*/
+ /* me-accept-custom: "Control+MouseDPrimary";*/
+ }
+#+end_src
+
+*** Themes
+
+**** Theme Selection
+
+#+begin_src conf :tangle .config/rofi/config.rasi
+ @import "./themes/centertab-dracula.rasi"
+ /* @import "./themes/dmenu-dracula.rasi" */
+ /* @import "./themes/dracula-blurry-full.rasi" */
+ /* @import "./themes/dracula.rasi" */
+ /* @import "./themes/sidetab-dracula.rasi" */
+ /* @import "./themes/slate-dracula.rasi" */
+#+end_src
+
+**** Centertab Dracula
+
+#+begin_src conf :tangle .config/rofi/themes/centertab-dracula.rasi
+ /**
+ ,* ROFI Color theme: centertab-dracula
+ ,* User: balajsra
+ ,* Copyright: deadguy & Sravan Balaji
+ ,*/
+
+ configuration {
+ display-drun: "launch";
+ display-run: "execute";
+ display-window: "window";
+ display-combi: "combi";
+ show-icons: true;
+ sidebar-mode: false;
+ font: "NotoSans Nerd Font 12";
+ }
+
+ ,* {
+ background-color: #282a36;
+ text-color: #f8f8f2;
+ selbg: #bd93f9;
+ actbg: #44475a;
+ urgbg: #ff5555;
+ winbg: #50fa7b;
+
+ selected-normal-foreground: @winbg;
+ normal-foreground: @text-color;
+ selected-normal-background: @actbg;
+ normal-background: @background-color;
+
+ selected-urgent-foreground: @background-color;
+ urgent-foreground: @text-color;
+ selected-urgent-background: @urgbg;
+ urgent-background: @background-color;
+
+ selected-active-foreground: @winbg;
+ active-foreground: @text-color;
+ selected-active-background: @actbg;
+ active-background: @selbg;
+
+ line-margin: 2;
+ line-padding: 2;
+ separator-style: "none";
+ hide-scrollbar: "true";
+ margin: 0;
+ padding: 0;
+ }
+
+ window {
+ location: center;
+ anchor: center;
+ height: 75%;
+ width: 75%;
+ orientation: horizontal;
+ children: [mainbox];
+ }
+
+ mainbox {
+ spacing: 0.8em;
+ children: [ entry, listview, mode-switcher ];
+ }
+
+ button {
+ padding: 5px 2px;
+ }
+
+ button selected {
+ background-color: @active-background;
+ text-color: @background-color;
+ }
+
+ inputbar {
+ padding: 5px;
+ spacing: 5px;
+ }
+
+ listview {
+ spacing: 0.5em;
+ dynamic: false;
+ cycle: true;
+ }
+
+ element {
+ padding: 10px;
+ }
+
+ entry {
+ expand: false;
+ text-color: @normal-foreground;
+ vertical-align: 1;
+ padding: 5px;
+ }
+
+ element normal.normal {
+ background-color: @normal-background;
+ text-color: @normal-foreground;
+ }
+
+ element normal.urgent {
+ background-color: @urgent-background;
+ text-color: @urgent-foreground;
+ }
+
+ element normal.active {
+ background-color: @active-background;
+ text-color: @active-foreground;
+ }
+
+ element selected.normal {
+ background-color: @selected-normal-background;
+ text-color: @selected-normal-foreground;
+ border: 0 5px solid 0 0;
+ border-color: @active-background;
+ }
+
+ element selected.urgent {
+ background-color: @selected-urgent-background;
+ text-color: @selected-urgent-foreground;
+ }
+
+ element selected.active {
+ background-color: @selected-active-background;
+ text-color: @selected-active-foreground;
+ }
+
+ element alternate.normal {
+ background-color: @normal-background;
+ text-color: @normal-foreground;
+ }
+
+ element alternate.urgent {
+ background-color: @urgent-background;
+ text-color: @urgent-foreground;
+ }
+
+ element alternate.active {
+ background-color: @active-background;
+ text-color: @active-foreground;
+ }
+#+end_src
+
+**** Dmenu Dracula
+
+#+begin_src conf :tangle .config/rofi/themes/dmenu-dracula.rasi
+ /**
+ ,* ROFI Color theme: dmenu-dracula
+ ,* User: balajsra
+ ,* Copyright: Sravan Balaji
+ ,*/
+
+ ,* {
+ background-color: #282a36;
+ text-color: #f8f8f2;
+ font: "NotoSans Nerd Font 12";
+ }
+
+ #window {
+ anchor: north;
+ location: north;
+ width: 100%;
+ padding: 2px 5px 2px 5px; /* top right bottom left */
+ children: [ horibox ];
+ }
+
+ #horibox {
+ orientation: horizontal;
+ children: [ prompt, entry, listview ];
+ }
+
+ #listview {
+ layout: horizontal;
+ spacing: 10px;
+ lines: 100;
+ }
+
+ #entry {
+ expand: false;
+ width: 10em;
+ }
+
+ #element {
+ padding: 1px 5px 1px 5px; /* top right bottom left */
+ }
+ #element selected {
+ background-color: #bd93f9;
+ text-color: #282a36;
+ }
+#+end_src
+
+**** Blurry Full Dracula
+
+#+begin_src conf :tangle .config/rofi/themes/dracula-blurry-full.rasi
+ /*
+ ,*
+ ,* Author : Aditya Shakya (adi1090x)
+ ,* Mail : adi1090x@gmail.com
+ ,* Github : @adi1090x
+ ,* Reddit : @adi1090x
+ ,*
+ ,* Dracula Theme Colors : Sravan Balaji (balajsra)
+ ,* Mail: balajsra@umich.edu
+ ,* Github: @balajsra
+ ,*/
+
+ configuration {
+ drun-display-format: "{name}";
+ threads: 0;
+ scroll-method: 0;
+ disable-history: false;
+ fullscreen: false;
+ hide-scrollbar: true;
+ sidebar-mode: false;
+ }
+
+ ,* {
+ background: #00000000;
+ background-color: #282a36cc;
+ background-entry: #44475acc;
+ background-alt: #44475acc;
+ foreground: #f8f8f2cc;
+ foreground-selected: #50fa7bcc;
+ urgent: #ff5555cc;
+ urgent-selected: #ff5555cc;
+ }
+
+ window {
+ transparency: "real";
+ background-color: @background;
+ text-color: @foreground;
+ height: 100%;
+ width: 100%;
+ location: northwest;
+ anchor: northwest;
+ x-offset: 0;
+ y-offset: 0;
+ }
+
+ prompt {
+ enabled: false;
+ }
+
+ inputbar {
+ background-color: @background-alt;
+ text-color: @foreground;
+ expand: false;
+ border-radius: 6px;
+ margin: 0px 430px 0px 430px;
+ padding: 10px 10px 10px 10px;
+ position: north;
+ }
+
+ entry {
+ background-color: @background;
+ text-color: @foreground;
+ placeholder-color: @foreground;
+ expand: true;
+ horizontal-align: 0.5;
+ placeholder: "Search applications";
+ blink: true;
+ }
+
+ case-indicator {
+ background-color: @background;
+ text-color: @foreground;
+ spacing: 0;
+ }
+
+ listview {
+ background-color: @background;
+ columns: 7;
+ spacing: 4px;
+ cycle: false;
+ dynamic: true;
+ layout: vertical;
+ }
+
+ mainbox {
+ background-color: @background-color;
+ children: [ inputbar, listview ];
+ spacing: 25px;
+ padding: 70px 135px 55px 135px;
+ }
+
+ element {
+ background-color: @background;
+ text-color: @foreground;
+ orientation: vertical;
+ border-radius: 9px;
+ padding: 20px 0px 20px 0px;
+ }
+
+ element-icon {
+ size: 65px;
+ border: 0px;
+ }
+
+ element-text {
+ expand: true;
+ horizontal-align: 0.5;
+ vertical-align: 0.5;
+ margin: 5px 10px 0px 10px;
+ }
+
+ element normal.urgent,
+ element alternate.urgent {
+ background-color: @urgent;
+ text-color: @foreground;
+ border-radius: 9px;
+ }
+
+ element normal.active,
+ element alternate.active {
+ background-color: @background-alt;
+ text-color: @foreground;
+ }
+
+ element selected {
+ background-color: @background-alt;
+ text-color: @foreground-selected;
+ }
+
+ element selected.urgent {
+ background-color: @urgent-selected;
+ text-color: @foreground;
+ }
+
+ element selected.active {
+ background-color: @background-alt;
+ color: @foreground-selected;
+ }
+#+end_src
+
+**** Official Dracula Theme
+
+#+begin_src conf :tangle .config/rofi/themes/dracula.rasi
+ /*Dracula theme based on the Purple official rofi theme*/
+
+ ,* {
+ font: "Jetbrains Mono 12";
+ foreground: #f8f8f2;
+ background-color: #282a36;
+ active-background: #6272a4;
+ urgent-background: #ff5555;
+ selected-background: @active-background;
+ selected-urgent-background: @urgent-background;
+ selected-active-background: @active-background;
+ separatorcolor: @active-background;
+ bordercolor: @active-background;
+ }
+
+ #window {
+ background-color: @background;
+ border: 1;
+ border-radius: 6;
+ border-color: @bordercolor;
+ padding: 5;
+ }
+ #mainbox {
+ border: 0;
+ padding: 0;
+ }
+ #message {
+ border: 1px dash 0px 0px ;
+ border-color: @separatorcolor;
+ padding: 1px ;
+ }
+ #textbox {
+ text-color: @foreground;
+ }
+ #listview {
+ fixed-height: 0;
+ border: 2px dash 0px 0px ;
+ border-color: @bordercolor;
+ spacing: 2px ;
+ scrollbar: false;
+ padding: 2px 0px 0px ;
+ }
+ #element {
+ border: 0;
+ padding: 1px ;
+ }
+ #element.normal.normal {
+ background-color: @background;
+ text-color: @foreground;
+ }
+ #element.normal.urgent {
+ background-color: @urgent-background;
+ text-color: @urgent-foreground;
+ }
+ #element.normal.active {
+ background-color: @active-background;
+ text-color: @foreground;
+ }
+ #element.selected.normal {
+ background-color: @selected-background;
+ text-color: @foreground;
+ }
+ #element.selected.urgent {
+ background-color: @selected-urgent-background;
+ text-color: @foreground;
+ }
+ #element.selected.active {
+ background-color: @selected-active-background;
+ text-color: @foreground;
+ }
+ #element.alternate.normal {
+ background-color: @background;
+ text-color: @foreground;
+ }
+ #element.alternate.urgent {
+ background-color: @urgent-background;
+ text-color: @foreground;
+ }
+ #element.alternate.active {
+ background-color: @active-background;
+ text-color: @foreground;
+ }
+ #scrollbar {
+ width: 2px ;
+ border: 0;
+ handle-width: 8px ;
+ padding: 0;
+ }
+ #sidebar {
+ border: 2px dash 0px 0px ;
+ border-color: @separatorcolor;
+ }
+ #button.selected {
+ background-color: @selected-background;
+ text-color: @foreground;
+ }
+ #inputbar {
+ spacing: 0;
+ text-color: @foreground;
+ padding: 1px ;
+ }
+ #case-indicator {
+ spacing: 0;
+ text-color: @foreground;
+ }
+ #entry {
+ spacing: 0;
+ text-color: @foreground;
+ }
+ #prompt {
+ spacing: 0;
+ text-color: @foreground;
+ }
+ #inputbar {
+ children: [ prompt,textbox-prompt-colon,entry,case-indicator ];
+ }
+ #textbox-prompt-colon {
+ expand: false;
+ str: ":";
+ margin: 0px 0.3em 0em 0em ;
+ text-color: @foreground;
+ }
+#+end_src
+
+**** Sidetab Dracula
+
+#+begin_src conf :tangle .config/rofi/themes/sidetab-dracula.rasi
+ /**
+ ,* ROFI Color theme: sidetab-dracula
+ ,* User: balajsra
+ ,* Copyright: deadguy & Sravan Balaji
+ ,*/
+
+ configuration {
+ display-drun: "Launch";
+ display-run: "Execute";
+ display-window: "Window";
+ show-icons: true;
+ sidebar-mode: true;
+ font: "NotoSans Nerd Font 12";
+ }
+
+ ,* {
+ background-color: #282a36;
+ text-color: #f8f8f2;
+ selbg: #bd93f9;
+ actbg: #44475a;
+ urgbg: #ff5555;
+ winbg: #50fa7b;
+
+ selected-normal-foreground: @winbg;
+ normal-foreground: @text-color;
+ selected-normal-background: @actbg;
+ normal-background: @background-color;
+
+ selected-urgent-foreground: @background-color;
+ urgent-foreground: @text-color;
+ selected-urgent-background: @urgbg;
+ urgent-background: @background-color;
+
+ selected-active-foreground: @winbg;
+ active-foreground: @text-color;
+ selected-active-background: @actbg;
+ active-background: @selbg;
+
+ line-margin: 2;
+ line-padding: 2;
+ separator-style: "none";
+ hide-scrollbar: "true";
+ margin: 0;
+ padding: 0;
+ }
+
+ window {
+ location: west;
+ anchor: west;
+ height: 100%;
+ width: 25%;
+ orientation: horizontal;
+ children: [mainbox];
+ }
+
+ mainbox {
+ spacing: 0.8em;
+ children: [ entry, listview, mode-switcher ];
+ }
+
+ button {
+ padding: 5px 2px;
+ }
+
+ button selected {
+ background-color: @active-background;
+ text-color: @background-color;
+ }
+
+ inputbar {
+ padding: 5px;
+ spacing: 5px;
+ }
+
+ listview {
+ spacing: 0.5em;
+ dynamic: false;
+ cycle: true;
+ }
+
+ element {
+ padding: 10px;
+ }
+
+ entry {
+ expand: false;
+ text-color: @normal-foreground;
+ vertical-align: 1;
+ padding: 5px;
+ }
+
+ element normal.normal {
+ background-color: @normal-background;
+ text-color: @normal-foreground;
+ }
+
+ element normal.urgent {
+ background-color: @urgent-background;
+ text-color: @urgent-foreground;
+ }
+
+ element normal.active {
+ background-color: @active-background;
+ text-color: @active-foreground;
+ }
+
+ element selected.normal {
+ background-color: @selected-normal-background;
+ text-color: @selected-normal-foreground;
+ border: 0 5px solid 0 0;
+ border-color: @active-background;
+ }
+
+ element selected.urgent {
+ background-color: @selected-urgent-background;
+ text-color: @selected-urgent-foreground;
+ }
+
+ element selected.active {
+ background-color: @selected-active-background;
+ text-color: @selected-active-foreground;
+ }
+
+ element alternate.normal {
+ background-color: @normal-background;
+ text-color: @normal-foreground;
+ }
+
+ element alternate.urgent {
+ background-color: @urgent-background;
+ text-color: @urgent-foreground;
+ }
+
+ element alternate.active {
+ background-color: @active-background;
+ text-color: @active-foreground;
+ }
+#+end_src
+
+**** Slate Dracula
+
+#+begin_src conf :tangle .config/rofi/themes/slate-dracula.rasi
+ /**
+ ,* ROFI Color theme: slate-dracula
+ ,* User: balajsra
+ ,* Copyright: Sravan Balaji
+ ,*/
+
+ ,* {
+ background-color: #282a36;
+ border-color: #bd93f9;
+ text-color: #f8f8f2;
+ spacing: 0;
+ width: 1024px;
+ font: "NotoSans Nerd Font 12";
+ }
+
+ inputbar {
+ border: 0 0 1px 0; /* top right bottom left */
+ children: [prompt, entry];
+ }
+
+ prompt {
+ padding: 16px;
+ border: 2px 1px 0 2px; /* top right bottom left */
+ }
+
+ textbox {
+ background-color: #282a36;
+ border: 0 0 1px 0; /* top right bottom left */
+ border-color: #bd93f9;
+ padding: 8px 16px 8px 16px; /* top right bottom left */
+ }
+
+ entry {
+ border: 2px 2px 0px 0; /* top right bottom left */
+ padding: 16px;
+ }
+
+ listview {
+ cycle: true;
+ margin: 0 0 0px 0; /* top right bottom left */
+ scrollbar: true;
+ }
+
+ element {
+ border: 0 2px 1px 2px; /* top right bottom left */
+ padding: 16px;
+ }
+
+ element selected {
+ background-color: #44475a;
+ }
+#+end_src
+
+*** Greenclip Clipboard Manager
+
+#+begin_src conf :tangle .config/greenclip.cfg
+ Config {
+ maxHistoryLength = 50,
+ historyPath = "~/.cache/greenclip.history",
+ staticHistoryPath = "~/.cache/greenclip.staticHistory",
+ imageCachePath = "/tmp/greenclip/",
+ usePrimarySelectionAsInput = False,
+ blacklistedApps = [],
+ trimSpaceFromSelection = True,
+ enableImageSupport = True
+ }
+#+end_src
+
+* Display Effects
+
+** Compositor
+*** Picom Jonaburg
+
+**** Animations
+
+#+begin_src conf :tangle .config/picom/picom.conf
+ # requires https://github.com/jonaburg/picom
+
+ # length of animation in milliseconds (default: 300)
+ transition-length = 150;
+
+ # animation easing on the x-axis (default: 0.1)
+ transition-pow-x = 0.1;
+
+ # animation easing on the y-axis (default: 0.1)
+ transition-pow-y = 0.1;
+
+ #animation easing on the window width (default: 0.1)
+ transition-pow-w = 0.1;
+
+ # animation easing on the window height (default: 0.1)
+ transition-pow-h = 0.1;
+
+ # whether to animate window size changes (default: true)
+ size-transition = true;
+
+ # whether to animate new windows from the center of the screen (default: false)
+ spawn-center-screen = false;
+
+ # whether to animate new windows from their own center (default: true)
+ spawn-center = true;
+
+ # Whether to animate down scaling (some programs handle this poorly) (default: false)
+ no-scale-down = true;
+#+end_src
+
+**** Corners
+
+#+begin_src conf :tangle .config/picom/picom.conf
+ # requires: https://github.com/sdhand/compton or https://github.com/jonaburg/picom
+ corner-radius = 10.0;
+ rounded-corners-exclude = [
+ # "window_type = 'normal'",
+ # "class_g = 'awesome'",
+ # "class_g = 'URxvt'",
+ # "class_g = 'XTerm'",
+ # "class_g = 'kitty'",
+ # "class_g = 'Alacritty'",
+ "class_g = 'Polybar'",
+ # "class_g = 'code-oss'",
+ #"class_g = 'TelegramDesktop'",
+ # "class_g = 'firefox'",
+ # "class_g = 'Thunderbird'"
+ ];
+ round-borders = 1;
+ round-borders-exclude = [
+ #"class_g = 'TelegramDesktop'",
+ ];
+#+end_src
+
+**** Shadows
+
+#+begin_src conf :tangle .config/picom/picom.conf
+ # 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 = false;
+
+ # 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;
+
+ # Avoid drawing shadows on dock/panel windows. This option is deprecated,
+ # you should use the *wintypes* option in your config file instead.
+ #
+ # no-dock-shadow = false
+
+ # Don't draw shadows on drag-and-drop windows. This option is deprecated,
+ # you should use the *wintypes* option in your config file instead.
+ #
+ # no-dnd-shadow = false
+
+ # 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
+
+ # Do not paint shadows on shaped windows. Note shaped windows
+ # here means windows setting its shape through X Shape extension.
+ # Those using ARGB background is beyond our control.
+ # Deprecated, use
+ # shadow-exclude = 'bounding_shaped'
+ # or
+ # shadow-exclude = 'bounding_shaped && !rounded_corners'
+ # instead.
+ #
+ # shadow-ignore-shaped = ''
+
+ # 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'",
+ # "class_g = 'slop'",
+ # "class_g = 'Polybar'",
+ # "_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
+#+end_src
+
+**** Fading
+
+#+begin_src conf :tangle .config/picom/picom.conf
+ # 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.
+ # don't need this, we disable fading for all normal windows with wintypes: {}
+ fade-exclude = [
+ # "class_g = 'slop'" # maim
+ ]
+
+ # Do not fade on window open/close.
+ # no-fading-openclose = false
+ no-fading-openclose = true
+
+ # Do not fade destroyed ARGB windows with WM frame. Workaround of bugs in Openbox, Fluxbox, etc.
+ # no-fading-destroyed-argb = false
+#+end_src
+
+**** Transparency / Opacity
+
+#+begin_src conf :tangle .config/picom/picom.conf
+ # Opacity of inactive windows. (0.1 - 1.0, defaults to 1.0)
+ inactive-opacity = 1
+ # inactive-opacity = 0.8;
+
+ # Opacity of window titlebars and borders. (0.1 - 1.0, disabled by default)
+ frame-opacity = 1.0
+ # frame-opacity = 0.7;
+
+ # Default opacity for dropdown menus and popup menus. (0.0 - 1.0, defaults to 1.0)
+ # menu-opacity = 1.0
+ # menu-opacity is depreciated use dropdown-menu and popup-menu instead.
+
+ #If using these 2 below change their values in line 530 & 531 aswell
+ # popup_menu = { opacity = 0.8; }
+ popup_menu = { opacity = 1.0; }
+ # dropdown_menu = { opacity = 0.8; }
+ dropdown_menu = { opacity = 1.0; }
+
+
+ # 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 always be considered focused.
+ # focus-exclude = []
+ focus-exclude = [
+ # "class_g = 'Cairo-clock'",
+ # "class_g = 'Bar'", # lemonbar
+ # "class_g = 'slop'" # maim
+ ];
+
+ # 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 = []
+ opacity-rule = [
+ # "80:class_g = 'Bar'", # lemonbar
+ # "100:class_g = 'slop'", # maim
+ # "100:class_g = 'XTerm'",
+ # "100:class_g = 'URxvt'",
+ # "100:class_g = 'kitty'",
+ # "100:class_g = 'Alacritty'",
+ # "80:class_g = 'Polybar'",
+ # "100:class_g = 'code-oss'",
+ # "100:class_g = 'Meld'",
+ # "70:class_g = 'TelegramDesktop'",
+ # "90:class_g = 'Joplin'",
+ # "100:class_g = 'firefox'",
+ # "100:class_g = 'Thunderbird'"
+ ];
+#+end_src
+
+**** Background Blurring
+
+#+begin_src conf :tangle .config/picom/picom.conf
+ # Parameters for background blurring, see the *BLUR* section for more information.
+ # blur-method =
+ # blur-size = 12
+ #
+ # blur-deviation = false
+
+ # 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 = true;
+
+ # 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";
+
+ blur: {
+ # requires: https://github.com/ibhagwan/picom
+ method = "kawase";
+ #method = "kernel";
+ strength = 7;
+ # deviation = 1.0;
+ # kernel = "11x11gaussian";
+ background = false;
+ background-frame = false;
+ background-fixed = false;
+ kern = "3x3box";
+ }
+
+ # Exclude conditions for background blur.
+ blur-background-exclude = [
+ #"window_type = 'dock'",
+ #"window_type = 'desktop'",
+ #"class_g = 'URxvt'",
+ #
+ # prevents picom from blurring the background
+ # when taking selection screenshot with `main`
+ # https://github.com/naelstrof/maim/issues/130
+ "class_g = 'slop'",
+ "_GTK_FRAME_EXTENTS@:c"
+ ];
+#+end_src
+
+**** General Settings
+
+#+begin_src conf :tangle .config/picom/picom.conf
+ # 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.
+ #
+ experimental-backends = true;
+ backend = "glx";
+ #backend = "xrender";
+
+
+ # Enable/disable VSync.
+ # vsync = false
+ vsync = false
+
+ # 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
+
+ # Limit picom to repaint at most once every 1 / 'refresh_rate' second to
+ # boost performance. This should not be used with
+ # vsync drm/opengl/opengl-oml
+ # as they essentially does sw-opti's job already,
+ # unless you wish to specify a lower refresh rate than the actual value.
+ #
+ # sw-opti =
+
+ # 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. paint-on-overlay may make the flickering less obvious.
+ #
+ # 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 (Causing Weird Black semi opaque rectangles when terminal is opened)
+ #Changing use-damage to false fixes the problem
+ use-damage = false
+
+ # 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 = "info";
+
+ # 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:
+ {
+ normal = { fade = false; shadow = false; }
+ tooltip = { fade = true; shadow = true; opacity = 0.75; focus = true; full-shadow = false; };
+ dock = { shadow = false; }
+ dnd = { shadow = false; }
+ # popup_menu = { opacity = 0.8; }
+ popup_menu = { opacity = 1.0; }
+ # dropdown_menu = { opacity = 0.8; }
+ dropdown_menu = { opacity = 1.0; }
+ };
+#+end_src
+
+**** Toggle Script
+
+#+begin_src shell :shebang #!/bin/bash :tangle .config/picom/toggle_picom.sh
+ #!/bin/bash
+
+ helpmenu() {
+ echo "Script to toggle picom ON/OFF. Use only one argument at a time."
+ echo "Usage: toggle_picom.sh [--toggle | -t] [--on] [--off] [--help | -h]"
+ echo " - Toggle: toggle_picom.sh OR toggle_picom.sh --toggle OR toggle_picom.sh -t"
+ echo " - Turn On: toggle_picom.sh --on"
+ echo " - Turn Off: toggle_picom.sh --off"
+ echo " - Help: toggle_picom.sh --help OR toggle_picom.sh -h"
+ }
+
+ check_running() {
+ if pgrep -x picom >/dev/null; then
+ echo 1
+ else
+ echo 0
+ fi
+ }
+
+ turn_on() {
+ notify-send "Turning Picom ON"
+
+ if [ $(check_running) -eq '0' ]; then
+ picom --config /home/sravan/.config/picom/picom.conf &
+ fi
+ }
+
+ turn_off() {
+ notify-send "Turning Picom OFF"
+
+ if [ $(check_running) -eq '1' ]; then
+ killall picom
+ fi
+ }
+
+ toggle() {
+ if [ $(check_running) -eq '1' ]; then
+ turn_off
+ else
+ turn_on
+ fi
+ }
+
+ main() {
+ if [ $# -eq 0 ]; then
+ # No arguments
+ toggle
+ else
+ case $1 in
+ --help | -h)
+ helpmenu
+ ;;
+ --toggle | -t)
+ toggle
+ ;;
+ --on)
+ turn_on
+ ;;
+ --off)
+ turn_off
+ ;;
+ esac
+ fi
+ }
+
+ main $@
+#+end_src
+
+** Night Mode
+
+*** Redshift
+
+#+begin_src conf :tangle .config/redshift/redshift.conf
+ ; Global settings for redshift
+ [redshift]
+ ; Set the day and night screen temperatures
+ temp-day=6500
+ temp-night=3500
+
+ ; Enable/Disable a smooth transition between day and night
+ ; 0 will cause a direct change from day to night screen temperature.
+ ; 1 will gradually increase or decrease the screen temperature.
+ transition=1
+
+ ; Set the screen brightness. Default is 1.0.
+ ;brightness=0.9
+ ; It is also possible to use different settings for day and night
+ ; since version 1.8.
+ ;brightness-day=0.7
+ ;brightness-night=0.4
+ ; Set the screen gamma (for all colors, or each color channel
+ ; individually)
+ ; gamma=0.8
+ ;gamma=0.8:0.7:0.8
+ ; This can also be set individually for day and night since
+ ; version 1.10.
+ ;gamma-day=0.8:0.7:0.8
+ ;gamma-night=0.6
+
+ ; Set the location-provider: 'geoclue', 'geoclue2', 'manual'
+ ; type 'redshift -l list' to see possible values.
+ ; The location provider settings are in a different section.
+ location-provider=manual
+
+ ; Set the adjustment-method: 'randr', 'vidmode'
+ ; type 'redshift -m list' to see all possible values.
+ ; 'randr' is the preferred method, 'vidmode' is an older API.
+ ; but works in some cases when 'randr' does not.
+ ; The adjustment method settings are in a different section.
+ adjustment-method=randr
+
+ ; Configuration of the location-provider:
+ ; type 'redshift -l PROVIDER:help' to see the settings.
+ ; ex: 'redshift -l manual:help'
+ ; Keep in mind that longitudes west of Greenwich (e.g. the Americas)
+ ; are negative numbers.
+ [manual]
+ ; Farmington Hills, MI
+ lat=42.4990
+ lon=-83.3677
+
+ ; Configuration of the adjustment-method
+ ; type 'redshift -m METHOD:help' to see the settings.
+ ; ex: 'redshift -m randr:help'
+ ; In this example, randr is configured to adjust screen 1.
+ ; Note that the numbering starts from 0, so this is actually the
+ ; second screen. If this option is not specified, Redshift will try
+ ; to adjust _all_ screens.
+ ; [randr]
+ ; screen=1
+#+end_src
+
+* Terminal & Shell
+
+** Prompt
+*** Starship
+
+#+begin_src conf :tangle .config/starship.toml
+ # Don't print a new line at the start of the prompt
+ add_newline = false
+
+ format = "[◆](bold green) $all"
+
+ [aws]
+ symbol = " "
+
+ [battery]
+ full_symbol = ""
+ charging_symbol = ""
+ discharging_symbol = ""
+
+ [character]
+ format = "$symbol"
+ success_symbol = "[❯](bold purple)[❯](bold cyan)[❯](bold green) "
+ error_symbol = "[❯❯❯](bold red) "
+
+ [cmd_duration]
+ min_time = 10_000
+
+ [conda]
+ symbol = " "
+
+ [dart]
+ symbol = " "
+
+ [directory]
+ format = "[$path]($style)[$read_only]($read_only_style) "
+ truncation_length = 4
+ truncate_to_repo = false
+ truncation_symbol = "…/"
+ read_only = ""
+
+ [docker_context]
+ symbol = " "
+
+ [elixir]
+ symbol = " "
+
+ [elm]
+ symbol = " "
+
+ [git_branch]
+ symbol = " "
+
+ [golang]
+ symbol = " "
+
+ # [haskell]
+ # symbol = " "
+
+ [hg_branch]
+ symbol = " "
+
+ [java]
+ symbol = " "
+
+ [julia]
+ symbol = " "
+
+ [line_break]
+ disabled = false
+
+ [memory_usage]
+ symbol = " "
+
+ [nim]
+ symbol = " "
+
+ [nix_shell]
+ symbol = " "
+
+ [nodejs]
+ symbol = " "
+
+ [package]
+ symbol = " "
+
+ [perl]
+ symbol = " "
+
+ [php]
+ symbol = " "
+
+ [python]
+ symbol = " "
+
+ [ruby]
+ symbol = " "
+
+ [rust]
+ symbol = " "
+
+ [swift]
+ symbol = "ﯣ "
+#+end_src
+
+*** Neofetch
+
+**** Main Configuration
+
+#+begin_src conf :tangle .config/neofetch/config.conf
+ # See this wiki page for more info:
+ # https://github.com/dylanaraps/neofetch/wiki/Customizing-Info
+ print_info() {
+ info title
+ info underline
+
+ info "OS" distro
+ info "Host" model
+ info "Kernel" kernel
+ info "Uptime" uptime
+ info "Packages" packages
+ info "Shell" shell
+ # info "Resolution" resolution
+ # info "DE" de
+ info "WM" wm
+ # info "WM Theme" wm_theme
+ # info "Theme" theme
+ # info "Icons" icons
+ # info "Terminal" term
+ # info "Terminal Font" term_font
+ info "CPU" cpu
+ info "GPU" gpu
+ # info "GPU Driver" gpu_driver # Linux/macOS only
+ info "CPU Usage" cpu_usage
+ info "Memory" memory
+ info "Disk" disk
+ info "Battery" battery
+ # info "Font" font
+ # info "Song" song
+ # [[ "$player" ]] && prin "Music Player" "$player"
+ # info "Local IP" local_ip
+ # info "Public IP" public_ip
+ # info "Users" users
+ # info "Locale" locale # This only works on glibc systems.
+ info cols
+ }
+#+end_src
+
+**** Title
+
+#+begin_src conf :tangle .config/neofetch/config.conf
+ # Hide/Show Fully qualified domain name.
+ #
+ # Default: 'off'
+ # Values: 'on', 'off'
+ # Flag: --title_fqdn
+ title_fqdn="off"
+#+end_src
+
+**** Kernel
+
+#+begin_src conf :tangle .config/neofetch/config.conf
+ # Shorten the output of the kernel function.
+ #
+ # Default: 'on'
+ # Values: 'on', 'off'
+ # Flag: --kernel_shorthand
+ # Supports: Everything except *BSDs (except PacBSD and PC-BSD)
+ #
+ # Example:
+ # on: '4.8.9-1-ARCH'
+ # off: 'Linux 4.8.9-1-ARCH'
+ kernel_shorthand="on"
+#+end_src
+
+**** Distro
+
+#+begin_src conf :tangle .config/neofetch/config.conf
+ # Shorten the output of the distro function
+ #
+ # Default: 'off'
+ # Values: 'on', 'tiny', 'off'
+ # Flag: --distro_shorthand
+ # Supports: Everything except Windows and Haiku
+ distro_shorthand="off"
+
+ # Show/Hide OS Architecture.
+ # Show 'x86_64', 'x86' and etc in 'Distro:' output.
+ #
+ # Default: 'on'
+ # Values: 'on', 'off'
+ # Flag: --os_arch
+ #
+ # Example:
+ # on: 'Arch Linux x86_64'
+ # off: 'Arch Linux'
+ os_arch="on"
+#+end_src
+
+**** Uptime
+
+#+begin_src conf :tangle .config/neofetch/config.conf
+ # Shorten the output of the uptime function
+ #
+ # Default: 'on'
+ # Values: 'on', 'tiny', 'off'
+ # Flag: --uptime_shorthand
+ #
+ # Example:
+ # on: '2 days, 10 hours, 3 mins'
+ # tiny: '2d 10h 3m'
+ # off: '2 days, 10 hours, 3 minutes'
+ uptime_shorthand="on"
+#+end_src
+
+**** Memory
+
+#+begin_src conf :tangle .config/neofetch/config.conf
+ # Show memory pecentage in output.
+ #
+ # Default: 'off'
+ # Values: 'on', 'off'
+ # Flag: --memory_percent
+ #
+ # Example:
+ # on: '1801MiB / 7881MiB (22%)'
+ # off: '1801MiB / 7881MiB'
+ memory_percent="on"
+#+end_src
+
+**** Packages
+
+#+begin_src conf :tangle .config/neofetch/config.conf
+ # Show/Hide Package Manager names.
+ #
+ # Default: 'tiny'
+ # Values: 'on', 'tiny' 'off'
+ # Flag: --package_managers
+ #
+ # Example:
+ # on: '998 (pacman), 8 (flatpak), 4 (snap)'
+ # tiny: '908 (pacman, flatpak, snap)'
+ # off: '908'
+ package_managers="on"
+#+end_src
+
+**** Shell
+
+#+begin_src conf :tangle .config/neofetch/config.conf
+ # Show the path to $SHELL
+ #
+ # Default: 'off'
+ # Values: 'on', 'off'
+ # Flag: --shell_path
+ #
+ # Example:
+ # on: '/bin/bash'
+ # off: 'bash'
+ shell_path="off"
+
+ # Show $SHELL version
+ #
+ # Default: 'on'
+ # Values: 'on', 'off'
+ # Flag: --shell_version
+ #
+ # Example:
+ # on: 'bash 4.4.5'
+ # off: 'bash'
+ shell_version="on"
+#+end_src
+
+**** CPU
+
+#+begin_src conf :tangle .config/neofetch/config.conf
+ # CPU speed type
+ #
+ # Default: 'bios_limit'
+ # Values: 'scaling_cur_freq', 'scaling_min_freq', 'scaling_max_freq', 'bios_limit'.
+ # Flag: --speed_type
+ # Supports: Linux with 'cpufreq'
+ # NOTE: Any file in '/sys/devices/system/cpu/cpu0/cpufreq' can be used as a value.
+ speed_type="bios_limit"
+
+ # CPU speed shorthand
+ #
+ # Default: 'off'
+ # Values: 'on', 'off'.
+ # Flag: --speed_shorthand
+ # NOTE: This flag is not supported in systems with CPU speed less than 1 GHz
+ #
+ # Example:
+ # on: 'i7-6500U (4) @ 3.1GHz'
+ # off: 'i7-6500U (4) @ 3.100GHz'
+ speed_shorthand="off"
+
+ # Enable/Disable CPU brand in output.
+ #
+ # Default: 'on'
+ # Values: 'on', 'off'
+ # Flag: --cpu_brand
+ #
+ # Example:
+ # on: 'Intel i7-6500U'
+ # off: 'i7-6500U (4)'
+ cpu_brand="on"
+
+ # CPU Speed
+ # Hide/Show CPU speed.
+ #
+ # Default: 'on'
+ # Values: 'on', 'off'
+ # Flag: --cpu_speed
+ #
+ # Example:
+ # on: 'Intel i7-6500U (4) @ 3.1GHz'
+ # off: 'Intel i7-6500U (4)'
+ cpu_speed="on"
+
+ # CPU Cores
+ # Display CPU cores in output
+ #
+ # Default: 'logical'
+ # Values: 'logical', 'physical', 'off'
+ # Flag: --cpu_cores
+ # Support: 'physical' doesn't work on BSD.
+ #
+ # Example:
+ # logical: 'Intel i7-6500U (4) @ 3.1GHz' (All virtual cores)
+ # physical: 'Intel i7-6500U (2) @ 3.1GHz' (All physical cores)
+ # off: 'Intel i7-6500U @ 3.1GHz'
+ cpu_cores="logical"
+
+ # CPU Temperature
+ # Hide/Show CPU temperature.
+ # Note the temperature is added to the regular CPU function.
+ #
+ # Default: 'off'
+ # Values: 'C', 'F', 'off'
+ # Flag: --cpu_temp
+ # Supports: Linux, BSD
+ # NOTE: For FreeBSD and NetBSD-based systems, you'll need to enable
+ # coretemp kernel module. This only supports newer Intel processors.
+ #
+ # Example:
+ # C: 'Intel i7-6500U (4) @ 3.1GHz [27.2°C]'
+ # F: 'Intel i7-6500U (4) @ 3.1GHz [82.0°F]'
+ # off: 'Intel i7-6500U (4) @ 3.1GHz'
+ cpu_temp="F"
+#+end_src
+
+**** GPU
+
+#+begin_src conf :tangle .config/neofetch/config.conf
+ # Enable/Disable GPU Brand
+ #
+ # Default: 'on'
+ # Values: 'on', 'off'
+ # Flag: --gpu_brand
+ #
+ # Example:
+ # on: 'AMD HD 7950'
+ # off: 'HD 7950'
+ gpu_brand="on"
+
+ # Which GPU to display
+ #
+ # Default: 'all'
+ # Values: 'all', 'dedicated', 'integrated'
+ # Flag: --gpu_type
+ # Supports: Linux
+ #
+ # Example:
+ # all:
+ # GPU1: AMD HD 7950
+ # GPU2: Intel Integrated Graphics
+ #
+ # dedicated:
+ # GPU1: AMD HD 7950
+ #
+ # integrated:
+ # GPU1: Intel Integrated Graphics
+ gpu_type="all"
+#+end_src
+
+**** Resolution
+
+#+begin_src conf :tangle .config/neofetch/config.conf
+ # Display refresh rate next to each monitor
+ # Default: 'off'
+ # Values: 'on', 'off'
+ # Flag: --refresh_rate
+ # Supports: Doesn't work on Windows.
+ #
+ # Example:
+ # on: '1920x1080 @ 60Hz'
+ # off: '1920x1080'
+ refresh_rate="on"
+#+end_src
+
+**** Gtk Theme / Icons / Font
+
+#+begin_src conf :tangle .config/neofetch/config.conf
+ # Shorten output of GTK Theme / Icons / Font
+ #
+ # Default: 'off'
+ # Values: 'on', 'off'
+ # Flag: --gtk_shorthand
+ #
+ # Example:
+ # on: 'Numix, Adwaita'
+ # off: 'Numix [GTK2], Adwaita [GTK3]'
+ gtk_shorthand="off"
+
+
+ # Enable/Disable gtk2 Theme / Icons / Font
+ #
+ # Default: 'on'
+ # Values: 'on', 'off'
+ # Flag: --gtk2
+ #
+ # Example:
+ # on: 'Numix [GTK2], Adwaita [GTK3]'
+ # off: 'Adwaita [GTK3]'
+ gtk2="on"
+
+ # Enable/Disable gtk3 Theme / Icons / Font
+ #
+ # Default: 'on'
+ # Values: 'on', 'off'
+ # Flag: --gtk3
+ #
+ # Example:
+ # on: 'Numix [GTK2], Adwaita [GTK3]'
+ # off: 'Numix [GTK2]'
+ gtk3="on"
+#+end_src
+
+**** IP Address
+
+#+begin_src conf :tangle .config/neofetch/config.conf
+ # Website to ping for the public IP
+ #
+ # Default: 'http://ident.me'
+ # Values: 'url'
+ # Flag: --ip_host
+ public_ip_host="http://ident.me"
+
+ # Public IP timeout.
+ #
+ # Default: '2'
+ # Values: 'int'
+ # Flag: --ip_timeout
+ public_ip_timeout=2
+#+end_src
+
+**** Desktop Environment
+
+#+begin_src conf :tangle .config/neofetch/config.conf
+ # Show Desktop Environment version
+ #
+ # Default: 'off'
+ # Values: 'on', 'off'
+ # Flag: --de_version
+ de_version="on"
+#+end_src
+
+**** Disk
+
+#+begin_src conf :tangle .config/neofetch/config.conf
+ # Which disks to display.
+ # The values can be any /dev/sdXX, mount point or directory.
+ # NOTE: By default we only show the disk info for '/'.
+ #
+ # Default: '/'
+ # Values: '/', '/dev/sdXX', '/path/to/drive'.
+ # Flag: --disk_show
+ #
+ # Example:
+ # disk_show=('/' '/dev/sdb1'):
+ # 'Disk (/): 74G / 118G (66%)'
+ # 'Disk (/mnt/Videos): 823G / 893G (93%)'
+ #
+ # disk_show=('/'):
+ # 'Disk (/): 74G / 118G (66%)'
+ #
+ disk_show=('/')
+
+ # Disk subtitle.
+ # What to append to the Disk subtitle.
+ #
+ # Default: 'mount'
+ # Values: 'mount', 'name', 'dir', 'none'
+ # Flag: --disk_subtitle
+ #
+ # Example:
+ # name: 'Disk (/dev/sda1): 74G / 118G (66%)'
+ # 'Disk (/dev/sdb2): 74G / 118G (66%)'
+ #
+ # mount: 'Disk (/): 74G / 118G (66%)'
+ # 'Disk (/mnt/Local Disk): 74G / 118G (66%)'
+ # 'Disk (/mnt/Videos): 74G / 118G (66%)'
+ #
+ # dir: 'Disk (/): 74G / 118G (66%)'
+ # 'Disk (Local Disk): 74G / 118G (66%)'
+ # 'Disk (Videos): 74G / 118G (66%)'
+ #
+ # none: 'Disk: 74G / 118G (66%)'
+ # 'Disk: 74G / 118G (66%)'
+ # 'Disk: 74G / 118G (66%)'
+ disk_subtitle="mount"
+
+ # Disk percent.
+ # Show/Hide disk percent.
+ #
+ # Default: 'on'
+ # Values: 'on', 'off'
+ # Flag: --disk_percent
+ #
+ # Example:
+ # on: 'Disk (/): 74G / 118G (66%)'
+ # off: 'Disk (/): 74G / 118G'
+ disk_percent="on"
+#+end_src
+
+**** Song
+
+#+begin_src conf :tangle .config/neofetch/config.conf
+ # Manually specify a music player.
+ #
+ # Default: 'auto'
+ # Values: 'auto', 'player-name'
+ # Flag: --music_player
+ #
+ # Available values for 'player-name':
+ #
+ # amarok
+ # audacious
+ # banshee
+ # bluemindo
+ # clementine
+ # cmus
+ # deadbeef
+ # deepin-music
+ # dragon
+ # elisa
+ # exaile
+ # gnome-music
+ # gmusicbrowser
+ # gogglesmm
+ # guayadeque
+ # io.elementary.music
+ # iTunes
+ # juk
+ # lollypop
+ # mocp
+ # mopidy
+ # mpd
+ # muine
+ # netease-cloud-music
+ # pogo
+ # pragha
+ # qmmp
+ # quodlibet
+ # rhythmbox
+ # sayonara
+ # smplayer
+ # spotify
+ # strawberry
+ # tomahawk
+ # vlc
+ # xmms2d
+ # xnoise
+ # yarock
+ music_player="auto"
+
+ # Format to display song information.
+ #
+ # Default: '%artist% - %album% - %title%'
+ # Values: '%artist%', '%album%', '%title%'
+ # Flag: --song_format
+ #
+ # Example:
+ # default: 'Song: Jet - Get Born - Sgt Major'
+ song_format="%artist% - %album% - %title%"
+
+ # Print the Artist, Album and Title on separate lines
+ #
+ # Default: 'off'
+ # Values: 'on', 'off'
+ # Flag: --song_shorthand
+ #
+ # Example:
+ # on: 'Artist: The Fratellis'
+ # 'Album: Costello Music'
+ # 'Song: Chelsea Dagger'
+ #
+ # off: 'Song: The Fratellis - Costello Music - Chelsea Dagger'
+ song_shorthand="off"
+
+ # 'mpc' arguments (specify a host, password etc).
+ #
+ # Default: ''
+ # Example: mpc_args=(-h HOST -P PASSWORD)
+ mpc_args=()
+#+end_src
+
+**** Text Colors
+
+#+begin_src conf :tangle .config/neofetch/config.conf
+ # Text Colors
+ #
+ # Default: 'distro'
+ # Values: 'distro', 'num' 'num' 'num' 'num' 'num' 'num'
+ # Flag: --colors
+ #
+ # Each number represents a different part of the text in
+ # this order: 'title', '@', 'underline', 'subtitle', 'colon', 'info'
+ #
+ # Example:
+ # colors=(distro) - Text is colored based on Distro colors.
+ # colors=(4 6 1 8 8 6) - Text is colored in the order above.
+ colors=(distro)
+#+end_src
+
+**** Text Options
+
+#+begin_src conf :tangle .config/neofetch/config.conf
+ # Toggle bold text
+ #
+ # Default: 'on'
+ # Values: 'on', 'off'
+ # Flag: --bold
+ bold="on"
+
+ # Enable/Disable Underline
+ #
+ # Default: 'on'
+ # Values: 'on', 'off'
+ # Flag: --underline
+ underline_enabled="on"
+
+ # Underline character
+ #
+ # Default: '-'
+ # Values: 'string'
+ # Flag: --underline_char
+ underline_char="-"
+
+
+ # Info Separator
+ # Replace the default separator with the specified string.
+ #
+ # Default: ':'
+ # Flag: --separator
+ #
+ # Example:
+ # separator="->": 'Shell-> bash'
+ # separator=" =": 'WM = dwm'
+ separator=":"
+#+end_src
+
+**** Color Blocks
+
+#+begin_src conf :tangle .config/neofetch/config.conf
+ # Color block range
+ # The range of colors to print.
+ #
+ # Default: '0', '15'
+ # Values: 'num'
+ # Flag: --block_range
+ #
+ # Example:
+ #
+ # Display colors 0-7 in the blocks. (8 colors)
+ # neofetch --block_range 0 7
+ #
+ # Display colors 0-15 in the blocks. (16 colors)
+ # neofetch --block_range 0 15
+ block_range=(0 15)
+
+ # Toggle color blocks
+ #
+ # Default: 'on'
+ # Values: 'on', 'off'
+ # Flag: --color_blocks
+ color_blocks="on"
+
+ # Color block width in spaces
+ #
+ # Default: '3'
+ # Values: 'num'
+ # Flag: --block_width
+ block_width=3
+
+ # Color block height in lines
+ #
+ # Default: '1'
+ # Values: 'num'
+ # Flag: --block_height
+ block_height=1
+
+ # Color Alignment
+ #
+ # Default: 'auto'
+ # Values: 'auto', 'num'
+ # Flag: --col_offset
+ #
+ # Number specifies how far from the left side of the terminal (in spaces) to
+ # begin printing the columns, in case you want to e.g. center them under your
+ # text.
+ # Example:
+ # col_offset="auto" - Default behavior of neofetch
+ # col_offset=7 - Leave 7 spaces then print the colors
+ col_offset="auto"
+#+end_src
+
+**** Progress Bars
+
+#+begin_src conf :tangle .config/neofetch/config.conf
+ # Bar characters
+ #
+ # Default: '-', '='
+ # Values: 'string', 'string'
+ # Flag: --bar_char
+ #
+ # Example:
+ # neofetch --bar_char 'elapsed' 'total'
+ # neofetch --bar_char '-' '='
+ bar_char_elapsed="-"
+ bar_char_total="="
+
+ # Toggle Bar border
+ #
+ # Default: 'on'
+ # Values: 'on', 'off'
+ # Flag: --bar_border
+ bar_border="on"
+
+ # Progress bar length in spaces
+ # Number of chars long to make the progress bars.
+ #
+ # Default: '15'
+ # Values: 'num'
+ # Flag: --bar_length
+ bar_length=15
+
+ # Progress bar colors
+ # When set to distro, uses your distro's logo colors.
+ #
+ # Default: 'distro', 'distro'
+ # Values: 'distro', 'num'
+ # Flag: --bar_colors
+ #
+ # Example:
+ # neofetch --bar_colors 3 4
+ # neofetch --bar_colors distro 5
+ bar_color_elapsed="distro"
+ bar_color_total="distro"
+
+ # Info display
+ # Display a bar with the info.
+ #
+ # Default: 'off'
+ # Values: 'bar', 'infobar', 'barinfo', 'off'
+ # Flags: --cpu_display
+ # --memory_display
+ # --battery_display
+ # --disk_display
+ #
+ # Example:
+ # bar: '[---=======]'
+ # infobar: 'info [---=======]'
+ # barinfo: '[---=======] info'
+ # off: 'info'
+ cpu_display="off"
+ memory_display="off"
+ battery_display="off"
+ disk_display="off"
+#+end_src
+
+**** Backend Settings
+
+#+begin_src conf :tangle .config/neofetch/config.conf
+ # Image backend.
+ #
+ # Default: 'ascii'
+ # Values: 'ascii', 'caca', 'chafa', 'jp2a', 'iterm2', 'off',
+ # 'termpix', 'pixterm', 'tycat', 'w3m', 'kitty'
+ # Flag: --backend
+ image_backend="ascii"
+
+ # Image Source
+ #
+ # Which image or ascii file to display.
+ #
+ # Default: 'auto'
+ # Values: 'auto', 'ascii', 'wallpaper', '/path/to/img', '/path/to/ascii', '/path/to/dir/'
+ # 'command output (neofetch --ascii "$(fortune | cowsay -W 30)")'
+ # Flag: --source
+ #
+ # NOTE: 'auto' will pick the best image source for whatever image backend is used.
+ # In ascii mode, distro ascii art will be used and in an image mode, your
+ # wallpaper will be used.
+ image_source="auto"
+#+end_src
+
+***** Ascii Options
+
+#+begin_src conf :tangle .config/neofetch/config.conf
+ # Ascii distro
+ # Which distro's ascii art to display.
+ #
+ # Default: 'auto'
+ # Values: 'auto', 'distro_name'
+ # Flag: --ascii_distro
+ # NOTE: AIX, Alpine, Anarchy, Android, Antergos, antiX, AOSC,
+ # Apricity, ArcoLinux, ArchBox, ARCHlabs, ArchStrike,
+ # XFerience, ArchMerge, Arch, Artix, Arya, Bedrock, Bitrig,
+ # BlackArch, BLAG, BlankOn, BlueLight, bonsai, BSD,
+ # BunsenLabs, Calculate, Carbs, CentOS, Chakra, ChaletOS,
+ # Chapeau, Chrom*, Cleanjaro, ClearOS, Clear_Linux, Clover,
+ # Condres, Container_Linux, CRUX, Cucumber, Debian, Deepin,
+ # DesaOS, Devuan, DracOS, DragonFly, Drauger, Elementary,
+ # EndeavourOS, Endless, EuroLinux, Exherbo, Fedora, Feren, FreeBSD,
+ # FreeMiNT, Frugalware, Funtoo, GalliumOS, Gentoo, Pentoo,
+ # gNewSense, GNU, GoboLinux, Grombyang, Guix, Haiku, Huayra,
+ # Hyperbola, janus, Kali, KaOS, KDE_neon, Kibojoe, Kogaion,
+ # Korora, KSLinux, Kubuntu, LEDE, LFS, Linux_Lite,
+ # LMDE, Lubuntu, Lunar, macos, Mageia, MagpieOS, Mandriva,
+ # Manjaro, Maui, Mer, Minix, LinuxMint, MX_Linux, Namib,
+ # Neptune, NetBSD, Netrunner, Nitrux, NixOS, Nurunner,
+ # NuTyX, OBRevenge, OpenBSD, OpenIndiana, OpenMandriva,
+ # OpenWrt, osmc, Oracle, PacBSD, Parabola, Pardus, Parrot,
+ # Parsix, TrueOS, PCLinuxOS, Peppermint, popos, Porteus,
+ # PostMarketOS, Proxmox, Puppy, PureOS, Qubes, Radix, Raspbian,
+ # Reborn_OS, Redstar, Redcore, Redhat, Refracted_Devuan, Regata,
+ # Rosa, sabotage, Sabayon, Sailfish, SalentOS, Scientific, Septor,
+ # SharkLinux, Siduction, Slackware, SliTaz, SmartOS, Solus,
+ # Source_Mage, Sparky, Star, SteamOS, SunOS, openSUSE_Leap,
+ # openSUSE_Tumbleweed, openSUSE, SwagArch, Tails, Trisquel,
+ # Ubuntu-Budgie, Ubuntu-GNOME, Ubuntu-MATE, Ubuntu-Studio, Ubuntu,
+ # Void, Obarun, windows10, Windows7, Xubuntu, Zorin, and IRIX
+ # have ascii logos
+ # NOTE: Arch, Ubuntu, Redhat, and Dragonfly have 'old' logo variants.
+ # Use '{distro name}_old' to use the old logos.
+ # NOTE: Ubuntu has flavor variants.
+ # Change this to Lubuntu, Kubuntu, Xubuntu, Ubuntu-GNOME,
+ # Ubuntu-Studio, Ubuntu-Mate or Ubuntu-Budgie to use the flavors.
+ # NOTE: Arcolinux, Dragonfly, Fedora, Alpine, Arch, Ubuntu,
+ # CRUX, Debian, Gentoo, FreeBSD, Mac, NixOS, OpenBSD, android,
+ # Antrix, CentOS, Cleanjaro, ElementaryOS, GUIX, Hyperbola,
+ # Manjaro, MXLinux, NetBSD, Parabola, POP_OS, PureOS,
+ # Slackware, SunOS, LinuxLite, OpenSUSE, Raspbian,
+ # postmarketOS, and Void have a smaller logo variant.
+ # Use '{distro name}_small' to use the small variants.
+ ascii_distro="auto"
+
+ # Ascii Colors
+ #
+ # Default: 'distro'
+ # Values: 'distro', 'num' 'num' 'num' 'num' 'num' 'num'
+ # Flag: --ascii_colors
+ #
+ # Example:
+ # ascii_colors=(distro) - Ascii is colored based on Distro colors.
+ # ascii_colors=(4 6 1 8 8 6) - Ascii is colored using these colors.
+ ascii_colors=(distro)
+
+ # Bold ascii logo
+ # Whether or not to bold the ascii logo.
+ #
+ # Default: 'on'
+ # Values: 'on', 'off'
+ # Flag: --ascii_bold
+ ascii_bold="on"
+#+end_src
+
+***** Image Options
+
+#+begin_src conf :tangle .config/neofetch/config.conf
+ # Image loop
+ # Setting this to on will make neofetch redraw the image constantly until
+ # Ctrl+C is pressed. This fixes display issues in some terminal emulators.
+ #
+ # Default: 'off'
+ # Values: 'on', 'off'
+ # Flag: --loop
+ image_loop="off"
+
+ # Thumbnail directory
+ #
+ # Default: '~/.cache/thumbnails/neofetch'
+ # Values: 'dir'
+ thumbnail_dir="${XDG_CACHE_HOME:-${HOME}/.cache}/thumbnails/neofetch"
+
+ # Crop mode
+ #
+ # Default: 'normal'
+ # Values: 'normal', 'fit', 'fill'
+ # Flag: --crop_mode
+ #
+ # See this wiki page to learn about the fit and fill options.
+ # https://github.com/dylanaraps/neofetch/wiki/What-is-Waifu-Crop%3F
+ crop_mode="normal"
+
+ # Crop offset
+ # Note: Only affects 'normal' crop mode.
+ #
+ # Default: 'center'
+ # Values: 'northwest', 'north', 'northeast', 'west', 'center'
+ # 'east', 'southwest', 'south', 'southeast'
+ # Flag: --crop_offset
+ crop_offset="center"
+
+ # Image size
+ # The image is half the terminal width by default.
+ #
+ # Default: 'auto'
+ # Values: 'auto', '00px', '00%', 'none'
+ # Flags: --image_size
+ # --size
+ image_size="auto"
+
+ # Gap between image and text
+ #
+ # Default: '3'
+ # Values: 'num', '-num'
+ # Flag: --gap
+ gap=3
+
+ # Image offsets
+ # Only works with the w3m backend.
+ #
+ # Default: '0'
+ # Values: 'px'
+ # Flags: --xoffset
+ # --yoffset
+ yoffset=0
+ xoffset=0
+
+ # Image background color
+ # Only works with the w3m backend.
+ #
+ # Default: ''
+ # Values: 'color', 'blue'
+ # Flag: --bg_color
+ background_color=
+#+end_src
+
+***** Misc Options
+
+#+begin_src conf :tangle .config/neofetch/config.conf
+ # Stdout mode
+ # Turn off all colors and disables image backend (ASCII/Image).
+ # Useful for piping into another command.
+ # Default: 'off'
+ # Values: 'on', 'off'
+ stdout="off"
+#+end_src
+
+** Shell
+*** Bash
+
+#+begin_src shell :tangle .bashrc
+ # ~/.bashrc: executed by bash(1) for non-login shells.
+ # see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
+ # for examples
+
+ # If not running interactively, don't do anything
+ case $- in
+ ,*i*) ;;
+ ,*) return ;;
+ esac
+
+ # don't put duplicate lines or lines starting with space in the history.
+ # See bash(1) for more options
+ HISTCONTROL=ignoreboth
+
+ # append to the history file, don't overwrite it
+ shopt -s histappend
+
+ # for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
+ HISTSIZE=1000
+ HISTFILESIZE=2000
+
+ # check the window size after each command and, if necessary,
+ # update the values of LINES and COLUMNS.
+ shopt -s checkwinsize
+
+ # If set, the pattern "**" used in a pathname expansion context will
+ # match all files and zero or more directories and subdirectories.
+ #shopt -s globstar
+
+ # make less more friendly for non-text input files, see lesspipe(1)
+ [ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
+
+ # set variable identifying the chroot you work in (used in the prompt below)
+ if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
+ debian_chroot=$(cat /etc/debian_chroot)
+ fi
+
+ # set a fancy prompt (non-color, unless we know we "want" color)
+ case "$TERM" in
+ xterm-color | *-256color) color_prompt=yes ;;
+ esac
+
+ # uncomment for a colored prompt, if the terminal has the capability; turned
+ # off by default to not distract the user: the focus in a terminal window
+ # should be on the output of commands, not on the prompt
+ #force_color_prompt=yes
+
+ if [ -n "$force_color_prompt" ]; then
+ if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
+ # We have color support; assume it's compliant with Ecma-48
+ # (ISO/IEC-6429). (Lack of such support is extremely rare, and such
+ # a case would tend to support setf rather than setaf.)
+ color_prompt=yes
+ else
+ color_prompt=
+ fi
+ fi
+
+ if [ "$color_prompt" = yes ]; then
+ PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
+ else
+ PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
+ fi
+ unset color_prompt force_color_prompt
+
+ # If this is an xterm set the title to user@host:dir
+ case "$TERM" in
+ xterm* | rxvt*)
+ PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
+ ;;
+ ,*) ;;
+
+ esac
+
+ # enable color support of ls and also add handy aliases
+ if [ -x /usr/bin/dircolors ]; then
+ test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
+ alias ls='ls --color=auto'
+ #alias dir='dir --color=auto'
+ #alias vdir='vdir --color=auto'
+
+ alias grep='grep --color=auto'
+ alias fgrep='fgrep --color=auto'
+ alias egrep='egrep --color=auto'
+ fi
+
+ # colored GCC warnings and errors
+ #export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'
+
+ # some more ls aliases
+ alias ll='ls -alF'
+ alias la='ls -A'
+ alias l='ls -CF'
+
+ # Add an "alert" alias for long running commands. Use like so:
+ # sleep 10; alert
+ alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
+
+ # Alias definitions.
+ # You may want to put all your additions into a separate file like
+ # ~/.bash_aliases, instead of adding them here directly.
+ # See /usr/share/doc/bash-doc/examples in the bash-doc package.
+
+ if [ -f ~/.bash_aliases ]; then
+ . ~/.bash_aliases
+ fi
+
+ # enable programmable completion features (you don't need to enable
+ # this, if it's already enabled in /etc/bash.bashrc and /etc/profile
+ # sources /etc/bash.bashrc).
+ if ! shopt -oq posix; then
+ if [ -f /usr/share/bash-completion/bash_completion ]; then
+ . /usr/share/bash-completion/bash_completion
+ elif [ -f /etc/bash_completion ]; then
+ . /etc/bash_completion
+ fi
+ fi
+
+ # ALIASES
+ alias config='/usr/bin/git --git-dir=$HOME/.cfg/ --work-tree=$HOME'
+
+ # ENVIRONMENT VARIABLES
+ export EDITOR="code -w"
+ export TERM=xterm-256color
+ export QT_STYLE_OVERRIDE=kvantum
+ export XDG_CONFIG_HOME=$HOME/.config
+
+ # Set fish as interactive shell only
+ exec fish
+#+end_src
+*** Zsh
+
+#+begin_src shell :tangle .zshrc
+ # If you come from bash you might have to change your $PATH.
+ # export PATH=$HOME/bin:/usr/local/bin:$PATH
+
+ # Set $PATH if ~/.local/bin exist
+ if [ -d "$HOME/.local/bin" ]; then
+ export PATH=$HOME/.local/bin:$PATH
+ fi
+
+ eval "$(starship init zsh)"
+ function set_win_title(){
+ echo -ne "\033]0; $USER@$HOST:${PWD/$HOME/~} \007"
+ }
+ precmd_functions+=(set_win_title)
+
+ ## Plugins section: Enable fish style features
+ # Use syntax highlighting
+ source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
+
+ # Use autosuggestion
+ source /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh
+
+ # Use history substring search
+ source /usr/share/zsh/plugins/zsh-history-substring-search/zsh-history-substring-search.zsh
+
+ # Use fzf
+ source /usr/share/fzf/key-bindings.zsh
+ source /usr/share/fzf/completion.zsh
+
+ # Arch Linux command-not-found support, you must have package pkgfile installed
+ # https://wiki.archlinux.org/index.php/Pkgfile#.22Command_not_found.22_hook
+ [[ -e /usr/share/doc/pkgfile/command-not-found.zsh ]] && source /usr/share/doc/pkgfile/command-not-found.zsh
+
+
+ ## Options section
+ setopt correct # Auto correct mistakes
+ setopt extendedglob # Extended globbing. Allows using regular expressions with *
+ setopt nocaseglob # Case insensitive globbing
+ setopt rcexpandparam # Array expension with parameters
+ setopt nocheckjobs # Don't warn about running processes when exiting
+ setopt numericglobsort # Sort filenames numerically when it makes sense
+ setopt nobeep # No beep
+ setopt appendhistory # Immediately append history instead of overwriting
+ setopt histignorealldups # If a new command is a duplicate, remove the older one
+ setopt autocd # if only directory path is entered, cd there.
+ setopt auto_pushd
+ setopt pushd_ignore_dups
+ setopt pushdminus
+
+ # Completion.
+ autoload -Uz compinit
+ compinit
+ zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}' # Case insensitive tab completion
+ zstyle ':completion:*' rehash true # automatically find new executables in path
+ zstyle ':completion:*' list-colors "${(s.:.)LS_COLORS}" # Colored completion (different colors for dirs/files/etc)
+ zstyle ':completion:*' completer _expand _complete _ignored _approximate
+ zstyle ':completion:*' menu select=2
+ zstyle ':completion:*' select-prompt '%SScrolling active: current selection at %p%s'
+ zstyle ':completion:*:descriptions' format '%U%F{cyan}%d%f%u'
+
+ # Speed up completions
+ zstyle ':completion:*' accept-exact '*(N)'
+ zstyle ':completion:*' use-cache on
+ zstyle ':completion:*' cache-path ~/.cache/zcache
+
+ # automatically load bash completion functions
+ autoload -U +X bashcompinit && bashcompinit
+
+ HISTFILE=~/.zhistory
+ HISTSIZE=50000
+ SAVEHIST=10000
+
+
+ ## Keys
+ # Use emacs key bindings
+ bindkey -e
+
+ # [PageUp] - Up a line of history
+ if [[ -n "${terminfo[kpp]}" ]]; then
+ bindkey -M emacs "${terminfo[kpp]}" up-line-or-history
+ bindkey -M viins "${terminfo[kpp]}" up-line-or-history
+ bindkey -M vicmd "${terminfo[kpp]}" up-line-or-history
+ fi
+ # [PageDown] - Down a line of history
+ if [[ -n "${terminfo[knp]}" ]]; then
+ bindkey -M emacs "${terminfo[knp]}" down-line-or-history
+ bindkey -M viins "${terminfo[knp]}" down-line-or-history
+ bindkey -M vicmd "${terminfo[knp]}" down-line-or-history
+ fi
+
+ # Start typing + [Up-Arrow] - fuzzy find history forward
+ if [[ -n "${terminfo[kcuu1]}" ]]; then
+ autoload -U up-line-or-beginning-search
+ zle -N up-line-or-beginning-search
+
+ bindkey -M emacs "${terminfo[kcuu1]}" up-line-or-beginning-search
+ bindkey -M viins "${terminfo[kcuu1]}" up-line-or-beginning-search
+ bindkey -M vicmd "${terminfo[kcuu1]}" up-line-or-beginning-search
+ fi
+ # Start typing + [Down-Arrow] - fuzzy find history backward
+ if [[ -n "${terminfo[kcud1]}" ]]; then
+ autoload -U down-line-or-beginning-search
+ zle -N down-line-or-beginning-search
+
+ bindkey -M emacs "${terminfo[kcud1]}" down-line-or-beginning-search
+ bindkey -M viins "${terminfo[kcud1]}" down-line-or-beginning-search
+ bindkey -M vicmd "${terminfo[kcud1]}" down-line-or-beginning-search
+ fi
+
+ # [Home] - Go to beginning of line
+ if [[ -n "${terminfo[khome]}" ]]; then
+ bindkey -M emacs "${terminfo[khome]}" beginning-of-line
+ bindkey -M viins "${terminfo[khome]}" beginning-of-line
+ bindkey -M vicmd "${terminfo[khome]}" beginning-of-line
+ fi
+ # [End] - Go to end of line
+ if [[ -n "${terminfo[kend]}" ]]; then
+ bindkey -M emacs "${terminfo[kend]}" end-of-line
+ bindkey -M viins "${terminfo[kend]}" end-of-line
+ bindkey -M vicmd "${terminfo[kend]}" end-of-line
+ fi
+
+ # [Shift-Tab] - move through the completion menu backwards
+ if [[ -n "${terminfo[kcbt]}" ]]; then
+ bindkey -M emacs "${terminfo[kcbt]}" reverse-menu-complete
+ bindkey -M viins "${terminfo[kcbt]}" reverse-menu-complete
+ bindkey -M vicmd "${terminfo[kcbt]}" reverse-menu-complete
+ fi
+
+ # [Backspace] - delete backward
+ bindkey -M emacs '^?' backward-delete-char
+ bindkey -M viins '^?' backward-delete-char
+ bindkey -M vicmd '^?' backward-delete-char
+ # [Delete] - delete forward
+ if [[ -n "${terminfo[kdch1]}" ]]; then
+ bindkey -M emacs "${terminfo[kdch1]}" delete-char
+ bindkey -M viins "${terminfo[kdch1]}" delete-char
+ bindkey -M vicmd "${terminfo[kdch1]}" delete-char
+ else
+ bindkey -M emacs "^[[3~" delete-char
+ bindkey -M viins "^[[3~" delete-char
+ bindkey -M vicmd "^[[3~" delete-char
+
+ bindkey -M emacs "^[3;5~" delete-char
+ bindkey -M viins "^[3;5~" delete-char
+ bindkey -M vicmd "^[3;5~" delete-char
+ fi
+
+ # Common use aliases
+ alias aup="pamac upgrade --aur"
+ alias grubup="sudo update-grub"
+ alias fixpacman="sudo rm /var/lib/pacman/db.lck"
+ alias tarnow='tar -acf '
+ alias untar='tar -zxvf '
+ alias wget='wget -c '
+ alias psmem='ps auxf | sort -nr -k 4'
+ alias psmem10='ps auxf | sort -nr -k 4 | head -10'
+ alias ..='cd ..'
+ alias ...='cd ../..'
+ alias ....='cd ../../..'
+ alias .....='cd ../../../..'
+ alias ......='cd ../../../../..'
+ alias dir='dir --color=auto'
+ alias vdir='vdir --color=auto'
+ alias grep='grep --color=auto'
+ alias fgrep='fgrep --color=auto'
+ alias egrep='egrep --color=auto'
+ alias hw='hwinfo --short' # Hardware Info
+ alias gitpkg='pacman -Q | grep -i "\-git" | wc -l' # List amount of -git packages
+
+ # Get fastest mirrors
+ alias mirror="sudo reflector -f 30 -l 30 --number 10 --verbose --save /etc/pacman.d/mirrorlist"
+ alias mirrord="sudo reflector --latest 50 --number 20 --sort delay --save /etc/pacman.d/mirrorlist"
+ alias mirrors="sudo reflector --latest 50 --number 20 --sort score --save /etc/pacman.d/mirrorlist"
+ alias mirrora="sudo reflector --latest 50 --number 20 --sort age --save /etc/pacman.d/mirrorlist"
+
+ # Help people new to Arch
+ alias apt='man pacman'
+ alias apt-get='man pacman'
+ alias please='sudo'
+ alias tb='nc termbin.com 9999'
+
+ # Replace yay with paru if installed
+ [ ! -x /usr/bin/yay ] && [ -x /usr/bin/paru ] && alias yay='paru'
+
+ # Set your countries like --country France --country Germany -- or more.
+ alias upd='sudo reflector --latest 5 --age 2 --fastest 5 --protocol https --sort rate --save /etc/pacman.d/mirrorlist && cat /etc/pacman.d/mirrorlist && sudo pacman -Syu && sudo updatedb'
+
+ ## Run neofetch
+ neofetch
+#+end_src
+
+*** Fish
+
+**** Greeting
+
+#+begin_src fish :tangle .config/fish/config.fish
+ function fish_greeting
+ clear
+ neofetch
+ echo "¸.·´¯`·.´¯`·.¸¸.·´¯`·.¸><(((º>"
+ end
+#+end_src
+
+**** Variables
+
+#+begin_src fish :tangle .config/fish/config.fish
+ set -U fish_user_paths $fish_user_paths $HOME/.local/bin/
+#+end_src
+
+**** Aliases
+
+#+begin_src fish :tangle .config/fish/config.fish
+ # pacman and paru
+ alias pacsyu='sudo pacman -Syyu' # update only standard pkgs
+ alias parusua='paru -Sua --noconfirm' # update only AUR pkgs
+ alias parusyu='paru -Syu --noconfirm' # update standard pkgs and AUR pkgs
+ alias unlock='sudo rm /var/lib/pacman/db.lck' # remove pacman lock
+ alias cleanup='sudo pacman -Rns (pacman -Qtdq)' # remove orphaned packages
+
+ # get fastest mirrors
+ alias mirror="sudo reflector -f 30 -l 30 --number 10 --verbose --save /etc/pacman.d/mirrorlist"
+ alias mirrord="sudo reflector --latest 50 --number 20 --sort delay --save /etc/pacman.d/mirrorlist"
+ alias mirrors="sudo reflector --latest 50 --number 20 --sort score --save /etc/pacman.d/mirrorlist"
+ alias mirrora="sudo reflector --latest 50 --number 20 --sort age --save /etc/pacman.d/mirrorlist"
+
+ # Colorize grep output (good for log files)
+ alias grep='grep --color=auto'
+ alias egrep='egrep --color=auto'
+ alias fgrep='fgrep --color=auto'
+
+ # confirm before overwriting something
+ alias cp="cp -i"
+ alias mv='mv -i'
+ alias rm='rm -i'
+
+ # gpg encryption
+ # verify signature for isos
+ alias gpg-check="gpg2 --keyserver-options auto-key-retrieve --verify"
+ # receive the key of a developer
+ alias gpg-retrieve="gpg2 --keyserver-options auto-key-retrieve --receive-keys"
+
+ # bare git repo alias for dotfiles
+ alias config="GIT_WORK_TREE=~ GIT_DIR=~/.cfg"
+
+ # ssh fix for kitty terminal
+ alias ssh="kitty +kitten ssh"
+#+end_src
+
+**** TTY
+
+#+begin_src fish :tangle .config/fish/config.fish
+ if [ "$TERM" = "linux" ]
+ then
+ printf %b '\e[40m' '\e[8]' # set default background to color 0 'dracula-bg'
+ printf %b '\e[37m' '\e[8]' # set default foreground to color 7 'dracula-fg'
+ printf %b '\e]P0282a36' # redefine 'black' as 'dracula-bg'
+ printf %b '\e]P86272a4' # redefine 'bright-black' as 'dracula-comment'
+ printf %b '\e]P1ff5555' # redefine 'red' as 'dracula-red'
+ printf %b '\e]P9ff7777' # redefine 'bright-red' as '#ff7777'
+ printf %b '\e]P250fa7b' # redefine 'green' as 'dracula-green'
+ printf %b '\e]PA70fa9b' # redefine 'bright-green' as '#70fa9b'
+ printf %b '\e]P3f1fa8c' # redefine 'brown' as 'dracula-yellow'
+ printf %b '\e]PBffb86c' # redefine 'bright-brown' as 'dracula-orange'
+ printf %b '\e]P4bd93f9' # redefine 'blue' as 'dracula-purple'
+ printf %b '\e]PCcfa9ff' # redefine 'bright-blue' as '#cfa9ff'
+ printf %b '\e]P5ff79c6' # redefine 'magenta' as 'dracula-pink'
+ printf %b '\e]PDff88e8' # redefine 'bright-magenta' as '#ff88e8'
+ printf %b '\e]P68be9fd' # redefine 'cyan' as 'dracula-cyan'
+ printf %b '\e]PE97e2ff' # redefine 'bright-cyan' as '#97e2ff'
+ printf %b '\e]P7f8f8f2' # redefine 'white' as 'dracula-fg'
+ printf %b '\e]PFffffff' # redefine 'bright-white' as '#ffffff'
+ clear
+ end
+#+end_src
+
+**** Prompt
+
+#+begin_src fish :tangle .config/fish/config.fish
+ # Starship Prompt
+ starship init fish | source
+#+end_src
+
+**** Dracula Theme
+
+#+begin_src fish :tangle .config/fish/conf.d/dracula.fish
+ # Dracula Color Palette
+ set -l foreground f8f8f2
+ set -l selection 44475a
+ set -l comment 6272a4
+ set -l red ff5555
+ set -l orange ffb86c
+ set -l yellow f1fa8c
+ set -l green 50fa7b
+ set -l purple bd93f9
+ set -l cyan 8be9fd
+ set -l pink ff79c6
+
+ # Syntax Highlighting Colors
+ set -g fish_color_normal $foreground
+ set -g fish_color_command $cyan
+ set -g fish_color_keyword $pink
+ set -g fish_color_quote $yellow
+ set -g fish_color_redirection $foreground
+ set -g fish_color_end $orange
+ set -g fish_color_error $red
+ set -g fish_color_param $purple
+ set -g fish_color_comment $comment
+ set -g fish_color_selection --background=$selection
+ set -g fish_color_search_match --background=$selection
+ set -g fish_color_operator $green
+ set -g fish_color_escape $pink
+ set -g fish_color_autosuggestion $comment
+
+ # Completion Pager Colors
+ set -g fish_pager_color_progress $comment
+ set -g fish_pager_color_prefix $cyan
+ set -g fish_pager_color_completion $foreground
+ set -g fish_pager_color_description $comment
+#+end_src
+
+** Terminal
+*** Kitty
+
+**** Fonts
+
+#+begin_src conf :tangle .config/kitty/kitty.conf
+ #: Fonts {{{
+
+ #: kitty has very powerful font management. You can configure
+ #: individual font faces and even specify special fonts for particular
+ #: characters.
+
+ font_family Fira Code Regular Nerd Font Complete
+ bold_font Fira Code Bold Nerd Font Complete
+ italic_font Fira Code Regular Nerd Font Complete
+ bold_italic_font Fira Code Bold Nerd Font Complete
+
+ #: You can specify different fonts for the bold/italic/bold-italic
+ #: variants. To get a full list of supported fonts use the `kitty
+ #: list-fonts` command. By default they are derived automatically, by
+ #: the OSes font system. Setting them manually is useful for font
+ #: families that have many weight variants like Book, Medium, Thick,
+ #: etc. For example::
+
+ #: font_family Operator Mono Book
+ #: bold_font Operator Mono Medium
+ #: italic_font Operator Mono Book Italic
+ #: bold_italic_font Operator Mono Medium Italic
+
+ font_size 12.0
+
+ #: Font size (in pts)
+
+ force_ltr no
+
+ #: kitty does not support BIDI (bidirectional text), however, for RTL
+ #: scripts, words are automatically displayed in RTL. That is to say,
+ #: in an RTL script, the words "HELLO WORLD" display in kitty as
+ #: "WORLD HELLO", and if you try to select a substring of an RTL-
+ #: shaped string, you will get the character that would be there had
+ #: the the string been LTR. For example, assuming the Hebrew word
+ #: ירושלים, selecting the character that on the screen appears to be ם
+ #: actually writes into the selection buffer the character י.
+
+ #: kitty's default behavior is useful in conjunction with a filter to
+ #: reverse the word order, however, if you wish to manipulate RTL
+ #: glyphs, it can be very challenging to work with, so this option is
+ #: provided to turn it off. Furthermore, this option can be used with
+ #: the command line program GNU FriBidi
+ #: to get BIDI
+ #: support, because it will force kitty to always treat the text as
+ #: LTR, which FriBidi expects for terminals.
+
+ adjust_line_height 0
+ adjust_column_width 0
+
+ #: Change the size of each character cell kitty renders. You can use
+ #: either numbers, which are interpreted as pixels or percentages
+ #: (number followed by %), which are interpreted as percentages of the
+ #: unmodified values. You can use negative pixels or percentages less
+ #: than 100% to reduce sizes (but this might cause rendering
+ #: artifacts).
+
+ # symbol_map U+E0A0-U+E0A3,U+E0C0-U+E0C7 PowerlineSymbols
+
+ #: Map the specified unicode codepoints to a particular font. Useful
+ #: if you need special rendering for some symbols, such as for
+ #: Powerline. Avoids the need for patched fonts. Each unicode code
+ #: point is specified in the form U+. You
+ #: can specify multiple code points, separated by commas and ranges
+ #: separated by hyphens. symbol_map itself can be specified multiple
+ #: times. Syntax is::
+
+ #: symbol_map codepoints Font Family Name
+
+ disable_ligatures never
+
+ #: Choose how you want to handle multi-character ligatures. The
+ #: default is to always render them. You can tell kitty to not render
+ #: them when the cursor is over them by using cursor to make editing
+ #: easier, or have kitty never render them at all by using always, if
+ #: you don't like them. The ligature strategy can be set per-window
+ #: either using the kitty remote control facility or by defining
+ #: shortcuts for it in kitty.conf, for example::
+
+ #: map alt+1 disable_ligatures_in active always
+ #: map alt+2 disable_ligatures_in all never
+ #: map alt+3 disable_ligatures_in tab cursor
+
+ #: Note that this refers to programming ligatures, typically
+ #: implemented using the calt OpenType feature. For disabling general
+ #: ligatures, use the font_features setting.
+
+ font_features none
+
+ #: Choose exactly which OpenType features to enable or disable. This
+ #: is useful as some fonts might have features worthwhile in a
+ #: terminal. For example, Fira Code Retina includes a discretionary
+ #: feature, zero, which in that font changes the appearance of the
+ #: zero (0), to make it more easily distinguishable from Ø. Fira Code
+ #: Retina also includes other discretionary features known as
+ #: Stylistic Sets which have the tags ss01 through ss20.
+
+ #: Note that this code is indexed by PostScript name, and not the font
+ #: family. This allows you to define very precise feature settings;
+ #: e.g. you can disable a feature in the italic font but not in the
+ #: regular font.
+
+ #: On Linux, these are read from the FontConfig database first and
+ #: then this, setting is applied, so they can be configured in a
+ #: single, central place.
+
+ #: To get the PostScript name for a font, use kitty + list-fonts
+ #: --psnames:
+
+ #: .. code-block:: sh
+
+ #: $ kitty + list-fonts --psnames | grep Fira
+ #: Fira Code
+ #: Fira Code Bold (FiraCode-Bold)
+ #: Fira Code Light (FiraCode-Light)
+ #: Fira Code Medium (FiraCode-Medium)
+ #: Fira Code Regular (FiraCode-Regular)
+ #: Fira Code Retina (FiraCode-Retina)
+
+ #: The part in brackets is the PostScript name.
+
+ #: Enable alternate zero and oldstyle numerals::
+
+ #: font_features FiraCode-Retina +zero +onum
+
+ #: Enable only alternate zero::
+
+ #: font_features FiraCode-Retina +zero
+
+ #: Disable the normal ligatures, but keep the calt feature which (in
+ #: this font) breaks up monotony::
+
+ #: font_features TT2020StyleB-Regular -liga +calt
+
+ #: In conjunction with force_ltr, you may want to disable Arabic
+ #: shaping entirely, and only look at their isolated forms if they
+ #: show up in a document. You can do this with e.g.::
+
+ #: font_features UnifontMedium +isol -medi -fina -init
+
+ box_drawing_scale 0.001, 1, 1.5, 2
+
+ #: Change the sizes of the lines used for the box drawing unicode
+ #: characters These values are in pts. They will be scaled by the
+ #: monitor DPI to arrive at a pixel value. There must be four values
+ #: corresponding to thin, normal, thick, and very thick lines.
+
+ #: }}}
+#+end_src
+
+**** Cursor Customization
+
+#+begin_src conf :tangle .config/kitty/kitty.conf
+ #: Cursor customization {{{
+
+ ; cursor #cccccc
+
+ #: Default cursor color
+
+ ; cursor_text_color #111111
+
+ #: Choose the color of text under the cursor. If you want it rendered
+ #: with the background color of the cell underneath instead, use the
+ #: special keyword: background
+
+ cursor_shape beam
+
+ #: The cursor shape can be one of (block, beam, underline)
+
+ cursor_beam_thickness 1.5
+
+ #: Defines the thickness of the beam cursor (in pts)
+
+ cursor_underline_thickness 2.0
+
+ #: Defines the thickness of the underline cursor (in pts)
+
+ cursor_blink_interval -1
+
+ #: The interval (in seconds) at which to blink the cursor. Set to zero
+ #: to disable blinking. Negative values mean use system default. Note
+ #: that numbers smaller than repaint_delay will be limited to
+ #: repaint_delay.
+
+ cursor_stop_blinking_after 15.0
+
+ #: Stop blinking cursor after the specified number of seconds of
+ #: keyboard inactivity. Set to zero to never stop blinking.
+
+ #: }}}
+#+end_src
+
+**** Scrollback
+
+#+begin_src conf :tangle .config/kitty/kitty.conf
+ #: Scrollback {{{
+
+ scrollback_lines 2000
+
+ #: Number of lines of history to keep in memory for scrolling back.
+ #: Memory is allocated on demand. Negative numbers are (effectively)
+ #: infinite scrollback. Note that using very large scrollback is not
+ #: recommended as it can slow down performance of the terminal and
+ #: also use large amounts of RAM. Instead, consider using
+ #: scrollback_pager_history_size.
+
+ scrollback_pager less --chop-long-lines --RAW-CONTROL-CHARS +INPUT_LINE_NUMBER
+
+ #: Program with which to view scrollback in a new window. The
+ #: scrollback buffer is passed as STDIN to this program. If you change
+ #: it, make sure the program you use can handle ANSI escape sequences
+ #: for colors and text formatting. INPUT_LINE_NUMBER in the command
+ #: line above will be replaced by an integer representing which line
+ #: should be at the top of the screen. Similarly CURSOR_LINE and
+ #: CURSOR_COLUMN will be replaced by the current cursor position.
+
+ scrollback_pager_history_size 0
+
+ #: Separate scrollback history size, used only for browsing the
+ #: scrollback buffer (in MB). This separate buffer is not available
+ #: for interactive scrolling but will be piped to the pager program
+ #: when viewing scrollback buffer in a separate window. The current
+ #: implementation stores the data in UTF-8, so approximatively 10000
+ #: lines per megabyte at 100 chars per line, for pure ASCII text,
+ #: unformatted text. A value of zero or less disables this feature.
+ #: The maximum allowed size is 4GB.
+
+ wheel_scroll_multiplier 5.0
+
+ #: Modify the amount scrolled by the mouse wheel. Note this is only
+ #: used for low precision scrolling devices, not for high precision
+ #: scrolling on platforms such as macOS and Wayland. Use negative
+ #: numbers to change scroll direction.
+
+ touch_scroll_multiplier 1.0
+
+ #: Modify the amount scrolled by a touchpad. Note this is only used
+ #: for high precision scrolling devices on platforms such as macOS and
+ #: Wayland. Use negative numbers to change scroll direction.
+
+ #: }}}
+#+end_src
+
+**** Mouse
+
+#+begin_src conf :tangle .config/kitty/kitty.conf
+ #: Mouse {{{
+
+ mouse_hide_wait 3.0
+
+ #: Hide mouse cursor after the specified number of seconds of the
+ #: mouse not being used. Set to zero to disable mouse cursor hiding.
+ #: Set to a negative value to hide the mouse cursor immediately when
+ #: typing text. Disabled by default on macOS as getting it to work
+ #: robustly with the ever-changing sea of bugs that is Cocoa is too
+ #: much effort.
+
+ ; url_color #0087bd
+ url_style curly
+
+ #: The color and style for highlighting URLs on mouse-over. url_style
+ #: can be one of: none, single, double, curly
+
+ open_url_modifiers kitty_mod
+
+ #: The modifier keys to press when clicking with the mouse on URLs to
+ #: open the URL
+
+ open_url_with default
+
+ #: The program with which to open URLs that are clicked on. The
+ #: special value default means to use the operating system's default
+ #: URL handler.
+
+ url_prefixes http https file ftp
+
+ #: The set of URL prefixes to look for when detecting a URL under the
+ #: mouse cursor.
+
+ detect_urls yes
+
+ #: Detect URLs under the mouse. Detected URLs are highlighted with an
+ #: underline and the mouse cursor becomes a hand over them. Even if
+ #: this option is disabled, URLs are still clickable.
+
+ copy_on_select no
+
+ #: Copy to clipboard or a private buffer on select. With this set to
+ #: clipboard, simply selecting text with the mouse will cause the text
+ #: to be copied to clipboard. Useful on platforms such as macOS that
+ #: do not have the concept of primary selections. You can instead
+ #: specify a name such as a1 to copy to a private kitty buffer
+ #: instead. Map a shortcut with the paste_from_buffer action to paste
+ #: from this private buffer. For example::
+
+ #: map cmd+shift+v paste_from_buffer a1
+
+ #: Note that copying to the clipboard is a security risk, as all
+ #: programs, including websites open in your browser can read the
+ #: contents of the system clipboard.
+
+ strip_trailing_spaces never
+
+ #: Remove spaces at the end of lines when copying to clipboard. A
+ #: value of smart will do it when using normal selections, but not
+ #: rectangle selections. always will always do it.
+
+ rectangle_select_modifiers ctrl+alt
+
+ #: The modifiers to use rectangular selection (i.e. to select text in
+ #: a rectangular block with the mouse)
+
+ terminal_select_modifiers shift
+
+ #: The modifiers to override mouse selection even when a terminal
+ #: application has grabbed the mouse
+
+ select_by_word_characters @-./_~?&=%+#
+
+ #: Characters considered part of a word when double clicking. In
+ #: addition to these characters any character that is marked as an
+ #: alphanumeric character in the unicode database will be matched.
+
+ click_interval -1.0
+
+ #: The interval between successive clicks to detect double/triple
+ #: clicks (in seconds). Negative numbers will use the system default
+ #: instead, if available, or fallback to 0.5.
+
+ focus_follows_mouse no
+
+ #: Set the active window to the window under the mouse when moving the
+ #: mouse around
+
+ pointer_shape_when_grabbed arrow
+
+ #: The shape of the mouse pointer when the program running in the
+ #: terminal grabs the mouse. Valid values are: arrow, beam and hand
+
+ default_pointer_shape beam
+
+ #: The default shape of the mouse pointer. Valid values are: arrow,
+ #: beam and hand
+
+ pointer_shape_when_dragging beam
+
+ #: The default shape of the mouse pointer when dragging across text.
+ #: Valid values are: arrow, beam and hand
+
+ #: }}}
+#+end_src
+
+**** Performance Tuning
+
+#+begin_src conf :tangle .config/kitty/kitty.conf
+ #: Performance tuning {{{
+
+ repaint_delay 10
+
+ #: Delay (in milliseconds) between screen updates. Decreasing it,
+ #: increases frames-per-second (FPS) at the cost of more CPU usage.
+ #: The default value yields ~100 FPS which is more than sufficient for
+ #: most uses. Note that to actually achieve 100 FPS you have to either
+ #: set sync_to_monitor to no or use a monitor with a high refresh
+ #: rate. Also, to minimize latency when there is pending input to be
+ #: processed, repaint_delay is ignored.
+
+ input_delay 3
+
+ #: Delay (in milliseconds) before input from the program running in
+ #: the terminal is processed. Note that decreasing it will increase
+ #: responsiveness, but also increase CPU usage and might cause flicker
+ #: in full screen programs that redraw the entire screen on each loop,
+ #: because kitty is so fast that partial screen updates will be drawn.
+
+ sync_to_monitor no
+
+ #: Sync screen updates to the refresh rate of the monitor. This
+ #: prevents tearing (https://en.wikipedia.org/wiki/Screen_tearing)
+ #: when scrolling. However, it limits the rendering speed to the
+ #: refresh rate of your monitor. With a very high speed mouse/high
+ #: keyboard repeat rate, you may notice some slight input latency. If
+ #: so, set this to no.
+
+ #: }}}
+#+end_src
+
+**** Terminal Bell
+
+#+begin_src conf :tangle .config/kitty/kitty.conf
+ #: Terminal bell {{{
+
+ enable_audio_bell yes
+
+ #: Enable/disable the audio bell. Useful in environments that require
+ #: silence.
+
+ visual_bell_duration 0.0
+
+ #: Visual bell duration. Flash the screen when a bell occurs for the
+ #: specified number of seconds. Set to zero to disable.
+
+ window_alert_on_bell yes
+
+ #: Request window attention on bell. Makes the dock icon bounce on
+ #: macOS or the taskbar flash on linux.
+
+ bell_on_tab yes
+
+ #: Show a bell symbol on the tab if a bell occurs in one of the
+ #: windows in the tab and the window is not the currently focused
+ #: window
+
+ command_on_bell none
+
+ #: Program to run when a bell occurs.
+
+ #: }}}
+#+end_src
+
+**** Window Layout
+
+#+begin_src conf :tangle .config/kitty/kitty.conf
+ #: Window layout {{{
+
+ remember_window_size yes
+ initial_window_width 640
+ initial_window_height 400
+
+ #: If enabled, the window size will be remembered so that new
+ #: instances of kitty will have the same size as the previous
+ #: instance. If disabled, the window will initially have size
+ #: configured by initial_window_width/height, in pixels. You can use a
+ #: suffix of "c" on the width/height values to have them interpreted
+ #: as number of cells instead of pixels.
+
+ enabled_layouts *
+
+ #: The enabled window layouts. A comma separated list of layout names.
+ #: The special value all means all layouts. The first listed layout
+ #: will be used as the startup layout. Default configuration is all
+ #: layouts in alphabetical order. For a list of available layouts, see
+ #: the https://sw.kovidgoyal.net/kitty/index.html#layouts.
+
+ window_resize_step_cells 2
+ window_resize_step_lines 2
+
+ #: The step size (in units of cell width/cell height) to use when
+ #: resizing windows. The cells value is used for horizontal resizing
+ #: and the lines value for vertical resizing.
+
+ window_border_width 0.5
+
+ #: The width of window borders. Can be either in pixels (px) or pts
+ #: (pt). Values in pts will be rounded to the nearest number of pixels
+ #: based on screen resolution. If not specified the unit is assumed to
+ #: be pts. Note that borders are displayed only when more than one
+ #: window is visible. They are meant to separate multiple windows.
+
+ draw_minimal_borders yes
+
+ #: Draw only the minimum borders needed. This means that only the
+ #: minimum needed borders for inactive windows are drawn. That is only
+ #: the borders that separate the inactive window from a neighbor. Note
+ #: that setting a non-zero window margin overrides this and causes all
+ #: borders to be drawn.
+
+ window_margin_width 0
+
+ #: The window margin (in pts) (blank area outside the border). A
+ #: single value sets all four sides. Two values set the vertical and
+ #: horizontal sides. Three values set top, horizontal and bottom. Four
+ #: values set top, right, bottom and left.
+
+ single_window_margin_width -1
+
+ #: The window margin (in pts) to use when only a single window is
+ #: visible. Negative values will cause the value of
+ #: window_margin_width to be used instead. A single value sets all
+ #: four sides. Two values set the vertical and horizontal sides. Three
+ #: values set top, horizontal and bottom. Four values set top, right,
+ #: bottom and left.
+
+ window_padding_width 5
+
+ #: The window padding (in pts) (blank area between the text and the
+ #: window border). A single value sets all four sides. Two values set
+ #: the vertical and horizontal sides. Three values set top, horizontal
+ #: and bottom. Four values set top, right, bottom and left.
+
+ placement_strategy center
+
+ #: When the window size is not an exact multiple of the cell size, the
+ #: cell area of the terminal window will have some extra padding on
+ #: the sides. You can control how that padding is distributed with
+ #: this option. Using a value of center means the cell area will be
+ #: placed centrally. A value of top-left means the padding will be on
+ #: only the bottom and right edges.
+
+ active_border_color #00ff00
+
+ #: The color for the border of the active window. Set this to none to
+ #: not draw borders around the active window.
+
+ inactive_border_color #cccccc
+
+ #: The color for the border of inactive windows
+
+ bell_border_color #ff5a00
+
+ #: The color for the border of inactive windows in which a bell has
+ #: occurred
+
+ inactive_text_alpha 1.0
+
+ #: Fade the text in inactive windows by the specified amount (a number
+ #: between zero and one, with zero being fully faded).
+
+ hide_window_decorations no
+
+ #: Hide the window decorations (title-bar and window borders) with
+ #: yes. On macOS, titlebar-only can be used to only hide the titlebar.
+ #: Whether this works and exactly what effect it has depends on the
+ #: window manager/operating system.
+
+ resize_debounce_time 0.1
+
+ #: The time (in seconds) to wait before redrawing the screen when a
+ #: resize event is received. On platforms such as macOS, where the
+ #: operating system sends events corresponding to the start and end of
+ #: a resize, this number is ignored.
+
+ resize_draw_strategy static
+
+ #: Choose how kitty draws a window while a resize is in progress. A
+ #: value of static means draw the current window contents, mostly
+ #: unchanged. A value of scale means draw the current window contents
+ #: scaled. A value of blank means draw a blank window. A value of size
+ #: means show the window size in cells.
+
+ resize_in_steps no
+
+ #: Resize the OS window in steps as large as the cells, instead of
+ #: with the usual pixel accuracy. Combined with an
+ #: initial_window_width and initial_window_height in number of cells,
+ #: this option can be used to keep the margins as small as possible
+ #: when resizing the OS window. Note that this does not currently work
+ #: on Wayland.
+
+ confirm_os_window_close 0
+
+ #: Ask for confirmation when closing an OS window or a tab that has at
+ #: least this number of kitty windows in it. A value of zero disables
+ #: confirmation. This confirmation also applies to requests to quit
+ #: the entire application (all OS windows, via the quit action).
+
+ #: }}}
+#+end_src
+
+**** Tab Bar
+
+#+begin_src conf :tangle .config/kitty/kitty.conf
+ #: Tab bar {{{
+
+ tab_bar_edge top
+
+ #: Which edge to show the tab bar on, top or bottom
+
+ tab_bar_margin_width 0.0
+
+ #: The margin to the left and right of the tab bar (in pts)
+
+ tab_bar_style powerline
+
+ #: The tab bar style, can be one of: fade, separator, powerline, or
+ #: hidden. In the fade style, each tab's edges fade into the
+ #: background color, in the separator style, tabs are separated by a
+ #: configurable separator, and the powerline shows the tabs as a
+ #: continuous line. If you use the hidden style, you might want to
+ #: create a mapping for the select_tab action which presents you with
+ #: a list of tabs and allows for easy switching to a tab.
+
+ tab_bar_min_tabs 2
+
+ #: The minimum number of tabs that must exist before the tab bar is
+ #: shown
+
+ tab_switch_strategy previous
+
+ #: The algorithm to use when switching to a tab when the current tab
+ #: is closed. The default of previous will switch to the last used
+ #: tab. A value of left will switch to the tab to the left of the
+ #: closed tab. A value of right will switch to the tab to the right of
+ #: the closed tab. A value of last will switch to the right-most tab.
+
+ tab_fade 0.25 0.5 0.75 1
+
+ #: Control how each tab fades into the background when using fade for
+ #: the tab_bar_style. Each number is an alpha (between zero and one)
+ #: that controls how much the corresponding cell fades into the
+ #: background, with zero being no fade and one being full fade. You
+ #: can change the number of cells used by adding/removing entries to
+ #: this list.
+
+ tab_separator " ┇"
+
+ #: The separator between tabs in the tab bar when using separator as
+ #: the tab_bar_style.
+
+ tab_activity_symbol none
+
+ #: Some text or a unicode symbol to show on the tab if a window in the
+ #: tab that does not have focus has some activity.
+
+ tab_title_template "{index}: {title}"
+
+ #: A template to render the tab title. The default just renders the
+ #: title. If you wish to include the tab-index as well, use something
+ #: like: {index}: {title}. Useful if you have shortcuts mapped for
+ #: goto_tab N. In addition you can use {layout_name} for the current
+ #: layout name and {num_windows} for the number of windows in the tab.
+ #: Note that formatting is done by Python's string formatting
+ #: machinery, so you can use, for instance, {layout_name[:2].upper()}
+ #: to show only the first two letters of the layout name, upper-cased.
+ #: If you want to style the text, you can use styling directives, for
+ #: example: {fmt.fg.red}red{fmt.fg.default}normal{fmt.bg._00FF00}green
+ #: bg{fmt.bg.normal}. Similarly, for bold and italic:
+ #: {fmt.bold}bold{fmt.nobold}normal{fmt.italic}italic{fmt.noitalic}.
+
+ active_tab_title_template none
+
+ #: Template to use for active tabs, if not specified falls back to
+ #: tab_title_template.
+
+ ; active_tab_foreground #000
+ ; active_tab_background #eee
+ active_tab_font_style bold-italic
+ ; inactive_tab_foreground #444
+ ; inactive_tab_background #999
+ inactive_tab_font_style normal
+
+ #: Tab bar colors and styles
+
+ tab_bar_background none
+
+ #: Background color for the tab bar. Defaults to using the terminal
+ #: background color.
+
+ #: }}}
+#+end_src
+
+**** Color Scheme
+
+#+begin_src conf :tangle .config/kitty/kitty.conf
+ #: Color scheme {{{
+
+ ; foreground #dddddd
+ ; background #000000
+
+ #: The foreground and background colors
+
+ background_opacity 0.8
+
+ #: The opacity of the background. A number between 0 and 1, where 1 is
+ #: opaque and 0 is fully transparent. This will only work if
+ #: supported by the OS (for instance, when using a compositor under
+ #: X11). Note that it only sets the background color's opacity in
+ #: cells that have the same background color as the default terminal
+ #: background. This is so that things like the status bar in vim,
+ #: powerline prompts, etc. still look good. But it means that if you
+ #: use a color theme with a background color in your editor, it will
+ #: not be rendered as transparent. Instead you should change the
+ #: default background color in your kitty config and not use a
+ #: background color in the editor color scheme. Or use the escape
+ #: codes to set the terminals default colors in a shell script to
+ #: launch your editor. Be aware that using a value less than 1.0 is a
+ #: (possibly significant) performance hit. If you want to dynamically
+ #: change transparency of windows set dynamic_background_opacity to
+ #: yes (this is off by default as it has a performance cost)
+
+ background_image none
+
+ #: Path to a background image. Must be in PNG format.
+
+ background_image_layout tiled
+
+ #: Whether to tile or scale the background image.
+
+ background_image_linear no
+
+ #: When background image is scaled, whether linear interpolation
+ #: should be used.
+
+ dynamic_background_opacity no
+
+ #: Allow changing of the background_opacity dynamically, using either
+ #: keyboard shortcuts (increase_background_opacity and
+ #: decrease_background_opacity) or the remote control facility.
+
+ background_tint 0.0
+
+ #: How much to tint the background image by the background color. The
+ #: tint is applied only under the text area, not margin/borders. Makes
+ #: it easier to read the text. Tinting is done using the current
+ #: background color for each window. This setting applies only if
+ #: background_opacity is set and transparent windows are supported or
+ #: background_image is set.
+
+ dim_opacity 0.8
+
+ #: How much to dim text that has the DIM/FAINT attribute set. One
+ #: means no dimming and zero means fully dimmed (i.e. invisible).
+
+ ; selection_foreground #000000
+
+ #: The foreground for text selected with the mouse. A value of none
+ #: means to leave the color unchanged.
+
+ ; selection_background #fffacd
+
+ #: The background for text selected with the mouse.
+
+
+ #: The 16 terminal colors. There are 8 basic colors, each color has a
+ #: dull and bright version. You can also set the remaining colors from
+ #: the 256 color table as color16 to color255.
+
+ ; color0 #000000
+ ; color8 #767676
+
+ #: black
+
+ ; color1 #cc0403
+ ; color9 #f2201f
+
+ #: red
+
+ ; color2 #19cb00
+ ; color10 #23fd00
+
+ #: green
+
+ ; color3 #cecb00
+ ; color11 #fffd00
+
+ #: yellow
+
+ ; color4 #0d73cc
+ ; color12 #1a8fff
+
+ #: blue
+
+ ; color5 #cb1ed1
+ ; color13 #fd28ff
+
+ #: magenta
+
+ ; color6 #0dcdcd
+ ; color14 #14ffff
+
+ #: cyan
+
+ ; color7 #dddddd
+ ; color15 #ffffff
+
+ #: white
+
+ ; mark1_foreground black
+
+ #: Color for marks of type 1
+
+ ; mark1_background #98d3cb
+
+ #: Color for marks of type 1 (light steel blue)
+
+ mark2_foreground black
+
+ #: Color for marks of type 2
+
+ mark2_background #f2dcd3
+
+ #: Color for marks of type 1 (beige)
+
+ mark3_foreground black
+
+ #: Color for marks of type 3
+
+ mark3_background #f274bc
+
+ #: Color for marks of type 1 (violet)
+
+ #: }}}
+#+end_src
+
+**** Advanced
+
+#+begin_src conf :tangle .config/kitty/kitty.conf
+ #: Advanced {{{
+
+ shell fish
+
+ #: The shell program to execute. The default value of . means to use
+ #: whatever shell is set as the default shell for the current user.
+ #: Note that on macOS if you change this, you might need to add
+ #: --login to ensure that the shell starts in interactive mode and
+ #: reads its startup rc files.
+
+ editor .
+
+ #: The console editor to use when editing the kitty config file or
+ #: similar tasks. A value of . means to use the environment variables
+ #: VISUAL and EDITOR in that order. Note that this environment
+ #: variable has to be set not just in your shell startup scripts but
+ #: system-wide, otherwise kitty will not see it.
+
+ close_on_child_death no
+
+ #: Close the window when the child process (shell) exits. If no (the
+ #: default), the terminal will remain open when the child exits as
+ #: long as there are still processes outputting to the terminal (for
+ #: example disowned or backgrounded processes). If yes, the window
+ #: will close as soon as the child process exits. Note that setting it
+ #: to yes means that any background processes still using the terminal
+ #: can fail silently because their stdout/stderr/stdin no longer work.
+
+ allow_remote_control no
+
+ #: Allow other programs to control kitty. If you turn this on other
+ #: programs can control all aspects of kitty, including sending text
+ #: to kitty windows, opening new windows, closing windows, reading the
+ #: content of windows, etc. Note that this even works over ssh
+ #: connections. You can chose to either allow any program running
+ #: within kitty to control it, with yes or only programs that connect
+ #: to the socket specified with the kitty --listen-on command line
+ #: option, if you use the value socket-only. The latter is useful if
+ #: you want to prevent programs running on a remote computer over ssh
+ #: from controlling kitty.
+
+ listen_on none
+
+ #: Tell kitty to listen to the specified unix/tcp socket for remote
+ #: control connections. Note that this will apply to all kitty
+ #: instances. It can be overridden by the kitty --listen-on command
+ #: line flag. This option accepts only UNIX sockets, such as
+ #: unix:${TEMP}/mykitty or (on Linux) unix:@mykitty. Environment
+ #: variables are expanded. If {kitty_pid} is present then it is
+ #: replaced by the PID of the kitty process, otherwise the PID of the
+ #: kitty process is appended to the value, with a hyphen. This option
+ #: is ignored unless you also set allow_remote_control to enable
+ #: remote control. See the help for kitty --listen-on for more
+ #: details.
+
+ # env
+
+ #: Specify environment variables to set in all child processes. Note
+ #: that environment variables are expanded recursively, so if you
+ #: use::
+
+ #: env MYVAR1=a
+ #: env MYVAR2=${MYVAR1}/${HOME}/b
+
+ #: The value of MYVAR2 will be a//b.
+
+ update_check_interval 0
+
+ #: Periodically check if an update to kitty is available. If an update
+ #: is found a system notification is displayed informing you of the
+ #: available update. The default is to check every 24 hrs, set to zero
+ #: to disable.
+
+ startup_session none
+
+ #: Path to a session file to use for all kitty instances. Can be
+ #: overridden by using the kitty --session command line option for
+ #: individual instances. See
+ #: https://sw.kovidgoyal.net/kitty/index.html#sessions in the kitty
+ #: documentation for details. Note that relative paths are interpreted
+ #: with respect to the kitty config directory. Environment variables
+ #: in the path are expanded.
+
+ clipboard_control write-clipboard write-primary
+
+ #: Allow programs running in kitty to read and write from the
+ #: clipboard. You can control exactly which actions are allowed. The
+ #: set of possible actions is: write-clipboard read-clipboard write-
+ #: primary read-primary. You can additionally specify no-append to
+ #: disable kitty's protocol extension for clipboard concatenation. The
+ #: default is to allow writing to the clipboard and primary selection
+ #: with concatenation enabled. Note that enabling the read
+ #: functionality is a security risk as it means that any program, even
+ #: one running on a remote server via SSH can read your clipboard.
+
+ allow_hyperlinks yes
+
+ #: Process hyperlink (OSC 8) escape sequences. If disabled OSC 8
+ #: escape sequences are ignored. Otherwise they become clickable
+ #: links, that you can click by holding down ctrl+shift and clicking
+ #: with the mouse. The special value of ``ask`` means that kitty will
+ #: ask before opening the link.
+
+ term xterm-kitty
+
+ #: The value of the TERM environment variable to set. Changing this
+ #: can break many terminal programs, only change it if you know what
+ #: you are doing, not because you read some advice on Stack Overflow
+ #: to change it. The TERM variable is used by various programs to get
+ #: information about the capabilities and behavior of the terminal. If
+ #: you change it, depending on what programs you run, and how
+ #: different the terminal you are changing it to is, various things
+ #: from key-presses, to colors, to various advanced features may not
+ #: work.
+
+ #: }}}
+#+end_src
+
+**** OS Specific Tweaks
+
+#+begin_src conf :tangle .config/kitty/kitty.conf
+ #: OS specific tweaks {{{
+
+ macos_titlebar_color system
+
+ #: Change the color of the kitty window's titlebar on macOS. A value
+ #: of system means to use the default system color, a value of
+ #: background means to use the background color of the currently
+ #: active window and finally you can use an arbitrary color, such as
+ #: #12af59 or red. WARNING: This option works by using a hack, as
+ #: there is no proper Cocoa API for it. It sets the background color
+ #: of the entire window and makes the titlebar transparent. As such it
+ #: is incompatible with background_opacity. If you want to use both,
+ #: you are probably better off just hiding the titlebar with
+ #: hide_window_decorations.
+
+ macos_option_as_alt no
+
+ #: Use the option key as an alt key. With this set to no, kitty will
+ #: use the macOS native Option+Key = unicode character behavior. This
+ #: will break any Alt+key keyboard shortcuts in your terminal
+ #: programs, but you can use the macOS unicode input technique. You
+ #: can use the values: left, right, or both to use only the left,
+ #: right or both Option keys as Alt, instead.
+
+ macos_hide_from_tasks no
+
+ #: Hide the kitty window from running tasks (Option+Tab) on macOS.
+
+ macos_quit_when_last_window_closed no
+
+ #: Have kitty quit when all the top-level windows are closed. By
+ #: default, kitty will stay running, even with no open windows, as is
+ #: the expected behavior on macOS.
+
+ macos_window_resizable yes
+
+ #: Disable this if you want kitty top-level (OS) windows to not be
+ #: resizable on macOS.
+
+ macos_thicken_font 0
+
+ #: Draw an extra border around the font with the given width, to
+ #: increase legibility at small font sizes. For example, a value of
+ #: 0.75 will result in rendering that looks similar to sub-pixel
+ #: antialiasing at common font sizes.
+
+ macos_traditional_fullscreen no
+
+ #: Use the traditional full-screen transition, that is faster, but
+ #: less pretty.
+
+ macos_show_window_title_in all
+
+ #: Show or hide the window title in the macOS window or menu-bar. A
+ #: value of window will show the title of the currently active window
+ #: at the top of the macOS window. A value of menubar will show the
+ #: title of the currently active window in the macOS menu-bar, making
+ #: use of otherwise wasted space. all will show the title everywhere
+ #: and none hides the title in the window and the menu-bar.
+
+ macos_custom_beam_cursor no
+
+ #: Enable/disable custom mouse cursor for macOS that is easier to see
+ #: on both light and dark backgrounds. WARNING: this might make your
+ #: mouse cursor invisible on dual GPU machines.
+
+ linux_display_server auto
+
+ #: Choose between Wayland and X11 backends. By default, an appropriate
+ #: backend based on the system state is chosen automatically. Set it
+ #: to x11 or wayland to force the choice.
+
+ #: }}}
+#+end_src
+
+**** Keyboard Shortcuts
+
+#+begin_src conf :tangle .config/kitty/kitty.conf
+ #: Keyboard shortcuts {{{
+
+ #: For a list of key names, see: the GLFW key macros
+ #: .
+ #: The name to use is the part after the GLFW_KEY_ prefix. For a list
+ #: of modifier names, see: GLFW mods
+ #:
+
+ #: On Linux you can also use XKB key names to bind keys that are not
+ #: supported by GLFW. See XKB keys
+ #: for a list of key names. The name to use is the part
+ #: after the XKB_KEY_ prefix. Note that you can only use an XKB key
+ #: name for keys that are not known as GLFW keys.
+
+ #: Finally, you can use raw system key codes to map keys, again only
+ #: for keys that are not known as GLFW keys. To see the system key
+ #: code for a key, start kitty with the kitty --debug-keyboard option.
+ #: Then kitty will output some debug text for every key event. In that
+ #: text look for ``native_code`` the value of that becomes the key
+ #: name in the shortcut. For example:
+
+ #: .. code-block:: none
+
+ #: on_key_input: glfw key: 65 native_code: 0x61 action: PRESS mods: 0x0 text: 'a'
+
+ #: Here, the key name for the A key is 0x61 and you can use it with::
+
+ #: map ctrl+0x61 something
+
+ #: to map ctrl+a to something.
+
+ #: You can use the special action no_op to unmap a keyboard shortcut
+ #: that is assigned in the default configuration::
+
+ #: map kitty_mod+space no_op
+
+ #: You can combine multiple actions to be triggered by a single
+ #: shortcut, using the syntax below::
+
+ #: map key combine action1 action2 action3 ...
+
+ #: For example::
+
+ #: map kitty_mod+e combine : new_window : next_layout
+
+ #: this will create a new window and switch to the next available
+ #: layout
+
+ #: You can use multi-key shortcuts using the syntax shown below::
+
+ #: map key1>key2>key3 action
+
+ #: For example::
+
+ #: map ctrl+f>2 set_font_size 20
+
+ kitty_mod ctrl+shift
+
+ #: The value of kitty_mod is used as the modifier for all default
+ #: shortcuts, you can change it in your kitty.conf to change the
+ #: modifiers for all the default shortcuts.
+
+ clear_all_shortcuts no
+
+ #: You can have kitty remove all shortcut definition seen up to this
+ #: point. Useful, for instance, to remove the default shortcuts.
+
+ # kitten_alias hints hints --hints-offset=0
+
+ #: You can create aliases for kitten names, this allows overriding the
+ #: defaults for kitten options and can also be used to shorten
+ #: repeated mappings of the same kitten with a specific group of
+ #: options. For example, the above alias changes the default value of
+ #: kitty +kitten hints --hints-offset to zero for all mappings,
+ #: including the builtin ones.
+
+ #: }}}
+#+end_src
+
+**** Clipboard
+
+#+begin_src conf :tangle .config/kitty/kitty.conf
+ #: Clipboard {{{
+
+ map kitty_mod+c copy_to_clipboard
+
+ #: There is also a copy_or_interrupt action that can be optionally
+ #: mapped to Ctrl+c. It will copy only if there is a selection and
+ #: send an interrupt otherwise. Similarly, copy_and_clear_or_interrupt
+ #: will copy and clear the selection or send an interrupt if there is
+ #: no selection.
+
+ map kitty_mod+v paste_from_clipboard
+ map kitty_mod+s paste_from_selection
+ map shift+insert paste_from_selection
+ map kitty_mod+o pass_selection_to_program
+
+ #: You can also pass the contents of the current selection to any
+ #: program using pass_selection_to_program. By default, the system's
+ #: open program is used, but you can specify your own, the selection
+ #: will be passed as a command line argument to the program, for
+ #: example::
+
+ #: map kitty_mod+o pass_selection_to_program firefox
+
+ #: You can pass the current selection to a terminal program running in
+ #: a new kitty window, by using the @selection placeholder::
+
+ #: map kitty_mod+y new_window less @selection
+
+ #: }}}
+#+end_src
+
+**** Scrolling
+
+#+begin_src conf :tangle .config/kitty/kitty.conf
+ #: Scrolling {{{
+
+ map kitty_mod+up scroll_line_up
+ map kitty_mod+k scroll_line_up
+ map kitty_mod+down scroll_line_down
+ map kitty_mod+j scroll_line_down
+ map kitty_mod+page_up scroll_page_up
+ map kitty_mod+page_down scroll_page_down
+ map kitty_mod+home scroll_home
+ map kitty_mod+end scroll_end
+ map kitty_mod+h show_scrollback
+
+ #: You can pipe the contents of the current screen + history buffer as
+ #: STDIN to an arbitrary program using the ``launch`` function. For
+ #: example, the following opens the scrollback buffer in less in an
+ #: overlay window::
+
+ #: map f1 launch --stdin-source=@screen_scrollback --stdin-add-formatting --type=overlay less +G -R
+
+ #: For more details on piping screen and buffer contents to external
+ #: programs, see launch.
+
+ #: }}}
+#+end_src
+
+**** Window Management
+
+#+begin_src conf :tangle .config/kitty/kitty.conf
+ #: Window management {{{
+
+ map kitty_mod+enter new_window
+
+ #: You can open a new window running an arbitrary program, for
+ #: example::
+
+ #: map kitty_mod+y launch mutt
+
+ #: You can open a new window with the current working directory set to
+ #: the working directory of the current window using::
+
+ #: map ctrl+alt+enter launch --cwd=current
+
+ #: You can open a new window that is allowed to control kitty via the
+ #: kitty remote control facility by prefixing the command line with @.
+ #: Any programs running in that window will be allowed to control
+ #: kitty. For example::
+
+ #: map ctrl+enter launch --allow-remote-control some_program
+
+ #: You can open a new window next to the currently active window or as
+ #: the first window, with::
+
+ #: map ctrl+n launch --location=neighbor some_program
+ #: map ctrl+f launch --location=first some_program
+
+ #: For more details, see launch.
+
+ map kitty_mod+n new_os_window
+
+ #: Works like new_window above, except that it opens a top level OS
+ #: kitty window. In particular you can use new_os_window_with_cwd to
+ #: open a window with the current working directory.
+
+ map kitty_mod+w close_window
+ map kitty_mod+] next_window
+ map kitty_mod+[ previous_window
+ map kitty_mod+f move_window_forward
+ map kitty_mod+b move_window_backward
+ map kitty_mod+` move_window_to_top
+ map kitty_mod+r start_resizing_window
+ map kitty_mod+1 first_window
+ map kitty_mod+2 second_window
+ map kitty_mod+3 third_window
+ map kitty_mod+4 fourth_window
+ map kitty_mod+5 fifth_window
+ map kitty_mod+6 sixth_window
+ map kitty_mod+7 seventh_window
+ map kitty_mod+8 eighth_window
+ map kitty_mod+9 ninth_window
+ map kitty_mod+0 tenth_window
+ #: }}}
+#+end_src
+
+**** Tab Management
+
+#+begin_src conf :tangle .config/kitty/kitty.conf
+ #: Tab management {{{
+
+ map kitty_mod+right next_tab
+ map kitty_mod+left previous_tab
+ map kitty_mod+t new_tab
+ map kitty_mod+q close_tab
+ map kitty_mod+. move_tab_forward
+ map kitty_mod+, move_tab_backward
+ map kitty_mod+alt+t set_tab_title
+
+ #: You can also create shortcuts to go to specific tabs, with 1 being
+ #: the first tab, 2 the second tab and -1 being the previously active
+ #: tab, and any number larger than the last tab being the last tab::
+
+ #: map ctrl+alt+1 goto_tab 1
+ #: map ctrl+alt+2 goto_tab 2
+
+ #: Just as with new_window above, you can also pass the name of
+ #: arbitrary commands to run when using new_tab and use
+ #: new_tab_with_cwd. Finally, if you want the new tab to open next to
+ #: the current tab rather than at the end of the tabs list, use::
+
+ #: map ctrl+t new_tab !neighbor [optional cmd to run]
+ #: }}}
+#+end_src
+
+**** Layout Management
+
+#+begin_src conf :tangle .config/kitty/kitty.conf
+ #: Layout management {{{
+
+ map kitty_mod+l next_layout
+
+ #: You can also create shortcuts to switch to specific layouts::
+
+ #: map ctrl+alt+t goto_layout tall
+ #: map ctrl+alt+s goto_layout stack
+
+ #: Similarly, to switch back to the previous layout::
+
+ #: map ctrl+alt+p last_used_layout
+ #: }}}
+#+end_src
+
+**** Font Sizes
+
+#+begin_src conf :tangle .config/kitty/kitty.conf
+ #: Font sizes {{{
+
+ #: You can change the font size for all top-level kitty OS windows at
+ #: a time or only the current one.
+
+ map kitty_mod+equal change_font_size all +2.0
+ map kitty_mod+minus change_font_size all -2.0
+ map kitty_mod+backspace change_font_size all 0
+
+ #: To setup shortcuts for specific font sizes::
+
+ #: map kitty_mod+f6 change_font_size all 10.0
+
+ #: To setup shortcuts to change only the current OS window's font
+ #: size::
+
+ #: map kitty_mod+f6 change_font_size current 10.0
+ #: }}}
+#+end_src
+
+**** Select and Act on Visible Text
+
+#+begin_src conf :tangle .config/kitty/kitty.conf
+ #: Select and act on visible text {{{
+
+ #: Use the hints kitten to select text and either pass it to an
+ #: external program or insert it into the terminal or copy it to the
+ #: clipboard.
+
+ map kitty_mod+e kitten hints
+
+ #: Open a currently visible URL using the keyboard. The program used
+ #: to open the URL is specified in open_url_with.
+
+ map kitty_mod+p>f kitten hints --type path --program -
+
+ #: Select a path/filename and insert it into the terminal. Useful, for
+ #: instance to run git commands on a filename output from a previous
+ #: git command.
+
+ map kitty_mod+p>shift+f kitten hints --type path
+
+ #: Select a path/filename and open it with the default open program.
+
+ map kitty_mod+p>l kitten hints --type line --program -
+
+ #: Select a line of text and insert it into the terminal. Use for the
+ #: output of things like: ls -1
+
+ map kitty_mod+p>w kitten hints --type word --program -
+
+ #: Select words and insert into terminal.
+
+ map kitty_mod+p>h kitten hints --type hash --program -
+
+ #: Select something that looks like a hash and insert it into the
+ #: terminal. Useful with git, which uses sha1 hashes to identify
+ #: commits
+
+ map kitty_mod+p>n kitten hints --type linenum
+
+ #: Select something that looks like filename:linenum and open it in
+ #: vim at the specified line number.
+
+ map kitty_mod+p>y kitten hints --type hyperlink
+
+ #: Select a hyperlink (i.e. a URL that has been marked as such by the
+ #: terminal program, for example, by ls --hyperlink=auto).
+
+
+ #: The hints kitten has many more modes of operation that you can map
+ #: to different shortcuts. For a full description see kittens/hints.
+ #: }}}
+#+end_src
+
+**** Miscellaneous
+
+#+begin_src conf :tangle .config/kitty/kitty.conf
+ #: Miscellaneous {{{
+
+ map kitty_mod+f11 toggle_fullscreen
+ map kitty_mod+f10 toggle_maximized
+ map kitty_mod+u kitten unicode_input
+ map kitty_mod+f2 edit_config_file
+ map kitty_mod+escape kitty_shell window
+
+ #: Open the kitty shell in a new window/tab/overlay/os_window to
+ #: control kitty using commands.
+
+ map kitty_mod+a>m set_background_opacity +0.1
+ map kitty_mod+a>l set_background_opacity -0.1
+ map kitty_mod+a>1 set_background_opacity 1
+ map kitty_mod+a>d set_background_opacity default
+ map kitty_mod+delete clear_terminal reset active
+
+ #: You can create shortcuts to clear/reset the terminal. For example::
+
+ #: # Reset the terminal
+ #: map kitty_mod+f9 clear_terminal reset active
+ #: # Clear the terminal screen by erasing all contents
+ #: map kitty_mod+f10 clear_terminal clear active
+ #: # Clear the terminal scrollback by erasing it
+ #: map kitty_mod+f11 clear_terminal scrollback active
+ #: # Scroll the contents of the screen into the scrollback
+ #: map kitty_mod+f12 clear_terminal scroll active
+
+ #: If you want to operate on all windows instead of just the current
+ #: one, use all instead of active.
+
+ #: It is also possible to remap Ctrl+L to both scroll the current
+ #: screen contents into the scrollback buffer and clear the screen,
+ #: instead of just clearing the screen::
+
+ #: map ctrl+l combine : clear_terminal scroll active : send_text normal,application \x0c
+
+
+ #: You can tell kitty to send arbitrary (UTF-8) encoded text to the
+ #: client program when pressing specified shortcut keys. For example::
+
+ #: map ctrl+alt+a send_text all Special text
+
+ #: This will send "Special text" when you press the ctrl+alt+a key
+ #: combination. The text to be sent is a python string literal so you
+ #: can use escapes like \x1b to send control codes or \u21fb to send
+ #: unicode characters (or you can just input the unicode characters
+ #: directly as UTF-8 text). The first argument to send_text is the
+ #: keyboard modes in which to activate the shortcut. The possible
+ #: values are normal or application or kitty or a comma separated
+ #: combination of them. The special keyword all means all modes. The
+ #: modes normal and application refer to the DECCKM cursor key mode
+ #: for terminals, and kitty refers to the special kitty extended
+ #: keyboard protocol.
+
+ #: Another example, that outputs a word and then moves the cursor to
+ #: the start of the line (same as pressing the Home key)::
+
+ #: map ctrl+alt+a send_text normal Word\x1b[H
+ #: map ctrl+alt+a send_text application Word\x1bOH
+
+ #: }}}
+#+end_src
+
+**** Dracula Theme
+
+#+begin_src conf :tangle .config/kitty/kitty.conf
+ include dracula.conf
+#+end_src
+
+#+begin_src conf :tangle .config/kitty/dracula.conf
+ # https://draculatheme.com/kitty
+ #
+ # Installation instructions:
+ #
+ # cp dracula.conf ~/.config/kitty/
+ # echo "include dracula.conf" >> ~/.config/kitty/kitty.conf
+ #
+ # Then reload kitty for the config to take affect.
+ # Alternatively copy paste below directly into kitty.conf
+
+ foreground #f8f8f2
+ background #282a36
+ selection_foreground #ffffff
+ selection_background #44475a
+
+ url_color #8be9fd
+
+ # black
+ color0 #21222c
+ color8 #6272a4
+
+ # red
+ color1 #ff5555
+ color9 #ff6e6e
+
+ # green
+ color2 #50fa7b
+ color10 #69ff94
+
+ # yellow
+ color3 #f1fa8c
+ color11 #ffffa5
+
+ # blue
+ color4 #bd93f9
+ color12 #d6acff
+
+ # magenta
+ color5 #ff79c6
+ color13 #ff92df
+
+ # cyan
+ color6 #8be9fd
+ color14 #a4ffff
+
+ # white
+ color7 #f8f8f2
+ color15 #ffffff
+
+ # Cursor colors
+ cursor #f8f8f2
+ cursor_text_color background
+
+ # Tab bar colors
+ active_tab_foreground #282a36
+ active_tab_background #f8f8f2
+ inactive_tab_foreground #282a36
+ inactive_tab_background #6272a4
+
+ # Marks
+ mark1_foreground #282a36
+ mark1_background #ff5555
+#+end_src
+
+* Text Editor
+
+** Vim
+
+#+begin_src vimrc :tangle .vimrc
+ " Don't try to be vi compatible
+ set nocompatible
+
+ " Syntax Highlighting
+ syntax on
+
+ " Pick a leader key
+ let mapleader = "\\"
+
+ " Security
+ set modelines=0
+
+ " Show line numbers
+ set number relativenumber
+
+ " Show file stats
+ set ruler
+
+ " Blink cursors on error instead of beeping
+ set visualbell
+
+ " Encoding
+ set encoding=utf-8
+
+ " Whitespace
+ set wrap
+ set textwidth=110
+ set formatoptions=tcqrn1
+ set tabstop=4
+ set shiftwidth=4
+ set softtabstop=4
+ set expandtab
+ set noshiftround
+ set smarttab
+ set autoindent
+
+ " Cursor Motion
+ set scrolloff=3
+ set backspace=indent,eol,start
+ set matchpairs+=<:> " use % to jumb between pairs
+
+ " Allow hidden buffers
+ set hidden
+
+ " Rendering
+ set ttyfast
+
+ " Status bar
+ set laststatus=2
+
+ " Last line
+ set showmode
+ set showcmd
+
+ " Searching
+ nnoremap / /\v
+ vnoremap / /\v
+ set hlsearch
+ set incsearch
+ set ignorecase
+ set smartcase
+ set showmatch
+ map :let @/='' " clear search
+
+ " Formatting
+ map q gqip
+
+ " Visualize tabs and newlines
+ set listchars=tab:▸\ ,eol:¬
+ map l :set list! " Toggle tabs and EOL
+
+ " Exit Inser Mode Easily
+ :inoremap jk
+
+ " UI Config
+ set cursorline
+ filetype indent on
+ set wildmenu
+ set lazyredraw
+ set showmatch
+
+ " Add Dracula Themes
+ packadd! dracula
+ packadd! dracula_pro
+
+ " Enable Dracula Pro Theme
+ syntax enable
+ let g:dracula_colorterm = 0
+ colorscheme dracula_pro
+#+end_src
+
+* System Monitor
+
+** Conky
+
+#+begin_src conf :tangle .config/conky/conky.conf
+ --[[
+ Conky, a system monitor, based on torsmo
+
+ Any original torsmo code is licensed under the BSD license
+
+ All code written since the fork of torsmo is licensed under the GPL
+
+ Please see COPYING for details
+
+ Copyright (c) 2004, Hannu Saransaari and Lauri Hakkarainen
+ Copyright (c) 2005-2021 Brenden Matthews, Philip Kovacs, et. al. (see AUTHORS)
+ All rights reserved.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see .
+ ]]
+
+ conky.config ={
+ -- CONKY SETTINGS
+ background = true,
+ update_interval = 1,
+ update_interval_on_battery = 5,
+ total_run_times = 0,
+
+ cpu_avg_samples = 2,
+ net_avg_samples = 2,
+
+ override_utf8_locale = true,
+
+ double_buffer = true,
+ no_buffers = true,
+
+ text_buffer_size = 32768,
+
+ -- CONKY: WINDOW SPECIFICATIONS
+ own_window = true,
+ own_window_argb_value = 192,
+ own_window_argb_visual = true,
+ own_window_class = 'conky-semi',
+ -- own_window_colour = '#0b0d18',
+ own_window_hints = 'undecorated,below,sticky,skip_taskbar,skip_pager',
+ own_window_transparent = true,
+ own_window_type = 'dock',
+
+ border_inner_margin = 6,
+ border_width = 5,
+
+ minimum_height = 1020,
+
+ minimum_width = 280,
+ maximum_width = 280,
+
+ alignment = 'bottom_left',
+ gap_x = 10,
+ gap_y = 0,
+
+ -- GRAPHICS SETTINGS
+ draw_outline = true,
+ draw_outline = false,
+ draw_borders = false,
+ draw_graph_borders = true,
+ -- draw_graph_borders = false,
+
+ -- TEXT SETTINGS
+ use_xft = true,
+ font = 'Montserrat Regular:size=10',
+ xftalpha = 0.2,
+
+ uppercase = false,
+
+ -- Pad percentages to this many decimals (0 = no padding)
+ pad_percents = 2,
+
+ -- COLOUR SETTINGS
+ default_color = 'AAAAAA',
+ default_shade_color = '333333',
+ -- default_outline_color = '111111',
+ default_outline_color = '010101',
+ color1 = '999999',
+ color2 = 'CCCCCC',
+ color3 = 'EEEEEE',
+ color4 = '444444',
+ color5 = '555555',
+ color6 = '666666',
+ color7 = '3b71a1',
+ };
+
+
+ conky.text = [[
+ ${alignc}${color1}${font Montserrat Bold:size=20}${time %X (%Z)}${font}${color}${alignc}
+ ${voffset -9}
+ ${alignc}${font Montserrat Light:size=10}${time %A %d %B %Y}${font}${alignc}
+ ${color6}${hr 2}${color}
+ ${voffset -6}
+ ${font Montserrat Light:size=8}${color1}SYSTEM:${color}${font} ${alignr}$sysname $nodename
+ ${font Montserrat Light:size=8}${color1}UPTIME:${color}${font} ${alignr}$uptime_short
+ ${font Montserrat Light:size=8}${color1}KERNEL:${color}${font} ${alignr}$kernel ${voffset 5}
+ ${font :size=11}${color}CPUs ${color}${hr 2}${color}
+ ${voffset -15}
+ ${font Montserrat Light:size=10}${color1}CPU:${color}${font} ${alignr}${color}${execi 300 cat /proc/cpuinfo | grep 'model name' | cut -c 14-40 | uniq}${color}${font}
+ ${font Montserrat Light:size=9}${color1}Used: ${alignr}${color}${font}${cpu cpu0}%
+ ${font :size=11}${color}${cpubar cpu0}${color}
+ ${voffset -15}
+ ${font Montserrat Light:size=9}${color1}01 - 04:${color}${font} ${goto 100}${cpu cpu1}% ${goto 150}${cpu cpu2 }% ${goto 200}${cpu cpu3 }% ${goto 250}${cpu cpu4 }%
+ ${font Montserrat Light:size=9}${color1}05 - 08:${color}${font} ${goto 100}${cpu cpu5}% ${goto 150}${cpu cpu6 }% ${goto 200}${cpu cpu7 }% ${goto 250}${cpu cpu8 }%
+ ${font Montserrat Light:size=9}${color1}09 - 12:${color}${font} ${goto 100}${cpu cpu9}% ${goto 150}${cpu cpu10}% ${goto 200}${cpu cpu11}% ${goto 250}${cpu cpu12}%
+ ${voffset -8}
+ ${font Montserrat Light:size=9}${color1}CPU TEMP:${color}${font} ${font :size=10}${alignr}${hwmon 1 temp 1}°${color4}C${color}${voffset 5}
+ ${font :size=11}${color}Network ${color}${hr 2}${color}
+ ${voffset -15}
+ # ${font Montserrat Light:size=10}${color1}IP ADDRESS:${color}${font} ${alignr}${addr wlp0s20f3}
+ ${if_match "${addr wlp0s20f3}"!="No Address"}${voffset 5}${font Montserrat Light:size=10}${font}Download ${alignr}${downspeedf wlp0s20f3}k/s (${totaldown wlp0s20f3})
+ ${color3}${downspeedgraph wlp0s20f3 50,280 ADFF2F 32CD32 -t}
+ ${font Montserrat Light:size=10}${font}Upload ${alignr}${upspeedf wlp0s20f3}k/s (${totalup wlp0s20f3})
+ ${color3}${upspeedgraph wlp0s20f3 50,280 FF0000 8B0000 -t}
+ ${endif}${voffset 5}${font :size=11}${color}HDD ${color}${hr 2}${color}
+ ${color1}Used: ${color3}${fs_used /}${color1}${goto 190}Free:${goto 230}${color3}${fs_free /}
+ ${color2}${fs_bar /}
+ ${font Montserrat Light:size=8}${color1}DISK I/O:${color}${font} ${alignr}$diskio
+ ${voffset 2}${font Montserrat Light:size=8}${color1}READ: ${color}${font} ${goto 80}${color4}${diskiograph_read 15,210 ADFF2F 32CD32 750}${color}
+ ${voffset 2}${font Montserrat Light:size=8}${color1}WRITE:${color}${font} ${goto 80}${color4}${diskiograph_write 15,210 FF0000 8B0000 750}${color}
+ ${font :size=11}${color}Memory ${color}${hr 2}${color}${voffset 2}
+ $font${color DimGray}RAM $alignc $mem / $memmax $alignr ${color 188f18}$memperc%
+ ${color 188f18}$membar${voffset 1}
+ ${font :size=11}${color}GPU ${color}${hr 2}${color}${voffset 2}
+ ${font Montserrat Light:size=9}${color1}GPU Freq.: $alignr ${color}${font}${nvidia gpufreq} Mhz${voffset 3}
+ ${font Montserrat Light:size=9}${color1}Memory Freq.: $alignr ${color}${font}${nvidia memfreq} Mhz${voffset 3}
+ ${font Montserrat Light:size=9}${color1}Temperature: $alignr ${color}${font}${nvidia temp}°C ${voffset 3}
+ ${voffset 3}${font :size=11}${color}Processes ${color}${hr 2}${color}
+ ${voffset -15}
+ ${font :size=10}${font Montserrat Light:size=8}${color1}TOTAL:${color}${font} ${alignr}${processes}
+ ${voffset -10}
+ ${font Montserrat Light:size=9}${color1}APP NAME: ${goto 160}MEMORY: ${goto 245}CPU: ${color}${font}
+ ${voffset -16}
+ ${font Montserrat Light:size=9}${color1}${top_mem name 1} ${color}${font} ${goto 160}${top mem 1} % ${goto 235}${top cpu 1} %
+ ${font Montserrat Light:size=9}${color1}${top_mem name 2} ${color}${font} ${goto 160}${top mem 2} % ${goto 235}${top cpu 2} %
+ ${font Montserrat Light:size=9}${color1}${top_mem name 3} ${color}${font} ${goto 160}${top mem 3} % ${goto 235}${top cpu 3} %
+ ${font Montserrat Light:size=9}${color1}${top_mem name 4} ${color}${font} ${goto 160}${top mem 4} % ${goto 235}${top cpu 4} %
+ ${font Montserrat Light:size=9}${color1}${top_mem name 5} ${color}${font} ${goto 160}${top mem 5} % ${goto 235}${top cpu 5} %
+ ${font Montserrat Light:size=9}${color1}${top_mem name 6} ${color}${font} ${goto 160}${top mem 6} % ${goto 235}${top cpu 6} %
+ ${font Montserrat Light:size=9}${color1}${top_mem name 7} ${color}${font} ${goto 160}${top mem 7} % ${goto 235}${top cpu 7} %
+ ${font Montserrat Light:size=9}${color1}${top_mem name 8} ${color}${font} ${goto 160}${top mem 8} % ${goto 235}${top cpu 8} %
+ ${font Montserrat Light:size=9}${color1}${top_mem name 9} ${color}${font} ${goto 160}${top mem 9} % ${goto 235}${top cpu 9} %
+ ${font Montserrat Light:size=9}${color1}${top_mem name 10} ${color}${font} ${goto 160}${top mem 10} % ${goto 235}${top cpu 10} %
+
+ # ${font Montserrat Light:size=10}${color1}${alignr}by: Mo Abdrabou${color}${font}
+
+ ]];
+#+end_src
+
+* Gaming
+** Gamemode
+
+*** General
+
+#+begin_src conf :tangle .config/gamemode.ini
+ [general]
+ ; The reaper thread will check every 5 seconds for exited clients, for config file changes, and for the CPU/iGPU power balance
+ reaper_freq=5
+
+ ; The desired governor is used when entering GameMode instead of "performance"
+ desiredgov=performance
+ ; The default governor is used when leaving GameMode instead of restoring the original value
+ ;defaultgov=powersave
+
+ ; The iGPU desired governor is used when the integrated GPU is under heavy load
+ igpu_desiredgov=powersave
+ ; Threshold to use to decide when the integrated GPU is under heavy load.
+ ; This is a ratio of iGPU Watts / CPU Watts which is used to determine when the
+ ; integraged GPU is under heavy enough load to justify switching to
+ ; igpu_desiredgov. Set this to -1 to disable all iGPU checking and always
+ ; use desiredgov for games.
+ igpu_power_threshold=0.3
+
+ ; GameMode can change the scheduler policy to SCHED_ISO on kernels which support it (currently
+ ; not supported by upstream kernels). Can be set to "auto", "on" or "off". "auto" will enable
+ ; with 4 or more CPU cores. "on" will always enable. Defaults to "off".
+ softrealtime=off
+
+ ; GameMode can renice game processes. You can put any value between 0 and 20 here, the value
+ ; will be negated and applied as a nice value (0 means no change). Defaults to 0.
+ renice=10
+
+ ; By default, GameMode adjusts the iopriority of clients to BE/0, you can put any value
+ ; between 0 and 7 here (with 0 being highest priority), or one of the special values
+ ; "off" (to disable) or "reset" (to restore Linux default behavior based on CPU priority),
+ ; currently, only the best-effort class is supported thus you cannot set it here
+ ioprio=0
+
+ ; Sets whether gamemode will inhibit the screensaver when active
+ ; Defaults to 1
+ inhibit_screensaver=1
+#+end_src
+
+*** Filter
+
+#+begin_src conf :tangle .config/gamemode.ini
+ [filter]
+ ; If "whitelist" entry has a value(s)
+ ; gamemode will reject anything not in the whitelist
+ ;whitelist=RiseOfTheTombRaider
+
+ ; Gamemode will always reject anything in the blacklist
+ ;blacklist=HalfLife3
+ ; glxgears
+#+end_src
+
+*** GPU
+
+#+begin_src conf :tangle .config/gamemode.ini
+ [gpu]
+ ; Here Be Dragons!
+ ; Warning: Use these settings at your own risk
+ ; Any damage to hardware incurred due to this feature is your responsibility and yours alone
+ ; It is also highly recommended you try these settings out first manually to find the sweet spots
+
+ ; Setting this to the keyphrase "accept-responsibility" will allow gamemode to apply GPU optimisations such as overclocks
+ ;apply_gpu_optimisations=0
+
+ ; The DRM device number on the system (usually 0), ie. the number in /sys/class/drm/card0/
+ ;gpu_device=0
+
+ ; Nvidia specific settings
+ ; Requires the coolbits extension activated in nvidia-xconfig
+ ; This corresponds to the desired GPUPowerMizerMode
+ ; "Adaptive"=0 "Prefer Maximum Performance"=1 and "Auto"=2
+ ; See NV_CTRL_GPU_POWER_MIZER_MODE and friends in https://github.com/NVIDIA/nvidia-settings/blob/master/src/libXNVCtrl/NVCtrl.h
+ ;nv_powermizer_mode=1
+
+ ; These will modify the core and mem clocks of the highest perf state in the Nvidia PowerMizer
+ ; They are measured as Mhz offsets from the baseline, 0 will reset values to default, -1 or unset will not modify values
+ ;nv_core_clock_mhz_offset=0
+ ;nv_mem_clock_mhz_offset=0
+
+ ; AMD specific settings
+ ; Requires a relatively up to date AMDGPU kernel module
+ ; See: https://dri.freedesktop.org/docs/drm/gpu/amdgpu.html#gpu-power-thermal-controls-and-monitoring
+ ; It is also highly recommended you use lm-sensors (or other available tools) to verify card temperatures
+ ; This corresponds to power_dpm_force_performance_level, "manual" is not supported for now
+ ;amd_performance_level=high
+#+end_src
+
+*** Supervisor
+
+#+begin_src conf :tangle .config/gamemode.ini
+ [supervisor]
+ ; This section controls the new gamemode functions gamemode_request_start_for and gamemode_request_end_for
+ ; The whilelist and blacklist control which supervisor programs are allowed to make the above requests
+ ;supervisor_whitelist=
+ ;supervisor_blacklist=
+
+ ; In case you want to allow a supervisor to take full control of gamemode, this option can be set
+ ; This will only allow gamemode clients to be registered by using the above functions by a supervisor client
+ ;require_supervisor=0
+#+end_src
+
+*** Custom
+
+#+begin_src conf :tangle .config/gamemode.ini
+ [custom]
+ ; Custom scripts (executed using the shell) when gamemode starts and ends
+ ;start=notify-send "GameMode started"
+ ; /home/me/bin/stop_ethmining.sh
+
+ ;end=notify-send "GameMode ended"
+ ; /home/me/bin/start_ethmining.sh
+
+ ; Timeout for scripts (seconds). Scripts will be killed if they do not complete within this time.
+ ;script_timeout=10
+#+end_src
+** MangoHUD
+
+#+begin_src conf :tangle .config/MangoHud/MangoHud.conf
+ cpu_stats
+ cpu_temp
+ cpu_color=2e97cb
+ cpu_text=CPU
+ gpu_stats
+ gpu_temp
+ gpu_core_clock
+ gpu_mem_clock
+ vulkan_driver
+ gpu_name
+ gpu_color=2e9762
+ gpu_text=GPU
+ vram
+ vram_color=ad64c1
+ ram
+ ram_color=c26693
+ io_color=a491d3
+ frame_timing=1
+ frametime_color=00ff00
+ background_alpha=0.4
+ font_size=24
+ background_color=020202
+ position=top-left
+ text_color=ffffff
+ toggle_hud=Shift_R+F12
+ toggle_logging=Shift_L+F2
+ output_file=/home/sravan/mangohud_log_
+ media_player_name=spotify
+#+end_src
+
+* SSH
+
+#+begin_src conf :tangle .ssh/config
+ # CAEN On-Campus
+ Host caen-oncampus
+ HostName oncampus-course.engin.umich.edu
+ User balajsra
+ Compression yes
+
+ # CAEN Off-Campus
+ Host caen-offcampus
+ HostName login-course.engin.umich.edu
+ User balajsra
+ Compression yes
+#+end_src
+
+* System Settings
+
+** Xinit
+
+*** Environment Variables
+
+#+begin_src shell :shebang #!/bin/sh :tangle .xinitrc
+ export TERM=xterm-256color # Sets the terminal type
+ export SHELL=/usr/bin/fish # Preferred shell
+ export EDITOR="emacs -nw" # Default editor
+ export BROWSER=vivaldi-stable # Web Browser
+ export XDG_CONFIG_HOME=$HOME/.config # Set Config directory
+ export QT_QPA_PLATFORMTHEME=qt5ct # QGtkStyle
+#+end_src
+
+*** Load Xresources
+
+#+begin_src shell :shebang #!/bin/sh :tangle .xinitrc
+ xrdb ~/.Xresources
+#+end_src
+
+*** Launch Environment
+
+#+begin_src shell :shebang #!/bin/sh :tangle .xinitrc
+ exec xmonad
+#+end_src
+
+** Xresources
+
+*** Colors
+
+#+begin_src conf :tangle .Xresources
+ ! Colors
+ #define FOREGROUND #F8F8F2
+ #define BACKGROUND #282A36
+ #define BLACK1 #000000
+ #define BLACK2 #4D4D4D
+ #define WHITE1 #E6E6E6
+ #define WHITE2 #BFBFBF
+ #define RED1 #FF5555
+ #define RED2 #FF6E67
+ #define GREEN1 #50FA7B
+ #define GREEN2 #5AF78E
+ #define YELLOW1 #F1FA8C
+ #define YELLOW2 #F4F99D
+ #define PURPLE1 #BD93F9
+ #define PURPLE2 #CAA9FA
+ #define PINK1 #FF79C6
+ #define PINK2 #FF92D0
+ #define CYAN1 #8BE9FD
+ #define CYAN2 #9AEDFE
+ #define ORANGE #FFB86C
+
+ ! Dracula Xresources Palette
+ ,*.foreground: FOREGROUND
+ ,*.background: BACKGROUND
+ ,*.color0: BLACK1
+ ,*.color8: BLACK2
+ ,*.color1: RED1
+ ,*.color9: RED2
+ ,*.color2: GREEN1
+ ,*.color10: GREEN2
+ ,*.color3: YELLOW1
+ ,*.color11: YELLOW2
+ ,*.color4: PURPLE1
+ ,*.color12: PURPLE2
+ ,*.color5: PINK1
+ ,*.color13: PINK2
+ ,*.color6: CYAN1
+ ,*.color14: CYAN2
+ ,*.color7: WHITE2
+ ,*.color15: WHITE1
+ ,*.color16: ORANGE
+#+end_src
+
+*** Sizes
+
+#+begin_src conf :tangle .Xresources
+ ! Regular DPI Parameters
+ #define DPI 96
+ #define BAR_HEIGHT 25
+ #define MODULE_MARGIN 2
+ #define TRAY_MAXSIZE 15
+ #define TRAY_SCALE 1
+ #define BORDER_SIZE 2
+ #define INNER_GAPS 20
+ #define OUTER_GAPS 10
+ #define MAXLEN 75
+#+end_src
+
+*NOT IN USE*
+#+begin_src conf :tangle no
+ ! HiDPI Parameters
+ #define DPI 192
+ #define BAR_HEIGHT 50
+ #define MODULE_MARGIN 1
+ #define TRAY_MAXSIZE 30
+ #define TRAY_SCALE 1
+ #define BORDER_SIZE 4
+ #define INNER_GAPS 40
+ #define OUTER_GAPS 20
+ #define MAXLEN 45
+#+end_src
+
+*** Application Specific Changes
+
+**** dwm
+
+*NOT IN USE*
+#+begin_src conf :tangle no
+ ! DWM
+ dwm.normbgcolor: BACKGROUND
+ dwm.normbordercolor: BLACK2
+ dwm.normfgcolor: FOREGROUND
+ dwm.selfgcolor: BACKGROUND
+ dwm.selbordercolor: PURPLE1
+ dwm.selbgcolor: PURPLE1
+ dwm.borderpx: BORDER_SIZE
+ dwm.gappih: INNER_GAPS
+ dwm.gappiv: INNER_GAPS
+ dwm.gappoh: OUTER_GAPS
+ dwm.gappov: OUTER_GAPS
+#+end_src
+
+**** Polybar
+
+*NOT IN USE*
+#+begin_src conf :tangle no
+ ! Polybar
+ polybar.bar-height: BAR_HEIGHT
+ polybar.module-margin: MODULE_MARGIN
+ polybar.tray-maxsize: TRAY_MAXSIZE
+ polybar.tray-scale: TRAY_SCALE
+ polybar.maxlen: MAXLEN
+#+end_src
+
+**** Dunst
+
+#+begin_src conf :tangle .Xresources
+ ! Dunst
+ dunst.geometry-x: OUTER_GAPS
+ dunst.geometry-y: BAR_HEIGHT
+ dunst.sep-height: BORDER_SIZE
+ dunst.padding: OUTER_GAPS
+ dunst.horiz-padding: OUTER_GAPS
+ dunst.max-icon-size: DPI
+ dunst.frame-width: BORDER_SIZE
+ dunst.low-background: BACKGROUND
+ dunst.low-foreground: FOREGROUND
+ dunst.low-frame: PURPLE1
+ dunst.normal-background: BACKGROUND
+ dunst.normal-foreground: FOREGROUND
+ dunst.normal-frame: PURPLE1
+ dunst.critical-background: RED1
+ dunst.critical-foreground: FOREGROUND
+ dunst.critical-frame: PURPLE1
+#+end_src
+
+**** Display Scaling
+
+#+begin_src conf :tangle .Xresources
+ ! Display Scaling
+ ,*.dpi: DPI
+#+end_src
+
* Acknowledgements
I followed [[https://www.youtube.com/channel/UCVls1GmFKf6WlTraIb_IaJg][DistroTube]]'s process for setting up a git bare repository as shown in [[https://youtu.be/tBoLDpTWVOM][Git Bare Repository - A Better Way To Manage Dotfiles]].