├── .config ├── nvim │ ├── lua │ │ ├── plugins │ │ │ ├── lazy_nvim.lua │ │ │ ├── vsnip.lua │ │ │ ├── gruvbox.lua │ │ │ ├── masonlsp.lua │ │ │ ├── indent.lua │ │ │ ├── colorizer.lua │ │ │ ├── bufferline.lua │ │ │ ├── indent_blankline.lua │ │ │ ├── lualine.lua │ │ │ ├── treesitter.lua │ │ │ ├── colorscheme.lua │ │ │ ├── nvimtree.lua │ │ │ ├── Comment.lua │ │ │ ├── telescope.lua │ │ │ ├── zenmode.lua │ │ │ ├── presence.lua │ │ │ ├── cmp.lua │ │ │ └── lspconfig.lua │ │ ├── ikigai │ │ │ ├── init.lua │ │ │ ├── colors.lua │ │ │ └── util.lua │ │ ├── mappings.lua │ │ ├── lualine │ │ │ └── themes │ │ │ │ └── ikigai.lua │ │ ├── options.lua │ │ ├── statusline.lua │ │ ├── plugins.lua.bak │ │ └── plugins.lua │ ├── init.lua │ ├── colors │ │ └── ikigai.vim │ └── lazy-lock.json ├── sketchybar │ ├── plugins │ │ ├── window_title.sh │ │ ├── date.sh │ │ ├── space.sh │ │ ├── clock.sh │ │ ├── volume.sh │ │ ├── input.sh │ │ ├── wifi_click.sh │ │ ├── wifi.sh │ │ └── battery.sh │ ├── colors.sh │ ├── modules │ │ ├── time.sh │ │ ├── battery.sh │ │ ├── input.sh │ │ ├── volume.sh │ │ ├── date.sh │ │ ├── window_title.sh │ │ ├── wifi.sh │ │ └── spaces.sh │ └── sketchybarrc ├── eww │ ├── eww.yuck │ ├── scripts │ │ ├── toggledash.sh │ │ ├── getRedshift.sh │ │ ├── getWifi.sh │ │ ├── getBluetooth.sh │ │ ├── workspaces.sh │ │ └── getSongMetadata.sh │ ├── scss │ │ └── _variables.scss │ ├── yuck │ │ ├── _variables.yuck │ │ ├── bar.yuck │ │ └── dashboard.yuck │ └── eww.scss ├── gtk-3.0 │ └── settings.ini ├── kmonad │ ├── kmonad.service │ ├── README.md │ ├── 60coldh.kbd │ └── config.kbd ├── polybar │ ├── launch.sh │ ├── config.ini │ └── bars.ini ├── starship.toml ├── rofi │ ├── config.rasi │ ├── powermenu │ │ ├── confirm.rasi │ │ └── powermenu.rasi │ └── theme.rasi ├── dunst │ └── reload ├── xob │ └── styles.cfg ├── zathura │ └── zathurarc ├── mpd │ └── mpd.conf ├── bspwm │ └── bspwmrc ├── tint2 │ └── systray.tint2rc ├── picom │ └── picom.conf ├── zsh │ ├── .zshrc │ ├── .zshrc_ohmyzsh │ └── agnoster.zsh ├── yabai │ └── yabairc ├── tmux │ └── tmux.conf ├── sxhkd │ └── sxhkdrc ├── alacritty │ └── alacritty.yml ├── ncmpcpp │ └── bindings └── skhd │ └── skhdrc ├── .zshenv ├── .DS_Store ├── .icons ├── camera.png ├── charging.png ├── clipboard.png ├── fullbattery.png ├── lowbattery.png └── default │ └── index.theme ├── Pictures ├── main.png ├── tint.png └── black_mountains.jpg ├── .local └── bin │ ├── screenrec │ ├── borders │ ├── screenshot │ ├── mememaker │ ├── lock.sh │ ├── colorscheme │ ├── pulse-volume-watcher.py │ ├── volume.sh │ └── powermenu ├── .Xresources ├── .mozilla └── firefox │ └── chrome │ ├── userContent.css │ └── userChrome.css ├── README.md ├── .vimrc ├── .tmux.conf └── .vim └── colors ├── chocolate.vim ├── 256_noir.vim ├── yang.vim └── yin.vim /.config/nvim/lua/plugins/lazy_nvim.lua: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.zshenv: -------------------------------------------------------------------------------- 1 | . "$HOME/.cargo/env" 2 | 3 | ZDOTDIR=$HOME/.config/zsh 4 | -------------------------------------------------------------------------------- /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vatsal999/dotfiles/HEAD/.DS_Store -------------------------------------------------------------------------------- /.icons/camera.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vatsal999/dotfiles/HEAD/.icons/camera.png -------------------------------------------------------------------------------- /Pictures/main.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vatsal999/dotfiles/HEAD/Pictures/main.png -------------------------------------------------------------------------------- /Pictures/tint.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vatsal999/dotfiles/HEAD/Pictures/tint.png -------------------------------------------------------------------------------- /.icons/charging.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vatsal999/dotfiles/HEAD/.icons/charging.png -------------------------------------------------------------------------------- /.icons/clipboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vatsal999/dotfiles/HEAD/.icons/clipboard.png -------------------------------------------------------------------------------- /.icons/fullbattery.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vatsal999/dotfiles/HEAD/.icons/fullbattery.png -------------------------------------------------------------------------------- /.icons/lowbattery.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vatsal999/dotfiles/HEAD/.icons/lowbattery.png -------------------------------------------------------------------------------- /.config/sketchybar/plugins/window_title.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | sketchybar --set $NAME label="$INFO" 4 | -------------------------------------------------------------------------------- /Pictures/black_mountains.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vatsal999/dotfiles/HEAD/Pictures/black_mountains.jpg -------------------------------------------------------------------------------- /.config/nvim/init.lua: -------------------------------------------------------------------------------- 1 | require('options') 2 | require('mappings') 3 | require('plugins') 4 | require('statusline') 5 | -------------------------------------------------------------------------------- /.config/sketchybar/plugins/date.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | sketchybar --set $NAME label="$(date '+%a %d %b')" 4 | -------------------------------------------------------------------------------- /.config/sketchybar/plugins/space.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | sketchybar --set $NAME background.drawing=$SELECTED 4 | -------------------------------------------------------------------------------- /.config/nvim/lua/plugins/vsnip.lua: -------------------------------------------------------------------------------- 1 | vim.cmd [[ 2 | let g:vsnip_filetypes = {} 3 | let g:vsnip_filetypes.cppc = ['c'] 4 | ]] 5 | -------------------------------------------------------------------------------- /.config/eww/eww.yuck: -------------------------------------------------------------------------------- 1 | (include "./yuck/_variables.yuck") 2 | (include "./yuck/bar.yuck") 3 | (include "./yuck/dashboard.yuck") 4 | -------------------------------------------------------------------------------- /.config/nvim/lua/plugins/gruvbox.lua: -------------------------------------------------------------------------------- 1 | vim.cmd("let g:gruvbox_contrast_dark = 'hard'") 2 | vim.cmd("let g:gruvbox_sign_column = 'bg0'") 3 | vim.cmd("colorscheme gruvbox") 4 | -------------------------------------------------------------------------------- /.icons/default/index.theme: -------------------------------------------------------------------------------- 1 | # This file is written by LXAppearance. Do not edit. 2 | [Icon Theme] 3 | Name=Default 4 | Comment=Default Cursor Theme 5 | Inherits=Adwaita 6 | -------------------------------------------------------------------------------- /.config/sketchybar/plugins/clock.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | #sketchybar --set $NAME label="$(date '+%a %d %b %I:%M %p')" 4 | sketchybar --set $NAME label="$(date '+%I:%M %p')" 5 | -------------------------------------------------------------------------------- /.config/nvim/lua/ikigai/init.lua: -------------------------------------------------------------------------------- 1 | local util = require("ikigai.util") 2 | 3 | -- Load the theme 4 | local setup = function() 5 | util.load() 6 | end 7 | 8 | return { setup = setup } 9 | -------------------------------------------------------------------------------- /.config/nvim/lua/plugins/masonlsp.lua: -------------------------------------------------------------------------------- 1 | require("mason").setup() 2 | require("mason-lspconfig").setup{ 3 | ensure_installed = { "lua_ls", "clangd"}, 4 | automatic_installation = true, 5 | } 6 | -------------------------------------------------------------------------------- /.config/gtk-3.0/settings.ini: -------------------------------------------------------------------------------- 1 | [Settings] 2 | gtk-theme-name = Gruvbox-Dark-BL 3 | gtk-icon-theme-name = Vimix-Black 4 | gtk-font-name = Inter 11 5 | gtk-xft-antialias=1 6 | gtk-xft-hinting=0 7 | gtk-xft-hintstyle=hintnone 8 | gtk-xft-rgba=rgb 9 | -------------------------------------------------------------------------------- /.config/nvim/lua/plugins/indent.lua: -------------------------------------------------------------------------------- 1 | require("indent_blankline").setup { 2 | -- for example, context is off by default, use this to turn it on 3 | -- show_current_context = false, 4 | -- show_current_context_start = true, 5 | } 6 | 7 | -------------------------------------------------------------------------------- /.config/eww/scripts/toggledash.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | if [ "$(eww get dash_rev)" = "false" ]; then 4 | eww open dash 5 | eww update dash_rev=true 6 | else 7 | eww update dash_rev=false 8 | sleep 0.5 9 | eww close dash 10 | fi 11 | -------------------------------------------------------------------------------- /.config/nvim/lua/plugins/colorizer.lua: -------------------------------------------------------------------------------- 1 | require'colorizer'.setup({"*"},{ 2 | RGB = true; 3 | RRGGBB = true; 4 | RRGGBBAA = true; 5 | names = false; 6 | rgb_fn = true; 7 | hsl_fn = true; 8 | mode = 'background'; 9 | 10 | }) 11 | -------------------------------------------------------------------------------- /.local/bin/screenrec: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # CREDITS: https://github.com/elkowar 4 | 5 | if [ -z "$1" ]; then 6 | echo "usage: screenrec " 7 | exit 1 8 | fi 9 | 10 | ffmpeg -video_size 1920x1080 -framerate 25 -f x11grab -i :0.0 "$1" 11 | -------------------------------------------------------------------------------- /.config/kmonad/kmonad.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=kmonad keyboard config 3 | 4 | [Service] 5 | Restart=always 6 | RestartSec=3 7 | ExecStart=/usr/bin/kmonad /home/vatsal/.config/kmonad/config.kbd 8 | Nice=-20 9 | 10 | [Install] 11 | WantedBy=default.target 12 | -------------------------------------------------------------------------------- /.config/sketchybar/colors.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | FG=0xffebdbb2 4 | BG=0xff1d2021 5 | 6 | RED=0xfffb4934 7 | GREEN=0xffb8bb26 8 | YELLOW=0xfffabd2f 9 | BLUE=0xff83a598 10 | MAGENTA=0xffd3869b 11 | CYAN=0xff8ec07c 12 | 13 | GRAYDARK=0xff282828 14 | GRAY=0xff504946 15 | -------------------------------------------------------------------------------- /.config/kmonad/README.md: -------------------------------------------------------------------------------- 1 | #README: 2 | 3 | contains 3 layers: 4 | 1. qwerty(base) 5 | 2. colemakdh 6 | 3. vimnav&funcs 7 | 8 | by pressing (cmp) key, switch between qwerty and colemak 9 | by holding (capslock) key, use 3rdlayer in any of the above layers ( qwerty and colmakdh) 10 | -------------------------------------------------------------------------------- /.config/sketchybar/modules/time.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | sketchybar --add item clock center \ 3 | --set clock update_freq=1 \ 4 | script="$PLUGIN_DIR/clock.sh" \ 5 | icon.drawing=off 6 | -------------------------------------------------------------------------------- /.config/sketchybar/modules/battery.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | sketchybar --add item battery right \ 3 | --set battery script="$PLUGIN_DIR/battery.sh" \ 4 | update_freq=10 \ 5 | --subscribe battery system_woke 6 | -------------------------------------------------------------------------------- /.config/nvim/colors/ikigai.vim: -------------------------------------------------------------------------------- 1 | lua << EOF 2 | package.loaded['ikigai'] = nil 3 | package.loaded['ikigai.util'] = nil 4 | package.loaded['ikigai.colors'] = nil 5 | package.loaded['ikigai.theme'] = nil 6 | package.loaded['ikigai.functions'] = nil 7 | 8 | require('ikigai').setup() 9 | EOF 10 | -------------------------------------------------------------------------------- /.config/sketchybar/modules/input.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | sketchybar --add event input_change 'AppleSelectedInputSourcesChangedNotification' \ 4 | --add item input right \ 5 | --set input script="$PLUGIN_DIR/input.sh" \ 6 | --subscribe input input_change 7 | -------------------------------------------------------------------------------- /.config/sketchybar/modules/volume.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | sketchybar --add item sound right \ 3 | --set sound \ 4 | update_freq=5 \ 5 | icon.color=$MAGENTA \ 6 | script="$PLUGIN_DIR/volume.sh" 7 | -------------------------------------------------------------------------------- /.config/sketchybar/modules/date.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | sketchybar --add item date right \ 3 | --set date update_freq=10 \ 4 | script="$PLUGIN_DIR/date.sh" \ 5 | icon.drawing=off 6 | 7 | -------------------------------------------------------------------------------- /.Xresources: -------------------------------------------------------------------------------- 1 | Xft.dpi: 96 2 | Xft.autohint: 0 3 | Xft.lcdfilter: lcddefault 4 | Xft.hintstyle: hintfull 5 | Xft.hinting: 1 6 | Xft.antialias: 1 7 | Xft.rgba: rgb 8 | *renderFont: true 9 | *faceName: FiraCode Nerd Font 10 | *faceSize: 12 11 | 12 | Sxiv.background: rgb:00/00/00 13 | Sxiv.foreground: rgb:77/aa/77 14 | Sxiv.font: xos4 Roboto:style=Bold:size=10 15 | -------------------------------------------------------------------------------- /.config/polybar/launch.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | ## Add this to your wm startup file. 4 | 5 | # Terminate already running bar instances 6 | killall -q polybar 7 | 8 | # Wait until the processes have been shut down 9 | while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done 10 | 11 | # Launch all bars :D 12 | polybar -c ~/.config/polybar/config.ini main & -------------------------------------------------------------------------------- /.config/sketchybar/plugins/volume.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | VOLUME=$(osascript -e "output volume of (get volume settings)") 4 | MUTED=$(osascript -e "output muted of (get volume settings)") 5 | 6 | if [[ $MUTED != "false" ]]; then 7 | ICON="MUTED" 8 | else 9 | ICON="" 10 | fi 11 | 12 | sketchybar -m \ 13 | --set $NAME icon=$ICON \ 14 | --set $NAME label="$VOLUME%" 15 | -------------------------------------------------------------------------------- /.config/sketchybar/modules/window_title.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | sketchybar --add item window_title left \ 3 | --set window_title script="$PLUGIN_DIR/window_title.sh" \ 4 | icon.drawing=off \ 5 | label.color=$MAGENTA \ 6 | --subscribe window_title front_app_switched 7 | -------------------------------------------------------------------------------- /.config/sketchybar/plugins/input.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | SOURCE=$(defaults read ~/Library/Preferences/com.apple.HIToolbox.plist AppleCurrentKeyboardLayoutInputSourceID) 4 | 5 | case ${SOURCE} in 6 | 'com.apple.keylayout.ABC-India') LABEL='QWERTY ' ;; 7 | 'org.unknown.keylayout.ColemakDHANSI') LABEL='COLEMAK ' ;; 8 | esac 9 | 10 | sketchybar --set $NAME icon="" icon.color=0xff83a598 label="$LABEL" 11 | -------------------------------------------------------------------------------- /.config/sketchybar/plugins/wifi_click.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | export CURRENT_WIFI="$(/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I)" 4 | export SSID="$(echo "$CURRENT_WIFI" | grep -o "SSID: .*" | sed 's/^SSID: //')" 5 | export CURR_TX="$(echo "$CURRENT_WIFI" | grep -o "lastTxRate: .*" | sed 's/^lastTxRate: //')" 6 | 7 | sketchybar --set $NAME label="${CURR_TX}Mbps" 8 | -------------------------------------------------------------------------------- /.config/eww/scripts/getRedshift.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | LOCK_FILE="$HOME/.cache/eww-redshift.lock" 4 | 5 | case $1 in 6 | "color") 7 | if [ ! -f "$LOCK_FILE" ]; then 8 | echo "#458588" 9 | else 10 | echo "#d79921" 11 | fi 12 | ;; 13 | "toggle") 14 | if [ ! -f "$LOCK_FILE" ]; then 15 | touch "$LOCK_FILE" 16 | redshift -P -O 4800 17 | else 18 | rm "$LOCK_FILE" 19 | redshift -x 20 | fi 21 | ;; 22 | esac 23 | -------------------------------------------------------------------------------- /.config/sketchybar/plugins/wifi.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | CURRENT_WIFI="$(/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I)" 4 | SSID="$(echo "$CURRENT_WIFI" | grep -o "SSID: .*" | sed 's/^SSID: //')" 5 | CURR_TX="$(echo "$CURRENT_WIFI" | grep -o "lastTxRate: .*" | sed 's/^lastTxRate: //')" 6 | 7 | POPUP_OFF="sketchybar --set wifi.control popup.drawing=off" 8 | POPUP_CLICK_SCRIPT="sketchybar --set \$NAME popup.drawing=toggle" 9 | -------------------------------------------------------------------------------- /.config/starship.toml: -------------------------------------------------------------------------------- 1 | # Inserts a blank line between shell prompts 2 | add_newline = true 3 | 4 | [character] 5 | success_symbol = "[](bold green)" 6 | error_symbol = "[](bold red)" 7 | vicmd_symbol = "[](blue)" 8 | 9 | # Disable the package module, hiding it from the prompt completely 10 | [package] 11 | disabled = true 12 | 13 | [directory] 14 | style="blue" 15 | 16 | [git_branch] 17 | symbol = "" 18 | style = "yellow" 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /.config/eww/scss/_variables.scss: -------------------------------------------------------------------------------- 1 | $ui_font: "Inter Medium"; 2 | $icon_font: "JetBrains Mono Nerd Font"; 3 | // gruvbox 4 | $primary_fg: #cfcfcf; 5 | $primary_bg: #131313; 6 | $secondary_bg: #282828; 7 | $grey: #808080; 8 | 9 | $red: #cc241d; 10 | $light_red: #fb4934; 11 | $green: #98971a; 12 | $light_green: #b8bb26; 13 | $yellow: #d79921; 14 | $light_yellow: #fabd2f; 15 | $blue: #458588; 16 | $light_blue: #83a598; 17 | $magenta: #b16286; 18 | $light_magenta: #d3869b; 19 | $cyan: #689d6a; 20 | $light_cyan: #8ec07c; 21 | -------------------------------------------------------------------------------- /.config/rofi/config.rasi: -------------------------------------------------------------------------------- 1 | configuration { 2 | font: "Inter Medium 14"; 3 | 4 | drun { 5 | display-name: ">"; 6 | } 7 | 8 | run { 9 | display-name: "Run:"; 10 | } 11 | 12 | window { 13 | display-name: "Window:"; 14 | } 15 | 16 | timeout { 17 | delay: 10; 18 | action: "kb-cancel"; 19 | } 20 | show-icons: true; 21 | icon-theme: "Papirus-Dark"; 22 | terminal: "/usr/bin/alacritty"; 23 | modi: "window,drun,run,keys"; 24 | } 25 | @theme "~/.config/rofi/theme.rasi" 26 | -------------------------------------------------------------------------------- /.config/dunst/reload: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | pkill dunst 3 | dunst -config ~/.config/dunst/dunstrc & 4 | 5 | notify-send -u critical "Test message: critical test 1" 6 | notify-send -u normal "Test message: normal test 2" 7 | notify-send -u low "Test message: low test 3" 8 | notify-send -u critical "Test message: critical test 4" 9 | notify-send -u normal "Test message: normal test 5" 10 | notify-send -u low "Test message: low test 6" 11 | notify-send -u critical "Test message: critical test 7" 12 | notify-send -u normal "Test message: normal test 8" 13 | notify-send -u low "Test message: low test 9" 14 | -------------------------------------------------------------------------------- /.mozilla/firefox/chrome/userContent.css: -------------------------------------------------------------------------------- 1 | @import url("userChrome.css"); 2 | 3 | /* Removes white loading page */ 4 | @-moz-document url(about:blank), url(about:newtab), url(about:home) { 5 | html:not(#ublock0-epicker), html:not(#ublock0-epicker) body, #newtab-customize-overlay { 6 | background: var(--mff-bg) !important; 7 | } 8 | } 9 | 10 | 11 | /* Hide scrollbar */ 12 | 13 | :root{ 14 | scrollbar-width: none !important; 15 | } 16 | 17 | 18 | @-moz-document url(about:privatebrowsing) { 19 | 20 | :root{ 21 | scrollbar-width: none !important; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /.config/nvim/lua/plugins/bufferline.lua: -------------------------------------------------------------------------------- 1 | 2 | require("bufferline").setup{ 3 | options = { 4 | -- numbers = function(opts) 5 | -- return string.format('%s', opts.ordinal) 6 | -- end, 7 | offsets = {{filetype = "NvimTree", text = "", text_align = "center"}}, 8 | show_buffer_icons = false, 9 | show_buffer_close_icons = false, 10 | show_close_icon = true, 11 | always_show_bufferline = false, 12 | }, 13 | highlights = { 14 | buffer_selected = { 15 | bold = false, 16 | italic = false, 17 | }, 18 | } 19 | } 20 | 21 | -------------------------------------------------------------------------------- /.config/nvim/lua/plugins/indent_blankline.lua: -------------------------------------------------------------------------------- 1 | require("indent_blankline").setup { 2 | filetype_exclude = { 3 | "help", 4 | "terminal", 5 | "lspinfo", 6 | "TelescopePrompt", 7 | "TelescopeResults", 8 | "", 9 | -- "mason", 10 | }, 11 | -- for example, context is off by default, use this to turn it on 12 | -- highlights current context indent line 13 | -- show_current_context = false, 14 | -- Applies the |hl-IndentBlanklineContextStart| highlight group to the first 15 | -- line of the current context. 16 | -- show_current_context_start = true, 17 | show_current_context = true, 18 | show_current_context_start = false, 19 | } 20 | 21 | -------------------------------------------------------------------------------- /.config/rofi/powermenu/confirm.rasi: -------------------------------------------------------------------------------- 1 | /* Confirm Dialog */ 2 | 3 | * { 4 | accent: #9e9e9e; 5 | background: #212121; 6 | background-light: #272727; 7 | foreground: #bdbdbd; 8 | on: #66bb6a; 9 | off: #ef5350; 10 | } 11 | 12 | * { 13 | background-color: @background; 14 | text-color: @foreground; 15 | font: "Rubik 12"; 16 | } 17 | 18 | window { 19 | width: 225px; 20 | padding: 25px; 21 | border: 0px; 22 | border-radius: 0px; 23 | border-color: @accent; 24 | location: center; 25 | y-offset: -20px; 26 | } 27 | 28 | entry { 29 | expand: true; 30 | text-color: @accent; 31 | } 32 | -------------------------------------------------------------------------------- /.local/bin/borders: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # double borders 4 | # 5 | 6 | outer='0x1d1f21' # outer 7 | inner1='0xffffff' # focused 8 | inner2='0x5a5a5a' # normal 9 | 10 | trap 'bspc config border_width 0; kill -9 -$$' INT TERM 11 | 12 | targets() { 13 | case $1 in 14 | focused) bspc query -N -n .local.focused.\!fullscreen;; 15 | normal) bspc query -N -n .\!focused.\!fullscreen 16 | esac #| grep -iv "$v" 17 | } 18 | bspc config border_width 10 19 | 20 | draw() { chwb2 -I "$inner" -O "$outer" -i "2" -o "9" $*; } 21 | 22 | # initial draw, and then subscribe to events 23 | { echo; bspc subscribe node_geometry node_focus; } | 24 | while read -r _; do 25 | #v=$(echo $(xdo id -N Firefox)) 26 | #v=${v// /\\|} 27 | [ "$v" ] || v='abcdefg' 28 | inner=$inner1 draw $(targets focused) 29 | inner=$inner2 draw $(targets normal) 30 | done 31 | -------------------------------------------------------------------------------- /.config/xob/styles.cfg: -------------------------------------------------------------------------------- 1 | default = { 2 | x = {relative = 1; offset = -48;}; 3 | y = {relative = 0.5; offset = 0;}; 4 | length = {relative = 0.4; offset = 0;}; 5 | thickness = 48; 6 | outline = 0; 7 | border = 0; 8 | padding = 0; 9 | orientation = "vertical"; 10 | 11 | overflow = "proportional"; 12 | 13 | color = { 14 | normal = { 15 | fg = "#cfcfcf"; 16 | bg = "#00000090"; 17 | }; 18 | alt = { 19 | fg = "#555555"; 20 | bg = "#00000090"; 21 | }; 22 | overflow = { 23 | fg = "#ff0000"; 24 | bg = "#00000090"; 25 | }; 26 | altoverflow = { 27 | fg = "#550000"; 28 | bg = "#00000090"; 29 | }; 30 | }; 31 | }; 32 | 33 | 34 | -------------------------------------------------------------------------------- /.config/nvim/lua/plugins/lualine.lua: -------------------------------------------------------------------------------- 1 | require'lualine'.setup { 2 | options = { 3 | icons_enabled = true, 4 | theme = "auto" , 5 | component_separators = { left = '', right = ''}, 6 | section_separators = { left = '', right = ''}, 7 | disabled_filetypes = {"NvimTree"}, -- filetypes to diable lualine on 8 | always_divide_middle = true, 9 | globalstatus = true, 10 | }, 11 | sections = { 12 | lualine_a = {'mode'}, 13 | lualine_b = {'branch', 'diff', 'diagnostics'}, 14 | lualine_c = {'filename'}, 15 | lualine_x = {}, 16 | lualine_y = {'progress'}, 17 | lualine_z = {'location'} 18 | }, 19 | inactive_sections = { 20 | lualine_a = {}, 21 | lualine_b = {}, 22 | lualine_c = {'filename'}, 23 | lualine_x = {}, 24 | lualine_y = {}, 25 | lualine_z = {} 26 | }, 27 | tabline = {}, 28 | extensions = {'nvim-tree'}, 29 | } 30 | -------------------------------------------------------------------------------- /.config/sketchybar/plugins/battery.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | PERCENTAGE=$(pmset -g batt | grep -Eo "\d+%" | cut -d% -f1) 4 | CHARGING=$(pmset -g batt | grep 'AC Power') 5 | 6 | if [ $PERCENTAGE = "" ]; then 7 | exit 0 8 | fi 9 | 10 | case ${PERCENTAGE} in 11 | 9[0-9]|100) 12 | ICON="" 13 | ICONCOLOR=0xffb8bb26 14 | ;; 15 | [6-8][0-9]) 16 | ICON="" 17 | ICONCOLOR=0xffb8bb26 18 | ;; 19 | [3-5][0-9]) 20 | ICON="" 21 | ICONCOLOR=0xfffabd2f 22 | ;; 23 | [1-2][0-9]) 24 | ICON="" 25 | ICONCOLOR=0xfffabd2f 26 | ;; 27 | *) 28 | # OCD inducing charging label 29 | ICON="CHARGE!CHARGE!CHARGE!CHARGE!CHARGE!CHARGE!CHARGE!" 30 | ICONCOLOR=0xfffb4934 31 | esac 32 | 33 | if [[ $CHARGING != "" ]]; then 34 | ICON="" 35 | ICONCOLOR=0xffb8bb26 36 | fi 37 | 38 | sketchybar --set $NAME icon="$ICON" icon.color="$ICONCOLOR" label="${PERCENTAGE}%" 39 | -------------------------------------------------------------------------------- /.config/nvim/lua/plugins/treesitter.lua: -------------------------------------------------------------------------------- 1 | require'nvim-treesitter.configs'.setup { 2 | ensure_installed = "cpp", -- one of "all", "maintained" (parsers with maintainers), or a list of languages 3 | sync_install = false, -- install languages synchronously (only applied to `ensure_installed`) 4 | ignore_install = { "javascript" }, -- List of parsers to ignore installing 5 | highlight = { 6 | enable = false, -- false will disable the whole extension 7 | disable = {}, -- list of language that will be disabled 8 | -- Setting this to true will run `:h syntax` and tree-sitter at the same time. 9 | -- Set this to `true` if you depend on 'syntax' being enabled (like for indentation). 10 | -- Using this option may slow down your editor, and you may see some duplicate highlights. 11 | -- Instead of true it can also be a list of languages 12 | additional_vim_regex_highlighting = false, 13 | }, 14 | } 15 | 16 | -------------------------------------------------------------------------------- /.config/zathura/zathurarc: -------------------------------------------------------------------------------- 1 | set font "Inter 12" 2 | 3 | set window-title-home-tilde "true" 4 | set statusbar-basename "true" 5 | set selection-clipboard "clipboard" 6 | 7 | set default-bg "#1d2021" 8 | set default-fg "#ebdbb2" 9 | 10 | set statusbar-fg "#ebdbb2" 11 | set statusbar-bg "#282828" 12 | 13 | set inputbar-bg "#1d2021" 14 | set inputbar-fg "#ebdbb2" 15 | 16 | set notification-bg "#1d2021" 17 | set notification-fg "#ebdbb2" 18 | 19 | set notification-error-bg "#1d2021" 20 | set notification-error-fg "#cc241d" 21 | 22 | set notification-warning-bg "#1d2021" 23 | set notification-warning-fg "#cc241d" 24 | 25 | set highlight-color "#d79921" 26 | set highlight-active-color "#458588" 27 | 28 | set completion-bg "#1d2021" 29 | set completion-fg "#458588" 30 | 31 | set completion-highlight-fg "#ebdbb2" 32 | set completion-highlight-bg "#458588" 33 | 34 | set recolor-lightcolor "#1d2021" 35 | set recolor-darkcolor "#ebdbb2" 36 | 37 | set recolor "true" 38 | set recolor-keephue "true" 39 | 40 | # vim:ft=conf 41 | -------------------------------------------------------------------------------- /.config/eww/scripts/getWifi.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | wifi=$(nmcli radio wifi | awk '/led/ {print}') 4 | 5 | case "$1" in 6 | "toggle") 7 | # # Toggles bluetooth power. 8 | if [ "$wifi" = 'enabled' ] ; then 9 | nmcli radio wifi off 10 | else 11 | nmcli radio wifi on 12 | fi 13 | ;; 14 | "status") 15 | # Shows `ON` if bluetooth is on, or `OFF` if it isn't. 16 | name=$(iwgetid -r) 17 | if [ "$wifi" = 'enabled' ] ; then 18 | if [ -z $name ]; then 19 | echo "Disconnected" 20 | else 21 | echo $name 22 | fi 23 | else 24 | echo "OFF" 25 | fi 26 | ;; 27 | "icon") 28 | # Shows a `bluetooth on` icon if bluetooth is on. 29 | if [ $(nmcli radio wifi | awk '/led/ {print}') = 'enabled' ] ; then 30 | icon="󰤨" 31 | else 32 | icon="󰤭" 33 | fi 34 | echo "$icon" 35 | ;; 36 | esac 37 | -------------------------------------------------------------------------------- /.local/bin/screenshot: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # to use this script call functions like this: 4 | # ./screenshot ssfull 5 | 6 | function ssfull { 7 | # full screenshot. saves in ~/Pictures/Screenshots dir 8 | maim ~/Pictures/Screenshots/$(date +%d:%H:%M:%S).png 9 | dunstify -i ~/.icons/image.png 'Screenshot saved' 10 | } 11 | 12 | function ssselect { 13 | # screenshot with selection mode. saves in ~/Pictures/Screenshots dir 14 | maim -s -u -l -c 1,1,1,0.3 ~/Pictures/Screenshots/$(date +%H-%M-%S).png 15 | notify-send "Screenshot saved" -i ~/.icons/crop.png 16 | } 17 | 18 | function ssclip { 19 | # screenshot (selection mode) which is them passed to xclip (clipboard) 20 | maim -s --highlight --color 1,1,1,0.1 --format png /dev/stdout | xclip -selection clipboard -t image/png -i 21 | notify-send "Screenshot" "copied to clipboard" -i ~/.icons/clip.png 22 | 23 | } 24 | 25 | case $1 in 26 | ssfull) 27 | ssfull 28 | ;; 29 | ssselect) 30 | ssselect 31 | ;; 32 | ssclip) 33 | ssclip 34 | ;; 35 | esac 36 | -------------------------------------------------------------------------------- /.config/rofi/theme.rasi: -------------------------------------------------------------------------------- 1 | * { 2 | border: 0; 3 | margin: 0; 4 | padding: 0; 5 | spacing: 0; 6 | 7 | bg: #131313; 8 | bg-alt: #282828; 9 | fg: #cfcfcf; 10 | fg-alt: #ffffff; 11 | 12 | text-color: @fg-alt; 13 | background-color: @bg; 14 | } 15 | 16 | window { 17 | width: 700px; 18 | height: 500px; 19 | } 20 | 21 | mainbox { 22 | children: [inputbar, listview]; 23 | } 24 | 25 | inputbar { 26 | text-color: @fg-alt; 27 | background-color: @bg-alt; 28 | children: [prompt, entry]; 29 | } 30 | 31 | entry { 32 | background-color: inherit; 33 | padding: 12px 3px; 34 | } 35 | 36 | prompt { 37 | text-color: @fg-alt; 38 | background-color: inherit; 39 | padding: 12px; 40 | } 41 | 42 | listview { 43 | lines: 8; 44 | } 45 | 46 | element { 47 | // children: [element-text]; 48 | } 49 | 50 | element-icon { 51 | padding: 10px 10px; 52 | size: 20px; 53 | } 54 | 55 | element-text { 56 | text-color: @fg; 57 | padding: 8px 15px; 58 | } 59 | 60 | element-text selected { 61 | text-color: @fg-alt; 62 | background-color: #1d2021; 63 | } 64 | element-icon selected { 65 | background-color: #1d2021; 66 | } 67 | -------------------------------------------------------------------------------- /.config/mpd/mpd.conf: -------------------------------------------------------------------------------- 1 | music_directory "~/Music" 2 | playlist_directory "~/.config/mpd/playlists" 3 | db_file "~/.config/mpd/database" 4 | log_file "~/.config/mpd/log" 5 | bind_to_address "127.0.0.1" 6 | 7 | audio_output { 8 | type "alsa" 9 | name "ALSA [Bit-perfect]" 10 | device "hw:1,0" 11 | auto_channels "no" 12 | auto_format "no" 13 | auto_resample "no" 14 | dop "yes" 15 | mixer_type "none" 16 | replay_gain_handler "none" 17 | buffer_time "100000" 18 | } 19 | 20 | audio_output { 21 | type "pulse" 22 | name "PulseAudio" 23 | buffer_time "100000" 24 | } 25 | 26 | audio_output { 27 | type "fifo" 28 | name "Visualizer" 29 | format "44100:16:2" 30 | path "/tmp/mpd.fifo" 31 | } 32 | 33 | audio_output { 34 | type "httpd" 35 | name "lossless" 36 | encoder "flac" 37 | port "8000" 38 | max_client "8" 39 | mixer_type "software" 40 | format "44100:16:2" 41 | } 42 | -------------------------------------------------------------------------------- /.local/bin/mememaker: -------------------------------------------------------------------------------- 1 | #!/bin/sh -x 2 | # credits: elkowar 3 | # top text 4 | # 5 | # bottom text 6 | 7 | dir=/home/vatsal/Pictures/memes 8 | c=${XDG_CACHE_HOME:=$HOME/.cache}/meme.png 9 | 10 | rm "$c" 11 | 12 | # template 13 | file=$(ls "$dir" | rofi -dmenu -p file) 14 | [ -f "$dir/$file" ] || exit 1 15 | 16 | # TOP TEXT 17 | top=$(:| rofi -dmenu -p top | sed "s/'/\\\\\\\\\\\\'/g") 18 | # BOTTOM TEXT 19 | bottom=$(:| rofi -dmenu -p bottom | sed "s/'/\\\\\\\\\\\\'/g") 20 | [ "$bottom$top" ] || exit 1 21 | 22 | # prevent repetition of a stupidly long line 23 | a=':x=(w-text_w)/2:fontcolor=white:bordercolor=black:borderw=3' 24 | b=':fontsize=30' 25 | case $file in 26 | grave) 27 | a=${a%?}0 28 | ffmpeg -y -loglevel error -i "$dir/$file" \ 29 | -vf "drawtext=font=Inter MS:text=$top:y=350$a:fontsize=80, drawtext='font=Inter MS:text=$bottom':y=660$a:fontsize=50" \ 30 | "$c";; 31 | *) 32 | # draw the top/bottom text with ffmpeg (no likey imagemagick) 33 | ffmpeg -y -loglevel error -i "$dir/$file" \ 34 | -vf "drawtext=text=$top:y=30$a$b, drawtext=text=$bottom:y=h-60$a$b" \ 35 | "$c" 36 | esac 37 | 38 | # copy to clipboard 39 | xclip -sel clip -t image/png "$c" 40 | -------------------------------------------------------------------------------- /.config/bspwm/bspwmrc: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | sxhkd & 4 | 5 | killall dunst 6 | killall picom 7 | killall polybar 8 | killall mpd 9 | mpd & 10 | nitrogen --restore & 11 | dunst & 12 | sh $HOME/bin/xob-start & 13 | xsetroot -cursor_name left_ptr & 14 | picom & 15 | sh $HOME/.config/polybar/launch.sh 16 | optimus-manager-qt & 17 | 18 | bspc monitor -d "1" "2" "3" "4" "5" "6" "7" "8" "9" 19 | 20 | bspc config border_width 3 21 | bspc config focused_border_color "#474545" 22 | bspc config normal_border_color "#272929" 23 | bspc config window_gap 10 24 | 25 | # bspc config top_padding 45 26 | bspc config top padding 0 27 | #bspc config top_padding 0 28 | bspc config bottom_padding 39 29 | 30 | bspc config split_ratio 0.50 31 | bspc config borderless_monocle true 32 | bspc config gapless_monocle true 33 | bspc config focus_follows_pointer true 34 | 35 | # bspc rule -a youtubemusic desktop='^8' 36 | bspc rule -a discord desktop='^8' 37 | bspc rule -a "YouTube Music" desktop='^9' 38 | 39 | 40 | #requires wmutils/opt 41 | bspc config pointer_modifier mod1 42 | bspc config pointer_action1 move 43 | bspc config pointer_action2 resize_side 44 | bspc config pointer_action3 resize_corner 45 | 46 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

━━━━━━ DOTFILES ━━━━━━

2 | 3 | Linux Dotfiles for my system
4 | 5 | ## INFO 6 | - **Distribution** : Arch Linux 7 | - **Terminal**: Alacritty 8 | - **App Launcher**: rofi 9 | - **Window Manager** : XMonad 10 | - **Bar**: polybar 11 | - **GTK theme**: [Orchis](https://github.com/vinceliuice/Orchis-theme) 12 | - **Icon theme**: [vimix](https://github.com/vinceliuice/vimix-icon-theme) 13 | - **GTK font**: [Inter](https://fonts.google.com/specimen/Inter) 14 | - **Terminal Font**: Cascadia Code 15 | 16 | ## SCREENSHOTS 17 | 18 | ## XMonad 19 | 20 | Pic1
21 | 22 | Pic2
23 | 24 | ## i3lock-color(lockscreen) 25 | Pic4
26 | 27 | ## DEPENDENCIES 28 | 29 | * xmonad 30 | * picom(ibhagwan fork) 31 | * polybar 32 | * dunst 33 | * rofi 34 | * alacritty 35 | * neovim(nightly) 36 | 37 | ## TODO 38 | 39 | * Move neovim config to lua [DONE!] 40 | * Finish vim colorscheme 41 | -------------------------------------------------------------------------------- /.config/eww/scripts/getBluetooth.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | bluetooth="$(bluetoothctl show | grep -w Powered:)" 3 | 4 | case "$1" in 5 | "toggle") 6 | # Toggles bluetooth power. 7 | [ "${bluetooth#*yes}" != "$bluetooth" ] \ 8 | && power="off" || power="on" 9 | bluetoothctl power $power ;; 10 | "status") 11 | # prints "OFF" if bt off, "Disconnected" if bt on but not connected to device 12 | # and prints name of device if bt is on and connected to device 13 | if [ "${bluetooth#*yes}" != "$bluetooth" ] ; then 14 | name=$(bluetoothctl devices | cut -f2 -d' ' | \ 15 | while read uuid; do bluetoothctl info $uuid; done | \ 16 | grep -e "Name\|Connected: yes" | grep -B1 "yes" | head -n 1 | cut -d\ -f2-) 17 | if [ -z $name ]; then 18 | echo "Disconnected" 19 | else 20 | echo $name 21 | fi 22 | else 23 | echo "OFF" 24 | fi 25 | ;; 26 | "icon") 27 | # Shows a `bluetooth on` icon if bluetooth is on. 28 | [ "${bluetooth#*yes}" != "$bluetooth" ] \ 29 | && icon="󰂯" || icon="󰂲" 30 | echo "$icon" ;; 31 | esac 32 | -------------------------------------------------------------------------------- /.local/bin/lock.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # pamixer -m 4 | i3lock --nofork \ 5 | --ignore-empty-password \ 6 | \ 7 | --indicator \ 8 | --bar-indicator \ 9 | --bar-pos="1070" \ 10 | --bar-base-width="10" \ 11 | --bar-orientation=horizontal \ 12 | --bar-color=161616 \ 13 | --ringver-color=88c0d0 \ 14 | --ringwrong-color=bf616a \ 15 | --bshl-color=5e81ac \ 16 | --keyhl-color=a3be8c \ 17 | \ 18 | --clock \ 19 | --time-color=eceff4ff \ 20 | --time-str="%I:%M %p" \ 21 | --time-font="Rubik Bold" \ 22 | --time-size=120 \ 23 | --time-pos="960:540" \ 24 | --time-color=ffffffff \ 25 | \ 26 | --date-color=d8dee9ff \ 27 | --date-str="%A, %d %B" \ 28 | --date-color=ffffffff \ 29 | --date-font="Rubik" \ 30 | --date-size=50 \ 31 | --date-pos="960:600" \ 32 | \ 33 | --verif-font="Rubik" \ 34 | --verif-size=50 \ 35 | --verif-text="Welcome home!" \ 36 | --verif-color=ffffff \ 37 | --wrong-font="Rubik" \ 38 | --wrong-size=50 \ 39 | --wrong-text="Try again" \ 40 | --wrong-color=ffffff\ 41 | --image=/home/vatsal/Pictures/Wallpapers/Black/black_leaves.png \ 42 | --fill 43 | 44 | -------------------------------------------------------------------------------- /.vimrc: -------------------------------------------------------------------------------- 1 | syntax on 2 | set encoding=utf8 3 | set mouse=a 4 | set noruler 5 | set nu 6 | set relativenumber 7 | set hidden 8 | set noerrorbells 9 | set tabstop=4 softtabstop=4 10 | set shiftwidth=4 11 | set expandtab 12 | set smartindent 13 | set nowrap 14 | set noswapfile 15 | set incsearch 16 | set scrolloff=10 17 | "set noshowmode 18 | set cursorline 19 | 20 | if exists('+termguicolors') 21 | let &t_8f="\[38;2;%lu;%lu;%lum" 22 | let &t_8b="\[48;2;%lu;%lu;%lum" 23 | set termguicolors 24 | endif 25 | 26 | inoremap " "" 27 | inoremap ' '' 28 | inoremap { {} 29 | inoremap { {}O 30 | inoremap ( () 31 | 32 | nnoremap H 0 33 | nnoremap L $ 34 | inoremap jk 35 | nnoremap n nzz 36 | nnoremap N Nzz 37 | 38 | let mapleader=" " 39 | 40 | "move line up and down" 41 | nnoremap j :m .+1== 42 | nnoremap k :m .-2== 43 | "move para or lines up and down" 44 | vnoremap K :m '<-2gv=gv 45 | vnoremap J :m '>+1gv=gv 46 | 47 | autocmd vimEnter *.cpp nnoremap :w !g++ --std=c++14 % -o %:r && ./%:r 48 | 49 | let g:ikigai_style = 'pop' 50 | let g:ikigai_enable_italic = '0' 51 | let g:ikigai_transparent_background = '1' 52 | colorscheme ikigai 53 | 54 | ""highlight Normal guibg=NONE 55 | -------------------------------------------------------------------------------- /.config/tint2/systray.tint2rc: -------------------------------------------------------------------------------- 1 | # Background 1: Systray 2 | rounded = 14 3 | border_width = 0 4 | border_sides = 5 | border_content_tint_weight = 0 6 | background_content_tint_weight = 0 7 | background_color = #1e1e1e 100 8 | border_color = #1e1e1e 0 9 | background_color_hover = #1e1e1e 100 10 | border_color_hover = #1e1e1e 0 11 | background_color_pressed = #1e1e1e 100 12 | border_color_pressed = #1e1e1e 0 13 | 14 | # Panel 15 | panel_items = S 16 | panel_size = 25% 45 17 | panel_margin = 0 0 18 | panel_padding = 7 7 7 19 | panel_background_id = 4 20 | wm_menu = 1 21 | panel_dock = 1 22 | panel_pivot_struts = 0 23 | panel_position = bottom left vertical 24 | panel_layer = top 25 | panel_monitor = primary 26 | panel_shrink = 0 27 | autohide = 1 28 | autohide_show_timeout = 0 29 | autohide_hide_timeout = 0 30 | autohide_height = 1 31 | strut_policy = follow_size 32 | panel_window_name = systray.tint2 33 | disable_transparency = 1 34 | mouse_effects = 1 35 | font_shadow = 0 36 | mouse_hover_icon_asb = 100 0 10 37 | mouse_pressed_icon_asb = 100 0 0 38 | scale_relative_to_dpi = 0 39 | scale_relative_to_screen_height = 0 40 | 41 | 42 | 43 | 44 | # system tray (notification area) 45 | systray_padding = 8 0 10 46 | systray_background_id = 1 47 | systray_sort = ascending 48 | systray_icon_size = 16 49 | systray_icon_asb = 100 0 10 50 | systray_monitor = 1 51 | systray_name_filter = 52 | -------------------------------------------------------------------------------- /.config/sketchybar/modules/wifi.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | source "$PLUGIN_DIR/wifi.sh" 3 | sketchybar --add item wifi.control right \ 4 | \ 5 | --set wifi.control icon="" \ 6 | icon.color=$GREEN \ 7 | label="OK" \ 8 | click_script="$POPUP_CLICK_SCRIPT" \ 9 | popup.background.color=$GRAY \ 10 | popup.background.corner_radius=5 \ 11 | \ 12 | --add item wifi.ssid popup.wifi.control \ 13 | --set wifi.ssid icon="" \ 14 | label="${SSID}" \ 15 | \ 16 | --add item wifi.speed popup.wifi.control \ 17 | --set wifi.speed icon="" \ 18 | script="$PLUGIN_DIR/wifi_click.sh" \ 19 | update_freq=10 \ 20 | -------------------------------------------------------------------------------- /.config/nvim/lua/mappings.lua: -------------------------------------------------------------------------------- 1 | local opts = {noremap = true, silent = true} 2 | local map = vim.api.nvim_set_keymap 3 | 4 | vim.g.mapleader = " " 5 | 6 | map('n', 'H', '0', opts) 7 | map('n', 'L', '$', opts) 8 | map('n', '', '`"zz', opts) 9 | map('n', '', 'zz', opts) 10 | map('n', '', 'zz', opts) 11 | 12 | -- indent 13 | map('v', '<', '', '>gv', opts) 15 | 16 | -- do not yank with x 17 | map('n', 'x', '"_x', opts) 18 | 19 | -- center search results 20 | map('n', 'n', 'nzz', opts) 21 | map('n', 'N', 'Nzz', opts) 22 | 23 | --clipboard related 24 | -- map('n', 'YY', 'ggVG"*y', opts) 25 | map('n', 'yy', ':%y*', opts) 26 | map('v', 'y', '"*y', opts) 27 | 28 | -- buffers 29 | map('n', '', ':bnext', opts) 30 | map('n', '', ':bprevious', opts) 31 | map('n', 'ff', ':Telescope find_files', opts) 32 | map('n', 'bb', ':Telescope buffers', opts) 33 | map('n', 'fb', ':Telescope current_buffer_fuzzy_find', opts) 34 | map('n', 't', ':NvimTreeToggle', opts) 35 | map('n', 'zz', ':TZMinimalist', opts) 36 | map('n', 'za', ':TZAtaraxis', opts) 37 | 38 | vim.keymap.set('n', ']]', vim.diagnostic.open_float, opts) 39 | vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, opts) 40 | vim.keymap.set('n', ']d', vim.diagnostic.goto_next, opts) 41 | 42 | -- LSP specific mappings in lspconfig.lua 43 | -------------------------------------------------------------------------------- /.config/sketchybar/modules/spaces.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | SPACE_ICONS=("1" "2" "3" "4" "5" "6" "7" "8" "9" "10") 3 | 4 | for i in "${!SPACE_ICONS[@]}" 5 | do 6 | sid=$(($i+1)) 7 | sketchybar --add space space.$sid left \ 8 | --set space.$sid associated_space=$sid \ 9 | icon=${SPACE_ICONS[i]} \ 10 | icon.padding_left=5 \ 11 | icon.padding_right=5 \ 12 | icon.highlight_color=$YELLOW \ 13 | background.padding_left=0 \ 14 | background.padding_right=0 \ 15 | #background.color=0xff282828 \ 16 | background.corner_radius=0 \ 17 | background.height=26 \ 18 | background.drawing=on \ 19 | label.drawing=off \ 20 | icon.drawing=on \ 21 | script="$PLUGIN_DIR/space.sh" \ 22 | click_script="yabai -m space --focus $sid" 23 | done 24 | -------------------------------------------------------------------------------- /.local/bin/colorscheme: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | #NOT COMPLETE DONT USE 4 | 5 | color=$(echo -en "Light|Monochrome|GruvBox|Faded" | rofi -sep "|" -dmenu -i -p 'Colorscheme' -dpi 92 ) # Make selection prompt 6 | 7 | if [ $color = "Light" ]; then 8 | nitrogen --set-scaled --random ~/Pictures/Wallpapers/White/ 9 | 10 | elif [ $color = "Dark" ]; then 11 | #gtk 12 | sed -i "s/gtk-theme-name=.*/gtk-theme-name=Orchis-grey-dark-compact/" ~/.config/gtk-3.0/settings.ini 13 | sed -i "s/gtk-icon-theme-name=.*/gtk-icon-theme-name=Vimix Black Dark/" ~/.config/gtk-3.0/settings.ini 14 | #bspwm 15 | bspc config focused_border_color "#808080" 16 | #wall 17 | nitrogen --set-scaled --random ~/Pictures/Wallpapers/Black/ 18 | 19 | elif [ $color = "GruvBox" ]; then 20 | #gtk 21 | sed -i "s/gtk-theme-name=.*/gtk-theme-name=elkowars_phocus/" ~/.config/gtk-3.0/settings.ini 22 | #wall 23 | nitrogen --set-scaled ~/Pictures/Wallpapers/fadedhill.png 24 | 25 | elif [ $color = "Faded" ]; then 26 | #wall 27 | nitrogen --set-scaled --random ~/Pictures/Wallpapers/Faded/ 28 | #gtk 29 | sed -i "s/gtk-theme-name=.*/gtk-theme-name=/" ~/.config/gtk-3.0/settings.ini 30 | sed -i "s/gtk-icon-theme-name=.*/gtk-icon-theme-name=Vimix/" ~/.config/gtk-3.0/settings.ini 31 | #nvim 32 | #bspwm 33 | bspc config focused_border_color "#808080" 34 | #dunst 35 | sed -i "s/frame_color = .*/frame_color = #b19cd9/" ~/.config/dunst/dunstrc 36 | 37 | fi 38 | 39 | notify-send "$color" "Theme changed to $color" 40 | -------------------------------------------------------------------------------- /.config/eww/scripts/workspaces.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | nameWs() { 4 | buffered="" 5 | wmctrl -d | awk '{print $1 " " "\\"$2 " " $9}' | while read -r id active name; do 6 | name="${name#*_}" 7 | active=${active##*\\} && active=${active%% *} 8 | 9 | if wmctrl -l | grep --regexp '.*\s\+'"$id"'\s\+.*' >/dev/null; then 10 | wClass="occupied" 11 | else 12 | wClass="unoccupied" 13 | fi 14 | 15 | if [ "$active" == '*' ]; then 16 | wClass="active" 17 | fi 18 | 19 | # use this to show only active and unactive-occupied 20 | if [ "$wClass" != "unoccupied" ]; then 21 | buffered+="(button :class \"$wClass\" :tooltip \"Switch to $name?\" :onclick \"wmctrl -s $id\" \"$name\")" 22 | echo -n "$buffered" 23 | fi 24 | # comment above if statement and use uncomment this to show all workspaces 25 | # buffered+="(button :class \"$wClass\" :tooltip \"Switch to $name?\" :onclick \"wmctrl -s $id\" \"$name\")" 26 | # echo -n "$buffered" 27 | # 28 | buffered="" 29 | done 30 | } 31 | 32 | # This are the eww box attributes that will be used in the workspace widget. 33 | #box_attrs=':orientation "h" :class "ws" :space-evenly false :spacing 12 :valign 0.5' 34 | box_attrs=':orientation "v" :class "ws" :space-evenly true :spacing 5 :halign "center" :valign "center" ' 35 | 36 | # This checks the root window for updates, updating the nameWs output every 37 | # time a change occurs to a workspace (window opened or focused desktop). 38 | xprop -spy -root _NET_CURRENT_DESKTOP | while read -r _; do 39 | echo "(box $box_attrs $(nameWs))" 40 | done 41 | -------------------------------------------------------------------------------- /.local/bin/pulse-volume-watcher.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | from pulsectl import Pulse, PulseLoopStop 3 | import sys 4 | 5 | with Pulse() as pulse: 6 | def callback(ev): 7 | if ev.index == sink_index: raise PulseLoopStop 8 | def current_status(sink): 9 | return round(sink.volume.value_flat * 100), sink.mute == 1 10 | try: 11 | sinks = {s.index:s for s in pulse.sink_list()} 12 | if len(sys.argv) > 1: 13 | # Sink index from command line argument if provided 14 | sink_index = int(sys.argv[1]) 15 | if not sink_index in sinks: 16 | raise KeyError(f"Sink index {sink_index} not found in list of sinks.") 17 | else: 18 | # Automatic determination of default sink otherwise 19 | default_sink_name = pulse.server_info().default_sink_name 20 | try: 21 | sink_index = next(index for index, sink in sinks.items() 22 | if sink.name == default_sink_name) 23 | except StopIteration: raise StopIteration("No default sink was found.") 24 | 25 | pulse.event_mask_set('sink') 26 | pulse.event_callback_set(callback) 27 | last_value, last_mute = current_status(sinks[sink_index]) 28 | 29 | while True: 30 | pulse.event_listen() 31 | sinks = {s.index:s for s in pulse.sink_list()} 32 | value, mute = current_status(sinks[sink_index]) 33 | if value != last_value or mute != last_mute: 34 | print(str(value) + ('!' if mute else '')) 35 | last_value, last_mute = value, mute 36 | sys.stdout.flush() 37 | 38 | except Exception as e: 39 | print(f"ERROR: {e}", file=sys.stderr) 40 | 41 | -------------------------------------------------------------------------------- /.config/picom/picom.conf: -------------------------------------------------------------------------------- 1 | ############################### 2 | #SHADOWS 3 | ############################### 4 | 5 | shadow = true; 6 | 7 | shadow-radius = 33; 8 | shadow-offset-x = -30; 9 | shadow-offset-y = -30; 10 | shadow-opacity = 0.25; 11 | shadow-exclude = [ 12 | #"class_g = 'Polybar'", 13 | "class_g = 'slop'", 14 | ] 15 | 16 | ################################ 17 | #CORNERS 18 | ################################ 19 | corner-radius = 10; 20 | round-borders = 1; 21 | 22 | rounded-corners-exclude = [ 23 | "class_g = 'Polybar'", 24 | "class_g = 'Thunar'", 25 | "window_type = 'menu'", 26 | "window_type = 'tooltip'", 27 | "window_type = 'popup_menu'", 28 | "window_type = 'dropdown_menu'" 29 | ] 30 | 31 | ############################### 32 | #FADE 33 | ############################### 34 | 35 | fading = false; 36 | fade-in-step = 0.03; 37 | fade-out-step = 0.03; 38 | fade-delta = 4 39 | 40 | fade-exclude = [ 41 | "class_g = 'slop'", 42 | ] 43 | 44 | ############################## 45 | #OPACITY 46 | ############################## 47 | 48 | inactive-opacity = 1.0; 49 | active-opacity = 1; 50 | frame-opacity = 1.0; 51 | 52 | inactive-dim = 0; 53 | inactive-dim-fixed = true; 54 | 55 | focus-exclude = [ 56 | "class_g = 'slop'", 57 | "class_g = 'firefox'", 58 | ] 59 | 60 | opacity-rule = [ 61 | "100:class_g = 'slop'", #maim 62 | ] 63 | 64 | 65 | 66 | ############################### 67 | # GENERAL 68 | ############################### 69 | 70 | backend = "glx"; 71 | 72 | glx-no-stencil = false 73 | 74 | wintypes: 75 | { 76 | dnd = { shadow = false; } 77 | popup_menu = { shadow = false; } 78 | dropdown_menu = { shadow = false; } 79 | }; 80 | -------------------------------------------------------------------------------- /.config/sketchybar/sketchybarrc: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | source "$HOME/.config/sketchybar/colors.sh" 4 | 5 | PLUGIN_DIR="$HOME/.config/sketchybar/plugins" 6 | MODULES_DIR="$HOME/.config/sketchybar/modules" 7 | 8 | ##### Bar Appearance ##### 9 | sketchybar --bar height=26 \ 10 | blur_radius=0 \ 11 | shadow=on \ 12 | sticky=on \ 13 | position=top \ 14 | padding_left=10 \ 15 | padding_right=10 \ 16 | color=$BG 17 | 18 | ##### Changing Defaults ##### 19 | sketchybar --default updates=when_shown \ 20 | drawing=on \ 21 | icon.font="SFMono Nerd Font:Bold:13.0" \ 22 | icon.color=$FG \ 23 | icon.highlight_color=0xffE48FA8 \ 24 | label.font="Inter:Bold:12.0" \ 25 | label.color=$FG \ 26 | label.padding_right=10 \ 27 | label.padding_left=10 \ 28 | icon.padding_left=10 \ 29 | icon.padding_right=0 30 | 31 | # LEFT 32 | source "$MODULES_DIR/spaces.sh" 33 | #source "$MODULES_DIR/window_title.sh" 34 | 35 | # CENTER 36 | source "$MODULES_DIR/time.sh" 37 | 38 | # RIGHT 39 | source "$MODULES_DIR/date.sh" 40 | source "$MODULES_DIR/battery.sh" 41 | #source "$MODULES_DIR/wifi.sh" 42 | source "$MODULES_DIR/volume.sh" 43 | source "$MODULES_DIR/input.sh" 44 | 45 | sketchybar --update 46 | echo "sketchybar configuration loaded.." 47 | -------------------------------------------------------------------------------- /.config/polybar/config.ini: -------------------------------------------------------------------------------- 1 | ############################################################################## 2 | # FILE INCLUSION # 3 | ############################################################################## 4 | 5 | include-file = ~/.config/polybar/modules.ini 6 | include-file = ~/.config/polybar/bars.ini 7 | 8 | ############################################################################## 9 | # POLYBAR CONFIGURATION # 10 | ############################################################################## 11 | 12 | [settings] 13 | ; Reload upon receiving XCB_RANDR_SCREEN_CHANGE_NOTIFY events 14 | screenchange-reload = true 15 | 16 | ; Compositing operators 17 | ; @see: https://www.cairographics.org/manual/cairo-cairo-t.html#cairo-operator-t 18 | compositing-background = source 19 | compositing-foreground = over 20 | compositing-overline = over 21 | compositing-underline = over 22 | 23 | ; Enables pseudo-transparency for the bar 24 | ; If set to true the bar can be transparent without a compositor. 25 | pseudo-transparency = false 26 | 27 | ############################################################################## 28 | # COLOR CONFIGURATION # 29 | ############################################################################## 30 | 31 | [color] 32 | 33 | ;# Active Colors 34 | bg = #161616 35 | fg = #cfcfcf 36 | 37 | ;; Colors 38 | 39 | alt-bg = #282828 40 | alt-bg2 = #32302F 41 | 42 | white = #cfcfcf 43 | red = #fa5f5f 44 | green = #88AC86 45 | yellow = #F3C583 46 | orange = #fa985f 47 | magenta = #b6a3e6 48 | blue = #708bcc 49 | -------------------------------------------------------------------------------- /.config/nvim/lua/plugins/colorscheme.lua: -------------------------------------------------------------------------------- 1 | require("catppuccin").setup({ 2 | flavour = "mocha", -- latte, frappe, macchiato, mocha 3 | background = { -- :h background 4 | light = "latte", 5 | dark = "mocha", 6 | }, 7 | transparent_background = true, 8 | show_end_of_buffer = false, -- show the '~' characters after the end of buffers 9 | term_colors = false, 10 | dim_inactive = { 11 | enabled = false, 12 | shade = "dark", 13 | percentage = 0.15, 14 | }, 15 | no_italic = false, -- Force no italic 16 | no_bold = false, -- Force no bold 17 | no_underline = false, -- Force no underline 18 | styles = { 19 | comments = { "italic" }, 20 | conditionals = { "italic" }, 21 | loops = {}, 22 | functions = {}, 23 | keywords = {}, 24 | strings = {}, 25 | variables = {}, 26 | numbers = {}, 27 | booleans = {}, 28 | properties = {}, 29 | types = {}, 30 | operators = {}, 31 | }, 32 | color_overrides = {}, 33 | custom_highlights = {}, 34 | integrations = { 35 | cmp = true, 36 | gitsigns = true, 37 | nvimtree = true, 38 | telescope = true, 39 | notify = false, 40 | mini = false, 41 | -- For more plugins integrations please scroll down (https://github.com/catppuccin/nvim#integrations) 42 | }, 43 | }) 44 | 45 | -- setup must be called before loading 46 | vim.cmd.colorscheme "catppuccin" 47 | -- let g:gruvbox_material_transparent_background = 2 48 | vim.cmd[[ 49 | let g:gruvbox_material_background = "hard" 50 | let g:gruvbox_material_foreground = "original" 51 | let g:ikigai_italic = "false" 52 | colorscheme ikigai 53 | ]] 54 | -------------------------------------------------------------------------------- /.config/nvim/lua/lualine/themes/ikigai.lua: -------------------------------------------------------------------------------- 1 | local colors = require("ikigai.colors") 2 | 3 | local ikigai = {} 4 | 5 | ikigai.normal = { 6 | a = { fg = colors.fg, bg = colors.brightbg2 }, 7 | b = { fg = colors.fg, bg = colors.brightbg }, 8 | c = { fg = colors.fg, bg = colors.bg }, 9 | x = { fg = colors.fg, bg = colors.bg }, 10 | y = { fg = colors.fg, bg = colors.brightbg }, 11 | z = { fg = colors.fg, bg = colors.brightbg2 }, 12 | } 13 | 14 | ikigai.insert = { 15 | a = { fg = colors.bg, bg = colors.green }, 16 | b = { fg = colors.fg, bg = colors.brightbg}, 17 | c = { fg = colors.fg, bg = colors.bg }, 18 | x = { fg = colors.fg, bg = colors.bg }, 19 | y = { fg = colors.fg, bg = colors.brightbg }, 20 | z = { fg = colors.bg, bg = colors.green }, 21 | } 22 | 23 | ikigai.visual = { 24 | a = { fg = colors.ikigai0_gui, bg = colors.ikigai7_gui }, 25 | b = { fg = colors.ikigai4_gui, bg = colors.ikigai2_gui }, 26 | y = { fg = colors.ikigai5_gui, bg = colors.ikigai2_gui }, 27 | } 28 | 29 | ikigai.replace = { 30 | a = { fg = colors.ikigai0_gui, bg = colors.ikigai11_gui }, 31 | b = { fg = colors.ikigai4_gui, bg = colors.ikigai2_gui }, 32 | y = { fg = colors.ikigai4_gui, bg = colors.ikigai2_gui }, 33 | z = { fg = colors.ikigai0_gui, bg = colors.ikigai11_gui }, 34 | } 35 | 36 | ikigai.command = { 37 | a = { fg = colors.bg , bg = colors.yellow, gui = "bold" }, 38 | b = { fg = colors.fg, bg = colors.brightbg }, 39 | c = { fg = colors.fg, bg = colors.bg}, 40 | x = { fg = colors.fg, bg = colors.bg}, 41 | y = { fg = colors.fg, bg = colors.brightbg }, 42 | z = { fg = colors.bg , bg = colors.yellow}, 43 | } 44 | 45 | ikigai.inactive = { 46 | a = { fg = colors.brightbg2, bg = colors.bg, gui = "bold" }, 47 | b = { fg = colors.brightbg2, bg = colors.bg }, 48 | c = { fg = colors.brightbg2, bg = colors.bg }, 49 | } 50 | 51 | return ikigai 52 | -------------------------------------------------------------------------------- /.local/bin/volume.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # You can call this script like this: 4 | # $./volume.sh up 5 | # $./volume.sh down 6 | # $./volume.sh mute 7 | 8 | speaker_card="$(pactl list short sinks | cut -f1 | tail -n1)" 9 | 10 | function get_volume { 11 | #pamixer --get-volume-human |cut -d '%' -f 1 12 | echo $(pactl get-sink-volume @DEFAULT_SINK@ | grep Volume | awk '{print $5}' | tr % " ") 13 | } 14 | 15 | #function is_mute { 16 | #pamixer --get-volume-human|grep -oE '[^ ]+$' | grep off > /dev/null 17 | #} 18 | # 19 | 20 | function send_notification { 21 | volume=$(pactl get-sink-volume @DEFAULT_SINK@ | grep Volume | awk '{print $5}' | tr % " ") 22 | echo "VOL:$volume" 23 | # Make the bar with the special character ─ (it's not dash -) 24 | # https://en.wikipedia.org/wiki/Box-drawing_character 25 | bar=$(seq -s "─" "$((volume/5))" | sed 's/[0-9]//g') 26 | # Send the notification 27 | dunstify -t 900 -r 70 -a volume "Volume: $volume %" -h int:value:"$volume" 28 | #dunstify -t 900 -r 70 -a volume "$bar" 29 | 30 | } 31 | 32 | case $1 in 33 | get) 34 | get_volume 35 | ;; 36 | up) 37 | # pamixer --unmute > /dev/null 38 | # pamixer --increase 1 > /dev/null 39 | pactl set-sink-volume "$speaker_card" +1% 40 | send_notification 41 | ;; 42 | down) 43 | # pamixer -u > /dev/null 44 | # pamixer --decrease 1 > /dev/null 45 | pactl set-sink-volume "$speaker_card" -1% 46 | send_notification 47 | ;; 48 | mute) 49 | # Toggle mute 50 | # pamixer --toggle-mute > /dev/null 51 | pactl set-sink-mute "$speaker_card" toggle 52 | mute_status="$(pactl get-sink-mute $speaker_card | awk '{print $2}')" 53 | if [ $mute_status == "yes" ] ; then 54 | dunstify -t 2000 -r 2593 -u normal "Mute" 55 | else 56 | send_notification 57 | fi 58 | ;; 59 | esac 60 | -------------------------------------------------------------------------------- /.config/nvim/lua/options.lua: -------------------------------------------------------------------------------- 1 | local opt = vim.opt 2 | local g = vim.g 3 | 4 | --opt.cmdheight = 0 -- try this, may be unstable 5 | opt.errorbells = false 6 | opt.splitbelow = true 7 | opt.splitright = true 8 | 9 | opt.swapfile = false 10 | opt.backup = false 11 | opt.undodir = os.getenv("HOME") .. "/.vim/undodir" 12 | opt.undofile = true 13 | opt.updatetime = 500 14 | 15 | opt.number = true 16 | opt.relativenumber = true 17 | opt.cursorline = true 18 | opt.signcolumn = "yes" 19 | opt.showmode = false 20 | opt.hidden = true 21 | opt.clipboard = "unnamedplus" -- Sync with system clipboard 22 | 23 | opt.shiftwidth = 4 24 | opt.tabstop = 4 25 | opt.softtabstop = 4 26 | 27 | opt.wrap = false 28 | opt.hlsearch = false 29 | opt.incsearch = true 30 | opt.smartindent = true 31 | opt.ignorecase = true 32 | opt.smartcase = true -- Don't ignore case with capitals 33 | opt.expandtab = true 34 | 35 | 36 | opt.termguicolors = true 37 | opt.completeopt = "menu,menuone,noselect" 38 | 39 | -- disable some builtin vim plugins 40 | local default_plugins = { 41 | "2html_plugin", 42 | "getscript", 43 | "getscriptPlugin", 44 | "gzip", 45 | "logipat", 46 | "netrw", 47 | "netrwPlugin", 48 | "netrwSettings", 49 | "netrwFileHandlers", 50 | "matchit", 51 | "tar", 52 | "tarPlugin", 53 | "rrhelper", 54 | "spellfile_plugin", 55 | "vimball", 56 | "vimballPlugin", 57 | "zip", 58 | "zipPlugin", 59 | "tutor", 60 | "rplugin", 61 | "syntax", 62 | "synmenu", 63 | "optwin", 64 | "compiler", 65 | "bugreport", 66 | "ftplugin", 67 | } 68 | 69 | for _, plugin in pairs(default_plugins) do 70 | g["loaded_" .. plugin] = 1 71 | end 72 | 73 | local default_providers = { 74 | "node", 75 | "perl", 76 | "python3", 77 | "ruby", 78 | } 79 | 80 | for _, provider in ipairs(default_providers) do 81 | g["loaded_" .. provider .. "_provider"] = 0 82 | end 83 | -------------------------------------------------------------------------------- /.config/nvim/lua/plugins/nvimtree.lua: -------------------------------------------------------------------------------- 1 | require'nvim-tree'.setup { 2 | disable_netrw = true, 3 | hijack_cursor = true, 4 | update_cwd = false, 5 | 6 | renderer = { 7 | indent_markers = { 8 | enable = true, 9 | inline_arrows = false, 10 | icons = { 11 | corner = "└", 12 | edge = "│", 13 | item = "│", 14 | none = " ", 15 | }, 16 | }, 17 | icons = { 18 | show = { 19 | folder_arrow = false, 20 | }, 21 | glyphs = { 22 | default = "", 23 | symlink = "", 24 | git = { 25 | deleted = "", 26 | ignored = "◌", 27 | renamed = "➜", 28 | staged = "✓", 29 | unmerged = "", 30 | unstaged = "✗", 31 | untracked = "★", 32 | }, 33 | folder = { 34 | arrow_open = "", 35 | arrow_closed = "", 36 | default = "", 37 | empty = "", 38 | empty_open = "", 39 | open = "", 40 | symlink = "", 41 | symlink_open = "", 42 | }, 43 | }, 44 | } 45 | 46 | }, 47 | diagnostics = { 48 | enable = false, 49 | icons = { 50 | hint = "", 51 | info = "", 52 | warning = "", 53 | error = "", 54 | } 55 | }, 56 | update_focused_file = { 57 | enable = false, 58 | update_cwd = false, 59 | ignore_list = {} 60 | }, 61 | system_open = { 62 | cmd = nil, 63 | args = {} 64 | }, 65 | filters = { 66 | dotfiles = false, 67 | custom = {} 68 | }, 69 | git = { 70 | enable = false, 71 | ignore = true, 72 | timeout = 500, 73 | }, 74 | view = { 75 | width = 30, 76 | adaptive_size = true, 77 | hide_root_folder = false, 78 | side = 'left', 79 | mappings = { 80 | custom_only = false, 81 | list = {} 82 | }, 83 | number = false, 84 | relativenumber = false, 85 | signcolumn = "no" 86 | }, 87 | trash = { 88 | cmd = "trash", 89 | require_confirm = true 90 | } 91 | } 92 | -------------------------------------------------------------------------------- /.config/nvim/lua/statusline.lua: -------------------------------------------------------------------------------- 1 | fn = vim.fn 2 | api = vim.api 3 | 4 | local modes = { 5 | ["n"] = "NORMAL", 6 | ["no"] = "NORMAL", 7 | ["v"] = "VISUAL", 8 | ["V"] = "VISUAL LINE", 9 | [""] = "VISUAL BLOCK", 10 | ["s"] = "SELECT", 11 | ["S"] = "SELECT LINE", 12 | [""] = "SELECT BLOCK", 13 | ["i"] = "INSERT", 14 | ["ic"] = "INSERT", 15 | ["R"] = "REPLACE", 16 | ["Rv"] = "VISUAL REPLACE", 17 | ["c"] = "COMMAND", 18 | ["cv"] = "VIM EX", 19 | ["ce"] = "EX", 20 | ["r"] = "PROMPT", 21 | ["rm"] = "MOAR", 22 | ["r?"] = "CONFIRM", 23 | ["!"] = "SHELL", 24 | ["t"] = "TERMINAL", 25 | } 26 | 27 | local function color() 28 | local mode = api.nvim_get_mode().mode 29 | local mode_color = "%#StatusLine#" 30 | if mode == "n" then 31 | mode_color = "%#StatusNormal#" 32 | elseif mode == "i" or mode == "ic" then 33 | mode_color = "%#StatusInsert#" 34 | elseif mode == "v" or mode == "V" or mode == "" then 35 | mode_color = "%#StatusVisual#" 36 | elseif mode == "R" then 37 | mode_color = "%#StatusReplace#" 38 | elseif mode == "c" then 39 | mode_color = "%#StatusCommand#" 40 | elseif mode == "t" then 41 | mode_color = "%#StatusTerminal#" 42 | end 43 | return mode_color 44 | end 45 | 46 | -- StatusLine Modes 47 | Statusline = {} 48 | 49 | Statusline.active = function() 50 | return table.concat { 51 | color(), -- mode colors 52 | string.format(" %s ", modes[api.nvim_get_mode().mode]):upper(), -- mode 53 | "%#StatusLine#", -- middle color 54 | " %f ", -- file name 55 | "%=", -- right align 56 | " %Y ", -- file type 57 | color(), -- mode colors 58 | " %l:%c ", -- line, column 59 | } 60 | end 61 | 62 | function Statusline.inactive() 63 | return "%#StatusInactive# %f " 64 | end 65 | 66 | function Statusline.short() 67 | return "%#StatusLine#" 68 | end 69 | 70 | -- Execute statusline 71 | vim.cmd [[ 72 | au WinEnter,BufEnter * setlocal statusline=%!v:lua.Statusline.active() 73 | au WinLeave,BufLeave * setlocal statusline=%!v:lua.Statusline.inactive() 74 | au WinEnter,BufEnter,FileType NvimTree*,terminal setlocal statusline=%!v:lua.Statusline.short() 75 | au WinLeave,BufLeave,FileType NvimTree*,terminal setlocal statusline=%!v:lua.Statusline.short() 76 | ]] 77 | -------------------------------------------------------------------------------- /.config/zsh/.zshrc: -------------------------------------------------------------------------------- 1 | export TERM="xterm-256color" 2 | 3 | # HISTORY 4 | SAVEHIST=50000 5 | HISTSIZE=50000 6 | HISTFILE="$HOME/.cache/zsh/.zsh_history" 7 | setopt HIST_SAVE_NO_DUPS # Don't record an entry that was just recorded again. 8 | setopt HIST_IGNORE_ALL_DUPS # Delete old recorded entry if new entry is a duplicate. 9 | setopt EXTENDED_HISTORY # Write the history file in the ":start:elapsed;command" format. 10 | setopt SHARE_HISTORY # Share history between all sessions. 11 | setopt INC_APPEND_HISTORY # Write to the history file immediately, not when the shell exits. 12 | 13 | 14 | # VIM MODE 15 | bindkey -v 16 | bindkey "^?" backward-delete-char 17 | 18 | export PATH="$HOME/.local/bin/:/usr/local/bin:$PATH" 19 | autoload -U compinit 20 | # 21 | 22 | ### CHANGE TITLE OF TERMINALS 23 | # 24 | case ${TERM} in 25 | xterm*|rxvt*|Eterm*|aterm|kterm|gnome*|alacritty|st|konsole*) 26 | PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/\~}\007"' 27 | ;; 28 | screen*) 29 | PROMPT_COMMAND='echo -ne "\033_${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/\~}\033\\"' 30 | ;; 31 | esac 32 | 33 | 34 | # export MANPATH="/usr/local/man:$MANPATH" 35 | 36 | # You may need to manually set your language environment 37 | # export LANG=en_US.UTF-8 38 | 39 | # Preferred editor for local and remote sessions 40 | # if [[ -n $SSH_CONNECTION ]]; then 41 | # export EDITOR='vim' 42 | # else 43 | # export EDITOR='nvim' 44 | # fi 45 | 46 | # Compilation flags 47 | # export ARCHFLAGS="-arch x86_64" 48 | 49 | # 50 | # ALIASES 51 | # 52 | # these lines required for prompt to work 53 | setopt promptsubst 54 | autoload -Uz colors && colors 55 | autoload -Uz promptinit && promptinit 56 | 57 | alias clock="tty-clock -c -C 7" 58 | 59 | alias ls='ls --color=auto' 60 | alias ll='ls -alF' 61 | alias la='ls -A' 62 | alias l='ls -CF' 63 | 64 | #load agnoster prompt theme 65 | source "$ZDOTDIR/agnoster.zsh" 66 | 67 | # install zsh-autosuggestions and zsh-syntax-highlighting from pacman community 68 | source /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh 69 | source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh 70 | 71 | #for homebrew installation (MacOS) 72 | #source /opt/share/homebrew/ 73 | 74 | 75 | -------------------------------------------------------------------------------- /.config/nvim/lua/plugins/Comment.lua: -------------------------------------------------------------------------------- 1 | require('Comment').setup{ 2 | ---Add a space b/w comment and the line 3 | padding = true, 4 | 5 | ---Whether the cursor should stay at its position 6 | ---NOTE: This only affects NORMAL mode mappings and doesn't work with dot-repeat 7 | sticky = true, 8 | 9 | ---Lines to be ignored while comment/uncomment. 10 | ---Could be a regex string or a function that returns a regex string. 11 | ---Example: Use '^$' to ignore empty lines 12 | ignore = nil, 13 | 14 | ---LHS of toggle mappings in NORMAL + VISUAL mode 15 | ---@type table 16 | toggler = { 17 | ---Line-comment toggle keymap 18 | line = 'gcc', 19 | ---Block-comment toggle keymap 20 | block = 'gbc', 21 | }, 22 | 23 | ---LHS of operator-pending mappings in NORMAL + VISUAL mode 24 | ---@type table 25 | opleader = { 26 | ---Line-comment keymap 27 | line = 'gc', 28 | ---Block-comment keymap 29 | block = 'gb', 30 | }, 31 | 32 | ---LHS of extra mappings 33 | ---@type table 34 | extra = { 35 | ---Add comment on the line above 36 | above = 'gcO', 37 | ---Add comment on the line below 38 | below = 'gco', 39 | ---Add comment at the end of line 40 | eol = 'gcA', 41 | }, 42 | 43 | ---Create basic (operator-pending) and extended mappings for NORMAL + VISUAL mode 44 | ---NOTE: If `mappings = false` then the plugin won't create any mappings 45 | ---@type boolean|table 46 | mappings = { 47 | ---Operator-pending mapping 48 | ---Includes `gcc`, `gbc`, `gc[count]{motion}` and `gb[count]{motion}` 49 | ---NOTE: These mappings can be changed individually by `opleader` and `toggler` config 50 | basic = true, 51 | ---Extra mapping 52 | ---Includes `gco`, `gcO`, `gcA` 53 | extra = true, 54 | ---Extended mapping 55 | ---Includes `g>`, `g<`, `g>[count]{motion}` and `g<[count]{motion}` 56 | extended = false, 57 | }, 58 | 59 | ---Pre-hook, called before commenting the line 60 | ---@type fun(ctx: CommentCtx):string 61 | pre_hook = nil, 62 | 63 | ---Post-hook, called after commenting is done 64 | ---@type fun(ctx: CommentCtx) 65 | post_hook = nil, 66 | } 67 | -------------------------------------------------------------------------------- /.config/nvim/lua/plugins/telescope.lua: -------------------------------------------------------------------------------- 1 | local actions = require('telescope.actions') 2 | require('telescope').setup { 3 | defaults = { 4 | layout_config = { 5 | width = 0.75, 6 | height = 0.8, 7 | prompt_position = "top", 8 | preview_cutoff = 120, 9 | horizontal = {mirror = false}, 10 | vertical = {mirror = false}, 11 | }, 12 | find_command = {'rg', '--no-heading', '--with-filename', '--line-number', '--column', '--smart-case'}, 13 | prompt_prefix = " ", 14 | selection_caret = " ", 15 | entry_prefix = " ", 16 | initial_mode = "insert", 17 | selection_strategy = "reset", 18 | sorting_strategy = "ascending", 19 | layout_strategy = "flex", 20 | file_sorter = require'telescope.sorters'.get_fuzzy_file, 21 | file_ignore_patterns = {}, 22 | generic_sorter =require'telescope.sorters'.get_generic_fuzzy_sorter, 23 | path_display = {}, 24 | winblend = 0, 25 | border = {}, 26 | -- borderchars = { " ", " ", " ", " ", " ", " ", " ", " " }, 27 | borderchars = {'─', '│', '─', '│', '╭', '╮', '╯', '╰'}, 28 | color_devicons = true, 29 | use_less = true, 30 | set_env = {['COLORTERM'] = 'truecolor'}, -- default = nil, 31 | file_previewer = require'telescope.previewers'.vim_buffer_cat.new, 32 | grep_previewer = require'telescope.previewers'.vim_buffer_vimgrep.new, 33 | qflist_previewer = require'telescope.previewers'.vim_buffer_qflist.new, 34 | buffer_previewer_maker = require'telescope.previewers'.buffer_previewer_maker, 35 | mappings = { 36 | i = { 37 | [""] = actions.move_selection_next, 38 | [""] = actions.move_selection_previous, 39 | [""] = actions.smart_send_to_qflist + actions.open_qflist, 40 | [""] = actions.close, 41 | [""] = actions.select_default + actions.center 42 | }, 43 | n = { 44 | [""] = actions.move_selection_next, 45 | [""] = actions.move_selection_previous, 46 | [""] = actions.smart_send_to_qflist + actions.open_qflist, 47 | } 48 | } 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /.config/nvim/lua/ikigai/colors.lua: -------------------------------------------------------------------------------- 1 | local ikigai = { 2 | 3 | ikigai0_gui = "#2E3440", -- ikigai0 in palette 4 | ikigai1_gui = "#3B4252", -- ikigai1 in palette 5 | ikigai2_gui = "#434C5E", -- ikigai2 in palette 6 | ikigai3_gui = "#4C566A", -- ikigai3 in palette 7 | ikigai3_gui_bright = "#616E88", -- out of palette 8 | ikigai4_gui = "#D8DEE9", -- ikigai4 in palette 9 | ikigai5_gui = "#E5E9F0", -- ikigai5 in palette 10 | ikigai6_gui = "#ECEFF4", -- ikigai6 in palette 11 | ikigai7_gui = "#8FBCBB", -- ikigai7 in palette 12 | ikigai8_gui = "#88C0D0", -- ikigai8 in palette 13 | ikigai9_gui = "#81A1C1", -- ikigai9 in palette 14 | ikigai10_gui = "#5E81AC", -- ikigai10 in palette dark blue 15 | ikigai11_gui = "#BF616A", -- ikigai11 in palette red 16 | ikigai12_gui = "#D08770", -- ikigai12 in palette orange 17 | ikigai13_gui = "#EBCB8B", -- ikigai13 in palette yellow 18 | ikigai14_gui = "#A3BE8C", -- ikigai14 in palette green 19 | ikigai15_gui = "#B48EAD", -- ikigai15 in palette pink 20 | 21 | white = "#D9E0EE", -- White 22 | gray2 = "#C3BAC6", -- Gray2 23 | gray1 = "#988BA2", -- Gray1 24 | gray0 = "#6E6C7E", -- Gray0 25 | black4 = "#575268", -- Black4 26 | black3 = "#302D41", -- Black3 27 | black2 = "#1E1E2E", -- Black2 28 | black1 = "#1A1826", -- Black1 29 | black0 = "#161616", -- Black0 30 | 31 | none = "NONE", 32 | bg = "#131313", 33 | darkbg = "#111111", 34 | brightbg = "#202020", 35 | --brightbg = "#262626" 36 | -- brightbg = "#1c1c1c", org 37 | brightbg2 = "#393939", 38 | -- brightbg2 = "#262626", 39 | fg = "#cfcfcf", 40 | grey = "#3B4142", 41 | greycomments = "#888888", 42 | greynum = "#605958", 43 | 44 | red = "#cc6464", 45 | yellow = "#F3C292", 46 | dessert = "#d0af89", 47 | -- dessert = "#b49688", 48 | orange = "#E49273", 49 | blue = "#7180AC", 50 | green = "#8d987e", 51 | purple = "#aaa1c8", 52 | cyan = "#89DDFF", 53 | 54 | } 55 | 56 | -- Enable contrast sidebars, floating windows and popup menus 57 | if vim.g.ikigai_contrast then 58 | ikigai.sidebar = ikigai.ikigai1_gui 59 | ikigai.float = ikigai.ikigai1_gui 60 | else 61 | ikigai.sidebar = ikigai.ikigai0_gui 62 | ikigai.float = ikigai.ikigai0_gui 63 | end 64 | 65 | if vim.g.ikigai_cursorline_transparent then 66 | ikigai.cursorlinefg = ikigai.ikigai0_gui 67 | else 68 | ikigai.cursorlinefg = ikigai.ikigai1_gui 69 | end 70 | 71 | return ikigai 72 | -------------------------------------------------------------------------------- /.config/kmonad/60coldh.kbd: -------------------------------------------------------------------------------- 1 | 2 | ;; _ _ _ _ _ _ _ _ _ _ _ _ _ _ 3 | ;; _ _ _ _ _ _ _ _ _ _ _ _ _ _ 4 | ;; _ _ _ _ _ _ _ _ _ _ _ _ _ 5 | ;; _ _ _ _ _ _ _ _ _ _ _ _ 6 | ;; _ _ _ _ _ _ 7 | 8 | (defcfg 9 | ;; Linux 10 | input (device-file "/dev/input/by-path/platform-i8042-serio-0-event-kbd") 11 | output (uinput-sink "KMonad output") 12 | 13 | ;; Windows 14 | ;; input (low-level-hook) 15 | ;; output (send-event-sink) 16 | 17 | ;; MacOS 18 | ;; input (iokit-name "my-keyboard-product-string") 19 | ;; output (kext) 20 | 21 | fallthrough true 22 | ) 23 | 24 | 25 | 26 | (defsrc 27 | grv 1 2 3 4 5 6 7 8 9 0 - = bspc 28 | tab q w e r t y u i o p [ ] \ 29 | caps a s d f g h j k l ; ' ret 30 | lsft z x c v b n m , . / rsft 31 | lctl lmet lalt spc ralt rmet cmp rctl 32 | ) 33 | 34 | 35 | 36 | (defalias 37 | nav (tap-hold 180 caps (layer-toggle vimnav&funcs)) 38 | ;; col (tap-hold 180 cmp (layer-toggle colemakdh)) 39 | col (layer-switch colemakdh) 40 | qwe (layer-switch qwerty) 41 | ) 42 | 43 | (deflayer qwerty 44 | grv 1 2 3 4 5 6 7 8 9 0 - = bspc 45 | tab q w e r t y u i o p [ ] \ 46 | @nav a s d f g h j k l ; ' ret 47 | lsft z x c v b n m , . / rsft 48 | lctl lmet lalt spc ralt rmet @col rctl 49 | ) 50 | 51 | (deflayer colemakdh 52 | grv 1 2 3 4 5 6 7 8 9 0 - = bspc 53 | tab q w f p b j l u y ; [ ] \ 54 | @nav a r s t g m n e i o ' ret 55 | lsft x c d v z k h , . / rsft 56 | lctl lmet lalt spc ralt rmet @qwe rctl 57 | ) 58 | 59 | 60 | (deflayer vimnav&funcs 61 | _ mute vold volu brdn brup _ _ _ _ _ _ prnt _ 62 | _ _ _ _ _ _ _ _ _ _ _ _ _ _ 63 | _ _ _ _ _ _ h j k l _ _ _ 64 | _ _ _ _ _ _ _ _ _ _ _ _ 65 | _ _ _ _ _ _ _ _ 66 | ) 67 | 68 | 69 | -------------------------------------------------------------------------------- /.local/bin/powermenu: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | ## Author : Aditya Shakya 4 | ## Mail : adi1090x@gmail.com 5 | ## Github : @adi1090x 6 | ## Twitter : @adi1090x 7 | 8 | rofi_command="rofi -theme $HOME/.config/rofi/powermenu/powermenu.rasi" 9 | 10 | 11 | # Options 12 | shutdown="" 13 | reboot="" 14 | lock="" 15 | suspend="" 16 | logout="﫼" 17 | 18 | # Confirmation 19 | confirm_exit() { 20 | rofi -dmenu\ 21 | -i\ 22 | -no-fixed-num-lines\ 23 | -p "Are You Sure? : "\ 24 | -theme $HOME/.config/rofi/powermenu/confirm.rasi 25 | } 26 | 27 | # Message 28 | msg() { 29 | rofi -theme "$HOME/.config/rofi/powermenu/confirm.rasi" -e "Available Options - yes / y / no / n" 30 | } 31 | 32 | # Variable passed to rofi 33 | options="$shutdown\n$reboot\n$lock\n$suspend\n$logout" 34 | 35 | chosen="$(echo -e "$options" | $rofi_command -p " " -dmenu -selected-row 2)" 36 | case $chosen in 37 | $shutdown) 38 | ans=$(confirm_exit &) 39 | if [[ $ans == "yes" || $ans == "YES" || $ans == "y" || $ans == "Y" ]]; then 40 | systemctl poweroff 41 | elif [[ $ans == "no" || $ans == "NO" || $ans == "n" || $ans == "N" ]]; then 42 | exit 0 43 | else 44 | msg 45 | fi 46 | ;; 47 | $reboot) 48 | ans=$(confirm_exit &) 49 | if [[ $ans == "yes" || $ans == "YES" || $ans == "y" || $ans == "Y" ]]; then 50 | systemctl reboot 51 | elif [[ $ans == "no" || $ans == "NO" || $ans == "n" || $ans == "N" ]]; then 52 | exit 0 53 | else 54 | msg 55 | fi 56 | ;; 57 | $lock) 58 | if [[ -f /usr/bin/i3lock ]]; then 59 | ./bin/lock.sh 60 | elif [[ -f /usr/bin/betterlockscreen ]]; then 61 | betterlockscreen -l 62 | fi 63 | ;; 64 | $suspend) 65 | ans=$(confirm_exit &) 66 | if [[ $ans == "yes" || $ans == "YES" || $ans == "y" || $ans == "Y" ]]; then 67 | mpc -q pause 68 | amixer set Master mute 69 | systemctl suspend 70 | elif [[ $ans == "no" || $ans == "NO" || $ans == "n" || $ans == "N" ]]; then 71 | exit 0 72 | else 73 | msg 74 | fi 75 | ;; 76 | $logout) 77 | ans=$(confirm_exit &) 78 | if [[ $ans == "yes" || $ans == "YES" || $ans == "y" || $ans == "Y" ]]; then 79 | if [[ "$DESKTOP_SESSION" == "Openbox" ]]; then 80 | openbox --exit 81 | elif [[ "$DESKTOP_SESSION" == "bspwm" ]]; then 82 | bspc quit 83 | elif [[ "$DESKTOP_SESSION" == "i3" ]]; then 84 | i3-msg exit 85 | fi 86 | elif [[ $ans == "no" || $ans == "NO" || $ans == "n" || $ans == "N" ]]; then 87 | exit 0 88 | else 89 | msg 90 | fi 91 | ;; 92 | esac 93 | -------------------------------------------------------------------------------- /.config/yabai/yabairc: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | # the scripting-addition must be loaded manually if 4 | # you are running yabai on macOS Big Sur. Uncomment 5 | # the following line to have the injection performed 6 | # when the config is executed during startup. 7 | # 8 | # for this to work you must configure sudo such that 9 | # it will be able to run the command without password 10 | # 11 | # see this wiki page for information: 12 | # - https://github.com/koekeishiya/yabai/wiki/Installing-yabai-(latest-release) 13 | # 14 | yabai -m signal --add event=dock_did_restart action="sudo yabai --load-sa" 15 | sudo yabai --load-sa 16 | 17 | # global settings 18 | yabai -m config \ 19 | mouse_follows_focus off \ 20 | focus_follows_mouse off \ 21 | window_origin_display default \ 22 | window_placement second_child \ 23 | window_topmost on \ 24 | window_shadow float \ 25 | window_opacity off \ 26 | window_opacity_duration 0.0 \ 27 | active_window_opacity 1.0 \ 28 | normal_window_opacity 0.80 \ 29 | window_animation_duration 0.20 \ 30 | window_border off \ 31 | window_border_blur off \ 32 | window_border_width 3 \ 33 | active_window_border_color 0xff282828 \ 34 | normal_window_border_color 0xff131313 \ 35 | insert_feedback_color 0xffd75f5f \ 36 | split_ratio 0.50 \ 37 | auto_balance off \ 38 | mouse_modifier cmd \ 39 | mouse_action1 move \ 40 | mouse_action2 resize \ 41 | mouse_drop_action swap \ 42 | top_padding 10 \ 43 | bottom_padding 10 \ 44 | left_padding 10 \ 45 | right_padding 10 \ 46 | window_gap 10 \ 47 | layout bsp 48 | 49 | yabai -m config external_bar all:26:0 50 | 51 | yabai -m rule --add app="Discord" space=4 52 | yabai -m rule --add app="^System Preferences$" manage=off 53 | yabai -m rule --add app="^QuickTime Player$" manage=off 54 | yabai -m rule --add app="^Finder$" manage=off 55 | yabai -m rule --add app="^VLC$" manage=off 56 | 57 | echo "yabai configuration loaded.." 58 | -------------------------------------------------------------------------------- /.config/nvim/lua/plugins/zenmode.lua: -------------------------------------------------------------------------------- 1 | require("true-zen").setup 2 | { 3 | modes = { -- configurations per mode 4 | ataraxis = { 5 | shade = "dark", -- if `dark` then dim the padding windows, otherwise if it's `light` it'll brighten said windows 6 | backdrop = 0, -- percentage by which padding windows should be dimmed/brightened. Must be a number between 0 and 1. Set to 0 to keep the same background color 7 | minimum_writing_area = { -- minimum size of main window 8 | width = 100, 9 | height = 44, 10 | }, 11 | quit_untoggles = true, -- type :q or :qa to quit Ataraxis mode 12 | padding = { -- padding windows 13 | left = 32, 14 | right = 32, 15 | top = 1, 16 | bottom = 1, 17 | }, 18 | open_callback = nil, -- run a function when opening Ataraxis mode 19 | close_callback = nil, -- run a function when closing Ataraxis mode 20 | }, 21 | minimalist = { 22 | ignored_buf_types = { "nofile" }, -- save current options from any window except ones displaying these kinds of buffers 23 | options = { -- options to be disabled when entering Minimalist mode 24 | number = false, 25 | relativenumber = false, 26 | showtabline = 0, 27 | signcolumn = "no", 28 | statusline = "", 29 | cmdheight = 1, 30 | laststatus = 0, 31 | showcmd = false, 32 | showmode = false, 33 | ruler = false, 34 | numberwidth = 1 35 | }, 36 | open_callback = nil, -- run a function when opening Minimalist mode 37 | close_callback = nil, -- run a function when closing Minimalist mode 38 | }, 39 | narrow = { 40 | --- change the style of the fold lines. Set it to: 41 | --- `informative`: to get nice pre-baked folds 42 | --- `invisible`: hide them 43 | --- function() end: pass a custom func with your fold lines. See :h foldtext 44 | folds_style = "informative", 45 | run_ataraxis = true, -- display narrowed text in a Ataraxis session 46 | open_callback = nil, -- run a function when opening Narrow mode 47 | close_callback = nil, -- run a function when closing Narrow mode 48 | }, 49 | focus = { 50 | open_callback = nil, -- run a function when opening Focus mode 51 | close_callback = nil, -- run a function when closing Focus mode 52 | } 53 | }, 54 | integrations = { 55 | tmux = true, -- hide tmux status bar in (minimalist, ataraxis) 56 | kitty = { -- increment font size in Kitty. Note: you must set `allow_remote_control socket-only` and `listen_on unix:/tmp/kitty` in your personal config (ataraxis) 57 | enabled = false, 58 | font = "+3" 59 | }, 60 | twilight = false, -- enable twilight (ataraxis) 61 | lualine = false, 62 | }, 63 | } 64 | -------------------------------------------------------------------------------- /.config/nvim/lazy-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "Comment.nvim": { "branch": "master", "commit": "e1fe53117aab24c378d5e6deaad786789c360123" }, 3 | "bufferline.nvim": { "branch": "main", "commit": "1952c33e425ede785d26aa9e250addfe304a8510" }, 4 | "catppuccin": { "branch": "main", "commit": "8338b02e9a8ffcb999520de7f15943712618760f" }, 5 | "cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" }, 6 | "cmp-nvim-lsp": { "branch": "main", "commit": "0e6b2ed705ddcff9738ec4ea838141654f12eeef" }, 7 | "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" }, 8 | "cmp-vsnip": { "branch": "main", "commit": "989a8a73c44e926199bfd05fa7a516d51f2d2752" }, 9 | "friendly-snippets": { "branch": "main", "commit": "28ee6669ab36cab6ff7d3d7f17ecb045e0138e7f" }, 10 | "gruvbox": { "branch": "master", "commit": "3fff63b0d6a425ad1076a260cd4f6da61d1632b1" }, 11 | "hardtime.nvim": { "branch": "main", "commit": "5a2b8227904ee508075a1fcae437b6a6c9767916" }, 12 | "indent-blankline.nvim": { "branch": "master", "commit": "018bd04d80c9a73d399c1061fa0c3b14a7614399" }, 13 | "lazy.nvim": { "branch": "main", "commit": "5f316cea4f0b5379e0094d6cfa5e1ee5e279f65a" }, 14 | "lualine.nvim": { "branch": "master", "commit": "05d78e9fd0cdfb4545974a5aa14b1be95a86e9c9" }, 15 | "mason-lspconfig.nvim": { "branch": "main", "commit": "f0ce33f4794a2364eb08d09d09380e8b04ec5e6a" }, 16 | "mason.nvim": { "branch": "main", "commit": "08b2fd308e0107eab9f0b59d570b69089fd0b522" }, 17 | "nvim-autopairs": { "branch": "master", "commit": "7747bbae60074acf0b9e3a4c13950be7a2dff444" }, 18 | "nvim-cmp": { "branch": "main", "commit": "3ac8d6cd29c74ff482d8ea47d45e5081bfc3f5ad" }, 19 | "nvim-colorizer.lua": { "branch": "master", "commit": "36c610a9717cc9ec426a07c8e6bf3b3abcb139d6" }, 20 | "nvim-lspconfig": { "branch": "master", "commit": "6f1d124bbcf03c4c410c093143a86415f46d16a0" }, 21 | "nvim-tree.lua": { "branch": "master", "commit": "736c7ff59065275f0483af4b7f07a9bc41449ad0" }, 22 | "nvim-treesitter": { "branch": "master", "commit": "8e59b4919d1a61bd4eb29c397bd19bab83883cbb" }, 23 | "nvim-web-devicons": { "branch": "master", "commit": "986875b7364095d6535e28bd4aac3a9357e91bbe" }, 24 | "plenary.nvim": { "branch": "master", "commit": "9ac3e9541bbabd9d73663d757e4fe48a675bb054" }, 25 | "popup.nvim": { "branch": "master", "commit": "b7404d35d5d3548a82149238289fa71f7f6de4ac" }, 26 | "telescope.nvim": { "branch": "master", "commit": "40c31fdde93bcd85aeb3447bb3e2a3208395a868" }, 27 | "true-zen.nvim": { "branch": "main", "commit": "98740c76254c65576ec294551028b65081053588" }, 28 | "vim-vsnip": { "branch": "master", "commit": "7753ba9c10429c29d25abfd11b4c60b76718c438" } 29 | } -------------------------------------------------------------------------------- /.config/nvim/lua/ikigai/util.lua: -------------------------------------------------------------------------------- 1 | local util = {} 2 | local ikigai = require("ikigai.theme") 3 | 4 | -- Go trough the table and highlight the group with the color values 5 | util.highlight = function(group, color) 6 | local style = color.style and "gui=" .. color.style or "gui=NONE" 7 | local fg = color.fg and "guifg=" .. color.fg or "guifg=NONE" 8 | local bg = color.bg and "guibg=" .. color.bg or "guibg=NONE" 9 | local sp = color.sp and "guisp=" .. color.sp or "" 10 | 11 | local hl = "highlight " .. group .. " " .. style .. " " .. fg .. " " .. bg .. " " .. sp 12 | 13 | vim.cmd(hl) 14 | if color.link then 15 | vim.cmd("highlight! link " .. group .. " " .. color.link) 16 | end 17 | end 18 | 19 | -- Only define ikigai if it's the active colorscheme 20 | function util.onColorScheme() 21 | if vim.g.colors_name ~= "ikigai" then 22 | vim.cmd([[autocmd! ikigai]]) 23 | vim.cmd([[augroup! ikigai]]) 24 | end 25 | end 26 | 27 | -- Change the background for the terminal, packer and qf windows 28 | util.contrast = function() 29 | vim.cmd([[augroup ikigai]]) 30 | vim.cmd([[ autocmd!]]) 31 | vim.cmd([[ autocmd ColorScheme * lua require("ikigai.util").onColorScheme()]]) 32 | vim.cmd([[ autocmd TermOpen * setlocal winhighlight=Normal:NormalFloat,SignColumn:NormalFloat]]) 33 | vim.cmd([[ autocmd FileType packer setlocal winhighlight=Normal:NormalFloat,SignColumn:NormalFloat]]) 34 | vim.cmd([[ autocmd FileType qf setlocal winhighlight=Normal:NormalFloat,SignColumn:NormalFloat]]) 35 | vim.cmd([[augroup end]]) 36 | end 37 | -- Loads the colors from the dictionary Object (colorSet) 38 | function util.loadColorSet(colorSet) 39 | for group, colors in pairs(colorSet) do 40 | util.highlight(group, colors) 41 | end 42 | end 43 | -- Load the theme 44 | function util.load() 45 | -- Set the theme environment 46 | vim.cmd("hi clear") 47 | if vim.fn.exists("syntax_on") then 48 | vim.cmd("syntax reset") 49 | end 50 | -- vim.o.background = "dark" 51 | vim.o.termguicolors = true 52 | vim.g.colors_name = "ikigai" 53 | 54 | -- load the most importaint parts of the theme 55 | local editor = ikigai.loadEditor() 56 | local syntax = ikigai.loadSyntax() 57 | local treesitter = ikigai.loadTreeSitter() 58 | 59 | -- load editor highlights 60 | util.loadColorSet(editor) 61 | 62 | -- load syntax highlights 63 | util.loadColorSet(syntax) 64 | 65 | -- load treesitter highlights 66 | util.loadColorSet(treesitter) 67 | 68 | ikigai.loadTerminal() 69 | 70 | -- imort tables for plugins and lsp 71 | local plugins = ikigai.loadPlugins() 72 | local lsp = ikigai.loadLSP() 73 | 74 | -- load plugin highlights 75 | util.loadColorSet(plugins) 76 | 77 | -- load lsp highlights 78 | util.loadColorSet(lsp) 79 | 80 | -- if contrast is enabled, apply it to sidebars and floating windows 81 | if vim.g.ikigai_contrast == true then 82 | util.contrast() 83 | end 84 | end 85 | 86 | return util 87 | -------------------------------------------------------------------------------- /.config/eww/scripts/getSongMetadata.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | PLAYERS="spotify,%any,firefox,chromium,brave,mpd" 4 | ARTIST=$(playerctl -p $PLAYERS metadata --format '{{ artist }}') 5 | TITLE=$(playerctl -p $PLAYERS metadata --format '{{ title }}') 6 | STATUS=$(playerctl -p $PLAYERS status) 7 | 8 | artist() { 9 | # Check if $title is "Advertisement" cause fuck Spotify. 10 | # Deathemonic: How about using a spicetify adblocker (The Easy Way) or a adblock script https://github.com/abba23/spotify-adblock (The Chad Way) 11 | # Kizu: https://github.com/abba23/spotify-adblock to big to clone for my wifi lmao 12 | if [ "$TITLE" = "Advertisement" ]; then 13 | echo "Spotify Free" 14 | else 15 | [ -z "$ARTIST" ] && echo "Unknown Artist" || echo "by $ARTIST" 16 | fi 17 | } 18 | 19 | title() { 20 | if [ -z "$TITLE" ]; then 21 | echo "Nothing Playing" 22 | 23 | # [[ -f "$HOME/.cache/eww-control-center.lock" ]] && $HOME/.local/bin/eww update mp=false 24 | else 25 | # Eww can't truncate Japanese and Chinese characters. 26 | if [ "$TITLE" =~ ^[一-龠]+|[ぁ-ゔ]+|[ァ-ヴー]+ ]; then 27 | [ ${#TITLE} -gt 16 ] && echo ${TITLE::10}... || echo $TITLE 28 | else 29 | echo $TITLE 30 | fi 31 | 32 | # [[ -f "$HOME/.cache/eww-control-center.lock" ]] && $HOME/.local/bin/eww update mp=true 33 | fi 34 | } 35 | 36 | player_status() { 37 | if [ "$STATUS" = "Playing" ]; then 38 | echo "" 39 | elif [ "$STATUS" = "Paused" ]; then 40 | echo "" 41 | else 42 | echo "󰎊" 43 | fi 44 | } 45 | 46 | player_status_text() { 47 | # Author Notes: 48 | # Deathemonic: It checks for the first priority player name and removes the rest of the players. This is usefull when spotify and mpd are both running 49 | 50 | PLAYER_NAME=$(playerctl -p $PLAYERS -l | head -n 1) 51 | # Some browsers sometimes have ".instance(RANDOM_STRING)" in their names like Firefox. This removes the instance name. 52 | PLAYER_NAME_SPLIT=$(echo $PLAYER_NAME | tr "." "\n") 53 | PLAYER_NAME_SPLIT=${PLAYER_NAME_SPLIT[0]} 54 | 55 | [ "$STATUS" = "Playing" ] && echo "Now Playing - via ${PLAYER_NAME_SPLIT^}" || echo "Music" 56 | } 57 | 58 | position() { 59 | POSITION=$(playerctl -p $PLAYERS position | sed 's/..\{6\}$//') 60 | DURATION=$(playerctl -p $PLAYERS metadata mpris:length | sed 's/.\{6\}$//') 61 | 62 | # Author Notes: 63 | # Deathemonic: It check if the position is greater than 0 then execute the position if not just echo a empty space 64 | # Why do this? Because playerctl can't detect position on some players like firefox and spotify, and instead of manually modifying the script it just detects 65 | if [ $POSITION -gt 0 ]; then 66 | printf "%0d:%02d" $((POSITION % 3600 / 60)) $((POSITION % 60)) 67 | printf " / " 68 | printf "%0d:%02d" $((DURATION % 3600 / 60)) $((DURATION % 60)) 69 | else 70 | echo "" 71 | fi 72 | } 73 | 74 | case $1 in 75 | "artist") artist;; 76 | "title") title;; 77 | "player_status") player_status;; 78 | "player_status_text") player_status_text;; 79 | "position") position;; 80 | esac 81 | -------------------------------------------------------------------------------- /.config/nvim/lua/plugins/presence.lua: -------------------------------------------------------------------------------- 1 | -- The setup config table shows all available config options with their default values: 2 | require("presence"):setup({ 3 | -- General options 4 | auto_update = true, -- Update activity based on autocmd events (if `false`, map or manually execute `:lua package.loaded.presence:update()`) 5 | neovim_image_text = "SigmaGrindset", -- Text displayed when hovered over the Neovim image 6 | main_image = "file", -- Main image display (either "neovim" or "file") 7 | client_id = "793271441293967371", -- Use your own Discord application client id (not recommended) 8 | log_level = nil, -- Log messages at or above this level (one of the following: "debug", "info", "warn", "error") 9 | debounce_timeout = 10, -- Number of seconds to debounce events (or calls to `:lua package.loaded.presence:update(, true)`) 10 | enable_line_number = false, -- Displays the current line number instead of the current project 11 | blacklist = {}, -- A list of strings or Lua patterns that disable Rich Presence if the current file name, path, or workspace matches 12 | buttons = true, -- Configure Rich Presence button(s), either a boolean to enable/disable, a static table (`{{ label = "