├── .screenlayout ├── mode └── layout.sh ├── .xinitrc ├── .vimrc ├── .config ├── pavucontrol.ini ├── dunst │ └── dunstrc ├── polybar │ ├── launch │ │ ├── monitor.sh │ │ ├── internal.sh │ │ └── both.sh │ ├── colors.ini │ ├── config │ │ ├── internal.ini │ │ └── monitor.ini │ └── modules.ini ├── rofi │ ├── config.rasi │ └── themes │ │ └── mocha.rasi ├── conky │ ├── helper.lua │ ├── conky_date_time.conf │ └── conky_mpd.conf ├── gtk-3.0 │ ├── settings.ini │ └── gtk.css ├── cava │ └── config ├── pcmanfm │ └── default │ │ └── pcmanfm.conf ├── picom │ └── picom.conf ├── mpd │ └── mpd.conf ├── terminator │ └── config ├── zathura │ └── zathurarc ├── alacritty │ └── alacritty.toml ├── htop │ └── htoprc ├── bspwm │ └── bspwmrc ├── sxhkd │ └── sxhkdrc └── neofetch │ └── config.conf ├── bin ├── clean ├── ghfetch ├── kernelplease ├── display ├── panes ├── mpd-album-art.sh ├── sysfetch ├── backlight └── pipes ├── LICENSE ├── README.md ├── .bashrc └── .vim └── colors └── catppuccin_mocha.vim /.screenlayout/mode: -------------------------------------------------------------------------------- 1 | 3 2 | -------------------------------------------------------------------------------- /.xinitrc: -------------------------------------------------------------------------------- 1 | xsetroot -cursor_name left_ptr & 2 | 3 | exec bspwm 4 | -------------------------------------------------------------------------------- /.vimrc: -------------------------------------------------------------------------------- 1 | syntax on 2 | colorscheme catppuccin_mocha 3 | 4 | " necessary 5 | set mouse=a 6 | " just to see what is going on 7 | set number 8 | -------------------------------------------------------------------------------- /.config/pavucontrol.ini: -------------------------------------------------------------------------------- 1 | [window] 2 | width=1872 3 | height=972 4 | sinkInputType=0 5 | sourceOutputType=0 6 | sinkType=0 7 | sourceType=2 8 | showVolumeMeters=1 9 | -------------------------------------------------------------------------------- /.config/dunst/dunstrc: -------------------------------------------------------------------------------- 1 | [global] 2 | 3 | background = "#1E1E2E" 4 | foreground = "#FFFFFF" 5 | 6 | scale = 1.4 7 | 8 | corner_radius = 10 9 | gap_size = 8 10 | padding = 16 11 | 12 | frame_width = 0 13 | 14 | font = "JetbrainsMono Nerd Font 10" 15 | -------------------------------------------------------------------------------- /.config/polybar/launch/monitor.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | DIR="$HOME/.config/polybar/config" 4 | 5 | killall -q polybar 6 | 7 | while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done 8 | 9 | # polybar -q internal -c "$DIR"/internal.ini & 10 | polybar -q monitor -c "$DIR"/monitor.ini & -------------------------------------------------------------------------------- /.config/polybar/launch/internal.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | DIR="$HOME/.config/polybar/config" 4 | 5 | killall -q polybar 6 | 7 | while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done 8 | 9 | polybar -q internal -c "$DIR"/internal.ini & 10 | # polybar -q monitor -c "$DIR"/monitor.ini & 11 | -------------------------------------------------------------------------------- /.config/rofi/config.rasi: -------------------------------------------------------------------------------- 1 | configuration{ 2 | modi: "drun"; 3 | icon-theme: "Sweet-Rainbow"; 4 | show-icons: true; 5 | terminal: "alacritty"; 6 | disable-history: false; 7 | 8 | drun { 9 | display-name: "You're Awesome :)"; 10 | } 11 | } 12 | 13 | @theme "themes/mocha" 14 | -------------------------------------------------------------------------------- /.config/polybar/launch/both.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | DIR="$HOME/.config/polybar/config" 4 | 5 | killall -q polybar 6 | 7 | while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done 8 | 9 | # Launch the bar 10 | polybar -q internal -c "$DIR"/internal.ini & 11 | polybar -q monitor -c "$DIR"/monitor.ini & 12 | -------------------------------------------------------------------------------- /.config/conky/helper.lua: -------------------------------------------------------------------------------- 1 | ---@diagnostic disable: lowercase-global 2 | function conky_getweekday() 3 | return tostring(os.date("%A")):gsub(".", "%1 "):sub(1, -2) 4 | end 5 | 6 | function conky_getdate() 7 | return tostring(os.date("%d %B, %Y")) 8 | end 9 | 10 | function conky_gettime() 11 | return tostring(os.date("- %H:%M -")) 12 | end -------------------------------------------------------------------------------- /bin/clean: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | echo -e '\nRedundant packages are:\n' 4 | pacman -Qtdq 5 | echo -e '\nRemoving...\n' 6 | 7 | echo -e '\nCleaning packages:\n' 8 | sudo pacman -Rns $(pacman -Qtdq) 9 | echo -e '\nDone\n' 10 | 11 | echo -e '\nCleaning cache directory:\n' 12 | rm -rf ~/.cache 13 | echo -e '\nDone\n' 14 | 15 | echo -e '\nCleaning package cache:\n' 16 | sudo pacman -Scc 17 | echo -e '\nDone\n' 18 | -------------------------------------------------------------------------------- /.config/gtk-3.0/settings.ini: -------------------------------------------------------------------------------- 1 | [Settings] 2 | gtk-theme-name=Arc-Dark 3 | gtk-icon-theme-name=Sweet-Rainbow 4 | gtk-cursor-theme-name=Adwaita 5 | gtk-cursor-theme-size=0 6 | gtk-toolbar-style=GTK_TOOLBAR_BOTH 7 | gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR 8 | gtk-button-images=1 9 | gtk-menu-images=1 10 | gtk-enable-event-sounds=0 11 | gtk-enable-input-feedback-sounds=0 12 | gtk-xft-antialias=1 13 | gtk-xft-hinting=1 14 | gtk-xft-hintstyle=hintfull 15 | gtk-font-name=Cantarell 11 16 | -------------------------------------------------------------------------------- /.config/cava/config: -------------------------------------------------------------------------------- 1 | [general] 2 | 3 | autosens = 1 4 | 5 | bars = 512 6 | bar_width = 1 7 | bar_spacing = 1 8 | 9 | [input] 10 | 11 | method = pulse 12 | source = auto 13 | 14 | [output] 15 | 16 | alacritty_sync = 1 17 | 18 | [color] 19 | 20 | gradient = 1 21 | 22 | gradient_color_1 = '#94e2d5' 23 | gradient_color_2 = '#89dceb' 24 | gradient_color_3 = '#74c7ec' 25 | gradient_color_4 = '#89b4fa' 26 | gradient_color_5 = '#cba6f7' 27 | gradient_color_6 = '#f5c2e7' 28 | gradient_color_7 = '#eba0ac' 29 | gradient_color_8 = '#f38ba8' 30 | -------------------------------------------------------------------------------- /.config/pcmanfm/default/pcmanfm.conf: -------------------------------------------------------------------------------- 1 | [config] 2 | bm_open_method=0 3 | 4 | [volume] 5 | mount_on_startup=0 6 | mount_removable=0 7 | autorun=0 8 | 9 | [ui] 10 | always_show_tabs=0 11 | max_tab_chars=32 12 | win_width=954 13 | win_height=1072 14 | splitter_pos=188 15 | media_in_new_tab=0 16 | desktop_folder_new_win=0 17 | change_tab_on_drop=1 18 | close_on_unmount=1 19 | focus_previous=0 20 | side_pane_mode=places 21 | view_mode=icon 22 | show_hidden=1 23 | sort=name;ascending; 24 | toolbar=newtab;navigation;home; 25 | show_statusbar=0 26 | pathbar_mode_buttons=0 27 | -------------------------------------------------------------------------------- /bin/ghfetch: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | #Checking Dependencies 4 | for apps in curl jq; do 5 | [ ! "$(which "$apps")" ] && echo "Please install $apps!" && exit 1 6 | done 7 | 8 | USER=$1 9 | 10 | if [ ! "$USER" ]; then 11 | echo "Username empty" && exit 1 12 | fi 13 | 14 | #Fetch! 15 | FETCH=$(curl https://api.github.com/users/$USER/events/public) 16 | 17 | KEYS=($(printf "%s\n" "$(jq -r '.[] | .type' <<< $FETCH)" | sort -u | tr '\n' ' ')) 18 | 19 | for key in "${KEYS[@]}"; do 20 | echo -e "\n$key:\n" 21 | jq '[.[] | select( .type == '"\""$key"\""' ) | { repo: .repo.name, when: .created_at }]' <<< $FETCH 22 | done 23 | -------------------------------------------------------------------------------- /bin/kernelplease: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | COUNT=$(checkupdates | grep linux | wc -l) 4 | 5 | if [[ $COUNT -gt 1 ]] then 6 | echo -e "Multiple kernel updates detected...\nUpdating only linux kernel\nPlease run this command again after a reboot to update other kernels." 7 | sudo pacman -Syu --ignore linux-lts --ignore linux-zen --ignore linux-hardened && yay -aSyu 8 | echo "Update completed, please reboot..." 9 | exit 0 10 | elif [[ $COUNT -eq 1 ]] then 11 | echo -e "Single kernel to be updated..." 12 | else 13 | echo -e "No kernel updates..." 14 | fi 15 | 16 | echo "Proceeding with update..." 17 | sudo pacman -Syu && yay -aSyu -------------------------------------------------------------------------------- /.screenlayout/layout.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | MODE=$(cat ~/.screenlayout/mode) 4 | 5 | # both monitors 6 | if [ $MODE == 0 ] || [ $MODE == 1 ] || [ $MODE == 4 ] || [ $MODE == 5 ] || [ $MODE == 6 ]; then 7 | xrandr --output eDP-1 --primary --mode 1920x1080 --pos 0x0 --rotate normal --output HDMI-1 --mode 1920x1080 --pos 1920x0 --rotate normal --output DP-1 --off --output DP-2 --off --output DP-3 --off --output DP-4 --off 8 | # intenral monitor off 9 | elif [ $MODE == 2 ] || [ $MODE == 3 ]; then 10 | xrandr --output eDP-1 --off --output HDMI-1 --mode 1920x1080 --pos 0x0 --rotate normal --output DP-1 --off --output DP-2 --off --output DP-3 --off --output DP-4 --off 11 | fi 12 | -------------------------------------------------------------------------------- /.config/polybar/colors.ini: -------------------------------------------------------------------------------- 1 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 2 | ; ______ __ 3 | ; / ________ / ____ __________ 4 | ; / / / __ \/ / __ \/ ___/ ___/ 5 | ; / /___/ /_/ / / /_/ / / (__ ) 6 | ; \____/\____/_/\____/_/ /____/ 7 | ; 8 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 9 | 10 | ; Catppuccin 11 | 12 | [colors] 13 | 14 | background = #A01E1E2E 15 | foreground = #D9E0EE 16 | foreground-light = #6E6C7E 17 | 18 | green = #ABE9B3 19 | magenta = #F5C2E7 20 | cyan = #89DCEB 21 | yellow = #FAE3B0 22 | 23 | red = #F28FAD 24 | white = #FFFFFF 25 | 26 | transparent = #00000000 27 | 28 | background-new = #A01E1E2E -------------------------------------------------------------------------------- /.config/picom/picom.conf: -------------------------------------------------------------------------------- 1 | # █▀█ █ █▀▀ █▀█ █▀▄▀█ 2 | # █▀▀ █ █▄▄ █▄█ █░▀░█ 3 | # 4 | # 5 | # picom is used is picom-rounded-corners available in AUR 6 | # 7 | ################################# 8 | # Corners # 9 | ################################# 10 | # requires: https://github.com/sdhand/compton or https://github.com/jonaburg/picom 11 | 12 | 13 | corner-radius = 8.0; 14 | rounded-corners-exclude = [ 15 | "class_g = 'awesome'", 16 | "class_g = 'URxvt'", 17 | "class_g = 'XTerm'", 18 | "class_g = 'kitty'", 19 | "class_g = 'dmenu'", 20 | "class_g = 'Polybar'", 21 | "class_g = 'code-oss'", 22 | "class_g = 'firefox'", 23 | #"class_g = 'TelegramDesktop'", 24 | "class_g = 'Thunderbird'" 25 | ]; 26 | round-borders = 1; 27 | -------------------------------------------------------------------------------- /bin/display: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [ $# == 0 ]; then 4 | echo '0 -> internal monitor only without polybar' 5 | echo '1 -> internal monitor only with polybar' 6 | echo '2 -> external monitor only without polybar' 7 | echo '3 -> external monitor only with polybar' 8 | echo '4 -> both monitors without polybar' 9 | echo '5 -> both monitors with polybar' 10 | echo '6 -> both monitors with polybar only on internal monitor' 11 | 12 | read -p 'Mode: ' MODE 13 | else 14 | MODE=$1 15 | fi 16 | 17 | MODE=$(echo $MODE | head -c 1) 18 | 19 | re='^[0-9]' 20 | 21 | if [[ $MODE =~ $re ]] && [[ $MODE -le 6 ]]; then 22 | 23 | echo $MODE > ~/.screenlayout/mode 24 | 25 | bspc wm -r 26 | 27 | exit 0 28 | 29 | fi 30 | 31 | echo 'Invalid ID' 32 | exit 1 -------------------------------------------------------------------------------- /.config/mpd/mpd.conf: -------------------------------------------------------------------------------- 1 | # Required files 2 | db_file "~/.config/mpd/database" 3 | log_file "~/.config/mpd/log" 4 | 5 | # Optional 6 | 7 | auto_update "yes" 8 | bind_to_address "127.0.0.1" 9 | 10 | music_directory "~/Music" 11 | playlist_directory "~/.config/mpd/playlists" 12 | pid_file "~/.config/mpd/pid" 13 | state_file "~/.config/mpd/state" 14 | sticker_file "~/.config/mpd/sticker.sql" 15 | 16 | decoder { 17 | plugin "wildmidi" 18 | enabled "no" 19 | } 20 | 21 | audio_output { 22 | type "pulse" 23 | name "pulse audio" 24 | } 25 | 26 | audio_output { 27 | type "fifo" 28 | name "Visualizer feed" 29 | path "/tmp/mpd.fifo" 30 | format "44100:16:2" 31 | } 32 | -------------------------------------------------------------------------------- /.config/gtk-3.0/gtk.css: -------------------------------------------------------------------------------- 1 | VteTerminal, 2 | TerminalScreen, 3 | vte-terminal { 4 | padding: 0px 0px 0px 0px; 5 | -VteTerminal-inner-border: 10px 10px 10px 10px; 6 | } 7 | 8 | .csd .titlebar { 9 | border-radius: 8px; 10 | } 11 | 12 | .window-frame { 13 | border-radius: 8px; 14 | } 15 | 16 | decoration, window, window.background, window.titlebar, * { 17 | border-radius: 8px; 18 | } 19 | 20 | .titlebar, 21 | .titlebar .background, * { 22 | border-top-left-radius: 8px; 23 | border-top-right-radius: 8px; 24 | border-bottom-left-radius: 8px; 25 | border-bottom-right-radius: 8px; 26 | } 27 | 28 | 29 | .window-frame { 30 | border-radius: 8 8 8 8; 31 | } 32 | 33 | .background.csd { 34 | border-radius: 8px 8px 8px 8px; 35 | } 36 | .background.maximized, .background.solid-csd { 37 | border-radius: 8px; 38 | } 39 | 40 | .window-frame, .window-frame:backdrop { 41 | box-shadow: 8px 8px 8px black; 42 | border-style: none; 43 | margin: 0px; 44 | border-radius: 8px; 45 | } 46 | 47 | .titlebar { 48 | border-radius: 8px; 49 | } 50 | 51 | -------------------------------------------------------------------------------- /bin/panes: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # Author: GekkoP 4 | # Source: http://linuxbbq.org/bbs/viewtopic.php?f=4&t=1656#p33189 5 | 6 | f=3 b=4 7 | for j in f b; do 8 | for i in {0..7}; do 9 | printf -v $j$i %b "\e[${!j}${i}m" 10 | done 11 | done 12 | for i in {0..7}; do 13 | printf -v fbright$i %b "\e[9${i}m" 14 | done 15 | d=$'\e[1m' 16 | t=$'\e[0m' 17 | v=$'\e[7m' 18 | 19 | 20 | cat << EOF 21 | 22 | $f1███$d$fbright$fbright1▄$t $f2███$d$fbright$fbright2▄$t $f3███$d$fbright3▄$t $f4███$d$fbright4▄$t $f5███$d$fbright5▄$t $f6███$d$fbright6▄$t $f7███$d$fbright7▄$t 23 | $f1███$d$fbright$fbright1█$t $f2███$d$fbright$fbright2█$t $f3███$d$fbright3█$t $f4███$d$fbright4█$t $f5███$d$fbright5█$t $f6███$d$fbright6█$t $f7███$d$fbright7█$t 24 | $f1███$d$fbright$fbright1█$t $f2███$d$fbright$fbright2█$t $f3███$d$fbright3█$t $f4███$d$fbright4█$t $f5███$d$fbright5█$t $f6███$d$fbright6█$t $f7███$d$fbright7█$t 25 | $d$fbright1 ▀▀▀ $fbright2▀▀▀ $fbright3▀▀▀ $fbright4▀▀▀ $fbright5▀▀▀ $fbright6▀▀▀ $fbright7▀▀▀ 26 | EOF 27 | 28 | -------------------------------------------------------------------------------- /bin/mpd-album-art.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | while true; do 4 | 5 | if pgrep -x "mpd" > /dev/null 6 | then 7 | mpc idle player 8 | else 9 | echo "Waiting for MPD to start..." 10 | sleep 5 11 | continue 12 | fi 13 | 14 | if [ $(mpc status %state%) == "playing" ]; then 15 | 16 | FILE="/home/vishnu/Music/$(mpc current -f %file%)" 17 | 18 | echo "Current: $FILE" 19 | 20 | ffmpeg -i "$FILE" "/tmp/mpdAlbumArt.jpg" -y &> /dev/null 21 | 22 | fi 23 | 24 | done 25 | 26 | # /etc/systemd/system/mpd-album-art-fetch-service.service 27 | 28 | # [Unit] 29 | # Description=Fetches album art from the currently playing mpd file into /tmp/mpdAlbumArt.jpg 30 | 31 | # [Service] 32 | # User=vishnu 33 | # WorkingDirectory=/tmp/ 34 | # ExecStart=/home/vishnu/bin/mpd-album-art.sh 35 | # Restart=always 36 | 37 | # [Install] 38 | # WantedBy=default.target 39 | 40 | # sudo systemctl daemon-reload 41 | # && sudo systemctl start mpd-album-art-fetch-service.service 42 | # && sudo systemctl enable mpd-album-art-fetch-service.service 43 | -------------------------------------------------------------------------------- /.config/terminator/config: -------------------------------------------------------------------------------- 1 | [global_config] 2 | dbus = False 3 | geometry_hinting = True 4 | borderless = True 5 | always_on_top = True 6 | inactive_color_offset = 0.8024691358024691 7 | suppress_multiple_term_dialog = True 8 | [keybindings] 9 | [profiles] 10 | [[default]] 11 | icon_bell = False 12 | background_color = "#1e1e2e" 13 | background_darkness = 0.0 14 | background_type = transparent 15 | background_image = None 16 | cursor_shape = ibeam 17 | font = JetBrainsMonoNL Nerd Font Mono Medium 10 18 | foreground_color = "#cdd6f4" 19 | show_titlebar = False 20 | scrollbar_position = hidden 21 | palette = "#45475a:#f38ba8:#a6e3a1:#f9e2af:#89b4fa:#f5c2e7:#94e2d5:#bac2de:#585b70:#f38ba8:#a6e3a1:#f9e2af:#89b4fa:#f5c2e7:#94e2d5:#a6adc8" 22 | use_custom_command = True 23 | custom_command = cava 24 | use_system_font = False 25 | title_use_system_font = False 26 | title_font = JetBrains Mono 10 27 | [layouts] 28 | [[default]] 29 | [[[window0]]] 30 | type = Window 31 | parent = "" 32 | [[[child1]]] 33 | type = Terminal 34 | parent = window0 35 | profile = default 36 | [plugins] 37 | -------------------------------------------------------------------------------- /.config/polybar/config/internal.ini: -------------------------------------------------------------------------------- 1 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 2 | ; ____ __ __ 3 | ; / __ \____ / __ __/ /_ ____ ______ 4 | ; / /_/ / __ \/ / / / / __ \/ __ `/ ___/ 5 | ; / ____/ /_/ / / /_/ / /_/ / /_/ / / 6 | ; /_/ \____/_/\__, /_.___/\__,_/_/ 7 | ; /____/ 8 | ; 9 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 10 | 11 | [global/wm] 12 | margin-top = 0 13 | margin-bottom = -20 14 | include-file = $HOME/.config/polybar/colors.ini 15 | include-file = $HOME/.config/polybar/modules.ini 16 | 17 | [bar/internal] 18 | width = 100% 19 | height = 40 20 | radius = 20 21 | fixed-center = true 22 | monitor = eDP-1 23 | ; background = ${colors.transparent} 24 | background = ${colors.background} 25 | foreground = ${colors.foreground} 26 | 27 | border-size = 20 28 | border-color = ${colors.transparent} 29 | 30 | padding = 2 31 | module-margin = 1 32 | 33 | font-0 = JetbrainsMono Nerd Font:style=Medium:size=11;2 34 | 35 | modules-left = bspwm 36 | modules-center = time 37 | ; modules-center = text 38 | modules-right = pulseaudio battery github 39 | 40 | ; tray-position = right 41 | 42 | wm-restack = bspwm 43 | 44 | cursor-click = pointer 45 | 46 | [settings] 47 | screenchange-reload = true -------------------------------------------------------------------------------- /.config/polybar/config/monitor.ini: -------------------------------------------------------------------------------- 1 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 2 | ; ____ __ __ 3 | ; / __ \____ / __ __/ /_ ____ ______ 4 | ; / /_/ / __ \/ / / / / __ \/ __ `/ ___/ 5 | ; / ____/ /_/ / / /_/ / /_/ / /_/ / / 6 | ; /_/ \____/_/\__, /_.___/\__,_/_/ 7 | ; /____/ 8 | ; 9 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 10 | 11 | [global/wm] 12 | margin-top = 0 13 | margin-bottom = -20 14 | include-file = $HOME/.config/polybar/colors.ini 15 | include-file = $HOME/.config/polybar/modules.ini 16 | 17 | [bar/monitor] 18 | width = 100% 19 | height = 40 20 | radius = 20 21 | fixed-center = true 22 | monitor = HDMI-1 23 | ; background = ${colors.transparent} 24 | background = ${colors.background} 25 | foreground = ${colors.foreground} 26 | 27 | border-size = 20 28 | border-color = ${colors.transparent} 29 | 30 | padding = 2 31 | module-margin = 1 32 | 33 | font-0 = JetbrainsMono Nerd Font:style=Medium:size=12;2 34 | 35 | modules-left = bspwm 36 | modules-center = time 37 | ; modules-center = text 38 | modules-right = pulseaudio battery github 39 | 40 | ; tray-position = right 41 | 42 | wm-restack = bspwm 43 | 44 | cursor-click = pointer 45 | 46 | [settings] 47 | screenchange-reload = true -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | This is free and unencumbered software released into the public domain. 2 | 3 | Anyone is free to copy, modify, publish, use, compile, sell, or 4 | distribute this software, either in source code form or as a compiled 5 | binary, for any purpose, commercial or non-commercial, and by any 6 | means. 7 | 8 | In jurisdictions that recognize copyright laws, the author or authors 9 | of this software dedicate any and all copyright interest in the 10 | software to the public domain. We make this dedication for the benefit 11 | of the public at large and to the detriment of our heirs and 12 | successors. We intend this dedication to be an overt act of 13 | relinquishment in perpetuity of all present and future rights to this 14 | software under copyright law. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 19 | IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR 20 | OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 21 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 22 | OTHER DEALINGS IN THE SOFTWARE. 23 | 24 | For more information, please refer to 25 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # dotfiles 2 | 3 | ![SS](https://github.com/VishnuSanal/dotfiles/assets/50027064/0483b5b4-5fef-41b4-9cba-27ccc7cf798b?raw=true) 4 | 5 |
6 | Carousel 7 |
8 | 9 | ![Details](https://github.com/VishnuSanal/dotfiles/assets/50027064/b67a6f50-6a1d-4331-be73-c803571f48e1?raw=true) 10 | 11 |
12 |
13 | 14 | * OS: Arch Linux 15 | * WM: [`BSPWM`](https://github.com/baskerville/bspwm) 16 | * Compositor: [`picom`](https://github.com/yshui/picom) 17 | * Theme: [`Catppuccin`](https://github.com/catppuccin) 18 | 19 | ## programs shown: 20 | * [`neofetch`](https://github.com/dylanaraps/neofetch) 21 | * [`panes`](https://gitlab.com/dwt1/shell*color*scripts/*/blob/master/colorscripts/panes) 22 | * [`ncmpcpp`](https://github.com/ncmpcpp/ncmpcpp) 23 | * [`vim`](https://github.com/vim/vim) 24 | * [`cava`](https://github.com/karlstav/cava) 25 | * [`pipes`](https://github.com/pipeseroni/pipes.sh) 26 | * [`brave`](https://github.com/brave) 27 | * [`zathura`](https://github.com/pwmt/zathura) 28 | * [`pcmanfm`](https://github.com/lxde/pcmanfm) 29 | * [`rofi`](https://github.com/davatorium/rofi) 30 | * [`tty-clock`](https://github.com/xorg62/tty-clock) 31 | * [`conky`](https://github.com/brndnmtthws/conky/) 32 | 33 | ## Credits 34 | 35 | **@tsjazil** for [dotfiles](https://github.com/tsjazil/dotfiles) 36 | -------------------------------------------------------------------------------- /.config/zathura/zathurarc: -------------------------------------------------------------------------------- 1 | set recolor 2 | set sandbox none 3 | set statusbar-h-padding 0 4 | set statusbar-v-padding 0 5 | set page-padding 1 6 | 7 | set selection-clipboard clipboard 8 | 9 | set default-fg "#D9E0EE" 10 | set default-bg "#1E1D2F" 11 | 12 | set completion-bg "#302D41" 13 | set completion-fg "#D9D0EE" 14 | set completion-highlight-bg "#575268" 15 | set completion-highlight-fg "#d9e0ee" 16 | set completion-group-bg "#302d41" 17 | set completion-group-fg "#96cdfb" 18 | 19 | set statusbar-fg "#d9e0ee" 20 | set statusbar-bg "#302d41" 21 | 22 | set notification-bg "#302d41" 23 | set notification-fg "#d9e0ee" 24 | set notification-error-bg "#302d41" 25 | set notification-error-fg "#f28fad" 26 | set notification-warning-bg "#302d41" 27 | set notification-warning-fg "#fae3b0" 28 | 29 | set inputbar-fg "#d9e0ee" 30 | set inputbar-bg "#302d41" 31 | 32 | set recolor-lightcolor "#1e1d2f" 33 | set recolor-darkcolor "#d9e0ee" 34 | 35 | set index-fg "#d9e0ee" 36 | set index-bg "#1e1d2f" 37 | set index-active-fg "#d9e0ee" 38 | set index-active-bg "#302d41" 39 | 40 | set render-loading-bg "#1e1d2f" 41 | set render-loading-fg "#d9e0ee" 42 | 43 | set highlight-color "#575268" 44 | set highlight-fg "#f5c2e7" 45 | set highlight-active-color "#f5c2e7" 46 | 47 | -------------------------------------------------------------------------------- /.config/conky/conky_date_time.conf: -------------------------------------------------------------------------------- 1 | conky.config = { 2 | 3 | -- Conky -- 4 | 5 | background = true, 6 | update_interval = 1, 7 | total_run_times = 0, 8 | cpu_avg_samples = 4, 9 | net_avg_samples = 2, 10 | override_utf8_locale = true, 11 | double_buffer = true, 12 | no_buffers = true, 13 | imlib_cache_size=0, 14 | text_buffer_size = 256, 15 | 16 | -- Window -- 17 | 18 | own_window = true, 19 | own_window_colour = '00000000', 20 | own_window_class = 'Conky', 21 | own_window_argb_visual = true, 22 | own_window_argb_value = 0, 23 | own_window_type = 'desktop', 24 | own_window_transparent = true, 25 | own_window_hints = 'undecorated,below,sticky,skip_taskbar,skip_pager', 26 | alignment = 'middle_middle', 27 | gap_x = 0, 28 | gap_y = -275, 29 | 30 | -- Graphics -- 31 | 32 | draw_shades = false, 33 | draw_outline = false, 34 | draw_borders = false, 35 | draw_graph_borders = false, 36 | 37 | -- Text -- 38 | 39 | use_xft = true, 40 | xftalpha = 1, 41 | uppercase = true, 42 | pad_percents = 0, 43 | 44 | lua_load = '~/.config/conky/helper.lua' 45 | 46 | }; 47 | 48 | conky.text = [[ 49 | 50 | ${voffset -25}${color D6D6D6}${alignc}${font Anurati:size=50}${lua conky_getweekday}${font}${color} 51 | ${voffset 020}${color D6D6D6}${alignc}${font Quicksand:size=22}${lua conky_getdate}${font}${color} 52 | ${voffset 010}${color D6D6D6}${alignc}${font Quicksand:size=18}${lua conky_gettime}${font}${color} 53 | 54 | ]]; 55 | -------------------------------------------------------------------------------- /.config/alacritty/alacritty.toml: -------------------------------------------------------------------------------- 1 | live_config_reload = true 2 | 3 | [colors] 4 | draw_bold_text_with_bright_colors = true 5 | 6 | [[colors.indexed_colors]] 7 | color = "0xF8BD96" 8 | index = 16 9 | 10 | [[colors.indexed_colors]] 11 | color = "0xF5E0DC" 12 | index = 17 13 | 14 | [colors.bright] 15 | black = "0x988BA2" 16 | blue = "0x96CDFB" 17 | cyan = "0x89DCEB" 18 | green = "0xABE9B3" 19 | magenta = "0xF5C2E7" 20 | red = "0xF28FAD" 21 | white = "0xD9E0EE" 22 | yellow = "0xFAE3B0" 23 | 24 | [colors.cursor] 25 | cursor = "0xF5E0DC" 26 | text = "0x1E1D2F" 27 | 28 | [colors.normal] 29 | black = "0x6E6C7E" 30 | blue = "0x96CDFB" 31 | cyan = "0x89DCEB" 32 | green = "0xABE9B3" 33 | magenta = "0xF5C2E7" 34 | red = "0xF28FAD" 35 | white = "0xD9E0EE" 36 | yellow = "0xFAE3B0" 37 | 38 | [colors.primary] 39 | background = "0x1E1D2F" 40 | foreground = "0xD9E0EE" 41 | 42 | [cursor] 43 | style = "Beam" 44 | unfocused_hollow = false 45 | 46 | [font] 47 | size = 10.0 48 | 49 | [font.bold] 50 | family = "JetBrainsMonoNL Nerd Font Mono" 51 | style = "Bold" 52 | 53 | [font.glyph_offset] 54 | x = 0 55 | y = 0 56 | 57 | [font.italic] 58 | family = "JetBrainsMonoNL Nerd Font Mono" 59 | style = "Light Italic" 60 | 61 | [font.normal] 62 | family = "JetBrainsMonoNL Nerd Font Mono" 63 | style = "Medium" 64 | 65 | [font.offset] 66 | x = 0 67 | y = 0 68 | 69 | [window] 70 | dynamic_padding = true 71 | opacity = 0.8 72 | startup_mode = "Windowed" 73 | 74 | [window.dimensions] 75 | columns = 100 76 | lines = 85 77 | 78 | [window.padding] 79 | x = 26 80 | y = 26 81 | -------------------------------------------------------------------------------- /.config/conky/conky_mpd.conf: -------------------------------------------------------------------------------- 1 | conky.config = { 2 | 3 | -- Conky -- 4 | 5 | background = true, 6 | update_interval = 1, 7 | total_run_times = 0, 8 | cpu_avg_samples = 4, 9 | net_avg_samples = 2, 10 | override_utf8_locale = true, 11 | double_buffer = true, 12 | no_buffers = true, 13 | imlib_cache_size=0, 14 | text_buffer_size = 256, 15 | 16 | -- Window -- 17 | 18 | own_window = true, 19 | own_window_colour = '000000', 20 | own_window_class = 'Conky', 21 | own_window_argb_visual = true, 22 | own_window_argb_value = 60, 23 | own_window_type = 'desktop', 24 | own_window_transparent = false, 25 | own_window_hints = 'undecorated,below,sticky,skip_taskbar,skip_pager', 26 | minimum_width = 750, 27 | maximum_width = 750, 28 | minimum_height = 750, 29 | maximum_height = 750, 30 | alignment = 'top_middle', 31 | gap_x = 0, 32 | gap_y = 150, 33 | 34 | -- Graphics -- 35 | 36 | draw_shades = false, 37 | draw_outline = false, 38 | draw_borders = false, 39 | draw_graph_borders = false, 40 | 41 | -- Text -- 42 | 43 | use_xft = true, 44 | xftalpha = 1, 45 | pad_percents = 0, 46 | 47 | }; 48 | 49 | conky.text = [[ 50 | 51 | ${image /tmp/mpdAlbumArt.jpg -p 250,125 -s 250x250} 52 | 53 | ${voffset 275} 54 | 55 | ${voffset 30}${font KronaOne-Regular:size=20}${alignc}${mpd_title}${font} 56 | ${voffset 10}${font Quicksand:size=16}${alignc}${mpd_album} • ${mpd_artist}${font} 57 | # ${voffset 10}${font Quicksand:size=16}${alignc}${mpd_artist}${font} 58 | # ${voffset 10}${font Quicksand:size=14}${alignc}${mpd_album}${font} 59 | ${voffset 15}${alignc}${mpd_bar 10, 500} 60 | 61 | ]]; 62 | -------------------------------------------------------------------------------- /.config/htop/htoprc: -------------------------------------------------------------------------------- 1 | # Beware! This file is rewritten by htop when settings are changed in the interface. 2 | # The parser is also very primitive, and not human-friendly. 3 | htop_version=3.2.1 4 | config_reader_min_version=3 5 | fields=0 48 17 18 38 39 40 2 46 47 49 1 6 | hide_kernel_threads=1 7 | hide_userland_threads=0 8 | shadow_other_users=0 9 | show_thread_names=0 10 | show_program_path=1 11 | highlight_base_name=0 12 | highlight_deleted_exe=1 13 | highlight_megabytes=1 14 | highlight_threads=1 15 | highlight_changes=0 16 | highlight_changes_delay_secs=5 17 | find_comm_in_cmdline=1 18 | strip_exe_from_cmdline=1 19 | show_merged_command=0 20 | header_margin=1 21 | screen_tabs=1 22 | detailed_cpu_time=0 23 | cpu_count_from_one=0 24 | show_cpu_usage=1 25 | show_cpu_frequency=1 26 | show_cpu_temperature=1 27 | degree_fahrenheit=0 28 | update_process_names=0 29 | account_guest_in_cpu_meter=0 30 | color_scheme=0 31 | enable_mouse=1 32 | delay=15 33 | hide_function_bar=0 34 | header_layout=two_50_50 35 | column_meters_0=AllCPUs Memory Swap DiskIO NetworkIO 36 | column_meter_modes_0=1 1 1 2 2 37 | column_meters_1=Tasks LoadAverage Uptime 38 | column_meter_modes_1=2 2 2 39 | tree_view=1 40 | sort_key=46 41 | tree_sort_key=0 42 | sort_direction=-1 43 | tree_sort_direction=1 44 | tree_view_always_by_pid=0 45 | all_branches_collapsed=0 46 | screen:Main=PID USER PRIORITY NICE M_VIRT M_RESIDENT M_SHARE STATE PERCENT_CPU PERCENT_MEM TIME Command 47 | .sort_key=PERCENT_CPU 48 | .tree_sort_key=PID 49 | .tree_view=1 50 | .tree_view_always_by_pid=0 51 | .sort_direction=-1 52 | .tree_sort_direction=1 53 | .all_branches_collapsed=0 54 | screen:I/O=PID USER IO_PRIORITY IO_RATE IO_READ_RATE IO_WRITE_RATE PERCENT_SWAP_DELAY PERCENT_IO_DELAY Command 55 | .sort_key=IO_WRITE_RATE 56 | .tree_sort_key=PID 57 | .tree_view=0 58 | .tree_view_always_by_pid=0 59 | .sort_direction=-1 60 | .tree_sort_direction=1 61 | .all_branches_collapsed=0 62 | -------------------------------------------------------------------------------- /.bashrc: -------------------------------------------------------------------------------- 1 | # 2 | # ~/.bashrc 3 | # 4 | 5 | export PATH="$HOME/bin:$PATH" 6 | export PATH="$HOME/.local/bin:$PATH" 7 | 8 | # If not running interactively, don't do anything 9 | [[ $- != *i* ]] && return 10 | 11 | # \033[1;36m󰊠 \033[1;32m󰊠 12 | 13 | # PS1='\033[1;34m󰊠 \033[1;31m󰊠\033[0m \W \033[1;33m󰮯\033[0m' 14 | # PS1='\W \033[1;31m󰊠 \033[1;33m󰮯 \033[0m' 15 | # PS1='\W \033[1;31m󰮯 \033[0m' 16 | 17 | PS1='\W $ ' 18 | # PS1='$ ' 19 | 20 | # echo -e "\033[1;33m󰮯 \033[1;32m󰊠 \033[1;34m󰊠 \033[1;31m󰊠 \033[1;36m󰊠\n" 21 | echo -e "You're Awesome :)\n" 22 | 23 | alias c='clear' 24 | alias clear='clear && echo -e "You'\''re Awesome :)\n"' 25 | 26 | alias shut='shutdown now' 27 | alias sx='startx' 28 | alias vol='pamixer --get-volume' 29 | 30 | alias bsconf='vim ~/.config/bspwm/bspwmrc' 31 | alias sxconf='vim ~/.config/sxhkd/sxhkdrc' 32 | alias bconf='vim ~/.bashrc' 33 | 34 | alias cred='echo $(cat ~/Miscellaneous/key) | xclip -selection primary' 35 | 36 | alias gl='git log' 37 | alias gd='git diff' 38 | alias gds='git diff --staged' 39 | alias gs='git status' 40 | alias ga='git add --all' 41 | alias gc='git commit -m' $@ 42 | alias gp='cred && git push' 43 | alias gr='git restore' 44 | alias grs='git restore --staged' 45 | alias gpr='git pull --rebase' 46 | 47 | # cd + ls 48 | cd() { 49 | builtin cd $@ 50 | ls 51 | } 52 | 53 | alias update='backlight -i && sudo pacman -Syu && yay -a -Syu' 54 | 55 | alias wifil='nmcli device wifi list' 56 | alias wific='nmcli device wifi connect $@' 57 | alias wifica='nmcli --ask device wifi connect $@' 58 | 59 | alias pingdns='ping -c 4 1.1.1.1' 60 | alias pingext='ping -c 4 archlinux.org' 61 | 62 | alias hs='history | grep $@' 63 | 64 | alias adb='/home/vishnu/Android/Sdk/platform-tools/adb' 65 | 66 | alias battery='cat /sys/class/power_supply/BAT0/capacity' 67 | 68 | . "$HOME/.cargo/env" 69 | 70 | export KOTLIN_HOME=~/.local/share/JetBrains/IdeaIC2023.2/Kotlin/kotlinc 71 | export PATH=$PATH:$KOTLIN_HOME/bin 72 | -------------------------------------------------------------------------------- /.config/bspwm/bspwmrc: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | MODE=$(cat ~/.screenlayout/mode) 4 | 5 | pgrep -x sxhkd >/dev/null || sxhkd & 6 | 7 | ~/.screenlayout/layout.sh 8 | 9 | killall -q polybar 10 | 11 | if [ $MODE == 1 ] || [ $MODE == 6 ]; then 12 | $HOME/.config/polybar/launch/internal.sh 13 | elif [ $MODE == 3 ]; then 14 | $HOME/.config/polybar/launch/monitor.sh 15 | elif [ $MODE == 5 ]; then 16 | $HOME/.config/polybar/launch/both.sh 17 | fi 18 | 19 | # MPD daemon start (if no other user instance exists) 20 | [ ! -s ~/.config/mpd/pid ] && mpd && mpc pause & 21 | 22 | picom & 23 | dunst & 24 | xbindkeys 25 | 26 | feh --bg-scale ~/Pictures/wallpaper.jpg 27 | 28 | killall conky -q 29 | conky -c ~/.config/conky/conky_date_time.conf & 30 | conky -c ~/.config/conky/conky_mpd.conf & 31 | 32 | if [ $MODE == 0 ] || [ $MODE == 1 ]; then 33 | bspc monitor eDP-1 -d I II III IV V 34 | elif [ $MODE == 2 ] || [ $MODE == 3 ]; then 35 | bspc monitor HDMI-1 -d I II III IV V 36 | elif [ $MODE == 4 ] || [ $MODE == 5 ] || [ $MODE == 6 ]; then 37 | bspc monitor HDMI-1 -d I II III IV V 38 | bspc monitor eDP-1 -d VI VII VIII IX X 39 | fi 40 | 41 | bspc config border_width 0 42 | 43 | bspc config split_ratio 0.50 44 | bspc config borderless_monocle true 45 | bspc config gapless_monocle true 46 | 47 | bspc config bottom_padding 0 48 | 49 | if [ $MODE == 0 ] || [ $MODE == 2 ] || [ $MODE == 4 ]; then 50 | bspc config top_padding 0 51 | bspc config window_gap 4 52 | elif [ $MODE == 1 ] || [ $MODE == 3 ] || [ $MODE == 5 ]; then 53 | bspc config top_padding 60 54 | bspc config window_gap 24 55 | elif [ $MODE == 6 ]; then 56 | bspc config -m eDP-1 top_padding 60 57 | bspc config -m HDMI-1 top_padding 0 58 | 59 | bspc config -m eDP-1 window_gap 24 60 | bspc config -m HDMI-1 window_gap 4 61 | fi 62 | 63 | bspc rule -a Galculator follow=on state=floating 64 | bspc rule -a Terminator state=fullscreen 65 | bspc rule -a Nsxiv state=floating 66 | 67 | xinput set-prop "SYNA32C5:00 06CB:CD50 Touchpad" "libinput Tapping Enabled" 1 68 | xinput set-prop "SYNA32C5:00 06CB:CD50 Touchpad" "libinput Natural Scrolling Enabled" 1 69 | -------------------------------------------------------------------------------- /.config/rofi/themes/mocha.rasi: -------------------------------------------------------------------------------- 1 | * { 2 | bg-col: #303446; 3 | bg-col-light: #303446; 4 | border-col: #303446; 5 | selected-col: #303446; 6 | blue: #8caaee; 7 | fg-col: #c6d0f5; 8 | fg-col2: #e78284; 9 | grey: #737994; 10 | 11 | width: 600; 12 | font: "JetBrainsMono Nerd Font 14"; 13 | } 14 | 15 | element-text, element-icon , mode-switcher { 16 | background-color: inherit; 17 | text-color: inherit; 18 | } 19 | 20 | window { 21 | height: 360px; 22 | border: 3px; 23 | border-color: @border-col; 24 | background-color: @bg-col; 25 | } 26 | 27 | mainbox { 28 | background-color: @bg-col; 29 | } 30 | 31 | inputbar { 32 | children: [prompt,entry]; 33 | background-color: @bg-col; 34 | border-radius: 5px; 35 | padding: 2px; 36 | } 37 | 38 | prompt { 39 | background-color: @blue; 40 | padding: 6px; 41 | text-color: @bg-col; 42 | border-radius: 3px; 43 | margin: 20px 0px 0px 20px; 44 | } 45 | 46 | textbox-prompt-colon { 47 | expand: false; 48 | str: ":"; 49 | } 50 | 51 | entry { 52 | padding: 6px; 53 | margin: 20px 0px 0px 10px; 54 | text-color: @fg-col; 55 | background-color: @bg-col; 56 | } 57 | 58 | listview { 59 | border: 0px 0px 0px; 60 | padding: 6px 0px 0px; 61 | margin: 10px 0px 0px 20px; 62 | columns: 2; 63 | lines: 5; 64 | background-color: @bg-col; 65 | } 66 | 67 | element { 68 | padding: 5px; 69 | background-color: @bg-col; 70 | text-color: @fg-col ; 71 | } 72 | 73 | element-icon { 74 | size: 25px; 75 | } 76 | 77 | element selected { 78 | background-color: @selected-col ; 79 | text-color: @fg-col2 ; 80 | } 81 | 82 | mode-switcher { 83 | spacing: 0; 84 | } 85 | 86 | button { 87 | padding: 10px; 88 | background-color: @bg-col-light; 89 | text-color: @grey; 90 | vertical-align: 0.5; 91 | horizontal-align: 0.5; 92 | } 93 | 94 | button selected { 95 | background-color: @bg-col; 96 | text-color: @blue; 97 | } 98 | 99 | message { 100 | background-color: @bg-col-light; 101 | margin: 2px; 102 | padding: 2px; 103 | border-radius: 5px; 104 | } 105 | 106 | textbox { 107 | padding: 6px; 108 | margin: 20px 0px 0px 20px; 109 | text-color: @blue; 110 | background-color: @bg-col-light; 111 | } 112 | -------------------------------------------------------------------------------- /bin/sysfetch: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Author: https://github.com/AlphaTechnolog 3 | 4 | clear 5 | 6 | user="${USER}" 7 | shell="$(basename ${SHELL})" 8 | distro=$(. /etc/os-release ; echo "$ID") 9 | wm="$(xprop -id $(xprop -root -notype | awk '$1=="_NET_SUPPORTING_WM_CHECK:"{print $5}') -notype -f _NET_WM_NAME 8t | grep "WM_NAME" | cut -f2 -d \")" 10 | kernel="$(uname -r | cut -d '-' -f1)" 11 | ram="$(free -t | awk 'NR == 2 {printf("%.2f%"), $3/$2*100}')" 12 | 13 | white='\033[37m' 14 | cyan='\033[36m' 15 | blue='\033[34m' 16 | blue='\033[36m' 17 | yellow='\033[33m' 18 | green='\033[32m' 19 | magenta='\033[35m' 20 | red='\033[31m' 21 | bold='\033[1m' 22 | end='\033[0m' 23 | 24 | len () { 25 | echo $@ | wc -c 26 | } 27 | 28 | repeat_by_len () { 29 | local str=$1 30 | local char=$2 31 | local len=$(len $str) 32 | local i=1 33 | 34 | while [[ $i -lt $len ]]; do 35 | printf "$char" 36 | i=$(expr $i + 1) 37 | done 38 | } 39 | 40 | if [[ $distro == 'void' || $distro == 'Void' ]]; then 41 | printf '%b' " 42 | ${bold}${green} ▄▄▄▄▄▄ ${end}${bold}${blue}${user}${cyan}@${magenta}$(cat /etc/hostname)${end} 43 | ${bold}${green}${cyan} ▄${green} ▀███████▄ ${end}${green}$(repeat_by_len "${user}@$(cat /etc/hostname)" "─") 44 | ${bold}${green}${cyan}███${white} ▄▄▄${green} ▀███ ${end} 45 | ${bold}${green}${cyan}███${white} █████${green} ███ ${end}${bold}${green}os ${green}  ${magenta}${green}${distro}${end} 46 | ${bold}${green}${cyan}███${white} ▀███▀${green} ███ ${end}${bold}${yellow}sh ${green}  ${magenta}${blue}${shell}${end} 47 | ${bold}${green}${cyan}████▄▄▄▄▄${green} ▀██ ${end}${bold}${magenta}wm ${green}  ${magenta}${yellow}${wm}${end} 48 | ${bold}${green}${cyan} ▀███████▀ ${end}${bold}${blue}ram ${green} ${magenta}${green}${ram}${end} 49 | 50 | " 51 | else 52 | printf '%b' " 53 | ${bold}${blue} ██ ${end}${bold}${blue}${user}${cyan}@${purple}$(cat /etc/hostname)${end} 54 | ${bold}${blue} ████ ${end}${green}$(repeat_by_len "${user}@$(cat /etc/hostname)" "─") 55 | ${bold}${blue} ▀████ ${end} 56 | ${bold}${blue} ██▄ ████ ${end}${bold}${purple} ${blue}os ${green}  ${magenta}${cyan}${distro}${end} 57 | ${bold}${blue} ██████████ ${end}${bold}${purple}  ${blue}sh ${green}  ${magenta}${cyan}${shell}${end} 58 | ${bold}${blue} ████▀ ▀████ ${end}${bold}${purple} ${blue}wm ${green}  ${magenta}${cyan}${wm}${end} 59 | ${bold}${blue} ████▀ ▀████ ${end}${bold}${purple} ${blue}kr ${green}  ${magenta}${cyan}${kernel}${end} 60 | ${bold}${blue}▀▀▀ ▀▀▀ ${end}${bold}${purple} ${blue}ram ${green} ${magenta}${cyan}${ram}${end} 61 | 62 | " 63 | fi 64 | -------------------------------------------------------------------------------- /bin/backlight: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # function definitions 4 | 5 | FILE="/sys/class/backlight/intel_backlight/brightness" 6 | 7 | print_exit() { 8 | 9 | NEW=$(cat "$FILE") 10 | MAX=$(cat '/sys/class/backlight/intel_backlight/max_brightness') 11 | 12 | echo "Missing parameter(s)" 13 | echo "Internal: "$(($NEW * 100 / $MAX))"%" 14 | echo "Monitor : "$(ddcutil getvcp 10 | tail -n 1 | cut -d '=' -f 2 | cut -d ',' -f 1 | xargs)"%" 15 | exit 16 | } 17 | 18 | # initialize 19 | if [ $# == 1 ] && ([ $1 == '-init' ] || [ $1 == '-i' ]); then 20 | 21 | sudo chmod a+rw $FILE 22 | sudo modprobe i2c-dev 23 | echo 'Done' 24 | 25 | exit 26 | fi 27 | 28 | # auto initialize: 29 | # create a file /etc/systemd/system/display-backlight-file-chown-service.service with the following content 30 | # and start the service with `sudo systemctl enable display-backlight-file-chown-service` 31 | 32 | # [Unit] 33 | # Description=Sets chown to the internal display backlight file 34 | # Before=nodered.service 35 | 36 | # [Service] 37 | # Type=oneshot 38 | # User=root 39 | # ExecStart=/bin/bash -c "/bin/chmod a+rw /sys/class/backlight/intel_backlight/brightness" 40 | 41 | # [Install] 42 | # WantedBy=multi-user.target 43 | 44 | # internal display 45 | if [ $# == 2 ] && ([ $1 == '-inc' ] || [ $1 == '-i' ] || [ $1 == '-dec' ] || [ $1 == '-d' ]); then 46 | 47 | MIN=0 48 | MAX=$(cat '/sys/class/backlight/intel_backlight/max_brightness') 49 | 50 | CURRENT=$(cat "$FILE") 51 | 52 | DELTA=$(($2 * $MAX / 100)) 53 | 54 | if [ $1 == '-inc' ] || [ $1 == '-i' ]; then 55 | NEW=$(($CURRENT + $DELTA)) 56 | elif [ $1 == '-dec' ] || [ $1 == '-d' ]; then 57 | NEW=$(($CURRENT - $DELTA)) 58 | fi 59 | 60 | if [ $NEW -gt $MAX ]; then 61 | NEW=$MAX 62 | elif [ $NEW -lt $MIN ]; then 63 | NEW=$MIN 64 | fi 65 | 66 | echo $NEW >"$FILE" 67 | 68 | exit 69 | fi 70 | 71 | # external monitor 72 | if [ $# -ge 2 ] && ([ $1 == '-monitor' ] || [ $1 == '-m' ] || [ $2 == '-dec' ] || [ $2 == '-d' ] || [ $2 == '-inc' ] || [ $2 == '-i' ]); then 73 | 74 | CURRENT=$(ddcutil getvcp 10 | tail -n 1 | cut -d '=' -f 2 | cut -d ',' -f 1 | xargs) 75 | 76 | if [ ! "$3" ]; then 77 | DELTA=10 78 | else 79 | DELTA=$3 80 | fi 81 | 82 | if [ $2 == '-inc' ] || [ $2 == '-i' ]; then 83 | NEW=$(($CURRENT + $DELTA)) 84 | elif [ $2 == '-dec' ] || [ $2 == '-d' ]; then 85 | NEW=$(($CURRENT - $DELTA)) 86 | fi 87 | 88 | if [ $NEW -gt 100 ]; then 89 | NEW=100 90 | elif [ $NEW -lt 0 ]; then 91 | NEW=0 92 | fi 93 | 94 | ddcutil setvcp 10 $NEW &>/dev/null & 95 | 96 | exit 97 | fi 98 | 99 | # not enough params, print & exit 100 | print_exit -------------------------------------------------------------------------------- /.config/sxhkd/sxhkdrc: -------------------------------------------------------------------------------- 1 | # 2 | # wm independent hotkeys 3 | # 4 | 5 | # terminal emulator 6 | super + Return 7 | alacritty 8 | 9 | # program launcher 10 | super + @space 11 | rofi -show 12 | # dmenu_run -p "You're Awesome :)" 13 | 14 | # brave 15 | super + x 16 | brave 17 | 18 | # nautilus 19 | super + e 20 | pcmanfm 21 | 22 | # telegram 23 | super + c 24 | telegram-desktop 25 | 26 | # clipmenu 27 | super + v 28 | clipmenu 29 | 30 | # discord 31 | super + a 32 | discord 33 | 34 | # discord 35 | super + g 36 | galculator 37 | 38 | # flameshot 39 | Print 40 | flameshot gui 41 | 42 | super + shift + p 43 | pavucontrol 44 | 45 | super + shift + d 46 | dosbox 47 | 48 | super + shift + w 49 | /opt/brave-bin/brave --profile-directory=Default --app-id=hnpfjngllnobngcgfapefoaidbinmjnm 50 | 51 | super + shift + t 52 | terminator 53 | 54 | super + alt + b 55 | notify-send "Battery: $(cat /sys/class/power_supply/BAT0/capacity)%" 56 | 57 | super + alt + v 58 | notify-send "Volume: $(pamixer --get-volume)%" 59 | 60 | super + alt + d 61 | notify-send "$(date +%H:%M:%S)" 62 | 63 | super + alt + m 64 | notify-send "$(mpc | head -n 2)" 65 | 66 | # make sxhkd reload its configuration files: 67 | super + Escape 68 | pkill -USR1 -x sxhkd 69 | 70 | # 71 | # bspwm hotkeys 72 | # 73 | 74 | # quit/restart bspwm 75 | super + alt + {q,r} 76 | bspc {quit,wm -r} 77 | 78 | # close and kill 79 | super + {_,shift + }w 80 | bspc node -{c,k} 81 | 82 | # alternate between the tiled and monocle layout 83 | super + m 84 | bspc desktop -l next 85 | 86 | # send the newest marked node to the newest preselected node 87 | super + y 88 | bspc node newest.marked.local -n newest.!automatic.local 89 | 90 | # swap the current node and the biggest window 91 | super + g 92 | bspc node -s biggest.window 93 | 94 | # 95 | # state/flags 96 | # 97 | 98 | # set the window state 99 | super + {t,shift + t,s,f} 100 | bspc node -t {tiled,pseudo_tiled,floating,fullscreen} 101 | 102 | # set the node flags 103 | super + ctrl + {m,x,y,z} 104 | bspc node -g {marked,locked,sticky,private} 105 | 106 | # 107 | # focus/swap 108 | # 109 | 110 | # focus the node in the given direction 111 | super + {_,shift + }{h,j,k,l} 112 | bspc node -{f,s} {west,south,north,east} 113 | 114 | # focus the node for the given path jump 115 | super + {p,b,comma,period} 116 | bspc node -f @{parent,brother,first,second} 117 | 118 | # focus the next/previous window in the current desktop 119 | super + {_,shift + }d 120 | bspc node -f {next,prev}.local.!hidden.window 121 | 122 | # focus the next/previous desktop in the current monitor 123 | super + bracket{left,right} 124 | bspc desktop -f {prev,next}.local 125 | 126 | # cycle through workspaces 127 | super + grave 128 | bspc desktop -f next.occupied.local 129 | 130 | # cycle through workspaces 131 | ctrl + super + grave 132 | bspc desktop -f next.occupied 133 | 134 | # focus the last desktop 135 | super + Tab 136 | bspc desktop -f last 137 | 138 | # focus the older or newer node in the focus history 139 | super + {o,i} 140 | bspc wm -h off; \ 141 | bspc node {older,newer} -f; \ 142 | bspc wm -h on 143 | 144 | # focus or send to the given desktop 145 | super + {_,shift + }{1-9,0} 146 | bspc {desktop -f,node -d} '^{1-9,10}' 147 | 148 | # 149 | # preselect 150 | # 151 | 152 | # preselect the direction 153 | super + ctrl + {h,j,k,l} 154 | bspc node -p {west,south,north,east} 155 | 156 | # preselect the ratio 157 | super + ctrl + {1-9} 158 | bspc node -o 0.{1-9} 159 | 160 | # cancel the preselection for the focused node 161 | super + ctrl + space 162 | bspc node -p cancel 163 | 164 | # cancel the preselection for the focused desktop 165 | super + ctrl + shift + space 166 | bspc query -N -d | xargs -I id -n 1 bspc node id -p cancel 167 | 168 | # 169 | # move/resize 170 | # 171 | 172 | # expand a window by moving one of its side outward 173 | super + alt + {h,j,k,l} 174 | bspc node -z {left -20 0,bottom 0 20,top 0 -20,right 20 0} 175 | 176 | # contract a window by moving one of its side inward 177 | super + alt + shift + {h,j,k,l} 178 | bspc node -z {right -20 0,top 0 20,bottom 0 -20,left 20 0} 179 | 180 | # move a floating window 181 | super + {Left,Down,Up,Right} 182 | bspc node -v {-20 0,0 20,0 -20,20 0} 183 | 184 | # volume 185 | XF86AudioLowerVolume 186 | pamixer -d 5 --allow-boost 187 | XF86AudioRaiseVolume 188 | pamixer -i 5 --allow-boost 189 | XF86AudioMute 190 | pamixer -t 191 | XF86AudioPlay 192 | mpc toggle 193 | XF86AudioPrev 194 | mpc prev 195 | XF86AudioNext 196 | mpc next 197 | XF86MonBrightnessUp 198 | backlight -inc 10 199 | XF86MonBrightnessDown 200 | backlight -dec 10 201 | -------------------------------------------------------------------------------- /.config/polybar/modules.ini: -------------------------------------------------------------------------------- 1 | ;;;;;;;; 2 | ; LEFT ; 3 | ;;;;;;;; 4 | 5 | [module/bspwm] 6 | type = internal/bspwm 7 | 8 | format = 9 | format-background = ${colors.background-new} 10 | ; format-padding = 2 11 | 12 | ws-icon-default =  13 | 14 | label-occupied =  15 | label-occupied-foreground = ${colors.foreground} 16 | label-occupied-padding = 1 17 | 18 | label-empty =  19 | label-empty-foreground = ${colors.foreground-light} 20 | label-empty-padding = 1 21 | 22 | label-active =  23 | label-active-foreground = ${colors.foreground} 24 | label-active-padding = 1 25 | 26 | ;;;;;;;;;; 27 | ; CENTER ; 28 | ;;;;;;;;;; 29 | 30 | [module/text] 31 | type = custom/text 32 | content = "You're Awesome :)" 33 | content-background = ${colors.background-new} 34 | content-padding = 2 35 | 36 | [module/time] 37 | type = internal/date 38 | interval = 30 39 | 40 | ; time = "@%H:%M" 41 | time = "@%H:%M :: %d:%m:%Y" 42 | 43 | label = %time% 44 | 45 | format =