diff options
| author | littleblack111 <littleblack11111@gmail.com> | 2024-06-03 19:56:39 +0800 |
|---|---|---|
| committer | littleblack111 <littleblack11111@gmail.com> | 2024-06-03 19:56:39 +0800 |
| commit | ca968c4e5040f1ff4b5b5e12d9312360d807dcc1 (patch) | |
| tree | 9900920e8f566794560c1519678e344351d2803b /dot-config/bspwm | |
| parent | 5f3deaff0bf006a1a353e57b82ad48c0e8f143bc (diff) | |
added submodules, change . -> dot (see man stow --dotfiles)
Diffstat (limited to 'dot-config/bspwm')
260 files changed, 44793 insertions, 0 deletions
diff --git a/dot-config/bspwm/alacritty/alacritty.yml b/dot-config/bspwm/alacritty/alacritty.yml new file mode 100644 index 00000000..a19b5f66 --- /dev/null +++ b/dot-config/bspwm/alacritty/alacritty.yml @@ -0,0 +1,51 @@ +## Configuration for Alacritty, the GPU enhanced terminal emulator. +## It's a very basic and simple config file, for full configuration... +## See, /usr/share/doc/alacritty/example/alacritty.yml + +## Import files (Colors, Fonts, Etc) +import: + - ~/.config/bspwm/alacritty/colors.yml + - ~/.config/bspwm/alacritty/fonts.yml + +## Set environment variables +env: + TERM: alacritty + WINIT_X11_SCALE_FACTOR: '1.0' + +## Terminal window settings +window: + dimensions: + columns: 82 + lines: 23 + + padding: + x: 10 + y: 10 + + decorations: full + startup_mode: Windowed + dynamic_title: true + +## scrolling + history: 10000 + multiplier: 3 + +## Background opacity + opacity: 0.85 + +## Cursor +cursor: + style: + shape: Block + blinking: On + + unfocused_hollow: false + +## Live config reload +live_config_reload: true + +## Shell +#shell: +# program: /bin/zsh +# args: +# - --login diff --git a/dot-config/bspwm/alacritty/colors.yml b/dot-config/bspwm/alacritty/colors.yml new file mode 100644 index 00000000..38228eef --- /dev/null +++ b/dot-config/bspwm/alacritty/colors.yml @@ -0,0 +1,28 @@ +## Colors configuration +colors: + # Default colors + primary: + background: '#2E3440' + foreground: '#D8DEE9' + + # Normal colors + normal: + black: '#3B4252' + red: '#BF616A' + green: '#A3BE8C' + yellow: '#EBCB8B' + blue: '#81A1C1' + magenta: '#B48EAD' + cyan: '#88C0D0' + white: '#E5E9F0' + + # Bright colors + bright: + black: '#4C566A' + red: '#BF616A' + green: '#A3BE8C' + yellow: '#EBCB8B' + blue: '#81A1C1' + magenta: '#B48EAD' + cyan: '#8FBCBB' + white: '#ECEFF4' diff --git a/dot-config/bspwm/alacritty/fonts.yml b/dot-config/bspwm/alacritty/fonts.yml new file mode 100644 index 00000000..5eb638b5 --- /dev/null +++ b/dot-config/bspwm/alacritty/fonts.yml @@ -0,0 +1,37 @@ +## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> +## +## Font configuration + +font: + # Normal (roman) font face + normal: + family: "JetBrainsMono Nerd Font" + #style: Regular + + # Bold font face + bold: + family: "JetBrainsMono Nerd Font" + #style: Bold + + # Italic font face + italic: + family: "JetBrainsMono Nerd Font" + #style: Italic + + # Bold italic font face + bold_italic: + family: "JetBrainsMono Nerd Font" + #style: Bold Italic + + # Point size + size: 10 + + # Offset + #offset: + # x: 0 + # y: 0 + + # Glyph offset + #glyph_offset: + # x: 0 + # y: 0 diff --git a/dot-config/bspwm/bspwmrc b/dot-config/bspwm/bspwmrc new file mode 100755 index 00000000..169daa27 --- /dev/null +++ b/dot-config/bspwm/bspwmrc @@ -0,0 +1,308 @@ +#!/usr/bin/env bash + +## BSPWM config file for Arch + +## General ---------------------------------------------------# + +## Bspwm config directory +BSPDIR="$HOME/.config/bspwm" +ROFIDIR="$HOME/.config/rofi" +POLYBARDIR="$HOME/.config/polybar" +SCRIPTSDIR="$HOME/scripts" + +## Export bspwm/bin dir to PATH +export PATH="${PATH}:$BSPDIR/scripts:$ROFIDIR/scripts:$POLYBARDIR/scripts:$SCRIPTSDIR" + +## Run java applications without issues +export _JAVA_AWT_WM_NONREPARENTING=1 +#wmname LG3D +## Current theme ---------------------------------------------# + +## Bspwm colors +BSPWM_FBC='#81A1C1' +BSPWM_NBC='#2E3440' +BSPWM_ABC='#B48EAD' +BSPWM_PFC='#A3BE8C' + +## Bspwm appearance +BSPWM_BORDER='1' +BSPWM_GAP='10' +BSPWM_SRATIO='0.50' + +## Configurations --------------------------------------------# + +## Manager Workspaces +workspaces() { + name=1 + for monitor in `bspc query -M`; do + #bspc monitor ${monitor} -n "$name" -d '1' '2' '3' '4' '5' '6' '7' '8' '9' '10' + #bspc monitor ${monitor} -n "$name" -d 'A' 'B' 'C' 'D' 'E' 'F' 'G' 'H' 'I' 'J' + #bspc monitor ${monitor} -n "$name" -d 'I' 'II' 'III' 'IV' 'V' 'VI' 'VII' 'VIII' 'IIX' 'X' + bspc monitor ${monitor} -n "$name" -d '' '' '' '' '' '' '' '' '' ' ' + let name++ + done +} +workspaces + +## Apply bspwm configurations +bspc config border_width "$BSPWM_BORDER" +bspc config window_gap "$BSPWM_GAP" +bspc config split_ratio "$BSPWM_SRATIO" + +bspc config focused_border_color "$BSPWM_FBC" +bspc config normal_border_color "$BSPWM_NBC" +bspc config active_border_color "$BSPWM_ABC" +bspc config presel_feedback_color "$BSPWM_PFC" + +bspc config borderless_monocle true +bspc config gapless_monocle true +bspc config paddingless_monocle true +bspc config single_monocle false +bspc config focus_follows_pointer true +bspc config presel_feedback true + +## Manage all the unmanaged windows remaining from a previous session. +bspc wm --adopt-orphans + +## Window rules ----------------------------------------------# + +# remove all rules first +bspc rule -r *:* + +# already have a top_padding(does the same) to avoid polybar overlap window +#bspc rule -a polybar private + +## 1 > terminal (always open terminal on workspace-1) +bspc rule -a Alacritty desktop='^1' follow=on focus=on +bspc rule -a Xfce4-terminal desktop='^1' follow=on focus=on + +## 2 > web (always open web browser on workspace-2) +bspc rule -a firefox desktop='^2' follow=on focus=on +bspc rule -a chromium desktop='^2' follow=on focus=on +bspc rule -a Brave-browser desktop='^2' follow=on focus=on +bspc rule -a Thorium-browser desktop='^2' follow=on focus=on + +## 3 > files (always open file manager on workspace-3) +declare -a files=(Pcmanfm Thunar qBittorrent Caja) +for i in ${files[@]}; do + bspc rule -a $i desktop='^3' follow=on focus=on; done + +## 4 > code (always open editors on workspace-4) +declare -a code=(Geany code-oss 'code - oss' 'Code - OSS' code Code install4j-burp-StartBurp burp-StartBurp unityhub Unity jetbrains-pycharm-ce) +for i in ${code[@]}; do + bspc rule -a $i desktop='^4' follow=on focus=on; done + +## 5 > office and docs (always open office/doc apps on workspace-5) +declare -a office=(Gucharmap Atril Evince libreoffice-writer libreoffice-calc libreoffice-impress libreoffice-startcenter libreoffice Soffice *:libreofficedev *:soffice craft-nativefier-e0958b powerphrasingtool-nativefier-c8a789 Typora obsidian figma-linux anytype) +for i in ${office[@]}; do + bspc rule -a $i desktop='^5' follow=on focus=on; done + +## 6 > communication (always open communication apps on workspace-6) +declare -a comm=(Thunderbird TelegramDesktop Hexchat discord vesktop beeper Beeper VencordDesktop Chat-gpt Blender blender Whatsapp-for-linux Chatbox) +for i in ${comm[@]}; do + bspc rule -a $i desktop='^6' follow=on focus=on; done + +## 7 > media/video (always open media/video apps on workspace-7) +declare -a media=(Audacity Music MPlayer Lxmusic Inkscape gimp-2.10 Gimp-2.10 Gimp obs zoom Zoom Pitivi kdenlive openshot vlc Spotify "Spotify Premium" cider Cider shotwell Shotwell) +for i in ${media[@]}; do + bspc rule -a $i desktop='^7' state=tiled follow=on focus=on; done # floating + +## 8 > games (always open games on workspace-8) +declare -a game=(Minecraft Minecraft:* badlion Badlion Launcher launcher War war "War Thunder (Vulkan, 64bit)" Minecraft* 1.19.3 Steam steam_proton csgo_linux64 "minecraft-launcher" "Minecraft Launcher" 'Minecraft* 1.19.3' Blueman-manager "Minecraft Launcher" lunarclient "Lunar Client":* retroarch "Minecraft Launcher") +for i in ${game[@]}; do + bspc rule -a $i desktop='^8' state=floating follow=off focus=off; done + +## 9 > system (always open system apps on workspace-9) +bspc rule -a 'Virt-manager' desktop='^9' follow=on focus=on +bspc rule -a 'blueman-adapters' desktop='^9' follow=on focus=on +bspc rule -a GParted desktop='^9' follow=on focus=on +bspc rule -a 'Xdm-app'='^9' follow=on focus=on +bspc rule -a timeshift-gtk='^9' follow=on focus=on +bspc rule -a Timeshift-gtk='^9' follow=on focus=on +bspc rule -a nextcloud='^9' follow=on focus=on +bspc rule -a Nextcloud='^9' follow=on focus=on +bspc rule -a gearlever='^9' follow=on focus=on +bspc rule -a com.github.tchx84.Flatseal='^9' follow=on focus=on +declare -a settings=(Lxappearance Lxtask Lxrandr Arandr System-config-printer.py Pavucontrol Exo-helper-1 Protonvpn Xfce4-power-manager-settings Mysql-workbench-bin Grub-customizer Nitrogen archlinux-tweak-tool.py Archlinux-tweak-tool.py pamac-manager helvum Vmware "Btrfs Assistant" Bitwarden) +for i in ${settings[@]}; do + bspc rule -a $i desktop='^9' state=floating follow=on focus=on; done + +## misc/ghost/random/placeholder (always open those apps/placeholders on workspace-10) +declare -a misc=(maxautoclicker Maxautoclicker os_server Os_server) +for i in ${misc[@]}; do + bspc rule -a $i desktop='^10' state=floating follow=off focus=false; done + +## Always Floating Apps +declare -a floating=(alacritty-float Pcmanfm Onboard Yad zoom Xdm-app exe wechat WeChat sxiv Sxiv 'Firefox:Places' Viewnior feh Nm-connection-editor install4j-burp-StartBurp) +for i in ${floating[@]}; do + bspc rule -a $i state=floating follow=on focus=on; done + +bspc rule -a Conky state=floating manage=off +bspc rule -a stalonetray state=floating manage=off +#bspc config pointer_action1 none + +## Autostart -------------------------------------------------# + +# Kill if already running +killall -9 xsettingsd sxhkd dunst ksuperkey xfce4-power-manager bspc runtransani.sh cleanfullscreen #rrunbgblur.sh # launching with conditions .feh backgroundblur chat-server mpd-mpris xbindkeys landdrop +killall -15 idle.sh # reflector.sh +#eww kill + +# Start bspwm scripts +$HOME/scripts/polybar-temp-autofix.sh & +bspbar & +#bspcomp & +# for better animation(make higher pri(nice)) +# need /etc/sudoers to `Defaults env_keep += "HOME"` be setted +sudo nice -n -20 sudo -u $USER bspcomp & # nah, i don t think it affects it lmao +bspcomp & +bspdunst & +bspfloat & + +# Lauch xsettingsd daemon +xsettingsd --config=$HOME/.config/xsettingsd & +# xbindkeys & # no longer used, using sxhkdrc + +# auth daemon(gnome) +/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 & + +# kdeconnect +/usr/lib/kdeconnectd & + +# Launcher xdm daemon +#xdman -d & + +# polkit agent +#if [[ ! `pidof xfce-polkit` ]]; then + #/usr/lib/xfce-polkit/xfce-polkit & +#fi + +# Lauch keybindings daemon +sxhkd -c "$BSPDIR"/sxhkdrc & + +# Enable Super Keys For Menu +ksuperkey -e 'Super_L=Alt_L|F1' & +ksuperkey -e 'Super_R=Alt_L|F1' & + +xrdb -merge ~/.Xresources + +# Enable power management +xfce4-power-manager & + +# Fix cursor +# xsetroot -cursor_name left_ptr + +# Restore wallpaper +#exec $HOME/.feh & +# ========= # +# if i don't use .feh first, there will be a few second it's blanked out so I have to do a feh background first and then the wallblur one. +# ========= # +# better wallpaper manager wallblur +exec $HOME/scripts/runtransani.sh & # https://github.com/nemanjan00/i3wm/raw/master/wallpaper.sh can replace after picom support blur(transition animation(blur)) + +# Start mpd +# exec mpd & +# exec mpd-mpris & + +# start fcitx +exec fcitx -d & + +# enable numlock +numlockx & +#sudo numlock +#for tty in /dev/tty{1..6}; do +# /usr/bin/setleds -D +num < "$tty"; +#done +# configured in as a service unit + +# start clipboard daemon +exec clipmenud & + +# youtube-dl extention daemon +#exec youtube-dl-server --number-processes 1 & # dont really use it now so ya + +# autostart script +exec $HOME/scripts/autostart & + +# swallow +#pgrep bspswallow || bspswallow & # tODO: FIX THE THING + +# clean full screen +cleanfullscreen & + +# autolock +#xautolock -time 30 -locker "betterlockscreen -l" & # don't really need/want that + +# so animation is not cached(idk why restarting picom make it not laggy) +#xautolock -time 1 -locker "exec $HOME/scripts/resbspcomp.sh" & + +# kill not needed +#killall java + +# idle stuff +$HOME/scripts/idle.sh -d & +# 1. autoupdate +#exec $HOME/scripts/auto-update.sh & # replaced with systemd units # moved into idle.sh + +#update & +yay -Sl > /tmp/yaySl & +yay -Ss > /tmp/yaySs & + + +# startup sound +#$HOME/scripts/startupsound.sh & # exist in user systemd unit + + +# vencord +/usr/bin/ps ax | grep -v grep | grep vencord > /dev/null || discord --start-minimized & + +# beeper +/usr/bin/ps ax | grep -v grep | grep beeper > /dev/null || $HOME/AppImages/gearlever_beeper_60246c.appimage & + +# nextcloud +nextcloud --background & + +# wifi share +# script -c "sudo -E openwifipass -s Jhome-Guest -k 12345677Jj" $HOME/scripts/logs/openwifipass.log & +# exec $HOME/scripts/runsharewifi.sh & + + +# autoclicker +# now in $HOME/scripts/bin/autoclicker +#/usr/bin/ps ax | grep -v grep | grep maxautoclicker > /dev/null || kdocker maxautoclicker & + +# polybar no overlap +bspc config top_padding 46 + +# secret chat-server +#$HOME/scripts/bin/chat-server & + +# just incase auto start application move to other desktops +# prevent restarting bspwm from doing that +#bspc desktop -f ^1 + + +# remove startup lock +if [ -f /var/lock/startup.lock ]; then + # startup sound + $HOME/scripts/startupsound.sh & + # auto startup apps + $HOME/scripts/startapp & + spid=$! + # go back first desktop(last) + wait $spid + bspc desktop -f "^1" + # clean-up (last) + sudo /sbin/rm -f /var/lock/startup.lock +fi + +# sys tray wait(timeout) +# sleep 10 +# connection with other computers(universal control) +while ! systemctl is-active network.target; do + sleep 1 +done +/usr/bin/ps ax | grep -v grep | grep barrier || barrier & +# /usr/bin/ps ax | grep -v grep | grep blueman-applet || blueman-applet & +# /usr/bin/ps ax | grep -v grep | grep nm-applet || nm-applet & +/usr/bin/ps ax | grep -v grep | grep memento-bg || memento-bg <<< 1 & diff --git a/dot-config/bspwm/bspwmrc.bak b/dot-config/bspwm/bspwmrc.bak new file mode 100755 index 00000000..add75b6e --- /dev/null +++ b/dot-config/bspwm/bspwmrc.bak @@ -0,0 +1,190 @@ +#!/usr/bin/env bash + +## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> +## +## BSPWM config file for Archcraft + +## General ---------------------------------------------------# + +## Bspwm config directory +BSPDIR="$HOME/.config/bspwm" + +## Export bspwm/bin dir to PATH +export PATH="${PATH}:$BSPDIR/scripts" + +## Run java applications without issues +export _JAVA_AWT_WM_NONREPARENTING=1 +#wmname LG3D + +## Current theme ---------------------------------------------# + +## Bspwm colors +BSPWM_FBC='#81A1C1' +BSPWM_NBC='#2E3440' +BSPWM_ABC='#B48EAD' +BSPWM_PFC='#A3BE8C' + +## Bspwm appearance +BSPWM_BORDER='1' +BSPWM_GAP='10' +BSPWM_SRATIO='0.50' + +## Configurations --------------------------------------------# + +## Manager Workspaces +workspaces() { + name=1 + for monitor in `bspc query -M`; do + #bspc monitor ${monitor} -n "$name" -d '1' '2' '3' '4' '5' '6' '7' '8' + #bspc monitor ${monitor} -n "$name" -d 'A' 'B' 'C' 'D' 'E' 'F' 'G' 'H' + #bspc monitor ${monitor} -n "$name" -d 'I' 'II' 'III' 'IV' 'V' 'VI' 'VII' 'VIII' + bspc monitor ${monitor} -n "$name" -d '' '' '' '' '' '' '' '' + let name++ + done +} +workspaces + +## Apply bspwm configurations +bspc config border_width "$BSPWM_BORDER" +bspc config window_gap "$BSPWM_GAP" +bspc config split_ratio "$BSPWM_SRATIO" + +bspc config focused_border_color "$BSPWM_FBC" +bspc config normal_border_color "$BSPWM_NBC" +bspc config active_border_color "$BSPWM_ABC" +bspc config presel_feedback_color "$BSPWM_PFC" + +bspc config borderless_monocle true +bspc config gapless_monocle true +bspc config paddingless_monocle true +bspc config single_monocle false +bspc config focus_follows_pointer true +bspc config presel_feedback true + +## Manage all the unmanaged windows remaining from a previous session. +bspc wm --adopt-orphans + +## Window rules ----------------------------------------------# + +# remove all rules first +bspc rule -r *:* + +## 1 > terminal (always open terminal on workspace-1) +bspc rule -a Alacritty desktop='^1' follow=on focus=on +bspc rule -a Xfce4-terminal desktop='^1' follow=on focus=on + +## 2 > web (always open web browser on workspace-2) +bspc rule -a firefox desktop='^2' follow=on focus=on +bspc rule -a chromium desktop='^2' follow=on focus=on +bspc rule -a Brave-browser desktop='^2' follow=on focus=on + +## 3 > files (always open file manager on workspace-3) +declare -a files=(Pcmanfm Thunar qBittorrent Caja) +for i in ${files[@]}; do + bspc rule -a $i desktop='^3' follow=on focus=on; done + +## 4 > code (always open editors on workspace-4) +declare -a code=(Geany code-oss code Code install4j-burp-StartBurp) +for i in ${code[@]}; do + bspc rule -a $i desktop='^4' follow=on focus=on; done + +## 5 > office and docs (always open office/doc apps on workspace-5) +declare -a office=(Gucharmap Atril Evince \ +libreoffice-writer libreoffice-calc libreoffice-impress \ +libreoffice-startcenter libreoffice Soffice *:libreofficedev *:soffice) +for i in ${office[@]}; do + bspc rule -a $i desktop='^5' follow=on focus=on; done + +## 6 > communication (always open communication apps on workspace-6) +declare -a comm=(Thunderbird TelegramDesktop Hexchat discord zoom Chat-gpt Blender blender) +for i in ${comm[@]}; do + bspc rule -a $i desktop='^6' follow=on focus=on; done + +## 7 > media (always open media apps on workspace-7) +declare -a media=(Audacity Music MPlayer Lxmusic Inkscape Gimp-2.10 obs Minecraft Minecraft* badlion Badlion Launcher launcher War war) +for i in ${media[@]}; do + bspc rule -a $i desktop='^7' state=floating follow=on focus=on; done + +## 8 > system (always open system apps on workspace-8) +bspc rule -a 'VirtualBox Manager' desktop='^8' follow=on focus=on +bspc rule -a GParted desktop='^8' follow=on focus=on +bspc rule -a 'Timeshift-gtk'='^8' follow=on focus=on +bspc rule -a 'Xdm-app'='^8' follow=on focus=on +declare -a settings=(Lxappearance Lxtask Lxrandr Arandr \ +System-config-printer.py Pavucontrol Exo-helper-1 \ +Xfce4-power-manager-settings Mysql-workbench-bin) +for i in ${settings[@]}; do + bspc rule -a $i desktop='^8' state=floating follow=on focus=on; done + +## Always Floating Apps +declare -a floating=(alacritty-float Pcmanfm Thunar Onboard Yad zoom Xdm-app exe wechat WeChat 'Firefox:Places' \ +Viewnior feh Nm-connection-editor install4j-burp-StartBurp) +for i in ${floating[@]}; do + bspc rule -a $i state=floating follow=on focus=on; done + +bspc rule -a Conky state=floating manage=off +bspc rule -a stalonetray state=floating manage=off + +## Autostart -------------------------------------------------# + +# Kill if already running +killall -9 xsettingsd sxhkd dunst ksuperkey xfce4-power-manager bspc +eww kill + +# Lauch xsettingsd daemon +xsettingsd --config="$BSPDIR"/xsettingsd & + +# better auth daemon(kde) +exec /usr/lib/polkit-kde-authentication-agent-1 & + +# Launcher xdm daemon +#xdman -d & + +# polkit agent +if [[ ! `pidof xfce-polkit` ]]; then + /usr/lib/xfce-polkit/xfce-polkit & +fi + +# Lauch keybindings daemon +sxhkd -c "$BSPDIR"/sxhkdrc & + +# Enable Super Keys For Menu +ksuperkey -e 'Super_L=Alt_L|F1' & +ksuperkey -e 'Super_R=Alt_L|F1' & + +# Enable power management +xfce4-power-manager & + +# Fix cursor +xsetroot -cursor_name left_ptr + +# Restore wallpaper +bash ~/.fehbg + +# Start mpd +exec mpd & + +# start fcitx +exec fcitx -d & + +# enable numlock +numlockx +sudo numlock + +# start clipboard daemon +exec clipmenud & + +# youtube-dl extention daemon +exec youtube-dl-server --number-processes 1 & + +# clean full screen +cleanfullscreen & + +# Start bspwm scripts +bspbar +bspcomp +bspdunst +bspfloat & + +# kill not needed +#killall java diff --git a/dot-config/bspwm/dunstrc b/dot-config/bspwm/dunstrc new file mode 100644 index 00000000..a548ca02 --- /dev/null +++ b/dot-config/bspwm/dunstrc @@ -0,0 +1,69 @@ +[global] +monitor = 0 +follow = mouse +width = 300 +height = 80 +origin = top-right +offset = 10x42 +corner_radius = 0 +scale = 0 +notification_limit = 0 +progress_bar = true +progress_bar_height = 80 +progress_bar_frame_width = 1 +progress_bar_min_width = 300 +progress_bar_max_width = 300 +indicate_hidden = yes +transparency = 0 +separator_height = 1 +padding = 15 +horizontal_padding = 15 +text_icon_padding = 0 +frame_width = 1 +gap_size = 0 +separator_color = frame +sort = yes +idle_threshold = 120 +font = Iosevka Custom 9 +line_height = 1 +markup = full +format = %s\n%b +alignment = left +vertical_alignment = center +show_age_threshold = 60 +ellipsize = middle +ignore_newline = no +stack_duplicates = true +hide_duplicate_count = false +show_indicators = yes +enable_recursive_icon_lookup = true +icon_position = left +min_icon_size = 24 +max_icon_size = 48 +sticky_history = yes +history_length = 20 +browser = /usr/bin/xdg-open +always_run_script = true +mouse_left_click = close_current +mouse_middle_click = do_action, close_current +mouse_right_click = close_all +title = Dunst +class = Dunst + +[urgency_low] +timeout = 2 +background = "#2E3440" +foreground = "#D8DEE9" +frame_color = "#81A1C1" + +[urgency_normal] +timeout = 5 +background = "#2E3440" +foreground = "#D8DEE9" +frame_color = "#81A1C1" + +[urgency_critical] +timeout = 0 +background = "#2E3440" +foreground = "#BF616A" +frame_color = "#BF616A" diff --git a/dot-config/bspwm/layout b/dot-config/bspwm/layout new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/dot-config/bspwm/layout diff --git a/dot-config/bspwm/picom.conf b/dot-config/bspwm/picom.conf new file mode 100644 index 00000000..dd44dc29 --- /dev/null +++ b/dot-config/bspwm/picom.conf @@ -0,0 +1,417 @@ +#========================= Corners =========================# + +corner-radius = 0; +rounded-corners-exclude = [ + "window_type = 'normal'", + "class_g ?= 'rofi'", + "class_g ?= 'polybar'", + "class_g ?= 'tint2'" +]; + +round-borders = 0; +round-borders-exclude = [ + "class_g = 'TelegramDesktop'" +]; + +# Specify a list of border width rules, in the format `PIXELS:PATTERN`, +# Note we don't make any guarantee about possible conflicts with the +# border_width set by the window manager. +# +# example: +# round-borders-rule = [ "2:class_g = 'URxvt'" ]; +# +round-borders-rule = [ + "2:class_g ?= 'URxvt'", + "2:class_g ?= 'Alacritty'", + "0:class_g ?= 'firefox'" +]; + +#========================= Shadows =========================# + +# Enabled client-side shadows on windows. Note desktop windows +# (windows with '_NET_WM_WINDOW_TYPE_DESKTOP') never get shadow, +# unless explicitly requested using the wintypes option. +# +shadow = true; + +# The blur radius for shadows, in pixels. (defaults to 12) +shadow-radius = 14; + +# The opacity of shadows. (0.0 - 1.0, defaults to 0.75) +shadow-opacity = 0.30; + +# The left offset for shadows, in pixels. (defaults to -15) +shadow-offset-x = -12; + +# The top offset for shadows, in pixels. (defaults to -15) +shadow-offset-y = -12; + +# Red color value of shadow (0.0 - 1.0, defaults to 0). +# shadow-red = 0 + +# Green color value of shadow (0.0 - 1.0, defaults to 0). +# shadow-green = 0 + +# Blue color value of shadow (0.0 - 1.0, defaults to 0). +# shadow-blue = 0 + +# Hex string color value of shadow (#000000 - #FFFFFF, defaults to #000000). This option will override options set shadow-(red/green/blue) +# shadow-color = "#000000" + +# Specify a list of conditions of windows that should have no shadow. +# +# examples: +# shadow-exclude = "n:e:Notification"; +# +# shadow-exclude = [] +shadow-exclude = [ + "class_g = 'Cairo-clock'", + "class_g = 'CoverGloobus'", + "class_g = 'Tilda'", + "name ?= 'gnome-pie'", +# "class_g = 'Dmenu'", +# "class_g ?= 'rofi'", +# "class_g ?= 'polybar'", + "class_g ?= 'Plank'", + "name *= 'recordmydesktop'", + "name = 'Notification'", + "name = 'Docky'", + "name = 'Kupfer'", + "name = 'xfce4-notifyd'", + "name *= 'VLC'", + "name *= 'Chromium'", + "name *= 'Chrome'", + "class_g = 'Conky'", + "class_g = 'Kupfer'", + "class_g = 'Synapse'", + "class_g ?= 'Notify-osd'", + "class_g ?= 'Cairo-dock'", + "class_g ?= 'Xfce4-notifyd'", + "class_g ?= 'Xfce4-power-manager'", + "_GTK_FRAME_EXTENTS@:c", + "_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'" +]; + +# Specify a X geometry that describes the region in which shadow should not +# be painted in, such as a dock window region. Use +# shadow-exclude-reg = "x10+0+0" +# for example, if the 10 pixels on the bottom of the screen should not have shadows painted on. +# +# shadow-exclude-reg = "" + +# Crop shadow of a window fully on a particular Xinerama screen to the screen. +# xinerama-shadow-crop = false + +#========================= Fading =========================# + +# Fade windows in/out when opening/closing and when opacity changes, +# unless no-fading-openclose is used. +fading = true; + +# Opacity change between steps while fading in. (0.01 - 1.0, defaults to 0.028) +fade-in-step = 0.03; + +# Opacity change between steps while fading out. (0.01 - 1.0, defaults to 0.03) +fade-out-step = 0.03; + +# The time between steps in fade step, in milliseconds. (> 0, defaults to 10) +fade-delta = 5; + +# Specify a list of conditions of windows that should not be faded. +# don't need this, we disable fading for all normal windows with wintypes: {} +fade-exclude = [ + "class_g = 'slop'" # maim +] + +# Do not fade on window open/close. +no-fading-openclose = false + +# Do not fade destroyed ARGB windows with WM frame. Workaround of bugs in Openbox, Fluxbox, etc. +no-fading-destroyed-argb = true + +#========================= Opacity =========================# + +# Opacity of inactive windows. (0.1 - 1.0, defaults to 1.0) +# inactive-opacity = 1 +inactive-opacity = 1; + +# Opacity of window titlebars and borders. (0.1 - 1.0, disabled by default) +# frame-opacity = 1.0 +frame-opacity = 1.0; + +# Let inactive opacity set by -i override the '_NET_WM_OPACITY' values of windows. +# inactive-opacity-override = true +inactive-opacity-override = false; + +# Default opacity for active windows. (0.0 - 1.0, defaults to 1.0) +active-opacity = 1.0; + +# Dim inactive windows. (0.0 - 1.0, defaults to 0.0) +#inactive-dim = 0.5 + +# Specify a list of conditions of windows that should always be considered focused. +# focus-exclude = [] +focus-exclude = [ + "class_g = 'Cairo-clock'", + "class_g = 'Bar'", # lemonbar + "class_g = 'slop'" # maim +]; + +# Use fixed inactive dim value, instead of adjusting according to window opacity. +# inactive-dim-fixed = 1.0 + +# Specify a list of opacity rules, in the format `PERCENT:PATTERN`, +# like `50:name *= "Firefox"`. picom-trans is recommended over this. +# Note we don't make any guarantee about possible conflicts with other +# programs that set '_NET_WM_WINDOW_OPACITY' on frame or client windows. +# example: +# opacity-rule = [ "80:class_g = 'URxvt'" ]; +# +# opacity-rule = [] +opacity-rule = [ + "100:class_g = 'Bar'", # lemonbar + "100:class_g = 'slop'", # maim + "100:class_g = 'XTerm'", + "100:class_g = 'URxvt'", + "100:class_g = 'kitty'", + "100:class_g = 'Alacritty'", + "100:class_g = 'Polybar'", + "100:class_g = 'code-oss'", + "100:class_g = 'Meld'", + "100:class_g = 'TelegramDesktop'", + "100:class_g = 'Joplin'", + "100:class_g = 'firefox'", + "100:class_g = 'Thunderbird'" +]; + +#========================= Blurring =========================# + +blur: { + method = "none"; + strength = 0; + background = false; + background-frame = false; + background-fixed = false; + kern = "3x3box"; +} + +# Exclude conditions for background blur. +blur-background-exclude = [ + "window_type = 'dock'", + "window_type = 'desktop'", + "class_g = 'Plank'", + "class_g = 'slop'", + "_GTK_FRAME_EXTENTS@:c" +]; + +#========================= General Settings =========================# + +# Daemonize process. Fork to background after initialization. Causes issues with certain (badly-written) drivers. +# daemon = false + +# Specify the backend to use: `xrender`, `glx`, or `xr_glx_hybrid`. +# `xrender` is the default one. +# +#experimental-backends = true; +backend = "glx"; + +# Enable/disable VSync. +# vsync = false +vsync = true; + +# Enable remote control via D-Bus. See the *D-BUS API* section below for more details. +# dbus = false + +# Try to detect WM windows (a non-override-redirect window with no +# child that has 'WM_STATE') and mark them as active. +# +# mark-wmwin-focused = false +mark-wmwin-focused = true; + +# Mark override-redirect windows that doesn't have a child window with 'WM_STATE' focused. +# mark-ovredir-focused = false +mark-ovredir-focused = true; + +# Try to detect windows with rounded corners and don't consider them +# shaped windows. The accuracy is not very high, unfortunately. +# +# detect-rounded-corners = false +detect-rounded-corners = true; + +# Detect '_NET_WM_OPACITY' on client windows, useful for window managers +# not passing '_NET_WM_OPACITY' of client windows to frame windows. +# +# detect-client-opacity = false +detect-client-opacity = true; + +# Specify refresh rate of the screen. If not specified or 0, picom will +# try detecting this with X RandR extension. +# +# refresh-rate = 60 +refresh-rate = 0; + +# Use EWMH '_NET_ACTIVE_WINDOW' to determine currently focused window, +# rather than listening to 'FocusIn'/'FocusOut' event. Might have more accuracy, +# provided that the WM supports it. +# +# use-ewmh-active-win = false + +# Unredirect all windows if a full-screen opaque window is detected, +# to maximize performance for full-screen windows. Known to cause flickering +# when redirecting/unredirecting windows. +# +# unredir-if-possible = false + +# Delay before unredirecting the window, in milliseconds. Defaults to 0. +# unredir-if-possible-delay = 0 + +# Conditions of windows that shouldn't be considered full-screen for unredirecting screen. +# unredir-if-possible-exclude = [] + +# Use 'WM_TRANSIENT_FOR' to group windows, and consider windows +# in the same group focused at the same time. +# +# detect-transient = false +detect-transient = true; + +# Use 'WM_CLIENT_LEADER' to group windows, and consider windows in the same +# group focused at the same time. 'WM_TRANSIENT_FOR' has higher priority if +# detect-transient is enabled, too. +# +# detect-client-leader = false +detect-client-leader = true; + +# Resize damaged region by a specific number of pixels. +# A positive value enlarges it while a negative one shrinks it. +# If the value is positive, those additional pixels will not be actually painted +# to screen, only used in blur calculation, and such. (Due to technical limitations, +# with use-damage, those pixels will still be incorrectly painted to screen.) +# Primarily used to fix the line corruption issues of blur, +# in which case you should use the blur radius value here +# (e.g. with a 3x3 kernel, you should use `--resize-damage 1`, +# with a 5x5 one you use `--resize-damage 2`, and so on). +# May or may not work with *--glx-no-stencil*. Shrinking doesn't function correctly. +# +# resize-damage = 1 + +# Specify a list of conditions of windows that should be painted with inverted color. +# Resource-hogging, and is not well tested. +# +# invert-color-include = [] + +# GLX backend: Avoid using stencil buffer, useful if you don't have a stencil buffer. +# Might cause incorrect opacity when rendering transparent content (but never +# practically happened) and may not work with blur-background. +# My tests show a 15% performance boost. Recommended. +# +glx-no-stencil = true; + +# GLX backend: Avoid rebinding pixmap on window damage. +# Probably could improve performance on rapid window content changes, +# but is known to break things on some drivers (LLVMpipe, xf86-video-intel, etc.). +# Recommended if it works. +# +# glx-no-rebind-pixmap = false + +# Disable the use of damage information. +# This cause the whole screen to be redrawn everytime, instead of the part of the screen +# has actually changed. Potentially degrades the performance, but might fix some artifacts. +# The opposing option is use-damage +# +# no-use-damage = false +use-damage = true; + +# Use X Sync fence to sync clients' draw calls, to make sure all draw +# calls are finished before picom starts drawing. Needed on nvidia-drivers +# with GLX backend for some users. +# +# xrender-sync-fence = false + +# GLX backend: Use specified GLSL fragment shader for rendering window contents. +# See `compton-default-fshader-win.glsl` and `compton-fake-transparency-fshader-win.glsl` +# in the source tree for examples. +# +# glx-fshader-win = "" + +# Force all windows to be painted with blending. Useful if you +# have a glx-fshader-win that could turn opaque pixels transparent. +# +# force-win-blend = false + +# Do not use EWMH to detect fullscreen windows. +# Reverts to checking if a window is fullscreen based only on its size and coordinates. +# +# no-ewmh-fullscreen = false + +# Dimming bright windows so their brightness doesn't exceed this set value. +# Brightness of a window is estimated by averaging all pixels in the window, +# so this could comes with a performance hit. +# Setting this to 1.0 disables this behaviour. Requires --use-damage to be disabled. (default: 1.0) +# +# max-brightness = 1.0 + +# Make transparent windows clip other windows like non-transparent windows do, +# instead of blending on top of them. +# +# transparent-clipping = false + +# Set the log level. Possible values are: +# "trace", "debug", "info", "warn", "error" +# in increasing level of importance. Case doesn't matter. +# If using the "TRACE" log level, it's better to log into a file +# using *--log-file*, since it can generate a huge stream of logs. +# +# log-level = "debug" +log-level = "info"; + +# Set the log file. +# If *--log-file* is never specified, logs will be written to stderr. +# Otherwise, logs will to written to the given file, though some of the early +# logs might still be written to the stderr. +# When setting this option from the config file, it is recommended to use an absolute path. +# +# log-file = "/path/to/your/log/file" + +# Show all X errors (for debugging) +# show-all-xerrors = false + +# Write process ID to a file. +# write-pid-path = "/path/to/your/log/file" + +# Window type settings +# +# 'WINDOW_TYPE' is one of the 15 window types defined in EWMH standard: +# "unknown", "desktop", "dock", "toolbar", "menu", "utility", +# "splash", "dialog", "normal", "dropdown_menu", "popup_menu", +# "tooltip", "notification", "combo", and "dnd". +# +# Following per window-type options are available: :: +# +# fade, shadow::: +# Controls window-type-specific shadow and fade settings. +# +# opacity::: +# Controls default opacity of the window type. +# +# focus::: +# Controls whether the window of this type is to be always considered focused. +# (By default, all window types except "normal" and "dialog" has this on.) +# +# full-shadow::: +# Controls whether shadow is drawn under the parts of the window that you +# normally won't be able to see. Useful when the window has parts of it +# transparent, and you want shadows in those areas. +# +# redir-ignore::: +# Controls whether this type of windows should cause screen to become +# redirected again after been unredirected. If you have unredir-if-possible +# set, and doesn't want certain window to cause unnecessary screen redirection, +# you can set this to `true`. +# +wintypes: +{ + tooltip = { fade=true; shadow=true; opacity=0.95; focus=true; full-shadow=false; }; + popup_menu = { opacity=1.0; } + dropdown_menu = { opacity=1.0; } + utility = { shadow=false; opacity=1.0; } +}; diff --git a/dot-config/bspwm/scripts/.zshenv b/dot-config/bspwm/scripts/.zshenv new file mode 100644 index 00000000..ab178e65 --- /dev/null +++ b/dot-config/bspwm/scripts/.zshenv @@ -0,0 +1,8 @@ +typeset -U PATH path +export GTK_IM_MODULE='fcitx' +export QT_IM_MODULE='fcitx' +export SDL_IM_MODULE='fcitx' +export XMODIFIERS='@im=fcitx' +export PATH=/home/system/.local/bin:/usr/share/archcraft/scripts:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/home/system/.config/bspwm/bin:/home/system/scripts +alias vim='lvim' +export EDITOR='lvim' diff --git a/dot-config/bspwm/scripts/bspasfloat b/dot-config/bspwm/scripts/bspasfloat new file mode 100755 index 00000000..b38bae3e --- /dev/null +++ b/dot-config/bspwm/scripts/bspasfloat @@ -0,0 +1,15 @@ +bspc config initial_polarity second_child + +# Run the command specified as the first argument +$1 & disown + +# Wait for the window to be created +sleep 1 + +# Get the ID of the most recently created window +window_id=$(bspc query --windows --node focused | tail -n 1 | awk '{print $1}') + +# Set the state of the window to floating +bspc window $window_id -t floating + +bspc config initial_polarity first_child diff --git a/dot-config/bspwm/scripts/bspasroot b/dot-config/bspwm/scripts/bspasroot new file mode 100755 index 00000000..5d00ca53 --- /dev/null +++ b/dot-config/bspwm/scripts/bspasroot @@ -0,0 +1,10 @@ +#!/usr/bin/env bash + +# bspwm directory +DIR="$HOME/.config/bspwm" + +# rofi sudo askpass helper +export SUDO_ASKPASS="$DIR"/scripts/rofi_askpass + +# execute the application +sudo -A $1 diff --git a/dot-config/bspwm/scripts/bspbar b/dot-config/bspwm/scripts/bspbar new file mode 100755 index 00000000..62a804ef --- /dev/null +++ b/dot-config/bspwm/scripts/bspbar @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# bspwm directory +DIR="$HOME/.config" + +# fix padding +#bspc config bottom_padding 0 +bspc config top_padding 46 + +# launch polybar +bash "$DIR"/polybar/polybar.sh diff --git a/dot-config/bspwm/scripts/bspbrightness b/dot-config/bspwm/scripts/bspbrightness new file mode 100755 index 00000000..cdf67047 --- /dev/null +++ b/dot-config/bspwm/scripts/bspbrightness @@ -0,0 +1,71 @@ +#!/usr/bin/env bash + +## Script to manage brightness on Archcraft. + +# Icons +iDIR='/usr/share/archcraft/icons/dunst' + +# Graphics card +CARD=`ls /sys/class/backlight | head -n 1` + +# Get brightness +get_backlight() { + if [[ "$CARD" == *"intel_"* ]]; then + BNESS=`xbacklight -get` + LIGHT=${BNESS%.*} + else + LIGHT=$(printf "%.0f\n" `light -G`) + fi + echo "${LIGHT}%" +} + +# Get icons +get_icon() { + backlight="$(get_backlight)" + current="${backlight%%%}" + if [[ ("$current" -ge "0") && ("$current" -le "20") ]]; then + icon="$iDIR"/brightness-20.png + elif [[ ("$current" -ge "20") && ("$current" -le "40") ]]; then + icon="$iDIR"/brightness-40.png + elif [[ ("$current" -ge "40") && ("$current" -le "60") ]]; then + icon="$iDIR"/brightness-60.png + elif [[ ("$current" -ge "60") && ("$current" -le "80") ]]; then + icon="$iDIR"/brightness-80.png + elif [[ ("$current" -ge "80") && ("$current" -le "100") ]]; then + icon="$iDIR"/brightness-100.png + fi +} + +# Notify +notify_bl() { + get_icon && dunstify -u low -h string:x-dunst-stack-tag:obbacklight -i "$icon" "Brightness : $(get_backlight)" +} + +# Increase brightness +inc_backlight() { + if [[ "$CARD" == *"intel_"* ]]; then + xbacklight -inc 10 && notify_bl + else + light -A 5 && notify_bl + fi +} + +# Decrease brightness +dec_backlight() { + if [[ "$CARD" == *"intel_"* ]]; then + xbacklight -dec 10 && notify_bl + else + light -U 5 && notify_bl + fi +} + +# Execute accordingly +if [[ "$1" == "--get" ]]; then + get_backlight +elif [[ "$1" == "--inc" ]]; then + inc_backlight +elif [[ "$1" == "--dec" ]]; then + dec_backlight +else + get_backlight +fi diff --git a/dot-config/bspwm/scripts/bspcolorpicker b/dot-config/bspwm/scripts/bspcolorpicker new file mode 100755 index 00000000..ff857986 --- /dev/null +++ b/dot-config/bspwm/scripts/bspcolorpicker @@ -0,0 +1,20 @@ +#!/usr/bin/env bash + +## Simple script to pick color quickly. + +color=$(xcolor --format hex --preview-size 255 --scale 10) +image=/tmp/${color}.png + +main() { + if [[ "$color" ]]; then + # copy color code to clipboard + echo $color | tr -d "\n" | xclip -selection clipboard + # generate preview + convert -size 48x48 xc:"$color" ${image} + # notify about it + dunstify -u low -h string:x-dunst-stack-tag:obcolorpicker -i ${image} "$color, copied to clipboard." + fi +} + +# run the script +main diff --git a/dot-config/bspwm/scripts/bspcomp b/dot-config/bspwm/scripts/bspcomp new file mode 100755 index 00000000..5f27c57b --- /dev/null +++ b/dot-config/bspwm/scripts/bspcomp @@ -0,0 +1,13 @@ +#!/usr/bin/bash + +# bspwm directory +DIR="$HOME/.config" + +# Terminate if picom is already running +killall -q picom + +# Wait until the processes have been shut down +while pgrep -u $UID -x picom >/dev/null; do sleep 1; done + +# Launch picom +picom --config "$DIR"/picom.conf -b --show-all-xerrors & # --use-damage --animation-clamping --vsync -blur-background-fixed --blur-background --blur-background-frame diff --git a/dot-config/bspwm/scripts/bspdunst b/dot-config/bspwm/scripts/bspdunst new file mode 100755 index 00000000..d0fabb7c --- /dev/null +++ b/dot-config/bspwm/scripts/bspdunst @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# bspwm directory +DIR="$HOME/.config/dunst" + +# Launch dunst daemon +if [[ `pidof dunst` ]]; then + pkill dunst +fi + +dunst -config "$DIR"/dunstrc & diff --git a/dot-config/bspwm/scripts/bspfloat b/dot-config/bspwm/scripts/bspfloat new file mode 100755 index 00000000..b63192dd --- /dev/null +++ b/dot-config/bspwm/scripts/bspfloat @@ -0,0 +1,10 @@ +#!/usr/bin/env bash + +## All windows are floating on desktop 8 +FLOATING_DESKTOP_ID=$(bspc query -D -d '^9') + +bspc subscribe node_add | while read -a msg ; do + desk_id=${msg[2]} + wid=${msg[4]} + [ "$FLOATING_DESKTOP_ID" = "$desk_id" ] && bspc node "$wid" -t floating +done diff --git a/dot-config/bspwm/scripts/bspmusic b/dot-config/bspwm/scripts/bspmusic new file mode 100755 index 00000000..6a95c8f5 --- /dev/null +++ b/dot-config/bspwm/scripts/bspmusic @@ -0,0 +1,13 @@ +#!/usr/bin/env bash + +## Run ncmpcpp with alternate config + +# bspwm directory +DIR="$HOME/.config/bspwm" + +CONFIG="$DIR/alacritty/alacritty.yml" + +alacritty --class 'Music,Music' --config-file "$CONFIG" \ + -o window.dimensions.columns=109 window.dimensions.lines=22 \ + -e ~/.ncmpcpp/scripts/ncmpcpp-art + diff --git a/dot-config/bspwm/scripts/bspscreenshot b/dot-config/bspwm/scripts/bspscreenshot new file mode 100755 index 00000000..9403a870 --- /dev/null +++ b/dot-config/bspwm/scripts/bspscreenshot @@ -0,0 +1,93 @@ +#!/usr/bin/env bash + +## Script to take screenshots on Archcraft. + +# file +time=`date +%Y-%m-%d-%H-%M-%S` +geometry=`xrandr | grep 'current' | head -n1 | cut -d',' -f2 | tr -d '[:blank:],current'` +dir="`xdg-user-dir PICTURES`/Screenshots" +file="Screenshot_${time}_${geometry}.png" + +# directory +if [[ ! -d "$dir" ]]; then + mkdir -p "$dir" +fi + +# notify and view screenshot +notify_view () { + notify_cmd_shot='dunstify -u low -h string:x-dunst-stack-tag:obscreenshot -i /usr/share/archcraft/icons/dunst/picture.png' + pngcheck ${dir}/"$file" > /dev/null + if [[ $? -eq 0 ]]; then + #${notify_cmd_shot} "Copied to clipboard." + paplay /usr/share/sounds/freedesktop/stereo/screen-capture.oga &>/dev/null & + viewnior ${dir}/"$file" + else + # the notifcation too annoying + #${notify_cmd_shot} "Screenshot Canceled." + rm "${dir}/$file" + exit 0 + fi + if [[ -e "$dir/$file" ]]; then + ${notify_cmd_shot} "Screenshot Saved." + else + ${notify_cmd_shot} "Screenshot Deleted." + fi +} + +# copy screenshot to clipboard +copy_shot () { + tee "$file" | xclip -selection clipboard -t image/png +} + +# countdown +countdown () { + for sec in `seq $1 -1 1`; do + dunstify -t 1000 -h string:x-dunst-stack-tag:screenshottimer -i /usr/share/archcraft/icons/dunst/timer.png "Taking shot in : $sec" + sleep 1 + done +} + +# take shots +shotnow () { + cd ${dir} && maim -u -f png | copy_shot + notify_view +} + +shot5 () { + countdown '5' + sleep 1 && cd ${dir} && maim -u -f png | copy_shot + notify_view +} + +shot10 () { + countdown '10' + sleep 1 && cd ${dir} && maim -u -f png | copy_shot + notify_view +} + +shotwin () { + cd ${dir} && maim -u -f png -i `xdotool getactivewindow` | copy_shot + notify_view +} + +shotarea () { + cd ${dir} && maim -u -f png -s -b 2 -c 0.35,0.55,0.85,0.25 -l | copy_shot + notify_view +} + +# execute +if [[ "$1" == "--now" ]]; then + shotnow +elif [[ "$1" == "--in5" ]]; then + shot5 +elif [[ "$1" == "--in10" ]]; then + shot10 +elif [[ "$1" == "--win" ]]; then + shotwin +elif [[ "$1" == "--area" ]]; then + shotarea +else + echo -e "Available Options : --now --in5 --in10 --win --area" +fi + +exit 0 diff --git a/dot-config/bspwm/scripts/bspswallow b/dot-config/bspwm/scripts/bspswallow new file mode 100755 index 00000000..93714c74 --- /dev/null +++ b/dot-config/bspwm/scripts/bspswallow @@ -0,0 +1,53 @@ +#!/bin/sh + +# Get class of a wid +get_class() { + id=$1 + if [ -z "$id" ]; then + echo "" + else + xprop -id "$id" | sed -n '/WM_CLASS\|WM_COMMAND/s/.*"\(.*\)".*/\1/p' + fi +} + +swallow() { + addedtodesktop=$2 + lasttermdesktop=$(bspc query -D -n last) + + swallowerid=$1 + swallowingid=$(bspc query -N -n last) + + if [ "$addedtodesktop" = "$lasttermdesktop" ]; then + grep "^$(get_class "$swallowerid")$" ~/.config/bspwm/scripts/swallow || return + grep "^$(get_class "$swallowingid")$" ~/.config/bspwm/scripts/terminals || return + echo "$swallowerid $swallowingid" >> /tmp/swallowids + bspc node "$swallowingid" --flag hidden=on + fi +} + +spit() { + spitterid=$1 + spitterdesktop=$2 + grep "^$spitterid" /tmp/swallowids || return + spittingid=$(grep "^$spitterid" /tmp/swallowids | head -n1 | awk '{print $2}') + + bspc node "$spittingid" --flag hidden=off + + termdesktop=$(bspc query -D -n "$spittingid") + [ "$termdesktop" = "$spitterdesktop" ] || bspc node "$spittingid" -d "$spitterdesktop" + + bspc node "$spittingid" -f + sed -i "/^$spitterid/d" /tmp/swallowids +} + +bspc subscribe node_add node_remove | while read -r event +do + case $(echo "$event" | awk '{ print $1 }') in + node_add) + swallow $(echo "$event" | awk '{print $5 " " $3}') + ;; + node_remove) + spit $(echo "$event" | awk '{print $4 " " $3}') + ;; + esac +done diff --git a/dot-config/bspwm/scripts/bspterm b/dot-config/bspwm/scripts/bspterm new file mode 100755 index 00000000..75e3892c --- /dev/null +++ b/dot-config/bspwm/scripts/bspterm @@ -0,0 +1,23 @@ +#!/usr/bin/env bash + +## launch alacritty with bspwm config + +# bspwm directory +DIR="$HOME/.config/bspwm" +CONFIG="$DIR/alacritty/alacritty.yml" + +if [ "$1" == "--float" ]; then + #alacritty --class 'alacritty-float,alacritty-float' --config-file "$CONFIG" + alacritty --class 'alacritty-float,alacritty-float' +elif [ "$1" == "--full" ]; then + #alacritty --class 'Fullscreen,Fullscreen' --config-file "$CONFIG" \ + alacritty --class 'Fullscreen,Fullscreen' \ + -o window.startup_mode=fullscreen \ + window.padding.x=30 window.padding.y=30 \ + window.opacity=0.95 font.size=14 +elif [ "$1" == "--pseudo" ]; then + alacritty --class 'pseudo_tiled' +else +# alacritty --config-file "$CONFIG" + alacritty +fi diff --git a/dot-config/bspwm/scripts/bspvolume b/dot-config/bspwm/scripts/bspvolume new file mode 100755 index 00000000..716c65b2 --- /dev/null +++ b/dot-config/bspwm/scripts/bspvolume @@ -0,0 +1,81 @@ +#!/usr/bin/env bash + +## Script to manage speaker volume on Archcraft. + +# Icons +iDIR='/usr/share/archcraft/icons/dunst' +notify_cmd='dunstify -u low -h string:x-dunst-stack-tag:obvolume' + +# Get Volume +get_volume() { + echo "`pulsemixer --get-volume | cut -d' ' -f1`" +} + +# Get icons +get_icon() { + current="$(get_volume)" + if [[ "$current" -eq "0" ]]; then + icon="$iDIR/volume-mute.png" + elif [[ ("$current" -ge "0") && ("$current" -le "30") ]]; then + icon="$iDIR/volume-low.png" + elif [[ ("$current" -ge "30") && ("$current" -le "60") ]]; then + icon="$iDIR/volume-mid.png" + elif [[ ("$current" -ge "60") && ("$current" -le "100") ]]; then + icon="$iDIR/volume-high.png" + fi +} + +# Notify +notify_user() { + ${notify_cmd} -i "$icon" "Volume : $(get_volume)%" +} + +# Increase Volume +inc_volume() { + [[ `pulsemixer --get-mute` == 1 ]] && pulsemixer --unmute + pulsemixer --max-volume 100 --change-volume +5 & get_icon && notify_user +} + +# Decrease Volume +dec_volume() { + [[ `pulsemixer --get-mute` == 1 ]] && pulsemixer --unmute + pulsemixer --max-volume 100 --change-volume -5 & get_icon && notify_user +} + +# Toggle Mute +toggle_mute() { + if [[ `pulsemixer --get-mute` == 0 ]]; then + pulsemixer --toggle-mute & ${notify_cmd} -i "$iDIR/volume-mute.png" "Mute" + else + pulsemixer --toggle-mute & get_icon && ${notify_cmd} -i "$icon" "Unmute" + fi +} + +# Toggle Mic +toggle_mic() { + ID="`pulsemixer --list-sources | grep 'Default' | cut -d',' -f1 | cut -d' ' -f3`" + if [[ `pulsemixer --id $ID --get-mute` == 0 ]]; then + pulsemixer --id ${ID} --toggle-mute && ${notify_cmd} -i "$iDIR/microphone-mute.png" "Microphone Switched OFF" + else + pulsemixer --id ${ID} --toggle-mute && ${notify_cmd} -i "$iDIR/microphone.png" "Microphone Switched ON" + fi +} + +# Execute accordingly +if [[ -x `which pulsemixer` ]]; then + if [[ "$1" == "--get" ]]; then + get_volume + elif [[ "$1" == "--inc" ]]; then + inc_volume + elif [[ "$1" == "--dec" ]]; then + dec_volume + elif [[ "$1" == "--toggle" ]]; then + toggle_mute + elif [[ "$1" == "--toggle-mic" ]]; then + toggle_mic + else + echo $(get_volume)% + fi +else + ${notify_cmd} "'pulsemixer' is not installed." +fi diff --git a/dot-config/bspwm/scripts/bspwinmask b/dot-config/bspwm/scripts/bspwinmask new file mode 100755 index 00000000..a6211530 --- /dev/null +++ b/dot-config/bspwm/scripts/bspwinmask @@ -0,0 +1,9 @@ +#!/usr/bin/env bash + +masked=$(bspc query -N -n .hidden -d focused) + +if [ -z "$masked" ]; then + bspc node focused -g hidden=on +else + bspc node "$masked" -g hidden=off +fi diff --git a/dot-config/bspwm/scripts/drag-to-float b/dot-config/bspwm/scripts/drag-to-float new file mode 100755 index 00000000..be99943a --- /dev/null +++ b/dot-config/bspwm/scripts/drag-to-float @@ -0,0 +1,52 @@ +#!/bin/env bash + +: "${BUTTON:=1}" "${RADIUS:=200}" + +eval "$(xdotool getmouselocation --shell)" +#!/bin/env bash + +: "${BSPWM_DIR:="${XDG_CONFIG_HOME:-$HOME/.config}/bspwm"}" + +#status_file="$BSPWM_DIR/tmp/drag_to_float" +status_file="/tmp/drag-to-float" + +[[ "$1" = stop ]] && { + [[ -e "$status_file" ]] \ + && rm -r -- "$status_file" + exit +} + +[[ -e "$status_file" ]] \ + && exit + +< <(bspc query -T -n pointed.window | jq -r '"\(.id) \(.client.state)"') read -r node node_state + +[[ -z "$node" ]] \ + && exit + +case "$node_state" in + floating) + ;; + tiled|pseudo_tiled) + node_tiled_rect=($(bspc query -T -n "$node" | jq -r '.client.tiledRectangle[]')) + bspc node "$node" -t floating + xdo move -x "${node_tiled_rect[0]}" -y "${node_tiled_rect[1]}" "$node" + xdo resize -w "${node_tiled_rect[2]}" -h "${node_tiled_rect[3]}" "$node" ;; + *) # fullscreen + exit ;; +esac + +eval "$(xdotool getmouselocation --shell)" +x="$X" y="$Y" +touch -- "$status_file" +while [[ -e "$status_file" ]]; do + eval "$(xdotool getmouselocation --shell)" + (( X != x || Y != y )) && { + bspc node "$node" -v "$((X - x))" "$((Y - y))" + x="$X" y="$Y" + } + #sleep .01 +done + +[[ -e "$status_file" ]] \ + && rm -r -- "$status_file" diff --git a/dot-config/bspwm/scripts/keep_state b/dot-config/bspwm/scripts/keep_state new file mode 100755 index 00000000..2fb73782 --- /dev/null +++ b/dot-config/bspwm/scripts/keep_state @@ -0,0 +1,2 @@ +#!/bin/bash +bspc wm -d > ~/.config/bspwm/state diff --git a/dot-config/bspwm/scripts/noswallow b/dot-config/bspwm/scripts/noswallow new file mode 100755 index 00000000..9f23d84e --- /dev/null +++ b/dot-config/bspwm/scripts/noswallow @@ -0,0 +1 @@ +xev diff --git a/dot-config/bspwm/scripts/noswallow_dmenu b/dot-config/bspwm/scripts/noswallow_dmenu new file mode 100755 index 00000000..3afd83a2 --- /dev/null +++ b/dot-config/bspwm/scripts/noswallow_dmenu @@ -0,0 +1,17 @@ +#!/bin/sh +# Allows for dmenu_run to be used without swallowing the terminal + +killall bspswallow +dmenu_run + +# Hang until dmenu is closed +while pidof dmenu; do continue +done + +#If you frequently use dmenu_run without spawing a window commentout this while loop and uncomment the commented out part below +bspc subscribe node_add | while read -r event; do +bspswallow & exit +done + +# sleep 2 +# bspswallow & exit diff --git a/dot-config/bspwm/scripts/noswallow_open b/dot-config/bspwm/scripts/noswallow_open new file mode 100755 index 00000000..81a2a0b0 --- /dev/null +++ b/dot-config/bspwm/scripts/noswallow_open @@ -0,0 +1,7 @@ +#!/bin/sh +# Prefix to a command to make it so that any windows spawned from it don't swallow the terminal +# for launching things from sxhd etc +killall bspswallow +eval $@ >/dev/null +sleep 2 +bspswallow & diff --git a/dot-config/bspwm/scripts/terminals b/dot-config/bspwm/scripts/terminals new file mode 100755 index 00000000..6835a37c --- /dev/null +++ b/dot-config/bspwm/scripts/terminals @@ -0,0 +1,3 @@ +St +Alacritty +Urxvt diff --git a/dot-config/bspwm/sxhkdrc b/dot-config/bspwm/sxhkdrc new file mode 100644 index 00000000..eeea7583 --- /dev/null +++ b/dot-config/bspwm/sxhkdrc @@ -0,0 +1,268 @@ +## Keybindings config for ArchLinux's BSPWM + +##---------- Keybindings for bspwm ----------## + +# Terminal (alacritty) +super + Return + bspterm + +# Terminal (floating) +super + shift + Return + bspterm --float + +# Terminal (fullscreen) +super + alt + Return + bspterm --full + +super + t + bspterm --full + +super + space + Return + bspterm --pseudo + +super + alt + Delete + ~/.config/rofi/scripts/rofi_powermenu + +##---------- Rofi Launcher & Menus ----------## + +# Rofi App Launcher +alt + F1 + rofi_launcher + +# Rofi Run +alt + F2 + rofi_runner + +# Rofi Menus/Applets +#super + {c,m,n,r,s,t,v,w,x} +# {rofi_configs,rofi_music,nmd,rofi_asroot,rofi_screenshot,rofi_themes,rofi_clip,rofi_windows,rofi_powermenu} + +# Rofi Menus/Applets +super + {c,m,n,r,s,v,w,x,b} + {rofi_configs,rofi_music,nmd,rofi_asroot,rofi_screenshot,rofi_clip,rofi_windows,rofi_powermenu,rofi_bluetooth} + +super + alt + b + killall runtransani.sh; exec $HOME/scripts/runtransani.sh & + +super + period + rofi_emoji + + + +##---------- Applications ----------## + +# Launch Apps +super + shift + {f,w,e,d} + {thunar,thorium-browser --restore-last-session,code,discord} #&& mv /home/system/.config/Thunar/uca.xml . && mv uca.xml /home/system/.config/Thunar/uca.xml + +# Terminal Apps +ctrl + alt + {a,v,r,b} + alacritty --class 'alacritty-float,alacritty-float' -e {pulsemixer,lvim,ranger,sudo nice -n -20 btop} + +# task manager +ctrl + shift + Escape + sudo btop + +ctrl + alt + Delete + rofi_shutdown_menu + +# Color Picker +super + p + bspcolorpicker + +# Music +ctrl + alt + m + bspmusic + +# Lockscreen +ctrl + alt + l + betterlockscreen --lock & betterlockscreen -u ~/Pictures/wallpapers +# eww +super + a + launch_dashboard + +##---------- System Keys ----------## + +# Take a screenshot +Print + bspscreenshot --now + +# Take screenshot in 5 second +alt + Print + bspscreenshot --in5 + +# Take screenshot in 10 second +shift + Print + bspscreenshot --in10 + +# Take screenshot of active window +ctrl + Print + bspscreenshot --win + +# Take screenshot of area +#super + Print +super + shift + s + bspscreenshot --area + +# Brighness control +# XF86MonBrightness{Up,Down} +# bspbrightness{ --inc, --dec} + +# Speaker Volume control +XF86Audio{RaiseVolume,LowerVolume} + bspvolume{ --inc, --dec} + +# Mic Volume control +XF86Audio{Mute,MicMute} + bspvolume{ --toggle, --toggle-mic} + +# Music control +XF86Audio{Next,Prev,Play,Stop} + playerctl {next,previous,play-pause,stop} + +super + XF86PowerOff + $HOME/.config/rofi/scripts/rofi_shutdown + +XF86PowerOff + $HOME/.config/rofi/scripts/rofi_shutdown + +alt + f + $HOME/scripts/autoclicker-left.sh + # /usr/bin/ps ax | grep -v grep | grep autoclicker-left > /dev/null && killall autoclicker-left || exec autoclicker-left + +alt + g + $HOME/scripts/autoclicker-right.sh + #/usr/bin/ps ax | grep -v grep | grep autoclicker-right > /dev/null && killall autoclicker-right || exec autoclicker-right + +##---------- Bspwm ----------## + +# Hide/Unhide Window +super + shift + h + bspwinmask + +super + d + bspwinmask + + +# Close App +super + {_,shift + }q + bspc node -{c,k} + +#alt + F4 +# bspc node -{c,k} + + +# kill window +ctrl + alt + Escape + /home/system/scripts/mouseKill + +ctrl + super + alt + Escape + xkill -id $(xprop -root _NET_ACTIVE_WINDOW | awk '{print $5}') + +# Quit/Restart bspwm +ctrl + shift + r + bspc wm -r + +ctrl + shift + q + [[ "$(echo -e "\n" | rofi -dmenu -p 'Confirmation' -mesg 'Quit BSPWM?' -theme $HOME/.config/bspwm/themes/default/rofi/confirm.rasi)" == "yes" ]] && bspc quit + +# restart picom +# ctrl + shift + p +# killall picom; bspcomp + +# Reload Keybindings +super + Escape + pkill -USR1 -x sxhkd && killall xbindkeys && xbindkeys + +# reload Polybar +ctrl + super + Escape + bspbar && bspc config top_padding 46 + #polybar-msg cmd restart && bspc config top_padding 46 + +# Switch workspace +ctrl + alt + {Left,Right} + bspc desktop -f {prev.local,next.local} + +# Switch workspace or Send focused Node to another workspace +super + {_,shift + }{1-9} + bspc {desktop -f,node -d} '^{1-9}' '--follow' + +super + {_,shift + }0 + bspc {desktop -f, node -d} '^10' + +# Send focused Node to workspace directionally +super + ctrl + shift + {Left,Right} + bspc node -d {prev,next} '--follow' + +# Change focus of the Node or Swap Nodes +super + {_,shift + }{Left,Down,Up,Right} + bspc node -{f,s} {west,south,north,east} + +# Move floating windows +#super + alt + shift + {Left,Down,Up,Right} +shift + alt + {Left,Down,Up,Right} + bspc node -v {-20 0,0 20,0 -20,20 0} + +# Expanding windows +super + control + {Left,Right,Up,Down} + bspc node -z {left -20 0,right 20 0,top 0 -20,bottom 0 20} + +# Shrinking windows +super + alt + {Left,Right,Up,Down} + bspc node -z {left 20 0,right -20 0,top 0 20,bottom 0 -20} + +# scroll +super + {button4,button5} + bspc node -z {left -20 0 & bspc node -z right 20 0 & bspc node -z top 0 -20 & bspc node -z bottom 0 20,left 20 0 & bspc node -z right -20 0 & bspc node -z top 0 20 & bspc node -z buttom 0 -20} + +# "Drag to floating" tiled windows or move floating windows. +ctrl + button3 + ~/.config/bspwm/scripts/drag-to-float +ctrl + @button3 + ~/.config/bspwm/scripts/drag-to-float stop +@button3 + ~/.config/bspwm/scripts/drag-to-float stop +~button3 + : + +# Split horizontal, vertical or cancel +super + alt + {h,v,q} + bspc node -p {east,south,cancel} + +# toggle between horizontal and vertical +ctrl + super + m + bspc node @parent -R 90 + +# Preselect the ratio +super + ctrl + {1-9} + bspc node -o 0.{1-9} + +# Toggle Layout (Tiled/Monocle) +super + l + bspc desktop -l next + +# Toggle Fullscreen +super + f + bspc node -t "~"fullscreen + +# Toggle beetwen floating & tiled +super + space + bspc node -t "~"{floating,tiled} + +# Pseudo Tiled & tiled mode +super + shift + space + bspc node -t "~"{pseudo_tiled,tiled} + +# Set the node flags +super + ctrl + {m,x,y,z} + bspc node -g {marked,locked,sticky,private} + +# Change focus to next window, including floating window +alt + {_,shift + }Tab + bspc node -f {next.local,prev.local} + +# Switch to last opened workspace +super + {Tab,grave} + bspc {node,desktop} -f last + +##---------- EOF ----------## diff --git a/dot-config/bspwm/themes/.current b/dot-config/bspwm/themes/.current new file mode 100644 index 00000000..4ad96d51 --- /dev/null +++ b/dot-config/bspwm/themes/.current @@ -0,0 +1 @@ +default diff --git a/dot-config/bspwm/themes/.system b/dot-config/bspwm/themes/.system new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/dot-config/bspwm/themes/.system diff --git a/dot-config/bspwm/themes/adaptive/apply.sh b/dot-config/bspwm/themes/adaptive/apply.sh new file mode 100755 index 00000000..c1e7d896 --- /dev/null +++ b/dot-config/bspwm/themes/adaptive/apply.sh @@ -0,0 +1,286 @@ +#!/usr/bin/env bash + +## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> +## +## Script To Apply Themes + +## Theme ------------------------------------ +BDIR="$HOME/.config/bspwm" +TDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" +THEME="${TDIR##*/}" + +source "$BDIR"/themes/"$THEME"/theme.bash +altbackground="`pastel color $background | pastel lighten $light_value | pastel format hex`" +altforeground="`pastel color $foreground | pastel darken $dark_value | pastel format hex`" +modbackground=(`pastel gradient -n 7 $background $altbackground | pastel format hex`) + +## Directories ------------------------------ +PATH_CONF="$HOME/.config" +PATH_GEANY="$PATH_CONF/geany" +PATH_BSPWM="$PATH_CONF/bspwm" +PATH_TERM="$PATH_BSPWM/alacritty" +PATH_PBAR="$PATH_BSPWM/themes/$THEME/polybar" +PATH_ROFI="$PATH_BSPWM/themes/$THEME/rofi" + +## Wallpaper --------------------------------- +apply_wallpaper() { + feh --bg-fill "$wallpaper" +} + +## Polybar ----------------------------------- +apply_polybar() { + # modify polybar launch script + sed -i -e "s/STYLE=.*/STYLE=\"$THEME\"/g" ${PATH_BSPWM}/themes/polybar.sh + + # apply default theme fonts + sed -i -e "s/font-0 = .*/font-0 = \"$polybar_font\"/g" ${PATH_PBAR}/config.ini + + # rewrite colors file + cat > ${PATH_PBAR}/colors.ini <<- EOF + [color] + + BACKGROUND = ${background} + FOREGROUND = ${foreground} + ALTBACKGROUND = ${altbackground} + ALTFOREGROUND = ${altforeground} + ACCENT = ${accent} + + BLACK = ${color0} + RED = ${color1} + GREEN = ${color2} + YELLOW = ${color3} + BLUE = ${color4} + MAGENTA = ${color5} + CYAN = ${color6} + WHITE = ${color7} + ALTBLACK = ${color8} + ALTRED = ${color9} + ALTGREEN = ${color10} + ALTYELLOW = ${color11} + ALTBLUE = ${color12} + ALTMAGENTA = ${color13} + ALTCYAN = ${color14} + ALTWHITE = ${color15} + + BACKGROUND1 = ${modbackground[1]} + BACKGROUND2 = ${modbackground[2]} + BACKGROUND3 = ${modbackground[3]} + BACKGROUND4 = ${modbackground[4]} + BACKGROUND5 = ${modbackground[5]} + BACKGROUND6 = ${modbackground[6]} + EOF +} + +# Rofi -------------------------------------- +apply_rofi() { + # modify rofi scripts + sed -i -e "s/STYLE=.*/STYLE=\"$THEME\"/g" \ + ${PATH_BSPWM}/scripts/rofi_askpass \ + ${PATH_BSPWM}/scripts/rofi_asroot \ + ${PATH_BSPWM}/scripts/rofi_launcher \ + ${PATH_BSPWM}/scripts/rofi_music \ + ${PATH_BSPWM}/scripts/rofi_powermenu \ + ${PATH_BSPWM}/scripts/rofi_runner \ + ${PATH_BSPWM}/scripts/rofi_screenshot \ + ${PATH_BSPWM}/scripts/rofi_themes \ + ${PATH_BSPWM}/scripts/rofi_windows + + # apply default theme fonts + sed -i -e "s/font:.*/font: \"$rofi_font\";/g" ${PATH_ROFI}/shared/fonts.rasi + + # rewrite colors file + cat > ${PATH_ROFI}/shared/colors.rasi <<- EOF + * { + background: ${background}; + background-alt: ${modbackground[2]}; + foreground: ${foreground}; + selected: ${accent}; + active: ${color2}; + urgent: ${color1}; + } + EOF + + # modify icon theme + if [[ -f "$PATH_CONF"/rofi/config.rasi ]]; then + sed -i -e "s/icon-theme:.*/icon-theme: \"$rofi_icon\";/g" ${PATH_CONF}/rofi/config.rasi + fi +} + +# Network Menu ------------------------------ +apply_netmenu() { + if [[ -f "$PATH_CONF"/networkmanager-dmenu/nmd.ini ]]; then + sed -i -e "s#dmenu_command = .*#dmenu_command = rofi -dmenu -theme $PATH_ROFI/networkmenu.rasi#g" ${PATH_CONF}/networkmanager-dmenu/nmd.ini + fi +} + +# Terminal ---------------------------------- +apply_terminal() { + # alacritty : fonts + sed -i ${PATH_TERM}/fonts.yml \ + -e "s/family: .*/family: \"$terminal_font_name\"/g" \ + -e "s/size: .*/size: $terminal_font_size/g" + + # alacritty : colors + cat > ${PATH_TERM}/colors.yml <<- _EOF_ + ## Colors configuration + colors: + # Default colors + primary: + background: '${background}' + foreground: '${foreground}' + + # Normal colors + normal: + black: '${color0}' + red: '${color1}' + green: '${color2}' + yellow: '${color3}' + blue: '${color4}' + magenta: '${color5}' + cyan: '${color6}' + white: '${color7}' + + # Bright colors + bright: + black: '${color8}' + red: '${color9}' + green: '${color10}' + yellow: '${color11}' + blue: '${color12}' + magenta: '${color13}' + cyan: '${color14}' + white: '${color15}' + _EOF_ +} + +# Geany ------------------------------------- +apply_geany() { + sed -i ${PATH_GEANY}/geany.conf \ + -e "s/color_scheme=.*/color_scheme=$geany_colors/g" \ + -e "s/editor_font=.*/editor_font=$geany_font/g" +} + +# Appearance -------------------------------- +apply_appearance() { + XFILE="$PATH_BSPWM/xsettingsd" + GTK2FILE="$HOME/.gtkrc-2.0" + GTK3FILE="$PATH_CONF/gtk-3.0/settings.ini" + + # apply gtk theme, icons, cursor & fonts + if [[ `pidof xsettingsd` ]]; then + sed -i -e "s|Net/ThemeName .*|Net/ThemeName \"$gtk_theme\"|g" ${XFILE} + sed -i -e "s|Net/IconThemeName .*|Net/IconThemeName \"$icon_theme\"|g" ${XFILE} + sed -i -e "s|Gtk/CursorThemeName .*|Gtk/CursorThemeName \"$cursor_theme\"|g" ${XFILE} + else + sed -i -e "s/gtk-font-name=.*/gtk-font-name=\"$gtk_font\"/g" ${GTK2FILE} + sed -i -e "s/gtk-theme-name=.*/gtk-theme-name=\"$gtk_theme\"/g" ${GTK2FILE} + sed -i -e "s/gtk-icon-theme-name=.*/gtk-icon-theme-name=\"$icon_theme\"/g" ${GTK2FILE} + sed -i -e "s/gtk-cursor-theme-name=.*/gtk-cursor-theme-name=\"$cursor_theme\"/g" ${GTK2FILE} + + sed -i -e "s/gtk-font-name=.*/gtk-font-name=$gtk_font/g" ${GTK3FILE} + sed -i -e "s/gtk-theme-name=.*/gtk-theme-name=$gtk_theme/g" ${GTK3FILE} + sed -i -e "s/gtk-icon-theme-name=.*/gtk-icon-theme-name=$icon_theme/g" ${GTK3FILE} + sed -i -e "s/gtk-cursor-theme-name=.*/gtk-cursor-theme-name=$cursor_theme/g" ${GTK3FILE} + fi + + # inherit cursor theme + if [[ -f "$HOME"/.icons/default/index.theme ]]; then + sed -i -e "s/Inherits=.*/Inherits=$cursor_theme/g" "$HOME"/.icons/default/index.theme + fi +} + +# Dunst ------------------------------------- +apply_dunst() { + # modify dunst config + sed -i ${PATH_BSPWM}/dunstrc \ + -e "s/width = .*/width = $dunst_width/g" \ + -e "s/height = .*/height = $dunst_height/g" \ + -e "s/offset = .*/offset = $dunst_offset/g" \ + -e "s/origin = .*/origin = $dunst_origin/g" \ + -e "s/font = .*/font = $dunst_font/g" \ + -e "s/frame_width = .*/frame_width = $dunst_border/g" \ + -e "s/separator_height = .*/separator_height = $dunst_separator/g" \ + -e "s/line_height = .*/line_height = $dunst_separator/g" + + # modify colors + sed -i '/urgency_low/Q' ${PATH_BSPWM}/dunstrc + cat >> ${PATH_BSPWM}/dunstrc <<- _EOF_ + [urgency_low] + timeout = 2 + background = "${background}" + foreground = "${foreground}" + frame_color = "${altbackground}" + + [urgency_normal] + timeout = 5 + background = "${background}" + foreground = "${foreground}" + frame_color = "${altbackground}" + + [urgency_critical] + timeout = 0 + background = "${background}" + foreground = "${color1}" + frame_color = "${color1}" + _EOF_ +} + +# Compositor -------------------------------- +apply_compositor() { + picom_cfg="$PATH_BSPWM/picom.conf" + + # modify picom config + sed -i "$picom_cfg" \ + -e "s/backend = .*/backend = \"$picom_backend\";/g" \ + -e "s/corner-radius = .*/corner-radius = $picom_corner;/g" \ + -e "s/shadow-radius = .*/shadow-radius = $picom_shadow_r;/g" \ + -e "s/shadow-opacity = .*/shadow-opacity = $picom_shadow_o;/g" \ + -e "s/shadow-offset-x = .*/shadow-offset-x = $picom_shadow_x;/g" \ + -e "s/shadow-offset-y = .*/shadow-offset-y = $picom_shadow_y;/g" \ + -e "s/method = .*/method = \"$picom_blur_method\";/g" \ + -e "s/strength = .*/strength = $picom_blur_strength;/g" +} + +# BSPWM ------------------------------------- +apply_bspwm() { + # modify bspwmrc + sed -i ${PATH_BSPWM}/bspwmrc \ + -e "s/BSPWM_FBC=.*/BSPWM_FBC='$bspwm_fbc'/g" \ + -e "s/BSPWM_NBC=.*/BSPWM_NBC='$bspwm_nbc'/g" \ + -e "s/BSPWM_ABC=.*/BSPWM_ABC='$bspwm_abc'/g" \ + -e "s/BSPWM_PFC=.*/BSPWM_PFC='$bspwm_pfc'/g" \ + -e "s/BSPWM_BORDER=.*/BSPWM_BORDER='$bspwm_border'/g" \ + -e "s/BSPWM_GAP=.*/BSPWM_GAP='$bspwm_gap'/g" \ + -e "s/BSPWM_SRATIO=.*/BSPWM_SRATIO='$bspwm_sratio'/g" + + # reload bspwm + bspc wm -r +} + +# Create Theme File ------------------------- +create_file() { + theme_file="$PATH_BSPWM/themes/.current" + if [[ ! -f "$theme_file" ]]; then + touch ${theme_file} + fi + echo "$THEME" > ${theme_file} +} + +# Notify User ------------------------------- +notify_user() { + dunstify -u normal -h string:x-dunst-stack-tag:applytheme -i /usr/share/archcraft/icons/dunst/themes.png "Applying Style : $THEME" +} + +## Execute Script --------------------------- +notify_user +create_file +apply_wallpaper +apply_polybar +apply_rofi +apply_netmenu +apply_terminal +apply_geany +apply_appearance +apply_dunst +apply_compositor +apply_bspwm diff --git a/dot-config/bspwm/themes/adaptive/polybar/.module b/dot-config/bspwm/themes/adaptive/polybar/.module new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/dot-config/bspwm/themes/adaptive/polybar/.module diff --git a/dot-config/bspwm/themes/adaptive/polybar/colors.ini b/dot-config/bspwm/themes/adaptive/polybar/colors.ini new file mode 100644 index 00000000..36a72dd0 --- /dev/null +++ b/dot-config/bspwm/themes/adaptive/polybar/colors.ini @@ -0,0 +1,31 @@ +[color] + +BACKGROUND = #222d32 +FOREGROUND = #c4c7c5 +ALTBACKGROUND = #415660 +ALTFOREGROUND = #767c78 +ACCENT = #00BCD4 + +BLACK = #263640 +RED = #ec7875 +GREEN = #61c766 +YELLOW = #fdd835 +BLUE = #42a5f5 +MAGENTA = #ba68c8 +CYAN = #4dd0e1 +WHITE = #bfbaac +ALTBLACK = #4a697d +ALTRED = #fb8784 +ALTGREEN = #70d675 +ALTYELLOW = #ffe744 +ALTBLUE = #51b4ff +ALTMAGENTA = #c979d7 +ALTCYAN = #5cdff0 +ALTWHITE = #fdf6e3 + +BACKGROUND1 = #273439 +BACKGROUND2 = #2c3a41 +BACKGROUND3 = #314148 +BACKGROUND4 = #364850 +BACKGROUND5 = #3c4f58 +BACKGROUND6 = #415660 diff --git a/dot-config/bspwm/themes/adaptive/polybar/config.ini b/dot-config/bspwm/themes/adaptive/polybar/config.ini new file mode 100644 index 00000000..c85f818c --- /dev/null +++ b/dot-config/bspwm/themes/adaptive/polybar/config.ini @@ -0,0 +1,307 @@ +## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +;; Global WM Settings + +[global/wm] +; Adjust the _NET_WM_STRUT_PARTIAL top value +; Used for top aligned bars +margin-bottom = 0 + +; Adjust the _NET_WM_STRUT_PARTIAL bottom value +; Used for bottom aligned bars +margin-top = 0 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +;; File Inclusion +; include an external file, like module file, etc. + +include-file = ../../system.ini +include-file = ./colors.ini +include-file = ./modules.ini +include-file = ./decor.ini + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +;; Bar Settings + +[bar/main] +; Use either of the following command to list available outputs: +; If unspecified, the application will pick the first one it finds. +; $ polybar -m | cut -d ':' -f 1 +; $ xrandr -q | grep " connected" | cut -d ' ' -f1 +monitor = ${env:MONITOR:} + +; Use the specified monitor as a fallback if the main one is not found. +monitor-fallback = + +; Require the monitor to be in connected state +; XRandR sometimes reports my monitor as being disconnected (when in use) +monitor-strict = false + +; Tell the Window Manager not to configure the window. +; Use this to detach the bar if your WM is locking its size/position. +override-redirect = false + +; Put the bar at the bottom of the screen +bottom = false + +; Prefer fixed center position for the `modules-center` block +; When false, the center position will be based on the size of the other blocks. +fixed-center = true + +; Dimension defined as pixel value (e.g. 35) or percentage (e.g. 50%), +; the percentage can optionally be extended with a pixel offset like so: +; 50%:-10, this will result in a width or height of 50% minus 10 pixels +width = 100% +height = 34 + +; Offset defined as pixel value (e.g. 35) or percentage (e.g. 50%) +; the percentage can optionally be extended with a pixel offset like so: +; 50%:-10, this will result in an offset in the x or y direction +; of 50% minus 10 pixels +offset-x = 0% +offset-y = 0% + +; Background ARGB color (e.g. #f00, #ff992a, #ddff1023) +background = ${color.BACKGROUND} + +; Foreground ARGB color (e.g. #f00, #ff992a, #ddff1023) +foreground = ${color.FOREGROUND} + +; Background gradient (vertical steps) +; background-[0-9]+ = #aarrggbb +;;background-0 = + +; Value used for drawing rounded corners +; Note: This shouldn't be used together with border-size because the border +; doesn't get rounded +; Individual top/bottom values can be defined using: +; radius-{top,bottom} +radius-top = 0.0 +radius-bottom = 0.0 + +; Under-/overline pixel size and argb color +; Individual values can be defined using: +; {overline,underline}-size +; {overline,underline}-color +line-size = 2 +line-color = ${color.ACCENT} + +; Values applied to all borders +; Individual side values can be defined using: +; border-{left,top,right,bottom}-size +; border-{left,top,right,bottom}-color +; The top and bottom borders are added to the bar height, so the effective +; window height is: +; height + border-top-size + border-bottom-size +; Meanwhile the effective window width is defined entirely by the width key and +; the border is placed withing this area. So you effectively only have the +; following horizontal space on the bar: +; width - border-right-size - border-left-size +border-top-size = 0 +border-color = ${color.ACCENT} + +; Number of spaces to add at the beginning/end of the bar +; Individual side values can be defined using: +; padding-{left,right} +padding = 0 + +; Number of spaces to add before/after each module +; Individual side values can be defined using: +; module-margin-{left,right} +module-margin-left = 0 +module-margin-right = 0 + +; Fonts are defined using <font-name>;<vertical-offset> +; Font names are specified using a fontconfig pattern. +; font-0 = "Iosevka Nerd Font:size=10;3" +; font-1 = MaterialIcons:size=10 +; font-2 = Termsynu:size=8;-1 +; font-3 = FontAwesome:size=10 +; See the Fonts wiki page for more details + +font-0 = "Iosevka Nerd Font:size=10;3" +font-1 = "Iosevka Nerd Font:size=12;3" +font-2 = "Iosevka Nerd Font:size=20;5" + +; Modules are added to one of the available blocks +; modules-left = cpu ram +; modules-center = xwindow xbrightness +; modules-right = ipc clock + +# Default +modules-left = sepL menu 1LD mod bspwm 2LD cpu 3LD used-memory 4LD filesystem 5LD +modules-center = mpd +modules-right = 2RD volume 3RD bna 4RD battery 5RD network 6RD date 7RD sysmenu sepR +# Alternate +;modules-left = openbox 2LD cpu 3LD memory 4LD filesystem 5LD +;modules-center = mpd +;modules-right = 2RD volume 3RD brightness 4RD battery 5RD network 6RD date sep + +; The separator will be inserted between the output of each module +separator = + +; This value is used to add extra spacing between elements +; @deprecated: This parameter will be removed in an upcoming version +spacing = 0 + +; Opacity value between 0.0 and 1.0 used on fade in/out +dim-value = 1.0 + +; Value to be used to set the WM_NAME atom +; If the value is empty or undefined, the atom value +; will be created from the following template: polybar-[BAR]_[MONITOR] +; NOTE: The placeholders are not available for custom values +wm-name = bspwm + +; Locale used to localize various module data (e.g. date) +; Expects a valid libc locale, for example: sv_SE.UTF-8 +locale = + +; Position of the system tray window +; If empty or undefined, tray support will be disabled +; NOTE: A center aligned tray will cover center aligned modules +; +; Available positions: +; left +; center +; right +; none +tray-position = right + +; If true, the bar will not shift its +; contents when the tray changes +tray-detached = false + +; Tray icon max size +tray-maxsize = 16 + +; DEPRECATED! Since 3.3.0 the tray always uses pseudo-transparency +; Enable pseudo transparency +; Will automatically be enabled if a fully transparent +; background color is defined using `tray-background` +; tray-transparent = false + +; Background color for the tray container +; ARGB color (e.g. #f00, #ff992a, #ddff1023) +; By default the tray container will use the bar +; background color. +tray-background = ${color.BACKGROUND6} + +; Tray offset defined as pixel value (e.g. 35) or percentage (e.g. 50%) +tray-offset-x = 0 +tray-offset-y = 0 + +; Pad the sides of each tray icon +tray-padding = 0 + +; Scale factor for tray clients +tray-scale = 1.0 + +; Restack the bar window and put it above the +; selected window manager's root +; +; Fixes the issue where the bar is being drawn +; on top of fullscreen window's +; +; Currently supported WM's: +; bspwm +; i3 (requires: `override-redirect = true`) +wm-restack = bspwm + +; Set a DPI values used when rendering text +; This only affects scalable fonts +; dpi = + +; Enable support for inter-process messaging +; See the Messaging wiki page for more details. +enable-ipc = true + +; Fallback click handlers that will be called if +; there's no matching module handler found. +click-left = +click-middle = +click-right = +scroll-up = bspc desktop -f prev.local +scroll-down = bspc desktop -f next.local +double-click-left = +double-click-middle = +double-click-right = + +; Requires polybar to be built with xcursor support (xcb-util-cursor) +; Possible values are: +; - default : The default pointer as before, can also be an empty string (default) +; - pointer : Typically in the form of a hand +; - ns-resize : Up and down arrows, can be used to indicate scrolling +cursor-click = +cursor-scroll = + +;; WM Workspace Specific + +; bspwm +;;scroll-up = bspwm-desknext +;;scroll-down = bspwm-deskprev +;;scroll-up = bspc desktop -f prev.local +;;scroll-down = bspc desktop -f next.local + +;i3 +;;scroll-up = i3wm-wsnext +;;scroll-down = i3wm-wsprev +;;scroll-up = i3-msg workspace next_on_output +;;scroll-down = i3-msg workspace prev_on_output + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +;; Application Settings + +[settings] +; The throttle settings lets the eventloop swallow up til X events +; if they happen within Y millisecond after first event was received. +; This is done to prevent flood of update event. +; +; For example if 5 modules emit an update event at the same time, we really +; just care about the last one. But if we wait too long for events to swallow +; the bar would appear sluggish so we continue if timeout +; expires or limit is reached. +throttle-output = 5 +throttle-output-for = 10 + +; Time in milliseconds that the input handler will wait between processing events +;throttle-input-for = 30 + +; Reload upon receiving XCB_RANDR_SCREEN_CHANGE_NOTIFY events +screenchange-reload = false + +; Compositing operators +; @see: https://www.cairographics.org/manual/cairo-cairo-t.html#cairo-operator-t +compositing-background = source +compositing-foreground = over +compositing-overline = over +compositing-underline = over +compositing-border = over + +; Define fallback values used by all module formats +;format-foreground = +;format-background = +;format-underline = +;format-overline = +;format-spacing = +;format-padding = +;format-margin = +;format-offset = + +; Enables pseudo-transparency for the bar +; If set to true the bar can be transparent without a compositor. +pseudo-transparency = false + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ +;; __________ ______ +;; / ____/ __ \/ ____/ +;; / __/ / / / / /_ +;; / /___/ /_/ / __/ +;; /_____/\____/_/ +;; +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ diff --git a/dot-config/bspwm/themes/adaptive/polybar/decor.ini b/dot-config/bspwm/themes/adaptive/polybar/decor.ini new file mode 100644 index 00000000..db6e55a4 --- /dev/null +++ b/dot-config/bspwm/themes/adaptive/polybar/decor.ini @@ -0,0 +1,92 @@ +## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + +;; DECOR _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/sepL] +type = custom/text +content = -- +content-background = ${color.BACKGROUND5} +content-foreground = ${color.BACKGROUND5} + +[module/sepR] +type = custom/text +content = -- +content-background = ${color.BACKGROUND6} +content-foreground = ${color.BACKGROUND6} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/1LD] +type = custom/text +content = "%{T3}%{T-}" +content-background = ${color.BACKGROUND4} +content-foreground = ${color.BACKGROUND5} + +[module/2LD] +type = custom/text +content = "%{T3}%{T-}" +content-background = ${color.BACKGROUND3} +content-foreground = ${color.BACKGROUND4} + +[module/3LD] +type = custom/text +content = "%{T3}%{T-}" +content-background = ${color.BACKGROUND2} +content-foreground = ${color.BACKGROUND3} + +[module/4LD] +type = custom/text +content = "%{T3}%{T-}" +content-background = ${color.BACKGROUND1} +content-foreground = ${color.BACKGROUND2} + +[module/5LD] +type = custom/text +content = "%{T3}%{T-}" +content-background = ${color.BACKGROUND} +content-foreground = ${color.BACKGROUND1} + +[module/7RD] +type = custom/text +content = "%{T3}%{T-}" +content-background = ${color.BACKGROUND6} +content-foreground = ${color.BACKGROUND5} + +[module/6RD] +type = custom/text +content = "%{T3}%{T-}" +content-background = ${color.BACKGROUND5} +content-foreground = ${color.BACKGROUND4} + +[module/5RD] +type = custom/text +content = "%{T3}%{T-}" +content-background = ${color.BACKGROUND4} +content-foreground = ${color.BACKGROUND3} + +[module/4RD] +type = custom/text +content = "%{T3}%{T-}" +content-background = ${color.BACKGROUND3} +content-foreground = ${color.BACKGROUND2} + +[module/3RD] +type = custom/text +content = "%{T3}%{T-}" +content-background = ${color.BACKGROUND2} +content-foreground = ${color.BACKGROUND1} + +[module/2RD] +type = custom/text +content = "%{T3}%{T-}" +content-background = ${color.BACKGROUND} +content-foreground = ${color.BACKGROUND1} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ +;; __________ ______ +;; / ____/ __ \/ ____/ +;; / __/ / / / / /_ +;; / /___/ /_/ / __/ +;; /_____/\____/_/ +;; +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ diff --git a/dot-config/bspwm/themes/adaptive/polybar/launch.sh b/dot-config/bspwm/themes/adaptive/polybar/launch.sh new file mode 100755 index 00000000..ae47b54c --- /dev/null +++ b/dot-config/bspwm/themes/adaptive/polybar/launch.sh @@ -0,0 +1,42 @@ +#!/usr/bin/env bash + +## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" +CARD="$(light -L | grep 'backlight' | head -n1 | cut -d'/' -f3)" +INTERFACE="$(ip link | awk '/state UP/ {print $2}' | tr -d :)" +RFILE="$DIR/.module" + +# Fix backlight and network modules +fix_modules() { + if [[ -z "$CARD" ]]; then + sed -i -e 's/backlight/bna/g' "$DIR"/config.ini + elif [[ "$CARD" != *"intel_"* ]]; then + sed -i -e 's/backlight/brightness/g' "$DIR"/config.ini + fi + + if [[ "$INTERFACE" == e* ]]; then + sed -i -e 's/network/ethernet/g' "$DIR"/config.ini + fi +} + +# Launch the bar +launch_bar() { + # Terminate already running bar instances + killall -q polybar + + # Wait until the processes have been shut down + while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done + + # Launch the bar + for mon in $(polybar --list-monitors | cut -d":" -f1); do + MONITOR=$mon polybar -q main -c "$DIR"/config.ini & + done +} + +# Execute functions +if [[ ! -f "$RFILE" ]]; then + fix_modules + touch "$RFILE" +fi +launch_bar diff --git a/dot-config/bspwm/themes/adaptive/polybar/modules.ini b/dot-config/bspwm/themes/adaptive/polybar/modules.ini new file mode 100644 index 00000000..93f48a44 --- /dev/null +++ b/dot-config/bspwm/themes/adaptive/polybar/modules.ini @@ -0,0 +1,1007 @@ +## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/bspwm] +type = internal/bspwm + +pin-workspaces = true +inline-mode = false + +enable-click = true +enable-scroll = true +reverse-scroll = true + +fuzzy-match = true + +; ws-icon-[0-9]+ = label;icon +; Note that the label needs to correspond with the bspwm workspace name +ws-icon-0 = 1; +ws-icon-1 = 2; +ws-icon-2 = 3; +ws-icon-3 = 4; +ws-icon-4 = 5; +ws-icon-5 = 6; +ws-icon-6 = 7; +ws-icon-7 = 8; +ws-icon-default = + +format = <label-state> +format-background = ${color.BACKGROUND4} +format-font = 1 + +label-monitor = %name% + +; If any values for label-dimmed-N are defined, the workspace/mode +; colors will get overridden with those values if the monitor is out of focus +; To only override workspaces in a specific state, use: +; label-dimmed-focused +; label-dimmed-occupied +; label-dimmed-urgent +; label-dimmed-empty +;label-dimmed-foreground = ${color.FOREGROUND} +;label-dimmed-underline = ${color.YELLOW} +;label-dimmed-focused-background = ${color.BACKGROUND} + +label-focused = %name% +label-focused-foreground = ${color.RED} +label-focused-underline = ${color.RED} +label-focused-padding = 1 + +label-occupied = %name% +label-occupied-foreground = ${color.ACCENT} +;label-occupied-underline = ${color.ACCENT} +label-occupied-padding = 1 + +label-urgent = %name% +label-urgent-foreground = ${color.GREEN} +label-urgent-underline = ${color.GREEN} +label-urgent-padding = 1 + +label-empty = %name% +label-empty-foreground = ${color.FOREGROUND} +label-empty-padding = 1 + +; Separator in between workspaces +label-separator = "" +label-separator-padding = 0 +label-separator-foreground = ${color.ALTBACKGROUND} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/mod] +type = internal/bspwm + +format = (<label-mode>) +format-background = ${color.BACKGROUND4} +format-foreground = ${color.YELLOW} +format-padding = 1 + +label-monocle = "M" +label-tiled = "T" + +label-floating = ", FL" +label-pseudotiled = ", PS" +label-fullscreen = ", FU" + +label-locked = " | L" +label-sticky = " | S" +label-private = " | P" + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/bna] +type = custom/text + +content = " NA" +content-prefix = +content-prefix-font = 2 +content-prefix-foreground = ${color.RED} +content-background = ${color.BACKGROUND2} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/backlight] +type = internal/xbacklight + +; Use the following command to list available cards: +; $ ls -1 /sys/class/backlight/ +card = intel_backlight + +; Available tags: +; <label> (default) +; <ramp> +; <bar> +format = <ramp> <label> +format-background = ${color.BACKGROUND2} + +; Available tokens: +; %percentage% (default) +label = %percentage%% + +; Only applies if <ramp> is used + +ramp-0 = +ramp-1 = +ramp-2 = +ramp-3 = +ramp-4 = +ramp-5 = +ramp-6 = +ramp-7 = +ramp-8 = +ramp-9 = +ramp-font = 2 +ramp-foreground = ${color.CYAN} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/brightness] +type = internal/backlight + +; Use the following command to list available cards: +; $ ls -1 /sys/class/backlight/ +card = ${system.sys_graphics_card} + +enable-scroll = true + +; Available tags: +; <label> (default) +; <ramp> +; <bar> +format = <ramp> <label> +format-background = ${color.BACKGROUND2} + +; Available tokens: +; %percentage% (default) +label = %percentage%% + +; Only applies if <ramp> is used + +ramp-0 = +ramp-1 = +ramp-2 = +ramp-3 = +ramp-4 = +ramp-5 = +ramp-6 = +ramp-7 = +ramp-8 = +ramp-9 = +ramp-font = 2 +ramp-foreground = ${color.CYAN} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/battery] +type = internal/battery + +; This is useful in case the battery never reports 100% charge +full-at = 99 + +; Use the following command to list batteries and adapters: +; $ ls -1 /sys/class/power_supply/ +battery = ${system.sys_battery} +adapter = ${system.sys_adapter} + +; If an inotify event haven't been reported in this many +; seconds, manually poll for new values. +; +; Needed as a fallback for systems that don't report events +; on sysfs/procfs. +; +; Disable polling by setting the interval to 0. +; +; Default: 5 +poll-interval = 2 + +; see "man date" for details on how to format the time string +; NOTE: if you want to use syntax tags here you need to use %%{...} +; Default: %H:%M:%S +time-format = %H:%M + +; Available tags: +; <label-charging> (default) +; <bar-capacity> +; <ramp-capacity> +; <animation-charging> +format-charging = <animation-charging> <label-charging> +format-charging-prefix = " " +format-charging-prefix-font = 1 +format-charging-prefix-foreground = ${color.RED} +format-charging-background = ${color.BACKGROUND3} + +; Available tags: +; <label-discharging> (default) +; <bar-capacity> +; <ramp-capacity> +; <animation-discharging> +format-discharging = <ramp-capacity> <label-discharging> +format-discharging-background = ${color.BACKGROUND3} + +; Available tags: +; <label-full> (default) +; <bar-capacity> +; <ramp-capacity> +;format-full = <ramp-capacity> <label-full> + +; Available tokens: +; %percentage% (default) +; %time% +; %consumption% (shows current charge rate in watts) + +label-charging = %percentage%% + +; Available tokens: +; %percentage% (default) +; %time% +; %consumption% (shows current discharge rate in watts) +label-discharging = %percentage%% + +; Available tokens: +; %percentage% (default) +format-full = <label-full> +format-full-prefix = " " +format-full-prefix-font = 2 +format-full-prefix-foreground = ${color.GREEN} +format-full-background = ${color.BACKGROUND3} +label-full = %percentage%% + +; Only applies if <ramp-capacity> is used +ramp-capacity-0 = +ramp-capacity-1 = +ramp-capacity-2 = +ramp-capacity-3 = +ramp-capacity-4 = +ramp-capacity-foreground = ${color.YELLOW} +ramp-capacity-font = 2 + +; Only applies if <animation-charging> is used +animation-charging-0 = +animation-charging-1 = +animation-charging-2 = +animation-charging-3 = +animation-charging-4 = +animation-charging-foreground = ${color.GREEN} +animation-charging-font = 2 +animation-charging-framerate = 700 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/cpu] +type = internal/cpu + +; Seconds to sleep between updates +; Default: 1 +interval = 0.5 + +; Available tags: +; <label> (default) +; <bar-load> +; <ramp-load> +; <ramp-coreload> +;;format = <label> <ramp-coreload> +format = <label> +format-prefix = +format-prefix-font = 2 +format-prefix-foreground = ${color.YELLOW} +format-background = ${color.BACKGROUND3} + +; Available tokens: +; %percentage% (default) - total cpu load averaged over all cores +; %percentage-sum% - Cumulative load on all cores +; %percentage-cores% - load percentage for each core +; %percentage-core[1-9]% - load percentage for specific core +label = " %percentage%%" + +; Spacing between individual per-core ramps +;;ramp-coreload-spacing = 1 +;;ramp-coreload-0 = +;;ramp-coreload-1 = +;;ramp-coreload-2 = +;;ramp-coreload-3 = +;;ramp-coreload-4 = + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/date] +type = internal/date + +; Seconds to sleep between updates +interval = 1.0 + +; See "http://en.cppreference.com/w/cpp/io/manip/put_time" for details on how to format the date string +; NOTE: if you want to use syntax tags here you need to use %%{...} +;;date = %Y-%m-%d% + +; Optional time format +time = %I:%M %p + +; if `date-alt` or `time-alt` is defined, clicking +; the module will toggle between formats +;;date-alt = %A, %d %B %Y +#time-alt = %d/%m/%Y% +time-alt = %b %d, %G + +; Available tags: +; <label> (default) + +format = <label> +format-prefix = " " +format-prefix-font = 2 +format-prefix-foreground = ${color.GREEN} +format-background = ${color.BACKGROUND5} + +; Available tokens: +; %date% +; %time% +; Default: %date% +label = %time% + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/filesystem] +type = internal/fs + +; Mountpoints to display +mount-0 = / +;;mount-1 = /home +;;mount-2 = /var + +; Seconds to sleep between updates +; Default: 30 +interval = 10 + +; Display fixed precision values +; Default: false +fixed-values = true + +; Spacing between entries +; Default: 2 +;;spacing = 4 + +; Available tags: +; <label-mounted> (default) +; <bar-free> +; <bar-used> +; <ramp-capacity> +format-mounted = <label-mounted> +format-mounted-background = ${color.BACKGROUND1} + +format-mounted-prefix = +format-mounted-prefix-font = 2 +format-mounted-prefix-foreground = ${color.MAGENTA} + +; Available tags: +; <label-unmounted> (default) +format-unmounted = <label-unmounted> +format-unmounted-background = ${color.BACKGROUND1} + +format-unmounted-prefix = +format-unmounted-prefix-font = 2 +format-unmounted-prefix-foreground = ${color.MAGENTA} + +; Available tokens: +; %mountpoint% +; %type% +; %fsname% +; %percentage_free% +; %percentage_used% +; %total% +; %free% +; %used% +; Default: %mountpoint% %percentage_free%% +label-mounted = " %free%" + +; Available tokens: +; %mountpoint% +; Default: %mountpoint% is not mounted +label-unmounted = " %mountpoint%: NM" + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/memory] +type = internal/memory + +; Seconds to sleep between updates +; Default: 1 +interval = 3 + +; Available tags: +; <label> (default) +; <bar-used> +; <bar-free> +; <ramp-used> +; <ramp-free> +; <bar-swap-used> +; <bar-swap-free> +; <ramp-swap-used> +; <ramp-swap-free> +format = <label> +format-background = ${color.BACKGROUND2} + +format-prefix = +format-prefix-font = 2 +format-prefix-foreground = ${color.BLUE} + +; Available tokens: +; %percentage_used% (default) +; %percentage_free% +; %gb_used% +; %gb_free% +; %gb_total% +; %mb_used% +; %mb_free% +; %mb_total% +; %percentage_swap_used% +; %percentage_swap_free% +; %mb_swap_total% +; %mb_swap_free% +; %mb_swap_used% +; %gb_swap_total% +; %gb_swap_free% +; %gb_swap_used% + +label = " %mb_used%" + +; Only applies if <ramp-used> is used +;;ramp-used-0 = +;;ramp-used-1 = +;;ramp-used-2 = +;;ramp-used-3 = +;;ramp-used-4 = + +; Only applies if <ramp-free> is used +;;ramp-free-0 = +;;ramp-free-1 = +;;ramp-free-2 = +;;ramp-free-3 = +;;ramp-free-4 = + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/used-memory] +type = custom/script + +exec = free -m | grep 'Mem:' | tr -s ' ' | cut -d ' ' -f3 + +tail = true +interval = 5 + +format = <label> +format-background = ${color.BACKGROUND2} + +format-prefix = +format-prefix-font = 2 +format-prefix-foreground = ${color.BLUE} + +label = " %output% MB" + +click-left = alacritty --class 'alacritty-float,alacritty-float' --config-file ~/.config/bspwm/alacritty/alacritty.yml -e "top" & + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/mpd] +type = internal/mpd + +; Host where mpd is running (either ip or domain name) +; Can also be the full path to a unix socket where mpd is running. +;;host = 127.0.0.1 +;;port = 6600 +;;password = mysecretpassword + +; Seconds to sleep between progressbar/song timer sync +; Default: 1 +interval = 2 + +; Available tags: +; <label-song> (default) +; <label-time> +; <bar-progress> +; <toggle> - gets replaced with <icon-(pause|play)> +; <toggle-stop> - gets replaced with <icon-(stop|play)> +; <icon-random> +; <icon-repeat> +; <icon-repeatone> (deprecated) +; <icon-single> - Toggle playing only a single song. Replaces <icon-repeatone> +; <icon-consume> +; <icon-prev> +; <icon-stop> +; <icon-play> +; <icon-pause> +; <icon-next> +; <icon-seekb> +; <icon-seekf> + +format-online = <icon-prev> <toggle> <icon-next> <label-song> +;;format-online-prefix = " " +;;format-online-prefix-font = 2 +;;format-online-prefix-foreground = ${color.GREEN} + +format-playing = ${self.format-online} +format-paused = ${self.format-online} +format-stopped = Play Again <icon-prev> <toggle> <icon-next> + +; Available tags: +; <label-offline> +;format-offline = <label-offline> + +; Available tokens: +; %artist% +; %album-artist% +; %album% +; %date% +; %title% +; Default: %artist% - %title% +label-song = "%title%" +label-song-maxlen = 25 +label-song-ellipsis = true + +; Available tokens: +; %elapsed% +; %total% +; Default: %elapsed% / %total% +;;abel-time = %elapsed% / %total% + +; Available tokens: +; None +label-offline = "Offline" + +; Only applies if <icon-X> is used +icon-play = +icon-play-font = 2 +icon-play-foreground = ${color.GREEN} +icon-pause = +icon-pause-font = 2 +icon-pause-foreground = ${color.YELLOW} +icon-stop = +icon-stop-foreground = ${color.RED} +icon-prev = 玲 +icon-prev-font = 2 +icon-prev-foreground = ${color.CYAN} +icon-next = 怜 +icon-next-font = 2 +icon-next-foreground = ${color.CYAN} + +; Used to display the state of random/repeat/repeatone/single +; Only applies if <icon-[random|repeat|repeatone|single]> is used +;;toggle-on-foreground = #ff +;;toggle-off-foreground = #55 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +; If you use both a wired and a wireless network, Add both modules in config.ini +[module/ethernet] +type = internal/network +interface = ${system.sys_network_interface} + +interval = 1.0 +accumulate-stats = true +unknown-as-up = true + +format-connected = <label-connected> +format-connected-prefix = "歷 " +format-connected-prefix-foreground = ${color.MAGENTA} +format-connected-prefix-font = 2 +format-connected-background = ${color.BACKGROUND4} + +format-disconnected = <label-disconnected> +format-disconnected-prefix = "轢 " +format-disconnected-prefix-font = 2 +format-disconnected-foreground = ${color.ALTFOREGROUND} +format-disconnected-background = ${color.BACKGROUND4} + +label-connected = "%{A1:nmd &:}%downspeed% | %upspeed%%{A}" +label-disconnected = "%{A1:nmd &:}Offline%{A}" + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +; Normal Module +[module/network] +type = internal/network +interface = ${system.sys_network_interface} + +; Seconds to sleep between updates +; Default: 1 +interval = 1.0 + +; Test connectivity every Nth update +; A value of 0 disables the feature +; NOTE: Experimental (needs more testing) +; Default: 0 +;ping-interval = 3 + +; @deprecated: Define min width using token specifiers (%downspeed:min% and %upspeed:min%) +; Minimum output width of upload/download rate +; Default: 3 +;;udspeed-minwidth = 5 + +; Accumulate values from all interfaces +; when querying for up/downspeed rate +; Default: false +accumulate-stats = true + +; Consider an `UNKNOWN` interface state as up. +; Some devices have an unknown state, even when they're running +; Default: false +unknown-as-up = true + +; Available tags: +; <label-connected> (default) +; <ramp-signal> +format-connected = <ramp-signal> <label-connected> +format-connected-background = ${color.BACKGROUND4} + +; Available tags: +; <label-disconnected> (default) + +format-disconnected = <label-disconnected> +format-disconnected-prefix = "睊 " +format-disconnected-prefix-font = 2 +format-disconnected-foreground = ${color.ALTFOREGROUND} +format-disconnected-background = ${color.BACKGROUND4} + +; Available tags: +; <label-connected> (default) +; <label-packetloss> +; <animation-packetloss> +;;format-packetloss = <animation-packetloss> <label-connected> + +; Available tokens: +; %ifname% [wireless+wired] +; %local_ip% [wireless+wired] +; %local_ip6% [wireless+wired] +; %essid% [wireless] +; %signal% [wireless] +; %upspeed% [wireless+wired] +; %downspeed% [wireless+wired] +; %linkspeed% [wired] +; Default: %ifname% %local_ip% +;label-connected = "%essid% %downspeed%" +label-connected = "%{A1:nmd &:}%essid%%{A}" + +; Available tokens: +; %ifname% [wireless+wired] +; Default: (none) +label-disconnected = "%{A1:nmd &:}Offline%{A}" + +; Available tokens: +; %ifname% [wireless+wired] +; %local_ip% [wireless+wired] +; %local_ip6% [wireless+wired] +; %essid% [wireless] +; %signal% [wireless] +; %upspeed% [wireless+wired] +; %downspeed% [wireless+wired] +; %linkspeed% [wired] +; Default: (none) +;label-packetloss = %essid% +;label-packetloss-foreground = #eefafafa + +; Only applies if <ramp-signal> is used +ramp-signal-0 = 直 +ramp-signal-1 = 直 +ramp-signal-2 = 直 +ramp-signal-3 = 直 +ramp-signal-4 = 直 +ramp-signal-foreground = ${color.MAGENTA} +ramp-signal-font = 2 + +; Only applies if <animation-packetloss> is used +;;animation-packetloss-0 = ⚠ +;;animation-packetloss-0-foreground = #ffa64c +;;animation-packetloss-1 = ⚠ +;;animation-packetloss-1-foreground = #000000 +; Framerate in milliseconds +;;animation-packetloss-framerate = 500 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/volume] +type = internal/pulseaudio + +; Sink to be used, if it exists (find using `pacmd list-sinks`, name field) +; If not, uses default sink +sink = alsa_output.pci-0000_12_00.3.analog-stereo + +; Use PA_VOLUME_UI_MAX (~153%) if true, or PA_VOLUME_NORM (100%) if false +; Default: true +use-ui-max = false + +; Interval for volume increase/decrease (in percent points) +; Default: 5 +interval = 5 + +; Available tags: +; <label-volume> (default) +; <ramp-volume> +; <bar-volume> +format-volume = <ramp-volume> <label-volume> +format-volume-background = ${color.BACKGROUND1} + +; Available tags: +; <label-muted> (default) +; <ramp-volume> +; <bar-volume> +format-muted = <label-muted> +format-muted-prefix = 婢 +format-muted-prefix-font = 2 +format-muted-prefix-foreground = ${color.ALTFOREGROUND} +format-muted-background = ${color.BACKGROUND1} + +; Available tokens: +; %percentage% (default) +;label-volume = %percentage%% + +; Available tokens: +; %percentage% (default) +label-muted = " Mute" +label-muted-foreground = ${color.ALTFOREGROUND} + +; Only applies if <ramp-volume> is used +ramp-volume-0 = 奄 +ramp-volume-1 = 奄 +ramp-volume-2 = 奄 +ramp-volume-3 = 奔 +ramp-volume-4 = 奔 +ramp-volume-5 = 奔 +ramp-volume-6 = 墳 +ramp-volume-7 = 墳 +ramp-volume-8 = 墳 +ramp-volume-9 = 墳 +ramp-volume-font = 2 +ramp-volume-foreground = ${color.BLUE} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/temperature] +type = internal/temperature + +; Seconds to sleep between updates +; Default: 1 +interval = 0.5 + +; Thermal zone to use +; To list all the zone types, run +; $ for i in /sys/class/thermal/thermal_zone*; do echo "$i: $(<$i/type)"; done +; Default: 0 +thermal-zone = 0 + +; Full path of temperature sysfs path +; Use `sensors` to find preferred temperature source, then run +; $ for i in /sys/class/hwmon/hwmon*/temp*_input; do echo "$(<$(dirname $i)/name): $(cat ${i%_*}_label 2>/dev/null || echo $(basename ${i%_*})) $(readlink -f $i)"; done +; to find path to desired file +; Default reverts to thermal zone setting +;;hwmon-path = /sys/devices/platform/coretemp.0/hwmon/hwmon2/temp1_input + +; Threshold temperature to display warning label (in degrees celsius) +; Default: 80 +warn-temperature = 60 + +; Whether or not to show units next to the temperature tokens (°C, °F) +; Default: true +units = true + +; Available tags: +; <label> (default) +; <ramp> +format = <ramp> <label> + +; Available tags: +; <label-warn> (default) +; <ramp> +format-warn = <ramp> <label-warn> + +; Available tokens: +; %temperature% (deprecated) +; %temperature-c% (default, temperature in °C) +; %temperature-f% (temperature in °F) +label = %temperature-c% + +; Available tokens: +; %temperature% (deprecated) +; %temperature-c% (default, temperature in °C) +; %temperature-f% (temperature in °F) +label-warn = "%temperature-c%" +label-warn-foreground = ${color.RED} + +; Requires the <ramp> tag +; The icon selection will range from 0 to `warn-temperature` +; with the current temperature as index. +ramp-0 = +ramp-1 = +ramp-2 = +ramp-3 = +ramp-4 = +ramp-5 = +ramp-6 = +ramp-7 = +ramp-8 = +ramp-9 = +ramp-font = 2 +ramp-foreground = ${color.YELLOW} +;;ramp-foreground = #55 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/keyboard] +type = internal/xkeyboard + +; List of indicators to ignore +;blacklist-0 = num lock +blacklist-1 = scroll lock + +; Available tags: +; <label-layout> (default) +; <label-indicator> (default) +format = <label-layout> <label-indicator> +format-prefix = " " +format-prefix-font = 2 +format-prefix-foreground = ${color.MAGENTA} +;;format-spacing = 0 + +; Available tokens: +; %layout% +; %name% +; %number% +; Default: %layout% +label-layout = %name% +;;label-layout-padding = 2 +;;label-layout-background = #bc99ed +;;label-layout-foreground = #000 + +; Available tokens: +; %name% +; Default: %name% +label-indicator-on = " %name%" +;;label-indicator-padding = 2 +label-indicator-on-foreground = ${color.CYAN} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/title] +type = internal/xwindow + +; Available tags: +; <label> (default) +format = <label> +format-prefix = " " +format-prefix-font = 2 +format-prefix-foreground = ${color.BLUE} + +; Available tokens: +; %title% +; Default: %title% +label = %title% +label-maxlen = 25 + +; Used instead of label when there is no window title +; Available tokens: +; None +;label-empty = Desktop +;label-empty-foreground = ${color.BACKGROUNDA} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/openbox] +type = internal/xworkspaces + +; Only show workspaces defined on the same output as the bar +; +; Useful if you want to show monitor specific workspaces +; on different bars +; +; Default: false +pin-workspaces = true + +; Create click handler used to focus desktop +; Default: true +enable-click = true + +; Create scroll handlers used to cycle desktops +; Default: true +enable-scroll = true + +; icon-[0-9]+ = <desktop-name>;<icon> +; NOTE: The desktop name needs to match the name configured by the WM +; You can get a list of the defined desktops using: +; $ xprop -root _NET_DESKTOP_NAMES +icon-0 = 1; +icon-1 = 2; +icon-2 = 3; +icon-3 = 4; +icon-4 = 5; +icon-default = + +; Available tags: +; <label-monitor> +; <label-state> - gets replaced with <label-(active|urgent|occupied|empty)> +; Default: <label-state> +format = <label-state> +format-background = ${color.BACKGROUND4} +format-font = 1 + +; Available tokens: +; %name% +; Default: %name% +label-monitor = %name% + +; Available tokens: +; %name% +; %icon% +; %index% +; Default: %icon% %name% +label-active = +label-active-foreground = ${color.RED} +;;label-active-underline = ${color.BACKGROUNDA} + +; Available tokens: +; %name% +; %icon% +; %index% +; Default: %icon% %name% +label-occupied = +label-occupied-foreground = ${color.ACCENT} +;;label-occupied-underline = ${color.BACKGROUNDA} + +; Available tokens: +; %name% +; %icon% +; %index% +; Default: %icon% %name% +label-urgent = +label-urgent-foreground = ${color.GREEN} +;;label-urgent-underline = ${color.BACKGROUNDA} + +; Available tokens: +; %name% +; %icon% +; %index% +; Default: %icon% %name% +label-empty = %icon% +label-empty-foreground = ${color.ACCENT} + +label-active-padding = 1 +label-urgent-padding = 1 +label-occupied-padding = 1 +label-empty-padding = 1 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/menu] +type = custom/text + +content = +content-font = 2 +content-background = ${color.BACKGROUND5} +content-foreground = ${color.GREEN} +content-padding = 0 + +click-left = ~/.config/bspwm/scripts/rofi_launcher +;;click-middle = path_to_script +click-right = ~/.config/bspwm/scripts/rofi_runner + +;;scroll-up = path_to_script +;;scroll-down = path_to_script + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/sysmenu] +type = custom/text + +content = +content-font = 2 +content-background = ${color.BACKGROUND6} +content-foreground = ${color.RED} +content-padding = 0 + +click-left = ~/.config/bspwm/scripts/rofi_powermenu + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ +;; __________ ______ +;; / ____/ __ \/ ____/ +;; / __/ / / / / /_ +;; / /___/ /_/ / __/ +;; /_____/\____/_/ +;; +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ diff --git a/dot-config/bspwm/themes/adaptive/rofi/askpass.rasi b/dot-config/bspwm/themes/adaptive/rofi/askpass.rasi new file mode 100644 index 00000000..f8ec6288 --- /dev/null +++ b/dot-config/bspwm/themes/adaptive/rofi/askpass.rasi @@ -0,0 +1,75 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/*****----- Main Window -----*****/ +window { + location: center; + anchor: center; + fullscreen: false; + width: 350px; + x-offset: 0px; + y-offset: 0px; + padding: 15px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: @background; + cursor: "default"; + children: [ "inputbar", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + children: [ "textbox-prompt-colon", "prompt", "entry" ]; +} + +dummy { + expand: false; + width: 10px; + background-color: transparent; +} +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + padding: 10px 13px; + border-radius: 0px; + background-color: @urgent; + text-color: @background; +} +prompt { + enabled: true; + padding: 10px; + border-radius: 0px; + background-color: @selected; + text-color: @background; +} +entry { + enabled: true; + padding: 10px 15px; + border-radius: 0px; + background-color: @background-alt; + text-color: inherit; + cursor: text; + placeholder: "Password"; + placeholder-color: inherit; +} + +/*****----- Listview -----*****/ +listview { + enabled: false; +} diff --git a/dot-config/bspwm/themes/adaptive/rofi/asroot.rasi b/dot-config/bspwm/themes/adaptive/rofi/asroot.rasi new file mode 100644 index 00000000..e38c8218 --- /dev/null +++ b/dot-config/bspwm/themes/adaptive/rofi/asroot.rasi @@ -0,0 +1,147 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + show-icons: false; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/* +USE_ICON=NO +*/ + +/*****----- Main Window -----*****/ +window { + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 400px; + x-offset: 0px; + y-offset: 0px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + cursor: "default"; + background-color: @background; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 20px; + background-color: transparent; + children: [ "inputbar", "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 0px; + padding: 0px; + border: 0px; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + children: [ "textbox-prompt-colon", "prompt"]; +} + +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + padding: 10px 12px; + border-radius: 0px; + background-color: @urgent; + text-color: @background; +} +prompt { + enabled: true; + padding: 10px; + border-radius: 0px; + background-color: @background; + text-color: @foreground; +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: @background-alt; + text-color: @foreground; +} +textbox { + background-color: inherit; + text-color: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 1; + lines: 5; + cycle: true; + scrollbar: false; + layout: vertical; + + spacing: 5px; + background-color: transparent; + cursor: "default"; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + cursor: pointer; +} +element-text { + background-color: transparent; + text-color: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +element normal.normal, +element alternate.normal { + background-color: var(background); + text-color: var(foreground); +} +element normal.urgent, +element alternate.urgent, +element selected.active { + background-color: var(urgent); + text-color: var(background); +} +element normal.active, +element alternate.active, +element selected.urgent { + background-color: var(active); + text-color: var(background); +} +element selected.normal { + background-color: var(selected); + text-color: var(background); +} diff --git a/dot-config/bspwm/themes/adaptive/rofi/confirm.rasi b/dot-config/bspwm/themes/adaptive/rofi/confirm.rasi new file mode 100644 index 00000000..9d86107a --- /dev/null +++ b/dot-config/bspwm/themes/adaptive/rofi/confirm.rasi @@ -0,0 +1,147 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + show-icons: false; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/* +USE_ICON=NO +*/ + +/*****----- Main Window -----*****/ +window { + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 250px; + x-offset: 0px; + y-offset: 0px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + cursor: "default"; + background-color: @background; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 20px; + background-color: transparent; + children: [ "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + padding: 0px; + border: 0px; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + children: [ "textbox-prompt-colon", "prompt"]; +} + +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + padding: 10px 14px; + border-radius: 100%; + background-color: @urgent; + text-color: @background; +} +prompt { + enabled: true; + padding: 10px; + border-radius: 20px; + background-color: @active; + text-color: @background; +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: @urgent; + text-color: @background; +} +textbox { + background-color: inherit; + text-color: inherit; + vertical-align: 0.5; + horizontal-align: 0.5; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 1; + lines: 2; + cycle: true; + scrollbar: false; + layout: vertical; + + spacing: 10px; + background-color: transparent; + cursor: "default"; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + padding: 10px 10px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + cursor: pointer; +} +element-text { + background-color: transparent; + text-color: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.5; +} + +element normal.normal, +element alternate.normal { + background-color: var(background-alt); + text-color: var(foreground); +} +element normal.urgent, +element alternate.urgent, +element selected.active { + background-color: var(urgent); + text-color: var(background); +} +element normal.active, +element alternate.active, +element selected.urgent { + background-color: var(active); + text-color: var(background); +} +element selected.normal { + background-color: var(selected); + text-color: var(background); +} diff --git a/dot-config/bspwm/themes/adaptive/rofi/launcher.rasi b/dot-config/bspwm/themes/adaptive/rofi/launcher.rasi new file mode 100644 index 00000000..553a6e5a --- /dev/null +++ b/dot-config/bspwm/themes/adaptive/rofi/launcher.rasi @@ -0,0 +1,303 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + modi: "drun,run,filebrowser,window"; + show-icons: true; + display-drun: " Apps"; + display-run: " Run"; + display-filebrowser: " Files"; + display-window: " Windows"; + drun-display-format: "{name}"; + window-format: "{c} · {t}"; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +* { + border-colour: var(selected); + handle-colour: var(selected); + background-colour: var(background); + foreground-colour: var(foreground); + alternate-background: var(background-alt); + normal-background: var(background); + normal-foreground: var(foreground); + urgent-background: var(urgent); + urgent-foreground: var(background); + active-background: var(active); + active-foreground: var(background); + selected-normal-background: var(selected); + selected-normal-foreground: var(background); + selected-urgent-background: var(active); + selected-urgent-foreground: var(background); + selected-active-background: var(urgent); + selected-active-foreground: var(background); + alternate-normal-background: var(background); + alternate-normal-foreground: var(foreground); + alternate-urgent-background: var(urgent); + alternate-urgent-foreground: var(background); + alternate-active-background: var(active); + alternate-active-foreground: var(background); +} + +/*****----- Main Window -----*****/ +window { + /* properties for window widget */ + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 600px; + x-offset: 0px; + y-offset: 0px; + + /* properties for all widgets */ + enabled: true; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + cursor: "default"; + /* Backgroud Colors */ + background-color: @background-colour; + /* Backgroud Image */ + //background-image: url("/path/to/image.png", none); + /* Simple Linear Gradient */ + //background-image: linear-gradient(red, orange, pink, purple); + /* Directional Linear Gradient */ + //background-image: linear-gradient(to bottom, pink, yellow, magenta); + /* Angle Linear Gradient */ + //background-image: linear-gradient(45, cyan, purple, indigo); +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 20px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @border-colour; + background-color: transparent; + children: [ "inputbar", "mode-switcher", "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + children: [ "textbox-prompt-colon", "entry" ]; +} + +prompt { + enabled: true; + background-color: inherit; + text-color: inherit; +} +textbox-prompt-colon { + enabled: true; + padding: 5px 0px; + expand: false; + str: ""; + background-color: inherit; + text-color: @urgent; +} +entry { + enabled: true; + padding: 5px 0px; + background-color: inherit; + text-color: inherit; + cursor: text; + placeholder: "Search..."; + placeholder-color: inherit; +} +num-filtered-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +textbox-num-sep { + enabled: true; + expand: false; + str: "/"; + background-color: inherit; + text-color: inherit; +} +num-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +case-indicator { + enabled: true; + background-color: inherit; + text-color: inherit; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 1; + lines: 6; + cycle: true; + dynamic: true; + scrollbar: false; + layout: vertical; + reverse: false; + fixed-height: true; + fixed-columns: true; + + spacing: 5px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: "default"; +} +scrollbar { + handle-width: 5px ; + handle-color: @handle-colour; + border-radius: 10px; + background-color: @alternate-background; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 8px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: pointer; +} +element normal.normal { + background-color: var(normal-background); + text-color: var(normal-foreground); +} +element normal.urgent { + background-color: var(urgent-background); + text-color: var(urgent-foreground); +} +element normal.active { + background-color: var(active-background); + text-color: var(active-foreground); +} +element selected.normal { + background-color: var(selected-normal-background); + text-color: var(selected-normal-foreground); +} +element selected.urgent { + background-color: var(selected-urgent-background); + text-color: var(selected-urgent-foreground); +} +element selected.active { + background-color: var(selected-active-background); + text-color: var(selected-active-foreground); +} +element alternate.normal { + background-color: var(alternate-normal-background); + text-color: var(alternate-normal-foreground); +} +element alternate.urgent { + background-color: var(alternate-urgent-background); + text-color: var(alternate-urgent-foreground); +} +element alternate.active { + background-color: var(alternate-active-background); + text-color: var(alternate-active-foreground); +} +element-icon { + background-color: transparent; + text-color: inherit; + size: 24px; + cursor: inherit; +} +element-text { + background-color: transparent; + text-color: inherit; + highlight: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Mode Switcher -----*****/ +mode-switcher{ + enabled: true; + expand: false; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; +} +button { + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: inherit; + cursor: pointer; +} +button selected { + background-color: var(selected-normal-background); + text-color: var(selected-normal-foreground); +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: @foreground-colour; +} +textbox { + border: 0px solid; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + vertical-align: 0.5; + horizontal-align: 0.0; + highlight: none; + placeholder-color: @foreground-colour; + blink: true; + markup: true; +} +error-message { + padding: 15px; + border: 0px solid; + border-radius: 10px; + border-color: @border-colour; + background-color: @background-colour; + text-color: @foreground-colour; +} diff --git a/dot-config/bspwm/themes/adaptive/rofi/music.rasi b/dot-config/bspwm/themes/adaptive/rofi/music.rasi new file mode 100644 index 00000000..16fb95cb --- /dev/null +++ b/dot-config/bspwm/themes/adaptive/rofi/music.rasi @@ -0,0 +1,147 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + show-icons: false; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/* +USE_ICON=NO +*/ + +/*****----- Main Window -----*****/ +window { + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 400px; + x-offset: 0px; + y-offset: 0px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + cursor: "default"; + background-color: @background; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 20px; + background-color: transparent; + children: [ "inputbar", "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 0px; + padding: 0px; + border: 0px; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + children: [ "textbox-prompt-colon", "prompt"]; +} + +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + padding: 10px 14px; + border-radius: 0px; + background-color: @urgent; + text-color: @background; +} +prompt { + enabled: true; + padding: 10px; + border-radius: 0px; + background-color: @background; + text-color: @foreground; +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: @background-alt; + text-color: @foreground; +} +textbox { + background-color: inherit; + text-color: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 1; + lines: 6; + cycle: true; + scrollbar: false; + layout: vertical; + + spacing: 5px; + background-color: transparent; + cursor: "default"; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + cursor: pointer; +} +element-text { + background-color: transparent; + text-color: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +element normal.normal, +element alternate.normal { + background-color: var(background); + text-color: var(foreground); +} +element normal.urgent, +element alternate.urgent, +element selected.active { + background-color: var(urgent); + text-color: var(background); +} +element normal.active, +element alternate.active, +element selected.urgent { + background-color: var(active); + text-color: var(background); +} +element selected.normal { + background-color: var(selected); + text-color: var(background); +} diff --git a/dot-config/bspwm/themes/adaptive/rofi/networkmenu.rasi b/dot-config/bspwm/themes/adaptive/rofi/networkmenu.rasi new file mode 100644 index 00000000..e12b4366 --- /dev/null +++ b/dot-config/bspwm/themes/adaptive/rofi/networkmenu.rasi @@ -0,0 +1,156 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + show-icons: false; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/* +USE_ICON=NO +*/ + +/*****----- Main Window -----*****/ +window { + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 500px; + height: 515px; + x-offset: 0px; + y-offset: 0px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + cursor: "default"; + background-color: @background; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 20px; + background-color: transparent; + children: [ "inputbar", "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 0px; + padding: 0px; + border: 0px; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + children: [ "textbox-prompt-colon", "prompt", "entry"]; +} + +textbox-prompt-colon { + enabled: true; + expand: false; + str: "直"; + padding: 10px 14px; + border-radius: 0px; + background-color: @urgent; + text-color: @background; +} +prompt { + enabled: true; + padding: 10px; + border-radius: 0px; + background-color: @background; + text-color: @foreground; +} +entry { + enabled: true; + padding: 10px 0px; + background-color: inherit; + text-color: inherit; + cursor: text; + placeholder-color: inherit; +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: @background-alt; + text-color: @foreground; +} +textbox { + background-color: inherit; + text-color: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 1; + lines: 6; + cycle: true; + scrollbar: false; + layout: vertical; + + spacing: 5px; + background-color: transparent; + cursor: "default"; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + cursor: pointer; +} +element-text { + background-color: transparent; + text-color: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +element normal.normal, +element alternate.normal { + background-color: var(background); + text-color: var(foreground); +} +element normal.urgent, +element alternate.urgent, +element selected.active { + background-color: var(urgent); + text-color: var(background); +} +element normal.active, +element alternate.active, +element selected.urgent { + background-color: var(active); + text-color: var(background); +} +element selected.normal { + background-color: var(selected); + text-color: var(background); +} diff --git a/dot-config/bspwm/themes/adaptive/rofi/powermenu.rasi b/dot-config/bspwm/themes/adaptive/rofi/powermenu.rasi new file mode 100644 index 00000000..8cd31567 --- /dev/null +++ b/dot-config/bspwm/themes/adaptive/rofi/powermenu.rasi @@ -0,0 +1,147 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + show-icons: false; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/* +USE_ICON=NO +*/ + +/*****----- Main Window -----*****/ +window { + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 400px; + x-offset: 0px; + y-offset: 0px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + cursor: "default"; + background-color: @background; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 20px; + background-color: transparent; + children: [ "inputbar", "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 0px; + padding: 0px; + border: 0px; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + children: [ "textbox-prompt-colon", "prompt"]; +} + +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + padding: 10px 14px; + border-radius: 0px; + background-color: @urgent; + text-color: @background; +} +prompt { + enabled: true; + padding: 10px; + border-radius: 0px; + background-color: @background; + text-color: @foreground; +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: @background-alt; + text-color: @foreground; +} +textbox { + background-color: inherit; + text-color: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 1; + lines: 6; + cycle: true; + scrollbar: false; + layout: vertical; + + spacing: 5px; + background-color: transparent; + cursor: "default"; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + cursor: pointer; +} +element-text { + background-color: transparent; + text-color: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +element normal.normal, +element alternate.normal { + background-color: var(background); + text-color: var(foreground); +} +element normal.urgent, +element alternate.urgent, +element selected.active { + background-color: var(urgent); + text-color: var(background); +} +element normal.active, +element alternate.active, +element selected.urgent { + background-color: var(active); + text-color: var(background); +} +element selected.normal { + background-color: var(selected); + text-color: var(background); +} diff --git a/dot-config/bspwm/themes/adaptive/rofi/runner.rasi b/dot-config/bspwm/themes/adaptive/rofi/runner.rasi new file mode 100644 index 00000000..76556873 --- /dev/null +++ b/dot-config/bspwm/themes/adaptive/rofi/runner.rasi @@ -0,0 +1,303 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + modi: "run"; + show-icons: true; + display-drun: " Apps"; + display-run: " Run"; + display-filebrowser: " Files"; + display-window: " Windows"; + drun-display-format: "{name}"; + window-format: "{w} · {c} · {t}"; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +* { + border-colour: var(selected); + handle-colour: var(selected); + background-colour: var(background); + foreground-colour: var(foreground); + alternate-background: var(background-alt); + normal-background: var(background); + normal-foreground: var(foreground); + urgent-background: var(urgent); + urgent-foreground: var(background); + active-background: var(active); + active-foreground: var(background); + selected-normal-background: var(selected); + selected-normal-foreground: var(background); + selected-urgent-background: var(active); + selected-urgent-foreground: var(background); + selected-active-background: var(urgent); + selected-active-foreground: var(background); + alternate-normal-background: var(background); + alternate-normal-foreground: var(foreground); + alternate-urgent-background: var(urgent); + alternate-urgent-foreground: var(background); + alternate-active-background: var(active); + alternate-active-foreground: var(background); +} + +/*****----- Main Window -----*****/ +window { + /* properties for window widget */ + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 500px; + x-offset: 0px; + y-offset: 0px; + + /* properties for all widgets */ + enabled: true; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + cursor: "default"; + /* Backgroud Colors */ + background-color: @background-colour; + /* Backgroud Image */ + //background-image: url("/path/to/image.png", none); + /* Simple Linear Gradient */ + //background-image: linear-gradient(red, orange, pink, purple); + /* Directional Linear Gradient */ + //background-image: linear-gradient(to bottom, pink, yellow, magenta); + /* Angle Linear Gradient */ + //background-image: linear-gradient(45, cyan, purple, indigo); +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 20px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @border-colour; + background-color: transparent; + children: [ "inputbar", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + children: [ "textbox-prompt-colon", "entry" ]; +} + +prompt { + enabled: true; + background-color: inherit; + text-color: inherit; +} +textbox-prompt-colon { + enabled: true; + padding: 5px 0px; + expand: false; + str: ""; + background-color: inherit; + text-color: @urgent; +} +entry { + enabled: true; + padding: 5px 0px; + background-color: inherit; + text-color: inherit; + cursor: text; + placeholder: "Run..."; + placeholder-color: inherit; +} +num-filtered-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +textbox-num-sep { + enabled: true; + expand: false; + str: "/"; + background-color: inherit; + text-color: inherit; +} +num-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +case-indicator { + enabled: true; + background-color: inherit; + text-color: inherit; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 1; + lines: 6; + cycle: true; + dynamic: true; + scrollbar: false; + layout: vertical; + reverse: false; + fixed-height: true; + fixed-columns: true; + + spacing: 5px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: "default"; +} +scrollbar { + handle-width: 5px ; + handle-color: @handle-colour; + border-radius: 10px; + background-color: @alternate-background; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 8px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: pointer; +} +element normal.normal { + background-color: var(normal-background); + text-color: var(normal-foreground); +} +element normal.urgent { + background-color: var(urgent-background); + text-color: var(urgent-foreground); +} +element normal.active { + background-color: var(active-background); + text-color: var(active-foreground); +} +element selected.normal { + background-color: var(selected-normal-background); + text-color: var(selected-normal-foreground); +} +element selected.urgent { + background-color: var(selected-urgent-background); + text-color: var(selected-urgent-foreground); +} +element selected.active { + background-color: var(selected-active-background); + text-color: var(selected-active-foreground); +} +element alternate.normal { + background-color: var(alternate-normal-background); + text-color: var(alternate-normal-foreground); +} +element alternate.urgent { + background-color: var(alternate-urgent-background); + text-color: var(alternate-urgent-foreground); +} +element alternate.active { + background-color: var(alternate-active-background); + text-color: var(alternate-active-foreground); +} +element-icon { + background-color: transparent; + text-color: inherit; + size: 24px; + cursor: inherit; +} +element-text { + background-color: transparent; + text-color: inherit; + highlight: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Mode Switcher -----*****/ +mode-switcher{ + enabled: true; + expand: false; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; +} +button { + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: inherit; + cursor: pointer; +} +button selected { + background-color: var(selected-normal-background); + text-color: var(selected-normal-foreground); +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: @foreground-colour; +} +textbox { + border: 0px solid; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + vertical-align: 0.5; + horizontal-align: 0.0; + highlight: none; + placeholder-color: @foreground-colour; + blink: true; + markup: true; +} +error-message { + padding: 15px; + border: 0px solid; + border-radius: 10px; + border-color: @border-colour; + background-color: @background-colour; + text-color: @foreground-colour; +} diff --git a/dot-config/bspwm/themes/adaptive/rofi/screenshot.rasi b/dot-config/bspwm/themes/adaptive/rofi/screenshot.rasi new file mode 100644 index 00000000..7368b9f6 --- /dev/null +++ b/dot-config/bspwm/themes/adaptive/rofi/screenshot.rasi @@ -0,0 +1,147 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + show-icons: false; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/* +USE_ICON=NO +*/ + +/*****----- Main Window -----*****/ +window { + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 400px; + x-offset: 0px; + y-offset: 0px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + cursor: "default"; + background-color: @background; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 20px; + background-color: transparent; + children: [ "inputbar", "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 0px; + padding: 0px; + border: 0px; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + children: [ "textbox-prompt-colon", "prompt"]; +} + +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + padding: 10px 12px; + border-radius: 0px; + background-color: @urgent; + text-color: @background; +} +prompt { + enabled: true; + padding: 10px; + border-radius: 0px; + background-color: @background; + text-color: @foreground; +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: @background-alt; + text-color: @foreground; +} +textbox { + background-color: inherit; + text-color: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 1; + lines: 5; + cycle: true; + scrollbar: false; + layout: vertical; + + spacing: 5px; + background-color: transparent; + cursor: "default"; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + cursor: pointer; +} +element-text { + background-color: transparent; + text-color: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +element normal.normal, +element alternate.normal { + background-color: var(background); + text-color: var(foreground); +} +element normal.urgent, +element alternate.urgent, +element selected.active { + background-color: var(urgent); + text-color: var(background); +} +element normal.active, +element alternate.active, +element selected.urgent { + background-color: var(active); + text-color: var(background); +} +element selected.normal { + background-color: var(selected); + text-color: var(background); +} diff --git a/dot-config/bspwm/themes/adaptive/rofi/shared/colors.rasi b/dot-config/bspwm/themes/adaptive/rofi/shared/colors.rasi new file mode 100644 index 00000000..f36bac60 --- /dev/null +++ b/dot-config/bspwm/themes/adaptive/rofi/shared/colors.rasi @@ -0,0 +1,8 @@ +* { + background: #222d32; + background-alt: #2c3a41; + foreground: #c4c7c5; + selected: #00BCD4; + active: #61c766; + urgent: #ec7875; +} diff --git a/dot-config/bspwm/themes/adaptive/rofi/shared/fonts.rasi b/dot-config/bspwm/themes/adaptive/rofi/shared/fonts.rasi new file mode 100644 index 00000000..d2af39fe --- /dev/null +++ b/dot-config/bspwm/themes/adaptive/rofi/shared/fonts.rasi @@ -0,0 +1,7 @@ +/* Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> */ + +/* Text Font */ + +* { + font: "Iosevka 10"; +} diff --git a/dot-config/bspwm/themes/adaptive/rofi/themes.rasi b/dot-config/bspwm/themes/adaptive/rofi/themes.rasi new file mode 100644 index 00000000..553f5b05 --- /dev/null +++ b/dot-config/bspwm/themes/adaptive/rofi/themes.rasi @@ -0,0 +1,147 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + show-icons: false; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/* +USE_ICON=NO +*/ + +/*****----- Main Window -----*****/ +window { + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 400px; + x-offset: 0px; + y-offset: 0px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + cursor: "default"; + background-color: @background; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 20px; + background-color: transparent; + children: [ "inputbar", "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 0px; + padding: 0px; + border: 0px; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + children: [ "textbox-prompt-colon", "prompt"]; +} + +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + padding: 10px 14px; + border-radius: 0px; + background-color: @urgent; + text-color: @background; +} +prompt { + enabled: true; + padding: 10px; + border-radius: 0px; + background-color: @background; + text-color: @foreground; +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: @background-alt; + text-color: @foreground; +} +textbox { + background-color: inherit; + text-color: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 1; + lines: 6; + cycle: true; + scrollbar: false; + layout: vertical; + + spacing: 5px; + background-color: transparent; + cursor: "default"; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + cursor: pointer; +} +element-text { + background-color: transparent; + text-color: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +element normal.normal, +element alternate.normal { + background-color: var(background); + text-color: var(foreground); +} +element normal.urgent, +element alternate.urgent, +element selected.active { + background-color: var(urgent); + text-color: var(background); +} +element normal.active, +element alternate.active, +element selected.urgent { + background-color: var(active); + text-color: var(background); +} +element selected.normal { + background-color: var(selected); + text-color: var(background); +} diff --git a/dot-config/bspwm/themes/adaptive/rofi/windows.rasi b/dot-config/bspwm/themes/adaptive/rofi/windows.rasi new file mode 100644 index 00000000..16debddf --- /dev/null +++ b/dot-config/bspwm/themes/adaptive/rofi/windows.rasi @@ -0,0 +1,303 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + modi: "window"; + show-icons: true; + display-drun: " Apps"; + display-run: " Run"; + display-filebrowser: " Files"; + display-window: " Windows"; + drun-display-format: "{name}"; + window-format: "{c} · {t}"; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +* { + border-colour: var(selected); + handle-colour: var(selected); + background-colour: var(background); + foreground-colour: var(foreground); + alternate-background: var(background-alt); + normal-background: var(background); + normal-foreground: var(foreground); + urgent-background: var(urgent); + urgent-foreground: var(background); + active-background: var(active); + active-foreground: var(background); + selected-normal-background: var(selected); + selected-normal-foreground: var(background); + selected-urgent-background: var(active); + selected-urgent-foreground: var(background); + selected-active-background: var(urgent); + selected-active-foreground: var(background); + alternate-normal-background: var(background); + alternate-normal-foreground: var(foreground); + alternate-urgent-background: var(urgent); + alternate-urgent-foreground: var(background); + alternate-active-background: var(active); + alternate-active-foreground: var(background); +} + +/*****----- Main Window -----*****/ +window { + /* properties for window widget */ + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 550px; + x-offset: 0px; + y-offset: 0px; + + /* properties for all widgets */ + enabled: true; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + cursor: "default"; + /* Backgroud Colors */ + background-color: @background-colour; + /* Backgroud Image */ + //background-image: url("/path/to/image.png", none); + /* Simple Linear Gradient */ + //background-image: linear-gradient(red, orange, pink, purple); + /* Directional Linear Gradient */ + //background-image: linear-gradient(to bottom, pink, yellow, magenta); + /* Angle Linear Gradient */ + //background-image: linear-gradient(45, cyan, purple, indigo); +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 20px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @border-colour; + background-color: transparent; + children: [ "inputbar", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + children: [ "textbox-prompt-colon", "entry" ]; +} + +prompt { + enabled: true; + background-color: inherit; + text-color: inherit; +} +textbox-prompt-colon { + enabled: true; + padding: 5px 0px; + expand: false; + str: ""; + background-color: inherit; + text-color: @urgent; +} +entry { + enabled: true; + padding: 5px 0px; + background-color: inherit; + text-color: inherit; + cursor: text; + placeholder: "Filter..."; + placeholder-color: inherit; +} +num-filtered-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +textbox-num-sep { + enabled: true; + expand: false; + str: "/"; + background-color: inherit; + text-color: inherit; +} +num-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +case-indicator { + enabled: true; + background-color: inherit; + text-color: inherit; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 1; + lines: 6; + cycle: true; + dynamic: true; + scrollbar: false; + layout: vertical; + reverse: false; + fixed-height: true; + fixed-columns: true; + + spacing: 5px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: "default"; +} +scrollbar { + handle-width: 5px ; + handle-color: @handle-colour; + border-radius: 10px; + background-color: @alternate-background; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 8px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: pointer; +} +element normal.normal { + background-color: var(normal-background); + text-color: var(normal-foreground); +} +element normal.urgent { + background-color: var(urgent-background); + text-color: var(urgent-foreground); +} +element normal.active { + background-color: var(active-background); + text-color: var(active-foreground); +} +element selected.normal { + background-color: var(selected-normal-background); + text-color: var(selected-normal-foreground); +} +element selected.urgent { + background-color: var(selected-urgent-background); + text-color: var(selected-urgent-foreground); +} +element selected.active { + background-color: var(selected-active-background); + text-color: var(selected-active-foreground); +} +element alternate.normal { + background-color: var(alternate-normal-background); + text-color: var(alternate-normal-foreground); +} +element alternate.urgent { + background-color: var(alternate-urgent-background); + text-color: var(alternate-urgent-foreground); +} +element alternate.active { + background-color: var(alternate-active-background); + text-color: var(alternate-active-foreground); +} +element-icon { + background-color: transparent; + text-color: inherit; + size: 24px; + cursor: inherit; +} +element-text { + background-color: transparent; + text-color: inherit; + highlight: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Mode Switcher -----*****/ +mode-switcher{ + enabled: true; + expand: false; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; +} +button { + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: inherit; + cursor: pointer; +} +button selected { + background-color: var(selected-normal-background); + text-color: var(selected-normal-foreground); +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: @foreground-colour; +} +textbox { + border: 0px solid; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + vertical-align: 0.5; + horizontal-align: 0.0; + highlight: none; + placeholder-color: @foreground-colour; + blink: true; + markup: true; +} +error-message { + padding: 15px; + border: 0px solid; + border-radius: 10px; + border-color: @border-colour; + background-color: @background-colour; + text-color: @foreground-colour; +} diff --git a/dot-config/bspwm/themes/adaptive/theme.bash b/dot-config/bspwm/themes/adaptive/theme.bash new file mode 100644 index 00000000..b9882412 --- /dev/null +++ b/dot-config/bspwm/themes/adaptive/theme.bash @@ -0,0 +1,82 @@ +# ------------------------------------------------------------------------------ +# Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> +# +# Adaptive Theme +# ------------------------------------------------------------------------------ + +# Colors +background='#222d32' +foreground='#c4c7c5' +color0='#263640' +color1='#ec7875' +color2='#61c766' +color3='#fdd835' +color4='#42a5f5' +color5='#ba68c8' +color6='#4dd0e1' +color7='#bfbaac' +color8='#4a697d' +color9='#fb8784' +color10='#70d675' +color11='#ffe744' +color12='#51b4ff' +color13='#c979d7' +color14='#5cdff0' +color15='#fdf6e3' + +accent='#00BCD4' +light_value='0.15' +dark_value='0.30' + +# Wallpaper +wdir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" +wallpaper="$wdir/wallpaper" + +# Polybar +polybar_font='Iosevka Nerd Font:size=10;3' + +# Rofi +rofi_font='Iosevka 10' +rofi_icon='Papirus-Apps' + +# Terminal +terminal_font_name='JetBrainsMono Nerd Font' +terminal_font_size='10' + +# Geany +geany_colors='adapta.conf' +geany_font='JetBrains Mono 10' + +# Appearance +gtk_font='Noto Sans 9' +gtk_theme='Adapta-Nokto' +icon_theme='Luv-Folders-Dark' +cursor_theme='Vimix' + +# Dunst +dunst_width='300' +dunst_height='80' +dunst_offset='10x44' +dunst_origin='top-right' +dunst_font='Iosevka Custom 9' +dunst_border='1' +dunst_separator='1' + +# Picom +picom_backend='glx' +picom_corner='0' +picom_shadow_r='14' +picom_shadow_o='0.30' +picom_shadow_x='-12' +picom_shadow_y='-12' +picom_blur_method='none' +picom_blur_strength='0' + +# Bspwm +bspwm_fbc="$accent" +bspwm_nbc="$background" +bspwm_abc="$color5" +bspwm_pfc="$color2" +bspwm_border='1' +bspwm_gap='10' +bspwm_sratio='0.50' diff --git a/dot-config/bspwm/themes/adaptive/wallpaper b/dot-config/bspwm/themes/adaptive/wallpaper new file mode 120000 index 00000000..ac556dd7 --- /dev/null +++ b/dot-config/bspwm/themes/adaptive/wallpaper @@ -0,0 +1 @@ +/usr/share/backgrounds/adaptive.png
\ No newline at end of file diff --git a/dot-config/bspwm/themes/beach/apply.sh b/dot-config/bspwm/themes/beach/apply.sh new file mode 100755 index 00000000..97481935 --- /dev/null +++ b/dot-config/bspwm/themes/beach/apply.sh @@ -0,0 +1,278 @@ +#!/usr/bin/env bash + +## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> +## +## Script To Apply Themes + +## Theme ------------------------------------ +BDIR="$HOME/.config/bspwm" +TDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" +THEME="${TDIR##*/}" + +source "$BDIR"/themes/"$THEME"/theme.bash +altbackground="`pastel color $background | pastel lighten $light_value | pastel format hex`" +altforeground="`pastel color $foreground | pastel darken $dark_value | pastel format hex`" + +## Directories ------------------------------ +PATH_CONF="$HOME/.config" +PATH_GEANY="$PATH_CONF/geany" +PATH_BSPWM="$PATH_CONF/bspwm" +PATH_TERM="$PATH_BSPWM/alacritty" +PATH_PBAR="$PATH_BSPWM/themes/$THEME/polybar" +PATH_ROFI="$PATH_BSPWM/themes/$THEME/rofi" + +## Wallpaper --------------------------------- +apply_wallpaper() { + feh --bg-fill "$wallpaper" +} + +## Polybar ----------------------------------- +apply_polybar() { + # modify polybar launch script + sed -i -e "s/STYLE=.*/STYLE=\"$THEME\"/g" ${PATH_BSPWM}/themes/polybar.sh + + # apply default theme fonts + sed -i -e "s/font-0 = .*/font-0 = \"$polybar_font\"/g" ${PATH_PBAR}/config.ini + + # rewrite colors file + cat > ${PATH_PBAR}/colors.ini <<- EOF + [color] + + BACKGROUND = ${background} + FOREGROUND = ${foreground} + ALTBACKGROUND = ${altbackground} + ALTFOREGROUND = ${altforeground} + ACCENT = ${accent} + + BLACK = ${color0} + RED = ${color1} + GREEN = ${color2} + YELLOW = ${color3} + BLUE = ${color4} + MAGENTA = ${color5} + CYAN = ${color6} + WHITE = ${color7} + ALTBLACK = ${color8} + ALTRED = ${color9} + ALTGREEN = ${color10} + ALTYELLOW = ${color11} + ALTBLUE = ${color12} + ALTMAGENTA = ${color13} + ALTCYAN = ${color14} + ALTWHITE = ${color15} + EOF +} + +# Rofi -------------------------------------- +apply_rofi() { + # modify rofi scripts + sed -i -e "s/STYLE=.*/STYLE=\"$THEME\"/g" \ + ${PATH_BSPWM}/scripts/rofi_askpass \ + ${PATH_BSPWM}/scripts/rofi_asroot \ + ${PATH_BSPWM}/scripts/rofi_launcher \ + ${PATH_BSPWM}/scripts/rofi_music \ + ${PATH_BSPWM}/scripts/rofi_powermenu \ + ${PATH_BSPWM}/scripts/rofi_runner \ + ${PATH_BSPWM}/scripts/rofi_screenshot \ + ${PATH_BSPWM}/scripts/rofi_themes \ + ${PATH_BSPWM}/scripts/rofi_windows + + # apply default theme fonts + sed -i -e "s/font:.*/font: \"$rofi_font\";/g" ${PATH_ROFI}/shared/fonts.rasi + + # rewrite colors file + cat > ${PATH_ROFI}/shared/colors.rasi <<- EOF + * { + background: ${background}; + background-alt: ${altbackground}; + foreground: ${foreground}; + selected: ${accent}; + active: ${color2}; + urgent: ${color1}; + } + EOF + + # modify icon theme + if [[ -f "$PATH_CONF"/rofi/config.rasi ]]; then + sed -i -e "s/icon-theme:.*/icon-theme: \"$rofi_icon\";/g" ${PATH_CONF}/rofi/config.rasi + fi +} + +# Network Menu ------------------------------ +apply_netmenu() { + if [[ -f "$PATH_CONF"/networkmanager-dmenu/nmd.ini ]]; then + sed -i -e "s#dmenu_command = .*#dmenu_command = rofi -dmenu -theme $PATH_ROFI/networkmenu.rasi#g" ${PATH_CONF}/networkmanager-dmenu/nmd.ini + fi +} + +# Terminal ---------------------------------- +apply_terminal() { + # alacritty : fonts + sed -i ${PATH_TERM}/fonts.yml \ + -e "s/family: .*/family: \"$terminal_font_name\"/g" \ + -e "s/size: .*/size: $terminal_font_size/g" + + # alacritty : colors + cat > ${PATH_TERM}/colors.yml <<- _EOF_ + ## Colors configuration + colors: + # Default colors + primary: + background: '${background}' + foreground: '${foreground}' + + # Normal colors + normal: + black: '${color0}' + red: '${color1}' + green: '${color2}' + yellow: '${color3}' + blue: '${color4}' + magenta: '${color5}' + cyan: '${color6}' + white: '${color7}' + + # Bright colors + bright: + black: '${color8}' + red: '${color9}' + green: '${color10}' + yellow: '${color11}' + blue: '${color12}' + magenta: '${color13}' + cyan: '${color14}' + white: '${color15}' + _EOF_ +} + +# Geany ------------------------------------- +apply_geany() { + sed -i ${PATH_GEANY}/geany.conf \ + -e "s/color_scheme=.*/color_scheme=$geany_colors/g" \ + -e "s/editor_font=.*/editor_font=$geany_font/g" +} + +# Appearance -------------------------------- +apply_appearance() { + XFILE="$PATH_BSPWM/xsettingsd" + GTK2FILE="$HOME/.gtkrc-2.0" + GTK3FILE="$PATH_CONF/gtk-3.0/settings.ini" + + # apply gtk theme, icons, cursor & fonts + if [[ `pidof xsettingsd` ]]; then + sed -i -e "s|Net/ThemeName .*|Net/ThemeName \"$gtk_theme\"|g" ${XFILE} + sed -i -e "s|Net/IconThemeName .*|Net/IconThemeName \"$icon_theme\"|g" ${XFILE} + sed -i -e "s|Gtk/CursorThemeName .*|Gtk/CursorThemeName \"$cursor_theme\"|g" ${XFILE} + else + sed -i -e "s/gtk-font-name=.*/gtk-font-name=\"$gtk_font\"/g" ${GTK2FILE} + sed -i -e "s/gtk-theme-name=.*/gtk-theme-name=\"$gtk_theme\"/g" ${GTK2FILE} + sed -i -e "s/gtk-icon-theme-name=.*/gtk-icon-theme-name=\"$icon_theme\"/g" ${GTK2FILE} + sed -i -e "s/gtk-cursor-theme-name=.*/gtk-cursor-theme-name=\"$cursor_theme\"/g" ${GTK2FILE} + + sed -i -e "s/gtk-font-name=.*/gtk-font-name=$gtk_font/g" ${GTK3FILE} + sed -i -e "s/gtk-theme-name=.*/gtk-theme-name=$gtk_theme/g" ${GTK3FILE} + sed -i -e "s/gtk-icon-theme-name=.*/gtk-icon-theme-name=$icon_theme/g" ${GTK3FILE} + sed -i -e "s/gtk-cursor-theme-name=.*/gtk-cursor-theme-name=$cursor_theme/g" ${GTK3FILE} + fi + + # inherit cursor theme + if [[ -f "$HOME"/.icons/default/index.theme ]]; then + sed -i -e "s/Inherits=.*/Inherits=$cursor_theme/g" "$HOME"/.icons/default/index.theme + fi +} + +# Dunst ------------------------------------- +apply_dunst() { + # modify dunst config + sed -i ${PATH_BSPWM}/dunstrc \ + -e "s/width = .*/width = $dunst_width/g" \ + -e "s/height = .*/height = $dunst_height/g" \ + -e "s/offset = .*/offset = $dunst_offset/g" \ + -e "s/origin = .*/origin = $dunst_origin/g" \ + -e "s/font = .*/font = $dunst_font/g" \ + -e "s/frame_width = .*/frame_width = $dunst_border/g" \ + -e "s/separator_height = .*/separator_height = $dunst_separator/g" \ + -e "s/line_height = .*/line_height = $dunst_separator/g" + + # modify colors + sed -i '/urgency_low/Q' ${PATH_BSPWM}/dunstrc + cat >> ${PATH_BSPWM}/dunstrc <<- _EOF_ + [urgency_low] + timeout = 2 + background = "${background}" + foreground = "${foreground}" + frame_color = "${altbackground}" + + [urgency_normal] + timeout = 5 + background = "${background}" + foreground = "${foreground}" + frame_color = "${altbackground}" + + [urgency_critical] + timeout = 0 + background = "${background}" + foreground = "${color1}" + frame_color = "${color1}" + _EOF_ +} + +# Compositor -------------------------------- +apply_compositor() { + picom_cfg="$PATH_BSPWM/picom.conf" + + # modify picom config + sed -i "$picom_cfg" \ + -e "s/backend = .*/backend = \"$picom_backend\";/g" \ + -e "s/corner-radius = .*/corner-radius = $picom_corner;/g" \ + -e "s/shadow-radius = .*/shadow-radius = $picom_shadow_r;/g" \ + -e "s/shadow-opacity = .*/shadow-opacity = $picom_shadow_o;/g" \ + -e "s/shadow-offset-x = .*/shadow-offset-x = $picom_shadow_x;/g" \ + -e "s/shadow-offset-y = .*/shadow-offset-y = $picom_shadow_y;/g" \ + -e "s/method = .*/method = \"$picom_blur_method\";/g" \ + -e "s/strength = .*/strength = $picom_blur_strength;/g" +} + +# BSPWM ------------------------------------- +apply_bspwm() { + # modify bspwmrc + sed -i ${PATH_BSPWM}/bspwmrc \ + -e "s/BSPWM_FBC=.*/BSPWM_FBC='$bspwm_fbc'/g" \ + -e "s/BSPWM_NBC=.*/BSPWM_NBC='$bspwm_nbc'/g" \ + -e "s/BSPWM_ABC=.*/BSPWM_ABC='$bspwm_abc'/g" \ + -e "s/BSPWM_PFC=.*/BSPWM_PFC='$bspwm_pfc'/g" \ + -e "s/BSPWM_BORDER=.*/BSPWM_BORDER='$bspwm_border'/g" \ + -e "s/BSPWM_GAP=.*/BSPWM_GAP='$bspwm_gap'/g" \ + -e "s/BSPWM_SRATIO=.*/BSPWM_SRATIO='$bspwm_sratio'/g" + + # reload bspwm + bspc wm -r +} + +# Create Theme File ------------------------- +create_file() { + theme_file="$PATH_BSPWM/themes/.current" + if [[ ! -f "$theme_file" ]]; then + touch ${theme_file} + fi + echo "$THEME" > ${theme_file} +} + +# Notify User ------------------------------- +notify_user() { + dunstify -u normal -h string:x-dunst-stack-tag:applytheme -i /usr/share/archcraft/icons/dunst/themes.png "Applying Style : $THEME" +} + +## Execute Script --------------------------- +notify_user +create_file +apply_wallpaper +apply_polybar +apply_rofi +apply_netmenu +apply_terminal +apply_geany +apply_appearance +apply_dunst +apply_compositor +apply_bspwm diff --git a/dot-config/bspwm/themes/beach/polybar/.module b/dot-config/bspwm/themes/beach/polybar/.module new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/dot-config/bspwm/themes/beach/polybar/.module diff --git a/dot-config/bspwm/themes/beach/polybar/colors.ini b/dot-config/bspwm/themes/beach/polybar/colors.ini new file mode 100644 index 00000000..aa731eb3 --- /dev/null +++ b/dot-config/bspwm/themes/beach/polybar/colors.ini @@ -0,0 +1,24 @@ +[color] + +BACKGROUND = #141c21 +FOREGROUND = #93a1a1 +ALTBACKGROUND = #1a242b +ALTFOREGROUND = #485353 +ACCENT = #5294E2 + +BLACK = #263640 +RED = #d12f2c +GREEN = #819400 +YELLOW = #b08500 +BLUE = #2587cc +MAGENTA = #696ebf +CYAN = #289c93 +WHITE = #bfbaac +ALTBLACK = #4a697d +ALTRED = #fa3935 +ALTGREEN = #a4bd00 +ALTYELLOW = #d9a400 +ALTBLUE = #2ca2f5 +ALTMAGENTA = #8086e8 +ALTCYAN = #33c5ba +ALTWHITE = #fdf6e3 diff --git a/dot-config/bspwm/themes/beach/polybar/config.ini b/dot-config/bspwm/themes/beach/polybar/config.ini new file mode 100644 index 00000000..2d071099 --- /dev/null +++ b/dot-config/bspwm/themes/beach/polybar/config.ini @@ -0,0 +1,317 @@ +## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +;; Global WM Settings + +[global/wm] +; Adjust the _NET_WM_STRUT_PARTIAL top value +; Used for top aligned bars +margin-bottom = 0 + +; Adjust the _NET_WM_STRUT_PARTIAL bottom value +; Used for bottom aligned bars +margin-top = 0 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +;; File Inclusion +; include an external file, like module file, etc. + +include-file = ../../system.ini +include-file = ./colors.ini +include-file = ./modules.ini + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +;; Bar Settings + +[bar/main] +; Use either of the following command to list available outputs: +; If unspecified, the application will pick the first one it finds. +; $ polybar -m | cut -d ':' -f 1 +; $ xrandr -q | grep " connected" | cut -d ' ' -f1 +monitor = ${env:MONITOR:} + +; Use the specified monitor as a fallback if the main one is not found. +monitor-fallback = + +; Require the monitor to be in connected state +; XRandR sometimes reports my monitor as being disconnected (when in use) +monitor-strict = false + +; Tell the Window Manager not to configure the window. +; Use this to detach the bar if your WM is locking its size/position. +override-redirect = false + +; Put the bar at the bottom of the screen +bottom = true + +; Prefer fixed center position for the `modules-center` block +; When false, the center position will be based on the size of the other blocks. +fixed-center = true + +; Dimension defined as pixel value (e.g. 35) or percentage (e.g. 50%), +; the percentage can optionally be extended with a pixel offset like so: +; 50%:-10, this will result in a width or height of 50% minus 10 pixels +width = 100% +height = 38 + +; Offset defined as pixel value (e.g. 35) or percentage (e.g. 50%) +; the percentage can optionally be extended with a pixel offset like so: +; 50%:-10, this will result in an offset in the x or y direction +; of 50% minus 10 pixels +offset-x = 0% +offset-y = 0% + +; Background ARGB color (e.g. #f00, #ff992a, #ddff1023) +background = ${color.BACKGROUND} + +; Foreground ARGB color (e.g. #f00, #ff992a, #ddff1023) +foreground = ${color.FOREGROUND} + +; Background gradient (vertical steps) +; background-[0-9]+ = #aarrggbb +;;background-0 = + +; Value used for drawing rounded corners +; Note: This shouldn't be used together with border-size because the border +; doesn't get rounded +; Individual top/bottom values can be defined using: +; radius-{top,bottom} +radius-top = 0.0 +radius-bottom = 0.0 + +; Under-/overline pixel size and argb color +; Individual values can be defined using: +; {overline,underline}-size +; {overline,underline}-color +line-size = 2 +line-color = ${color.ACCENT} + +; Values applied to all borders +; Individual side values can be defined using: +; border-{left,top,right,bottom}-size +; border-{left,top,right,bottom}-color +; The top and bottom borders are added to the bar height, so the effective +; window height is: +; height + border-top-size + border-bottom-size +; Meanwhile the effective window width is defined entirely by the width key and +; the border is placed withing this area. So you effectively only have the +; following horizontal space on the bar: +; width - border-right-size - border-left-size +border-size = 0 +border-color = ${color.BACKGROUND} + +; Number of spaces to add at the beginning/end of the bar +; Individual side values can be defined using: +; padding-{left,right} +padding = 0 + +; Number of spaces to add before/after each module +; Individual side values can be defined using: +; module-margin-{left,right} +module-margin-left = 1 +module-margin-right = 1 + +; Fonts are defined using <font-name>;<vertical-offset> +; Font names are specified using a fontconfig pattern. +; font-0 = "Iosevka Nerd Font:size=10;3" +; font-1 = MaterialIcons:size=10 +; font-2 = Termsynu:size=8;-1 +; font-3 = FontAwesome:size=10 +; See the Fonts wiki page for more details + +; text +font-0 = "Iosevka Nerd Font:size=10;3" +; icons +font-1 = "Iosevka Nerd Font:size=12;3" +; glyphs +font-2 = "Iosevka Nerd Font:size=15;4" +; dot +font-3 = "Iosevka Nerd Font:size=10;4" +; clock & mpd +font-4 = "Iosevka:style=bold:size=10;4" +; Archcraft +font-5 = "archcraft:size=12;3" + +; Modules are added to one of the available blocks +; modules-left = cpu ram +; modules-center = xwindow xbrightness +; modules-right = ipc clock + +# Default +modules-left = menu mod sep bspwm +modules-center = mpd +modules-right = volume bna battery network date sysmenu + +# Alternate +;modules-left = openbox 2LD cpu 3LD memory 4LD filesystem 5LD +;modules-center = mpd +;modules-right = 2RD volume 3RD brightness 4RD battery 5RD network 6RD date sep + +; The separator will be inserted between the output of each module +separator = + +; This value is used to add extra spacing between elements +; @deprecated: This parameter will be removed in an upcoming version +spacing = 0 + +; Opacity value between 0.0 and 1.0 used on fade in/out +dim-value = 1.0 + +; Value to be used to set the WM_NAME atom +; If the value is empty or undefined, the atom value +; will be created from the following template: polybar-[BAR]_[MONITOR] +; NOTE: The placeholders are not available for custom values +wm-name = bspwm + +; Locale used to localize various module data (e.g. date) +; Expects a valid libc locale, for example: sv_SE.UTF-8 +locale = + +; Position of the system tray window +; If empty or undefined, tray support will be disabled +; NOTE: A center aligned tray will cover center aligned modules +; +; Available positions: +; left +; center +; right +; none +tray-position = right + +; If true, the bar will not shift its +; contents when the tray changes +tray-detached = false + +; Tray icon max size +tray-maxsize = 16 + +; DEPRECATED! Since 3.3.0 the tray always uses pseudo-transparency +; Enable pseudo transparency +; Will automatically be enabled if a fully transparent +; background color is defined using `tray-background` +; tray-transparent = false + +; Background color for the tray container +; ARGB color (e.g. #f00, #ff992a, #ddff1023) +; By default the tray container will use the bar +; background color. +tray-background = ${color.BACKGROUND} + +; Tray offset defined as pixel value (e.g. 35) or percentage (e.g. 50%) +tray-offset-x = 0 +tray-offset-y = 0 + +; Pad the sides of each tray icon +tray-padding = 0 + +; Scale factor for tray clients +tray-scale = 1.0 + +; Restack the bar window and put it above the +; selected window manager's root +; +; Fixes the issue where the bar is being drawn +; on top of fullscreen window's +; +; Currently supported WM's: +; bspwm +; i3 (requires: `override-redirect = true`) +wm-restack = bspwm + +; Set a DPI values used when rendering text +; This only affects scalable fonts +; dpi = + +; Enable support for inter-process messaging +; See the Messaging wiki page for more details. +enable-ipc = true + +; Fallback click handlers that will be called if +; there's no matching module handler found. +click-left = +click-middle = +click-right = +scroll-up = bspc desktop -f prev.local +scroll-down = bspc desktop -f next.local +double-click-left = +double-click-middle = +double-click-right = + +; Requires polybar to be built with xcursor support (xcb-util-cursor) +; Possible values are: +; - default : The default pointer as before, can also be an empty string (default) +; - pointer : Typically in the form of a hand +; - ns-resize : Up and down arrows, can be used to indicate scrolling +cursor-click = +cursor-scroll = + +;; WM Workspace Specific + +; bspwm +;;scroll-up = bspwm-desknext +;;scroll-down = bspwm-deskprev +;;scroll-up = bspc desktop -f prev.local +;;scroll-down = bspc desktop -f next.local + +;i3 +;;scroll-up = i3wm-wsnext +;;scroll-down = i3wm-wsprev +;;scroll-up = i3-msg workspace next_on_output +;;scroll-down = i3-msg workspace prev_on_output + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +;; Application Settings + +[settings] +; The throttle settings lets the eventloop swallow up til X events +; if they happen within Y millisecond after first event was received. +; This is done to prevent flood of update event. +; +; For example if 5 modules emit an update event at the same time, we really +; just care about the last one. But if we wait too long for events to swallow +; the bar would appear sluggish so we continue if timeout +; expires or limit is reached. +throttle-output = 5 +throttle-output-for = 10 + +; Time in milliseconds that the input handler will wait between processing events +;throttle-input-for = 30 + +; Reload upon receiving XCB_RANDR_SCREEN_CHANGE_NOTIFY events +screenchange-reload = false + +; Compositing operators +; @see: https://www.cairographics.org/manual/cairo-cairo-t.html#cairo-operator-t +compositing-background = source +compositing-foreground = over +compositing-overline = over +compositing-underline = over +compositing-border = over + +; Define fallback values used by all module formats +;format-foreground = +;format-background = +;format-underline = +;format-overline = +;format-spacing = +;format-padding = +;format-margin = +;format-offset = + +; Enables pseudo-transparency for the bar +; If set to true the bar can be transparent without a compositor. +pseudo-transparency = false + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ +;; __________ ______ +;; / ____/ __ \/ ____/ +;; / __/ / / / / /_ +;; / /___/ /_/ / __/ +;; /_____/\____/_/ +;; +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + diff --git a/dot-config/bspwm/themes/beach/polybar/launch.sh b/dot-config/bspwm/themes/beach/polybar/launch.sh new file mode 100755 index 00000000..ae47b54c --- /dev/null +++ b/dot-config/bspwm/themes/beach/polybar/launch.sh @@ -0,0 +1,42 @@ +#!/usr/bin/env bash + +## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" +CARD="$(light -L | grep 'backlight' | head -n1 | cut -d'/' -f3)" +INTERFACE="$(ip link | awk '/state UP/ {print $2}' | tr -d :)" +RFILE="$DIR/.module" + +# Fix backlight and network modules +fix_modules() { + if [[ -z "$CARD" ]]; then + sed -i -e 's/backlight/bna/g' "$DIR"/config.ini + elif [[ "$CARD" != *"intel_"* ]]; then + sed -i -e 's/backlight/brightness/g' "$DIR"/config.ini + fi + + if [[ "$INTERFACE" == e* ]]; then + sed -i -e 's/network/ethernet/g' "$DIR"/config.ini + fi +} + +# Launch the bar +launch_bar() { + # Terminate already running bar instances + killall -q polybar + + # Wait until the processes have been shut down + while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done + + # Launch the bar + for mon in $(polybar --list-monitors | cut -d":" -f1); do + MONITOR=$mon polybar -q main -c "$DIR"/config.ini & + done +} + +# Execute functions +if [[ ! -f "$RFILE" ]]; then + fix_modules + touch "$RFILE" +fi +launch_bar diff --git a/dot-config/bspwm/themes/beach/polybar/modules.ini b/dot-config/bspwm/themes/beach/polybar/modules.ini new file mode 100644 index 00000000..4bbd026c --- /dev/null +++ b/dot-config/bspwm/themes/beach/polybar/modules.ini @@ -0,0 +1,1161 @@ +## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/sep] +type = custom/text +content = ◆ + +content-background = ${color.BACKGROUND} +content-foreground = ${color.ALTFOREGROUND} +content-padding = 0 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/bspwm] +type = internal/bspwm + +pin-workspaces = true +inline-mode = false + +enable-click = true +enable-scroll = true +reverse-scroll = true + +fuzzy-match = true + +; ws-icon-[0-9]+ = label;icon +; Note that the label needs to correspond with the bspwm workspace name +ws-icon-0 = 1; +ws-icon-1 = 2; +ws-icon-2 = 3; +ws-icon-3 = 4; +ws-icon-4 = 5; +ws-icon-5 = 6; +ws-icon-6 = 7; +ws-icon-7 = 8; +ws-icon-default = + +format = <label-state> +format-font = 2 + +label-monitor = %name% + +; If any values for label-dimmed-N are defined, the workspace/mode +; colors will get overridden with those values if the monitor is out of focus +; To only override workspaces in a specific state, use: +; label-dimmed-focused +; label-dimmed-occupied +; label-dimmed-urgent +; label-dimmed-empty +;label-dimmed-foreground = ${color.FOREGROUND} +;label-dimmed-underline = ${color.YELLOW} +;label-dimmed-focused-background = ${color.BACKGROUND} + +label-focused = %name% +label-focused-foreground = ${color.YELLOW} +label-focused-underline = ${color.YELLOW} +label-focused-padding = 1 + +label-occupied = %name% +label-occupied-foreground = ${color.RED} +;label-occupied-underline = ${color.RED} +label-occupied-padding = 1 + +label-urgent = %name% +label-urgent-foreground = ${color.GREEN} +label-urgent-underline = ${color.GREEN} +label-urgent-padding = 1 + +label-empty = %name% +label-empty-foreground = ${color.FOREGROUND} +label-empty-padding = 1 + +; Separator in between workspaces +label-separator = "" +label-separator-padding = 0 +label-separator-foreground = ${color.ALTBACKGROUND} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/mod] +type = internal/bspwm + +format = <label-mode> +format-foreground = ${color.GREEN} +format-padding = 0 + +label-monocle = "Monocle" +label-tiled = "Tiled" + +label-floating = ", Float" +label-pseudotiled = ", Pseudo" +label-fullscreen = ", Full" + +label-locked = " | Locked" +label-sticky = " | Sticky" +label-private = " | Private" + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/alsa] +type = internal/alsa + +; Soundcard to be used +; Usually in the format hw:# where # is the card number +; You can find the different card numbers in `/proc/asound/cards` +;;master-soundcard = default +;;speaker-soundcard = default +;;headphone-soundcard = default + +; Name of the master, speaker and headphone mixers +; Use the following command to list available mixer controls: +; $ amixer scontrols | sed -nr "s/.*'([[:alnum:]]+)'.*/\1/p" +; If master, speaker or headphone-soundcard isn't the default, +; use `amixer -c # scontrols` instead where # is the number +; of the master, speaker or headphone soundcard respectively +; +; Default: Master +;;master-mixer = Master + +; Optionally define speaker and headphone mixers +; Default: none +;;speaker-mixer = Speaker +; Default: none +;;headphone-mixer = Headphone + +; NOTE: This is required if headphone_mixer is defined +; Use the following command to list available device controls +; $ amixer controls | sed -r "/CARD/\!d; s/.*=([0-9]+).*name='([^']+)'.*/printf '%3.0f: %s\n' '\1' '\2'/e" | sort +; You may also need to use `amixer -c # controls` as above for the mixer names +; Default: none +;;headphone-id = 9 + +; Use volume mapping (similar to amixer -M and alsamixer), where the increase in volume is linear to the ear +; Default: false +;;mapped = true + +; Interval for volume increase/decrease (in percent points) +; Default: 5 +;;interval = 5 + +; Available tags: +; <label-volume> (default) +; <ramp-volume> +; <bar-volume> +format-volume = <ramp-volume> <label-volume> +format-volume-background = ${color.BACKGROUND} + +; Available tags: +; <label-muted> (default) +; <ramp-volume> +; <bar-volume> +format-muted = <label-muted> +format-muted-prefix = +format-muted-prefix-font = 2 +format-muted-background = ${color.BACKGROUND} + +; Available tokens: +; %percentage% (default) +label-volume = %percentage%% + +; Available tokens: +; %percentage% (default +label-muted = " Mute" + +; Only applies if <ramp-volume> is used +ramp-volume-0 = +ramp-volume-1 = +ramp-volume-2 = +ramp-volume-3 = +ramp-volume-4 = +ramp-volume-5 = +ramp-volume-6 = +ramp-volume-7 = +ramp-volume-8 = +ramp-volume-9 = +ramp-volume-foreground = ${color.YELLOW} +ramp-volume-font = 2 + +; If defined, it will replace <ramp-volume> when +; headphones are plugged in to `headphone_control_numid` +; If undefined, <ramp-volume> will be used for both +; Only applies if <ramp-volume> is used +ramp-headphones-0 = +ramp-headphones-1 = + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/bna] +type = custom/text + +content = " NA" +content-prefix = +content-prefix-font = 2 +content-prefix-foreground = ${color.RED} +content-padding = 1 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/backlight] +type = internal/xbacklight + +; Use the following command to list available cards: +; $ ls -1 /sys/class/backlight/ +card = intel_backlight + +; Available tags: +; <label> (default) +; <ramp> +; <bar> +format = <ramp> <label> +format-background = ${color.BACKGROUND} +format-padding = 1 + +; Available tokens: +; %percentage% (default) +label = %percentage%% + +; Only applies if <ramp> is used + +ramp-0 = +ramp-1 = +ramp-2 = +ramp-3 = +ramp-4 = +ramp-5 = +ramp-6 = +ramp-7 = +ramp-8 = +ramp-9 = +ramp-font = 2 +ramp-foreground = ${color.CYAN} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/brightness] +type = internal/backlight + +; Use the following command to list available cards: +; $ ls -1 /sys/class/backlight/ +card = ${system.sys_graphics_card} + +enable-scroll = true + +; Available tags: +; <label> (default) +; <ramp> +; <bar> +format = <ramp> <label> +format-background = ${color.BACKGROUND} +format-padding = 1 + +; Available tokens: +; %percentage% (default) +label = %percentage%% + +; Only applies if <ramp> is used + +ramp-0 = +ramp-1 = +ramp-2 = +ramp-3 = +ramp-4 = +ramp-5 = +ramp-6 = +ramp-7 = +ramp-8 = +ramp-9 = +ramp-font = 2 +ramp-foreground = ${color.CYAN} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/battery] +type = internal/battery + +; This is useful in case the battery never reports 100% charge +full-at = 99 + +; Use the following command to list batteries and adapters: +; $ ls -1 /sys/class/power_supply/ +battery = ${system.sys_battery} +adapter = ${system.sys_adapter} + +; If an inotify event haven't been reported in this many +; seconds, manually poll for new values. +; +; Needed as a fallback for systems that don't report events +; on sysfs/procfs. +; +; Disable polling by setting the interval to 0. +; +; Default: 5 +poll-interval = 2 + +; see "man date" for details on how to format the time string +; NOTE: if you want to use syntax tags here you need to use %%{...} +; Default: %H:%M:%S +time-format = %H:%M + +; Available tags: +; <label-charging> (default) +; <bar-capacity> +; <ramp-capacity> +; <animation-charging> +format-charging = <animation-charging> <label-charging> +format-charging-prefix = " " +format-charging-prefix-font = 1 +format-charging-prefix-foreground = ${color.YELLOW} +format-charging-background = ${color.BACKGROUND} + +; Available tags: +; <label-discharging> (default) +; <bar-capacity> +; <ramp-capacity> +; <animation-discharging> +format-discharging = <ramp-capacity> <label-discharging> +format-discharging-background = ${color.BACKGROUND} + +; Available tags: +; <label-full> (default) +; <bar-capacity> +; <ramp-capacity> +;format-full = <ramp-capacity> <label-full> + +; Available tokens: +; %percentage% (default) +; %time% +; %consumption% (shows current charge rate in watts) + +label-charging = %percentage%% + +; Available tokens: +; %percentage% (default) +; %time% +; %consumption% (shows current discharge rate in watts) +label-discharging = %percentage%% + +; Available tokens: +; %percentage% (default) +format-full = <label-full> +format-full-prefix = " " +format-full-prefix-font = 2 +format-full-prefix-foreground = ${color.GREEN} +format-full-background = ${color.BACKGROUND} +label-full = %percentage%% + +; Only applies if <ramp-capacity> is used +ramp-capacity-0 = +ramp-capacity-1 = +ramp-capacity-2 = +ramp-capacity-3 = +ramp-capacity-4 = +ramp-capacity-foreground = ${color.MAGENTA} +ramp-capacity-font = 2 + +; Only applies if <animation-charging> is used +animation-charging-0 = +animation-charging-1 = +animation-charging-2 = +animation-charging-3 = +animation-charging-4 = +animation-charging-foreground = ${color.GREEN} +animation-charging-font = 2 +animation-charging-framerate = 700 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/cpu] +type = internal/cpu + +; Seconds to sleep between updates +; Default: 1 +interval = 0.5 + +; Available tags: +; <label> (default) +; <bar-load> +; <ramp-load> +; <ramp-coreload> +;;format = <label> <ramp-coreload> +format = <label> +format-prefix = +format-prefix-font = 2 +format-prefix-foreground = ${color.YELLOW} +format-background = ${color.BACKGROUND} +format-padding = 1 + +; Available tokens: +; %percentage% (default) - total cpu load averaged over all cores +; %percentage-sum% - Cumulative load on all cores +; %percentage-cores% - load percentage for each core +; %percentage-core[1-9]% - load percentage for specific core +label = " %percentage%%" + +; Spacing between individual per-core ramps +;;ramp-coreload-spacing = 1 +;;ramp-coreload-0 = +;;ramp-coreload-1 = +;;ramp-coreload-2 = +;;ramp-coreload-3 = +;;ramp-coreload-4 = + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/date] +type = internal/date + +; Seconds to sleep between updates +interval = 1.0 + +; See "http://en.cppreference.com/w/cpp/io/manip/put_time" for details on how to format the date string +; NOTE: if you want to use syntax tags here you need to use %%{...} +;;date = %Y-%m-%d% + +; Optional time format +time = %I:%M %p + +; if `date-alt` or `time-alt` is defined, clicking +; the module will toggle between formats +;;date-alt = %A, %d %B %Y +#time-alt = %d/%m/%Y% +time-alt = %a %b %d, %G + +; Available tags: +; <label> (default) + +format = <label> +format-prefix = " " +format-prefix-font = 2 +format-prefix-foreground = ${color.GREEN} +format-background = ${color.BACKGROUND} + +; Available tokens: +; %date% +; %time% +; Default: %date% +label = %time% +label-font = 5 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/filesystem] +type = internal/fs + +; Mountpoints to display +mount-0 = / +;;mount-1 = /home +;;mount-2 = /var + +; Seconds to sleep between updates +; Default: 30 +interval = 10 + +; Display fixed precision values +; Default: false +fixed-values = true + +; Spacing between entries +; Default: 2 +;;spacing = 4 + +; Available tags: +; <label-mounted> (default) +; <bar-free> +; <bar-used> +; <ramp-capacity> +format-mounted = <label-mounted> +format-mounted-background = ${color.BACKGROUND} +format-mounted-padding = 1 + +format-mounted-prefix = +format-mounted-prefix-font = 2 +format-mounted-prefix-foreground = ${color.MAGENTA} + +; Available tags: +; <label-unmounted> (default) +format-unmounted = <label-unmounted> +format-unmounted-background = ${color.BACKGROUND} +format-unmounted-padding = 1 + +format-unmounted-prefix = +format-unmounted-prefix-font = 2 +format-unmounted-prefix-foreground = ${color.RED} + +; Available tokens: +; %mountpoint% +; %type% +; %fsname% +; %percentage_free% +; %percentage_used% +; %total% +; %free% +; %used% +; Default: %mountpoint% %percentage_free%% +label-mounted = " %free%" + +; Available tokens: +; %mountpoint% +; Default: %mountpoint% is not mounted +label-unmounted = " %mountpoint%: NM" + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/memory] +type = internal/memory + +; Seconds to sleep between updates +; Default: 1 +interval = 3 + +; Available tags: +; <label> (default) +; <bar-used> +; <bar-free> +; <ramp-used> +; <ramp-free> +; <bar-swap-used> +; <bar-swap-free> +; <ramp-swap-used> +; <ramp-swap-free> +format = <label> +format-background = ${color.BACKGROUND} +format-padding = 1 + +format-prefix = +format-prefix-font = 2 +format-prefix-foreground = ${color.CYAN} + +; Available tokens: +; %percentage_used% (default) +; %percentage_free% +; %gb_used% +; %gb_free% +; %gb_total% +; %mb_used% +; %mb_free% +; %mb_total% +; %percentage_swap_used% +; %percentage_swap_free% +; %mb_swap_total% +; %mb_swap_free% +; %mb_swap_used% +; %gb_swap_total% +; %gb_swap_free% +; %gb_swap_used% + +label = " %mb_used%" + +; Only applies if <ramp-used> is used +;;ramp-used-0 = +;;ramp-used-1 = +;;ramp-used-2 = +;;ramp-used-3 = +;;ramp-used-4 = + +; Only applies if <ramp-free> is used +;;ramp-free-0 = +;;ramp-free-1 = +;;ramp-free-2 = +;;ramp-free-3 = +;;ramp-free-4 = + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/used-memory] +type = custom/script + +exec = free -m | grep 'Mem:' | tr -s ' ' | cut -d ' ' -f3 + +tail = true +interval = 5 + +format = <label> +format-background = ${color.BACKGROUND} +format-padding = 1 + +format-prefix = +format-prefix-font = 2 +format-prefix-foreground = ${color.CYAN} + +label = " %output% MB" + +click-left = alacritty --class 'alacritty-float,alacritty-float' --config-file ~/.config/bspwm/alacritty/alacritty.yml -e "top" & + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/mpd] +type = internal/mpd + +; Host where mpd is running (either ip or domain name) +; Can also be the full path to a unix socket where mpd is running. +;;host = 127.0.0.1 +;;port = 6600 +;;password = mysecretpassword + +; Seconds to sleep between progressbar/song timer sync +; Default: 1 +interval = 2 + +; Available tags: +; <label-song> (default) +; <label-time> +; <bar-progress> +; <toggle> - gets replaced with <icon-(pause|play)> +; <toggle-stop> - gets replaced with <icon-(stop|play)> +; <icon-random> +; <icon-repeat> +; <icon-repeatone> (deprecated) +; <icon-single> - Toggle playing only a single song. Replaces <icon-repeatone> +; <icon-consume> +; <icon-prev> +; <icon-stop> +; <icon-play> +; <icon-pause> +; <icon-next> +; <icon-seekb> +; <icon-seekf> + +format-online = <icon-prev> <toggle> <icon-next> <label-song> +;;format-online-prefix = " " +;;format-online-prefix-font = 2 +;;format-online-prefix-foreground = ${color.GREEN} +format-online-background = ${color.BACKGROUND} + +format-playing = ${self.format-online} +format-paused = ${self.format-online} +format-stopped = ${self.format-online} + +; Available tags: +; <label-offline> +format-offline = <label-offline> +#format-offline-prefix = " " +format-offline-background = ${color.BACKGROUND} + +; Available tokens: +; %artist% +; %album-artist% +; %album% +; %date% +; %title% +; Default: %artist% - %title% +label-song = "%artist% - %title%" +label-song-maxlen = 30 +label-song-ellipsis = true + +; Available tokens: +; %elapsed% +; %total% +; Default: %elapsed% / %total% +;;abel-time = %elapsed% / %total% + +; Available tokens: +; None +label-offline = "" + +; Only applies if <icon-X> is used +icon-play = +icon-play-font = 2 +icon-play-foreground = ${color.CYAN} +icon-pause = +icon-pause-font = 2 +icon-pause-foreground = ${color.CYAN} +icon-stop = +icon-stop-foreground = ${color.RED} +icon-prev = 玲 +icon-prev-font = 1 +icon-prev-foreground = ${color.BLUE} +icon-next = 怜 +icon-next-font = 1 +icon-next-foreground = ${color.BLUE} + +; Used to display the state of random/repeat/repeatone/single +; Only applies if <icon-[random|repeat|repeatone|single]> is used +;;toggle-on-foreground = #ff +;;toggle-off-foreground = #55 + +;;----------- + +[module/song] +type = internal/mpd + +interval = 2 + +format-online = <label-song> +format-online-font = 5 +format-offline = <label-offline> +format-offline-font = 5 + +format-playing = ${self.format-online} +format-paused = "${self.format-online}" +format-stopped = "" + +label-offline = "Offline" +label-song = "%title%" +label-song-maxlen = 25 +label-song-ellipsis = true + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +; If you use both a wired and a wireless network, Add both modules in config.ini +[module/ethernet] +type = internal/network +interface = ${system.sys_network_interface} + +interval = 1.0 +accumulate-stats = true +unknown-as-up = true + +format-connected = <label-connected> +format-connected-prefix = "歷 " +format-connected-prefix-foreground = ${color.BLUE} +format-connected-prefix-font = 2 +format-connected-background = ${color.BACKGROUND} +format-connected-padding = 1 + +format-disconnected = <label-disconnected> +format-disconnected-prefix = "轢 " +format-disconnected-prefix-font = 2 +format-disconnected-foreground = ${color.ALTFOREGROUND} +format-disconnected-background = ${color.BACKGROUND} +format-disconnected-padding = 1 + +label-connected = "%{A1:nmd &:}%downspeed% | %upspeed%%{A}" +label-disconnected = "%{A1:nmd &:}Offline%{A}" + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/network] +type = internal/network +interface = ${system.sys_network_interface} + +; Seconds to sleep between updates +; Default: 1 +interval = 1.0 + +; Test connectivity every Nth update +; A value of 0 disables the feature +; NOTE: Experimental (needs more testing) +; Default: 0 +;ping-interval = 3 + +; @deprecated: Define min width using token specifiers (%downspeed:min% and %upspeed:min%) +; Minimum output width of upload/download rate +; Default: 3 +;;udspeed-minwidth = 5 + +; Accumulate values from all interfaces +; when querying for up/downspeed rate +; Default: false +accumulate-stats = true + +; Consider an `UNKNOWN` interface state as up. +; Some devices have an unknown state, even when they're running +; Default: false +unknown-as-up = true + +; Available tags: +; <label-connected> (default) +; <ramp-signal> +format-connected = <ramp-signal> <label-connected> +format-connected-background = ${color.BACKGROUND} +format-connected-padding = 1 + +; Available tags: +; <label-disconnected> (default) + +format-disconnected = <label-disconnected> +format-disconnected-prefix = "ﲁ " +format-disconnected-prefix-font = 2 +format-disconnected-foreground = ${color.ALTFOREGROUND} +format-disconnected-background = ${color.BACKGROUND} +format-disconnected-padding = 1 + +; Available tags: +; <label-connected> (default) +; <label-packetloss> +; <animation-packetloss> +;;format-packetloss = <animation-packetloss> <label-connected> + +; Available tokens: +; %ifname% [wireless+wired] +; %local_ip% [wireless+wired] +; %local_ip6% [wireless+wired] +; %essid% [wireless] +; %signal% [wireless] +; %upspeed% [wireless+wired] +; %downspeed% [wireless+wired] +; %linkspeed% [wired] +; Default: %ifname% %local_ip% +;label-connected = "%essid% %downspeed%" +label-connected = "%{A1:nmd &:}%essid%%{A}" + +; Available tokens: +; %ifname% [wireless+wired] +; Default: (none) +label-disconnected = "%{A1:nmd &:}Offline%{A}" + +; Available tokens: +; %ifname% [wireless+wired] +; %local_ip% [wireless+wired] +; %local_ip6% [wireless+wired] +; %essid% [wireless] +; %signal% [wireless] +; %upspeed% [wireless+wired] +; %downspeed% [wireless+wired] +; %linkspeed% [wired] +; Default: (none) +;label-packetloss = %essid% +;label-packetloss-foreground = #eefafafa + +; Only applies if <ramp-signal> is used +ramp-signal-0 = 說 +ramp-signal-1 = 說 +ramp-signal-2 = 說 +ramp-signal-3 = 說 +ramp-signal-4 = 說 +ramp-signal-foreground = ${color.BLUE} +ramp-signal-font = 2 + +; Only applies if <animation-packetloss> is used +;;animation-packetloss-0 = ⚠ +;;animation-packetloss-0-foreground = #ffa64c +;;animation-packetloss-1 = ⚠ +;;animation-packetloss-1-foreground = #000000 +; Framerate in milliseconds +;;animation-packetloss-framerate = 500 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/volume] +type = internal/pulseaudio + +; Sink to be used, if it exists (find using `pacmd list-sinks`, name field) +; If not, uses default sink +sink = alsa_output.pci-0000_12_00.3.analog-stereo + +; Use PA_VOLUME_UI_MAX (~153%) if true, or PA_VOLUME_NORM (100%) if false +; Default: true +use-ui-max = false + +; Interval for volume increase/decrease (in percent points) +; Default: 5 +interval = 5 + +; Available tags: +; <label-volume> (default) +; <ramp-volume> +; <bar-volume> +format-volume = <ramp-volume> <label-volume> +format-volume-background = ${color.BACKGROUND} +format-volume-padding = 1 + +; Available tags: +; <label-muted> (default) +; <ramp-volume> +; <bar-volume> +format-muted = <label-muted> +format-muted-prefix = 婢 +format-muted-prefix-font = 2 +format-muted-prefix-foreground = ${color.ALTFOREGROUND} +format-muted-background = ${color.BACKGROUND} +format-muted-padding = 1 + +; Available tokens: +; %percentage% (default) +;label-volume = %percentage%% + +; Available tokens: +; %percentage% (default) +label-muted = " Mute" +label-muted-foreground = ${color.ALTFOREGROUND} + +; Only applies if <bar-volume> is used +bar-volume-width = 10 +bar-volume-gradient = false + +bar-volume-indicator = 雷 +bar-volume-indicator-font = 2 +bar-volume-indicator-foreground = ${color.YELLOW} + +bar-volume-fill = 絛 +bar-volume-fill-font = 3 +bar-volume-foreground-0 = ${color.YELLOW} +bar-volume-foreground-1 = ${color.YELLOW} +bar-volume-foreground-2 = ${color.YELLOW} +bar-volume-foreground-3 = ${color.YELLOW} +bar-volume-foreground-4 = ${color.YELLOW} + +bar-volume-empty = 絛 +bar-volume-empty-font = 3 +bar-volume-empty-foreground = ${color.ALTBACKGROUND} + +; Only applies if <ramp-volume> is used +ramp-volume-0 = 奄 +ramp-volume-1 = 奄 +ramp-volume-2 = 奄 +ramp-volume-3 = 奔 +ramp-volume-4 = 奔 +ramp-volume-5 = 奔 +ramp-volume-6 = 墳 +ramp-volume-7 = 墳 +ramp-volume-8 = 墳 +ramp-volume-9 = 墳 +ramp-volume-font = 2 +ramp-volume-foreground = ${color.YELLOW} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/temperature] +type = internal/temperature + +; Seconds to sleep between updates +; Default: 1 +interval = 0.5 + +; Thermal zone to use +; To list all the zone types, run +; $ for i in /sys/class/thermal/thermal_zone*; do echo "$i: $(<$i/type)"; done +; Default: 0 +thermal-zone = 0 + +; Full path of temperature sysfs path +; Use `sensors` to find preferred temperature source, then run +; $ for i in /sys/class/hwmon/hwmon*/temp*_input; do echo "$(<$(dirname $i)/name): $(cat ${i%_*}_label 2>/dev/null || echo $(basename ${i%_*})) $(readlink -f $i)"; done +; to find path to desired file +; Default reverts to thermal zone setting +;;hwmon-path = /sys/devices/platform/coretemp.0/hwmon/hwmon2/temp1_input + +; Threshold temperature to display warning label (in degrees celsius) +; Default: 80 +warn-temperature = 60 + +; Whether or not to show units next to the temperature tokens (°C, °F) +; Default: true +units = true + +; Available tags: +; <label> (default) +; <ramp> +format = <ramp> <label> + +; Available tags: +; <label-warn> (default) +; <ramp> +format-warn = <ramp> <label-warn> + +; Available tokens: +; %temperature% (deprecated) +; %temperature-c% (default, temperature in °C) +; %temperature-f% (temperature in °F) +label = %temperature-c% + +; Available tokens: +; %temperature% (deprecated) +; %temperature-c% (default, temperature in °C) +; %temperature-f% (temperature in °F) +label-warn = "%temperature-c%" +label-warn-foreground = ${color.RED} + +; Requires the <ramp> tag +; The icon selection will range from 0 to `warn-temperature` +; with the current temperature as index. +ramp-0 = +ramp-1 = +ramp-2 = +ramp-3 = +ramp-4 = +ramp-5 = +ramp-6 = +ramp-7 = +ramp-8 = +ramp-9 = +ramp-font = 2 +ramp-foreground = ${color.YELLOW} +;;ramp-foreground = #55 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/keyboard] +type = internal/xkeyboard + +; List of indicators to ignore +;blacklist-0 = num lock +blacklist-1 = scroll lock + +; Available tags: +; <label-layout> (default) +; <label-indicator> (default) +format = <label-layout> <label-indicator> +format-prefix = " " +format-prefix-font = 2 +format-prefix-foreground = ${color.MAGENTA} +;;format-spacing = 0 + +; Available tokens: +; %layout% +; %name% +; %number% +; Default: %layout% +label-layout = %name% +;;label-layout-padding = 2 +;;label-layout-background = #bc99ed +;;label-layout-foreground = #000 + +; Available tokens: +; %name% +; Default: %name% +label-indicator-on = " %name%" +;;label-indicator-padding = 2 +label-indicator-on-foreground = ${color.BLUE} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/title] +type = internal/xwindow + +; Available tags: +; <label> (default) +format = <label> +format-prefix = " " +format-prefix-font = 2 +format-prefix-foreground = ${color.BLUE} +format-background = ${color.BACKGROUND} + +; Available tokens: +; %title% +; Default: %title% +label = %title% +label-maxlen = 25 + +; Used instead of label when there is no window title +; Available tokens: +; None +label-empty = Desktop +;label-empty-foreground = ${color.ALTBLACK} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/openbox] +type = internal/xworkspaces + +; Only show workspaces defined on the same output as the bar +; +; Useful if you want to show monitor specific workspaces +; on different bars +; +; Default: false +pin-workspaces = true + +; Create click handler used to focus desktop +; Default: true +enable-click = true + +; Create scroll handlers used to cycle desktops +; Default: true +enable-scroll = true + +; icon-[0-9]+ = <desktop-name>;<icon> +; NOTE: The desktop name needs to match the name configured by the WM +; You can get a list of the defined desktops using: +; $ xprop -root _NET_DESKTOP_NAMES +icon-0 = 1; +icon-1 = 2; +icon-2 = 3; +icon-3 = 4; +icon-4 = 5;漣 +icon-default = + +; Available tags: +; <label-monitor> +; <label-state> - gets replaced with <label-(active|urgent|occupied|empty)> +; Default: <label-state> +format = <label-state> +format-background = ${color.BACKGROUND} +format-font = 2 + +; Available tokens: +; %name% +; Default: %name% +label-monitor = %name% + +; Available tokens: +; %name% +; %icon% +; %index% +; Default: %icon% %name% +label-active = %icon% +label-active-foreground = ${color.RED} +;;label-active-underline = ${color.ALTBLACK} + +; Available tokens: +; %name% +; %icon% +; %index% +; Default: %icon% %name% +label-occupied = %icon% +label-occupied-foreground = ${color.YELLOW} +;;label-occupied-underline = ${color.ALTBLACK} + +; Available tokens: +; %name% +; %icon% +; %index% +; Default: %icon% %name% +label-urgent = %icon% +label-urgent-foreground = ${color.BLUE} +;;label-urgent-underline = ${color.ALTBLACK} + +; Available tokens: +; %name% +; %icon% +; %index% +; Default: %icon% %name% +label-empty = %icon% +label-empty-foreground = ${color.FOREGROUND} + +label-active-padding = 1 +label-urgent-padding = 1 +label-occupied-padding = 1 +label-empty-padding = 1 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/menu] +type = custom/text + +content = +content-font = 6 +content-background = ${color.ALTBACKGROUND} +content-foreground = ${color.ACCENT} +content-padding = 2 + +click-left = ~/.config/bspwm/scripts/rofi_launcher +;;click-middle = path_to_script +click-right = ~/.config/bspwm/scripts/rofi_runner + +;;scroll-up = path_to_script +;;scroll-down = path_to_script + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/sysmenu] +type = custom/text + +content = 襤 +content-font = 2 +content-background = ${color.BACKGROUND} +content-foreground = ${color.RED} +content-padding = 1 + +click-left = ~/.config/bspwm/scripts/rofi_powermenu + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ +;; __________ ______ +;; / ____/ __ \/ ____/ +;; / __/ / / / / /_ +;; / /___/ /_/ / __/ +;; /_____/\____/_/ +;; +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ diff --git a/dot-config/bspwm/themes/beach/rofi/askpass.rasi b/dot-config/bspwm/themes/beach/rofi/askpass.rasi new file mode 100644 index 00000000..5a5eac2c --- /dev/null +++ b/dot-config/bspwm/themes/beach/rofi/askpass.rasi @@ -0,0 +1,75 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/*****----- Main Window -----*****/ +window { + location: south; + anchor: south; + fullscreen: false; + width: 350px; + x-offset: 0px; + y-offset: -58px; + padding: 15px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: @background; + cursor: "default"; + children: [ "inputbar", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + children: [ "textbox-prompt-colon", "entry", "prompt" ]; +} + +dummy { + expand: false; + width: 10px; + background-color: transparent; +} +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + padding: 10px 13px; + border-radius: 0px; + background-color: @urgent; + text-color: @background; +} +prompt { + enabled: true; + padding: 10px; + border-radius: 0px; + background-color: @selected; + text-color: @background; +} +entry { + enabled: true; + padding: 10px 15px; + border-radius: 0px; + background-color: @background-alt; + text-color: inherit; + cursor: text; + placeholder: "Password"; + placeholder-color: inherit; +} + +/*****----- Listview -----*****/ +listview { + enabled: false; +} diff --git a/dot-config/bspwm/themes/beach/rofi/asroot.rasi b/dot-config/bspwm/themes/beach/rofi/asroot.rasi new file mode 100644 index 00000000..c3c2c6e4 --- /dev/null +++ b/dot-config/bspwm/themes/beach/rofi/asroot.rasi @@ -0,0 +1,306 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + modi: "run"; + show-icons: false; + display-drun: ""; + display-run: ""; + display-filebrowser: ""; + display-window: ""; + drun-display-format: "{name} [<span weight='light' size='small'><i>({generic})</i></span>]"; + window-format: "{w} · {c} · {t}"; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/* +USE_ICON=NO +*/ + +* { + border-colour: var(selected); + handle-colour: var(selected); + background-colour: var(background); + foreground-colour: var(foreground); + alternate-background: var(background-alt); + normal-background: var(background); + normal-foreground: var(foreground); + urgent-background: var(urgent); + urgent-foreground: var(background); + active-background: var(active); + active-foreground: var(background); + selected-normal-background: var(selected); + selected-normal-foreground: var(background); + selected-urgent-background: var(active); + selected-urgent-foreground: var(background); + selected-active-background: var(urgent); + selected-active-foreground: var(background); + alternate-normal-background: var(background); + alternate-normal-foreground: var(foreground); + alternate-urgent-background: var(urgent); + alternate-urgent-foreground: var(background); + alternate-active-background: var(active); + alternate-active-foreground: var(background); +} + +/*****----- Main Window -----*****/ +window { + /* properties for window widget */ + transparency: "real"; + location: south; + anchor: south; + fullscreen: false; + width: 350px; + x-offset: 0px; + y-offset: -58px; + + /* properties for all widgets */ + enabled: true; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + cursor: "default"; + /* Backgroud Colors */ + background-color: @background-colour; + /* Backgroud Image */ + //background-image: url("/path/to/image.png", none); + /* Simple Linear Gradient */ + //background-image: linear-gradient(red, orange, pink, purple); + /* Directional Linear Gradient */ + //background-image: linear-gradient(to bottom, pink, yellow, magenta); + /* Angle Linear Gradient */ + //background-image: linear-gradient(45, cyan, purple, indigo); +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 30px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @border-colour; + background-color: transparent; + children: [ "inputbar", "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + children: [ "textbox-prompt-colon", "prompt" ]; +} + +prompt { + enabled: true; + background-color: inherit; + text-color: inherit; +} +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + background-color: inherit; + text-color: inherit; +} +entry { + enabled: true; + background-color: inherit; + text-color: inherit; + cursor: text; + placeholder: ""; + placeholder-color: inherit; +} +num-filtered-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +textbox-num-sep { + enabled: true; + expand: false; + str: "/"; + background-color: inherit; + text-color: inherit; +} +num-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +case-indicator { + enabled: true; + background-color: inherit; + text-color: inherit; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 1; + lines: 5; + cycle: true; + dynamic: true; + scrollbar: false; + layout: vertical; + reverse: false; + fixed-height: true; + fixed-columns: true; + + spacing: 5px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: "default"; +} +scrollbar { + handle-width: 5px ; + handle-color: @handle-colour; + border-radius: 0px; + background-color: @alternate-background; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + spacing: 0px; + margin: 0px; + padding: 8px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: pointer; +} +element normal.normal { + background-color: var(normal-background); + text-color: var(normal-foreground); +} +element normal.urgent { + background-color: var(urgent-background); + text-color: var(urgent-foreground); +} +element normal.active { + background-color: var(active-background); + text-color: var(active-foreground); +} +element selected.normal { + background-color: var(selected); + text-color: var(normal-background); +} +element selected.urgent { + background-color: var(selected-urgent-background); + text-color: var(selected-urgent-foreground); +} +element selected.active { + background-color: var(selected-active-background); + text-color: var(selected-active-foreground); +} +element alternate.normal { + background-color: var(alternate-normal-background); + text-color: var(alternate-normal-foreground); +} +element alternate.urgent { + background-color: var(alternate-urgent-background); + text-color: var(alternate-urgent-foreground); +} +element alternate.active { + background-color: var(alternate-active-background); + text-color: var(alternate-active-foreground); +} +element-icon { + background-color: transparent; + text-color: inherit; + size: 24px; + cursor: inherit; +} +element-text { + background-color: transparent; + text-color: inherit; + highlight: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Mode Switcher -----*****/ +mode-switcher{ + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; +} +button { + padding: 8px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: inherit; + cursor: pointer; +} +button selected { + background-color: var(selected-normal-background); + text-color: var(selected-normal-foreground); +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; +} +textbox { + padding: 8px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: @foreground-colour; + vertical-align: 0.5; + horizontal-align: 0.0; + highlight: none; + placeholder-color: @foreground-colour; + blink: true; + markup: true; +} +error-message { + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @background-colour; + text-color: @foreground-colour; +} diff --git a/dot-config/bspwm/themes/beach/rofi/confirm.rasi b/dot-config/bspwm/themes/beach/rofi/confirm.rasi new file mode 100644 index 00000000..b820a2a9 --- /dev/null +++ b/dot-config/bspwm/themes/beach/rofi/confirm.rasi @@ -0,0 +1,306 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + modi: "run"; + show-icons: false; + display-drun: ""; + display-run: ""; + display-filebrowser: ""; + display-window: ""; + drun-display-format: "{name} [<span weight='light' size='small'><i>({generic})</i></span>]"; + window-format: "{w} · {c} · {t}"; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/* +USE_ICON=NO +*/ + +* { + border-colour: var(selected); + handle-colour: var(selected); + background-colour: var(background); + foreground-colour: var(foreground); + alternate-background: var(background-alt); + normal-background: var(background); + normal-foreground: var(foreground); + urgent-background: var(urgent); + urgent-foreground: var(background); + active-background: var(active); + active-foreground: var(background); + selected-normal-background: var(selected); + selected-normal-foreground: var(background); + selected-urgent-background: var(active); + selected-urgent-foreground: var(background); + selected-active-background: var(urgent); + selected-active-foreground: var(background); + alternate-normal-background: var(background); + alternate-normal-foreground: var(foreground); + alternate-urgent-background: var(urgent); + alternate-urgent-foreground: var(background); + alternate-active-background: var(active); + alternate-active-foreground: var(background); +} + +/*****----- Main Window -----*****/ +window { + /* properties for window widget */ + transparency: "real"; + location: southeast; + anchor: southeast; + fullscreen: false; + width: 250px; + x-offset: -20px; + y-offset: -58px; + + /* properties for all widgets */ + enabled: true; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + cursor: "default"; + /* Backgroud Colors */ + background-color: @background-colour; + /* Backgroud Image */ + //background-image: url("/path/to/image.png", none); + /* Simple Linear Gradient */ + //background-image: linear-gradient(red, orange, pink, purple); + /* Directional Linear Gradient */ + //background-image: linear-gradient(to bottom, pink, yellow, magenta); + /* Angle Linear Gradient */ + //background-image: linear-gradient(45, cyan, purple, indigo); +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 30px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @border-colour; + background-color: transparent; + children: [ "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + children: [ "textbox-prompt-colon", "prompt" ]; +} + +prompt { + enabled: true; + background-color: inherit; + text-color: inherit; +} +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + background-color: inherit; + text-color: inherit; +} +entry { + enabled: true; + background-color: inherit; + text-color: inherit; + cursor: text; + placeholder: ""; + placeholder-color: inherit; +} +num-filtered-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +textbox-num-sep { + enabled: true; + expand: false; + str: "/"; + background-color: inherit; + text-color: inherit; +} +num-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +case-indicator { + enabled: true; + background-color: inherit; + text-color: inherit; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 2; + lines: 1; + cycle: true; + dynamic: true; + scrollbar: false; + layout: vertical; + reverse: false; + fixed-height: true; + fixed-columns: true; + + spacing: 5px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: "default"; +} +scrollbar { + handle-width: 5px ; + handle-color: @handle-colour; + border-radius: 0px; + background-color: @alternate-background; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + spacing: 0px; + margin: 0px; + padding: 8px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: pointer; +} +element normal.normal { + background-color: var(normal-background); + text-color: var(normal-foreground); +} +element normal.urgent { + background-color: var(urgent-background); + text-color: var(urgent-foreground); +} +element normal.active { + background-color: var(active-background); + text-color: var(active-foreground); +} +element selected.normal { + background-color: var(selected); + text-color: var(normal-background); +} +element selected.urgent { + background-color: var(selected-urgent-background); + text-color: var(selected-urgent-foreground); +} +element selected.active { + background-color: var(selected-active-background); + text-color: var(selected-active-foreground); +} +element alternate.normal { + background-color: var(alternate-normal-background); + text-color: var(alternate-normal-foreground); +} +element alternate.urgent { + background-color: var(alternate-urgent-background); + text-color: var(alternate-urgent-foreground); +} +element alternate.active { + background-color: var(alternate-active-background); + text-color: var(alternate-active-foreground); +} +element-icon { + background-color: transparent; + text-color: inherit; + size: 24px; + cursor: inherit; +} +element-text { + background-color: transparent; + text-color: inherit; + highlight: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.5; +} + +/*****----- Mode Switcher -----*****/ +mode-switcher{ + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; +} +button { + padding: 8px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: inherit; + cursor: pointer; +} +button selected { + background-color: var(selected-normal-background); + text-color: var(selected-normal-foreground); +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; +} +textbox { + padding: 8px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: @foreground-colour; + vertical-align: 0.5; + horizontal-align: 0.5; + highlight: none; + placeholder-color: @foreground-colour; + blink: true; + markup: true; +} +error-message { + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @background-colour; + text-color: @foreground-colour; +} diff --git a/dot-config/bspwm/themes/beach/rofi/launcher.rasi b/dot-config/bspwm/themes/beach/rofi/launcher.rasi new file mode 100644 index 00000000..38a9c42d --- /dev/null +++ b/dot-config/bspwm/themes/beach/rofi/launcher.rasi @@ -0,0 +1,302 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + modi: "drun,run,filebrowser,window"; + show-icons: true; + display-drun: ""; + display-run: ""; + display-filebrowser: ""; + display-window: ""; + drun-display-format: "{name} [<span weight='light' size='small'><i>({generic})</i></span>]"; + window-format: "{c} · {t}"; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +* { + border-colour: var(selected); + handle-colour: var(selected); + background-colour: var(background); + foreground-colour: var(foreground); + alternate-background: var(background-alt); + normal-background: var(background); + normal-foreground: var(foreground); + urgent-background: var(urgent); + urgent-foreground: var(background); + active-background: var(active); + active-foreground: var(background); + selected-normal-background: var(selected); + selected-normal-foreground: var(background); + selected-urgent-background: var(active); + selected-urgent-foreground: var(background); + selected-active-background: var(urgent); + selected-active-foreground: var(background); + alternate-normal-background: var(background); + alternate-normal-foreground: var(foreground); + alternate-urgent-background: var(urgent); + alternate-urgent-foreground: var(background); + alternate-active-background: var(active); + alternate-active-foreground: var(background); +} + +/*****----- Main Window -----*****/ +window { + /* properties for window widget */ + transparency: "real"; + location: southwest; + anchor: southwest; + fullscreen: false; + width: 500px; + x-offset: 20px; + y-offset: -58px; + + /* properties for all widgets */ + enabled: true; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + cursor: "default"; + /* Backgroud Colors */ + background-color: @background-colour; + /* Backgroud Image */ + //background-image: url("/path/to/image.png", none); + /* Simple Linear Gradient */ + //background-image: linear-gradient(red, orange, pink, purple); + /* Directional Linear Gradient */ + //background-image: linear-gradient(to bottom, pink, yellow, magenta); + /* Angle Linear Gradient */ + //background-image: linear-gradient(45, cyan, purple, indigo); +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 40px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @border-colour; + background-color: transparent; + children: [ "inputbar", "message", "listview", "mode-switcher" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + children: [ "prompt", "entry" ]; +} + +prompt { + enabled: true; + background-color: inherit; + text-color: inherit; +} +textbox-prompt-colon { + enabled: true; + expand: false; + str: "::"; + background-color: inherit; + text-color: inherit; +} +entry { + enabled: true; + background-color: inherit; + text-color: inherit; + cursor: text; + placeholder: "search..."; + placeholder-color: inherit; +} +num-filtered-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +textbox-num-sep { + enabled: true; + expand: false; + str: "/"; + background-color: inherit; + text-color: inherit; +} +num-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +case-indicator { + enabled: true; + background-color: inherit; + text-color: inherit; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 1; + lines: 8; + cycle: true; + dynamic: true; + scrollbar: true; + layout: vertical; + reverse: false; + fixed-height: true; + fixed-columns: true; + + spacing: 5px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: "default"; +} +scrollbar { + handle-width: 5px ; + handle-color: @handle-colour; + border-radius: 0px; + background-color: @alternate-background; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + spacing: 8px; + margin: 0px; + padding: 6px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: pointer; +} +element normal.normal { + background-color: var(normal-background); + text-color: var(normal-foreground); +} +element normal.urgent { + background-color: var(urgent-background); + text-color: var(urgent-foreground); +} +element normal.active { + background-color: var(active-background); + text-color: var(active-foreground); +} +element selected.normal { + background-color: var(selected); + text-color: var(normal-background); +} +element selected.urgent { + background-color: var(selected-urgent-background); + text-color: var(selected-urgent-foreground); +} +element selected.active { + background-color: var(selected-active-background); + text-color: var(selected-active-foreground); +} +element alternate.normal { + background-color: var(alternate-normal-background); + text-color: var(alternate-normal-foreground); +} +element alternate.urgent { + background-color: var(alternate-urgent-background); + text-color: var(alternate-urgent-foreground); +} +element alternate.active { + background-color: var(alternate-active-background); + text-color: var(alternate-active-foreground); +} +element-icon { + background-color: transparent; + text-color: inherit; + size: 24px; + cursor: inherit; +} +element-text { + background-color: transparent; + text-color: inherit; + highlight: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Mode Switcher -----*****/ +mode-switcher{ + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; +} +button { + padding: 8px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: inherit; + cursor: pointer; +} +button selected { + background-color: var(selected-normal-background); + text-color: var(selected-normal-foreground); +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; +} +textbox { + padding: 8px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: @foreground-colour; + vertical-align: 0.5; + horizontal-align: 0.0; + highlight: none; + placeholder-color: @foreground-colour; + blink: true; + markup: true; +} +error-message { + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @background-colour; + text-color: @foreground-colour; +} diff --git a/dot-config/bspwm/themes/beach/rofi/music.rasi b/dot-config/bspwm/themes/beach/rofi/music.rasi new file mode 100644 index 00000000..d8d266fc --- /dev/null +++ b/dot-config/bspwm/themes/beach/rofi/music.rasi @@ -0,0 +1,306 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + modi: "run"; + show-icons: false; + display-drun: ""; + display-run: ""; + display-filebrowser: ""; + display-window: ""; + drun-display-format: "{name} [<span weight='light' size='small'><i>({generic})</i></span>]"; + window-format: "{w} · {c} · {t}"; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/* +USE_ICON=NO +*/ + +* { + border-colour: var(selected); + handle-colour: var(selected); + background-colour: var(background); + foreground-colour: var(foreground); + alternate-background: var(background-alt); + normal-background: var(background); + normal-foreground: var(foreground); + urgent-background: var(urgent); + urgent-foreground: var(background); + active-background: var(active); + active-foreground: var(background); + selected-normal-background: var(selected); + selected-normal-foreground: var(background); + selected-urgent-background: var(active); + selected-urgent-foreground: var(background); + selected-active-background: var(urgent); + selected-active-foreground: var(background); + alternate-normal-background: var(background); + alternate-normal-foreground: var(foreground); + alternate-urgent-background: var(urgent); + alternate-urgent-foreground: var(background); + alternate-active-background: var(active); + alternate-active-foreground: var(background); +} + +/*****----- Main Window -----*****/ +window { + /* properties for window widget */ + transparency: "real"; + location: south; + anchor: south; + fullscreen: false; + width: 350px; + x-offset: 0px; + y-offset: -58px; + + /* properties for all widgets */ + enabled: true; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + cursor: "default"; + /* Backgroud Colors */ + background-color: @background-colour; + /* Backgroud Image */ + //background-image: url("/path/to/image.png", none); + /* Simple Linear Gradient */ + //background-image: linear-gradient(red, orange, pink, purple); + /* Directional Linear Gradient */ + //background-image: linear-gradient(to bottom, pink, yellow, magenta); + /* Angle Linear Gradient */ + //background-image: linear-gradient(45, cyan, purple, indigo); +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 30px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @border-colour; + background-color: transparent; + children: [ "inputbar", "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + children: [ "textbox-prompt-colon", "prompt" ]; +} + +prompt { + enabled: true; + background-color: inherit; + text-color: inherit; +} +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + background-color: inherit; + text-color: inherit; +} +entry { + enabled: true; + background-color: inherit; + text-color: inherit; + cursor: text; + placeholder: ""; + placeholder-color: inherit; +} +num-filtered-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +textbox-num-sep { + enabled: true; + expand: false; + str: "/"; + background-color: inherit; + text-color: inherit; +} +num-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +case-indicator { + enabled: true; + background-color: inherit; + text-color: inherit; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 1; + lines: 6; + cycle: true; + dynamic: true; + scrollbar: false; + layout: vertical; + reverse: false; + fixed-height: true; + fixed-columns: true; + + spacing: 5px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: "default"; +} +scrollbar { + handle-width: 5px ; + handle-color: @handle-colour; + border-radius: 0px; + background-color: @alternate-background; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + spacing: 0px; + margin: 0px; + padding: 8px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: pointer; +} +element normal.normal { + background-color: var(normal-background); + text-color: var(normal-foreground); +} +element normal.urgent { + background-color: var(urgent-background); + text-color: var(urgent-foreground); +} +element normal.active { + background-color: var(active-background); + text-color: var(active-foreground); +} +element selected.normal { + background-color: var(selected); + text-color: var(normal-background); +} +element selected.urgent { + background-color: var(selected-urgent-background); + text-color: var(selected-urgent-foreground); +} +element selected.active { + background-color: var(selected-active-background); + text-color: var(selected-active-foreground); +} +element alternate.normal { + background-color: var(alternate-normal-background); + text-color: var(alternate-normal-foreground); +} +element alternate.urgent { + background-color: var(alternate-urgent-background); + text-color: var(alternate-urgent-foreground); +} +element alternate.active { + background-color: var(alternate-active-background); + text-color: var(alternate-active-foreground); +} +element-icon { + background-color: transparent; + text-color: inherit; + size: 24px; + cursor: inherit; +} +element-text { + background-color: transparent; + text-color: inherit; + highlight: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Mode Switcher -----*****/ +mode-switcher{ + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; +} +button { + padding: 8px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: inherit; + cursor: pointer; +} +button selected { + background-color: var(selected-normal-background); + text-color: var(selected-normal-foreground); +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; +} +textbox { + padding: 8px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: @foreground-colour; + vertical-align: 0.5; + horizontal-align: 0.0; + highlight: none; + placeholder-color: @foreground-colour; + blink: true; + markup: true; +} +error-message { + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @background-colour; + text-color: @foreground-colour; +} diff --git a/dot-config/bspwm/themes/beach/rofi/networkmenu.rasi b/dot-config/bspwm/themes/beach/rofi/networkmenu.rasi new file mode 100644 index 00000000..319e856a --- /dev/null +++ b/dot-config/bspwm/themes/beach/rofi/networkmenu.rasi @@ -0,0 +1,303 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + modi: "run"; + show-icons: false; + display-drun: ""; + display-run: ""; + display-filebrowser: ""; + display-window: ""; + drun-display-format: "{name} [<span weight='light' size='small'><i>({generic})</i></span>]"; + window-format: "{w} · {c} · {t}"; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +* { + border-colour: var(selected); + handle-colour: var(selected); + background-colour: var(background); + foreground-colour: var(foreground); + alternate-background: var(background-alt); + normal-background: var(background); + normal-foreground: var(foreground); + urgent-background: var(urgent); + urgent-foreground: var(background); + active-background: var(active); + active-foreground: var(background); + selected-normal-background: var(selected); + selected-normal-foreground: var(background); + selected-urgent-background: var(active); + selected-urgent-foreground: var(background); + selected-active-background: var(urgent); + selected-active-foreground: var(background); + alternate-normal-background: var(background); + alternate-normal-foreground: var(foreground); + alternate-urgent-background: var(urgent); + alternate-urgent-foreground: var(background); + alternate-active-background: var(active); + alternate-active-foreground: var(background); +} + +/*****----- Main Window -----*****/ +window { + /* properties for window widget */ + transparency: "real"; + location: southeast; + anchor: southeast; + fullscreen: false; + width: 450px; + height: 400px; + x-offset: -20px; + y-offset: -58px; + + /* properties for all widgets */ + enabled: true; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + cursor: "default"; + /* Backgroud Colors */ + background-color: @background-colour; + /* Backgroud Image */ + //background-image: url("/path/to/image.png", none); + /* Simple Linear Gradient */ + //background-image: linear-gradient(red, orange, pink, purple); + /* Directional Linear Gradient */ + //background-image: linear-gradient(to bottom, pink, yellow, magenta); + /* Angle Linear Gradient */ + //background-image: linear-gradient(45, cyan, purple, indigo); +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 30px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @border-colour; + background-color: transparent; + children: [ "inputbar", "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + children: [ "textbox-prompt-colon", "prompt", "entry" ]; +} + +prompt { + enabled: true; + background-color: inherit; + text-color: inherit; +} +textbox-prompt-colon { + enabled: true; + expand: false; + str: "直"; + background-color: inherit; + text-color: inherit; +} +entry { + enabled: true; + background-color: inherit; + text-color: inherit; + cursor: text; + placeholder: ""; + placeholder-color: inherit; +} +num-filtered-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +textbox-num-sep { + enabled: true; + expand: false; + str: "/"; + background-color: inherit; + text-color: inherit; +} +num-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +case-indicator { + enabled: true; + background-color: inherit; + text-color: inherit; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 1; + lines: 6; + cycle: true; + dynamic: true; + scrollbar: true; + layout: vertical; + reverse: false; + fixed-height: true; + fixed-columns: true; + + spacing: 5px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: "default"; +} +scrollbar { + handle-width: 5px ; + handle-color: @handle-colour; + border-radius: 0px; + background-color: @alternate-background; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + spacing: 0px; + margin: 0px; + padding: 8px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: pointer; +} +element normal.normal { + background-color: var(normal-background); + text-color: var(normal-foreground); +} +element normal.urgent { + background-color: var(urgent-background); + text-color: var(urgent-foreground); +} +element normal.active { + background-color: var(active-background); + text-color: var(active-foreground); +} +element selected.normal { + background-color: var(selected); + text-color: var(normal-background); +} +element selected.urgent { + background-color: var(selected-urgent-background); + text-color: var(selected-urgent-foreground); +} +element selected.active { + background-color: var(selected-active-background); + text-color: var(selected-active-foreground); +} +element alternate.normal { + background-color: var(alternate-normal-background); + text-color: var(alternate-normal-foreground); +} +element alternate.urgent { + background-color: var(alternate-urgent-background); + text-color: var(alternate-urgent-foreground); +} +element alternate.active { + background-color: var(alternate-active-background); + text-color: var(alternate-active-foreground); +} +element-icon { + background-color: transparent; + text-color: inherit; + size: 24px; + cursor: inherit; +} +element-text { + background-color: transparent; + text-color: inherit; + highlight: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Mode Switcher -----*****/ +mode-switcher{ + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; +} +button { + padding: 8px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: inherit; + cursor: pointer; +} +button selected { + background-color: var(selected-normal-background); + text-color: var(selected-normal-foreground); +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; +} +textbox { + padding: 8px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: @foreground-colour; + vertical-align: 0.5; + horizontal-align: 0.0; + highlight: none; + placeholder-color: @foreground-colour; + blink: true; + markup: true; +} +error-message { + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @background-colour; + text-color: @foreground-colour; +} diff --git a/dot-config/bspwm/themes/beach/rofi/powermenu.rasi b/dot-config/bspwm/themes/beach/rofi/powermenu.rasi new file mode 100644 index 00000000..a02e18b6 --- /dev/null +++ b/dot-config/bspwm/themes/beach/rofi/powermenu.rasi @@ -0,0 +1,306 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + modi: "run"; + show-icons: false; + display-drun: ""; + display-run: ""; + display-filebrowser: ""; + display-window: ""; + drun-display-format: "{name} [<span weight='light' size='small'><i>({generic})</i></span>]"; + window-format: "{w} · {c} · {t}"; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/* +USE_ICON=NO +*/ + +* { + border-colour: var(selected); + handle-colour: var(selected); + background-colour: var(background); + foreground-colour: var(foreground); + alternate-background: var(background-alt); + normal-background: var(background); + normal-foreground: var(foreground); + urgent-background: var(urgent); + urgent-foreground: var(background); + active-background: var(active); + active-foreground: var(background); + selected-normal-background: var(selected); + selected-normal-foreground: var(background); + selected-urgent-background: var(active); + selected-urgent-foreground: var(background); + selected-active-background: var(urgent); + selected-active-foreground: var(background); + alternate-normal-background: var(background); + alternate-normal-foreground: var(foreground); + alternate-urgent-background: var(urgent); + alternate-urgent-foreground: var(background); + alternate-active-background: var(active); + alternate-active-foreground: var(background); +} + +/*****----- Main Window -----*****/ +window { + /* properties for window widget */ + transparency: "real"; + location: southeast; + anchor: southeast; + fullscreen: false; + width: 350px; + x-offset: -20px; + y-offset: -58px; + + /* properties for all widgets */ + enabled: true; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + cursor: "default"; + /* Backgroud Colors */ + background-color: @background-colour; + /* Backgroud Image */ + //background-image: url("/path/to/image.png", none); + /* Simple Linear Gradient */ + //background-image: linear-gradient(red, orange, pink, purple); + /* Directional Linear Gradient */ + //background-image: linear-gradient(to bottom, pink, yellow, magenta); + /* Angle Linear Gradient */ + //background-image: linear-gradient(45, cyan, purple, indigo); +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 30px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @border-colour; + background-color: transparent; + children: [ "inputbar", "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + children: [ "textbox-prompt-colon", "prompt" ]; +} + +prompt { + enabled: true; + background-color: inherit; + text-color: inherit; +} +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + background-color: inherit; + text-color: inherit; +} +entry { + enabled: true; + background-color: inherit; + text-color: inherit; + cursor: text; + placeholder: ""; + placeholder-color: inherit; +} +num-filtered-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +textbox-num-sep { + enabled: true; + expand: false; + str: "/"; + background-color: inherit; + text-color: inherit; +} +num-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +case-indicator { + enabled: true; + background-color: inherit; + text-color: inherit; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 1; + lines: 6; + cycle: true; + dynamic: true; + scrollbar: false; + layout: vertical; + reverse: false; + fixed-height: true; + fixed-columns: true; + + spacing: 5px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: "default"; +} +scrollbar { + handle-width: 5px ; + handle-color: @handle-colour; + border-radius: 0px; + background-color: @alternate-background; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + spacing: 0px; + margin: 0px; + padding: 8px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: pointer; +} +element normal.normal { + background-color: var(normal-background); + text-color: var(normal-foreground); +} +element normal.urgent { + background-color: var(urgent-background); + text-color: var(urgent-foreground); +} +element normal.active { + background-color: var(active-background); + text-color: var(active-foreground); +} +element selected.normal { + background-color: var(selected); + text-color: var(normal-background); +} +element selected.urgent { + background-color: var(selected-urgent-background); + text-color: var(selected-urgent-foreground); +} +element selected.active { + background-color: var(selected-active-background); + text-color: var(selected-active-foreground); +} +element alternate.normal { + background-color: var(alternate-normal-background); + text-color: var(alternate-normal-foreground); +} +element alternate.urgent { + background-color: var(alternate-urgent-background); + text-color: var(alternate-urgent-foreground); +} +element alternate.active { + background-color: var(alternate-active-background); + text-color: var(alternate-active-foreground); +} +element-icon { + background-color: transparent; + text-color: inherit; + size: 24px; + cursor: inherit; +} +element-text { + background-color: transparent; + text-color: inherit; + highlight: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Mode Switcher -----*****/ +mode-switcher{ + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; +} +button { + padding: 8px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: inherit; + cursor: pointer; +} +button selected { + background-color: var(selected-normal-background); + text-color: var(selected-normal-foreground); +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; +} +textbox { + padding: 8px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: @foreground-colour; + vertical-align: 0.5; + horizontal-align: 0.0; + highlight: none; + placeholder-color: @foreground-colour; + blink: true; + markup: true; +} +error-message { + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @background-colour; + text-color: @foreground-colour; +} diff --git a/dot-config/bspwm/themes/beach/rofi/runner.rasi b/dot-config/bspwm/themes/beach/rofi/runner.rasi new file mode 100644 index 00000000..3ea41182 --- /dev/null +++ b/dot-config/bspwm/themes/beach/rofi/runner.rasi @@ -0,0 +1,302 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + modi: "run"; + show-icons: true; + display-drun: ""; + display-run: ""; + display-filebrowser: ""; + display-window: ""; + drun-display-format: "{name} [<span weight='light' size='small'><i>({generic})</i></span>]"; + window-format: "{w} · {c} · {t}"; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +* { + border-colour: var(selected); + handle-colour: var(selected); + background-colour: var(background); + foreground-colour: var(foreground); + alternate-background: var(background-alt); + normal-background: var(background); + normal-foreground: var(foreground); + urgent-background: var(urgent); + urgent-foreground: var(background); + active-background: var(active); + active-foreground: var(background); + selected-normal-background: var(selected); + selected-normal-foreground: var(background); + selected-urgent-background: var(active); + selected-urgent-foreground: var(background); + selected-active-background: var(urgent); + selected-active-foreground: var(background); + alternate-normal-background: var(background); + alternate-normal-foreground: var(foreground); + alternate-urgent-background: var(urgent); + alternate-urgent-foreground: var(background); + alternate-active-background: var(active); + alternate-active-foreground: var(background); +} + +/*****----- Main Window -----*****/ +window { + /* properties for window widget */ + transparency: "real"; + location: southwest; + anchor: southwest; + fullscreen: false; + width: 400px; + x-offset: 20px; + y-offset: -58px; + + /* properties for all widgets */ + enabled: true; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + cursor: "default"; + /* Backgroud Colors */ + background-color: @background-colour; + /* Backgroud Image */ + //background-image: url("/path/to/image.png", none); + /* Simple Linear Gradient */ + //background-image: linear-gradient(red, orange, pink, purple); + /* Directional Linear Gradient */ + //background-image: linear-gradient(to bottom, pink, yellow, magenta); + /* Angle Linear Gradient */ + //background-image: linear-gradient(45, cyan, purple, indigo); +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 30px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @border-colour; + background-color: transparent; + children: [ "inputbar", "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + children: [ "prompt", "entry" ]; +} + +prompt { + enabled: true; + background-color: inherit; + text-color: inherit; +} +textbox-prompt-colon { + enabled: true; + expand: false; + str: "::"; + background-color: inherit; + text-color: inherit; +} +entry { + enabled: true; + background-color: inherit; + text-color: inherit; + cursor: text; + placeholder: "search..."; + placeholder-color: inherit; +} +num-filtered-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +textbox-num-sep { + enabled: true; + expand: false; + str: "/"; + background-color: inherit; + text-color: inherit; +} +num-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +case-indicator { + enabled: true; + background-color: inherit; + text-color: inherit; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 1; + lines: 6; + cycle: true; + dynamic: true; + scrollbar: false; + layout: vertical; + reverse: false; + fixed-height: true; + fixed-columns: true; + + spacing: 5px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: "default"; +} +scrollbar { + handle-width: 5px ; + handle-color: @handle-colour; + border-radius: 0px; + background-color: @alternate-background; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + spacing: 8px; + margin: 0px; + padding: 6px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: pointer; +} +element normal.normal { + background-color: var(normal-background); + text-color: var(normal-foreground); +} +element normal.urgent { + background-color: var(urgent-background); + text-color: var(urgent-foreground); +} +element normal.active { + background-color: var(active-background); + text-color: var(active-foreground); +} +element selected.normal { + background-color: var(selected); + text-color: var(normal-background); +} +element selected.urgent { + background-color: var(selected-urgent-background); + text-color: var(selected-urgent-foreground); +} +element selected.active { + background-color: var(selected-active-background); + text-color: var(selected-active-foreground); +} +element alternate.normal { + background-color: var(alternate-normal-background); + text-color: var(alternate-normal-foreground); +} +element alternate.urgent { + background-color: var(alternate-urgent-background); + text-color: var(alternate-urgent-foreground); +} +element alternate.active { + background-color: var(alternate-active-background); + text-color: var(alternate-active-foreground); +} +element-icon { + background-color: transparent; + text-color: inherit; + size: 24px; + cursor: inherit; +} +element-text { + background-color: transparent; + text-color: inherit; + highlight: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Mode Switcher -----*****/ +mode-switcher{ + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; +} +button { + padding: 8px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: inherit; + cursor: pointer; +} +button selected { + background-color: var(selected-normal-background); + text-color: var(selected-normal-foreground); +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; +} +textbox { + padding: 8px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: @foreground-colour; + vertical-align: 0.5; + horizontal-align: 0.0; + highlight: none; + placeholder-color: @foreground-colour; + blink: true; + markup: true; +} +error-message { + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @background-colour; + text-color: @foreground-colour; +} diff --git a/dot-config/bspwm/themes/beach/rofi/screenshot.rasi b/dot-config/bspwm/themes/beach/rofi/screenshot.rasi new file mode 100644 index 00000000..1858e0b3 --- /dev/null +++ b/dot-config/bspwm/themes/beach/rofi/screenshot.rasi @@ -0,0 +1,306 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + modi: "run"; + show-icons: false; + display-drun: ""; + display-run: ""; + display-filebrowser: ""; + display-window: ""; + drun-display-format: "{name} [<span weight='light' size='small'><i>({generic})</i></span>]"; + window-format: "{w} · {c} · {t}"; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/* +USE_ICON=NO +*/ + +* { + border-colour: var(selected); + handle-colour: var(selected); + background-colour: var(background); + foreground-colour: var(foreground); + alternate-background: var(background-alt); + normal-background: var(background); + normal-foreground: var(foreground); + urgent-background: var(urgent); + urgent-foreground: var(background); + active-background: var(active); + active-foreground: var(background); + selected-normal-background: var(selected); + selected-normal-foreground: var(background); + selected-urgent-background: var(active); + selected-urgent-foreground: var(background); + selected-active-background: var(urgent); + selected-active-foreground: var(background); + alternate-normal-background: var(background); + alternate-normal-foreground: var(foreground); + alternate-urgent-background: var(urgent); + alternate-urgent-foreground: var(background); + alternate-active-background: var(active); + alternate-active-foreground: var(background); +} + +/*****----- Main Window -----*****/ +window { + /* properties for window widget */ + transparency: "real"; + location: southeast; + anchor: southeast; + fullscreen: false; + width: 350px; + x-offset: -20px; + y-offset: -58px; + + /* properties for all widgets */ + enabled: true; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + cursor: "default"; + /* Backgroud Colors */ + background-color: @background-colour; + /* Backgroud Image */ + //background-image: url("/path/to/image.png", none); + /* Simple Linear Gradient */ + //background-image: linear-gradient(red, orange, pink, purple); + /* Directional Linear Gradient */ + //background-image: linear-gradient(to bottom, pink, yellow, magenta); + /* Angle Linear Gradient */ + //background-image: linear-gradient(45, cyan, purple, indigo); +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 30px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @border-colour; + background-color: transparent; + children: [ "inputbar", "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + children: [ "textbox-prompt-colon", "prompt" ]; +} + +prompt { + enabled: true; + background-color: inherit; + text-color: inherit; +} +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + background-color: inherit; + text-color: inherit; +} +entry { + enabled: true; + background-color: inherit; + text-color: inherit; + cursor: text; + placeholder: ""; + placeholder-color: inherit; +} +num-filtered-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +textbox-num-sep { + enabled: true; + expand: false; + str: "/"; + background-color: inherit; + text-color: inherit; +} +num-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +case-indicator { + enabled: true; + background-color: inherit; + text-color: inherit; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 1; + lines: 5; + cycle: true; + dynamic: true; + scrollbar: false; + layout: vertical; + reverse: false; + fixed-height: true; + fixed-columns: true; + + spacing: 5px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: "default"; +} +scrollbar { + handle-width: 5px ; + handle-color: @handle-colour; + border-radius: 0px; + background-color: @alternate-background; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + spacing: 0px; + margin: 0px; + padding: 8px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: pointer; +} +element normal.normal { + background-color: var(normal-background); + text-color: var(normal-foreground); +} +element normal.urgent { + background-color: var(urgent-background); + text-color: var(urgent-foreground); +} +element normal.active { + background-color: var(active-background); + text-color: var(active-foreground); +} +element selected.normal { + background-color: var(selected); + text-color: var(normal-background); +} +element selected.urgent { + background-color: var(selected-urgent-background); + text-color: var(selected-urgent-foreground); +} +element selected.active { + background-color: var(selected-active-background); + text-color: var(selected-active-foreground); +} +element alternate.normal { + background-color: var(alternate-normal-background); + text-color: var(alternate-normal-foreground); +} +element alternate.urgent { + background-color: var(alternate-urgent-background); + text-color: var(alternate-urgent-foreground); +} +element alternate.active { + background-color: var(alternate-active-background); + text-color: var(alternate-active-foreground); +} +element-icon { + background-color: transparent; + text-color: inherit; + size: 24px; + cursor: inherit; +} +element-text { + background-color: transparent; + text-color: inherit; + highlight: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Mode Switcher -----*****/ +mode-switcher{ + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; +} +button { + padding: 8px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: inherit; + cursor: pointer; +} +button selected { + background-color: var(selected-normal-background); + text-color: var(selected-normal-foreground); +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; +} +textbox { + padding: 8px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: @foreground-colour; + vertical-align: 0.5; + horizontal-align: 0.0; + highlight: none; + placeholder-color: @foreground-colour; + blink: true; + markup: true; +} +error-message { + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @background-colour; + text-color: @foreground-colour; +} diff --git a/dot-config/bspwm/themes/beach/rofi/shared/colors.rasi b/dot-config/bspwm/themes/beach/rofi/shared/colors.rasi new file mode 100644 index 00000000..f1cd461e --- /dev/null +++ b/dot-config/bspwm/themes/beach/rofi/shared/colors.rasi @@ -0,0 +1,8 @@ +* { + background: #141c21; + background-alt: #1a242b; + foreground: #93a1a1; + selected: #5294E2; + active: #819400; + urgent: #d12f2c; +} diff --git a/dot-config/bspwm/themes/beach/rofi/shared/fonts.rasi b/dot-config/bspwm/themes/beach/rofi/shared/fonts.rasi new file mode 100644 index 00000000..d2af39fe --- /dev/null +++ b/dot-config/bspwm/themes/beach/rofi/shared/fonts.rasi @@ -0,0 +1,7 @@ +/* Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> */ + +/* Text Font */ + +* { + font: "Iosevka 10"; +} diff --git a/dot-config/bspwm/themes/beach/rofi/themes.rasi b/dot-config/bspwm/themes/beach/rofi/themes.rasi new file mode 100644 index 00000000..9d31c128 --- /dev/null +++ b/dot-config/bspwm/themes/beach/rofi/themes.rasi @@ -0,0 +1,306 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + modi: "run"; + show-icons: false; + display-drun: ""; + display-run: ""; + display-filebrowser: ""; + display-window: ""; + drun-display-format: "{name} [<span weight='light' size='small'><i>({generic})</i></span>]"; + window-format: "{w} · {c} · {t}"; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/* +USE_ICON=NO +*/ + +* { + border-colour: var(selected); + handle-colour: var(selected); + background-colour: var(background); + foreground-colour: var(foreground); + alternate-background: var(background-alt); + normal-background: var(background); + normal-foreground: var(foreground); + urgent-background: var(urgent); + urgent-foreground: var(background); + active-background: var(active); + active-foreground: var(background); + selected-normal-background: var(selected); + selected-normal-foreground: var(background); + selected-urgent-background: var(active); + selected-urgent-foreground: var(background); + selected-active-background: var(urgent); + selected-active-foreground: var(background); + alternate-normal-background: var(background); + alternate-normal-foreground: var(foreground); + alternate-urgent-background: var(urgent); + alternate-urgent-foreground: var(background); + alternate-active-background: var(active); + alternate-active-foreground: var(background); +} + +/*****----- Main Window -----*****/ +window { + /* properties for window widget */ + transparency: "real"; + location: south; + anchor: south; + fullscreen: false; + width: 350px; + x-offset: 0px; + y-offset: -58px; + + /* properties for all widgets */ + enabled: true; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + cursor: "default"; + /* Backgroud Colors */ + background-color: @background-colour; + /* Backgroud Image */ + //background-image: url("/path/to/image.png", none); + /* Simple Linear Gradient */ + //background-image: linear-gradient(red, orange, pink, purple); + /* Directional Linear Gradient */ + //background-image: linear-gradient(to bottom, pink, yellow, magenta); + /* Angle Linear Gradient */ + //background-image: linear-gradient(45, cyan, purple, indigo); +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 30px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @border-colour; + background-color: transparent; + children: [ "inputbar", "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + children: [ "textbox-prompt-colon", "prompt" ]; +} + +prompt { + enabled: true; + background-color: inherit; + text-color: inherit; +} +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + background-color: inherit; + text-color: inherit; +} +entry { + enabled: true; + background-color: inherit; + text-color: inherit; + cursor: text; + placeholder: ""; + placeholder-color: inherit; +} +num-filtered-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +textbox-num-sep { + enabled: true; + expand: false; + str: "/"; + background-color: inherit; + text-color: inherit; +} +num-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +case-indicator { + enabled: true; + background-color: inherit; + text-color: inherit; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 1; + lines: 6; + cycle: true; + dynamic: true; + scrollbar: false; + layout: vertical; + reverse: false; + fixed-height: true; + fixed-columns: true; + + spacing: 5px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: "default"; +} +scrollbar { + handle-width: 5px ; + handle-color: @handle-colour; + border-radius: 0px; + background-color: @alternate-background; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + spacing: 0px; + margin: 0px; + padding: 8px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: pointer; +} +element normal.normal { + background-color: var(normal-background); + text-color: var(normal-foreground); +} +element normal.urgent { + background-color: var(urgent-background); + text-color: var(urgent-foreground); +} +element normal.active { + background-color: var(active-background); + text-color: var(active-foreground); +} +element selected.normal { + background-color: var(selected); + text-color: var(normal-background); +} +element selected.urgent { + background-color: var(selected-urgent-background); + text-color: var(selected-urgent-foreground); +} +element selected.active { + background-color: var(selected-active-background); + text-color: var(selected-active-foreground); +} +element alternate.normal { + background-color: var(alternate-normal-background); + text-color: var(alternate-normal-foreground); +} +element alternate.urgent { + background-color: var(alternate-urgent-background); + text-color: var(alternate-urgent-foreground); +} +element alternate.active { + background-color: var(alternate-active-background); + text-color: var(alternate-active-foreground); +} +element-icon { + background-color: transparent; + text-color: inherit; + size: 24px; + cursor: inherit; +} +element-text { + background-color: transparent; + text-color: inherit; + highlight: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Mode Switcher -----*****/ +mode-switcher{ + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; +} +button { + padding: 8px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: inherit; + cursor: pointer; +} +button selected { + background-color: var(selected-normal-background); + text-color: var(selected-normal-foreground); +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; +} +textbox { + padding: 8px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: @foreground-colour; + vertical-align: 0.5; + horizontal-align: 0.0; + highlight: none; + placeholder-color: @foreground-colour; + blink: true; + markup: true; +} +error-message { + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @background-colour; + text-color: @foreground-colour; +} diff --git a/dot-config/bspwm/themes/beach/rofi/windows.rasi b/dot-config/bspwm/themes/beach/rofi/windows.rasi new file mode 100644 index 00000000..a98a5e4c --- /dev/null +++ b/dot-config/bspwm/themes/beach/rofi/windows.rasi @@ -0,0 +1,302 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + modi: "window"; + show-icons: true; + display-drun: ""; + display-run: ""; + display-filebrowser: ""; + display-window: ""; + drun-display-format: "{name} [<span weight='light' size='small'><i>({generic})</i></span>]"; + window-format: "{c} · {t}"; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +* { + border-colour: var(selected); + handle-colour: var(selected); + background-colour: var(background); + foreground-colour: var(foreground); + alternate-background: var(background-alt); + normal-background: var(background); + normal-foreground: var(foreground); + urgent-background: var(urgent); + urgent-foreground: var(background); + active-background: var(active); + active-foreground: var(background); + selected-normal-background: var(selected); + selected-normal-foreground: var(background); + selected-urgent-background: var(active); + selected-urgent-foreground: var(background); + selected-active-background: var(urgent); + selected-active-foreground: var(background); + alternate-normal-background: var(background); + alternate-normal-foreground: var(foreground); + alternate-urgent-background: var(urgent); + alternate-urgent-foreground: var(background); + alternate-active-background: var(active); + alternate-active-foreground: var(background); +} + +/*****----- Main Window -----*****/ +window { + /* properties for window widget */ + transparency: "real"; + location: southwest; + anchor: southwest; + fullscreen: false; + width: 500px; + x-offset: 20px; + y-offset: -58px; + + /* properties for all widgets */ + enabled: true; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + cursor: "default"; + /* Backgroud Colors */ + background-color: @background-colour; + /* Backgroud Image */ + //background-image: url("/path/to/image.png", none); + /* Simple Linear Gradient */ + //background-image: linear-gradient(red, orange, pink, purple); + /* Directional Linear Gradient */ + //background-image: linear-gradient(to bottom, pink, yellow, magenta); + /* Angle Linear Gradient */ + //background-image: linear-gradient(45, cyan, purple, indigo); +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 30px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @border-colour; + background-color: transparent; + children: [ "inputbar", "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + children: [ "prompt", "entry" ]; +} + +prompt { + enabled: true; + background-color: inherit; + text-color: inherit; +} +textbox-prompt-colon { + enabled: true; + expand: false; + str: "::"; + background-color: inherit; + text-color: inherit; +} +entry { + enabled: true; + background-color: inherit; + text-color: inherit; + cursor: text; + placeholder: "filter..."; + placeholder-color: inherit; +} +num-filtered-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +textbox-num-sep { + enabled: true; + expand: false; + str: "/"; + background-color: inherit; + text-color: inherit; +} +num-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +case-indicator { + enabled: true; + background-color: inherit; + text-color: inherit; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 1; + lines: 6; + cycle: true; + dynamic: true; + scrollbar: false; + layout: vertical; + reverse: false; + fixed-height: true; + fixed-columns: true; + + spacing: 5px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: "default"; +} +scrollbar { + handle-width: 5px ; + handle-color: @handle-colour; + border-radius: 0px; + background-color: @alternate-background; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + spacing: 8px; + margin: 0px; + padding: 6px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: pointer; +} +element normal.normal { + background-color: var(normal-background); + text-color: var(normal-foreground); +} +element normal.urgent { + background-color: var(urgent-background); + text-color: var(urgent-foreground); +} +element normal.active { + background-color: var(active-background); + text-color: var(active-foreground); +} +element selected.normal { + background-color: var(selected); + text-color: var(normal-background); +} +element selected.urgent { + background-color: var(selected-urgent-background); + text-color: var(selected-urgent-foreground); +} +element selected.active { + background-color: var(selected-active-background); + text-color: var(selected-active-foreground); +} +element alternate.normal { + background-color: var(alternate-normal-background); + text-color: var(alternate-normal-foreground); +} +element alternate.urgent { + background-color: var(alternate-urgent-background); + text-color: var(alternate-urgent-foreground); +} +element alternate.active { + background-color: var(alternate-active-background); + text-color: var(alternate-active-foreground); +} +element-icon { + background-color: transparent; + text-color: inherit; + size: 24px; + cursor: inherit; +} +element-text { + background-color: transparent; + text-color: inherit; + highlight: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Mode Switcher -----*****/ +mode-switcher{ + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; +} +button { + padding: 8px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: inherit; + cursor: pointer; +} +button selected { + background-color: var(selected-normal-background); + text-color: var(selected-normal-foreground); +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; +} +textbox { + padding: 8px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: @foreground-colour; + vertical-align: 0.5; + horizontal-align: 0.0; + highlight: none; + placeholder-color: @foreground-colour; + blink: true; + markup: true; +} +error-message { + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @background-colour; + text-color: @foreground-colour; +} diff --git a/dot-config/bspwm/themes/beach/theme.bash b/dot-config/bspwm/themes/beach/theme.bash new file mode 100644 index 00000000..bb4c2bb7 --- /dev/null +++ b/dot-config/bspwm/themes/beach/theme.bash @@ -0,0 +1,82 @@ +# ------------------------------------------------------------------------------ +# Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> +# +# Beach Theme +# ------------------------------------------------------------------------------ + +# Colors +background='#141c21' +foreground='#93a1a1' +color0='#263640' +color1='#d12f2c' +color2='#819400' +color3='#b08500' +color4='#2587cc' +color5='#696ebf' +color6='#289c93' +color7='#bfbaac' +color8='#4a697d' +color9='#fa3935' +color10='#a4bd00' +color11='#d9a400' +color12='#2ca2f5' +color13='#8086e8' +color14='#33c5ba' +color15='#fdf6e3' + +accent='#5294E2' +light_value='0.03' +dark_value='0.30' + +# Wallpaper +wdir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" +wallpaper="$wdir/wallpaper" + +# Polybar +polybar_font='Iosevka Nerd Font:size=10;3' + +# Rofi +rofi_font='Iosevka 10' +rofi_icon='Numix-Apps' + +# Terminal +terminal_font_name='JetBrainsMono Nerd Font' +terminal_font_size='10' + +# Geany +geany_colors='beach.conf' +geany_font='JetBrains Mono 10' + +# Appearance +gtk_font='Noto Sans 9' +gtk_theme='Arc' +icon_theme='Arc-Circle' +cursor_theme='Future' + +# Dunst +dunst_width='300' +dunst_height='80' +dunst_offset='20x58' +dunst_origin='bottom-right' +dunst_font='Iosevka Custom 9' +dunst_border='2' +dunst_separator='2' + +# Picom +picom_backend='glx' +picom_corner='0' +picom_shadow_r='14' +picom_shadow_o='0.30' +picom_shadow_x='-12' +picom_shadow_y='-12' +picom_blur_method='none' +picom_blur_strength='0' + +# Bspwm +bspwm_fbc="$accent" +bspwm_nbc="$background" +bspwm_abc="$color5" +bspwm_pfc="$color2" +bspwm_border='2' +bspwm_gap='20' +bspwm_sratio='0.50' diff --git a/dot-config/bspwm/themes/beach/wallpaper b/dot-config/bspwm/themes/beach/wallpaper new file mode 120000 index 00000000..41924bc0 --- /dev/null +++ b/dot-config/bspwm/themes/beach/wallpaper @@ -0,0 +1 @@ +/usr/share/backgrounds/beach.jpg
\ No newline at end of file diff --git a/dot-config/bspwm/themes/default/apply.sh b/dot-config/bspwm/themes/default/apply.sh new file mode 100755 index 00000000..ba631403 --- /dev/null +++ b/dot-config/bspwm/themes/default/apply.sh @@ -0,0 +1,276 @@ +#!/usr/bin/env bash + +## Script To Apply Themes + +## Theme ------------------------------------ +BDIR="$HOME/.config/bspwm" +TDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" +THEME="${TDIR##*/}" + +source "$BDIR"/themes/"$THEME"/theme.bash +altbackground="`pastel color $background | pastel lighten $light_value | pastel format hex`" +altforeground="`pastel color $foreground | pastel darken $dark_value | pastel format hex`" + +## Directories ------------------------------ +PATH_CONF="$HOME/.config" +PATH_GEANY="$PATH_CONF/geany" +PATH_BSPWM="$PATH_CONF/bspwm" +PATH_TERM="$PATH_BSPWM/alacritty" +PATH_PBAR="$PATH_BSPWM/themes/$THEME/polybar" +PATH_ROFI="$PATH_BSPWM/themes/$THEME/rofi" + +## Wallpaper --------------------------------- +apply_wallpaper() { + feh --bg-fill "$wallpaper" +} + +## Polybar ----------------------------------- +apply_polybar() { + # modify polybar launch script + sed -i -e "s/STYLE=.*/STYLE=\"$THEME\"/g" ${PATH_BSPWM}/themes/polybar.sh + + # apply default theme fonts + sed -i -e "s/font-0 = .*/font-0 = \"$polybar_font\"/g" ${PATH_PBAR}/config.ini + + # rewrite colors file + cat > ${PATH_PBAR}/colors.ini <<- EOF + [color] + + BACKGROUND = ${background} + FOREGROUND = ${foreground} + ALTBACKGROUND = ${altbackground} + ALTFOREGROUND = ${altforeground} + ACCENT = ${accent} + + BLACK = ${color0} + RED = ${color1} + GREEN = ${color2} + YELLOW = ${color3} + BLUE = ${color4} + MAGENTA = ${color5} + CYAN = ${color6} + WHITE = ${color7} + ALTBLACK = ${color8} + ALTRED = ${color9} + ALTGREEN = ${color10} + ALTYELLOW = ${color11} + ALTBLUE = ${color12} + ALTMAGENTA = ${color13} + ALTCYAN = ${color14} + ALTWHITE = ${color15} + EOF +} + +# Rofi -------------------------------------- +apply_rofi() { + # modify rofi scripts + sed -i -e "s/STYLE=.*/STYLE=\"$THEME\"/g" \ + ${PATH_BSPWM}/scripts/rofi_askpass \ + ${PATH_BSPWM}/scripts/rofi_asroot \ + ${PATH_BSPWM}/scripts/rofi_launcher \ + ${PATH_BSPWM}/scripts/rofi_music \ + ${PATH_BSPWM}/scripts/rofi_powermenu \ + ${PATH_BSPWM}/scripts/rofi_runner \ + ${PATH_BSPWM}/scripts/rofi_screenshot \ + ${PATH_BSPWM}/scripts/rofi_themes \ + ${PATH_BSPWM}/scripts/rofi_windows + + # apply default theme fonts + sed -i -e "s/font:.*/font: \"$rofi_font\";/g" ${PATH_ROFI}/shared/fonts.rasi + + # rewrite colors file + cat > ${PATH_ROFI}/shared/colors.rasi <<- EOF + * { + background: ${background}; + background-alt: ${altbackground}; + foreground: ${foreground}; + selected: ${accent}; + active: ${color2}; + urgent: ${color1}; + } + EOF + + # modify icon theme + if [[ -f "$PATH_CONF"/rofi/config.rasi ]]; then + sed -i -e "s/icon-theme:.*/icon-theme: \"$rofi_icon\";/g" ${PATH_CONF}/rofi/config.rasi + fi +} + +# Network Menu ------------------------------ +apply_netmenu() { + if [[ -f "$PATH_CONF"/networkmanager-dmenu/nmd.ini ]]; then + sed -i -e "s#dmenu_command = .*#dmenu_command = rofi -dmenu -theme $PATH_ROFI/networkmenu.rasi#g" ${PATH_CONF}/networkmanager-dmenu/nmd.ini + fi +} + +# Terminal ---------------------------------- +apply_terminal() { + # alacritty : fonts + sed -i ${PATH_TERM}/fonts.yml \ + -e "s/family: .*/family: \"$terminal_font_name\"/g" \ + -e "s/size: .*/size: $terminal_font_size/g" + + # alacritty : colors + cat > ${PATH_TERM}/colors.yml <<- _EOF_ + ## Colors configuration + colors: + # Default colors + primary: + background: '${background}' + foreground: '${foreground}' + + # Normal colors + normal: + black: '${color0}' + red: '${color1}' + green: '${color2}' + yellow: '${color3}' + blue: '${color4}' + magenta: '${color5}' + cyan: '${color6}' + white: '${color7}' + + # Bright colors + bright: + black: '${color8}' + red: '${color9}' + green: '${color10}' + yellow: '${color11}' + blue: '${color12}' + magenta: '${color13}' + cyan: '${color14}' + white: '${color15}' + _EOF_ +} + +# Geany ------------------------------------- +apply_geany() { + sed -i ${PATH_GEANY}/geany.conf \ + -e "s/color_scheme=.*/color_scheme=$geany_colors/g" \ + -e "s/editor_font=.*/editor_font=$geany_font/g" +} + +# Appearance -------------------------------- +apply_appearance() { + XFILE="$PATH_BSPWM/xsettingsd" + GTK2FILE="$HOME/.gtkrc-2.0" + GTK3FILE="$PATH_CONF/gtk-3.0/settings.ini" + + # apply gtk theme, icons, cursor & fonts + if [[ `pidof xsettingsd` ]]; then + sed -i -e "s|Net/ThemeName .*|Net/ThemeName \"$gtk_theme\"|g" ${XFILE} + sed -i -e "s|Net/IconThemeName .*|Net/IconThemeName \"$icon_theme\"|g" ${XFILE} + sed -i -e "s|Gtk/CursorThemeName .*|Gtk/CursorThemeName \"$cursor_theme\"|g" ${XFILE} + else + sed -i -e "s/gtk-font-name=.*/gtk-font-name=\"$gtk_font\"/g" ${GTK2FILE} + sed -i -e "s/gtk-theme-name=.*/gtk-theme-name=\"$gtk_theme\"/g" ${GTK2FILE} + sed -i -e "s/gtk-icon-theme-name=.*/gtk-icon-theme-name=\"$icon_theme\"/g" ${GTK2FILE} + sed -i -e "s/gtk-cursor-theme-name=.*/gtk-cursor-theme-name=\"$cursor_theme\"/g" ${GTK2FILE} + + sed -i -e "s/gtk-font-name=.*/gtk-font-name=$gtk_font/g" ${GTK3FILE} + sed -i -e "s/gtk-theme-name=.*/gtk-theme-name=$gtk_theme/g" ${GTK3FILE} + sed -i -e "s/gtk-icon-theme-name=.*/gtk-icon-theme-name=$icon_theme/g" ${GTK3FILE} + sed -i -e "s/gtk-cursor-theme-name=.*/gtk-cursor-theme-name=$cursor_theme/g" ${GTK3FILE} + fi + + # inherit cursor theme + if [[ -f "$HOME"/.icons/default/index.theme ]]; then + sed -i -e "s/Inherits=.*/Inherits=$cursor_theme/g" "$HOME"/.icons/default/index.theme + fi +} + +# Dunst ------------------------------------- +apply_dunst() { + # modify dunst config + sed -i ${PATH_BSPWM}/dunstrc \ + -e "s/width = .*/width = $dunst_width/g" \ + -e "s/height = .*/height = $dunst_height/g" \ + -e "s/offset = .*/offset = $dunst_offset/g" \ + -e "s/origin = .*/origin = $dunst_origin/g" \ + -e "s/font = .*/font = $dunst_font/g" \ + -e "s/frame_width = .*/frame_width = $dunst_border/g" \ + -e "s/separator_height = .*/separator_height = $dunst_separator/g" \ + -e "s/line_height = .*/line_height = $dunst_separator/g" + + # modify colors + sed -i '/urgency_low/Q' ${PATH_BSPWM}/dunstrc + cat >> ${PATH_BSPWM}/dunstrc <<- _EOF_ + [urgency_low] + timeout = 2 + background = "${background}" + foreground = "${foreground}" + frame_color = "${accent}" + + [urgency_normal] + timeout = 5 + background = "${background}" + foreground = "${foreground}" + frame_color = "${accent}" + + [urgency_critical] + timeout = 0 + background = "${background}" + foreground = "${color1}" + frame_color = "${color1}" + _EOF_ +} + +# Compositor -------------------------------- +apply_compositor() { + picom_cfg="$PATH_BSPWM/picom.conf" + + # modify picom config + sed -i "$picom_cfg" \ + -e "s/backend = .*/backend = \"$picom_backend\";/g" \ + -e "s/corner-radius = .*/corner-radius = $picom_corner;/g" \ + -e "s/shadow-radius = .*/shadow-radius = $picom_shadow_r;/g" \ + -e "s/shadow-opacity = .*/shadow-opacity = $picom_shadow_o;/g" \ + -e "s/shadow-offset-x = .*/shadow-offset-x = $picom_shadow_x;/g" \ + -e "s/shadow-offset-y = .*/shadow-offset-y = $picom_shadow_y;/g" \ + -e "s/method = .*/method = \"$picom_blur_method\";/g" \ + -e "s/strength = .*/strength = $picom_blur_strength;/g" +} + +# BSPWM ------------------------------------- +apply_bspwm() { + # modify bspwmrc + sed -i ${PATH_BSPWM}/bspwmrc \ + -e "s/BSPWM_FBC=.*/BSPWM_FBC='$bspwm_fbc'/g" \ + -e "s/BSPWM_NBC=.*/BSPWM_NBC='$bspwm_nbc'/g" \ + -e "s/BSPWM_ABC=.*/BSPWM_ABC='$bspwm_abc'/g" \ + -e "s/BSPWM_PFC=.*/BSPWM_PFC='$bspwm_pfc'/g" \ + -e "s/BSPWM_BORDER=.*/BSPWM_BORDER='$bspwm_border'/g" \ + -e "s/BSPWM_GAP=.*/BSPWM_GAP='$bspwm_gap'/g" \ + -e "s/BSPWM_SRATIO=.*/BSPWM_SRATIO='$bspwm_sratio'/g" + + # reload bspwm + bspc wm -r +} + +# Create Theme File ------------------------- +create_file() { + theme_file="$PATH_BSPWM/themes/.current" + if [[ ! -f "$theme_file" ]]; then + touch ${theme_file} + fi + echo "$THEME" > ${theme_file} +} + +# Notify User ------------------------------- +notify_user() { + dunstify -u normal -h string:x-dunst-stack-tag:applytheme -i /usr/share/archcraft/icons/dunst/themes.png "Applying Style : $THEME" +} + +## Execute Script --------------------------- +notify_user +create_file +apply_wallpaper +apply_polybar +apply_rofi +apply_netmenu +apply_terminal +apply_geany +apply_appearance +apply_dunst +apply_compositor +apply_bspwm diff --git a/dot-config/bspwm/themes/default/archive.zip b/dot-config/bspwm/themes/default/archive.zip Binary files differnew file mode 100644 index 00000000..e5383a3a --- /dev/null +++ b/dot-config/bspwm/themes/default/archive.zip diff --git a/dot-config/bspwm/themes/default/polybar/.module b/dot-config/bspwm/themes/default/polybar/.module new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/dot-config/bspwm/themes/default/polybar/.module diff --git a/dot-config/bspwm/themes/default/polybar/colors.ini b/dot-config/bspwm/themes/default/polybar/colors.ini new file mode 100644 index 00000000..459a1793 --- /dev/null +++ b/dot-config/bspwm/themes/default/polybar/colors.ini @@ -0,0 +1,24 @@ +[color] + +BACKGROUND = #2E3440 +FOREGROUND = #D8DEE9 +ALTBACKGROUND = #39404f +ALTFOREGROUND = #768bb2 +ACCENT = #81A1C1 + +BLACK = #3B4252 +RED = #BF616A +GREEN = #A3BE8C +YELLOW = #EBCB8B +BLUE = #81A1C1 +MAGENTA = #B48EAD +CYAN = #88C0D0 +WHITE = #E5E9F0 +ALTBLACK = #4C566A +ALTRED = #BF616A +ALTGREEN = #A3BE8C +ALTYELLOW = #EBCB8B +ALTBLUE = #81A1C1 +ALTMAGENTA = #B48EAD +ALTCYAN = #8FBCBB +ALTWHITE = #ECEFF4 diff --git a/dot-config/bspwm/themes/default/polybar/config.ini b/dot-config/bspwm/themes/default/polybar/config.ini new file mode 100644 index 00000000..1a289f7e --- /dev/null +++ b/dot-config/bspwm/themes/default/polybar/config.ini @@ -0,0 +1,110 @@ +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +;; Global WM Settings + +[global/wm] +margin-bottom = 0 +margin-top = 0 + +include-file = ../../system.ini +include-file = ./colors.ini +include-file = ./modules.ini +#include-file = ./decor.ini + +[bar/main] +monitor = ${env:MONITOR:} +monitor-strict = false +override-redirect = false + +bottom = false +fixed-center = true + +width = 100% +height = 26 +; doesn't work +;rounded = true +;rounded-size = 5 +offset-x = 0 +offset-y = 0 + +background = ${color.BACKGROUND} +foreground = ${color.FOREGROUND} + +radius-top = 0.0 +radius-bottom = 0.0 + +line-size = 2 +line-color = ${color.ACCENT} + +border-size = 4 +border-color = ${color.BACKGROUND} + +padding = 1 +module-margin-left = 0 +module-margin-right = 0 + + +font-0 = "Iosevka Nerd Font:size=10;3" +font-1 = "Iosevka Nerd Font:size=12;3" +font-2 = "google\-mdi:size=12;3" +#font-2 = "placeholder" +font-3 = "Iosevka:style=bold:"size=12;3" +font-4 = "Iosevka:style=bold:size=10;4" +font-5 = "archcraft:size=12;3" + + +modules-left = mod sep archicon sep workspaces changewallpaper +modules-center = polywins +# modules-right = volume sep bna sep network sep battery sep date +#need improve +modules-right = cpu-info memory-info gpu-info temp-info sep volume sep network wifi-up wifi-down sep date + +separator = +spacing = 0 + +dim-value = 1.0 + +wm-name = bspwm +locale = + +tray-position = right +tray-detached = false +tray-maxsize = 16 +tray-transparent = false +tray-background = ${color.BACKGROUND} +tray-offset-x = 0 +tray-offset-y = 0 +tray-padding = 0 +tray-scale = 1.0 + +wm-restack = bspwm + +enable-ipc = true + +; bspwm +scroll-up = bspc desktop -f prev.local +scroll-down = bspc desktop -f next.local + +[settings] +throttle-output = 5 +throttle-output-for = 10 +throttle-input-for = 30 + +screenchange-reload = false + +compositing-background = source +compositing-foreground = over +compositing-overline = over +compositing-underline = over +compositing-border = over + +pseudo-transparency = true + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ +;; __________ ______ +;; / ____/ __ \/ ____/ +;; / __/ / / / / /_ +;; / /___/ /_/ / __/ +;; /_____/\____/_/ +;; +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ diff --git a/dot-config/bspwm/themes/default/polybar/decor.ini b/dot-config/bspwm/themes/default/polybar/decor.ini new file mode 100644 index 00000000..ff3b82f3 --- /dev/null +++ b/dot-config/bspwm/themes/default/polybar/decor.ini @@ -0,0 +1,43 @@ +## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + +;; DECOR _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/sep] +type = custom/text +content = - +content-background = ${color.BACKGROUND} +content-foreground = ${color.BACKGROUND} + +[module/dot] +type = custom/text +content = +content-foreground = ${color.ALTBACKGROUND} +content-padding = 1 +content-font = 4 + +[module/dot-alt] +inherit = module/dot +content-foreground = ${color.ALTFOREGROUND} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/LD] +type = custom/text +content = "%{T3}%{T-}" +content-background = ${color.BACKGROUND} +content-foreground = ${color.ALTBACKGROUND} + +[module/RD] +type = custom/text +content = "%{T3}%{T-}" +content-background = ${color.BACKGROUND} +content-foreground = ${color.ALTBACKGROUND} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ +;; __________ ______ +;; / ____/ __ \/ ____/ +;; / __/ / / / / /_ +;; / /___/ /_/ / __/ +;; /_____/\____/_/ +;; +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ diff --git a/dot-config/bspwm/themes/default/polybar/launch.sh b/dot-config/bspwm/themes/default/polybar/launch.sh new file mode 100755 index 00000000..ae47b54c --- /dev/null +++ b/dot-config/bspwm/themes/default/polybar/launch.sh @@ -0,0 +1,42 @@ +#!/usr/bin/env bash + +## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" +CARD="$(light -L | grep 'backlight' | head -n1 | cut -d'/' -f3)" +INTERFACE="$(ip link | awk '/state UP/ {print $2}' | tr -d :)" +RFILE="$DIR/.module" + +# Fix backlight and network modules +fix_modules() { + if [[ -z "$CARD" ]]; then + sed -i -e 's/backlight/bna/g' "$DIR"/config.ini + elif [[ "$CARD" != *"intel_"* ]]; then + sed -i -e 's/backlight/brightness/g' "$DIR"/config.ini + fi + + if [[ "$INTERFACE" == e* ]]; then + sed -i -e 's/network/ethernet/g' "$DIR"/config.ini + fi +} + +# Launch the bar +launch_bar() { + # Terminate already running bar instances + killall -q polybar + + # Wait until the processes have been shut down + while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done + + # Launch the bar + for mon in $(polybar --list-monitors | cut -d":" -f1); do + MONITOR=$mon polybar -q main -c "$DIR"/config.ini & + done +} + +# Execute functions +if [[ ! -f "$RFILE" ]]; then + fix_modules + touch "$RFILE" +fi +launch_bar diff --git a/dot-config/bspwm/themes/default/polybar/modules.ini b/dot-config/bspwm/themes/default/polybar/modules.ini new file mode 100644 index 00000000..ec12b7b2 --- /dev/null +++ b/dot-config/bspwm/themes/default/polybar/modules.ini @@ -0,0 +1,747 @@ +[module/volume] +type = internal/pulseaudio + +; Sink to be used, if it exists (find using `pacmd list-sinks`, name field) +; If not, uses default sink +;sink = alsa_output.pci-0000_12_00.3.analog-stereo +sink = + +; Use PA_VOLUME_UI_MAX (~153%) if true, or PA_VOLUME_NORM (100%) if false Default: true +use-ui-max = false + +; Interval for volume increase/decrease (in percent points) +; Default: 5 +interval = 1 + +format-volume = <ramp-volume> <label-volume> + +format-muted = <label-muted> +format-muted-prefix = 婢 +format-muted-prefix-font = 2 +format-muted-prefix-foreground = ${color.RED} + +label-volume = %percentage%% +label-muted = " Mute" +label-muted-foreground = ${color.ALTFOREGROUND} + +ramp-volume-0 = 奄 +ramp-volume-1 = 奄 +ramp-volume-2 = 奄 +ramp-volume-3 = 奔 +ramp-volume-4 = 奔 +ramp-volume-5 = 奔 +ramp-volume-6 = 墳 +ramp-volume-7 = 墳 +ramp-volume-8 = 墳 +ramp-volume-9 = 墳 +ramp-volume-font = 2 +ramp-volume-foreground = ${color.BLUE} + +ramp-headphones-0 = +ramp-headphones-1 = + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/bna] +type = custom/text + +content = " NA" +content-prefix = +content-prefix-font = 2 +content-prefix-foreground = ${color.RED} +content-padding = 0 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/backlight] +type = internal/xbacklight + +card = intel_backlight + +format = <ramp> <label> + +label = %percentage%% + +ramp-0 = +ramp-1 = +ramp-2 = +ramp-3 = +ramp-4 = +ramp-5 = +ramp-6 = +ramp-7 = +ramp-8 = +ramp-9 = +ramp-font = 2 +ramp-foreground = ${color.MAGENTA} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/brightness] +type = internal/backlight + +card = ${system.sys_graphics_card} + +enable-scroll = true + +format = <ramp> <label> + +label = %percentage%% + +ramp-0 = +ramp-1 = +ramp-2 = +ramp-3 = +ramp-4 = +ramp-5 = +ramp-6 = +ramp-7 = +ramp-8 = +ramp-9 = +ramp-font = 2 +ramp-foreground = ${color.MAGENTA} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/battery] +type = internal/battery + +full-at = 99 + +battery = ${system.sys_battery} +adapter = ${system.sys_adapter} + +poll-interval = 2 +time-format = %H:%M + +format-charging = <animation-charging> <label-charging> +format-charging-prefix = + +format-discharging = <ramp-capacity> <label-discharging> + +format-full = <label-full> +format-full-prefix = " " +format-full-prefix-font = 2 +format-full-prefix-foreground = ${color.RED} + +label-charging = %percentage%% +label-discharging = %percentage%% +label-full = %percentage%% + +ramp-capacity-0 = +ramp-capacity-1 = +ramp-capacity-2 = +ramp-capacity-3 = +ramp-capacity-4 = +ramp-capacity-font = 2 +ramp-capacity-foreground = ${color.YELLOW} + +animation-charging-0 = +animation-charging-1 = +animation-charging-2 = +animation-charging-3 = +animation-charging-4 = +animation-charging-font = 2 +animation-charging-foreground = ${color.GREEN} +animation-charging-framerate = 750 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/workspaces] +type = internal/bspwm + +pin-workspaces = true +inline-mode = false + +enable-click = true +enable-scroll = true +reverse-scroll = true + +fuzzy-match = true + +; ws-icon-[0-9]+ = label;icon +; Note that the label needs to correspond with the bspwm workspace name +ws-icon-0 = 1; +ws-icon-1 = 2; +ws-icon-2 = 3; +ws-icon-3 = 4; +ws-icon-4 = 5; +ws-icon-5 = 6; +ws-icon-6 = 7; +ws-icon-7 = 8; +ws-icon-8 = 9; +ws-icon-9 = 10; +ws-icon-default = + +format = <label-state> +format-font = 2 + +label-monitor = %name% + +; If any values for label-dimmed-N are defined, the workspace/mode +; colors will get overridden with those values if the monitor is out of focus +; To only override workspaces in a specific state, use: +; label-dimmed-focused +; label-dimmed-occupied +; label-dimmed-urgent +; label-dimmed-empty +;label-dimmed-foreground = ${color.FOREGROUND} +;label-dimmed-underline = ${color.YELLOW} +;label-dimmed-focused-background = ${color.BACKGROUND} + +label-focused = %name% +label-focused-foreground = ${color.ACCENT} +label-focused-background = ${color.BACKGROUND} +label-focused-underline = ${color.ACCENT} +label-focused-padding = 1 + +label-occupied = %name% +label-occupied-foreground = ${color.GREEN} +label-occupied-background = ${color.BACKGROUND} +;label-occupied-underline = ${color.GREEN} +label-occupied-padding = 1 + +label-urgent = %name% +label-urgent-foreground = ${color.RED} +label-urgent-background = ${color.BACKGROUND} +label-urgent-underline = ${color.RED} +label-urgent-padding = 1 + +label-empty = %name% +label-empty-foreground = ${color.FOREGROUND} +label-empty-padding = 1 + +; Separator in between workspaces +label-separator = "|" +label-separator-padding = 0 +label-separator-foreground = ${color.ALTBACKGROUND} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/mod] +type = internal/bspwm + +format = <label-mode> +format-background = ${color.YELLOW} +format-foreground = ${color.BACKGROUND} +format-padding = 1 + +label-monocle = "Monocle" +label-tiled = "Tiled" + +label-floating = ", Float" +label-pseudotiled = ", Pseudo" +label-fullscreen = ", Full" + +label-locked = " | Locked" +label-sticky = " | Sticky" +label-private = " | Private" + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/date] +type = internal/date + +# doesnt work for some reson ##locale = zh_CN.UTF-8 + +interval = 1.0 + +time = %I:%M:%S %p +time-alt = %a, %d %b %Y + +format = <label> +format-prefix = " " +format-prefix-font = 3 +format-prefix-foreground = ${color.RED} + +label = %time% +label-font = 4 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/mpd] +type = internal/mpd + +;;host = 127.0.0.1 +;;port = 6600 +;;password = mysecretpassword + +interval = 2 + +format-online = <label-song> <icon-prev> <toggle> <icon-next> +format-online-prefix = " " +format-online-prefix-foreground = ${color.GREEN} + +format-playing = ${self.format-online} +format-paused = <label-song> <toggle> + +format-offline = <label-offline> +format-offline-prefix = " " +format-offline-prefix-foreground = ${color.RED} +label-offline = "Offline" + +label-song = "%title% | %artist%" +label-song-maxlen = 40 +label-song-ellipsis = true + +icon-play = +icon-play-font = 2 +icon-play-foreground = ${color.GREEN} +icon-pause = +icon-pause-font = 2 +icon-pause-foreground = ${color.YELLOW} +icon-stop = +icon-stop-foreground = ${color.RED} +icon-prev = 玲 +icon-prev-font = 2 +icon-prev-foreground = ${color.CYAN} +icon-next = 怜 +icon-next-font = 2 +icon-next-foreground = ${color.CYAN} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +; If you use both a wired and a wireless network, add both modules in config. +[module/ethernet] +type = internal/network +interface = ${system.sys_network_interface} + +interval = 1.0 +accumulate-stats = true +unknown-as-up = true + +format-connected = <label-connected> +format-connected-prefix = " " +format-connected-prefix-font = 3 +format-connected-prefix-foreground = ${color.CYAN} + +format-disconnected = <label-disconnected> +format-disconnected-prefix = " " +format-disconnected-prefix-font = 3 +format-disconnected-prefix-foreground = ${color.RED} +format-disconnected-foreground = ${color.ALTFOREGROUND} + +label-connected = "%{A1:nmd &:}%downspeed% | %upspeed%%{A}" +label-disconnected = "%{A1:nmd &:}Offline%{A}" + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/network] +type = internal/network +interface = ${system.sys_network_interface} + +interval = 1.0 + +;;ping-interval = 3 +;;udspeed-minwidth = 5 + +accumulate-stats = true +unknown-as-up = true + +format-connected = <ramp-signal> <label-connected> + +format-disconnected = <label-disconnected> +format-disconnected-prefix = " " +format-disconnected-prefix-font = 3 +format-disconnected-prefix-foreground = ${color.RED} +format-disconnected-foreground = ${color.ALTFOREGROUND} + +label-connected = "%{A1:nmd &:}%essid%%{A}" +label-disconnected = "%{A1:nmd &:}Disconnected%{A}" + + +ramp-signal-0 = +ramp-signal-1 = +ramp-signal-2 = +ramp-signal-3 = +ramp-signal-4 = +ramp-signal-font = 3 +ramp-signal-foreground = ${color.CYAN} + +[module/speedtest] +type = custom/script +exec-if = hash speedtest +exec = "~/.config/bspwm/scripts/polybar-speedtest" +interval = 90 + +[module/wifi-up] +type = internal/network + +interface = wlan0 + +label-connected = "%upspeed:7%" + +format-connected = <label-connected> + +format-connected-prefix = " " + +format-connected-prefix-foreground = #cb410b + +#format-connected-foreground = ${colors.foreground} + +#format-connected-background = ${colors.background} + +format-connected-underline = #006600 + +[module/wifi-down] +type = internal/network + +interface = wlan0 + +label-connected = "%downspeed:7%" + +format-connected = <label-connected> + +format-connected-prefix = " " + +format-connected-prefix-foreground = #7c0a02 + +#format-connected-foreground = ${colors.foreground} + +#format-connected-background = ${colors.background} + +format-connected-underline = #006600 + + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/sep] +type = custom/text +content = ◆ + +content-background = ${color.BACKGROUND} +content-foreground = ${color.ALTBACKGROUND} +content-padding = 2 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/polywins] +type = custom/script +exec = ~/.config/bspwm/scripts/polywins.sh 2>/dev/null +label-padding = 1 +tail = true +interval = 0 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +#[module/archicon] +#type = custom/text +#content = "" +#click-left = ~/.config/bspwm/scripts/rofi_launcher +[module/archicon] +type = custom/text + +content = +content-font = 6 +content-foreground = ${color.BLUE} +content-padding = 0 + +click-left = ~/.config/bspwm/scripts/rofi_launcher +click-right = ~/.config/bspwm/scripts/rofi_runner + +[module/changewallpaper] +type = custom/text +content-foreground = ${color.CYAN} +content-font = 6 + +content = " " +#click-left = /usr/bin/feh --bg-fill '/home/system/Pictures/wallpapers/' --randomize +#click-left = notify-send "Changing wallpaper, Please wait..." & killall backgroundblur & exec $HOME/scripts/runbgblur.sh & +click-left = killall runtransani.sh; exec $HOME/scripts/runtransani.sh & + + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/used-memory] +type = custom/script + +exec = free -m | grep 'Mem:' | tr -s ' ' | cut -d ' ' -f3 + +tail = true +interval = 3 + +format = <label> +format-background = ${color.BACKGROUND} +format-padding = 1 + +format-prefix = +format-prefix-font = 2 +format-prefix-foreground = ${color.CYAN} + +label = " %output% MB" + +click-left = alacritty --class 'alacritty-float,alacritty-float' --config-file ~/.config/bspwm/alacritty/alacritty.yml -e "top" & + + + +[module/memory-info] +type = internal/memory + +; Seconds to sleep between updates +; Default: 1 +interval = 1 + +; Default: 90 +; New in version 3.6.0 +warn-percentage = 95 +; Available tags: +; <label> (default) +; <bar-used> +; <bar-free> +; <ramp-used> +; <ramp-free> +; <bar-swap-used> +; <bar-swap-free> +; <ramp-swap-used> +; <ramp-swap-free> +#format = <label> <bar-used> + +; Format used when RAM reaches warn-percentage +; If not defined, format is used instead. +; Available tags: +; <label-warn> +; <bar-used> +; <bar-free> +; <ramp-used> +; <ramp-free> +; <bar-swap-used> +; <bar-swap-free> +; <ramp-swap-used> +; <ramp-swap-free> +; New in version 3.6.0 +;format-warn = <label-warn> + +; Available tokens: +; %percentage_used% (default) +; %percentage_free% +; %used% (Switches between KiB, MiB, and GiB) (New in version 3.6.0) +; %free% (Switches between KiB, MiB, and GiB) (New in version 3.6.0) +; %total% (Switches between KiB, MiB, and GiB) (New in version 3.6.0) +; %gb_used% +; %gb_free% +; %gb_total% +; %mb_used% +; %mb_free% +; %mb_total% +; %percentage_swap_used% +; %percentage_swap_free% +; %swap_total% (Switches between KiB, MiB, and GiB) (New in version 3.6.0) +; %swap_free% (Switches between KiB, MiB, and GiB) (New in version 3.6.0) +; %swap_used% (Switches between KiB, MiB, and GiB) (New in version 3.6.0) +; %gb_swap_total% +; %gb_swap_free% +; %gb_swap_used% +; %mb_swap_total% +; %mb_swap_free% +; %mb_swap_used% +label = %percentage_used%% + +; Available tokens: +; %percentage_used% (default) +; %percentage_free% +; %used% (Switches between KiB, MiB, and GiB) (New in version 3.6.0) +; %free% (Switches between KiB, MiB, and GiB) (New in version 3.6.0) +; %total% (Switches between KiB, MiB, and GiB) (New in version 3.6.0) +; %gb_used% +; %gb_free% +; %gb_total% +; %mb_used% +; %mb_free% +; %mb_total% +; %percentage_swap_used% +; %percentage_swap_free% +; %swap_total% (Switches between KiB, MiB, and GiB) (New in version 3.6.0) +; %swap_free% (Switches between KiB, MiB, and GiB) (New in version 3.6.0) +; %swap_used% (Switches between KiB, MiB, and GiB) (New in version 3.6.0) +; %gb_swap_total% +; %gb_swap_free% +; %gb_swap_used% +; %mb_swap_total% +; %mb_swap_free% +; %mb_swap_used% +; New in version 3.6.0 +label-warn = RAM %gb_used%/%gb_free% + +; Only applies if <bar-used> is used +bar-used-indicator = +bar-used-width = 50 +bar-used-foreground-0 = #55aa55 +bar-used-foreground-1 = #557755 +bar-used-foreground-2 = #f5a70a +bar-used-foreground-3 = #ff5555 +bar-used-fill = ▐ +bar-used-empty = ▐ +bar-used-empty-foreground = #444444 + +; Only applies if <ramp-used> is used +ramp-used-0 = ▁ +ramp-used-1 = ▂ +ramp-used-2 = ▃ +ramp-used-3 = ▄ +ramp-used-4 = ▅ +ramp-used-5 = ▆ +ramp-used-6 = ▇ +ramp-used-7 = █ + +; Only applies if <ramp-free> is used +ramp-free-0 = ▁ +ramp-free-1 = ▂ +ramp-free-2 = ▃ +ramp-free-3 = ▄ +ramp-free-4 = ▅ +ramp-free-5 = ▆ +ramp-free-6 = ▇ +ramp-free-7 = █ + +[module/cpu-info-script] +type = custom/script +exec = ~/.config/bspwm/scripts/cpu.sh +click-left = ~/.config/bspwm/scripts/cpu.sh --popup +#format-underline = ${colors.primary} + +[module/cpu-info] +type = internal/cpu + +; Seconds to sleep between updates +; Default: 1 +interval = 1 + +; Default: 80 +; New in version 3.6.0 +warn-percentage = 95 +; Available tags: +; <label> (default) +; <bar-load> +; <ramp-load> +; <ramp-coreload> +format = <label> + +; Format used when average CPU load (same as %percentage%) reaches warn-percentage +; If not defined, format is used instead. +; Available tags: +; <label-warn> +; <bar-load> +; <ramp-load> +; <ramp-coreload> +; New in version 3.6.0 +; format-warn = <label-warn> + +; Available tokens: +; %percentage% (default) - total cpu load averaged over all cores +; %percentage-sum% - Cumulative load on all cores +; %percentage-cores% - load percentage for each core +; %percentage-core[1-9]% - load percentage for specific core +label = " %percentage%% " + +; Available tokens: +; %percentage% (default) - total cpu load averaged over all cores +; %percentage-sum% - Cumulative load on all cores +; %percentage-cores% - load percentage for each core +; %percentage-core[1-9]% - load percentage for specific core +; New in version 3.6.0 +label-warn = " %percentage%% " + +; Spacing (number of spaces, pixels, points) between individual per-core ramps +#ramp-coreload-spacing = 1 +#ramp-coreload-0 = ▁ +#ramp-coreload-1 = ▂ +#ramp-coreload-2 = ▃ +#ramp-coreload-3 = ▄ +#ramp-coreload-4 = ▅ +#ramp-coreload-5 = ▆ +#ramp-coreload-6 = ▇ +#ramp-coreload-7 = █ + +[module/temp-info-script] +type = custom/script +exec = ~/.config/bspwm/scripts/temp.sh +click-left = ~/.config/bspwm/scripts/temp.sh --popup +#format-underline = ${colors.primary} + +[module/temp-info] +type = internal/temperature + +; Seconds to sleep between updates +; Default: 1 +interval = 1 + +; Thermal zone to use +; To list all the zone types, run +; $ for i in /sys/class/thermal/thermal_zone*; do echo "$i: $(<$i/type)"; done +; Default: 0 +thermal-zone = 0 + +; Full path of temperature sysfs path +; Use `sensors` to find preferred temperature source, then run +; $ for i in /sys/class/hwmon/hwmon*/temp*_input; do echo "$(<$(dirname $i)/name): $(cat ${i%_*}_label 2>/dev/null || echo $(basename ${i%_*})) $(readlink -f $i)"; done +; to find path to desired file +; Default reverts to thermal zone setting +hwmon-path = /sys/devices/platform/coretemp.0/hwmon/hwmon3/temp1_input + +; Base temperature for where to start the ramp (in degrees celsius) +; Default: 0 +base-temperature = 20 + +; Threshold temperature to display warning label (in degrees celsius) +; Default: 80 +warn-temperature = 75 +; Whether or not to show units next to the temperature tokens (°C, °F) +; Default: true +units = false + +; Available tags: +; <label> (default) +; <ramp> +format = <label> + +; Available tags: +; <label-warn> (default) +; <ramp> +format-warn = <label> + +; Available tokens: +; %temperature% (deprecated) +; %temperature-c% (default, temperature in °C) +; %temperature-f% (temperature in °F) +label = " %temperature-c%°C" + +; Available tokens: +; %temperature% (deprecated) +; %temperature-c% (default, temperature in °C) +; %temperature-f% (temperature in °F) +label-warn = " %temperature-c%°C" +label-warn-foreground = #f00 + +; Requires the <ramp> tag +; The icon selection will range from `base-temperature` to `warn-temperature`, +; temperatures at and above `warn-temperature` will use the last icon +; and temperatures at and below `base-temperature` will use `ramp-0`. +; All other icons are distributed evenly between the two temperatures. +#ramp-0 = A +#ramp-1 = B +#ramp-2 = C +#ramp-foreground = #55 + +[module/gpu-info] +type = custom/script +interval = 1 +tail = true +exec-if = nvidia-smi +exec = echo " $(nvidia-smi --query-gpu=utilization.gpu --format=csv,noheader,nounits)%" + +[module/musics] +type = custom/script +exec = $HOME/.config/bspwm/scripts/NekoMC --current-song +tail = true +click-left = $HOME/.config/bspwm/scripts/NekoMC --toggle +click-right = $HOME/.config/bspwm/scripts/NekoMC --next + + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ +;; __________ ______ +;; / ____/ __ \/ ____/ +;; / __/ / / / / /_ +;; / /___/ /_/ / __/ +;; /_____/\____/_/ +;; +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ diff --git a/dot-config/bspwm/themes/default/rofi/askpass.rasi b/dot-config/bspwm/themes/default/rofi/askpass.rasi new file mode 100644 index 00000000..515a39ae --- /dev/null +++ b/dot-config/bspwm/themes/default/rofi/askpass.rasi @@ -0,0 +1,77 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/*****----- Main Window -----*****/ +window { + location: center; + anchor: center; + fullscreen: false; + width: 350px; + x-offset: 0px; + y-offset: 0px; + padding: 20px; + border: 1px solid; + border-radius: 0px; + border-color: @selected; + background-color: @background; + cursor: "default"; + children: [ "inputbar", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + children: [ "textbox-prompt-colon", "prompt", "entry" ]; +} + +dummy { + expand: false; + width: 10px; + background-color: transparent; +} +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + padding: 10px 13px; + border-radius: 0px; + background-color: @active; + text-color: @background; +} +prompt { + enabled: true; + padding: 10px; + border-radius: 0px; + background-color: @selected; + text-color: @background; +} +entry { + enabled: true; + padding: 10px; + border: 0px 0px 1px 0px; + border-radius: 0px; + border-color: @selected; + background-color: @background-alt; + text-color: inherit; + cursor: text; + placeholder: "Password"; + placeholder-color: inherit; +} + +/*****----- Listview -----*****/ +listview { + enabled: false; +} diff --git a/dot-config/bspwm/themes/default/rofi/asroot.rasi b/dot-config/bspwm/themes/default/rofi/asroot.rasi new file mode 100644 index 00000000..48ad7c66 --- /dev/null +++ b/dot-config/bspwm/themes/default/rofi/asroot.rasi @@ -0,0 +1,151 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + show-icons: false; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/* +USE_ICON=YES +*/ + +/*****----- Main Window -----*****/ +window { + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 500px; + x-offset: 0px; + y-offset: 0px; + margin: 0px; + padding: 0px; + border: 1px solid; + border-radius: 0px; + border-color: @selected; + cursor: "default"; + background-color: @background; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 20px; + background-color: transparent; + children: [ "inputbar", "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + padding: 0px; + border: 0px; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + children: [ "textbox-prompt-colon", "prompt"]; +} + +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + padding: 10px 12px; + border-radius: 0px; + background-color: @active; + text-color: @background; +} +prompt { + enabled: true; + padding: 10px; + border-radius: 0px; + background-color: @selected; + text-color: @background; +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: @background-alt; + text-color: @foreground; +} +textbox { + background-color: inherit; + text-color: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 5; + lines: 1; + cycle: true; + scrollbar: false; + layout: vertical; + + spacing: 10px; + background-color: transparent; + cursor: "default"; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + padding: 22px 10px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + cursor: pointer; +} +element-text { + font: "feather 20"; + background-color: transparent; + text-color: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.5; +} + +element normal.normal, +element alternate.normal { + border: 1px solid; + border-radius: 0px; + border-color: @selected; + background-color: var(background); + text-color: var(foreground); +} +element normal.urgent, +element alternate.urgent, +element selected.active { + background-color: var(urgent); + text-color: var(background); +} +element normal.active, +element alternate.active, +element selected.urgent { + background-color: var(active); + text-color: var(background); +} +element selected.normal { + background-color: var(selected); + text-color: var(background); +} diff --git a/dot-config/bspwm/themes/default/rofi/clipboard.rasi b/dot-config/bspwm/themes/default/rofi/clipboard.rasi new file mode 100644 index 00000000..0ee0e465 --- /dev/null +++ b/dot-config/bspwm/themes/default/rofi/clipboard.rasi @@ -0,0 +1,300 @@ + +/*****----- Configuration -----*****/ +configuration { + modi: "window"; + show-icons: true; + display-drun: " Apps"; + display-run: " Run"; + display-filebrowser: " Files"; + display-window: " Windows"; + drun-display-format: "{name}"; + window-format: "{c} · {t}"; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +* { + border-colour: var(selected); + handle-colour: var(selected); + background-colour: var(background); + foreground-colour: var(foreground); + alternate-background: var(background-alt); + normal-background: var(background); + normal-foreground: var(foreground); + urgent-background: var(urgent); + urgent-foreground: var(background); + active-background: var(active); + active-foreground: var(background); + selected-normal-background: var(selected); + selected-normal-foreground: var(background); + selected-urgent-background: var(active); + selected-urgent-foreground: var(background); + selected-active-background: var(urgent); + selected-active-foreground: var(background); + alternate-normal-background: var(background); + alternate-normal-foreground: var(foreground); + alternate-urgent-background: var(urgent); + alternate-urgent-foreground: var(background); + alternate-active-background: var(active); + alternate-active-foreground: var(background); +} + +/*****----- Main Window -----*****/ +window { + /* properties for window widget */ + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 600px; + x-offset: 0px; + y-offset: 0px; + + /* properties for all widgets */ + enabled: true; + margin: 0px; + padding: 0px; + border: 1px solid; + border-radius: 0px; + border-color: @border-colour; + cursor: "default"; + /* Backgroud Colors */ + background-color: @background-colour; + /* Backgroud Image */ + //background-image: url("/path/to/image.png", none); + /* Simple Linear Gradient */ + //background-image: linear-gradient(red, orange, pink, purple); + /* Directional Linear Gradient */ + //background-image: linear-gradient(to bottom, pink, yellow, magenta); + /* Angle Linear Gradient */ + //background-image: linear-gradient(45, cyan, purple, indigo); +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 20px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @border-colour; + background-color: transparent; + children: [ "inputbar", "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px 0px 8px 0px; + border: 0px 0px 1px 0px; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + children: [ "textbox-prompt-colon", "entry" ]; +} + +prompt { + enabled: true; + background-color: inherit; + text-color: inherit; +} +textbox-prompt-colon { + enabled: true; + padding: 0px; + expand: false; + str: ""; + background-color: inherit; + text-color: inherit; +} +entry { + enabled: true; + padding: 0px; + background-color: inherit; + text-color: inherit; + cursor: text; + placeholder: "Filter..."; + placeholder-color: inherit; +} +num-filtered-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +textbox-num-sep { + enabled: true; + expand: false; + str: "/"; + background-color: inherit; + text-color: inherit; +} +num-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +case-indicator { + enabled: true; + background-color: inherit; + text-color: inherit; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 1; + lines: 8; + cycle: true; + dynamic: true; + scrollbar: false; + layout: vertical; + reverse: false; + fixed-height: true; + fixed-columns: true; + + spacing: 5px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: "default"; +} +scrollbar { + handle-width: 5px ; + handle-color: @handle-colour; + border-radius: 0px; + background-color: @alternate-background; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 6px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: pointer; +} +element normal.normal { + background-color: var(normal-background); + text-color: var(normal-foreground); +} +element normal.urgent { + background-color: var(urgent-background); + text-color: var(urgent-foreground); +} +element normal.active { + background-color: var(active-background); + text-color: var(active-foreground); +} +element selected.normal { + background-color: var(selected-normal-background); + text-color: var(selected-normal-foreground); +} +element selected.urgent { + background-color: var(selected-urgent-background); + text-color: var(selected-urgent-foreground); +} +element selected.active { + background-color: var(selected-active-background); + text-color: var(selected-active-foreground); +} +element alternate.normal { + background-color: var(alternate-normal-background); + text-color: var(alternate-normal-foreground); +} +element alternate.urgent { + background-color: var(alternate-urgent-background); + text-color: var(alternate-urgent-foreground); +} +element alternate.active { + background-color: var(alternate-active-background); + text-color: var(alternate-active-foreground); +} +element-icon { + background-color: transparent; + text-color: inherit; + size: 24px; + cursor: inherit; +} +element-text { + background-color: transparent; + text-color: inherit; + highlight: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Mode Switcher -----*****/ +mode-switcher{ + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; +} +button { + padding: 8px 12px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: inherit; + cursor: pointer; +} +button selected { + background-color: var(selected-normal-background); + text-color: var(selected-normal-foreground); +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 8px 12px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: @foreground-colour; +} +textbox { + border: 0px solid; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + vertical-align: 0.5; + horizontal-align: 0.0; + highlight: none; + placeholder-color: @foreground-colour; + blink: true; + markup: true; +} +error-message { + padding: 20px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @background-colour; + text-color: @foreground-colour; +} + diff --git a/dot-config/bspwm/themes/default/rofi/configs.rasi b/dot-config/bspwm/themes/default/rofi/configs.rasi new file mode 100644 index 00000000..423772f6 --- /dev/null +++ b/dot-config/bspwm/themes/default/rofi/configs.rasi @@ -0,0 +1,286 @@ +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +* { + border-colour: var(selected); + handle-colour: var(selected); + background-colour: var(background); + foreground-colour: var(foreground); + alternate-background: var(background-alt); + normal-background: var(background); + normal-foreground: var(foreground); + urgent-background: var(urgent); + urgent-foreground: var(background); + active-background: var(active); + active-foreground: var(background); + selected-normal-background: var(selected); + selected-normal-foreground: var(background); + selected-urgent-background: var(active); + selected-urgent-foreground: var(background); + selected-active-background: var(urgent); + selected-active-foreground: var(background); + alternate-normal-background: var(background); + alternate-normal-foreground: var(foreground); + alternate-urgent-background: var(urgent); + alternate-urgent-foreground: var(background); + alternate-active-background: var(active); + alternate-active-foreground: var(background); +} + +/*****----- Main Window -----*****/ +window { + /* properties for window widget */ + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 600px; + x-offset: 0px; + y-offset: 0px; + + /* properties for all widgets */ + enabled: true; + margin: 0px; + padding: 0px; + border: 1px solid; + border-radius: 0px; + border-color: @border-colour; + cursor: "default"; + /* Backgroud Colors */ + background-color: @background-colour; + /* Backgroud Image */ + //background-image: url("/path/to/image.png", none); + /* Simple Linear Gradient */ + //background-image: linear-gradient(red, orange, pink, purple); + /* Directional Linear Gradient */ + //background-image: linear-gradient(to bottom, pink, yellow, magenta); + /* Angle Linear Gradient */ + //background-image: linear-gradient(45, cyan, purple, indigo); +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 20px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @border-colour; + background-color: transparent; + children: [ "inputbar", "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px 0px 8px 0px; + border: 0px 0px 1px 0px; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + children: [ "textbox-prompt-colon", "entry" ]; +} + +prompt { + enabled: true; + background-color: inherit; + text-color: inherit; +} +textbox-prompt-colon { + enabled: true; + padding: 0px; + expand: false; + str: ""; + background-color: inherit; + text-color: inherit; +} +entry { + enabled: true; + padding: 0px; + background-color: inherit; + text-color: inherit; + cursor: text; + placeholder: "Filter..."; + placeholder-color: inherit; +} +num-filtered-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +textbox-num-sep { + enabled: true; + expand: false; + str: "/"; + background-color: inherit; + text-color: inherit; +} +num-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +case-indicator { + enabled: true; + background-color: inherit; + text-color: inherit; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 1; + lines: 8; + cycle: true; + dynamic: true; + scrollbar: false; + layout: vertical; + reverse: false; + fixed-height: true; + fixed-columns: true; + + spacing: 5px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: "default"; +} +scrollbar { + handle-width: 5px ; + handle-color: @handle-colour; + border-radius: 0px; + background-color: @alternate-background; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 6px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: pointer; +} +element normal.normal { + background-color: var(normal-background); + text-color: var(normal-foreground); +} +element normal.urgent { + background-color: var(urgent-background); + text-color: var(urgent-foreground); +} +element normal.active { + background-color: var(active-background); + text-color: var(active-foreground); +} +element selected.normal { + background-color: var(selected-normal-background); + text-color: var(selected-normal-foreground); +} +element selected.urgent { + background-color: var(selected-urgent-background); + text-color: var(selected-urgent-foreground); +} +element selected.active { + background-color: var(selected-active-background); + text-color: var(selected-active-foreground); +} +element alternate.normal { + background-color: var(alternate-normal-background); + text-color: var(alternate-normal-foreground); +} +element alternate.urgent { + background-color: var(alternate-urgent-background); + text-color: var(alternate-urgent-foreground); +} +element alternate.active { + background-color: var(alternate-active-background); + text-color: var(alternate-active-foreground); +} +element-icon { + background-color: transparent; + text-color: inherit; + size: 24px; + cursor: inherit; +} +element-text { + background-color: transparent; + text-color: inherit; + highlight: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Mode Switcher -----*****/ +mode-switcher{ + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; +} +button { + padding: 8px 12px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: inherit; + cursor: pointer; +} +button selected { + background-color: var(selected-normal-background); + text-color: var(selected-normal-foreground); +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 8px 12px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: @foreground-colour; +} +textbox { + border: 0px solid; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + vertical-align: 0.5; + horizontal-align: 0.0; + highlight: none; + placeholder-color: @foreground-colour; + blink: true; + markup: true; +} +error-message { + padding: 20px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @background-colour; + text-color: @foreground-colour; +} diff --git a/dot-config/bspwm/themes/default/rofi/confirm.rasi b/dot-config/bspwm/themes/default/rofi/confirm.rasi new file mode 100644 index 00000000..cd2e1148 --- /dev/null +++ b/dot-config/bspwm/themes/default/rofi/confirm.rasi @@ -0,0 +1,148 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + show-icons: false; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/* +USE_ICON=YES +*/ + +/*****----- Main Window -----*****/ +window { + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 300px; + x-offset: 0px; + y-offset: 0px; + margin: 0px; + padding: 0px; + border: 1px solid; + border-radius: 0px; + border-color: @selected; + cursor: "default"; + background-color: @background; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 20px; + background-color: transparent; + children: [ "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + padding: 0px; + border: 0px; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + children: [ "textbox-prompt-colon", "prompt"]; +} + +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + padding: 10px 14px; + border-radius: 0px; + background-color: @active; + text-color: @background; +} +prompt { + enabled: true; + padding: 10px; + border-radius: 0px; + background-color: @selected; + text-color: @background; +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: @background-alt; + text-color: @foreground; +} +textbox { + background-color: inherit; + text-color: inherit; + vertical-align: 0.5; + horizontal-align: 0.5; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 2; + lines: 1; + cycle: true; + scrollbar: false; + layout: vertical; + + spacing: 10px; + background-color: transparent; + cursor: "default"; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + padding: 5px 10px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + cursor: pointer; +} +element-text { + font: "feather 20"; + background-color: transparent; + text-color: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.5; +} + +element normal.normal, +element alternate.normal { + background-color: var(background-alt); + text-color: var(foreground); +} +element normal.urgent, +element alternate.urgent, +element selected.active { + background-color: var(urgent); + text-color: var(background); +} +element normal.active, +element alternate.active, +element selected.urgent { + background-color: var(active); + text-color: var(background); +} +element selected.normal { + background-color: var(selected); + text-color: var(background); +} diff --git a/dot-config/bspwm/themes/default/rofi/custom_command.rasi b/dot-config/bspwm/themes/default/rofi/custom_command.rasi new file mode 100644 index 00000000..74bcbd94 --- /dev/null +++ b/dot-config/bspwm/themes/default/rofi/custom_command.rasi @@ -0,0 +1,77 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/*****----- Main Window -----*****/ +window { + location: center; + anchor: center; + fullscreen: false; + width: 350px; + x-offset: 0px; + y-offset: 0px; + padding: 20px; + border: 1px solid; + border-radius: 0px; + border-color: @selected; + background-color: @background; + cursor: "default"; + children: [ "inputbar", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + children: [ "textbox-prompt-colon", "prompt", "entry" ]; +} + +dummy { + expand: false; + width: 10px; + background-color: transparent; +} +textbox-prompt-colon { + enabled: true; + expand: false; + str: "$"; + padding: 10px 13px; + border-radius: 0px; + background-color: @active; + text-color: @background; +} +prompt { + enabled: true; + padding: 10px; + border-radius: 0px; + background-color: @selected; + text-color: @background; +} +entry { + enabled: true; + padding: 10px; + border: 0px 0px 1px 0px; + border-radius: 0px; + border-color: @selected; + background-color: @background-alt; + text-color: inherit; + cursor: text; + placeholder: "Command"; + placeholder-color: inherit; +} + +/*****----- Listview -----*****/ +listview { + enabled: false; +} diff --git a/dot-config/bspwm/themes/default/rofi/emoji.rasi b/dot-config/bspwm/themes/default/rofi/emoji.rasi new file mode 100644 index 00000000..74ab654e --- /dev/null +++ b/dot-config/bspwm/themes/default/rofi/emoji.rasi @@ -0,0 +1,300 @@ + +/*****----- Configuration -----*****/ +configuration { + modi: "window,emoji"; + show-icons: true; + display-drun: " Apps"; + display-run: " Run"; + display-filebrowser: " Files"; + display-window: " Windows"; + drun-display-format: "{name}"; + window-format: "{c} · {t}"; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +* { + border-colour: var(selected); + handle-colour: var(selected); + background-colour: var(background); + foreground-colour: var(foreground); + alternate-background: var(background-alt); + normal-background: var(background); + normal-foreground: var(foreground); + urgent-background: var(urgent); + urgent-foreground: var(background); + active-background: var(active); + active-foreground: var(background); + selected-normal-background: var(selected); + selected-normal-foreground: var(background); + selected-urgent-background: var(active); + selected-urgent-foreground: var(background); + selected-active-background: var(urgent); + selected-active-foreground: var(background); + alternate-normal-background: var(background); + alternate-normal-foreground: var(foreground); + alternate-urgent-background: var(urgent); + alternate-urgent-foreground: var(background); + alternate-active-background: var(active); + alternate-active-foreground: var(background); +} + +/*****----- Main Window -----*****/ +window { + /* properties for window widget */ + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 600px; + x-offset: 0px; + y-offset: 0px; + + /* properties for all widgets */ + enabled: true; + margin: 0px; + padding: 0px; + border: 1px solid; + border-radius: 0px; + border-color: @border-colour; + cursor: "default"; + /* Backgroud Colors */ + background-color: @background-colour; + /* Backgroud Image */ + //background-image: url("/path/to/image.png", none); + /* Simple Linear Gradient */ + //background-image: linear-gradient(red, orange, pink, purple); + /* Directional Linear Gradient */ + //background-image: linear-gradient(to bottom, pink, yellow, magenta); + /* Angle Linear Gradient */ + //background-image: linear-gradient(45, cyan, purple, indigo); +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 20px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @border-colour; + background-color: transparent; + children: [ "inputbar", "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px 0px 8px 0px; + border: 0px 0px 1px 0px; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + children: [ "textbox-prompt-colon", "entry" ]; +} + +prompt { + enabled: true; + background-color: inherit; + text-color: inherit; +} +textbox-prompt-colon { + enabled: true; + padding: 0px; + expand: false; + str: "😀"; + background-color: inherit; + text-color: inherit; +} +entry { + enabled: true; + padding: 0px; + background-color: inherit; + text-color: inherit; + cursor: text; + placeholder: "Filter..."; + placeholder-color: inherit; +} +num-filtered-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +textbox-num-sep { + enabled: true; + expand: false; + str: "/"; + background-color: inherit; + text-color: inherit; +} +num-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +case-indicator { + enabled: true; + background-color: inherit; + text-color: inherit; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 1; + lines: 8; + cycle: true; + dynamic: true; + scrollbar: false; + layout: vertical; + reverse: false; + fixed-height: true; + fixed-columns: true; + + spacing: 5px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: "default"; +} +scrollbar { + handle-width: 5px ; + handle-color: @handle-colour; + border-radius: 0px; + background-color: @alternate-background; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 6px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: pointer; +} +element normal.normal { + background-color: var(normal-background); + text-color: var(normal-foreground); +} +element normal.urgent { + background-color: var(urgent-background); + text-color: var(urgent-foreground); +} +element normal.active { + background-color: var(active-background); + text-color: var(active-foreground); +} +element selected.normal { + background-color: var(selected-normal-background); + text-color: var(selected-normal-foreground); +} +element selected.urgent { + background-color: var(selected-urgent-background); + text-color: var(selected-urgent-foreground); +} +element selected.active { + background-color: var(selected-active-background); + text-color: var(selected-active-foreground); +} +element alternate.normal { + background-color: var(alternate-normal-background); + text-color: var(alternate-normal-foreground); +} +element alternate.urgent { + background-color: var(alternate-urgent-background); + text-color: var(alternate-urgent-foreground); +} +element alternate.active { + background-color: var(alternate-active-background); + text-color: var(alternate-active-foreground); +} +element-icon { + background-color: transparent; + text-color: inherit; + size: 24px; + cursor: inherit; +} +element-text { + background-color: transparent; + text-color: inherit; + highlight: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Mode Switcher -----*****/ +mode-switcher{ + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; +} +button { + padding: 8px 12px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: inherit; + cursor: pointer; +} +button selected { + background-color: var(selected-normal-background); + text-color: var(selected-normal-foreground); +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 8px 12px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: @foreground-colour; +} +textbox { + border: 0px solid; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + vertical-align: 0.5; + horizontal-align: 0.0; + highlight: none; + placeholder-color: @foreground-colour; + blink: true; + markup: true; +} +error-message { + padding: 20px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @background-colour; + text-color: @foreground-colour; +} + diff --git a/dot-config/bspwm/themes/default/rofi/filebrowser.rasi b/dot-config/bspwm/themes/default/rofi/filebrowser.rasi new file mode 100644 index 00000000..40d74de0 --- /dev/null +++ b/dot-config/bspwm/themes/default/rofi/filebrowser.rasi @@ -0,0 +1,268 @@ +/*****----- Configuration -----*****/ +configuration { + modi: "file-browser-extended"; + show-icons: true; + display-filebrowser-extended: " Files"; + window-format: "{c} · {t}"; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +* { + border-colour: var(selected); + handle-colour: var(selected); + background-colour: var(background); + foreground-colour: var(foreground); + alternate-background: var(background-alt); + normal-background: var(background); + normal-foreground: var(foreground); + urgent-background: var(urgent); + urgent-foreground: var(background); + active-background: var(active); + active-foreground: var(background); + selected-normal-background: var(selected); + selected-normal-foreground: var(background); + selected-urgent-background: var(active); + selected-urgent-foreground: var(background); + selected-active-background: var(urgent); + selected-active-foreground: var(background); + alternate-normal-background: var(background); + alternate-normal-foreground: var(foreground); + alternate-urgent-background: var(urgent); + alternate-urgent-foreground: var(background); + alternate-active-background: var(active); + alternate-active-foreground: var(background); +} + +/*****----- Main Window -----*****/ +window { + /* properties for window widget */ + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 600px; + x-offset: 0px; + y-offset: 0px; + + /* properties for all widgets */ + enabled: true; + margin: 0px; + padding: 0px; + border: 1px solid; + border-radius: 0px; + border-color: @border-colour; + cursor: "default"; + /* Backgroud Colors */ + background-color: @background-colour; + /* Backgroud Image */ + //background-image: url("/path/to/image.png", none); + /* Simple Linear Gradient */ + //background-image: linear-gradient(red, orange, pink, purple); + /* Directional Linear Gradient */ + //background-image: linear-gradient(to bottom, pink, yellow, magenta); + /* Angle Linear Gradient */ + //background-image: linear-gradient(45, cyan, purple, indigo); +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 20px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @border-colour; + background-color: transparent; + children: [ "inputbar", "message", "listview"]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px 0px 8px 0px; + border: 0px 0px 1px 0px; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + children: [ "textbox-prompt-colon", "entry" ]; +} + +prompt { + enabled: true; + background-color: inherit; + text-color: inherit; +} +textbox-prompt-colon { + enabled: true; + padding: 0px; + expand: false; + str: ""; + background-color: inherit; + text-color: inherit; +} +entry { + enabled: true; + padding: 0px; + background-color: inherit; + text-color: inherit; + cursor: text; + placeholder: "Search..."; + placeholder-color: inherit; +} +num-filtered-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +textbox-num-sep { + enabled: true; + expand: false; + str: "/"; + background-color: inherit; + text-color: inherit; +} +num-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +case-indicator { + enabled: true; + background-color: inherit; + text-color: inherit; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 1; + lines: 7; + cycle: true; + dynamic: true; + scrollbar: true; + layout: vertical; + reverse: false; + fixed-height: true; + fixed-columns: true; + + spacing: 5px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: "default"; +} +scrollbar { + handle-width: 5px ; + handle-color: @handle-colour; + border-radius: 0px; + background-color: @alternate-background; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 6px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: pointer; +} +element normal.normal { + background-color: var(normal-background); + text-color: var(normal-foreground); +} +element normal.urgent { + background-color: var(urgent-background); + text-color: var(urgent-foreground); +} +element normal.active { + background-color: var(active-background); + text-color: var(active-foreground); +} +element selected.normal { + background-color: var(selected-normal-background); + text-color: var(selected-normal-foreground); +} +element selected.urgent { + background-color: var(selected-urgent-background); + text-color: var(selected-urgent-foreground); +} +element selected.active { + background-color: var(selected-active-background); + text-color: var(selected-active-foreground); +} +element alternate.normal { + background-color: var(alternate-normal-background); + text-color: var(alternate-normal-foreground); +} +element alternate.urgent { + background-color: var(alternate-urgent-background); + text-color: var(alternate-urgent-foreground); +} +element alternate.active { + background-color: var(alternate-active-background); + text-color: var(alternate-active-foreground); +} +element-icon { + background-color: transparent; + text-color: inherit; + size: 24px; + cursor: inherit; +} +element-text { + background-color: transparent; + text-color: inherit; + highlight: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 8px 12px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: @foreground-colour; +} +textbox { + border: 0px solid; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + vertical-align: 0.5; + horizontal-align: 0.0; + highlight: none; + placeholder-color: @foreground-colour; + blink: true; + markup: true; +} +error-message { + padding: 20px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @background-colour; + text-color: @foreground-colour; +} diff --git a/dot-config/bspwm/themes/default/rofi/launcher.rasi b/dot-config/bspwm/themes/default/rofi/launcher.rasi new file mode 100644 index 00000000..52bfed13 --- /dev/null +++ b/dot-config/bspwm/themes/default/rofi/launcher.rasi @@ -0,0 +1,298 @@ +/*****----- Configuration -----*****/ +configuration { + modi: "drun,run,file-browser-extended,window"; + show-icons: true; + display-drun: " Apps"; + display-run: " Run"; + display-file-browser-extended: " Files"; + display-window: " Windows"; + drun-display-format: "{name}"; + window-format: "{c} · {t}"; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +* { + border-colour: var(selected); + handle-colour: var(selected); + background-colour: var(background); + foreground-colour: var(foreground); + alternate-background: var(background-alt); + normal-background: var(background); + normal-foreground: var(foreground); + urgent-background: var(urgent); + urgent-foreground: var(background); + active-background: var(active); + active-foreground: var(background); + selected-normal-background: var(selected); + selected-normal-foreground: var(background); + selected-urgent-background: var(active); + selected-urgent-foreground: var(background); + selected-active-background: var(urgent); + selected-active-foreground: var(background); + alternate-normal-background: var(background); + alternate-normal-foreground: var(foreground); + alternate-urgent-background: var(urgent); + alternate-urgent-foreground: var(background); + alternate-active-background: var(active); + alternate-active-foreground: var(background); +} + +/*****----- Main Window -----*****/ +window { + /* properties for window widget */ + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 600px; + x-offset: 0px; + y-offset: 0px; + + /* properties for all widgets */ + enabled: true; + margin: 0px; + padding: 0px; + border: 1px solid; + border-radius: 0px; + border-color: @border-colour; + cursor: "default"; + /* Backgroud Colors */ + background-color: @background-colour; + /* Backgroud Image */ + //background-image: url("/path/to/image.png", none); + /* Simple Linear Gradient */ + //background-image: linear-gradient(red, orange, pink, purple); + /* Directional Linear Gradient */ + //background-image: linear-gradient(to bottom, pink, yellow, magenta); + /* Angle Linear Gradient */ + //background-image: linear-gradient(45, cyan, purple, indigo); +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 20px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @border-colour; + background-color: transparent; + children: [ "inputbar", "message", "listview", "mode-switcher" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px 0px 8px 0px; + border: 0px 0px 1px 0px; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + children: [ "textbox-prompt-colon", "entry" ]; +} + +prompt { + enabled: true; + background-color: inherit; + text-color: inherit; +} +textbox-prompt-colon { + enabled: true; + padding: 0px; + expand: false; + str: ""; + background-color: inherit; + text-color: inherit; +} +entry { + enabled: true; + padding: 0px; + background-color: inherit; + text-color: inherit; + cursor: text; + placeholder: "Search..."; + placeholder-color: inherit; +} +num-filtered-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +textbox-num-sep { + enabled: true; + expand: false; + str: "/"; + background-color: inherit; + text-color: inherit; +} +num-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +case-indicator { + enabled: true; + background-color: inherit; + text-color: inherit; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 1; + lines: 7; + cycle: true; + dynamic: true; + scrollbar: true; + layout: vertical; + reverse: false; + fixed-height: true; + fixed-columns: true; + + spacing: 5px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: "default"; +} +scrollbar { + handle-width: 5px ; + handle-color: @handle-colour; + border-radius: 0px; + background-color: @alternate-background; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 6px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: pointer; +} +element normal.normal { + background-color: var(normal-background); + text-color: var(normal-foreground); +} +element normal.urgent { + background-color: var(urgent-background); + text-color: var(urgent-foreground); +} +element normal.active { + background-color: var(active-background); + text-color: var(active-foreground); +} +element selected.normal { + background-color: var(selected-normal-background); + text-color: var(selected-normal-foreground); +} +element selected.urgent { + background-color: var(selected-urgent-background); + text-color: var(selected-urgent-foreground); +} +element selected.active { + background-color: var(selected-active-background); + text-color: var(selected-active-foreground); +} +element alternate.normal { + background-color: var(alternate-normal-background); + text-color: var(alternate-normal-foreground); +} +element alternate.urgent { + background-color: var(alternate-urgent-background); + text-color: var(alternate-urgent-foreground); +} +element alternate.active { + background-color: var(alternate-active-background); + text-color: var(alternate-active-foreground); +} +element-icon { + background-color: transparent; + text-color: inherit; + size: 24px; + cursor: inherit; +} +element-text { + background-color: transparent; + text-color: inherit; + highlight: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Mode Switcher -----*****/ +mode-switcher{ + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; +} +button { + padding: 8px 12px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: inherit; + cursor: pointer; +} +button selected { + background-color: var(selected-normal-background); + text-color: var(selected-normal-foreground); +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 8px 12px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: @foreground-colour; +} +textbox { + border: 0px solid; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + vertical-align: 0.5; + horizontal-align: 0.0; + highlight: none; + placeholder-color: @foreground-colour; + blink: true; + markup: true; +} +error-message { + padding: 20px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @background-colour; + text-color: @foreground-colour; +} diff --git a/dot-config/bspwm/themes/default/rofi/music.rasi b/dot-config/bspwm/themes/default/rofi/music.rasi new file mode 100644 index 00000000..cf050b7a --- /dev/null +++ b/dot-config/bspwm/themes/default/rofi/music.rasi @@ -0,0 +1,151 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + show-icons: false; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/* +USE_ICON=YES +*/ + +/*****----- Main Window -----*****/ +window { + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 600px; + x-offset: 0px; + y-offset: 0px; + margin: 0px; + padding: 0px; + border: 1px solid; + border-radius: 0px; + border-color: @selected; + cursor: "default"; + background-color: @background; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 20px; + background-color: transparent; + children: [ "inputbar", "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + padding: 0px; + border: 0px; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + children: [ "textbox-prompt-colon", "prompt"]; +} + +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + padding: 10px 14px; + border-radius: 0px; + background-color: @active; + text-color: @background; +} +prompt { + enabled: true; + padding: 10px; + border-radius: 0px; + background-color: @selected; + text-color: @background; +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: @background-alt; + text-color: @foreground; +} +textbox { + background-color: inherit; + text-color: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 6; + lines: 1; + cycle: true; + scrollbar: false; + layout: vertical; + + spacing: 10px; + background-color: transparent; + cursor: "default"; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + padding: 22px 10px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + cursor: pointer; +} +element-text { + font: "feather 20"; + background-color: transparent; + text-color: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.5; +} + +element normal.normal, +element alternate.normal { + border: 1px solid; + border-radius: 0px; + border-color: @selected; + background-color: var(background); + text-color: var(foreground); +} +element normal.urgent, +element alternate.urgent, +element selected.active { + background-color: var(urgent); + text-color: var(background); +} +element normal.active, +element alternate.active, +element selected.urgent { + background-color: var(active); + text-color: var(background); +} +element selected.normal { + background-color: var(selected); + text-color: var(background); +} diff --git a/dot-config/bspwm/themes/default/rofi/networkmenu.rasi b/dot-config/bspwm/themes/default/rofi/networkmenu.rasi new file mode 100644 index 00000000..cfca6d63 --- /dev/null +++ b/dot-config/bspwm/themes/default/rofi/networkmenu.rasi @@ -0,0 +1,302 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + show-icons: false; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +* { + border-colour: var(selected); + handle-colour: var(selected); + background-colour: var(background); + foreground-colour: var(foreground); + alternate-background: var(background-alt); + normal-background: var(background); + normal-foreground: var(foreground); + urgent-background: var(urgent); + urgent-foreground: var(background); + active-background: var(active); + active-foreground: var(background); + selected-normal-background: var(selected); + selected-normal-foreground: var(background); + selected-urgent-background: var(active); + selected-urgent-foreground: var(background); + selected-active-background: var(urgent); + selected-active-foreground: var(background); + alternate-normal-background: var(background); + alternate-normal-foreground: var(foreground); + alternate-urgent-background: var(urgent); + alternate-urgent-foreground: var(background); + alternate-active-background: var(active); + alternate-active-foreground: var(background); +} + +/*****----- Main Window -----*****/ +window { + /* properties for window widget */ + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 500px; + height: 475px; + x-offset: 0px; + y-offset: 0px; + + /* properties for all widgets */ + enabled: true; + margin: 0px; + padding: 0px; + border: 1px solid; + border-radius: 0px; + border-color: @border-colour; + cursor: "default"; + /* Backgroud Colors */ + background-color: @background-colour; + /* Backgroud Image */ + //background-image: url("/path/to/image.png", none); + /* Simple Linear Gradient */ + //background-image: linear-gradient(red, orange, pink, purple); + /* Directional Linear Gradient */ + //background-image: linear-gradient(to bottom, pink, yellow, magenta); + /* Angle Linear Gradient */ + //background-image: linear-gradient(45, cyan, purple, indigo); +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 20px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @border-colour; + background-color: transparent; + children: [ "inputbar", "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + children: [ "textbox-prompt-colon", "prompt", "entry" ]; +} + +prompt { + enabled: true; + padding: 8px 12px; + border-radius: 0px; + background-color: @selected; + text-color: @background; +} +textbox-prompt-colon { + enabled: true; + padding: 8px 11.5px; + border-radius: 0px; + expand: false; + str: "直"; + background-color: @active; + text-color: @background; +} +entry { + enabled: true; + padding: 8px 12px; + border: 0px 0px 1px 0px; + border-radius: 0px; + border-color: @selected; + background-color: @background-alt; + text-color: inherit; + cursor: text; + placeholder: ""; + placeholder-color: inherit; +} +num-filtered-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +textbox-num-sep { + enabled: true; + expand: false; + str: "/"; + background-color: inherit; + text-color: inherit; +} +num-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +case-indicator { + enabled: true; + background-color: inherit; + text-color: inherit; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 1; + lines: 6; + cycle: true; + dynamic: true; + scrollbar: true; + layout: vertical; + reverse: false; + fixed-height: true; + fixed-columns: true; + + spacing: 5px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: "default"; +} +scrollbar { + handle-width: 5px ; + handle-color: @handle-colour; + border-radius: 0px; + background-color: @alternate-background; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + spacing: 0px; + margin: 0px; + padding: 8px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: pointer; +} +element normal.normal { + background-color: var(normal-background); + text-color: var(normal-foreground); +} +element normal.urgent { + background-color: var(urgent-background); + text-color: var(urgent-foreground); +} +element normal.active { + background-color: var(active-background); + text-color: var(active-foreground); +} +element selected.normal { + background-color: var(selected-normal-background); + text-color: var(selected-normal-foreground); +} +element selected.urgent { + background-color: var(selected-urgent-background); + text-color: var(selected-urgent-foreground); +} +element selected.active { + background-color: var(selected-active-background); + text-color: var(selected-active-foreground); +} +element alternate.normal { + background-color: var(alternate-normal-background); + text-color: var(alternate-normal-foreground); +} +element alternate.urgent { + background-color: var(alternate-urgent-background); + text-color: var(alternate-urgent-foreground); +} +element alternate.active { + background-color: var(alternate-active-background); + text-color: var(alternate-active-foreground); +} +element-icon { + background-color: transparent; + text-color: inherit; + size: 24px; + cursor: inherit; +} +element-text { + background-color: transparent; + text-color: inherit; + highlight: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Mode Switcher -----*****/ +mode-switcher{ + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; +} +button { + padding: 5px 10px; + border: 0px solid; + border-radius: 8px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: inherit; + cursor: pointer; +} +button selected { + background-color: var(selected-normal-background); + text-color: var(selected-normal-foreground); +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 8px 10px; + border: 0px solid; + border-radius: 8px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: @foreground-colour; +} +textbox { + border: 0px solid; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + vertical-align: 0.5; + horizontal-align: 0.0; + highlight: none; + placeholder-color: @foreground-colour; + blink: true; + markup: true; +} +error-message { + padding: 15px; + border: 0px solid; + border-radius: 10px; + border-color: @border-colour; + background-color: @background-colour; + text-color: @foreground-colour; +} diff --git a/dot-config/bspwm/themes/default/rofi/powermenu.rasi b/dot-config/bspwm/themes/default/rofi/powermenu.rasi new file mode 100644 index 00000000..1a2cb0ec --- /dev/null +++ b/dot-config/bspwm/themes/default/rofi/powermenu.rasi @@ -0,0 +1,151 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + show-icons: false; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/* +USE_ICON=YES +*/ + +/*****----- Main Window -----*****/ +window { + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 700px; + x-offset: 0px; + y-offset: 0px; + margin: 0px; + padding: 0px; + border: 1px solid; + border-radius: 0px; + border-color: @selected; + cursor: "default"; + background-color: @background; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 20px; + background-color: transparent; + children: [ "inputbar", "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + padding: 0px; + border: 0px; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + children: [ "textbox-prompt-colon", "prompt"]; +} + +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + padding: 10px 14px; + border-radius: 0px; + background-color: @active; + text-color: @background; +} +prompt { + enabled: true; + padding: 10px; + border-radius: 0px; + background-color: @selected; + text-color: @background; +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: @background-alt; + text-color: @foreground; +} +textbox { + background-color: inherit; + text-color: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 7; + lines: 1; + cycle: true; + scrollbar: false; + layout: vertical; + + spacing: 10px; + background-color: transparent; + cursor: "default"; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + padding: 22px 10px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + cursor: pointer; +} +element-text { + font: "feather 20"; + background-color: transparent; + text-color: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.5; +} + +element normal.normal, +element alternate.normal { + border: 1px solid; + border-radius: 0px; + border-color: @selected; + background-color: var(background); + text-color: var(foreground); +} +element normal.urgent, +element alternate.urgent, +element selected.active { + background-color: var(urgent); + text-color: var(background); +} +element normal.active, +element alternate.active, +element selected.urgent { + background-color: var(active); + text-color: var(background); +} +element selected.normal { + background-color: var(selected); + text-color: var(background); +} diff --git a/dot-config/bspwm/themes/default/rofi/runner.rasi b/dot-config/bspwm/themes/default/rofi/runner.rasi new file mode 100644 index 00000000..08de625f --- /dev/null +++ b/dot-config/bspwm/themes/default/rofi/runner.rasi @@ -0,0 +1,302 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + modi: "run"; + show-icons: true; + display-drun: " Apps"; + display-run: " Run"; + display-filebrowser: " Files"; + display-window: " Windows"; + drun-display-format: "{name}"; + window-format: "{w} · {c} · {t}"; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +* { + border-colour: var(selected); + handle-colour: var(selected); + background-colour: var(background); + foreground-colour: var(foreground); + alternate-background: var(background-alt); + normal-background: var(background); + normal-foreground: var(foreground); + urgent-background: var(urgent); + urgent-foreground: var(background); + active-background: var(active); + active-foreground: var(background); + selected-normal-background: var(selected); + selected-normal-foreground: var(background); + selected-urgent-background: var(active); + selected-urgent-foreground: var(background); + selected-active-background: var(urgent); + selected-active-foreground: var(background); + alternate-normal-background: var(background); + alternate-normal-foreground: var(foreground); + alternate-urgent-background: var(urgent); + alternate-urgent-foreground: var(background); + alternate-active-background: var(active); + alternate-active-foreground: var(background); +} + +/*****----- Main Window -----*****/ +window { + /* properties for window widget */ + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 500px; + x-offset: 0px; + y-offset: 0px; + + /* properties for all widgets */ + enabled: true; + margin: 0px; + padding: 0px; + border: 1px solid; + border-radius: 0px; + border-color: @border-colour; + cursor: "default"; + /* Backgroud Colors */ + background-color: @background-colour; + /* Backgroud Image */ + //background-image: url("/path/to/image.png", none); + /* Simple Linear Gradient */ + //background-image: linear-gradient(red, orange, pink, purple); + /* Directional Linear Gradient */ + //background-image: linear-gradient(to bottom, pink, yellow, magenta); + /* Angle Linear Gradient */ + //background-image: linear-gradient(45, cyan, purple, indigo); +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 20px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @border-colour; + background-color: transparent; + children: [ "inputbar", "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px 0px 8px 0px; + border: 0px 0px 1px 0px; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + children: [ "textbox-prompt-colon", "entry" ]; +} + +prompt { + enabled: true; + background-color: inherit; + text-color: inherit; +} +textbox-prompt-colon { + enabled: true; + padding: 0px; + expand: false; + str: ""; + background-color: inherit; + text-color: inherit; +} +entry { + enabled: true; + padding: 0px; + background-color: inherit; + text-color: inherit; + cursor: text; + placeholder: "Run..."; + placeholder-color: inherit; +} +num-filtered-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +textbox-num-sep { + enabled: true; + expand: false; + str: "/"; + background-color: inherit; + text-color: inherit; +} +num-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +case-indicator { + enabled: true; + background-color: inherit; + text-color: inherit; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 1; + lines: 6; + cycle: true; + dynamic: true; + scrollbar: false; + layout: vertical; + reverse: false; + fixed-height: true; + fixed-columns: true; + + spacing: 5px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: "default"; +} +scrollbar { + handle-width: 5px ; + handle-color: @handle-colour; + border-radius: 0px; + background-color: @alternate-background; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 6px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: pointer; +} +element normal.normal { + background-color: var(normal-background); + text-color: var(normal-foreground); +} +element normal.urgent { + background-color: var(urgent-background); + text-color: var(urgent-foreground); +} +element normal.active { + background-color: var(active-background); + text-color: var(active-foreground); +} +element selected.normal { + background-color: var(selected-normal-background); + text-color: var(selected-normal-foreground); +} +element selected.urgent { + background-color: var(selected-urgent-background); + text-color: var(selected-urgent-foreground); +} +element selected.active { + background-color: var(selected-active-background); + text-color: var(selected-active-foreground); +} +element alternate.normal { + background-color: var(alternate-normal-background); + text-color: var(alternate-normal-foreground); +} +element alternate.urgent { + background-color: var(alternate-urgent-background); + text-color: var(alternate-urgent-foreground); +} +element alternate.active { + background-color: var(alternate-active-background); + text-color: var(alternate-active-foreground); +} +element-icon { + background-color: transparent; + text-color: inherit; + size: 24px; + cursor: inherit; +} +element-text { + background-color: transparent; + text-color: inherit; + highlight: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Mode Switcher -----*****/ +mode-switcher{ + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; +} +button { + padding: 8px 12px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: inherit; + cursor: pointer; +} +button selected { + background-color: var(selected-normal-background); + text-color: var(selected-normal-foreground); +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 8px 12px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: @foreground-colour; +} +textbox { + border: 0px solid; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + vertical-align: 0.5; + horizontal-align: 0.0; + highlight: none; + placeholder-color: @foreground-colour; + blink: true; + markup: true; +} +error-message { + padding: 20px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @background-colour; + text-color: @foreground-colour; +} diff --git a/dot-config/bspwm/themes/default/rofi/screenshot.rasi b/dot-config/bspwm/themes/default/rofi/screenshot.rasi new file mode 100644 index 00000000..f5f969de --- /dev/null +++ b/dot-config/bspwm/themes/default/rofi/screenshot.rasi @@ -0,0 +1,151 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + show-icons: false; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/* +USE_ICON=YES +*/ + +/*****----- Main Window -----*****/ +window { + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 500px; + x-offset: 0px; + y-offset: 0px; + margin: 0px; + padding: 0px; + border: 1px solid; + border-radius: 0px; + border-color: @selected; + cursor: "default"; + background-color: @background; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 20px; + background-color: transparent; + children: [ "inputbar", "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + padding: 0px; + border: 0px; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + children: [ "textbox-prompt-colon", "prompt"]; +} + +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + padding: 10px 12px; + border-radius: 0px; + background-color: @active; + text-color: @background; +} +prompt { + enabled: true; + padding: 10px; + border-radius: 0px; + background-color: @selected; + text-color: @background; +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: @background-alt; + text-color: @foreground; +} +textbox { + background-color: inherit; + text-color: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 5; + lines: 1; + cycle: true; + scrollbar: false; + layout: vertical; + + spacing: 10px; + background-color: transparent; + cursor: "default"; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + padding: 22px 10px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + cursor: pointer; +} +element-text { + font: "feather 20"; + background-color: transparent; + text-color: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.5; +} + +element normal.normal, +element alternate.normal { + border: 1px solid; + border-radius: 0px; + border-color: @selected; + background-color: var(background); + text-color: var(foreground); +} +element normal.urgent, +element alternate.urgent, +element selected.active { + background-color: var(urgent); + text-color: var(background); +} +element normal.active, +element alternate.active, +element selected.urgent { + background-color: var(active); + text-color: var(background); +} +element selected.normal { + background-color: var(selected); + text-color: var(background); +} diff --git a/dot-config/bspwm/themes/default/rofi/shared/colors.rasi b/dot-config/bspwm/themes/default/rofi/shared/colors.rasi new file mode 100644 index 00000000..9ba701ac --- /dev/null +++ b/dot-config/bspwm/themes/default/rofi/shared/colors.rasi @@ -0,0 +1,8 @@ +* { + background: #2E3440; + background-alt: #39404f; + foreground: #D8DEE9; + selected: #81A1C1; + active: #A3BE8C; + urgent: #BF616A; +} diff --git a/dot-config/bspwm/themes/default/rofi/shared/fonts.rasi b/dot-config/bspwm/themes/default/rofi/shared/fonts.rasi new file mode 100644 index 00000000..3928237f --- /dev/null +++ b/dot-config/bspwm/themes/default/rofi/shared/fonts.rasi @@ -0,0 +1,5 @@ +/* Text Font */ + +* { + font: "Iosevka 10"; +} diff --git a/dot-config/bspwm/themes/default/rofi/themes.rasi b/dot-config/bspwm/themes/default/rofi/themes.rasi new file mode 100644 index 00000000..6da2f21c --- /dev/null +++ b/dot-config/bspwm/themes/default/rofi/themes.rasi @@ -0,0 +1,305 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + modi: "drun,run,filebrowser,window"; + show-icons: false; + display-drun: " Apps"; + display-run: " Run"; + display-filebrowser: " Files"; + display-window: " Windows"; + drun-display-format: "{name}"; + window-format: "{w} · {c} · {t}"; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +* { + border-colour: var(selected); + handle-colour: var(selected); + background-colour: var(background); + foreground-colour: var(foreground); + alternate-background: var(background-alt); + normal-background: var(background); + normal-foreground: var(foreground); + urgent-background: var(urgent); + urgent-foreground: var(background); + active-background: var(active); + active-foreground: var(background); + selected-normal-background: var(selected); + selected-normal-foreground: var(background); + selected-urgent-background: var(active); + selected-urgent-foreground: var(background); + selected-active-background: var(urgent); + selected-active-foreground: var(background); + alternate-normal-background: var(background); + alternate-normal-foreground: var(foreground); + alternate-urgent-background: var(urgent); + alternate-urgent-foreground: var(background); + alternate-active-background: var(active); + alternate-active-foreground: var(background); +} + +/*****----- Main Window -----*****/ +window { + /* properties for window widget */ + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 400px; + x-offset: 0px; + y-offset: 0px; + + /* properties for all widgets */ + enabled: true; + margin: 0px; + padding: 0px; + border: 1px solid; + border-radius: 0px; + border-color: @border-colour; + cursor: "default"; + /* Backgroud Colors */ + background-color: @background-colour; + /* Backgroud Image */ + //background-image: url("/path/to/image.png", none); + /* Simple Linear Gradient */ + //background-image: linear-gradient(red, orange, pink, purple); + /* Directional Linear Gradient */ + //background-image: linear-gradient(to bottom, pink, yellow, magenta); + /* Angle Linear Gradient */ + //background-image: linear-gradient(45, cyan, purple, indigo); +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 20px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @border-colour; + background-color: transparent; + children: [ "inputbar", "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + children: [ "textbox-prompt-colon", "prompt" ]; +} + +prompt { + enabled: true; + padding: 8px 12px; + border-radius: 0px; + background-color: @selected; + text-color: @background; +} +textbox-prompt-colon { + enabled: true; + padding: 8px 12px; + border-radius: 0px; + expand: false; + str: ""; + background-color: @active; + text-color: @background; +} +entry { + enabled: true; + padding: 0px; + background-color: inherit; + text-color: inherit; + cursor: text; + placeholder: "Run..."; + placeholder-color: inherit; +} +num-filtered-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +textbox-num-sep { + enabled: true; + expand: false; + str: "/"; + background-color: inherit; + text-color: inherit; +} +num-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +case-indicator { + enabled: true; + background-color: inherit; + text-color: inherit; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 1; + lines: 6; + cycle: true; + dynamic: true; + scrollbar: false; + layout: vertical; + reverse: false; + fixed-height: true; + fixed-columns: true; + + spacing: 5px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: "default"; +} +scrollbar { + handle-width: 5px ; + handle-color: @handle-colour; + border-radius: 0px; + background-color: @alternate-background; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 8px 12px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: pointer; +} +element normal.normal { + background-color: var(normal-background); + text-color: var(normal-foreground); +} +element normal.urgent { + background-color: var(urgent-background); + text-color: var(urgent-foreground); +} +element normal.active { + background-color: var(active-background); + text-color: var(active-foreground); +} +element selected.normal { + background-color: var(selected-normal-background); + text-color: var(selected-normal-foreground); +} +element selected.urgent { + background-color: var(selected-urgent-background); + text-color: var(selected-urgent-foreground); +} +element selected.active { + background-color: var(selected-active-background); + text-color: var(selected-active-foreground); +} +element alternate.normal { + background-color: var(alternate-normal-background); + text-color: var(alternate-normal-foreground); +} +element alternate.urgent { + background-color: var(alternate-urgent-background); + text-color: var(alternate-urgent-foreground); +} +element alternate.active { + background-color: var(alternate-active-background); + text-color: var(alternate-active-foreground); +} +element-icon { + background-color: transparent; + text-color: inherit; + size: 24px; + cursor: inherit; +} +element-text { + background-color: transparent; + text-color: inherit; + highlight: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Mode Switcher -----*****/ +mode-switcher{ + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; +} +button { + padding: 8px 12px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: inherit; + cursor: pointer; +} +button selected { + background-color: var(selected-normal-background); + text-color: var(selected-normal-foreground); +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 8px 12px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: @foreground-colour; +} +textbox { + border: 0px solid; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + vertical-align: 0.5; + horizontal-align: 0.0; + highlight: none; + placeholder-color: @foreground-colour; + blink: true; + markup: true; +} +error-message { + padding: 20px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @background-colour; + text-color: @foreground-colour; +} diff --git a/dot-config/bspwm/themes/default/rofi/wallpaper.rasi b/dot-config/bspwm/themes/default/rofi/wallpaper.rasi new file mode 100644 index 00000000..99026dd8 --- /dev/null +++ b/dot-config/bspwm/themes/default/rofi/wallpaper.rasi @@ -0,0 +1,302 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + modi: "window"; + show-icons: true; + display-drun: " Apps"; + display-run: " Run"; + display-filebrowser: " Files"; + display-window: " Windows"; + drun-display-format: "{name}"; + window-format: "{c} · {t}"; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +* { + border-colour: var(selected); + handle-colour: var(selected); + background-colour: var(background); + foreground-colour: var(foreground); + alternate-background: var(background-alt); + normal-background: var(background); + normal-foreground: var(foreground); + urgent-background: var(urgent); + urgent-foreground: var(background); + active-background: var(active); + active-foreground: var(background); + selected-normal-background: var(selected); + selected-normal-foreground: var(background); + selected-urgent-background: var(active); + selected-urgent-foreground: var(background); + selected-active-background: var(urgent); + selected-active-foreground: var(background); + alternate-normal-background: var(background); + alternate-normal-foreground: var(foreground); + alternate-urgent-background: var(urgent); + alternate-urgent-foreground: var(background); + alternate-active-background: var(active); + alternate-active-foreground: var(background); +} + +/*****----- Main Window -----*****/ +window { + /* properties for window widget */ + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 600px; + x-offset: 0px; + y-offset: 0px; + + /* properties for all widgets */ + enabled: true; + margin: 0px; + padding: 0px; + border: 1px solid; + border-radius: 0px; + border-color: @border-colour; + cursor: "default"; + /* Backgroud Colors */ + background-color: @background-colour; + /* Backgroud Image */ + //background-image: url("/path/to/image.png", none); + /* Simple Linear Gradient */ + //background-image: linear-gradient(red, orange, pink, purple); + /* Directional Linear Gradient */ + //background-image: linear-gradient(to bottom, pink, yellow, magenta); + /* Angle Linear Gradient */ + //background-image: linear-gradient(45, cyan, purple, indigo); +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 20px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @border-colour; + background-color: transparent; + children: [ "inputbar", "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px 0px 8px 0px; + border: 0px 0px 1px 0px; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + children: [ "textbox-prompt-colon", "entry" ]; +} + +prompt { + enabled: true; + background-color: inherit; + text-color: inherit; +} +textbox-prompt-colon { + enabled: true; + padding: 0px; + expand: false; + str: ""; + background-color: inherit; + text-color: inherit; +} +entry { + enabled: true; + padding: 0px; + background-color: inherit; + text-color: inherit; + cursor: text; + placeholder: "Filter..."; + placeholder-color: inherit; +} +num-filtered-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +textbox-num-sep { + enabled: true; + expand: false; + str: "/"; + background-color: inherit; + text-color: inherit; +} +num-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +case-indicator { + enabled: true; + background-color: inherit; + text-color: inherit; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 1; + lines: 8; + cycle: true; + dynamic: true; + scrollbar: false; + layout: vertical; + reverse: false; + fixed-height: true; + fixed-columns: true; + + spacing: 5px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: "default"; +} +scrollbar { + handle-width: 5px ; + handle-color: @handle-colour; + border-radius: 0px; + background-color: @alternate-background; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 6px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: pointer; +} +element normal.normal { + background-color: var(normal-background); + text-color: var(normal-foreground); +} +element normal.urgent { + background-color: var(urgent-background); + text-color: var(urgent-foreground); +} +element normal.active { + background-color: var(active-background); + text-color: var(active-foreground); +} +element selected.normal { + background-color: var(selected-normal-background); + text-color: var(selected-normal-foreground); +} +element selected.urgent { + background-color: var(selected-urgent-background); + text-color: var(selected-urgent-foreground); +} +element selected.active { + background-color: var(selected-active-background); + text-color: var(selected-active-foreground); +} +element alternate.normal { + background-color: var(alternate-normal-background); + text-color: var(alternate-normal-foreground); +} +element alternate.urgent { + background-color: var(alternate-urgent-background); + text-color: var(alternate-urgent-foreground); +} +element alternate.active { + background-color: var(alternate-active-background); + text-color: var(alternate-active-foreground); +} +element-icon { + background-color: transparent; + text-color: inherit; + size: 24px; + cursor: inherit; +} +element-text { + background-color: transparent; + text-color: inherit; + highlight: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Mode Switcher -----*****/ +mode-switcher{ + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; +} +button { + padding: 8px 12px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: inherit; + cursor: pointer; +} +button selected { + background-color: var(selected-normal-background); + text-color: var(selected-normal-foreground); +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 8px 12px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: @foreground-colour; +} +textbox { + border: 0px solid; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + vertical-align: 0.5; + horizontal-align: 0.0; + highlight: none; + placeholder-color: @foreground-colour; + blink: true; + markup: true; +} +error-message { + padding: 20px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @background-colour; + text-color: @foreground-colour; +} diff --git a/dot-config/bspwm/themes/default/rofi/windows.rasi b/dot-config/bspwm/themes/default/rofi/windows.rasi new file mode 100644 index 00000000..99026dd8 --- /dev/null +++ b/dot-config/bspwm/themes/default/rofi/windows.rasi @@ -0,0 +1,302 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + modi: "window"; + show-icons: true; + display-drun: " Apps"; + display-run: " Run"; + display-filebrowser: " Files"; + display-window: " Windows"; + drun-display-format: "{name}"; + window-format: "{c} · {t}"; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +* { + border-colour: var(selected); + handle-colour: var(selected); + background-colour: var(background); + foreground-colour: var(foreground); + alternate-background: var(background-alt); + normal-background: var(background); + normal-foreground: var(foreground); + urgent-background: var(urgent); + urgent-foreground: var(background); + active-background: var(active); + active-foreground: var(background); + selected-normal-background: var(selected); + selected-normal-foreground: var(background); + selected-urgent-background: var(active); + selected-urgent-foreground: var(background); + selected-active-background: var(urgent); + selected-active-foreground: var(background); + alternate-normal-background: var(background); + alternate-normal-foreground: var(foreground); + alternate-urgent-background: var(urgent); + alternate-urgent-foreground: var(background); + alternate-active-background: var(active); + alternate-active-foreground: var(background); +} + +/*****----- Main Window -----*****/ +window { + /* properties for window widget */ + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 600px; + x-offset: 0px; + y-offset: 0px; + + /* properties for all widgets */ + enabled: true; + margin: 0px; + padding: 0px; + border: 1px solid; + border-radius: 0px; + border-color: @border-colour; + cursor: "default"; + /* Backgroud Colors */ + background-color: @background-colour; + /* Backgroud Image */ + //background-image: url("/path/to/image.png", none); + /* Simple Linear Gradient */ + //background-image: linear-gradient(red, orange, pink, purple); + /* Directional Linear Gradient */ + //background-image: linear-gradient(to bottom, pink, yellow, magenta); + /* Angle Linear Gradient */ + //background-image: linear-gradient(45, cyan, purple, indigo); +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 20px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @border-colour; + background-color: transparent; + children: [ "inputbar", "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px 0px 8px 0px; + border: 0px 0px 1px 0px; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + children: [ "textbox-prompt-colon", "entry" ]; +} + +prompt { + enabled: true; + background-color: inherit; + text-color: inherit; +} +textbox-prompt-colon { + enabled: true; + padding: 0px; + expand: false; + str: ""; + background-color: inherit; + text-color: inherit; +} +entry { + enabled: true; + padding: 0px; + background-color: inherit; + text-color: inherit; + cursor: text; + placeholder: "Filter..."; + placeholder-color: inherit; +} +num-filtered-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +textbox-num-sep { + enabled: true; + expand: false; + str: "/"; + background-color: inherit; + text-color: inherit; +} +num-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +case-indicator { + enabled: true; + background-color: inherit; + text-color: inherit; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 1; + lines: 8; + cycle: true; + dynamic: true; + scrollbar: false; + layout: vertical; + reverse: false; + fixed-height: true; + fixed-columns: true; + + spacing: 5px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: "default"; +} +scrollbar { + handle-width: 5px ; + handle-color: @handle-colour; + border-radius: 0px; + background-color: @alternate-background; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 6px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: pointer; +} +element normal.normal { + background-color: var(normal-background); + text-color: var(normal-foreground); +} +element normal.urgent { + background-color: var(urgent-background); + text-color: var(urgent-foreground); +} +element normal.active { + background-color: var(active-background); + text-color: var(active-foreground); +} +element selected.normal { + background-color: var(selected-normal-background); + text-color: var(selected-normal-foreground); +} +element selected.urgent { + background-color: var(selected-urgent-background); + text-color: var(selected-urgent-foreground); +} +element selected.active { + background-color: var(selected-active-background); + text-color: var(selected-active-foreground); +} +element alternate.normal { + background-color: var(alternate-normal-background); + text-color: var(alternate-normal-foreground); +} +element alternate.urgent { + background-color: var(alternate-urgent-background); + text-color: var(alternate-urgent-foreground); +} +element alternate.active { + background-color: var(alternate-active-background); + text-color: var(alternate-active-foreground); +} +element-icon { + background-color: transparent; + text-color: inherit; + size: 24px; + cursor: inherit; +} +element-text { + background-color: transparent; + text-color: inherit; + highlight: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Mode Switcher -----*****/ +mode-switcher{ + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; +} +button { + padding: 8px 12px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: inherit; + cursor: pointer; +} +button selected { + background-color: var(selected-normal-background); + text-color: var(selected-normal-foreground); +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 8px 12px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: @foreground-colour; +} +textbox { + border: 0px solid; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + vertical-align: 0.5; + horizontal-align: 0.0; + highlight: none; + placeholder-color: @foreground-colour; + blink: true; + markup: true; +} +error-message { + padding: 20px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @background-colour; + text-color: @foreground-colour; +} diff --git a/dot-config/bspwm/themes/default/theme.bash b/dot-config/bspwm/themes/default/theme.bash new file mode 100644 index 00000000..0d91b055 --- /dev/null +++ b/dot-config/bspwm/themes/default/theme.bash @@ -0,0 +1,80 @@ +# ------------------------------------------------------------------------------ +# Default Theme +# ------------------------------------------------------------------------------ + +# Colors +background='#2E3440' +foreground='#D8DEE9' +color0='#3B4252' +color1='#BF616A' +color2='#A3BE8C' +color3='#EBCB8B' +color4='#81A1C1' +color5='#B48EAD' +color6='#88C0D0' +color7='#E5E9F0' +color8='#4C566A' +color9='#BF616A' +color10='#A3BE8C' +color11='#EBCB8B' +color12='#81A1C1' +color13='#B48EAD' +color14='#8FBCBB' +color15='#ECEFF4' + +accent='#81A1C1' +light_value='0.05' +dark_value='0.30' + +# Wallpaper +wdir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" +wallpaper="$wdir/wallpaper" + +# Polybar +polybar_font='Iosevka Nerd Font:size=10;3' + +# Rofi +rofi_font='Iosevka 10' +rofi_icon='Arc-Circle' + +# Terminal +terminal_font_name='JetBrainsMono Nerd Font' +terminal_font_size='10' + +# Geany +geany_colors='arc.conf' +geany_font='JetBrains Mono 10' + +# Appearance +gtk_font='Noto Sans 9' +gtk_theme='Arc-Dark' +icon_theme='Arc-Circle' +cursor_theme='Qogirr' + +# Dunst +dunst_width='300' +dunst_height='80' +dunst_offset='10x42' +dunst_origin='top-right' +dunst_font='Iosevka Custom 9' +dunst_border='1' +dunst_separator='1' + +# Picom +picom_backend='glx' +picom_corner='0' +picom_shadow_r='14' +picom_shadow_o='0.30' +picom_shadow_x='-12' +picom_shadow_y='-12' +picom_blur_method='none' +picom_blur_strength='0' + +# Bspwm +bspwm_fbc="$accent" +bspwm_nbc="$background" +bspwm_abc="$color5" +bspwm_pfc="$color2" +bspwm_border='1' +bspwm_gap='10' +bspwm_sratio='0.50' diff --git a/dot-config/bspwm/themes/default/wallpaper b/dot-config/bspwm/themes/default/wallpaper new file mode 120000 index 00000000..aad53066 --- /dev/null +++ b/dot-config/bspwm/themes/default/wallpaper @@ -0,0 +1 @@ +/usr/share/backgrounds/nord.jpg
\ No newline at end of file diff --git a/dot-config/bspwm/themes/forest/apply.sh b/dot-config/bspwm/themes/forest/apply.sh new file mode 100755 index 00000000..d51dcf30 --- /dev/null +++ b/dot-config/bspwm/themes/forest/apply.sh @@ -0,0 +1,278 @@ +#!/usr/bin/env bash + +## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> +## +## Script To Apply Themes + +## Theme ------------------------------------ +BDIR="$HOME/.config/bspwm" +TDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" +THEME="${TDIR##*/}" + +source "$BDIR"/themes/"$THEME"/theme.bash +altbackground="`pastel color $background | pastel lighten $light_value | pastel format hex`" +altforeground="`pastel color $foreground | pastel darken $dark_value | pastel format hex`" + +## Directories ------------------------------ +PATH_CONF="$HOME/.config" +PATH_GEANY="$PATH_CONF/geany" +PATH_BSPWM="$PATH_CONF/bspwm" +PATH_TERM="$PATH_BSPWM/alacritty" +PATH_PBAR="$PATH_BSPWM/themes/$THEME/polybar" +PATH_ROFI="$PATH_BSPWM/themes/$THEME/rofi" + +## Wallpaper --------------------------------- +apply_wallpaper() { + feh --bg-fill "$wallpaper" +} + +## Polybar ----------------------------------- +apply_polybar() { + # modify polybar launch script + sed -i -e "s/STYLE=.*/STYLE=\"$THEME\"/g" ${PATH_BSPWM}/themes/polybar.sh + + # apply default theme fonts + sed -i -e "s/font-0 = .*/font-0 = \"$polybar_font\"/g" ${PATH_PBAR}/config.ini + + # rewrite colors file + cat > ${PATH_PBAR}/colors.ini <<- EOF + [color] + + BACKGROUND = ${background} + FOREGROUND = ${foreground} + ALTBACKGROUND = ${altbackground} + ALTFOREGROUND = ${altforeground} + ACCENT = ${accent} + + BLACK = ${color0} + RED = ${color1} + GREEN = ${color2} + YELLOW = ${color3} + BLUE = ${color4} + MAGENTA = ${color5} + CYAN = ${color6} + WHITE = ${color7} + ALTBLACK = ${color8} + ALTRED = ${color9} + ALTGREEN = ${color10} + ALTYELLOW = ${color11} + ALTBLUE = ${color12} + ALTMAGENTA = ${color13} + ALTCYAN = ${color14} + ALTWHITE = ${color15} + EOF +} + +# Rofi -------------------------------------- +apply_rofi() { + # modify rofi scripts + sed -i -e "s/STYLE=.*/STYLE=\"$THEME\"/g" \ + ${PATH_BSPWM}/scripts/rofi_askpass \ + ${PATH_BSPWM}/scripts/rofi_asroot \ + ${PATH_BSPWM}/scripts/rofi_launcher \ + ${PATH_BSPWM}/scripts/rofi_music \ + ${PATH_BSPWM}/scripts/rofi_powermenu \ + ${PATH_BSPWM}/scripts/rofi_runner \ + ${PATH_BSPWM}/scripts/rofi_screenshot \ + ${PATH_BSPWM}/scripts/rofi_themes \ + ${PATH_BSPWM}/scripts/rofi_windows + + # apply default theme fonts + sed -i -e "s/font:.*/font: \"$rofi_font\";/g" ${PATH_ROFI}/shared/fonts.rasi + + # rewrite colors file + cat > ${PATH_ROFI}/shared/colors.rasi <<- EOF + * { + background: ${background}; + background-alt: ${altbackground}; + foreground: ${foreground}; + selected: ${accent}; + active: ${color2}; + urgent: ${color1}; + } + EOF + + # modify icon theme + if [[ -f "$PATH_CONF"/rofi/config.rasi ]]; then + sed -i -e "s/icon-theme:.*/icon-theme: \"$rofi_icon\";/g" ${PATH_CONF}/rofi/config.rasi + fi +} + +# Network Menu ------------------------------ +apply_netmenu() { + if [[ -f "$PATH_CONF"/networkmanager-dmenu/nmd.ini ]]; then + sed -i -e "s#dmenu_command = .*#dmenu_command = rofi -dmenu -theme $PATH_ROFI/networkmenu.rasi#g" ${PATH_CONF}/networkmanager-dmenu/nmd.ini + fi +} + +# Terminal ---------------------------------- +apply_terminal() { + # alacritty : fonts + sed -i ${PATH_TERM}/fonts.yml \ + -e "s/family: .*/family: \"$terminal_font_name\"/g" \ + -e "s/size: .*/size: $terminal_font_size/g" + + # alacritty : colors + cat > ${PATH_TERM}/colors.yml <<- _EOF_ + ## Colors configuration + colors: + # Default colors + primary: + background: '${background}' + foreground: '${foreground}' + + # Normal colors + normal: + black: '${color0}' + red: '${color1}' + green: '${color2}' + yellow: '${color3}' + blue: '${color4}' + magenta: '${color5}' + cyan: '${color6}' + white: '${color7}' + + # Bright colors + bright: + black: '${color8}' + red: '${color9}' + green: '${color10}' + yellow: '${color11}' + blue: '${color12}' + magenta: '${color13}' + cyan: '${color14}' + white: '${color15}' + _EOF_ +} + +# Geany ------------------------------------- +apply_geany() { + sed -i ${PATH_GEANY}/geany.conf \ + -e "s/color_scheme=.*/color_scheme=$geany_colors/g" \ + -e "s/editor_font=.*/editor_font=$geany_font/g" +} + +# Appearance -------------------------------- +apply_appearance() { + XFILE="$PATH_BSPWM/xsettingsd" + GTK2FILE="$HOME/.gtkrc-2.0" + GTK3FILE="$PATH_CONF/gtk-3.0/settings.ini" + + # apply gtk theme, icons, cursor & fonts + if [[ `pidof xsettingsd` ]]; then + sed -i -e "s|Net/ThemeName .*|Net/ThemeName \"$gtk_theme\"|g" ${XFILE} + sed -i -e "s|Net/IconThemeName .*|Net/IconThemeName \"$icon_theme\"|g" ${XFILE} + sed -i -e "s|Gtk/CursorThemeName .*|Gtk/CursorThemeName \"$cursor_theme\"|g" ${XFILE} + else + sed -i -e "s/gtk-font-name=.*/gtk-font-name=\"$gtk_font\"/g" ${GTK2FILE} + sed -i -e "s/gtk-theme-name=.*/gtk-theme-name=\"$gtk_theme\"/g" ${GTK2FILE} + sed -i -e "s/gtk-icon-theme-name=.*/gtk-icon-theme-name=\"$icon_theme\"/g" ${GTK2FILE} + sed -i -e "s/gtk-cursor-theme-name=.*/gtk-cursor-theme-name=\"$cursor_theme\"/g" ${GTK2FILE} + + sed -i -e "s/gtk-font-name=.*/gtk-font-name=$gtk_font/g" ${GTK3FILE} + sed -i -e "s/gtk-theme-name=.*/gtk-theme-name=$gtk_theme/g" ${GTK3FILE} + sed -i -e "s/gtk-icon-theme-name=.*/gtk-icon-theme-name=$icon_theme/g" ${GTK3FILE} + sed -i -e "s/gtk-cursor-theme-name=.*/gtk-cursor-theme-name=$cursor_theme/g" ${GTK3FILE} + fi + + # inherit cursor theme + if [[ -f "$HOME"/.icons/default/index.theme ]]; then + sed -i -e "s/Inherits=.*/Inherits=$cursor_theme/g" "$HOME"/.icons/default/index.theme + fi +} + +# Dunst ------------------------------------- +apply_dunst() { + # modify dunst config + sed -i ${PATH_BSPWM}/dunstrc \ + -e "s/width = .*/width = $dunst_width/g" \ + -e "s/height = .*/height = $dunst_height/g" \ + -e "s/offset = .*/offset = $dunst_offset/g" \ + -e "s/origin = .*/origin = $dunst_origin/g" \ + -e "s/font = .*/font = $dunst_font/g" \ + -e "s/frame_width = .*/frame_width = $dunst_border/g" \ + -e "s/separator_height = .*/separator_height = $dunst_separator/g" \ + -e "s/line_height = .*/line_height = $dunst_separator/g" + + # modify colors + sed -i '/urgency_low/Q' ${PATH_BSPWM}/dunstrc + cat >> ${PATH_BSPWM}/dunstrc <<- _EOF_ + [urgency_low] + timeout = 2 + background = "${background}" + foreground = "${foreground}" + frame_color = "${altbackground}" + + [urgency_normal] + timeout = 5 + background = "${background}" + foreground = "${foreground}" + frame_color = "${altbackground}" + + [urgency_critical] + timeout = 0 + background = "${background}" + foreground = "${color1}" + frame_color = "${color1}" + _EOF_ +} + +# Compositor -------------------------------- +apply_compositor() { + picom_cfg="$PATH_BSPWM/picom.conf" + + # modify picom config + sed -i "$picom_cfg" \ + -e "s/backend = .*/backend = \"$picom_backend\";/g" \ + -e "s/corner-radius = .*/corner-radius = $picom_corner;/g" \ + -e "s/shadow-radius = .*/shadow-radius = $picom_shadow_r;/g" \ + -e "s/shadow-opacity = .*/shadow-opacity = $picom_shadow_o;/g" \ + -e "s/shadow-offset-x = .*/shadow-offset-x = $picom_shadow_x;/g" \ + -e "s/shadow-offset-y = .*/shadow-offset-y = $picom_shadow_y;/g" \ + -e "s/method = .*/method = \"$picom_blur_method\";/g" \ + -e "s/strength = .*/strength = $picom_blur_strength;/g" +} + +# BSPWM ------------------------------------- +apply_bspwm() { + # modify bspwmrc + sed -i ${PATH_BSPWM}/bspwmrc \ + -e "s/BSPWM_FBC=.*/BSPWM_FBC='$bspwm_fbc'/g" \ + -e "s/BSPWM_NBC=.*/BSPWM_NBC='$bspwm_nbc'/g" \ + -e "s/BSPWM_ABC=.*/BSPWM_ABC='$bspwm_abc'/g" \ + -e "s/BSPWM_PFC=.*/BSPWM_PFC='$bspwm_pfc'/g" \ + -e "s/BSPWM_BORDER=.*/BSPWM_BORDER='$bspwm_border'/g" \ + -e "s/BSPWM_GAP=.*/BSPWM_GAP='$bspwm_gap'/g" \ + -e "s/BSPWM_SRATIO=.*/BSPWM_SRATIO='$bspwm_sratio'/g" + + # reload bspwm + bspc wm -r +} + +# Create Theme File ------------------------- +create_file() { + theme_file="$PATH_BSPWM/themes/.current" + if [[ ! -f "$theme_file" ]]; then + touch ${theme_file} + fi + echo "$THEME" > ${theme_file} +} + +# Notify User ------------------------------- +notify_user() { + dunstify -u normal -h string:x-dunst-stack-tag:applytheme -i /usr/share/archcraft/icons/dunst/themes.png "Applying Style : $THEME" +} + +## Execute Script --------------------------- +notify_user +create_file +apply_wallpaper +apply_polybar +apply_rofi +apply_netmenu +apply_terminal +apply_geany +apply_appearance +apply_dunst +apply_compositor +apply_bspwm diff --git a/dot-config/bspwm/themes/forest/polybar/.module b/dot-config/bspwm/themes/forest/polybar/.module new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/dot-config/bspwm/themes/forest/polybar/.module diff --git a/dot-config/bspwm/themes/forest/polybar/bars.ini b/dot-config/bspwm/themes/forest/polybar/bars.ini new file mode 100644 index 00000000..cf0439a7 --- /dev/null +++ b/dot-config/bspwm/themes/forest/polybar/bars.ini @@ -0,0 +1,645 @@ +## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/volume-bar] +type = internal/pulseaudio + +; Sink to be used, if it exists (find using `pacmd list-sinks`, name field) +; If not, uses default sink +sink = alsa_output.pci-0000_12_00.3.analog-stereo + +; Use PA_VOLUME_UI_MAX (~153%) if true, or PA_VOLUME_NORM (100%) if false +; Default: true +use-ui-max = false + +; Interval for volume increase/decrease (in percent points) +; Default: 5 +interval = 5 + +; Available tags: +; <label-volume> (default) +; <ramp-volume> +; <bar-volume> +format-volume = <label-volume> <bar-volume> + +; Available tags: +; <label-muted> (default) +; <ramp-volume> +; <bar-volume> +format-muted = <label-muted> + +; Available tokens: +; %percentage% (default) +label-volume = 墳 +label-volume-foreground = ${color.FOREGROUND} + +; Available tokens: +; %percentage% (default +format-muted-prefix = 婢 +label-muted = " MUTE" +label-muted-foreground = ${color.RED} + +; Only applies if <ramp-volume> is used +ramp-volume-0 = 奄 +ramp-volume-1 = 奄 +ramp-volume-2 = 奄 +ramp-volume-3 = 奔 +ramp-volume-4 = 奔 +ramp-volume-5 = 奔 +ramp-volume-6 = 墳 +ramp-volume-7 = 墳 +ramp-volume-8 = 墳 +ramp-volume-9 = 墳 + +; Only applies if <bar-volume> is used +bar-volume-width = 10 +bar-volume-gradient = false + +bar-volume-indicator = +bar-volume-indicator-foreground = ${color.ACCENT} +bar-volume-indicator-font = 2 + +bar-volume-fill = +bar-volume-foreground-0 = ${color.GREEN} +bar-volume-foreground-1 = ${color.GREEN} +bar-volume-foreground-2 = ${color.YELLOW} +bar-volume-foreground-3 = ${color.RED} +bar-volume-fill-font = 2 + +bar-volume-empty = +bar-volume-empty-foreground = ${color.ALTBACKGROUND} +bar-volume-empty-font = 2 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/bna-bar] +type = custom/text + +content = " NA" +content-prefix = +content-prefix-foreground = ${color.FOREGROUND} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/backlight-bar] +type = internal/xbacklight + +; Use the following command to list available cards: +; $ ls -1 /sys/class/backlight/ +card = intel_backlight + +; Available tags: +; <label> (default) +; <ramp> +; <bar> +format = <label> <bar> + +; Available tokens: +; %percentage% (default) +label = +label-foreground = ${color.FOREGROUND} + +; Only applies if <ramp> is used + +ramp-0 = +ramp-1 = +ramp-2 = +ramp-3 = +ramp-4 = +ramp-5 = +ramp-6 = +ramp-7 = +ramp-8 = +ramp-9 = + +;; Other Icons +; + +; Only applies if <bar> is used +bar-width = 10 +bar-gradient = false + +bar-indicator = +bar-indicator-foreground = ${color.ACCENT} +bar-indicator-font = 2 + +bar-fill = +bar-foreground-0 = ${color.GREEN} +bar-foreground-1 = ${color.GREEN} +bar-foreground-2 = ${color.GREEN} +bar-foreground-3 = ${color.GREEN} +bar-foreground-4 = ${color.GREEN} +bar-foreground-5 = ${color.YELLOW} +bar-foreground-6 = ${color.YELLOW} +bar-foreground-7 = ${color.YELLOW} +bar-foreground-8 = ${color.RED} +bar-foreground-9 = ${color.RED} +bar-fill-font = 2 + +bar-empty = +bar-empty-foreground = ${color.ALTBACKGROUND} +bar-empty-font = 2 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/brightness-bar] +type = internal/backlight + +; Use the following command to list available cards: +; $ ls -1 /sys/class/backlight/ +card = ${system.sys_graphics_card} + +enable-scroll = true + +; Available tags: +; <label> (default) +; <ramp> +; <bar> +format = <label> <bar> + +; Available tokens: +; %percentage% (default) +label = +label-foreground = ${color.FOREGROUND} + +; Only applies if <ramp> is used + +ramp-0 = +ramp-1 = +ramp-2 = +ramp-3 = +ramp-4 = +ramp-5 = +ramp-6 = +ramp-7 = +ramp-8 = +ramp-9 = + +;; Other Icons +; + +; Only applies if <bar> is used +bar-width = 10 +bar-gradient = false + +bar-indicator = +bar-indicator-foreground = ${color.ACCENT} +bar-indicator-font = 2 + +bar-fill = +bar-foreground-0 = ${color.GREEN} +bar-foreground-1 = ${color.GREEN} +bar-foreground-2 = ${color.GREEN} +bar-foreground-3 = ${color.GREEN} +bar-foreground-4 = ${color.GREEN} +bar-foreground-5 = ${color.YELLOW} +bar-foreground-6 = ${color.YELLOW} +bar-foreground-7 = ${color.YELLOW} +bar-foreground-8 = ${color.RED} +bar-foreground-9 = ${color.RED} +bar-fill-font = 2 + +bar-empty = +bar-empty-foreground = ${color.ALTBACKGROUND} +bar-empty-font = 2 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/battery_bar] +type = internal/battery + +; This is useful in case the battery never reports 100% charge +full-at = 99 + +; Use the following command to list batteries and adapters: +; $ ls -1 /sys/class/power_supply/ +battery = ${system.battery} +adapter = ${system.adapter} + +; If an inotify event haven't been reported in this many +; seconds, manually poll for new values. +; +; Needed as a fallback for systems that don't report events +; on sysfs/procfs. +; +; Disable polling by setting the interval to 0. +; +; Default: 5 +poll-interval = 2 + +; see "man date" for details on how to format the time string +; NOTE: if you want to use syntax tags here you need to use %%{...} +; Default: %H:%M:%S +time-format = %H:%M + +; Available tags: +; <label-charging> (default) +; <bar-capacity> +; <ramp-capacity> +; <animation-charging> +format-charging = <bar-capacity> +format-charging-prefix = " " + +; Available tags: +; <label-discharging> (default) +; <bar-capacity> +; <ramp-capacity> +; <animation-discharging> +format-discharging = <bar-capacity> +format-discharging-prefix = " " + +; Available tags: +; <label-full> (default) +; <bar-capacity> +; <ramp-capacity> +format-full = <bar-capacity> <label-full> +format-full-prefix = " " + +; Available tokens: +; %percentage% (default) +; %time% +; %consumption% (shows current charge rate in watts) + +label-charging = %percentage%% + +; Available tokens: +; %percentage% (default) +; %time% +; %consumption% (shows current discharge rate in watts) +label-discharging = %percentage%% + +; Available tokens: +; %percentage% (default) +label-full = %percentage%% + +; Only applies if <bar-capacity> is used +bar-capacity-width = 10 +bar-capacity-gradient = false + +bar-capacity-indicator = +bar-capacity-indicator-foreground = ${color.ACCENT} +bar-capacity-indicator-font = 2 + +bar-capacity-fill = +bar-capacity-foreground-0 = ${color.RED} +bar-capacity-foreground-1 = ${color.RED} +bar-capacity-foreground-2 = ${color.RED} +bar-capacity-foreground-3 = ${color.YELLOW} +bar-capacity-foreground-4 = ${color.YELLOW} +bar-capacity-foreground-5 = ${color.YELLOW} +bar-capacity-foreground-6 = ${color.YELLOW} +bar-capacity-foreground-7 = ${color.GREEN} +bar-capacity-foreground-8 = ${color.GREEN} +bar-capacity-fill-font = 2 + +bar-capacity-empty = +bar-capacity-empty-foreground = ${color.ALTBACKGROUND} +bar-capacity-empty-font = 2 + +; Only applies if <ramp-capacity> is used +ramp-capacity-0 = +ramp-capacity-1 = +ramp-capacity-2 = +ramp-capacity-3 = +ramp-capacity-4 = +ramp-capacity-5 = +ramp-capacity-6 = +ramp-capacity-7 = +ramp-capacity-8 = +ramp-capacity-9 = + +; Only applies if <animation-charging> is used +animation-charging-0 = +animation-charging-1 = +animation-charging-2 = +animation-charging-3 = +animation-charging-4 = +animation-charging-5 = +animation-charging-6 = +animation-charging-7 = +animation-charging-8 = + +; Framerate in milliseconds +animation-charging-framerate = 750 + +; Only applies if <animation-discharging> is used +;;animation-discharging-0 = +;;animation-discharging-1 = +;;animation-discharging-2 = +;;animation-discharging-3 = +;;animation-discharging-4 = +;;animation-discharging-5 = +;;animation-discharging-6 = +;;animation-discharging-7 = +;;animation-discharging-8 = + +; Framerate in milliseconds +;animation-discharging-framerate = 500 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/cpu_bar] +type = internal/cpu + +; Seconds to sleep between updates +; Default: 1 +interval = 0.5 + +; Available tags: +; <label> (default) +; <bar-load> +; <ramp-load> +; <ramp-coreload> +;;format = <label> <ramp-coreload> +format = <bar-load> <label> +format-prefix = " " + +; Available tokens: +; %percentage% (default) - total cpu load averaged over all cores +; %percentage-sum% - Cumulative load on all cores +; %percentage-cores% - load percentage for each core +; %percentage-core[1-9]% - load percentage for specific core +label = "%percentage%%" + +; Only applies if <bar-load> is used +bar-load-width = 10 +bar-load-gradient = false + +bar-load-indicator = +bar-load-indicator-foreground = ${color.ACCENT} +bar-load-indicator-font = 2 + +bar-load-fill = +bar-load-foreground-0 = ${color.GREEN} +bar-load-foreground-1 = ${color.GREEN} +bar-load-foreground-2 = ${color.GREEN} +bar-load-foreground-3 = ${color.YELLOW} +bar-load-foreground-4 = ${color.YELLOW} +bar-load-foreground-5 = ${color.YELLOW} +bar-load-foreground-6 = ${color.RED} +bar-load-foreground-7 = ${color.RED} +bar-load-foreground-8 = ${color.RED} +bar-load-fill-font = 2 + +bar-load-empty = +bar-load-empty-foreground = ${color.ALTBACKGROUND} +bar-load-empty-font = 2 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/filesystem_bar] +type = internal/fs + +; Mountpoints to display +mount-0 = / +;;mount-1 = /home +;;mount-2 = /var + +; Seconds to sleep between updates +; Default: 30 +interval = 10 + +; Display fixed precision values +; Default: false +fixed-values = false + +; Spacing between entries +; Default: 2 +;;spacing = 4 + +; Available tags: +; <label-mounted> (default) +; <bar-free> +; <bar-used> +; <ramp-capacity> +format-mounted = <bar-used> <label-mounted> +format-mounted-prefix = " " + +; Available tags: +; <label-unmounted> (default) +;;format-unmounted = <label-unmounted> +;;format-unmounted-prefix = + +; Available tokens: +; %mountpoint% +; %type% +; %fsname% +; %percentage_free% +; %percentage_used% +; %total% +; %free% +; %used% +; Default: %mountpoint% %percentage_free%% +label-mounted = %used%/%total% + +; Available tokens: +; %mountpoint% +; Default: %mountpoint% is not mounted +;;label-unmounted = %mountpoint%: not mounted + +; Only applies if <bar-used> is used +bar-used-width = 10 +bar-used-gradient = false + +bar-used-indicator = +bar-used-indicator-foreground = ${color.ACCENT} +bar-used-indicator-font = 2 + +bar-used-fill = +bar-used-foreground-0 = ${color.GREEN} +bar-used-foreground-1 = ${color.GREEN} +bar-used-foreground-2 = ${color.GREEN} +bar-used-foreground-3 = ${color.GREEN} +bar-used-foreground-4 = ${color.GREEN} +bar-used-foreground-5 = ${color.YELLOW} +bar-used-foreground-6 = ${color.YELLOW} +bar-used-foreground-7 = ${color.RED} +bar-used-foreground-8 = ${color.RED} +bar-used-fill-font = 2 + +bar-used-empty = +bar-used-empty-foreground = ${color.ALTBACKGROUND} +bar-used-empty-font = 2 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/memory_bar] +type = internal/memory + +; Seconds to sleep between updates +; Default: 1 +interval = 2 + +; Available tags: +; <label> (default) +; <bar-used> +; <bar-free> +; <ramp-used> +; <ramp-free> +; <bar-swap-used> +; <bar-swap-free> +; <ramp-swap-used> +; <ramp-swap-free> +format = <bar-used> <label> +format-prefix = " " + +; Available tokens: +; %percentage_used% (default) +; %percentage_free% +; %gb_used% +; %gb_free% +; %gb_total% +; %mb_used% +; %mb_free% +; %mb_total% +; %percentage_swap_used% +; %percentage_swap_free% +; %mb_swap_total% +; %mb_swap_free% +; %mb_swap_used% +; %gb_swap_total% +; %gb_swap_free% +; %gb_swap_used% + +label = "%mb_used%" + +; Only applies if <bar-used> is used +bar-used-width = 10 +bar-used-gradient = false + +bar-used-indicator = +bar-used-indicator-foreground = ${color.ACCENT} +bar-used-indicator-font = 2 + +bar-used-fill = +bar-used-foreground-0 = ${color.GREEN} +bar-used-foreground-1 = ${color.GREEN} +bar-used-foreground-2 = ${color.GREEN} +bar-used-foreground-3 = ${color.YELLOW} +bar-used-foreground-4 = ${color.YELLOW} +bar-used-foreground-5 = ${color.YELLOW} +bar-used-foreground-6 = ${color.RED} +bar-used-foreground-7 = ${color.RED} +bar-used-foreground-8 = ${color.RED} +bar-used-fill-font = 2 + +bar-used-empty = +bar-used-empty-foreground = ${color.ALTBACKGROUND} +bar-used-empty-font = 2 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/mpd_bar] +type = internal/mpd + +; Host where mpd is running (either ip or domain name) +; Can also be the full path to a unix socket where mpd is running. +;;host = 127.0.0.1 +;;port = 6600 +;;password = mysecretpassword + +; Seconds to sleep between progressbar/song timer sync +; Default: 1 +interval = 1 + +; Available tags: +; <label-song> (default) +; <label-time> +; <bar-progress> +; <toggle> - gets replaced with <icon-(pause|play)> +; <toggle-stop> - gets replaced with <icon-(stop|play)> +; <icon-random> +; <icon-repeat> +; <icon-repeatone> (deprecated) +; <icon-single> - Toggle playing only a single song. Replaces <icon-repeatone> +; <icon-consume> +; <icon-prev> +; <icon-stop> +; <icon-play> +; <icon-pause> +; <icon-next> +; <icon-seekb> +; <icon-seekf> +format-online = <label-song> <bar-progress> <label-time> + +;format-playing = ${self.format-online} +;format-paused = ${self.format-online} +;format-stopped = ${self.format-online} + +; Available tags: +; <label-offline> +;format-offline = <label-offline> + +; Available tokens: +; %artist% +; %album-artist% +; %album% +; %date% +; %title% +; Default: %artist% - %title% +label-song = "%title%" +label-song-maxlen = 25 +label-song-ellipsis = true + +; Available tokens: +; %elapsed% +; %total% +; Default: %elapsed% / %total% +;;abel-time = %elapsed% / %total% + +; Available tokens: +; None +label-offline = "mpd is offline" + +; Only applies if <icon-X> is used +icon-play = +icon-pause = +icon-stop = +icon-prev = +icon-next = +icon-seekb = ⏪ +icon-seekf = ⏩ +icon-random = 🔀 +icon-repeat = 🔁 +icon-repeatone = 🔂 +icon-single = 🔂 +icon-consume = ✀ + +; Used to display the state of random/repeat/repeatone/single +; Only applies if <icon-[random|repeat|repeatone|single]> is used +;;toggle-on-foreground = #ff +;;toggle-off-foreground = #55 + +; Only applies if <bar-progress> is used +bar-progress-width = 10 +bar-progress-gradient = true + +bar-progress-indicator = +bar-progress-indicator-foreground = ${color.ACCENT} +bar-progress-indicator-font = 2 + +bar-progress-fill = +bar-progress-foreground-0 = ${color.GREEN} +bar-progress-foreground-1 = ${color.GREEN} +bar-progress-foreground-2 = ${color.GREEN} +bar-progress-foreground-3 = ${color.YELLOW} +bar-progress-foreground-4 = ${color.YELLOW} +bar-progress-foreground-5 = ${color.YELLOW} +bar-progress-foreground-6 = ${color.RED} +bar-progress-foreground-7 = ${color.RED} +bar-progress-foreground-8 = ${color.RED} +bar-progress-fill-font = 2 + +bar-progress-empty = +bar-progress-empty-foreground = ${color.ALTBACKGROUND} +bar-progress-empty-font = 2 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ +;; __________ ______ +;; / ____/ __ \/ ____/ +;; / __/ / / / / /_ +;; / /___/ /_/ / __/ +;; /_____/\____/_/ +;; +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ diff --git a/dot-config/bspwm/themes/forest/polybar/colors.ini b/dot-config/bspwm/themes/forest/polybar/colors.ini new file mode 100644 index 00000000..c5c2fbdd --- /dev/null +++ b/dot-config/bspwm/themes/forest/polybar/colors.ini @@ -0,0 +1,24 @@ +[color] + +BACKGROUND = #222d32 +FOREGROUND = #c4c7c5 +ALTBACKGROUND = #2c3b41 +ALTFOREGROUND = #767c78 +ACCENT = #00BCD4 + +BLACK = #263640 +RED = #ec7875 +GREEN = #61c766 +YELLOW = #fdd835 +BLUE = #42a5f5 +MAGENTA = #ba68c8 +CYAN = #4dd0e1 +WHITE = #bfbaac +ALTBLACK = #4a697d +ALTRED = #fb8784 +ALTGREEN = #70d675 +ALTYELLOW = #ffe744 +ALTBLUE = #51b4ff +ALTMAGENTA = #c979d7 +ALTCYAN = #5cdff0 +ALTWHITE = #fdf6e3 diff --git a/dot-config/bspwm/themes/forest/polybar/config.ini b/dot-config/bspwm/themes/forest/polybar/config.ini new file mode 100644 index 00000000..7d58dd31 --- /dev/null +++ b/dot-config/bspwm/themes/forest/polybar/config.ini @@ -0,0 +1,319 @@ +## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +;; Global WM Settings + +[global/wm] +; Adjust the _NET_WM_STRUT_PARTIAL top value +; Used for top aligned bars +margin-bottom = 0 + +; Adjust the _NET_WM_STRUT_PARTIAL bottom value +; Used for bottom aligned bars +margin-top = 0 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +;; File Inclusion +; include an external file, like module file, etc. + +include-file = ../../system.ini +include-file = ./colors.ini +include-file = ./modules.ini +include-file = ./bars.ini + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +;; Bar Settings + +[bar/main] +; Use either of the following command to list available outputs: +; If unspecified, the application will pick the first one it finds. +; $ polybar -m | cut -d ':' -f 1 +; $ xrandr -q | grep " connected" | cut -d ' ' -f1 +monitor = ${env:MONITOR:} + +; Use the specified monitor as a fallback if the main one is not found. +monitor-fallback = + +; Require the monitor to be in connected state +; XRandR sometimes reports my monitor as being disconnected (when in use) +monitor-strict = false + +; Tell the Window Manager not to configure the window. +; Use this to detach the bar if your WM is locking its size/position. +override-redirect = false + +; Put the bar at the bottom of the screen +bottom = false + +; Prefer fixed center position for the `modules-center` block +; When false, the center position will be based on the size of the other blocks. +fixed-center = true + +; Dimension defined as pixel value (e.g. 35) or percentage (e.g. 50%), +; the percentage can optionally be extended with a pixel offset like so: +; 50%:-10, this will result in a width or height of 50% minus 10 pixels +width = 100% +height = 30 + +; Offset defined as pixel value (e.g. 35) or percentage (e.g. 50%) +; the percentage can optionally be extended with a pixel offset like so: +; 50%:-10, this will result in an offset in the x or y direction +; of 50% minus 10 pixels +offset-x = 0 +offset-y = 0 + +; Background ARGB color (e.g. #f00, #ff992a, #ddff1023) +background = ${color.BACKGROUND} + +; Foreground ARGB color (e.g. #f00, #ff992a, #ddff1023) +foreground = ${color.FOREGROUND} + +; Background gradient (vertical steps) +; background-[0-9]+ = #aarrggbb +;;background-0 = + +; Value used for drawing rounded corners +; Note: This shouldn't be used together with border-size because the border +; doesn't get rounded +; Individual top/bottom values can be defined using: +; radius-{top,bottom} +radius-top = 0.0 +radius-bottom = 0.0 + +; Under-/overline pixel size and argb color +; Individual values can be defined using: +; {overline,underline}-size +; {overline,underline}-color +line-size = 0 +line-color = ${color.ACCENT} + +; Values applied to all borders +; Individual side values can be defined using: +; border-{left,top,right,bottom}-size +; border-{left,top,right,bottom}-color +; The top and bottom borders are added to the bar height, so the effective +; window height is: +; height + border-top-size + border-bottom-size +; Meanwhile the effective window width is defined entirely by the width key and +; the border is placed withing this area. So you effectively only have the +; following horizontal space on the bar: +; width - border-right-size - border-left-size +border-bottom-size = 0 +border-color = ${color.ACCENT} + +; Number of spaces to add at the beginning/end of the bar +; Individual side values can be defined using: +; padding-{left,right} +padding = 2 + +; Number of spaces to add before/after each module +; Individual side values can be defined using: +; module-margin-{left,right} +module-margin-left = 1 +module-margin-right = 1 + +; Fonts are defined using <font-name>;<vertical-offset> +; Font names are specified using a fontconfig pattern. +; font-0 = "Iosevka Nerd Font:size=10;3" +; font-1 = MaterialIcons:size=10 +; font-2 = Termsynu:size=8;-1 +; font-3 = FontAwesome:size=10 +; See the Fonts wiki page for more details + +font-0 = "Iosevka Nerd Font:size=10;3" +font-1 = "waffle:size=12;2" + +; Modules are added to one of the available blocks +; modules-left = cpu ram +; modules-center = xwindow xbrightness +; modules-right = ipc clock + +;; Available modules +;; +;alsa brightness battery +;bspwm cpu date +;filesystem github i3 +;subscriber demo memory +;menu-apps mpd wired-network +;wireless-network network pulseaudio +;name_you_want temperature my-text-label +;brightness keyboard title workspaces +;; +;; User modules +;checknetwork updates window_switch launcher powermenu sysmenu menu +;; +;; Bars +;cpu_bar memory_bar filesystem_bar mpd_bar +;volume brightness battery_bar + +modules-left = mod bspwm sep2 cpu used-memory filesystem +modules-center = mpd sep date +modules-right = battery network sep volume-bar bna-bar + +; The separator will be inserted between the output of each module +separator = + +; This value is used to add extra spacing between elements +; @deprecated: This parameter will be removed in an upcoming version +spacing = 0 + +; Opacity value between 0.0 and 1.0 used on fade in/out +dim-value = 1.0 + +; Value to be used to set the WM_NAME atom +; If the value is empty or undefined, the atom value +; will be created from the following template: polybar-[BAR]_[MONITOR] +; NOTE: The placeholders are not available for custom values +wm-name = bspwm + +; Locale used to localize various module data (e.g. date) +; Expects a valid libc locale, for example: sv_SE.UTF-8 +locale = + +; Position of the system tray window +; If empty or undefined, tray support will be disabled +; NOTE: A center aligned tray will cover center aligned modules +; +; Available positions: +; left +; center +; right +; none +tray-position = right + +; If true, the bar will not shift its +; contents when the tray changes +tray-detached = false + +; Tray icon max size +tray-maxsize = 16 + +; DEPRECATED! Since 3.3.0 the tray always uses pseudo-transparency +; Enable pseudo transparency +; Will automatically be enabled if a fully transparent +; background color is defined using `tray-background` +; tray-transparent = false + +; Background color for the tray container +; ARGB color (e.g. #f00, #ff992a, #ddff1023) +; By default the tray container will use the bar +; background color. +tray-background = ${color.ALTBACKGROUND} + +; Tray offset defined as pixel value (e.g. 35) or percentage (e.g. 50%) +tray-offset-x = 0 +tray-offset-y = 0 + +; Pad the sides of each tray icon +tray-padding = 2 + +; Scale factor for tray clients +tray-scale = 1.0 + +; Restack the bar window and put it above the +; selected window manager's root +; +; Fixes the issue where the bar is being drawn +; on top of fullscreen window's +; +; Currently supported WM's: +; bspwm +; i3 (requires: `override-redirect = true`) +wm-restack = bspwm + +; Set a DPI values used when rendering text +; This only affects scalable fonts +; dpi = + +; Enable support for inter-process messaging +; See the Messaging wiki page for more details. +enable-ipc = true + +; Fallback click handlers that will be called if +; there's no matching module handler found. +click-left = +click-middle = +click-right = +scroll-up = bspc desktop -f prev.local +scroll-down = bspc desktop -f next.local +double-click-left = +double-click-middle = +double-click-right = + +; Requires polybar to be built with xcursor support (xcb-util-cursor) +; Possible values are: +; - default : The default pointer as before, can also be an empty string (default) +; - pointer : Typically in the form of a hand +; - ns-resize : Up and down arrows, can be used to indicate scrolling +cursor-click = +cursor-scroll = + +;; WM Workspace Specific + +; bspwm +;;scroll-up = bspwm-desknext +;;scroll-down = bspwm-deskprev +;;scroll-up = bspc desktop -f prev.local +;;scroll-down = bspc desktop -f next.local + +;i3 +;;scroll-up = i3wm-wsnext +;;scroll-down = i3wm-wsprev +;;scroll-up = i3-msg workspace next_on_output +;;scroll-down = i3-msg workspace prev_on_output + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +;; Application Settings + +[settings] +; The throttle settings lets the eventloop swallow up til X events +; if they happen within Y millisecond after first event was received. +; This is done to prevent flood of update event. +; +; For example if 5 modules emit an update event at the same time, we really +; just care about the last one. But if we wait too long for events to swallow +; the bar would appear sluggish so we continue if timeout +; expires or limit is reached. +throttle-output = 5 +throttle-output-for = 10 + +; Time in milliseconds that the input handler will wait between processing events +;throttle-input-for = 30 + +; Reload upon receiving XCB_RANDR_SCREEN_CHANGE_NOTIFY events +screenchange-reload = false + +; Compositing operators +; @see: https://www.cairographics.org/manual/cairo-cairo-t.html#cairo-operator-t +compositing-background = source +compositing-foreground = over +compositing-overline = over +compositing-underline = over +compositing-border = over + +; Define fallback values used by all module formats +;format-foreground = +;format-background = +;format-underline = +;format-overline = +;format-spacing = +;format-padding = +;format-margin = +;format-offset = + +; Enables pseudo-transparency for the bar +; If set to true the bar can be transparent without a compositor. +pseudo-transparency = false + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ +;; __________ ______ +;; / ____/ __ \/ ____/ +;; / __/ / / / / /_ +;; / /___/ /_/ / __/ +;; /_____/\____/_/ +;; +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ diff --git a/dot-config/bspwm/themes/forest/polybar/launch.sh b/dot-config/bspwm/themes/forest/polybar/launch.sh new file mode 100755 index 00000000..ae47b54c --- /dev/null +++ b/dot-config/bspwm/themes/forest/polybar/launch.sh @@ -0,0 +1,42 @@ +#!/usr/bin/env bash + +## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" +CARD="$(light -L | grep 'backlight' | head -n1 | cut -d'/' -f3)" +INTERFACE="$(ip link | awk '/state UP/ {print $2}' | tr -d :)" +RFILE="$DIR/.module" + +# Fix backlight and network modules +fix_modules() { + if [[ -z "$CARD" ]]; then + sed -i -e 's/backlight/bna/g' "$DIR"/config.ini + elif [[ "$CARD" != *"intel_"* ]]; then + sed -i -e 's/backlight/brightness/g' "$DIR"/config.ini + fi + + if [[ "$INTERFACE" == e* ]]; then + sed -i -e 's/network/ethernet/g' "$DIR"/config.ini + fi +} + +# Launch the bar +launch_bar() { + # Terminate already running bar instances + killall -q polybar + + # Wait until the processes have been shut down + while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done + + # Launch the bar + for mon in $(polybar --list-monitors | cut -d":" -f1); do + MONITOR=$mon polybar -q main -c "$DIR"/config.ini & + done +} + +# Execute functions +if [[ ! -f "$RFILE" ]]; then + fix_modules + touch "$RFILE" +fi +launch_bar diff --git a/dot-config/bspwm/themes/forest/polybar/modules.ini b/dot-config/bspwm/themes/forest/polybar/modules.ini new file mode 100644 index 00000000..28d61e05 --- /dev/null +++ b/dot-config/bspwm/themes/forest/polybar/modules.ini @@ -0,0 +1,1095 @@ +## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/bspwm] +type = internal/bspwm + +pin-workspaces = true +inline-mode = false + +enable-click = true +enable-scroll = true +reverse-scroll = true + +fuzzy-match = true + +; ws-icon-[0-9]+ = label;icon +; Note that the label needs to correspond with the bspwm workspace name +ws-icon-0 = 1; +ws-icon-1 = 2; +ws-icon-2 = 3; +ws-icon-3 = 4; +ws-icon-4 = 5; +ws-icon-5 = 6; +ws-icon-6 = 7; +ws-icon-7 = 8; +ws-icon-default = + +format = <label-state> +format-font = 1 + +label-monitor = %name% + +; If any values for label-dimmed-N are defined, the workspace/mode +; colors will get overridden with those values if the monitor is out of focus +; To only override workspaces in a specific state, use: +; label-dimmed-focused +; label-dimmed-occupied +; label-dimmed-urgent +; label-dimmed-empty +;label-dimmed-foreground = ${color.FOREGROUND} +;label-dimmed-underline = ${color.YELLOW} +;label-dimmed-focused-background = ${color.BACKGROUND} + +label-focused = %name% +label-focused-foreground = ${color.RED} +label-focused-underline = ${color.RED} +label-focused-padding = 1 + +label-occupied = %name% +label-occupied-foreground = ${color.ACCENT} +;label-occupied-underline = ${color.ACCENT} +label-occupied-padding = 1 + +label-urgent = %name% +label-urgent-foreground = ${color.GREEN} +label-urgent-underline = ${color.GREEN} +label-urgent-padding = 1 + +label-empty = %name% +label-empty-foreground = ${color.FOREGROUND} +label-empty-padding = 1 + +; Separator in between workspaces +label-separator = "" +label-separator-padding = 0 +label-separator-foreground = ${color.ALTBACKGROUND} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/mod] +type = internal/bspwm + +format = [<label-mode>] +format-foreground = ${color.YELLOW} +format-padding = 0 + +label-monocle = "Monocle" +label-tiled = "Tiled" + +label-floating = ", Float" +label-pseudotiled = ", Pseudo" +label-fullscreen = ", Full" + +label-locked = " | Locked" +label-sticky = " | Sticky" +label-private = " | Private" + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/alsa] +type = internal/alsa + +; Soundcard to be used +; Usually in the format hw:# where # is the card number +; You can find the different card numbers in `/proc/asound/cards` +;;master-soundcard = default +;;speaker-soundcard = default +;;headphone-soundcard = default + +; Name of the master, speaker and headphone mixers +; Use the following command to list available mixer controls: +; $ amixer scontrols | sed -nr "s/.*'([[:alnum:]]+)'.*/\1/p" +; If master, speaker or headphone-soundcard isn't the default, +; use `amixer -c # scontrols` instead where # is the number +; of the master, speaker or headphone soundcard respectively +; +; Default: Master +;;master-mixer = Master + +; Optionally define speaker and headphone mixers +; Default: none +;;speaker-mixer = Speaker +; Default: none +;;headphone-mixer = Headphone + +; NOTE: This is required if headphone_mixer is defined +; Use the following command to list available device controls +; $ amixer controls | sed -r "/CARD/\!d; s/.*=([0-9]+).*name='([^']+)'.*/printf '%3.0f: %s\n' '\1' '\2'/e" | sort +; You may also need to use `amixer -c # controls` as above for the mixer names +; Default: none +;;headphone-id = 9 + +; Use volume mapping (similar to amixer -M and alsamixer), where the increase in volume is linear to the ear +; Default: false +;;mapped = true + +; Interval for volume increase/decrease (in percent points) +; Default: 5 +;;interval = 5 + +; Available tags: +; <label-volume> (default) +; <ramp-volume> +; <bar-volume> +format-volume = <ramp-volume> <label-volume> + +; Available tags: +; <label-muted> (default) +; <ramp-volume> +; <bar-volume> +;format-muted = <label-muted> + +; Available tokens: +; %percentage% (default) +label-volume = %percentage%% + +; Available tokens: +; %percentage% (default +format-muted-prefix = 婢 +format-muted-prefix-foreground = ${color.RED} +label-muted = " Mute" +label-muted-foreground = ${color.ALTFOREGROUND} + +; Only applies if <ramp-volume> is used +ramp-volume-0 = 奄 +ramp-volume-1 = 奄 +ramp-volume-2 = 奄 +ramp-volume-3 = 奔 +ramp-volume-4 = 奔 +ramp-volume-5 = 奔 +ramp-volume-6 = 墳 +ramp-volume-7 = 墳 +ramp-volume-8 = 墳 +ramp-volume-9 = 墳 +ramp-volume-foreground = ${color.RED} + +; If defined, it will replace <ramp-volume> when +; headphones are plugged in to `headphone_control_numid` +; If undefined, <ramp-volume> will be used for both +; Only applies if <ramp-volume> is used +ramp-headphones-0 = +ramp-headphones-1 = + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/bna] +type = custom/text + +content = " NA" +content-prefix = +content-prefix-foreground = ${color.RED} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/backlight] +type = internal/xbacklight + +; Use the following command to list available cards: +; $ ls -1 /sys/class/backlight/ +card = intel_backlight + +; Available tags: +; <label> (default) +; <ramp> +; <bar> +format = <ramp> <label> + +; Available tokens: +; %percentage% (default) +label = %percentage%% + +; Only applies if <ramp> is used + +ramp-0 = +ramp-1 = +ramp-2 = +ramp-3 = +ramp-4 = +ramp-5 = +ramp-6 = +ramp-7 = +ramp-8 = +ramp-9 = +ramp-foreground = ${color.CYAN} + +;; Other Icons +; + +; Only applies if <bar> is used +;;bar-width = 10 +;;bar-indicator = | +;;bar-fill = ─ +;;bar-empty = ─ + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/brightness] +type = internal/backlight + +; Use the following command to list available cards: +; $ ls -1 /sys/class/backlight/ +card = ${system.sys_graphics_card} + +enable-scroll = true + +; Available tags: +; <label> (default) +; <ramp> +; <bar> +format = <ramp> <label> + +; Available tokens: +; %percentage% (default) +label = %percentage%% + +; Only applies if <ramp> is used + +ramp-0 = +ramp-1 = +ramp-2 = +ramp-3 = +ramp-4 = +ramp-5 = +ramp-6 = +ramp-7 = +ramp-8 = +ramp-9 = +ramp-foreground = ${color.CYAN} + +;; Other Icons +; + +; Only applies if <bar> is used +;;bar-width = 10 +;;bar-indicator = | +;;bar-fill = ─ +;;bar-empty = ─ + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/battery] +type = internal/battery + +; This is useful in case the battery never reports 100% charge +full-at = 99 + +; Use the following command to list batteries and adapters: +; $ ls -1 /sys/class/power_supply/ +battery = ${system.sys_battery} +adapter = ${system.sys_adapter} + +; If an inotify event haven't been reported in this many +; seconds, manually poll for new values. +; +; Needed as a fallback for systems that don't report events +; on sysfs/procfs. +; +; Disable polling by setting the interval to 0. +; +; Default: 5 +poll-interval = 2 + +; see "man date" for details on how to format the time string +; NOTE: if you want to use syntax tags here you need to use %%{...} +; Default: %H:%M:%S +time-format = %H:%M + +; Available tags: +; <label-charging> (default) +; <bar-capacity> +; <ramp-capacity> +; <animation-charging> +format-charging = <animation-charging> <label-charging> +format-charging-prefix = +; Available tags: +; <label-discharging> (default) +; <bar-capacity> +; <ramp-capacity> +; <animation-discharging> +format-discharging = <ramp-capacity> <label-discharging> + +; Available tags: +; <label-full> (default) +; <bar-capacity> +; <ramp-capacity> +format-full = <label-full> +format-full-prefix = " " +format-full-prefix-foreground = ${color.RED} +; Available tokens: +; %percentage% (default) +; %time% +; %consumption% (shows current charge rate in watts) + +label-charging = %percentage%% + +; Available tokens: +; %percentage% (default) +; %time% +; %consumption% (shows current discharge rate in watts) +label-discharging = %percentage%% + +; Available tokens: +; %percentage% (default) +label-full = %percentage%% + +; Only applies if <ramp-capacity> is used +ramp-capacity-0 = +ramp-capacity-1 = +ramp-capacity-2 = +ramp-capacity-3 = +ramp-capacity-4 = +ramp-capacity-foreground = ${color.YELLOW} + +; Only applies if <bar-capacity> is used +;bar-capacity-width = 10 + +; Only applies if <animation-charging> is used +animation-charging-0 = +animation-charging-1 = +animation-charging-2 = +animation-charging-3 = +animation-charging-4 = +animation-charging-foreground = ${color.GREEN} + +; Framerate in milliseconds +animation-charging-framerate = 750 + +; Only applies if <animation-discharging> is used +;;animation-discharging-0 = +;;animation-discharging-1 = +;;animation-discharging-2 = +;;animation-discharging-3 = +;;animation-discharging-4 = +;;animation-discharging-5 = +;;animation-discharging-6 = +;;animation-discharging-7 = +;;animation-discharging-8 = + +; Framerate in milliseconds +;animation-discharging-framerate = 500 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/cpu] +type = internal/cpu + +; Seconds to sleep between updates +; Default: 1 +interval = 0.5 + +; Available tags: +; <label> (default) +; <bar-load> +; <ramp-load> +; <ramp-coreload> +;;format = <label> <ramp-coreload> +format = <label> +format-prefix = +format-prefix-foreground = ${color.YELLOW} + +; Available tokens: +; %percentage% (default) - total cpu load averaged over all cores +; %percentage-sum% - Cumulative load on all cores +; %percentage-cores% - load percentage for each core +; %percentage-core[1-9]% - load percentage for specific core +label = " %percentage%%" + +; Spacing between individual per-core ramps +;;ramp-coreload-spacing = 1 +;;ramp-coreload-0 = +;;ramp-coreload-1 = +;;ramp-coreload-2 = +;;ramp-coreload-3 = +;;ramp-coreload-4 = + +ramp-load-0 = +ramp-load-1 = +ramp-load-2 = +ramp-load-3 = +ramp-load-4 = + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/date] +type = internal/date + +; Seconds to sleep between updates +interval = 1.0 + +; See "http://en.cppreference.com/w/cpp/io/manip/put_time" for details on how to format the date string +; NOTE: if you want to use syntax tags here you need to use %%{...} +date = %A, %d %B + +; Optional time format +time = at %I:%M %p + +; if `date-alt` or `time-alt` is defined, clicking +; the module will toggle between formats +date-alt = It's %A, %d %B %Y +time-alt = at %k:%M:%S + +; Available tags: +; <label> (default) +format = <label> +format-prefix = " " +format-prefix-foreground = ${color.RED} + +; Available tokens: +; %date% +; %time% +; Default: %date% +label = %date% %time% + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/filesystem] +type = internal/fs + +; Mountpoints to display +mount-0 = / +;;mount-1 = /home +;;mount-2 = /var + +; Seconds to sleep between updates +; Default: 30 +interval = 10 + +; Display fixed precision values +; Default: false +fixed-values = true + +; Spacing between entries +; Default: 2 +;;spacing = 4 + +; Available tags: +; <label-mounted> (default) +; <bar-free> +; <bar-used> +; <ramp-capacity> +format-mounted = <label-mounted> +format-mounted-prefix = +format-mounted-prefix-foreground = ${color.MAGENTA} + +; Available tags: +; <label-unmounted> (default) +format-unmounted = <label-unmounted> +format-unmounted-prefix = +format-unmounted-prefix-foreground = ${color.MAGENTA} + +; Available tokens: +; %mountpoint% +; %type% +; %fsname% +; %percentage_free% +; %percentage_used% +; %total% +; %free% +; %used% +; Default: %mountpoint% %percentage_free%% +label-mounted = " %free%" + +; Available tokens: +; %mountpoint% +; Default: %mountpoint% is not mounted +label-unmounted = %mountpoint%: not mounted + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/memory] +type = internal/memory + +; Seconds to sleep between updates +; Default: 1 +interval = 3 + +; Available tags: +; <label> (default) +; <bar-used> +; <bar-free> +; <ramp-used> +; <ramp-free> +; <bar-swap-used> +; <bar-swap-free> +; <ramp-swap-used> +; <ramp-swap-free> +format = <label> +format-prefix = +format-prefix-foreground = ${color.BLUE} + +; Available tokens: +; %percentage_used% (default) +; %percentage_free% +; %gb_used% +; %gb_free% +; %gb_total% +; %mb_used% +; %mb_free% +; %mb_total% +; %percentage_swap_used% +; %percentage_swap_free% +; %mb_swap_total% +; %mb_swap_free% +; %mb_swap_used% +; %gb_swap_total% +; %gb_swap_free% +; %gb_swap_used% + +label = " %mb_used%" + +; Only applies if <bar-used> is used +;;bar-used-indicator = +;;bar-used-width = 50 +;;bar-used-foreground-0 = #55aa55 +;;bar-used-foreground-1 = #557755 +;;bar-used-foreground-2 = #f5a70a +;;bar-used-foreground-3 = #ff5555 +;;bar-used-fill = ▐ +;;bar-used-empty = ▐ +;;bar-used-empty-foreground = #444444 + +; Only applies if <ramp-used> is used +;;ramp-used-0 = +;;ramp-used-1 = +;;ramp-used-2 = +;;ramp-used-3 = +;;ramp-used-4 = + +; Only applies if <ramp-free> is used +;;ramp-free-0 = +;;ramp-free-1 = +;;ramp-free-2 = +;;ramp-free-3 = +;;ramp-free-4 = + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/used-memory] +type = custom/script + +exec = free -m | grep 'Mem:' | tr -s ' ' | cut -d ' ' -f3 + +tail = true +interval = 5 + +format = <label> +format-prefix = +format-prefix-foreground = ${color.BLUE} + +label = " %output% MB" + +click-left = alacritty --class 'alacritty-float,alacritty-float' --config-file ~/.config/bspwm/alacritty/alacritty.yml -e "top" & + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/mpd] +type = internal/mpd + +; Host where mpd is running (either ip or domain name) +; Can also be the full path to a unix socket where mpd is running. +;;host = 127.0.0.1 +;;port = 6600 +;;password = mysecretpassword + +; Seconds to sleep between progressbar/song timer sync +; Default: 1 +interval = 2 + +; Available tags: +; <label-song> (default) +; <label-time> +; <bar-progress> +; <toggle> - gets replaced with <icon-(pause|play)> +; <toggle-stop> - gets replaced with <icon-(stop|play)> +; <icon-random> +; <icon-repeat> +; <icon-repeatone> (deprecated) +; <icon-single> - Toggle playing only a single song. Replaces <icon-repeatone> +; <icon-consume> +; <icon-prev> +; <icon-stop> +; <icon-play> +; <icon-pause> +; <icon-next> +; <icon-seekb> +; <icon-seekf> +format-online = <label-song> <icon-prev> <toggle> <icon-next> +format-online-prefix = " " +format-online-prefix-foreground = ${color.GREEN} + +;format-playing = ${self.format-online} +;format-paused = ${self.format-online} +;format-stopped = ${self.format-online} + +; Available tags: +; <label-offline> +;format-offline = <label-offline> + +; Available tokens: +; %artist% +; %album-artist% +; %album% +; %date% +; %title% +; Default: %artist% - %title% +label-song = "%title%" +label-song-maxlen = 25 +label-song-ellipsis = true + +; Available tokens: +; %elapsed% +; %total% +; Default: %elapsed% / %total% +;;abel-time = %elapsed% / %total% + +; Available tokens: +; None +label-offline = "MPD is offline" + +; Only applies if <icon-X> is used +icon-play-foreground = ${color.CYAN} +icon-play = 契 +icon-pause-foreground = ${color.CYAN} +icon-pause = +icon-stop-foreground = ${color.CYAN} +icon-stop = 栗 +icon-prev-foreground = ${color.CYAN} +icon-prev = 寧 +icon-next-foreground = ${color.CYAN} +icon-next = 嶺 + +icon-seekb = ⏪ +icon-seekf = ⏩ +icon-random = 🔀 +icon-repeat = 🔁 +icon-repeatone = 🔂 +icon-single = 🔂 +icon-consume = ✀ + +; Used to display the state of random/repeat/repeatone/single +; Only applies if <icon-[random|repeat|repeatone|single]> is used +;;toggle-on-foreground = #ff +;;toggle-off-foreground = #55 + +; Only applies if <bar-progress> is used +;;bar-progress-width = 45 +;;bar-progress-indicator = | +;;bar-progress-fill = ─ +;;bar-progress-empty = ─ + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +; If you use both a wired and a wireless network, Add both modules in config.ini +[module/ethernet] +type = internal/network +interface = ${system.sys_network_interface} + +interval = 1.0 +accumulate-stats = true +unknown-as-up = true + +format-connected = <label-connected> +format-connected-prefix = "歷 " +format-connected-prefix-foreground = ${color.MAGENTA} + +format-disconnected = <label-disconnected> +format-disconnected-prefix = "轢 " +format-disconnected-prefix-foreground = ${color.RED} + +label-connected = "%{A1:nmd &:}%downspeed% | %upspeed%%{A}" +label-disconnected = "%{A1:nmd &:}Offline%{A}" + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +; Normal Module +[module/network] +type = internal/network +interface = ${system.sys_network_interface} + +; Seconds to sleep between updates +; Default: 1 +interval = 1.0 + +; Test connectivity every Nth update +; A value of 0 disables the feature +; NOTE: Experimental (needs more testing) +; Default: 0 +;ping-interval = 3 + +; @deprecated: Define min width using token specifiers (%downspeed:min% and %upspeed:min%) +; Minimum output width of upload/download rate +; Default: 3 +;;udspeed-minwidth = 5 + +; Accumulate values from all interfaces +; when querying for up/downspeed rate +; Default: false +accumulate-stats = true + +; Consider an `UNKNOWN` interface state as up. +; Some devices have an unknown state, even when they're running +; Default: false +unknown-as-up = true + +; Available tags: +; <label-connected> (default) +; <ramp-signal> +format-connected = <ramp-signal> <label-connected> + +; Available tags: +; <label-disconnected> (default) +format-disconnected = <label-disconnected> +format-disconnected-prefix = "睊 " +format-disconnected-prefix-foreground = ${color.RED} + +; Available tags: +; <label-connected> (default) +; <label-packetloss> +; <animation-packetloss> +;;format-packetloss = <animation-packetloss> <label-connected> + +; Available tokens: +; %ifname% [wireless+wired] +; %local_ip% [wireless+wired] +; %local_ip6% [wireless+wired] +; %essid% [wireless] +; %signal% [wireless] +; %upspeed% [wireless+wired] +; %downspeed% [wireless+wired] +; %linkspeed% [wired] +; Default: %ifname% %local_ip% +label-connected = "%{A1:nmd &:}%essid% 龍 %downspeed%%{A}" +;;label-connected-foreground = #eefafafa + +; Available tokens: +; %ifname% [wireless+wired] +; Default: (none) +label-disconnected = "%{A1:nmd &:}Disconnected%{A}" +;;label-disconnected-foreground = #66ffffff + +; Available tokens: +; %ifname% [wireless+wired] +; %local_ip% [wireless+wired] +; %local_ip6% [wireless+wired] +; %essid% [wireless] +; %signal% [wireless] +; %upspeed% [wireless+wired] +; %downspeed% [wireless+wired] +; %linkspeed% [wired] +; Default: (none) +;label-packetloss = %essid% +;label-packetloss-foreground = #eefafafa + +; Only applies if <ramp-signal> is used +ramp-signal-0 = 直 +ramp-signal-1 = 直 +ramp-signal-2 = 直 +ramp-signal-3 = 直 +ramp-signal-4 = 直 +ramp-signal-foreground = ${color.MAGENTA} + +; Only applies if <animation-packetloss> is used +;;animation-packetloss-0 = ⚠ +;;animation-packetloss-0-foreground = #ffa64c +;;animation-packetloss-1 = ⚠ +;;animation-packetloss-1-foreground = #000000 +; Framerate in milliseconds +;;animation-packetloss-framerate = 500 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/pulseaudio] +type = internal/pulseaudio + +; Sink to be used, if it exists (find using `pacmd list-sinks`, name field) +; If not, uses default sink +sink = alsa_output.pci-0000_12_00.3.analog-stereo + +; Use PA_VOLUME_UI_MAX (~153%) if true, or PA_VOLUME_NORM (100%) if false +; Default: true +use-ui-max = false + +; Interval for volume increase/decrease (in percent points) +; Default: 5 +interval = 5 + +; Available tags: +; <label-volume> (default) +; <ramp-volume> +; <bar-volume> +format-volume = <ramp-volume> <label-volume> + +; Available tags: +; <label-muted> (default) +; <ramp-volume> +; <bar-volume> +;format-muted = <label-muted> + +; Available tokens: +; %percentage% (default) +;label-volume = %percentage%% + +; Available tokens: +; %percentage% (default) +format-muted-prefix = 婢 +format-muted-prefix-foreground = ${color.RED} +label-muted = " Mute" +label-muted-foreground = ${color.ALTFOREGROUND} + +; Only applies if <ramp-volume> is used +ramp-volume-0 = 奄 +ramp-volume-1 = 奄 +ramp-volume-2 = 奄 +ramp-volume-3 = 奔 +ramp-volume-4 = 奔 +ramp-volume-5 = 奔 +ramp-volume-6 = 墳 +ramp-volume-7 = 墳 +ramp-volume-8 = 墳 +ramp-volume-9 = 墳 +ramp-volume-foreground = ${color.RED} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/temperature] +type = internal/temperature + +; Seconds to sleep between updates +; Default: 1 +interval = 0.5 + +; Thermal zone to use +; To list all the zone types, run +; $ for i in /sys/class/thermal/thermal_zone*; do echo "$i: $(<$i/type)"; done +; Default: 0 +thermal-zone = 0 + +; Full path of temperature sysfs path +; Use `sensors` to find preferred temperature source, then run +; $ for i in /sys/class/hwmon/hwmon*/temp*_input; do echo "$(<$(dirname $i)/name): $(cat ${i%_*}_label 2>/dev/null || echo $(basename ${i%_*})) $(readlink -f $i)"; done +; to find path to desired file +; Default reverts to thermal zone setting +;;hwmon-path = /sys/devices/platform/coretemp.0/hwmon/hwmon2/temp1_input + +; Threshold temperature to display warning label (in degrees celsius) +; Default: 80 +warn-temperature = 60 + +; Whether or not to show units next to the temperature tokens (°C, °F) +; Default: true +units = true + +; Available tags: +; <label> (default) +; <ramp> +format = <ramp> <label> + +; Available tags: +; <label-warn> (default) +; <ramp> +format-warn = <ramp> <label-warn> + +; Available tokens: +; %temperature% (deprecated) +; %temperature-c% (default, temperature in °C) +; %temperature-f% (temperature in °F) +label = %temperature-c% + +; Available tokens: +; %temperature% (deprecated) +; %temperature-c% (default, temperature in °C) +; %temperature-f% (temperature in °F) +label-warn = "%temperature-c%" +label-warn-foreground = #f00 + +; Requires the <ramp> tag +; The icon selection will range from 0 to `warn-temperature` +; with the current temperature as index. +ramp-0 = +ramp-1 = +ramp-2 = +ramp-3 = +ramp-4 = +ramp-5 = +ramp-6 = +ramp-7 = +ramp-8 = +ramp-9 = +ramp-foreground = ${color.YELLOW} +;;ramp-foreground = #55 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/keyboard] +type = internal/xkeyboard + +; List of indicators to ignore +blacklist-0 = num lock +blacklist-1 = scroll lock + +; Available tags: +; <label-layout> (default) +; <label-indicator> (default) +format = <label-layout> <label-indicator> +format-prefix = " " +format-prefix-foreground = ${color.MAGENTA} +;;format-spacing = 0 + +; Available tokens: +; %layout% +; %name% +; %number% +; Default: %layout% +label-layout = %layout% +;;label-layout-padding = 2 +;;label-layout-background = #bc99ed +;;label-layout-foreground = #000 + +; Available tokens: +; %name% +; Default: %name% +label-indicator-on = %name% +;;label-indicator-padding = 2 +label-indicator-on-foreground = ${color.CYAN} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/title] +type = internal/xwindow + +; Available tags: +; <label> (default) +format = <label> +format-prefix = " " +format-prefix-foreground = ${color.BLUE} +;;format-background = ${color.BACKGROUND} +;;format-foreground = ${color.CYAN} +;;format-padding = 4 + +; Available tokens: +; %title% +; Default: %title% +label = %title% +label-maxlen = 25 + +; Used instead of label when there is no window title +; Available tokens: +; None +;;label-empty = Archcraft +;;label-empty-foreground = #707880 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/openbox] +type = internal/xworkspaces + +; Only show workspaces defined on the same output as the bar +; +; Useful if you want to show monitor specific workspaces +; on different bars +; +; Default: false +pin-workspaces = true + +; Create click handler used to focus desktop +; Default: true +enable-click = true + +; Create scroll handlers used to cycle desktops +; Default: true +enable-scroll = true + +; icon-[0-9]+ = <desktop-name>;<icon> +; NOTE: The desktop name needs to match the name configured by the WM +; You can get a list of the defined desktops using: +; $ xprop -root _NET_DESKTOP_NAMES +icon-0 = 1; +icon-1 = 2; +icon-2 = 3; +icon-3 = 4; +icon-4 = 5; +icon-default = + +; Available tags: +; <label-monitor> +; <label-state> - gets replaced with <label-(active|urgent|occupied|empty)> +; Default: <label-state> +format = <label-state> +format-padding = 0 + +; Available tokens: +; %name% +; Default: %name% +label-monitor = %name% + +; Available tokens: +; %name% +; %icon% +; %index% +; Default: %icon% %name% +label-active = +label-active-foreground = ${color.RED} +label-active-background = ${color.BACKGROUND} +;;label-active-underline = ${color.CYAN} +;;label-active-overline = ${color.CYAN} + +; Available tokens: +; %name% +; %icon% +; %index% +; Default: %icon% %name% +label-occupied = +label-occupied-foreground = ${color.ACCENT} +label-occupied-background = ${color.BACKGROUND} +;;label-occupied-underline = ${color.CYAN} +;;label-occupied-overline = ${color.CYAN} + +; Available tokens: +; %name% +; %icon% +; %index% +; Default: %icon% %name% +label-urgent = +label-urgent-foreground = ${color.GREEN} +label-urgent-background = ${color.BACKGROUND} +;;label-urgent-underline = ${color.CYAN} +;;label-urgent-overline = ${color.CYAN} + +; Available tokens: +; %name% +; %icon% +; %index% +; Default: %icon% %name% +label-empty = %icon% +label-empty-foreground = ${color.FOREGROUND} +label-empty-background = ${color.BACKGROUND} +;;label-empty-underline = ${color.CYAN} +;;label-empty-overline = ${color.CYAN} + +label-active-padding = 1 +label-urgent-padding = 1 +label-occupied-padding = 1 +label-empty-padding = 1 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/sep] +type = custom/text +content = | +content-foreground = ${color.FOREGROUND} + +[module/sep2] +type = custom/text +content = "| " +content-foreground = ${color.FOREGROUND} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ +;; __________ ______ +;; / ____/ __ \/ ____/ +;; / __/ / / / / /_ +;; / /___/ /_/ / __/ +;; /_____/\____/_/ +;; +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ diff --git a/dot-config/bspwm/themes/forest/rofi/askpass.rasi b/dot-config/bspwm/themes/forest/rofi/askpass.rasi new file mode 100644 index 00000000..9436660c --- /dev/null +++ b/dot-config/bspwm/themes/forest/rofi/askpass.rasi @@ -0,0 +1,75 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/*****----- Main Window -----*****/ +window { + location: center; + anchor: center; + fullscreen: false; + width: 350px; + x-offset: 0px; + y-offset: 0px; + padding: 15px; + border: 0px solid; + border-radius: 12px; + border-color: @selected; + background-color: @background; + cursor: "default"; + children: [ "inputbar", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + children: [ "textbox-prompt-colon", "prompt", "entry" ]; +} + +dummy { + expand: false; + width: 10px; + background-color: transparent; +} +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + padding: 10px 13px; + border-radius: 20px; + background-color: @urgent; + text-color: @background; +} +prompt { + enabled: true; + padding: 10px; + border-radius: 20px; + background-color: @selected; + text-color: @background; +} +entry { + enabled: true; + padding: 10px 15px; + border-radius: 20px; + background-color: @background-alt; + text-color: inherit; + cursor: text; + placeholder: "Password"; + placeholder-color: inherit; +} + +/*****----- Listview -----*****/ +listview { + enabled: false; +} diff --git a/dot-config/bspwm/themes/forest/rofi/asroot.rasi b/dot-config/bspwm/themes/forest/rofi/asroot.rasi new file mode 100644 index 00000000..c84dcdb4 --- /dev/null +++ b/dot-config/bspwm/themes/forest/rofi/asroot.rasi @@ -0,0 +1,147 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + show-icons: false; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/* +USE_ICON=NO +*/ + +/*****----- Main Window -----*****/ +window { + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 400px; + x-offset: 0px; + y-offset: 0px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 12px; + border-color: @selected; + cursor: "default"; + background-color: @background; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 20px; + background-color: transparent; + children: [ "inputbar", "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 0px; + padding: 0px; + border: 0px; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + children: [ "textbox-prompt-colon", "prompt" ]; +} + +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + padding: 10px 12px; + border-radius: 20px; + background-color: @urgent; + text-color: @background; +} +prompt { + enabled: true; + padding: 10px; + border-radius: 0px; + background-color: @background; + text-color: @foreground; +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 10px; + border: 0px solid; + border-radius: 20px; + border-color: @selected; + background-color: @background-alt; + text-color: @foreground; +} +textbox { + background-color: inherit; + text-color: inherit; + vertical-align: 0.5; + horizontal-align: 0.5; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 2; + lines: 3; + cycle: true; + scrollbar: false; + layout: vertical; + + spacing: 10px; + background-color: transparent; + cursor: "default"; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + padding: 10px; + border: 0px solid; + border-radius: 20px; + border-color: @selected; + background-color: @background-alt; + text-color: @foreground; + cursor: pointer; +} +element-text { + background-color: transparent; + text-color: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.5; +} + +element normal.normal, +element alternate.normal { + background-color: var(background-alt); + text-color: var(foreground); +} +element normal.urgent, +element alternate.urgent, +element selected.active { + background-color: var(urgent); + text-color: var(background); +} +element normal.active, +element alternate.active, +element selected.urgent { + background-color: var(active); + text-color: var(background); +} +element selected.normal { + background-color: var(selected); + text-color: var(background); +} diff --git a/dot-config/bspwm/themes/forest/rofi/confirm.rasi b/dot-config/bspwm/themes/forest/rofi/confirm.rasi new file mode 100644 index 00000000..8be3b2b3 --- /dev/null +++ b/dot-config/bspwm/themes/forest/rofi/confirm.rasi @@ -0,0 +1,147 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + show-icons: false; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/* +USE_ICON=NO +*/ + +/*****----- Main Window -----*****/ +window { + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 250px; + x-offset: 0px; + y-offset: 0px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 12px; + border-color: @selected; + cursor: "default"; + background-color: @background; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 20px; + background-color: transparent; + children: [ "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + padding: 0px; + border: 0px; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + children: [ "textbox-prompt-colon", "prompt"]; +} + +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + padding: 10px 14px; + border-radius: 100%; + background-color: @urgent; + text-color: @background; +} +prompt { + enabled: true; + padding: 10px; + border-radius: 20px; + background-color: @active; + text-color: @background; +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 10px; + border: 0px solid; + border-radius: 20px; + border-color: @selected; + background-color: @urgent; + text-color: @background; +} +textbox { + background-color: inherit; + text-color: inherit; + vertical-align: 0.5; + horizontal-align: 0.5; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 2; + lines: 1; + cycle: true; + scrollbar: false; + layout: vertical; + + spacing: 10px; + background-color: transparent; + cursor: "default"; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + padding: 10px 10px; + border: 0px solid; + border-radius: 20px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + cursor: pointer; +} +element-text { + background-color: transparent; + text-color: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.5; +} + +element normal.normal, +element alternate.normal { + background-color: var(background-alt); + text-color: var(foreground); +} +element normal.urgent, +element alternate.urgent, +element selected.active { + background-color: var(urgent); + text-color: var(background); +} +element normal.active, +element alternate.active, +element selected.urgent { + background-color: var(active); + text-color: var(background); +} +element selected.normal { + background-color: var(selected); + text-color: var(background); +} diff --git a/dot-config/bspwm/themes/forest/rofi/launcher.rasi b/dot-config/bspwm/themes/forest/rofi/launcher.rasi new file mode 100644 index 00000000..ceb7da47 --- /dev/null +++ b/dot-config/bspwm/themes/forest/rofi/launcher.rasi @@ -0,0 +1,166 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + modi: "drun"; + show-icons: true; + display-drun: ""; + drun-display-format: "{name}"; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/*****----- Main Window -----*****/ +window { + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 700px; + x-offset: 0px; + y-offset: 0px; + + enabled: true; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 12px; + border-color: @selected; + background-color: @background; + cursor: "default"; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 20px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @selected; + background-color: transparent; + children: [ "inputbar", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 8px; + margin: 0px; + padding: 12px; + border: 0px solid; + border-radius: 12px; + border-color: @selected; + background-color: @background-alt; + text-color: @foreground; + children: [ "prompt", "entry" ]; +} + +prompt { + enabled: true; + background-color: inherit; + text-color: inherit; +} +textbox-prompt-colon { + enabled: true; + expand: false; + str: "::"; + background-color: inherit; + text-color: inherit; +} +entry { + enabled: true; + background-color: inherit; + text-color: inherit; + cursor: text; + placeholder: "Search..."; + placeholder-color: inherit; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 2; + lines: 8; + cycle: true; + dynamic: true; + scrollbar: false; + layout: vertical; + reverse: false; + fixed-height: true; + fixed-columns: true; + + spacing: 5px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + cursor: "default"; +} +scrollbar { + handle-width: 5px ; + handle-color: @selected; + border-radius: 0px; + background-color: @background-alt; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 5px; + border: 0px solid; + border-radius: 12px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + cursor: pointer; +} +element normal.normal { + background-color: @background; + text-color: @foreground; +} +element selected.normal { + background-color: @selected; + text-color: @background; +} +element-icon { + background-color: transparent; + text-color: inherit; + size: 32px; + cursor: inherit; +} +element-text { + background-color: transparent; + text-color: inherit; + highlight: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Message -----*****/ +error-message { + padding: 15px; + border: 2px solid; + border-radius: 12px; + border-color: @selected; + background-color: @background; + text-color: @foreground; +} +textbox { + background-color: @background; + text-color: @foreground; + vertical-align: 0.5; + horizontal-align: 0.0; + highlight: none; +} diff --git a/dot-config/bspwm/themes/forest/rofi/music.rasi b/dot-config/bspwm/themes/forest/rofi/music.rasi new file mode 100644 index 00000000..26a4f918 --- /dev/null +++ b/dot-config/bspwm/themes/forest/rofi/music.rasi @@ -0,0 +1,147 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + show-icons: false; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/* +USE_ICON=NO +*/ + +/*****----- Main Window -----*****/ +window { + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 400px; + x-offset: 0px; + y-offset: 0px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 12px; + border-color: @selected; + cursor: "default"; + background-color: @background; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 20px; + background-color: transparent; + children: [ "inputbar", "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 0px; + padding: 0px; + border: 0px; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + children: [ "textbox-prompt-colon", "prompt" ]; +} + +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + padding: 10px 14px; + border-radius: 20px; + background-color: @urgent; + text-color: @background; +} +prompt { + enabled: true; + padding: 10px; + border-radius: 0px; + background-color: @background; + text-color: @foreground; +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 10px; + border: 0px solid; + border-radius: 20px; + border-color: @selected; + background-color: @background-alt; + text-color: @foreground; +} +textbox { + background-color: inherit; + text-color: inherit; + vertical-align: 0.5; + horizontal-align: 0.5; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 3; + lines: 2; + cycle: true; + scrollbar: false; + layout: vertical; + + spacing: 10px; + background-color: transparent; + cursor: "default"; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + padding: 10px; + border: 0px solid; + border-radius: 20px; + border-color: @selected; + background-color: @background-alt; + text-color: @foreground; + cursor: pointer; +} +element-text { + background-color: transparent; + text-color: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.5; +} + +element normal.normal, +element alternate.normal { + background-color: var(background-alt); + text-color: var(foreground); +} +element normal.urgent, +element alternate.urgent, +element selected.active { + background-color: var(urgent); + text-color: var(background); +} +element normal.active, +element alternate.active, +element selected.urgent { + background-color: var(active); + text-color: var(background); +} +element selected.normal { + background-color: var(selected); + text-color: var(background); +} diff --git a/dot-config/bspwm/themes/forest/rofi/networkmenu.rasi b/dot-config/bspwm/themes/forest/rofi/networkmenu.rasi new file mode 100644 index 00000000..b5cfbdd5 --- /dev/null +++ b/dot-config/bspwm/themes/forest/rofi/networkmenu.rasi @@ -0,0 +1,167 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + modi: "drun"; + show-icons: false; + display-drun: ""; + drun-display-format: "{name}"; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/*****----- Main Window -----*****/ +window { + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 500px; + height: 515px; + x-offset: 0px; + y-offset: 0px; + + enabled: true; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 12px; + border-color: @selected; + background-color: @background; + cursor: "default"; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 20px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @selected; + background-color: transparent; + children: [ "inputbar", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 8px; + margin: 0px; + padding: 12px; + border: 0px solid; + border-radius: 12px; + border-color: @selected; + background-color: @background-alt; + text-color: @foreground; + children: [ "textbox-prompt-colon", "prompt", "entry" ]; +} + +prompt { + enabled: true; + background-color: inherit; + text-color: inherit; +} +textbox-prompt-colon { + enabled: true; + expand: false; + str: "直"; + background-color: inherit; + text-color: inherit; +} +entry { + enabled: true; + background-color: inherit; + text-color: inherit; + cursor: text; + placeholder: ""; + placeholder-color: inherit; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 1; + lines: 7; + cycle: true; + dynamic: true; + scrollbar: false; + layout: vertical; + reverse: false; + fixed-height: true; + fixed-columns: true; + + spacing: 5px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + cursor: "default"; +} +scrollbar { + handle-width: 5px ; + handle-color: @selected; + border-radius: 0px; + background-color: @background-alt; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 12px; + border: 0px solid; + border-radius: 12px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + cursor: pointer; +} +element normal.normal { + background-color: @background; + text-color: @foreground; +} +element selected.normal { + background-color: @selected; + text-color: @background; +} +element-icon { + background-color: transparent; + text-color: inherit; + size: 32px; + cursor: inherit; +} +element-text { + background-color: transparent; + text-color: inherit; + highlight: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Message -----*****/ +error-message { + padding: 15px; + border: 2px solid; + border-radius: 12px; + border-color: @selected; + background-color: @background; + text-color: @foreground; +} +textbox { + background-color: @background; + text-color: @foreground; + vertical-align: 0.5; + horizontal-align: 0.0; + highlight: none; +} diff --git a/dot-config/bspwm/themes/forest/rofi/powermenu.rasi b/dot-config/bspwm/themes/forest/rofi/powermenu.rasi new file mode 100644 index 00000000..e58628c4 --- /dev/null +++ b/dot-config/bspwm/themes/forest/rofi/powermenu.rasi @@ -0,0 +1,147 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + show-icons: false; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/* +USE_ICON=NO +*/ + +/*****----- Main Window -----*****/ +window { + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 400px; + x-offset: 0px; + y-offset: 0px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 12px; + border-color: @selected; + cursor: "default"; + background-color: @background; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 20px; + background-color: transparent; + children: [ "inputbar", "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 0px; + padding: 0px; + border: 0px; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + children: [ "textbox-prompt-colon", "prompt" ]; +} + +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + padding: 10px 14px; + border-radius: 20px; + background-color: @urgent; + text-color: @background; +} +prompt { + enabled: true; + padding: 10px; + border-radius: 0px; + background-color: @background; + text-color: @foreground; +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 10px; + border: 0px solid; + border-radius: 20px; + border-color: @selected; + background-color: @background-alt; + text-color: @foreground; +} +textbox { + background-color: inherit; + text-color: inherit; + vertical-align: 0.5; + horizontal-align: 0.5; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 3; + lines: 2; + cycle: true; + scrollbar: false; + layout: vertical; + + spacing: 10px; + background-color: transparent; + cursor: "default"; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + padding: 10px; + border: 0px solid; + border-radius: 20px; + border-color: @selected; + background-color: @background-alt; + text-color: @foreground; + cursor: pointer; +} +element-text { + background-color: transparent; + text-color: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.5; +} + +element normal.normal, +element alternate.normal { + background-color: var(background-alt); + text-color: var(foreground); +} +element normal.urgent, +element alternate.urgent, +element selected.active { + background-color: var(urgent); + text-color: var(background); +} +element normal.active, +element alternate.active, +element selected.urgent { + background-color: var(active); + text-color: var(background); +} +element selected.normal { + background-color: var(selected); + text-color: var(background); +} diff --git a/dot-config/bspwm/themes/forest/rofi/runner.rasi b/dot-config/bspwm/themes/forest/rofi/runner.rasi new file mode 100644 index 00000000..57322976 --- /dev/null +++ b/dot-config/bspwm/themes/forest/rofi/runner.rasi @@ -0,0 +1,166 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + modi: "run"; + show-icons: true; + display-drun: ""; + drun-display-format: "{name}"; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/*****----- Main Window -----*****/ +window { + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 500px; + x-offset: 0px; + y-offset: 0px; + + enabled: true; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 12px; + border-color: @selected; + background-color: @background; + cursor: "default"; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 20px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @selected; + background-color: transparent; + children: [ "inputbar", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 8px; + margin: 0px; + padding: 12px; + border: 0px solid; + border-radius: 12px; + border-color: @selected; + background-color: @background-alt; + text-color: @foreground; + children: [ "textbox-prompt-colon", "entry" ]; +} + +prompt { + enabled: true; + background-color: inherit; + text-color: inherit; +} +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + background-color: inherit; + text-color: inherit; +} +entry { + enabled: true; + background-color: inherit; + text-color: inherit; + cursor: text; + placeholder: "Run..."; + placeholder-color: inherit; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 1; + lines: 7; + cycle: true; + dynamic: true; + scrollbar: false; + layout: vertical; + reverse: false; + fixed-height: true; + fixed-columns: true; + + spacing: 5px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + cursor: "default"; +} +scrollbar { + handle-width: 5px ; + handle-color: @selected; + border-radius: 0px; + background-color: @background-alt; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 5px; + border: 0px solid; + border-radius: 12px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + cursor: pointer; +} +element normal.normal { + background-color: @background; + text-color: @foreground; +} +element selected.normal { + background-color: @selected; + text-color: @background; +} +element-icon { + background-color: transparent; + text-color: inherit; + size: 32px; + cursor: inherit; +} +element-text { + background-color: transparent; + text-color: inherit; + highlight: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Message -----*****/ +error-message { + padding: 15px; + border: 2px solid; + border-radius: 12px; + border-color: @selected; + background-color: @background; + text-color: @foreground; +} +textbox { + background-color: @background; + text-color: @foreground; + vertical-align: 0.5; + horizontal-align: 0.0; + highlight: none; +} diff --git a/dot-config/bspwm/themes/forest/rofi/screenshot.rasi b/dot-config/bspwm/themes/forest/rofi/screenshot.rasi new file mode 100644 index 00000000..62960fda --- /dev/null +++ b/dot-config/bspwm/themes/forest/rofi/screenshot.rasi @@ -0,0 +1,147 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + show-icons: false; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/* +USE_ICON=NO +*/ + +/*****----- Main Window -----*****/ +window { + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 400px; + x-offset: 0px; + y-offset: 0px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 12px; + border-color: @selected; + cursor: "default"; + background-color: @background; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 20px; + background-color: transparent; + children: [ "inputbar", "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 0px; + padding: 0px; + border: 0px; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + children: [ "textbox-prompt-colon", "prompt" ]; +} + +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + padding: 10px 12px; + border-radius: 20px; + background-color: @urgent; + text-color: @background; +} +prompt { + enabled: true; + padding: 10px; + border-radius: 0px; + background-color: @background; + text-color: @foreground; +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 10px; + border: 0px solid; + border-radius: 20px; + border-color: @selected; + background-color: @background-alt; + text-color: @foreground; +} +textbox { + background-color: inherit; + text-color: inherit; + vertical-align: 0.5; + horizontal-align: 0.5; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 2; + lines: 3; + cycle: true; + scrollbar: false; + layout: vertical; + + spacing: 10px; + background-color: transparent; + cursor: "default"; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + padding: 10px; + border: 0px solid; + border-radius: 20px; + border-color: @selected; + background-color: @background-alt; + text-color: @foreground; + cursor: pointer; +} +element-text { + background-color: transparent; + text-color: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.5; +} + +element normal.normal, +element alternate.normal { + background-color: var(background-alt); + text-color: var(foreground); +} +element normal.urgent, +element alternate.urgent, +element selected.active { + background-color: var(urgent); + text-color: var(background); +} +element normal.active, +element alternate.active, +element selected.urgent { + background-color: var(active); + text-color: var(background); +} +element selected.normal { + background-color: var(selected); + text-color: var(background); +} diff --git a/dot-config/bspwm/themes/forest/rofi/shared/colors.rasi b/dot-config/bspwm/themes/forest/rofi/shared/colors.rasi new file mode 100644 index 00000000..8d143a25 --- /dev/null +++ b/dot-config/bspwm/themes/forest/rofi/shared/colors.rasi @@ -0,0 +1,8 @@ +* { + background: #222d32; + background-alt: #2c3b41; + foreground: #c4c7c5; + selected: #00BCD4; + active: #61c766; + urgent: #ec7875; +} diff --git a/dot-config/bspwm/themes/forest/rofi/shared/fonts.rasi b/dot-config/bspwm/themes/forest/rofi/shared/fonts.rasi new file mode 100644 index 00000000..d2af39fe --- /dev/null +++ b/dot-config/bspwm/themes/forest/rofi/shared/fonts.rasi @@ -0,0 +1,7 @@ +/* Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> */ + +/* Text Font */ + +* { + font: "Iosevka 10"; +} diff --git a/dot-config/bspwm/themes/forest/rofi/themes.rasi b/dot-config/bspwm/themes/forest/rofi/themes.rasi new file mode 100644 index 00000000..375c4c37 --- /dev/null +++ b/dot-config/bspwm/themes/forest/rofi/themes.rasi @@ -0,0 +1,147 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + show-icons: false; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/* +USE_ICON=NO +*/ + +/*****----- Main Window -----*****/ +window { + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 400px; + x-offset: 0px; + y-offset: 0px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 12px; + border-color: @selected; + cursor: "default"; + background-color: @background; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 20px; + background-color: transparent; + children: [ "inputbar", "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 0px; + padding: 0px; + border: 0px; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + children: [ "textbox-prompt-colon", "prompt" ]; +} + +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + padding: 10px 12px; + border-radius: 20px; + background-color: @urgent; + text-color: @background; +} +prompt { + enabled: true; + padding: 10px; + border-radius: 0px; + background-color: @background; + text-color: @foreground; +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 10px; + border: 0px solid; + border-radius: 20px; + border-color: @selected; + background-color: @background-alt; + text-color: @foreground; +} +textbox { + background-color: inherit; + text-color: inherit; + vertical-align: 0.5; + horizontal-align: 0.5; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 3; + lines: 5; + cycle: true; + scrollbar: false; + layout: vertical; + + spacing: 10px; + background-color: transparent; + cursor: "default"; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + padding: 10px; + border: 0px solid; + border-radius: 20px; + border-color: @selected; + background-color: @background-alt; + text-color: @foreground; + cursor: pointer; +} +element-text { + background-color: transparent; + text-color: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.5; +} + +element normal.normal, +element alternate.normal { + background-color: var(background-alt); + text-color: var(foreground); +} +element normal.urgent, +element alternate.urgent, +element selected.active { + background-color: var(urgent); + text-color: var(background); +} +element normal.active, +element alternate.active, +element selected.urgent { + background-color: var(active); + text-color: var(background); +} +element selected.normal { + background-color: var(selected); + text-color: var(background); +} diff --git a/dot-config/bspwm/themes/forest/rofi/windows.rasi b/dot-config/bspwm/themes/forest/rofi/windows.rasi new file mode 100644 index 00000000..ff2bc9be --- /dev/null +++ b/dot-config/bspwm/themes/forest/rofi/windows.rasi @@ -0,0 +1,180 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + modi: "window"; + show-icons: true; + display-drun: ""; + drun-display-format: "{name}"; + window-format: "{c} · {t}"; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/*****----- Main Window -----*****/ +window { + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 500px; + x-offset: 0px; + y-offset: 0px; + + enabled: true; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 12px; + border-color: @selected; + background-color: @background; + cursor: "default"; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 20px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @selected; + background-color: transparent; + children: [ "inputbar", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 8px; + margin: 0px; + padding: 12px; + border: 0px solid; + border-radius: 12px; + border-color: @selected; + background-color: @background-alt; + text-color: @foreground; + children: [ "textbox-prompt-colon", "entry" ]; +} + +prompt { + enabled: true; + background-color: inherit; + text-color: inherit; +} +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + background-color: inherit; + text-color: inherit; +} +entry { + enabled: true; + background-color: inherit; + text-color: inherit; + cursor: text; + placeholder: "Filter..."; + placeholder-color: inherit; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 1; + lines: 7; + cycle: true; + dynamic: true; + scrollbar: false; + layout: vertical; + reverse: false; + fixed-height: true; + fixed-columns: true; + + spacing: 5px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + cursor: "default"; +} +scrollbar { + handle-width: 5px ; + handle-color: @selected; + border-radius: 0px; + background-color: @background-alt; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 5px; + border: 0px solid; + border-radius: 12px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + cursor: pointer; +} +element normal.normal, +element alternate.normal { + background-color: var(background); + text-color: var(foreground); +} +element normal.urgent, +element alternate.urgent, +element selected.active { + background-color: var(urgent); + text-color: var(background); +} +element normal.active, +element alternate.active, +element selected.urgent { + background-color: var(active); + text-color: var(background); +} +element selected.normal { + background-color: var(selected); + text-color: var(background); +} +element-icon { + background-color: transparent; + text-color: inherit; + size: 32px; + cursor: inherit; +} +element-text { + background-color: transparent; + text-color: inherit; + highlight: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Message -----*****/ +error-message { + padding: 15px; + border: 2px solid; + border-radius: 12px; + border-color: @selected; + background-color: @background; + text-color: @foreground; +} +textbox { + background-color: @background; + text-color: @foreground; + vertical-align: 0.5; + horizontal-align: 0.0; + highlight: none; +} diff --git a/dot-config/bspwm/themes/forest/theme.bash b/dot-config/bspwm/themes/forest/theme.bash new file mode 100644 index 00000000..33d89c5f --- /dev/null +++ b/dot-config/bspwm/themes/forest/theme.bash @@ -0,0 +1,82 @@ +# ------------------------------------------------------------------------------ +# Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> +# +# Forest Theme +# ------------------------------------------------------------------------------ + +# Colors +background='#222d32' +foreground='#c4c7c5' +color0='#263640' +color1='#ec7875' +color2='#61c766' +color3='#fdd835' +color4='#42a5f5' +color5='#ba68c8' +color6='#4dd0e1' +color7='#bfbaac' +color8='#4a697d' +color9='#fb8784' +color10='#70d675' +color11='#ffe744' +color12='#51b4ff' +color13='#c979d7' +color14='#5cdff0' +color15='#fdf6e3' + +accent='#00BCD4' +light_value='0.05' +dark_value='0.30' + +# Wallpaper +wdir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" +wallpaper="$wdir/wallpaper" + +# Polybar +polybar_font='Iosevka Nerd Font:size=10;3' + +# Rofi +rofi_font='Iosevka 10' +rofi_icon='Papirus-Apps' + +# Terminal +terminal_font_name='JetBrainsMono Nerd Font' +terminal_font_size='10' + +# Geany +geany_colors='adapta.conf' +geany_font='JetBrains Mono 10' + +# Appearance +gtk_font='Noto Sans 9' +gtk_theme='Adapta-Nokto' +icon_theme='Archcraft-Dark' +cursor_theme='Pear' + +# Dunst +dunst_width='300' +dunst_height='80' +dunst_offset='10x40' +dunst_origin='top-right' +dunst_font='Iosevka Custom 9' +dunst_border='2' +dunst_separator='2' + +# Picom +picom_backend='glx' +picom_corner='0' +picom_shadow_r='14' +picom_shadow_o='0.30' +picom_shadow_x='-12' +picom_shadow_y='-12' +picom_blur_method='none' +picom_blur_strength='0' + +# Bspwm +bspwm_fbc="$accent" +bspwm_nbc="$background" +bspwm_abc="$color5" +bspwm_pfc="$color2" +bspwm_border='2' +bspwm_gap='10' +bspwm_sratio='0.50' diff --git a/dot-config/bspwm/themes/forest/wallpaper b/dot-config/bspwm/themes/forest/wallpaper new file mode 120000 index 00000000..73b96ee0 --- /dev/null +++ b/dot-config/bspwm/themes/forest/wallpaper @@ -0,0 +1 @@ +/usr/share/backgrounds/forest.jpg
\ No newline at end of file diff --git a/dot-config/bspwm/themes/hack/apply.sh b/dot-config/bspwm/themes/hack/apply.sh new file mode 100755 index 00000000..e5df7a2a --- /dev/null +++ b/dot-config/bspwm/themes/hack/apply.sh @@ -0,0 +1,282 @@ +#!/usr/bin/env bash + +## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> +## +## Script To Apply Themes + +## Theme ------------------------------------ +BDIR="$HOME/.config/bspwm" +TDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" +THEME="${TDIR##*/}" + +source "$BDIR"/themes/"$THEME"/theme.bash +altbackground="`pastel color $background | pastel lighten $light_value | pastel format hex`" +altforeground="`pastel color $foreground | pastel darken $dark_value | pastel format hex`" + +## Directories ------------------------------ +PATH_CONF="$HOME/.config" +PATH_GEANY="$PATH_CONF/geany" +PATH_BSPWM="$PATH_CONF/bspwm" +PATH_TERM="$PATH_BSPWM/alacritty" +PATH_PBAR="$PATH_BSPWM/themes/$THEME/polybar" +PATH_ROFI="$PATH_BSPWM/themes/$THEME/rofi" + +## Wallpaper --------------------------------- +apply_wallpaper() { + feh --bg-fill "$wallpaper" +} + +## Polybar ----------------------------------- +apply_polybar() { + # modify polybar launch script + sed -i -e "s/STYLE=.*/STYLE=\"$THEME\"/g" ${PATH_BSPWM}/themes/polybar.sh + + # apply default theme fonts + sed -i -e "s/font-0 = .*/font-0 = \"$polybar_font\"/g" ${PATH_PBAR}/config.ini + + # rewrite colors file + cat > ${PATH_PBAR}/colors.ini <<- EOF + [color] + + BACKGROUND = ${background} + FOREGROUND = ${foreground} + ALTBACKGROUND = ${altbackground} + ALTFOREGROUND = ${altforeground} + ACCENT = ${accent} + + BLACK = ${color0} + RED = ${color1} + GREEN = ${color2} + YELLOW = ${color3} + BLUE = ${color4} + MAGENTA = ${color5} + CYAN = ${color6} + WHITE = ${color7} + ALTBLACK = ${color8} + ALTRED = ${color9} + ALTGREEN = ${color10} + ALTYELLOW = ${color11} + ALTBLUE = ${color12} + ALTMAGENTA = ${color13} + ALTCYAN = ${color14} + ALTWHITE = ${color15} + + COLOR_R = ${color_red} + COLOR_G = ${color_green} + COLOR_Y = ${color_yellow} + EOF +} + +# Rofi -------------------------------------- +apply_rofi() { + # modify rofi scripts + sed -i -e "s/STYLE=.*/STYLE=\"$THEME\"/g" \ + ${PATH_BSPWM}/scripts/rofi_askpass \ + ${PATH_BSPWM}/scripts/rofi_asroot \ + ${PATH_BSPWM}/scripts/rofi_launcher \ + ${PATH_BSPWM}/scripts/rofi_music \ + ${PATH_BSPWM}/scripts/rofi_powermenu \ + ${PATH_BSPWM}/scripts/rofi_runner \ + ${PATH_BSPWM}/scripts/rofi_screenshot \ + ${PATH_BSPWM}/scripts/rofi_themes \ + ${PATH_BSPWM}/scripts/rofi_windows + + # apply default theme fonts + sed -i -e "s/font:.*/font: \"$rofi_font\";/g" ${PATH_ROFI}/shared/fonts.rasi + + # rewrite colors file + cat > ${PATH_ROFI}/shared/colors.rasi <<- EOF + * { + background: ${background}; + background-alt: ${altbackground}; + foreground: ${foreground}; + selected: ${accent}; + active: ${color_green}; + urgent: ${color_red}; + } + EOF + + # modify icon theme + if [[ -f "$PATH_CONF"/rofi/config.rasi ]]; then + sed -i -e "s/icon-theme:.*/icon-theme: \"$rofi_icon\";/g" ${PATH_CONF}/rofi/config.rasi + fi +} + +# Network Menu ------------------------------ +apply_netmenu() { + if [[ -f "$PATH_CONF"/networkmanager-dmenu/nmd.ini ]]; then + sed -i -e "s#dmenu_command = .*#dmenu_command = rofi -dmenu -theme $PATH_ROFI/networkmenu.rasi#g" ${PATH_CONF}/networkmanager-dmenu/nmd.ini + fi +} + +# Terminal ---------------------------------- +apply_terminal() { + # alacritty : fonts + sed -i ${PATH_TERM}/fonts.yml \ + -e "s/family: .*/family: \"$terminal_font_name\"/g" \ + -e "s/size: .*/size: $terminal_font_size/g" + + # alacritty : colors + cat > ${PATH_TERM}/colors.yml <<- _EOF_ + ## Colors configuration + colors: + # Default colors + primary: + background: '${background}' + foreground: '${foreground}' + + # Normal colors + normal: + black: '${color0}' + red: '${color1}' + green: '${color2}' + yellow: '${color3}' + blue: '${color4}' + magenta: '${color5}' + cyan: '${color6}' + white: '${color7}' + + # Bright colors + bright: + black: '${color8}' + red: '${color9}' + green: '${color10}' + yellow: '${color11}' + blue: '${color12}' + magenta: '${color13}' + cyan: '${color14}' + white: '${color15}' + _EOF_ +} + +# Geany ------------------------------------- +apply_geany() { + sed -i ${PATH_GEANY}/geany.conf \ + -e "s/color_scheme=.*/color_scheme=$geany_colors/g" \ + -e "s/editor_font=.*/editor_font=$geany_font/g" +} + +# Appearance -------------------------------- +apply_appearance() { + XFILE="$PATH_BSPWM/xsettingsd" + GTK2FILE="$HOME/.gtkrc-2.0" + GTK3FILE="$PATH_CONF/gtk-3.0/settings.ini" + + # apply gtk theme, icons, cursor & fonts + if [[ `pidof xsettingsd` ]]; then + sed -i -e "s|Net/ThemeName .*|Net/ThemeName \"$gtk_theme\"|g" ${XFILE} + sed -i -e "s|Net/IconThemeName .*|Net/IconThemeName \"$icon_theme\"|g" ${XFILE} + sed -i -e "s|Gtk/CursorThemeName .*|Gtk/CursorThemeName \"$cursor_theme\"|g" ${XFILE} + else + sed -i -e "s/gtk-font-name=.*/gtk-font-name=\"$gtk_font\"/g" ${GTK2FILE} + sed -i -e "s/gtk-theme-name=.*/gtk-theme-name=\"$gtk_theme\"/g" ${GTK2FILE} + sed -i -e "s/gtk-icon-theme-name=.*/gtk-icon-theme-name=\"$icon_theme\"/g" ${GTK2FILE} + sed -i -e "s/gtk-cursor-theme-name=.*/gtk-cursor-theme-name=\"$cursor_theme\"/g" ${GTK2FILE} + + sed -i -e "s/gtk-font-name=.*/gtk-font-name=$gtk_font/g" ${GTK3FILE} + sed -i -e "s/gtk-theme-name=.*/gtk-theme-name=$gtk_theme/g" ${GTK3FILE} + sed -i -e "s/gtk-icon-theme-name=.*/gtk-icon-theme-name=$icon_theme/g" ${GTK3FILE} + sed -i -e "s/gtk-cursor-theme-name=.*/gtk-cursor-theme-name=$cursor_theme/g" ${GTK3FILE} + fi + + # inherit cursor theme + if [[ -f "$HOME"/.icons/default/index.theme ]]; then + sed -i -e "s/Inherits=.*/Inherits=$cursor_theme/g" "$HOME"/.icons/default/index.theme + fi +} + +# Dunst ------------------------------------- +apply_dunst() { + # modify dunst config + sed -i ${PATH_BSPWM}/dunstrc \ + -e "s/width = .*/width = $dunst_width/g" \ + -e "s/height = .*/height = $dunst_height/g" \ + -e "s/offset = .*/offset = $dunst_offset/g" \ + -e "s/origin = .*/origin = $dunst_origin/g" \ + -e "s/font = .*/font = $dunst_font/g" \ + -e "s/frame_width = .*/frame_width = $dunst_border/g" \ + -e "s/separator_height = .*/separator_height = $dunst_separator/g" \ + -e "s/line_height = .*/line_height = $dunst_separator/g" + + # modify colors + sed -i '/urgency_low/Q' ${PATH_BSPWM}/dunstrc + cat >> ${PATH_BSPWM}/dunstrc <<- _EOF_ + [urgency_low] + timeout = 2 + background = "${background}" + foreground = "${foreground}" + frame_color = "${accent}" + + [urgency_normal] + timeout = 5 + background = "${background}" + foreground = "${foreground}" + frame_color = "${accent}" + + [urgency_critical] + timeout = 0 + background = "${background}" + foreground = "${color_red}" + frame_color = "${color_red}" + _EOF_ +} + +# Compositor -------------------------------- +apply_compositor() { + picom_cfg="$PATH_BSPWM/picom.conf" + + # modify picom config + sed -i "$picom_cfg" \ + -e "s/backend = .*/backend = \"$picom_backend\";/g" \ + -e "s/corner-radius = .*/corner-radius = $picom_corner;/g" \ + -e "s/shadow-radius = .*/shadow-radius = $picom_shadow_r;/g" \ + -e "s/shadow-opacity = .*/shadow-opacity = $picom_shadow_o;/g" \ + -e "s/shadow-offset-x = .*/shadow-offset-x = $picom_shadow_x;/g" \ + -e "s/shadow-offset-y = .*/shadow-offset-y = $picom_shadow_y;/g" \ + -e "s/method = .*/method = \"$picom_blur_method\";/g" \ + -e "s/strength = .*/strength = $picom_blur_strength;/g" +} + +# BSPWM ------------------------------------- +apply_bspwm() { + # modify bspwmrc + sed -i ${PATH_BSPWM}/bspwmrc \ + -e "s/BSPWM_FBC=.*/BSPWM_FBC='$bspwm_fbc'/g" \ + -e "s/BSPWM_NBC=.*/BSPWM_NBC='$bspwm_nbc'/g" \ + -e "s/BSPWM_ABC=.*/BSPWM_ABC='$bspwm_abc'/g" \ + -e "s/BSPWM_PFC=.*/BSPWM_PFC='$bspwm_pfc'/g" \ + -e "s/BSPWM_BORDER=.*/BSPWM_BORDER='$bspwm_border'/g" \ + -e "s/BSPWM_GAP=.*/BSPWM_GAP='$bspwm_gap'/g" \ + -e "s/BSPWM_SRATIO=.*/BSPWM_SRATIO='$bspwm_sratio'/g" + + # reload bspwm + bspc wm -r +} + +# Create Theme File ------------------------- +create_file() { + theme_file="$PATH_BSPWM/themes/.current" + if [[ ! -f "$theme_file" ]]; then + touch ${theme_file} + fi + echo "$THEME" > ${theme_file} +} + +# Notify User ------------------------------- +notify_user() { + dunstify -u normal -h string:x-dunst-stack-tag:applytheme -i /usr/share/archcraft/icons/dunst/themes.png "Applying Style : $THEME" +} + +## Execute Script --------------------------- +notify_user +create_file +apply_wallpaper +apply_polybar +apply_rofi +apply_netmenu +apply_terminal +apply_geany +apply_appearance +apply_dunst +apply_compositor +apply_bspwm diff --git a/dot-config/bspwm/themes/hack/polybar/.module b/dot-config/bspwm/themes/hack/polybar/.module new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/dot-config/bspwm/themes/hack/polybar/.module diff --git a/dot-config/bspwm/themes/hack/polybar/bars.ini b/dot-config/bspwm/themes/hack/polybar/bars.ini new file mode 100644 index 00000000..0e805003 --- /dev/null +++ b/dot-config/bspwm/themes/hack/polybar/bars.ini @@ -0,0 +1,553 @@ +## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[bar] +fill = +empty = +indicator = ⏽ +; Nerd font : , ⏽, 樂 籠 錄 , 雷 絛 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/volume] +type = internal/alsa + +; Soundcard to be used +; Usually in the format hw:# where # is the card number +; You can find the different card numbers in `/proc/asound/cards` +master-soundcard = default +speaker-soundcard = default +headphone-soundcard = default + +; Name of the master, speaker and headphone mixers +; Use the following command to list available mixer controls: +; $ amixer scontrols | sed -nr "s/.*'([[:alnum:]]+)'.*/\1/p" +; If master, speaker or headphone-soundcard isn't the default, +; use `amixer -c # scontrols` instead where # is the number +; of the master, speaker or headphone soundcard respectively +; +; Default: Master +master-mixer = Master + +; Optionally define speaker and headphone mixers +; Default: none +;;speaker-mixer = Speaker +; Default: none +;;headphone-mixer = Headphone + +; NOTE: This is required if headphone_mixer is defined +; Use the following command to list available device controls +; $ amixer controls | sed -r "/CARD/\!d; s/.*=([0-9]+).*name='([^']+)'.*/printf '%3.0f: %s\n' '\1' '\2'/e" | sort +; You may also need to use `amixer -c # controls` as above for the mixer names +; Default: none +;;headphone-id = 9 + +; Use volume mapping (similar to amixer -M and alsamixer), where the increase in volume is linear to the ear +; Default: false +;;mapped = true + +; Interval for volume increase/decrease (in percent points) +; Default: 5 +interval = 5 + +; Available tags: +; <label-volume> (default) +; <ramp-volume> +; <bar-volume> +format-volume = <ramp-volume> <bar-volume> + +; Available tags: +; <label-muted> (default) +; <ramp-volume> +; <bar-volume> +format-muted-prefix = + +; Available tokens: +; %percentage% (default) +label-volume = %percentage%% + +; Available tokens: +; %percentage% (default +label-muted = " Mute" +label-muted-foreground = ${color.COLOR_R} + +; Only applies if <ramp-volume> is used +ramp-volume-0 = +ramp-volume-1 = +ramp-volume-2 = + +; Only applies if <bar-volume> is used +bar-volume-width = 10 +bar-volume-gradient = false + +bar-volume-indicator = ${bar.indicator} +bar-volume-indicator-foreground = ${color.FOREGROUND} + +bar-volume-fill = ${bar.fill} +bar-volume-foreground-0 = ${color.FOREGROUND} +bar-volume-foreground-1 = ${color.FOREGROUND} +bar-volume-foreground-2 = ${color.FOREGROUND} +bar-volume-foreground-3 = ${color.FOREGROUND} +bar-volume-foreground-4 = ${color.FOREGROUND} + +bar-volume-empty = ${bar.empty} +bar-volume-empty-foreground = ${color.FOREGROUND} + +; If defined, it will replace <ramp-volume> when +; headphones are plugged in to `headphone_control_numid` +; If undefined, <ramp-volume> will be used for both +; Only applies if <ramp-volume> is used +ramp-headphones-0 = + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/bna-bar] +type = custom/text + +content = " NA" +content-prefix = 盛 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/backlight-bar] +type = internal/xbacklight + +; Use the following command to list available cards: +; $ ls -1 /sys/class/backlight/ +card = intel_backlight + +; Available tags: +; <label> (default) +; <ramp> +; <bar> +format = <bar> +format-prefix = "盛 " +; Available tokens: +; %percentage% (default) +label = %percentage%% + +; Only applies if <ramp> is used +ramp-0 = +ramp-1 = +ramp-2 = +ramp-3 = +ramp-4 = + +; Only applies if <bar> is used +bar-width = 10 +bar-gradient = false + +bar-indicator = ${bar.indicator} +bar-indicator-foreground = ${color.FOREGROUND} + +bar-fill = ${bar.fill} +bar-foreground-0 = ${color.FOREGROUND} +bar-foreground-1 = ${color.FOREGROUND} +bar-foreground-2 = ${color.FOREGROUND} +bar-foreground-3 = ${color.FOREGROUND} +bar-foreground-4 = ${color.FOREGROUND} + +bar-empty = ${bar.empty} +bar-empty-foreground = ${color.FOREGROUND} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/brightness-bar] +type = internal/backlight + +; Use the following command to list available cards: +; $ ls -1 /sys/class/backlight/ +card = ${system.sys_graphics_card} + +enable-scroll = true + +; Available tags: +; <label> (default) +; <ramp> +; <bar> +format = <bar> +format-prefix = "盛 " +; Available tokens: +; %percentage% (default) +label = %percentage%% + +; Only applies if <ramp> is used +ramp-0 = +ramp-1 = +ramp-2 = +ramp-3 = +ramp-4 = + +; Only applies if <bar> is used +bar-width = 10 +bar-gradient = false + +bar-indicator = ${bar.indicator} +bar-indicator-foreground = ${color.FOREGROUND} + +bar-fill = ${bar.fill} +bar-foreground-0 = ${color.FOREGROUND} +bar-foreground-1 = ${color.FOREGROUND} +bar-foreground-2 = ${color.FOREGROUND} +bar-foreground-3 = ${color.FOREGROUND} +bar-foreground-4 = ${color.FOREGROUND} + +bar-empty = ${bar.empty} +bar-empty-foreground = ${color.FOREGROUND} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/battery_bar] +type = internal/battery + +; This is useful in case the battery never reports 100% charge +full-at = 99 + +; Use the following command to list batteries and adapters: +; $ ls -1 /sys/class/power_supply/ +battery = ${system.sys_battery} +adapter = ${system.sys_adapter} + +; If an inotify event haven't been reported in this many +; seconds, manually poll for new values. +; +; Needed as a fallback for systems that don't report events +; on sysfs/procfs. +; +; Disable polling by setting the interval to 0. +; +; Default: 5 +poll-interval = 2 + +; see "man date" for details on how to format the time string +; NOTE: if you want to use syntax tags here you need to use %%{...} +; Default: %H:%M:%S +time-format = %H:%M + +; Available tags: +; <label-charging> (default) +; <bar-capacity> +; <ramp-capacity> +; <animation-charging> +format-charging = <bar-capacity> +format-charging-prefix = " " + +; Available tags: +; <label-discharging> (default) +; <bar-capacity> +; <ramp-capacity> +; <animation-discharging> +format-discharging = <bar-capacity> +format-discharging-prefix = " " + +; Available tags: +; <label-full> (default) +; <bar-capacity> +; <ramp-capacity> +format-full = <label-full> +format-full-prefix = " " + +; Available tokens: +; %percentage% (default) +; %time% +; %consumption% (shows current charge rate in watts) + +label-charging = %percentage%% + +; Available tokens: +; %percentage% (default) +; %time% +; %consumption% (shows current discharge rate in watts) +label-discharging = %percentage%% + +; Available tokens: +; %percentage% (default) +label-full = "Full" + +; Only applies if <bar-capacity> is used +bar-capacity-width = 10 +bar-capacity-gradient = false + +bar-capacity-indicator = ${bar.indicator} +bar-capacity-indicator-foreground = ${color.FOREGROUND} + +bar-capacity-fill = ${bar.fill} +bar-capacity-foreground-0 = ${color.green} +bar-capacity-foreground-1 = ${color.green} +bar-capacity-foreground-2 = ${color.yellow} +bar-capacity-foreground-3 = ${color.yellow} +bar-capacity-foreground-4 = ${color.red} + +bar-capacity-empty = ${bar.empty} +bar-capacity-empty-foreground = ${color.FOREGROUND} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/cpu_bar] +type = internal/cpu + +; Seconds to sleep between updates +; Default: 1 +interval = 0.5 + +; Available tags: +; <label> (default) +; <bar-load> +; <ramp-load> +; <ramp-coreload> +;;format = <label> <ramp-coreload> +format = <bar-load> <label> +format-prefix = " " + +; Available tokens: +; %percentage% (default) - total cpu load averaged over all cores +; %percentage-sum% - Cumulative load on all cores +; %percentage-cores% - load percentage for each core +; %percentage-core[1-9]% - load percentage for specific core +label = "%percentage%%" + +; Only applies if <bar-load> is used +bar-load-width = 10 +bar-load-gradient = false + +bar-load-indicator = ${bar.indicator} +bar-load-indicator-foreground = ${color.FOREGROUND} + +bar-load-fill = ${bar.fill} +bar-load-foreground-0 = ${color.FOREGROUND} +bar-load-foreground-1 = ${color.FOREGROUND} +bar-load-foreground-2 = ${color.FOREGROUND} +bar-load-foreground-3 = ${color.FOREGROUND} +bar-load-foreground-4 = ${color.FOREGROUND} + +bar-load-empty = ${bar.empty} +bar-load-empty-foreground = ${color.FOREGROUND} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/filesystem_bar] +type = internal/fs + +; Mountpoints to display +mount-0 = / +;;mount-1 = /home +;;mount-2 = /var + +; Seconds to sleep between updates +; Default: 30 +interval = 30 + +; Display fixed precision values +; Default: false +fixed-values = false + +; Spacing between entries +; Default: 2 +;;spacing = 4 + +; Available tags: +; <label-mounted> (default) +; <bar-free> +; <bar-used> +; <ramp-capacity> +format-mounted = <bar-used> <label-mounted> +format-mounted-prefix = " " + +; Available tags: +; <label-unmounted> (default) +format-unmounted = <label-unmounted> +format-unmounted-prefix = " " + +; Available tokens: +; %mountpoint% +; %type% +; %fsname% +; %percentage_free% +; %percentage_used% +; %total% +; %free% +; %used% +; Default: %mountpoint% %percentage_free%% +label-mounted = %used%/%total% + +; Available tokens: +; %mountpoint% +; Default: %mountpoint% is not mounted +label-unmounted = %mountpoint%: not mounted + +; Only applies if <bar-used> is used +bar-used-width = 10 +bar-used-gradient = false + +bar-used-indicator = ${bar.indicator} +bar-used-indicator-foreground = ${color.FOREGROUND} + +bar-used-fill = ${bar.fill} +bar-used-foreground-0 = ${color.FOREGROUND} +bar-used-foreground-1 = ${color.FOREGROUND} +bar-used-foreground-2 = ${color.FOREGROUND} +bar-used-foreground-3 = ${color.FOREGROUND} +bar-used-foreground-4 = ${color.FOREGROUND} + +bar-used-empty = ${bar.empty} +bar-used-empty-foreground = ${color.FOREGROUND} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/memory_bar] +type = internal/memory + +; Seconds to sleep between updates +; Default: 1 +interval = 2 + +; Available tags: +; <label> (default) +; <bar-used> +; <bar-free> +; <ramp-used> +; <ramp-free> +; <bar-swap-used> +; <bar-swap-free> +; <ramp-swap-used> +; <ramp-swap-free> +format = <bar-used> <label> +format-prefix = " " + +; Available tokens: +; %percentage_used% (default) +; %percentage_free% +; %gb_used% +; %gb_free% +; %gb_total% +; %mb_used% +; %mb_free% +; %mb_total% +; %percentage_swap_used% +; %percentage_swap_free% +; %mb_swap_total% +; %mb_swap_free% +; %mb_swap_used% +; %gb_swap_total% +; %gb_swap_free% +; %gb_swap_used% + +label = "%mb_used%" + +; Only applies if <bar-used> is used +bar-used-width = 10 +bar-used-gradient = false + +bar-used-indicator = ${bar.indicator} +bar-used-indicator-foreground = ${color.FOREGROUND} + +bar-used-fill = ${bar.fill} +bar-used-foreground-0 = ${color.FOREGROUND} +bar-used-foreground-1 = ${color.FOREGROUND} +bar-used-foreground-2 = ${color.FOREGROUND} +bar-used-foreground-3 = ${color.FOREGROUND} +bar-used-foreground-4 = ${color.FOREGROUND} + +bar-used-empty = ${bar.empty} +bar-used-empty-foreground = ${color.FOREGROUND} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/mpd_bar] +type = internal/mpd + +; Host where mpd is running (either ip or domain name) +; Can also be the full path to a unix socket where mpd is running. +;;host = 127.0.0.1 +;;port = 6600 +;;password = mysecretpassword + +; Seconds to sleep between progressbar/song timer sync +; Default: 1 +interval = 1 + +; Available tags: +; <label-song> (default) +; <label-time> +; <bar-progress> +; <toggle> - gets replaced with <icon-(pause|play)> +; <toggle-stop> - gets replaced with <icon-(stop|play)> +; <icon-random> +; <icon-repeat> +; <icon-repeatone> (deprecated) +; <icon-single> - Toggle playing only a single song. Replaces <icon-repeatone> +; <icon-consume> +; <icon-prev> +; <icon-stop> +; <icon-play> +; <icon-pause> +; <icon-next> +; <icon-seekb> +; <icon-seekf> +format-online = <label-song> <bar-progress> <label-time> +format-online-prefix = ﱘ + +;format-playing = ${self.format-online} +;format-paused = ${self.format-online} +;format-stopped = ${self.format-online} + +; Available tags: +; <label-offline> +format-offline = <label-offline> +format-offline-prefix = ﱘ + +; Available tokens: +; %artist% +; %album-artist% +; %album% +; %date% +; %title% +; Default: %artist% - %title% +label-song = " %artist% - %title%" +label-song-maxlen = 25 +label-song-ellipsis = true + +; Available tokens: +; %elapsed% +; %total% +; Default: %elapsed% / %total% +label-time = %elapsed% / %total% + +; Available tokens: +; None +label-offline = " Offline" + +; Only applies if <icon-X> is used +icon-play = +icon-pause = +icon-stop = +icon-prev = +icon-next = +icon-seekb = +icon-seekf = +icon-random = +icon-repeat = +icon-repeatone = +icon-single = +icon-consume = + +; Used to display the state of random/repeat/repeatone/single +; Only applies if <icon-[random|repeat|repeatone|single]> is used +toggle-on-foreground = ${color.primary} +toggle-off-foreground = ${color.COLOR_R} + +; Only applies if <bar-progress> is used +bar-progress-width = 10 +bar-progress-gradient = false + +bar-progress-indicator = ${bar.indicator} +bar-progress-indicator-foreground = ${color.FOREGROUND} + +bar-progress-fill = ${bar.fill} +bar-progress-foreground-0 = ${color.FOREGROUND} + +bar-progress-empty = ${bar.empty} +bar-progress-empty-foreground = ${color.FOREGROUND} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ diff --git a/dot-config/bspwm/themes/hack/polybar/colors.ini b/dot-config/bspwm/themes/hack/polybar/colors.ini new file mode 100644 index 00000000..fcaf1dcc --- /dev/null +++ b/dot-config/bspwm/themes/hack/polybar/colors.ini @@ -0,0 +1,28 @@ +[color] + +BACKGROUND = #01161b +FOREGROUND = #66FFFF +ALTBACKGROUND = #022a34 +ALTFOREGROUND = #00cccc +ACCENT = #007B82 + +BLACK = #01161b +RED = #007b82 +GREEN = #028c94 +YELLOW = #039ca4 +BLUE = #04acb5 +MAGENTA = #05bbc5 +CYAN = #06ccd7 +WHITE = #a3b5b8 +ALTBLACK = #01161b +ALTRED = #007b82 +ALTGREEN = #028c94 +ALTYELLOW = #039ca4 +ALTBLUE = #04acb5 +ALTMAGENTA = #05bbc5 +ALTCYAN = #06ccd7 +ALTWHITE = #a3b5b8 + +COLOR_R = #ff0000 +COLOR_G = #00ff00 +COLOR_Y = #ffff00 diff --git a/dot-config/bspwm/themes/hack/polybar/config.ini b/dot-config/bspwm/themes/hack/polybar/config.ini new file mode 100644 index 00000000..208df577 --- /dev/null +++ b/dot-config/bspwm/themes/hack/polybar/config.ini @@ -0,0 +1,309 @@ +## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +;; Global WM Settings + +[global/wm] +; Adjust the _NET_WM_STRUT_PARTIAL top value +; Used for top aligned bars +margin-bottom = 0 + +; Adjust the _NET_WM_STRUT_PARTIAL bottom value +; Used for bottom aligned bars +margin-top = 0 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +;; File Inclusion +; include an external file, like module file, etc. + +include-file = ../../system.ini +include-file = ./bars.ini +include-file = ./colors.ini +include-file = ./modules.ini + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +;; Bar Settings + +[bar/main] +; Use either of the following command to list available outputs: +; If unspecified, the application will pick the first one it finds. +; $ polybar -m | cut -d ':' -f 1 +; $ xrandr -q | grep " connected" | cut -d ' ' -f1 +monitor = ${env:MONITOR:} + +; Use the specified monitor as a fallback if the main one is not found. +monitor-fallback = + +; Require the monitor to be in connected state +; XRandR sometimes reports my monitor as being disconnected (when in use) +monitor-strict = false + +; Tell the Window Manager not to configure the window. +; Use this to detach the bar if your WM is locking its size/position. +override-redirect = false + +; Put the bar at the bottom of the screen +bottom = false + +; Prefer fixed center position for the `modules-center` block +; When false, the center position will be based on the size of the other blocks. +fixed-center = true + +; Dimension defined as pixel value (e.g. 35) or percentage (e.g. 50%), +; the percentage can optionally be extended with a pixel offset like so: +; 50%:-10, this will result in a width or height of 50% minus 10 pixels +width = 100% +height = 25 + +; Offset defined as pixel value (e.g. 35) or percentage (e.g. 50%) +; the percentage can optionally be extended with a pixel offset like so: +; 50%:-10, this will result in an offset in the x or y direction +; of 50% minus 10 pixels +offset-x = 0% +offset-y = 0% + +; Background ARGB color (e.g. #f00, #ff992a, #ddff1023) +background = ${color.BACKGROUND} + +; Foreground ARGB color (e.g. #f00, #ff992a, #ddff1023) +foreground = ${color.FOREGROUND} + +; Background gradient (vertical steps) +; background-[0-9]+ = #aarrggbb +;;background-0 = + +; Value used for drawing rounded corners +; Note: This shouldn't be used together with border-size because the border +; doesn't get rounded +; Individual top/bottom values can be defined using: +; radius-{top,bottom} +radius-top = 0.0 +radius-bottom = 0.0 + +; Under-/overline pixel size and argb color +; Individual values can be defined using: +; {overline,underline}-size +; {overline,underline}-color +underline-size = 2 +underline-color = ${color.ACCENT} + +; Values applied to all borders +; Individual side values can be defined using: +; border-{left,top,right,bottom}-size +; border-{left,top,right,bottom}-color +; The top and bottom borders are added to the bar height, so the effective +; window height is: +; height + border-top-size + border-bottom-size +; Meanwhile the effective window width is defined entirely by the width key and +; the border is placed withing this area. So you effectively only have the +; following horizontal space on the bar: +; width - border-right-size - border-left-size +;border-bottom-size = 2 +;border-bottom-color = ${color.primary} + +; Number of spaces to add at the beginning/end of the bar +; Individual side values can be defined using: +; padding-{left,right} +padding = 1 + +; Number of spaces to add before/after each module +; Individual side values can be defined using: +; module-margin-{left,right} +module-margin-left = 0 +module-margin-right = 0 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +; Fonts are defined using <font-name>;<vertical-offset> +; Font names are specified using a fontconfig pattern. +; font-0 = "Iosevka Nerd Font:size=10;3" +; font-1 = MaterialIcons:size=10 +; font-2 = Termsynu:size=8;-1 +; font-3 = FontAwesome:size=10 +; See the Fonts wiki page for more details + +font-0 = "Iosevka Nerd Font:size=10;3" +font-1 = "Iosevka Nerd Font:pixelsize=12;4" + +; Modules are added to one of the available blocks +; modules-left = cpu ram +; modules-center = xwindow xbrightness +; modules-right = ipc clock + +;modules-left = launcher workspaces google github reddit gmail twitter +;modules-center = +;modules-right = mpd updates alsa battery network date sysmenu + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[bar/top] +inherit = bar/main +border-bottom-size = 1 +border-bottom-color = ${color.ACCENT} +modules-left = menu sep cpu sep used-memory sep filesystem +modules-center = mod sep bspwm +modules-right = updates sep checknet sep battery sep date sep sysmenu +enable-ipc = true + +[bar/bottom] +inherit = bar/main +bottom = true +border-top-size = 1 +border-top-color = ${color.ACCENT} +modules-left = mpd +modules-center = network_ext +modules-right = volume sep bna-bar +enable-ipc = true + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +; The separator will be inserted between the output of each module +separator = + +; Opacity value between 0.0 and 1.0 used on fade in/out +dim-value = 1.0 + +; Value to be used to set the WM_NAME atom +; If the value is empty or undefined, the atom value +; will be created from the following template: polybar-[BAR]_[MONITOR] +; NOTE: The placeholders are not available for custom values +wm-name = bspwm + +; Locale used to localize various module data (e.g. date) +; Expects a valid libc locale, for example: sv_SE.UTF-8 +locale = + +; Position of the system tray window +; If empty or undefined, tray support will be disabled +; NOTE: A center aligned tray will cover center aligned modules +; +; Available positions: +; left +; center +; right +; none +tray-position = none + +; If true, the bar will not shift its +; contents when the tray changes +tray-detached = false + +; Tray icon max size +tray-maxsize = 16 + +; Background color for the tray container +; ARGB color (e.g. #f00, #ff992a, #ddff1023) +; By default the tray container will use the bar +; background color. +tray-background = ${color.BACKGROUND} + +; Tray offset defined as pixel value (e.g. 35) or percentage (e.g. 50%) +tray-offset-x = 0 +tray-offset-y = 0 + +; Pad the sides of each tray icon +tray-padding = 0 + +; Scale factor for tray clients +tray-scale = 1.0 + +; Restack the bar window and put it above the +; selected window manager's root +; +; Fixes the issue where the bar is being drawn +; on top of fullscreen window's +; +; Currently supported WM's: +; bspwm +; i3 (requires: `override-redirect = true`) +wm-restack = bspwm + +; Set a DPI values used when rendering text +; This only affects scalable fonts +; dpi = + +; Enable support for inter-process messaging +; See the Messaging wiki page for more details. +;enable-ipc = true + +; Fallback click handlers that will be called if +; there's no matching module handler found. +click-left = +click-middle = +click-right = +scroll-up = bspc desktop -f prev.local +scroll-down = bspc desktop -f next.local +double-click-left = +double-click-middle = +double-click-right = + +; Requires polybar to be built with xcursor support (xcb-util-cursor) +; Possible values are: +; - default : The default pointer as before, can also be an empty string (default) +; - pointer : Typically in the form of a hand +; - ns-resize : Up and down arrows, can be used to indicate scrolling +cursor-click = +cursor-scroll = + +;; WM Workspace Specific + +; bspwm +;;scroll-up = bspwm-desknext +;;scroll-down = bspwm-deskprev +;;scroll-up = bspc desktop -f prev.local +;;scroll-down = bspc desktop -f next.local + +;i3 +;;scroll-up = i3wm-wsnext +;;scroll-down = i3wm-wsprev +;;scroll-up = i3-msg workspace next_on_output +;;scroll-down = i3-msg workspace prev_on_output + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +;; Application Settings + +[settings] +; The throttle settings lets the eventloop swallow up til X events +; if they happen within Y millisecond after first event was received. +; This is done to prevent flood of update event. +; +; For example if 5 modules emit an update event at the same time, we really +; just care about the last one. But if we wait too long for events to swallow +; the bar would appear sluggish so we continue if timeout +; expires or limit is reached. +throttle-output = 5 +throttle-output-for = 10 + +; Time in milliseconds that the input handler will wait between processing events +;throttle-input-for = 30 + +; Reload upon receiving XCB_RANDR_SCREEN_CHANGE_NOTIFY events +screenchange-reload = false + +; Compositing operators +; @see: https://www.cairographics.org/manual/cairo-cairo-t.html#cairo-operator-t +compositing-background = source +compositing-foreground = over +compositing-overline = over +compositing-underline = over +compositing-border = over + +; Define fallback values used by all module formats +;format-foreground = +;format-background = +;format-underline = +;format-overline = +;format-spacing = +;format-padding = +;format-margin = +;format-offset = + +; Enables pseudo-transparency for the bar +; If set to true the bar can be transparent without a compositor. +pseudo-transparency = false + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ diff --git a/dot-config/bspwm/themes/hack/polybar/launch.sh b/dot-config/bspwm/themes/hack/polybar/launch.sh new file mode 100755 index 00000000..d5552039 --- /dev/null +++ b/dot-config/bspwm/themes/hack/polybar/launch.sh @@ -0,0 +1,43 @@ +#!/usr/bin/env bash + +## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" +CARD="$(light -L | grep 'backlight' | head -n1 | cut -d'/' -f3)" +INTERFACE="$(ip link | awk '/state UP/ {print $2}' | tr -d :)" +RFILE="$DIR/.module" + +# Fix backlight and network modules +fix_modules() { + if [[ -z "$CARD" ]]; then + sed -i -e 's/backlight/bna/g' "$DIR"/config.ini + elif [[ "$CARD" != *"intel_"* ]]; then + sed -i -e 's/backlight/brightness/g' "$DIR"/config.ini + fi + + if [[ "$INTERFACE" == e* ]]; then + sed -i -e 's/network/ethernet/g' "$DIR"/config.ini + fi +} + +# Launch the bar +launch_bar() { + # Terminate already running bar instances + killall -q polybar + + # Wait until the processes have been shut down + while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done + + # Launch the bar + for mon in $(polybar --list-monitors | cut -d":" -f1); do + MONITOR=$mon polybar -q top -c "$DIR"/config.ini & + MONITOR=$mon polybar -q bottom -c "$DIR"/config.ini & + done +} + +# Execute functions +if [[ ! -f "$RFILE" ]]; then + fix_modules + touch "$RFILE" +fi +launch_bar diff --git a/dot-config/bspwm/themes/hack/polybar/modules.ini b/dot-config/bspwm/themes/hack/polybar/modules.ini new file mode 100644 index 00000000..1faaab48 --- /dev/null +++ b/dot-config/bspwm/themes/hack/polybar/modules.ini @@ -0,0 +1,1258 @@ +## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/bspwm] +type = internal/bspwm + +pin-workspaces = true +inline-mode = false + +enable-click = true +enable-scroll = true +reverse-scroll = true + +fuzzy-match = true + +; ws-icon-[0-9]+ = label;icon +; Note that the label needs to correspond with the bspwm workspace name +ws-icon-0 = 1; +ws-icon-1 = 2; +ws-icon-2 = 3; +ws-icon-3 = 4; +ws-icon-4 = 5; +ws-icon-5 = 6; +ws-icon-6 = 7; +ws-icon-7 = 8; +ws-icon-default = + +format = <label-state> + +label-monitor = %name% + +; If any values for label-dimmed-N are defined, the workspace/mode +; colors will get overridden with those values if the monitor is out of focus +; To only override workspaces in a specific state, use: +; label-dimmed-focused +; label-dimmed-occupied +; label-dimmed-urgent +; label-dimmed-empty +;label-dimmed-foreground = ${color.FOREGROUND} +;label-dimmed-underline = ${color.YELLOW} +;label-dimmed-focused-background = ${color.BACKGROUND} + +label-focused = %name% +label-focused-foreground = ${color.COLOR_R} +#label-focused-underline = ${color.COLOR_R} +label-focused-padding = 1 + +label-occupied = %name% +label-occupied-foreground = ${color.COLOR_Y} +;label-occupied-underline = ${color.COLOR_Y} +label-occupied-padding = 1 + +label-urgent = %name% +label-urgent-foreground = ${color.COLOR_G} +#label-urgent-underline = ${color.COLOR_G} +label-urgent-padding = 1 + +label-empty = %name% +label-empty-foreground = ${color.FOREGROUND} +label-empty-padding = 1 + +; Separator in between workspaces +label-separator = "∙" +label-separator-padding = 0 +label-separator-foreground = ${color.ALTBACKGROUND} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/mod] +type = internal/bspwm + +format = [<label-mode>] +format-background = ${color.BACKGROUND} +format-foreground = ${color.COLOR_G} +format-padding = 0 + +label-monocle = "Monocle" +label-tiled = "Tiled" + +label-floating = ", Float" +label-pseudotiled = ", Pseudo" +label-fullscreen = ", Full" + +label-locked = " | Locked" +label-sticky = " | Sticky" +label-private = " | Private" + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/alsa] +type = internal/alsa + +; Soundcard to be used +; Usually in the format hw:# where # is the card number +; You can find the different card numbers in `/proc/asound/cards` +master-soundcard = default +speaker-soundcard = default +headphone-soundcard = default + +; Name of the master, speaker and headphone mixers +; Use the following command to list available mixer controls: +; $ amixer scontrols | sed -nr "s/.*'([[:alnum:]]+)'.*/\1/p" +; If master, speaker or headphone-soundcard isn't the default, +; use `amixer -c # scontrols` instead where # is the number +; of the master, speaker or headphone soundcard respectively +; +; Default: Master +master-mixer = Master + +; Optionally define speaker and headphone mixers +; Default: none +;;speaker-mixer = Speaker +; Default: none +;;headphone-mixer = Headphone + +; NOTE: This is required if headphone_mixer is defined +; Use the following command to list available device controls +; $ amixer controls | sed -r "/CARD/\!d; s/.*=([0-9]+).*name='([^']+)'.*/printf '%3.0f: %s\n' '\1' '\2'/e" | sort +; You may also need to use `amixer -c # controls` as above for the mixer names +; Default: none +;;headphone-id = 9 + +; Use volume mapping (similar to amixer -M and alsamixer), where the increase in volume is linear to the ear +; Default: false +;;mapped = true + +; Interval for volume increase/decrease (in percent points) +; Default: 5 +interval = 5 + +; Available tags: +; <label-volume> (default) +; <ramp-volume> +; <bar-volume> +format-volume = <ramp-volume> <label-volume> + +; Available tags: +; <label-muted> (default) +; <ramp-volume> +; <bar-volume> +format-muted = <label-muted> +format-muted-prefix = + +; Available tokens: +; %percentage% (default) +label-volume = %percentage%% + +; Available tokens: +; %percentage% (default +label-muted = " Mute" +label-muted-foreground = ${color.COLOR_R} + +; Only applies if <ramp-volume> is used +ramp-volume-0 = +ramp-volume-1 = +ramp-volume-2 = + +; If defined, it will replace <ramp-volume> when +; headphones are plugged in to `headphone_control_numid` +; If undefined, <ramp-volume> will be used for both +; Only applies if <ramp-volume> is used +ramp-headphones-0 = + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/bna] +type = custom/text + +content = " NA" +content-prefix = 盛 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/backlight] +type = internal/xbacklight + +; Use the following command to list available cards: +; $ ls -1 /sys/class/backlight/ +card = intel_backlight + +; Available tags: +; <label> (default) +; <ramp> +; <bar> +format = <ramp> <label> + +; Available tokens: +; %percentage% (default) +label = %percentage%% + +; Only applies if <ramp> is used +ramp-0 = +ramp-1 = +ramp-2 = +ramp-3 = +ramp-4 = + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/brightness] +type = internal/backlight + +; Use the following command to list available cards: +; $ ls -1 /sys/class/backlight/ +card = ${system.sys_graphics_card} + +enable-scroll = true + +; Available tags: +; <label> (default) +; <ramp> +; <bar> +format = <ramp> <label> + +; Available tokens: +; %percentage% (default) +label = %percentage%% + +; Only applies if <ramp> is used +ramp-0 = +ramp-1 = +ramp-2 = +ramp-3 = +ramp-4 = + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/battery] +type = internal/battery + +; This is useful in case the battery never reports 100% charge +full-at = 99 + +; Use the following command to list batteries and adapters: +; $ ls -1 /sys/class/power_supply/ +battery = ${system.sys_battery} +adapter = ${system.sys_adapter} + +; If an inotify event haven't been reported in this many +; seconds, manually poll for new values. +; +; Needed as a fallback for systems that don't report events +; on sysfs/procfs. +; +; Disable polling by setting the interval to 0. +; +; Default: 5 +poll-interval = 2 + +; see "man date" for details on how to format the time string +; NOTE: if you want to use syntax tags here you need to use %%{...} +; Default: %H:%M:%S +time-format = %H:%M + +; Available tags: +; <label-charging> (default) +; <bar-capacity> +; <ramp-capacity> +; <animation-charging> +format-charging = <animation-charging> <label-charging> + +; Available tags: +; <label-discharging> (default) +; <bar-capacity> +; <ramp-capacity> +; <animation-discharging> +format-discharging = <ramp-capacity> <label-discharging> + +; Available tags: +; <label-full> (default) +; <bar-capacity> +; <ramp-capacity> +format-full = <label-full> +format-full-prefix = + +; Available tokens: +; %percentage% (default) +; %time% +; %consumption% (shows current charge rate in watts) +label-charging = "%percentage%% (%time%)" + +; Available tokens: +; %percentage% (default) +; %time% +; %consumption% (shows current discharge rate in watts) +label-discharging = "%percentage%% (%time%)" + +; Available tokens: +; %percentage% (default) +label-full = " Full" + +; Only applies if <ramp-capacity> is used +ramp-capacity-0 = +ramp-capacity-1 = +ramp-capacity-2 = +ramp-capacity-3 = +ramp-capacity-4 = + +; Only applies if <bar-capacity> is used +;bar-capacity-width = 10 + +; Only applies if <animation-charging> is used +animation-charging-0 = +animation-charging-1 = +animation-charging-2 = +animation-charging-3 = +animation-charging-4 = + +; Framerate in milliseconds +animation-charging-framerate = 750 + +; Only applies if <animation-discharging> is used +;;animation-discharging-0 = ${battery.anim0} +;;animation-discharging-1 = ${battery.anim1} + +; Framerate in milliseconds +;animation-discharging-framerate = 500 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/cpu] +type = internal/cpu + +; Seconds to sleep between updates +; Default: 1 +interval = 1 + +; Available tags: +; <label> (default) +; <bar-load> +; <ramp-load> +; <ramp-coreload> +;;format = <label> <ramp-coreload> +format = <label> +format-prefix = ﮕ + +; Available tokens: +; %percentage% (default) - total cpu load averaged over all cores +; %percentage-sum% - Cumulative load on all cores +; %percentage-cores% - load percentage for each core +; %percentage-core[1-9]% - load percentage for specific core +label = " %percentage%%" + +; Spacing between individual per-core ramps +;;ramp-coreload-spacing = 1 +;;ramp-coreload-0 = ${cpu.load0} +;;ramp-coreload-1 = ${cpu.load1} + +;;ramp-load-0 = ${cpu.load0} +;;ramp-load-1 = ${cpu.load1} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/date] +type = internal/date + +; Seconds to sleep between updates +interval = 1.0 + +; See "http://en.cppreference.com/w/cpp/io/manip/put_time" for details on how to format the date string +; NOTE: if you want to use syntax tags here you need to use %%{...} +;;date = %Y-%m-%d% + +; Optional time format +time = " %I:%M %p" + +; if `date-alt` or `time-alt` is defined, clicking +; the module will toggle between formats +;;date-alt = %A, %d %B %Y +time-alt = " %a, %d %b %Y" + +; Available tags: +; <label> (default) +format = <label> + +; Available tokens: +; %date% +; %time% +; Default: %date% +label = %time% + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/filesystem] +type = internal/fs + +; Mountpoints to display +mount-0 = / +;;mount-1 = /home +;;mount-2 = /var + +; Seconds to sleep between updates +; Default: 30 +interval = 30 + +; Display fixed precision values +; Default: false +fixed-values = true + +; Spacing between entries +; Default: 2 +;;spacing = 4 + +; Available tags: +; <label-mounted> (default) +; <bar-free> +; <bar-used> +; <ramp-capacity> +format-mounted = <label-mounted> +format-mounted-prefix = + +; Available tags: +; <label-unmounted> (default) +format-unmounted = <label-unmounted> +format-unmounted-prefix = + +; Available tokens: +; %mountpoint% +; %type% +; %fsname% +; %percentage_free% +; %percentage_used% +; %total% +; %free% +; %used% +; Default: %mountpoint% %percentage_free%% +label-mounted = " %free%" + +; Available tokens: +; %mountpoint% +; Default: %mountpoint% is not mounted +label-unmounted = " %mountpoint%: not mounted" + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/memory] +type = internal/memory + +; Seconds to sleep between updates +; Default: 1 +interval = 1 + +; Available tags: +; <label> (default) +; <bar-used> +; <bar-free> +; <ramp-used> +; <ramp-free> +; <bar-swap-used> +; <bar-swap-free> +; <ramp-swap-used> +; <ramp-swap-free> +format = <label> +format-prefix = + +; Available tokens: +; %percentage_used% (default) +; %percentage_free% +; %gb_used% +; %gb_free% +; %gb_total% +; %mb_used% +; %mb_free% +; %mb_total% +; %percentage_swap_used% +; %percentage_swap_free% +; %mb_swap_total% +; %mb_swap_free% +; %mb_swap_used% +; %gb_swap_total% +; %gb_swap_free% +; %gb_swap_used% + +label = " %mb_used%" + +; Only applies if <ramp-used> is used +;;ramp-used-0 = ${memory.used0} +;;ramp-used-1 = ${memory.used1} +;;ramp-used-2 = ${memory.used2} + +; Only applies if <ramp-free> is used +;;ramp-free-0 = ${memory.free0} +;;ramp-free-1 = ${memory.free1} +;;ramp-free-2 = ${memory.free2} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/used-memory] +type = custom/script + +exec = free -m | grep 'Mem:' | tr -s ' ' | cut -d ' ' -f3 + +tail = true +interval = 5 + +format = <label> +format-prefix = + +label = " %output% MB" + +click-left = alacritty --class 'alacritty-float,alacritty-float' --config-file ~/.config/bspwm/alacritty/alacritty.yml -e "top" & + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/mpd] +type = internal/mpd + +; Host where mpd is running (either ip or domain name) +; Can also be the full path to a unix socket where mpd is running. +;;host = 127.0.0.1 +;;port = 6600 +;;password = mysecretpassword + +; Seconds to sleep between progressbar/song timer sync +; Default: 1 +interval = 1 + +; Available tags: +; <label-song> (default) +; <label-time> +; <bar-progress> +; <toggle> - gets replaced with <icon-(pause|play)> +; <toggle-stop> - gets replaced with <icon-(stop|play)> +; <icon-random> +; <icon-repeat> +; <icon-repeatone> (deprecated) +; <icon-single> - Toggle playing only a single song. Replaces <icon-repeatone> +; <icon-consume> +; <icon-prev> +; <icon-stop> +; <icon-play> +; <icon-pause> +; <icon-next> +; <icon-seekb> +; <icon-seekf> +format-online = <label-song> <icon-prev> <toggle> <icon-next> +format-online-prefix = ﱘ +format-online-foreground = ${color.FOREGROUND} + +;format-playing = ${self.format-online} +;format-paused = ${self.format-online} +;format-stopped = ${self.format-online} + +; Available tags: +; <label-offline> +format-offline = <label-offline> +format-offline-prefix = ﱘ +format-offline-foreground = ${color.FOREGROUND} + +; Available tokens: +; %artist% +; %album-artist% +; %album% +; %date% +; %title% +; Default: %artist% - %title% +label-song = " %artist% - %title%" +label-song-maxlen = 35 +label-song-ellipsis = true + +; Available tokens: +; %elapsed% +; %total% +; Default: %elapsed% / %total% +label-time = %elapsed% / %total% + +; Available tokens: +; None +label-offline = " Offline" + +; Only applies if <icon-X> is used +icon-play = +icon-pause = +icon-stop = +icon-prev = +icon-next = +icon-seekb = +icon-seekf = +icon-random = +icon-repeat = +icon-repeatone = +icon-single = +icon-consume = + +; Used to display the state of random/repeat/repeatone/single +; Only applies if <icon-[random|repeat|repeatone|single]> is used +toggle-on-foreground = green +toggle-off-foreground = red + +; Only applies if <bar-progress> is used +;;bar-progress-width = 45 +;;bar-progress-indicator = | +;;bar-progress-fill = ─ +;;bar-progress-empty = ─ + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +; Normal Module +[module/network] +type = internal/network +interface = ${system.sys_network_interface} + +; Seconds to sleep between updates +; Default: 1 +interval = 1.0 + +; Test connectivity every Nth update +; A value of 0 disables the feature +; NOTE: Experimental (needs more testing) +; Default: 0 +;ping-interval = 3 + +; @deprecated: Define min width using token specifiers (%downspeed:min% and %upspeed:min%) +; Minimum output width of upload/download rate +; Default: 3 +;;udspeed-minwidth = 5 + +; Accumulate values from all interfaces +; when querying for up/downspeed rate +; Default: false +accumulate-stats = true + +; Consider an `UNKNOWN` interface state as up. +; Some devices have an unknown state, even when they're running +; Default: false +unknown-as-up = true + +; Available tags: +; <label-connected> (default) +; <ramp-signal> +format-connected = <label-connected> +format-connected-prefix = 說 + +; Available tags: +; <label-disconnected> (default) +format-disconnected = <label-disconnected> +format-disconnected-prefix = ﲁ + +; Available tags: +; <label-connected> (default) +; <label-packetloss> +; <animation-packetloss> +;;format-packetloss = <animation-packetloss> <label-connected> + +; Available tokens: +; %ifname% [wireless+wired] +; %local_ip% [wireless+wired] +; %local_ip6% [wireless+wired] +; %essid% [wireless] +; %signal% [wireless] +; %upspeed% [wireless+wired] +; %downspeed% [wireless+wired] +; %linkspeed% [wired] +; Default: %ifname% %local_ip% +label-connected = "%{A1:nmd &:} %essid%%{A}" + +; Available tokens: +; %ifname% [wireless+wired] +; Default: (none) +label-disconnected = "%{A1:nmd &:} Offline%{A}" +;;label-disconnected-foreground = #66ffffff + +; Available tokens: +; %ifname% [wireless+wired] +; %local_ip% [wireless+wired] +; %local_ip6% [wireless+wired] +; %essid% [wireless] +; %signal% [wireless] +; %upspeed% [wireless+wired] +; %downspeed% [wireless+wired] +; %linkspeed% [wired] +; Default: (none) +;label-packetloss = %essid% +;label-packetloss-foreground = #eefafafa + +; Only applies if <ramp-signal> is used +ramp-signal-0 = +ramp-signal-1 = +ramp-signal-2 = +ramp-signal-3 = +ramp-signal-4 = + +; Only applies if <animation-packetloss> is used +;;animation-packetloss-0 = ⚠ +;;animation-packetloss-0-foreground = #ffa64c +;;animation-packetloss-1 = ⚠ +;;animation-packetloss-1-foreground = #000000 +; Framerate in milliseconds +;;animation-packetloss-framerate = 500 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/network_ext] +type = internal/network +interface = ${system.sys_network_interface} + +; Seconds to sleep between updates +; Default: 1 +interval = 1.0 + +; Test connectivity every Nth update +; A value of 0 disables the feature +; NOTE: Experimental (needs more testing) +; Default: 0 +;ping-interval = 3 + +; @deprecated: Define min width using token specifiers (%downspeed:min% and %upspeed:min%) +; Minimum output width of upload/download rate +; Default: 3 +;;udspeed-minwidth = 5 + +; Accumulate values from all interfaces +; when querying for up/downspeed rate +; Default: false +accumulate-stats = true + +; Consider an `UNKNOWN` interface state as up. +; Some devices have an unknown state, even when they're running +; Default: false +unknown-as-up = true + +; Available tags: +; <label-connected> (default) +; <ramp-signal> +format-connected = <label-connected> +format-connected-prefix = 直 +; Available tags: +; <label-disconnected> (default) +format-disconnected = <label-disconnected> +format-disconnected-prefix = 睊 + +; Available tags: +; <label-connected> (default) +; <label-packetloss> +; <animation-packetloss> +;;format-packetloss = <animation-packetloss> <label-connected> + +; Available tokens: +; %ifname% [wireless+wired] +; %local_ip% [wireless+wired] +; %local_ip6% [wireless+wired] +; %essid% [wireless] +; %signal% [wireless] +; %upspeed% [wireless+wired] +; %downspeed% [wireless+wired] +; %linkspeed% [wired] +; Default: %ifname% %local_ip% +label-connected = "%{A1:nmd &:} %ifname% ∙ %signal% ∙ 歷 %local_ip% ∙ %essid% ∙ %downspeed% ∙ 祝 %upspeed%%{A}" + +; Available tokens: +; %ifname% [wireless+wired] +; Default: (none) +label-disconnected = "%{A1:nmd &:} Disconnected%{A}" +;;label-disconnected-foreground = #66ffffff + +; Available tokens: +; %ifname% [wireless+wired] +; %local_ip% [wireless+wired] +; %local_ip6% [wireless+wired] +; %essid% [wireless] +; %signal% [wireless] +; %upspeed% [wireless+wired] +; %downspeed% [wireless+wired] +; %linkspeed% [wired] +; Default: (none) +;label-packetloss = %essid% +;label-packetloss-foreground = #eefafafa + +; Only applies if <ramp-signal> is used +ramp-signal-0 = +ramp-signal-1 = +ramp-signal-2 = +ramp-signal-3 = +ramp-signal-4 = + +; Only applies if <animation-packetloss> is used +;;animation-packetloss-0 = ⚠ +;;animation-packetloss-0-foreground = #ffa64c +;;animation-packetloss-1 = ⚠ +;;animation-packetloss-1-foreground = #000000 +; Framerate in milliseconds +;;animation-packetloss-framerate = 500 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/ethernet_ext] +type = internal/network +interface = ${system.sys_network_interface} + +; Seconds to sleep between updates +; Default: 1 +interval = 1.0 + +; Test connectivity every Nth update +; A value of 0 disables the feature +; NOTE: Experimental (needs more testing) +; Default: 0 +;ping-interval = 3 + +; @deprecated: Define min width using token specifiers (%downspeed:min% and %upspeed:min%) +; Minimum output width of upload/download rate +; Default: 3 +;;udspeed-minwidth = 5 + +; Accumulate values from all interfaces +; when querying for up/downspeed rate +; Default: false +accumulate-stats = true + +; Consider an `UNKNOWN` interface state as up. +; Some devices have an unknown state, even when they're running +; Default: false +unknown-as-up = true + +; Available tags: +; <label-connected> (default) +; <ramp-signal> +format-connected = <label-connected> +format-connected-prefix = 泌 +; Available tags: +; <label-disconnected> (default) +format-disconnected = <label-disconnected> +format-disconnected-prefix = 戀 + +; Available tags: +; <label-connected> (default) +; <label-packetloss> +; <animation-packetloss> +;;format-packetloss = <animation-packetloss> <label-connected> + +; Available tokens: +; %ifname% [wireless+wired] +; %local_ip% [wireless+wired] +; %local_ip6% [wireless+wired] +; %essid% [wireless] +; %signal% [wireless] +; %upspeed% [wireless+wired] +; %downspeed% [wireless+wired] +; %linkspeed% [wired] +; Default: %ifname% %local_ip% +label-connected = "%{A1:nmd &:} %ifname% ∙ 歷 %local_ip% ∙ %downspeed% ∙ 祝 %upspeed%%{A}" + +; Available tokens: +; %ifname% [wireless+wired] +; Default: (none) +label-disconnected = "%{A1:nmd &:} Disconnected%{A}" +;;label-disconnected-foreground = #66ffffff + +; Available tokens: +; %ifname% [wireless+wired] +; %local_ip% [wireless+wired] +; %local_ip6% [wireless+wired] +; %essid% [wireless] +; %signal% [wireless] +; %upspeed% [wireless+wired] +; %downspeed% [wireless+wired] +; %linkspeed% [wired] +; Default: (none) +;label-packetloss = %essid% +;label-packetloss-foreground = #eefafafa + +; Only applies if <ramp-signal> is used +ramp-signal-0 = +ramp-signal-1 = +ramp-signal-2 = +ramp-signal-3 = +ramp-signal-4 = + +; Only applies if <animation-packetloss> is used +;;animation-packetloss-0 = ⚠ +;;animation-packetloss-0-foreground = #ffa64c +;;animation-packetloss-1 = ⚠ +;;animation-packetloss-1-foreground = #000000 +; Framerate in milliseconds +;;animation-packetloss-framerate = 500 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/pulseaudio] +type = internal/pulseaudio + +; Sink to be used, if it exists (find using `pacmd list-sinks`, name field) +; If not, uses default sink +sink = alsa_output.pci-0000_03_00.6.analog-stereo + +; Use PA_VOLUME_UI_MAX (~153%) if true, or PA_VOLUME_NORM (100%) if false +; Default: true +use-ui-max = false + +; Interval for volume increase/decrease (in percent points) +; Default: 5 +interval = 5 + +; Available tags: +; <label-volume> (default) +; <ramp-volume> +; <bar-volume> +format-volume = <ramp-volume> <label-volume> + +; Available tags: +; <label-muted> (default) +; <ramp-volume> +; <bar-volume> +format-muted = <label-muted> +format-muted-prefix = + +; Available tokens: +; %percentage% (default) +label-volume = %percentage%% + +; Available tokens: +; %percentage% (default +label-muted = " Mute" +label-muted-foreground = ${color.COLOR_R} + +; Only applies if <ramp-volume> is used +; Only applies if <ramp-volume> is used +ramp-volume-0 = +ramp-volume-1 = +ramp-volume-2 = + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/temperature] +type = internal/temperature + +; Seconds to sleep between updates +; Default: 1 +interval = 0.5 + +; Thermal zone to use +; To list all the zone types, run +; $ for i in /sys/class/thermal/thermal_zone*; do echo "$i: $(<$i/type)"; done +; Default: 0 +thermal-zone = 0 + +; Full path of temperature sysfs path +; Use `sensors` to find preferred temperature source, then run +; $ for i in /sys/class/hwmon/hwmon*/temp*_input; do echo "$(<$(dirname $i)/name): $(cat ${i%_*}_label 2>/dev/null || echo $(basename ${i%_*})) $(readlink -f $i)"; done +; to find path to desired file +; Default reverts to thermal zone setting +;;hwmon-path = /sys/devices/platform/coretemp.0/hwmon/hwmon2/temp1_input +hwmon-path = /sys/devices/pci0000:00/0000:00:01.3/0000:01:00.0/hwmon/hwmon0/temp1_input + +; Threshold temperature to display warning label (in degrees celsius) +; Default: 80 +warn-temperature = 65 + +; Whether or not to show units next to the temperature tokens (°C, °F) +; Default: true +units = true + +; Available tags: +; <label> (default) +; <ramp> +format = <ramp> <label> + +; Available tags: +; <label-warn> (default) +; <ramp> +format-warn = <ramp> <label-warn> + +; Available tokens: +; %temperature% (deprecated) +; %temperature-c% (default, temperature in °C) +; %temperature-f% (temperature in °F) +label = %temperature-c% + +; Available tokens: +; %temperature% (deprecated) +; %temperature-c% (default, temperature in °C) +; %temperature-f% (temperature in °F) +label-warn = "%temperature-c%" +label-warn-foreground = ${color.COLOR_R} + +; Requires the <ramp> tag +; The icon selection will range from 0 to `warn-temperature` +; with the current temperature as index. +ramp-0 = +ramp-1 = +ramp-2 = +ramp-3 = +ramp-4 = + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/keyboard] +type = internal/xkeyboard + +; List of indicators to ignore +blacklist-0 = num lock +blacklist-1 = scroll lock + +; Available tags: +; <label-layout> (default) +; <label-indicator> (default) +format = <label-layout> <label-indicator> +format-prefix = + +; Available tokens: +; %layout% +; %name% +; %number% +; Default: %layout% +label-layout = " %layout%" + +; Available tokens: +; %name% +; Default: %name% +label-indicator-on = %name% +label-indicator-on-foreground = ${color.FOREGROUND} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/title] +type = internal/xwindow + +; Available tags: +; <label> (default) +format = <label> +;format-prefix = + +; Available tokens: +; %title% +; Default: %title% +label = "%title%" +label-maxlen = 30 + +; Used instead of label when there is no window title +label-empty = Desktop + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/workspaces] +type = internal/xworkspaces + +; Only show workspaces defined on the same output as the bar +; +; Useful if you want to show monitor specific workspaces +; on different bars +; +; Default: false +pin-workspaces = true + +; Create click handler used to focus desktop +; Default: true +enable-click = true + +; Create scroll handlers used to cycle desktops +; Default: true +enable-scroll = true + +; icon-[0-9]+ = <desktop-name>;<icon> +; NOTE: The desktop name needs to match the name configured by the WM +; You can get a list of the defined desktops using: +; $ xprop -root _NET_DESKTOP_NAMES +icon-0 = 1;I +icon-1 = 2;II +icon-2 = 3;III +icon-3 = 4;IV +icon-4 = 5;V +icon-default = + + +; Available tags: +; <label-monitor> +; <label-state> - gets replaced with <label-(active|urgent|occupied|empty)> +; Default: <label-state> +format = <label-state> +format-padding = 1 + +; Available tokens: +; %name% +; Default: %name% +label-monitor = %name% + +; Available tokens: +; %name% +; %icon% +; %index% +; Default: %icon% %name% +label-active = %icon% +label-active-foreground = ${color.COLOR_R} + +; Available tokens: +; %name% +; %icon% +; %index% +; Default: %icon% %name% +label-occupied = %icon% +label-occupied-foreground = ${color.COLOR_Y} + +; Available tokens: +; %name% +; %icon% +; %index% +; Default: %icon% %name% +label-urgent = %icon% +label-urgent-foreground = ${color.COLOR_G} + +; Available tokens: +; %name% +; %icon% +; %index% +; Default: %icon% %name% +label-empty = %icon% + +label-active-padding = 2 +label-urgent-padding = 2 +label-occupied-padding = 2 +label-empty-padding = 2 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/menu] +type = custom/text + +content = " Programs" +content-prefix = ﮊ +content-prefix-font = 2 +content-foreground = ${color.FOREGROUND} +content-padding = 0 + +click-left = ~/.config/bspwm/scripts/rofi_launcher +click-right = ~/.config/bspwm/scripts/rofi_runner + +;;scroll-up = path_to_script +;;scroll-down = path_to_script + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/sysmenu] +type = custom/text + +content = +content-foreground = ${color.FOREGROUND} +content-padding = 0 + +click-left = ~/.config/bspwm/scripts/rofi_powermenu + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/sep] +type = custom/text + +content = ∙ +content-background = ${color.BACKGROUND} +content-foreground = ${color.ACCENT} +content-padding = 2 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/checknet] +type = custom/script + +; Available tokens: +; %counter% +; Command to be executed (using "/usr/bin/env sh -c [command]") +exec = ~/.config/bspwm/themes/hack/polybar/scripts/check-network + +; Conditional command that, if defined, needs to exit successfully +; before the main exec command is invoked. +; Default: "" +;;exec-if = "" + +; Will the script output continous content? +; Default: false +tail = true + +; Seconds to sleep between updates +; Default: 2 (0 if `tail = true`) +interval = 5 + +; Available tags: +; <output> - deprecated +; <label> (default) +format = <label> +;format-prefix = + +; Available tokens: +; %output% +; Default: %output% +label = %output% + +; Available tokens: +; %counter% +; %pid% +; +; "click-(left|middle|right)" will be executed using "/usr/bin/env sh -c [command]" +click-left = nmd & +click-right = nmd & +;;double-click-left = echo double left %counter% +;;double-click-middle = echo double middle %counter% +;;double-click-right = echo double right %counter% + +; Available tokens: +; %counter% +; %pid% +; +; "scroll-(up|down)" will be executed using "/usr/bin/env sh -c [command]" +;;scroll-up = echo scroll up %counter% +;;scroll-down = echo scroll down %counter% + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/updates] +type = custom/script + +; Available tokens: +; %counter% +; Command to be executed (using "/usr/bin/env sh -c [command]") +exec = ~/.config/bspwm/themes/hack/polybar/scripts/updates.sh + +; Conditional command that, if defined, needs to exit successfully +; before the main exec command is invoked. +; Default: "" +;;exec-if = "" + +; Will the script output continous content? +; Default: false +tail = true + +; Seconds to sleep between updates +; Default: 2 (0 if `tail = true`) +interval = 5 + +; Available tags: +; <output> - deprecated +; <label> (default) +format = <label> +format-prefix = + +; Available tokens: +; %output% +; Default: %output% +label = %output% + +; Available tokens: +; %counter% +; %pid% +; +; "click-(left|middle|right)" will be executed using "/usr/bin/env sh -c [command]" +click-left = exo-open --launch TerminalEmulator && sleep 0.6 && xdotool type 'sudo pacman -Syu' +click-right = exo-open --launch TerminalEmulator && sleep 0.6 && xdotool type 'sudo pacman -Syu' +;;double-click-left = echo double left %counter% +;;double-click-middle = echo double middle %counter% +;;double-click-right = echo double right %counter% + +; Available tokens: +; %counter% +; %pid% +; +; "scroll-(up|down)" will be executed using "/usr/bin/env sh -c [command]" +;;scroll-up = echo scroll up %counter% +;;scroll-down = echo scroll down %counter% + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ diff --git a/dot-config/bspwm/themes/hack/polybar/scripts/check-network b/dot-config/bspwm/themes/hack/polybar/scripts/check-network new file mode 100755 index 00000000..f7dd0a36 --- /dev/null +++ b/dot-config/bspwm/themes/hack/polybar/scripts/check-network @@ -0,0 +1,21 @@ +#!/usr/bin/env bash + +## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + +count=0 +connected="說" +disconnected="ﲁ" + +ID="$(ip link | awk '/state UP/ {print $2}')" + +while true; do + if (ping -c 1 archlinux.org || ping -c 1 google.com || ping -c 1 bitbucket.org || ping -c 1 github.com || ping -c 1 sourceforge.net) &>/dev/null; then + if [[ $ID == e* ]]; then + echo "$connected Online" ; sleep 25 + else + echo "$connected Online" ; sleep 25 + fi + else + echo "$disconnected Offline" ; sleep 5 + fi +done diff --git a/dot-config/bspwm/themes/hack/polybar/scripts/checkupdates b/dot-config/bspwm/themes/hack/polybar/scripts/checkupdates new file mode 100755 index 00000000..4d8a5e81 --- /dev/null +++ b/dot-config/bspwm/themes/hack/polybar/scripts/checkupdates @@ -0,0 +1,117 @@ +#!/usr/bin/bash +# +# checkupdates: Safely print a list of pending updates. +# +# Copyright (c) 2013 Kyle Keen <keenerd@gmail.com> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# + +declare -r myname='checkupdates' +declare -r myver='1.0.0' + +plain() { + (( QUIET )) && return + local mesg=$1; shift + printf "${BOLD} ${mesg}${ALL_OFF}\n" "$@" >&1 +} + +msg() { + (( QUIET )) && return + local mesg=$1; shift + printf "${GREEN}==>${ALL_OFF}${BOLD} ${mesg}${ALL_OFF}\n" "$@" >&1 +} + +msg2() { + (( QUIET )) && return + local mesg=$1; shift + printf "${BLUE} ->${ALL_OFF}${BOLD} ${mesg}${ALL_OFF}\n" "$@" >&1 +} + +ask() { + local mesg=$1; shift + printf "${BLUE}::${ALL_OFF}${BOLD} ${mesg}${ALL_OFF}" "$@" >&1 +} + +warning() { + local mesg=$1; shift + printf "${YELLOW}==> $(gettext "WARNING:")${ALL_OFF}${BOLD} ${mesg}${ALL_OFF}\n" "$@" >&2 +} + +error() { + local mesg=$1; shift + printf "${RED}==> $(gettext "ERROR:")${ALL_OFF}${BOLD} ${mesg}${ALL_OFF}\n" "$@" >&2 +} + +# check if messages are to be printed using color +unset ALL_OFF BOLD BLUE GREEN RED YELLOW +if [[ -t 2 && ! $USE_COLOR = "n" ]]; then + # prefer terminal safe colored and bold text when tput is supported + if tput setaf 0 &>/dev/null; then + ALL_OFF="$(tput sgr0)" + BOLD="$(tput bold)" + BLUE="${BOLD}$(tput setaf 4)" + GREEN="${BOLD}$(tput setaf 2)" + RED="${BOLD}$(tput setaf 1)" + YELLOW="${BOLD}$(tput setaf 3)" + else + ALL_OFF="\e[1;0m" + BOLD="\e[1;1m" + BLUE="${BOLD}\e[1;34m" + GREEN="${BOLD}\e[1;32m" + RED="${BOLD}\e[1;31m" + YELLOW="${BOLD}\e[1;33m" + fi +fi +readonly ALL_OFF BOLD BLUE GREEN RED YELLOW + + +if (( $# > 0 )); then + echo "${myname} v${myver}" + echo + echo "Safely print a list of pending updates" + echo + echo "Usage: ${myname}" + echo + echo 'Note: Export the "CHECKUPDATES_DB" variable to change the path of the temporary database.' + exit 0 +fi + +if ! type -P fakeroot >/dev/null; then + error 'Cannot find the fakeroot binary.' + exit 1 +fi + +if [[ -z $CHECKUPDATES_DB ]]; then + CHECKUPDATES_DB="${TMPDIR:-/tmp}/checkup-db-${USER}/" +fi + +trap 'rm -f $CHECKUPDATES_DB/db.lck' INT TERM EXIT + +DBPath="$(pacman-conf DBPath)" +if [[ -z "$DBPath" ]] || [[ ! -d "$DBPath" ]]; then + DBPath="/var/lib/pacman/" +fi + +mkdir -p "$CHECKUPDATES_DB" +ln -s "${DBPath}/local" "$CHECKUPDATES_DB" &> /dev/null +if ! fakeroot -- pacman -Sy --dbpath "$CHECKUPDATES_DB" --logfile /dev/null &> /dev/null; then + error 'Cannot fetch updates' + exit 1 +fi +pacman -Qu --dbpath "$CHECKUPDATES_DB" 2> /dev/null | grep -v '\[.*\]' + +exit 0 + +# vim: set noet: diff --git a/dot-config/bspwm/themes/hack/polybar/scripts/updates.sh b/dot-config/bspwm/themes/hack/polybar/scripts/updates.sh new file mode 100755 index 00000000..105584a2 --- /dev/null +++ b/dot-config/bspwm/themes/hack/polybar/scripts/updates.sh @@ -0,0 +1,47 @@ +#!/usr/bin/env bash + +## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + +NOTIFY_ICON=/usr/share/icons/Papirus/32x32/apps/system-software-update.svg + +get_total_updates() { UPDATES=$(checkupdates 2>/dev/null | wc -l); } + +while true; do + get_total_updates + + # notify user of updates + if hash notify-send &>/dev/null; then + if (( UPDATES > 50 )); then + notify-send -u critical -i $NOTIFY_ICON \ + "You really need to update!!" "$UPDATES New packages" + elif (( UPDATES > 25 )); then + notify-send -u normal -i $NOTIFY_ICON \ + "You should update soon" "$UPDATES New packages" + elif (( UPDATES > 2 )); then + notify-send -u low -i $NOTIFY_ICON \ + "$UPDATES New packages" + fi + fi + + # when there are updates available + # every 10 seconds another check for updates is done + while (( UPDATES > 0 )); do + if (( UPDATES == 1 )); then + echo " $UPDATES" + elif (( UPDATES > 1 )); then + echo " $UPDATES" + else + echo " None" + fi + sleep 10 + get_total_updates + done + + # when no updates are available, use a longer loop, this saves on CPU + # and network uptime, only checking once every 30 min for new updates + while (( UPDATES == 0 )); do + echo " None" + sleep 1800 + get_total_updates + done +done diff --git a/dot-config/bspwm/themes/hack/rofi/askpass.rasi b/dot-config/bspwm/themes/hack/rofi/askpass.rasi new file mode 100644 index 00000000..6b5f6d1a --- /dev/null +++ b/dot-config/bspwm/themes/hack/rofi/askpass.rasi @@ -0,0 +1,77 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/*****----- Main Window -----*****/ +window { + location: center; + anchor: center; + fullscreen: false; + width: 350px; + x-offset: 0px; + y-offset: 0px; + padding: 15px; + border: 1px solid; + border-radius: 0px; + border-color: @selected; + background-color: @background; + cursor: "default"; + children: [ "inputbar", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + children: [ "textbox-prompt-colon", "prompt", "entry" ]; +} + +dummy { + expand: false; + width: 10px; + background-color: transparent; +} +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + padding: 10px 13px; + border-radius: 0px; + background-color: @urgent; + text-color: @background; +} +prompt { + enabled: true; + padding: 10px; + border-radius: 0px; + background-color: @selected; + text-color: @background; +} +entry { + enabled: true; + border: 0px solid; + border-color: @selected; + padding: 10px 15px; + border-radius: 0px; + background-color: @background-alt; + text-color: inherit; + cursor: text; + placeholder: "Password"; + placeholder-color: inherit; +} + +/*****----- Listview -----*****/ +listview { + enabled: false; +} diff --git a/dot-config/bspwm/themes/hack/rofi/asroot.rasi b/dot-config/bspwm/themes/hack/rofi/asroot.rasi new file mode 100644 index 00000000..069c5e7c --- /dev/null +++ b/dot-config/bspwm/themes/hack/rofi/asroot.rasi @@ -0,0 +1,147 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + show-icons: false; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/* +USE_ICON=NO +*/ + +/*****----- Main Window -----*****/ +window { + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 400px; + x-offset: 0px; + y-offset: 0px; + margin: 0px; + padding: 0px; + border: 1px solid; + border-radius: 0px; + border-color: @selected; + cursor: "default"; + background-color: @background; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 20px; + background-color: transparent; + children: [ "inputbar", "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 0px; + padding: 0px; + border: 1px; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + children: [ "textbox-prompt-colon", "prompt"]; +} + +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + padding: 10px 12px; + border-radius: 0px; + background-color: @selected; + text-color: @background; +} +prompt { + enabled: true; + padding: 10px; + border-radius: 0px; + background-color: @background; + text-color: @foreground; +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: @background-alt; + text-color: @foreground; +} +textbox { + background-color: inherit; + text-color: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 1; + lines: 5; + cycle: true; + scrollbar: false; + layout: vertical; + + spacing: 5px; + background-color: transparent; + cursor: "default"; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + cursor: pointer; +} +element-text { + background-color: transparent; + text-color: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +element normal.normal, +element alternate.normal { + background-color: var(background); + text-color: var(foreground); +} +element normal.urgent, +element alternate.urgent, +element selected.active { + background-color: var(urgent); + text-color: var(background); +} +element normal.active, +element alternate.active, +element selected.urgent { + background-color: var(active); + text-color: var(background); +} +element selected.normal { + background-color: var(selected); + text-color: var(background); +} diff --git a/dot-config/bspwm/themes/hack/rofi/confirm.rasi b/dot-config/bspwm/themes/hack/rofi/confirm.rasi new file mode 100644 index 00000000..fd1f992e --- /dev/null +++ b/dot-config/bspwm/themes/hack/rofi/confirm.rasi @@ -0,0 +1,147 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + show-icons: false; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/* +USE_ICON=NO +*/ + +/*****----- Main Window -----*****/ +window { + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 250px; + x-offset: 0px; + y-offset: 0px; + margin: 0px; + padding: 0px; + border: 1px solid; + border-radius: 0px; + border-color: @selected; + cursor: "default"; + background-color: @background; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 20px; + background-color: transparent; + children: [ "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + padding: 0px; + border: 0px; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + children: [ "textbox-prompt-colon", "prompt"]; +} + +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + padding: 10px 14px; + border-radius: 100%; + background-color: @urgent; + text-color: @background; +} +prompt { + enabled: true; + padding: 10px; + border-radius: 20px; + background-color: @active; + text-color: @background; +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: @urgent; + text-color: @background; +} +textbox { + background-color: inherit; + text-color: inherit; + vertical-align: 0.5; + horizontal-align: 0.5; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 2; + lines: 1; + cycle: true; + scrollbar: false; + layout: vertical; + + spacing: 10px; + background-color: transparent; + cursor: "default"; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + padding: 10px 10px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + cursor: pointer; +} +element-text { + background-color: transparent; + text-color: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.5; +} + +element normal.normal, +element alternate.normal { + background-color: var(background-alt); + text-color: var(foreground); +} +element normal.urgent, +element alternate.urgent, +element selected.active { + background-color: var(urgent); + text-color: var(background); +} +element normal.active, +element alternate.active, +element selected.urgent { + background-color: var(active); + text-color: var(background); +} +element selected.normal { + background-color: var(selected); + text-color: var(background); +} diff --git a/dot-config/bspwm/themes/hack/rofi/launcher.rasi b/dot-config/bspwm/themes/hack/rofi/launcher.rasi new file mode 100644 index 00000000..fc0ae1fc --- /dev/null +++ b/dot-config/bspwm/themes/hack/rofi/launcher.rasi @@ -0,0 +1,308 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + modi: "drun,run,filebrowser,window"; + show-icons: true; + display-drun: " Apps"; + display-run: " Run"; + display-filebrowser: " Files"; + display-window: " Windows"; + drun-display-format: "{name}"; + window-format: "{c} · {t}"; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +* { + border-colour: var(selected); + handle-colour: var(selected); + background-colour: var(background); + foreground-colour: var(foreground); + alternate-background: var(background-alt); + normal-background: var(background); + normal-foreground: var(foreground); + urgent-background: var(urgent); + urgent-foreground: var(background); + active-background: var(active); + active-foreground: var(background); + selected-normal-background: var(selected); + selected-normal-foreground: var(background); + selected-urgent-background: var(active); + selected-urgent-foreground: var(background); + selected-active-background: var(urgent); + selected-active-foreground: var(background); + alternate-normal-background: var(background); + alternate-normal-foreground: var(foreground); + alternate-urgent-background: var(urgent); + alternate-urgent-foreground: var(background); + alternate-active-background: var(active); + alternate-active-foreground: var(background); +} + +/*****----- Main Window -----*****/ +window { + /* properties for window widget */ + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 800px; + x-offset: 0px; + y-offset: 0px; + + /* properties for all widgets */ + enabled: true; + margin: 0px; + padding: 0px; + border: 1px solid; + border-radius: 0px; + border-color: @border-colour; + cursor: "default"; + /* Backgroud Colors */ + background-color: @background-colour; + /* Backgroud Image */ + //background-image: url("/path/to/image.png", none); + /* Simple Linear Gradient */ + //background-image: linear-gradient(red, orange, pink, purple); + /* Directional Linear Gradient */ + //background-image: linear-gradient(to bottom, pink, yellow, magenta); + /* Angle Linear Gradient */ + //background-image: linear-gradient(45, cyan, purple, indigo); +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 0px; + margin: 0px; + padding: 20px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @border-colour; + background-color: transparent; + children: [ "inputbar", "message", "mode-switcher", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + margin: 0px 0px 10px 0px; + padding: 5px 10px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: @foreground-colour; + children: [ "textbox-prompt-colon", "entry" ]; +} + +prompt { + enabled: true; + background-color: inherit; + text-color: inherit; +} +textbox-prompt-colon { + enabled: true; + padding: 5px 0px; + expand: false; + str: ""; + background-color: inherit; + text-color: inherit; +} +entry { + enabled: true; + padding: 5px 0px; + background-color: inherit; + text-color: inherit; + cursor: text; + placeholder: "Search..."; + placeholder-color: inherit; +} +num-filtered-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +textbox-num-sep { + enabled: true; + expand: false; + str: "/"; + background-color: inherit; + text-color: inherit; +} +num-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +case-indicator { + enabled: true; + background-color: inherit; + text-color: inherit; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 1; + lines: 8; + cycle: true; + dynamic: true; + scrollbar: false; + layout: vertical; + reverse: false; + fixed-height: true; + fixed-columns: true; + + spacing: 5px; + margin: 0px; + padding: 10px; + border: 0px 1px 1px 1px ; + border-radius: 0px 0px 0px 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: "default"; +} +scrollbar { + handle-width: 5px ; + handle-color: @handle-colour; + border-radius: 10px; + background-color: @alternate-background; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 6px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: pointer; +} +element normal.normal { + background-color: var(normal-background); + text-color: var(normal-foreground); +} +element normal.urgent { + background-color: var(urgent-background); + text-color: var(urgent-foreground); +} +element normal.active { + background-color: var(active-background); + text-color: var(active-foreground); +} +element selected.normal { + background-color: var(selected-normal-background); + text-color: var(selected-normal-foreground); +} +element selected.urgent { + background-color: var(selected-urgent-background); + text-color: var(selected-urgent-foreground); +} +element selected.active { + background-color: var(selected-active-background); + text-color: var(selected-active-foreground); +} +element alternate.normal { + background-color: var(alternate-normal-background); + text-color: var(alternate-normal-foreground); +} +element alternate.urgent { + background-color: var(alternate-urgent-background); + text-color: var(alternate-urgent-foreground); +} +element alternate.active { + background-color: var(alternate-active-background); + text-color: var(alternate-active-foreground); +} +element-icon { + background-color: transparent; + text-color: inherit; + size: 24px; + cursor: inherit; +} +element-text { + background-color: transparent; + text-color: inherit; + highlight: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Mode Switcher -----*****/ +mode-switcher{ + enabled: true; + expand: false; + spacing: 0px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; +} +button { + padding: 10px; + border: 0px 0px 1px 0px ; + border-radius: 10px 10px 0px 0px; + border-color: @border-colour; + background-color: @background-colour; + text-color: inherit; + cursor: pointer; +} +button selected { + border: 1px 1px 0px 1px ; + border-radius: 0px 0px 0px 0px; + border-color: @border-colour; + background-color: var(normal-background); + text-color: var(normal-foreground); +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px 0px 10px 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; +} +textbox { + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: @foreground-colour; + vertical-align: 0.5; + horizontal-align: 0.0; + highlight: none; + placeholder-color: @foreground-colour; + blink: true; + markup: true; +} +error-message { + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @background-colour; + text-color: @foreground-colour; +} diff --git a/dot-config/bspwm/themes/hack/rofi/music.rasi b/dot-config/bspwm/themes/hack/rofi/music.rasi new file mode 100644 index 00000000..117edaff --- /dev/null +++ b/dot-config/bspwm/themes/hack/rofi/music.rasi @@ -0,0 +1,147 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + show-icons: false; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/* +USE_ICON=NO +*/ + +/*****----- Main Window -----*****/ +window { + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 400px; + x-offset: 0px; + y-offset: 0px; + margin: 0px; + padding: 0px; + border: 1px solid; + border-radius: 0px; + border-color: @selected; + cursor: "default"; + background-color: @background; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 20px; + background-color: transparent; + children: [ "inputbar", "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 0px; + padding: 0px; + border: 1px; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + children: [ "textbox-prompt-colon", "prompt"]; +} + +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + padding: 10px 14px; + border-radius: 0px; + background-color: @selected; + text-color: @background; +} +prompt { + enabled: true; + padding: 10px; + border-radius: 0px; + background-color: @background; + text-color: @foreground; +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: @background-alt; + text-color: @foreground; +} +textbox { + background-color: inherit; + text-color: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 1; + lines: 6; + cycle: true; + scrollbar: false; + layout: vertical; + + spacing: 5px; + background-color: transparent; + cursor: "default"; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + cursor: pointer; +} +element-text { + background-color: transparent; + text-color: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +element normal.normal, +element alternate.normal { + background-color: var(background); + text-color: var(foreground); +} +element normal.urgent, +element alternate.urgent, +element selected.active { + background-color: var(urgent); + text-color: var(background); +} +element normal.active, +element alternate.active, +element selected.urgent { + background-color: var(active); + text-color: var(background); +} +element selected.normal { + background-color: var(selected); + text-color: var(background); +} diff --git a/dot-config/bspwm/themes/hack/rofi/networkmenu.rasi b/dot-config/bspwm/themes/hack/rofi/networkmenu.rasi new file mode 100644 index 00000000..8fe3e181 --- /dev/null +++ b/dot-config/bspwm/themes/hack/rofi/networkmenu.rasi @@ -0,0 +1,280 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + modi: "drun,run,filebrowser,window"; + show-icons: false; + display-drun: " Apps"; + display-run: " Run"; + display-filebrowser: " Files"; + display-window: " Windows"; + drun-display-format: "{name}"; + window-format: "{w} · {c} · {t}"; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +* { + border-colour: var(selected); + handle-colour: var(selected); + background-colour: var(background); + foreground-colour: var(foreground); + alternate-background: var(background-alt); + normal-background: var(background); + normal-foreground: var(foreground); + urgent-background: var(urgent); + urgent-foreground: var(background); + active-background: var(active); + active-foreground: var(background); + selected-normal-background: var(selected); + selected-normal-foreground: var(background); + selected-urgent-background: var(active); + selected-urgent-foreground: var(background); + selected-active-background: var(urgent); + selected-active-foreground: var(background); + alternate-normal-background: var(background); + alternate-normal-foreground: var(foreground); + alternate-urgent-background: var(urgent); + alternate-urgent-foreground: var(background); + alternate-active-background: var(active); + alternate-active-foreground: var(background); +} + +/*****----- Main Window -----*****/ +window { + /* properties for window widget */ + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 500px; + height: 520px; + x-offset: 0px; + y-offset: 0px; + + /* properties for all widgets */ + enabled: true; + margin: 0px; + padding: 0px; + border: 1px solid; + border-radius: 0px; + border-color: @border-colour; + cursor: "default"; + /* Backgroud Colors */ + background-color: @background-colour; + /* Backgroud Image */ + //background-image: url("/path/to/image.png", none); + /* Simple Linear Gradient */ + //background-image: linear-gradient(red, orange, pink, purple); + /* Directional Linear Gradient */ + //background-image: linear-gradient(to bottom, pink, yellow, magenta); + /* Angle Linear Gradient */ + //background-image: linear-gradient(45, cyan, purple, indigo); +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 20px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @border-colour; + background-color: transparent; + children: [ "inputbar", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 10px 15px; + border: 1px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @background-alt; + text-color: @foreground-colour; + children: [ "textbox-prompt-colon", "prompt", "entry" ]; +} + +prompt { + enabled: true; + background-color: inherit; + text-color: inherit; +} +textbox-prompt-colon { + enabled: true; + padding: 0px; + expand: false; + str: "直"; + background-color: inherit; + text-color: @foreground; +} +entry { + enabled: true; + padding: 0px; + background-color: inherit; + text-color: inherit; + cursor: text; + placeholder: ""; + placeholder-color: inherit; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 1; + lines: 6; + cycle: true; + dynamic: true; + scrollbar: false; + layout: vertical; + reverse: false; + fixed-height: true; + fixed-columns: true; + + spacing: 5px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: "default"; +} +scrollbar { + handle-width: 5px ; + handle-color: @handle-colour; + border-radius: 10px; + background-color: @alternate-background; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: pointer; +} +element normal.normal { + background-color: var(normal-background); + text-color: var(normal-foreground); +} +element normal.urgent { + background-color: var(urgent-background); + text-color: var(urgent-foreground); +} +element normal.active { + background-color: var(active-background); + text-color: var(active-foreground); +} +element selected.normal { + background-color: var(selected-normal-background); + text-color: var(selected-normal-foreground); +} +element selected.urgent { + background-color: var(selected-urgent-background); + text-color: var(selected-urgent-foreground); +} +element selected.active { + background-color: var(selected-active-background); + text-color: var(selected-active-foreground); +} +element alternate.normal { + background-color: var(alternate-normal-background); + text-color: var(alternate-normal-foreground); +} +element alternate.urgent { + background-color: var(alternate-urgent-background); + text-color: var(alternate-urgent-foreground); +} +element alternate.active { + background-color: var(alternate-active-background); + text-color: var(alternate-active-foreground); +} +element-icon { + background-color: transparent; + text-color: inherit; + size: 24px; + cursor: inherit; +} +element-text { + background-color: transparent; + text-color: inherit; + highlight: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Mode Switcher -----*****/ +mode-switcher{ + enabled: true; + expand: false; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; +} +button { + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: inherit; + cursor: pointer; +} +button selected { + background-color: var(selected-normal-background); + text-color: var(selected-normal-foreground); +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: @foreground-colour; +} +textbox { + border: 0px solid; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + vertical-align: 0.5; + horizontal-align: 0.0; + highlight: none; + placeholder-color: @foreground-colour; + blink: true; + markup: true; +} +error-message { + padding: 15px; + border: 0px solid; + border-radius: 10px; + border-color: @border-colour; + background-color: @background-colour; + text-color: @foreground-colour; +} diff --git a/dot-config/bspwm/themes/hack/rofi/powermenu.rasi b/dot-config/bspwm/themes/hack/rofi/powermenu.rasi new file mode 100644 index 00000000..b0a4c2b2 --- /dev/null +++ b/dot-config/bspwm/themes/hack/rofi/powermenu.rasi @@ -0,0 +1,147 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + show-icons: false; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/* +USE_ICON=NO +*/ + +/*****----- Main Window -----*****/ +window { + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 400px; + x-offset: 0px; + y-offset: 0px; + margin: 0px; + padding: 0px; + border: 1px solid; + border-radius: 0px; + border-color: @selected; + cursor: "default"; + background-color: @background; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 20px; + background-color: transparent; + children: [ "inputbar", "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 0px; + padding: 0px; + border: 1px; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + children: [ "textbox-prompt-colon", "prompt"]; +} + +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + padding: 10px 14px; + border-radius: 0px; + background-color: @selected; + text-color: @background; +} +prompt { + enabled: true; + padding: 10px; + border-radius: 0px; + background-color: @background; + text-color: @foreground; +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: @background-alt; + text-color: @foreground; +} +textbox { + background-color: inherit; + text-color: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 1; + lines: 6; + cycle: true; + scrollbar: false; + layout: vertical; + + spacing: 5px; + background-color: transparent; + cursor: "default"; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + cursor: pointer; +} +element-text { + background-color: transparent; + text-color: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +element normal.normal, +element alternate.normal { + background-color: var(background); + text-color: var(foreground); +} +element normal.urgent, +element alternate.urgent, +element selected.active { + background-color: var(urgent); + text-color: var(background); +} +element normal.active, +element alternate.active, +element selected.urgent { + background-color: var(active); + text-color: var(background); +} +element selected.normal { + background-color: var(selected); + text-color: var(background); +} diff --git a/dot-config/bspwm/themes/hack/rofi/runner.rasi b/dot-config/bspwm/themes/hack/rofi/runner.rasi new file mode 100644 index 00000000..84f05d77 --- /dev/null +++ b/dot-config/bspwm/themes/hack/rofi/runner.rasi @@ -0,0 +1,279 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + modi: "run"; + show-icons: true; + display-drun: " Apps"; + display-run: " Run"; + display-filebrowser: " Files"; + display-window: " Windows"; + drun-display-format: "{name}"; + window-format: "{w} · {c} · {t}"; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +* { + border-colour: var(selected); + handle-colour: var(selected); + background-colour: var(background); + foreground-colour: var(foreground); + alternate-background: var(background-alt); + normal-background: var(background); + normal-foreground: var(foreground); + urgent-background: var(urgent); + urgent-foreground: var(background); + active-background: var(active); + active-foreground: var(background); + selected-normal-background: var(selected); + selected-normal-foreground: var(background); + selected-urgent-background: var(active); + selected-urgent-foreground: var(background); + selected-active-background: var(urgent); + selected-active-foreground: var(background); + alternate-normal-background: var(background); + alternate-normal-foreground: var(foreground); + alternate-urgent-background: var(urgent); + alternate-urgent-foreground: var(background); + alternate-active-background: var(active); + alternate-active-foreground: var(background); +} + +/*****----- Main Window -----*****/ +window { + /* properties for window widget */ + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 400px; + x-offset: 0px; + y-offset: 0px; + + /* properties for all widgets */ + enabled: true; + margin: 0px; + padding: 0px; + border: 1px solid; + border-radius: 0px; + border-color: @border-colour; + cursor: "default"; + /* Backgroud Colors */ + background-color: @background-colour; + /* Backgroud Image */ + //background-image: url("/path/to/image.png", none); + /* Simple Linear Gradient */ + //background-image: linear-gradient(red, orange, pink, purple); + /* Directional Linear Gradient */ + //background-image: linear-gradient(to bottom, pink, yellow, magenta); + /* Angle Linear Gradient */ + //background-image: linear-gradient(45, cyan, purple, indigo); +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 20px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @border-colour; + background-color: transparent; + children: [ "inputbar", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 10px 15px; + border: 1px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @background-alt; + text-color: @foreground-colour; + children: [ "textbox-prompt-colon", "entry" ]; +} + +prompt { + enabled: true; + background-color: inherit; + text-color: inherit; +} +textbox-prompt-colon { + enabled: true; + padding: 0px; + expand: false; + str: ""; + background-color: inherit; + text-color: @foreground; +} +entry { + enabled: true; + padding: 0px; + background-color: inherit; + text-color: inherit; + cursor: text; + placeholder: "Run..."; + placeholder-color: inherit; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 1; + lines: 6; + cycle: true; + dynamic: true; + scrollbar: false; + layout: vertical; + reverse: false; + fixed-height: true; + fixed-columns: true; + + spacing: 5px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: "default"; +} +scrollbar { + handle-width: 5px ; + handle-color: @handle-colour; + border-radius: 10px; + background-color: @alternate-background; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 8px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: pointer; +} +element normal.normal { + background-color: var(normal-background); + text-color: var(normal-foreground); +} +element normal.urgent { + background-color: var(urgent-background); + text-color: var(urgent-foreground); +} +element normal.active { + background-color: var(active-background); + text-color: var(active-foreground); +} +element selected.normal { + background-color: var(selected-normal-background); + text-color: var(selected-normal-foreground); +} +element selected.urgent { + background-color: var(selected-urgent-background); + text-color: var(selected-urgent-foreground); +} +element selected.active { + background-color: var(selected-active-background); + text-color: var(selected-active-foreground); +} +element alternate.normal { + background-color: var(alternate-normal-background); + text-color: var(alternate-normal-foreground); +} +element alternate.urgent { + background-color: var(alternate-urgent-background); + text-color: var(alternate-urgent-foreground); +} +element alternate.active { + background-color: var(alternate-active-background); + text-color: var(alternate-active-foreground); +} +element-icon { + background-color: transparent; + text-color: inherit; + size: 24px; + cursor: inherit; +} +element-text { + background-color: transparent; + text-color: inherit; + highlight: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Mode Switcher -----*****/ +mode-switcher{ + enabled: true; + expand: false; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; +} +button { + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: inherit; + cursor: pointer; +} +button selected { + background-color: var(selected-normal-background); + text-color: var(selected-normal-foreground); +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: @foreground-colour; +} +textbox { + border: 0px solid; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + vertical-align: 0.5; + horizontal-align: 0.0; + highlight: none; + placeholder-color: @foreground-colour; + blink: true; + markup: true; +} +error-message { + padding: 15px; + border: 0px solid; + border-radius: 10px; + border-color: @border-colour; + background-color: @background-colour; + text-color: @foreground-colour; +} diff --git a/dot-config/bspwm/themes/hack/rofi/screenshot.rasi b/dot-config/bspwm/themes/hack/rofi/screenshot.rasi new file mode 100644 index 00000000..4863e36d --- /dev/null +++ b/dot-config/bspwm/themes/hack/rofi/screenshot.rasi @@ -0,0 +1,147 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + show-icons: false; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/* +USE_ICON=NO +*/ + +/*****----- Main Window -----*****/ +window { + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 400px; + x-offset: 0px; + y-offset: 0px; + margin: 0px; + padding: 0px; + border: 1px solid; + border-radius: 0px; + border-color: @selected; + cursor: "default"; + background-color: @background; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 20px; + background-color: transparent; + children: [ "inputbar", "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 0px; + padding: 0px; + border: 1px; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + children: [ "textbox-prompt-colon", "prompt"]; +} + +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + padding: 10px 12px; + border-radius: 0px; + background-color: @selected; + text-color: @background; +} +prompt { + enabled: true; + padding: 10px; + border-radius: 0px; + background-color: @background; + text-color: @foreground; +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: @background-alt; + text-color: @foreground; +} +textbox { + background-color: inherit; + text-color: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 1; + lines: 5; + cycle: true; + scrollbar: false; + layout: vertical; + + spacing: 5px; + background-color: transparent; + cursor: "default"; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + cursor: pointer; +} +element-text { + background-color: transparent; + text-color: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +element normal.normal, +element alternate.normal { + background-color: var(background); + text-color: var(foreground); +} +element normal.urgent, +element alternate.urgent, +element selected.active { + background-color: var(urgent); + text-color: var(background); +} +element normal.active, +element alternate.active, +element selected.urgent { + background-color: var(active); + text-color: var(background); +} +element selected.normal { + background-color: var(selected); + text-color: var(background); +} diff --git a/dot-config/bspwm/themes/hack/rofi/shared/colors.rasi b/dot-config/bspwm/themes/hack/rofi/shared/colors.rasi new file mode 100644 index 00000000..ac1f9c95 --- /dev/null +++ b/dot-config/bspwm/themes/hack/rofi/shared/colors.rasi @@ -0,0 +1,8 @@ +* { + background: #01161b; + background-alt: #022a34; + foreground: #66FFFF; + selected: #007B82; + active: #00ff00; + urgent: #ff0000; +} diff --git a/dot-config/bspwm/themes/hack/rofi/shared/fonts.rasi b/dot-config/bspwm/themes/hack/rofi/shared/fonts.rasi new file mode 100644 index 00000000..d2af39fe --- /dev/null +++ b/dot-config/bspwm/themes/hack/rofi/shared/fonts.rasi @@ -0,0 +1,7 @@ +/* Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> */ + +/* Text Font */ + +* { + font: "Iosevka 10"; +} diff --git a/dot-config/bspwm/themes/hack/rofi/themes.rasi b/dot-config/bspwm/themes/hack/rofi/themes.rasi new file mode 100644 index 00000000..8155d0cb --- /dev/null +++ b/dot-config/bspwm/themes/hack/rofi/themes.rasi @@ -0,0 +1,147 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + show-icons: false; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/* +USE_ICON=NO +*/ + +/*****----- Main Window -----*****/ +window { + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 400px; + x-offset: 0px; + y-offset: 0px; + margin: 0px; + padding: 0px; + border: 1px solid; + border-radius: 0px; + border-color: @selected; + cursor: "default"; + background-color: @background; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 20px; + background-color: transparent; + children: [ "inputbar", "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 0px; + padding: 0px; + border: 1px; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + children: [ "textbox-prompt-colon", "prompt"]; +} + +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + padding: 10px 12px; + border-radius: 0px; + background-color: @selected; + text-color: @background; +} +prompt { + enabled: true; + padding: 10px; + border-radius: 0px; + background-color: @background; + text-color: @foreground; +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: @background-alt; + text-color: @foreground; +} +textbox { + background-color: inherit; + text-color: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 1; + lines: 5; + cycle: true; + scrollbar: false; + layout: vertical; + + spacing: 5px; + background-color: transparent; + cursor: "default"; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + cursor: pointer; +} +element-text { + background-color: transparent; + text-color: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +element normal.normal, +element alternate.normal { + background-color: var(background); + text-color: var(foreground); +} +element normal.urgent, +element alternate.urgent, +element selected.active { + background-color: var(urgent); + text-color: var(background); +} +element normal.active, +element alternate.active, +element selected.urgent { + background-color: var(active); + text-color: var(background); +} +element selected.normal { + background-color: var(selected); + text-color: var(background); +} diff --git a/dot-config/bspwm/themes/hack/rofi/windows.rasi b/dot-config/bspwm/themes/hack/rofi/windows.rasi new file mode 100644 index 00000000..e6a1507b --- /dev/null +++ b/dot-config/bspwm/themes/hack/rofi/windows.rasi @@ -0,0 +1,279 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + modi: "window"; + show-icons: true; + display-drun: " Apps"; + display-run: " Run"; + display-filebrowser: " Files"; + display-window: " Windows"; + drun-display-format: "{name}"; + window-format: "{c} · {t}"; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +* { + border-colour: var(selected); + handle-colour: var(selected); + background-colour: var(background); + foreground-colour: var(foreground); + alternate-background: var(background-alt); + normal-background: var(background); + normal-foreground: var(foreground); + urgent-background: var(urgent); + urgent-foreground: var(background); + active-background: var(active); + active-foreground: var(background); + selected-normal-background: var(selected); + selected-normal-foreground: var(background); + selected-urgent-background: var(active); + selected-urgent-foreground: var(background); + selected-active-background: var(urgent); + selected-active-foreground: var(background); + alternate-normal-background: var(background); + alternate-normal-foreground: var(foreground); + alternate-urgent-background: var(urgent); + alternate-urgent-foreground: var(background); + alternate-active-background: var(active); + alternate-active-foreground: var(background); +} + +/*****----- Main Window -----*****/ +window { + /* properties for window widget */ + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 500px; + x-offset: 0px; + y-offset: 0px; + + /* properties for all widgets */ + enabled: true; + margin: 0px; + padding: 0px; + border: 1px solid; + border-radius: 0px; + border-color: @border-colour; + cursor: "default"; + /* Backgroud Colors */ + background-color: @background-colour; + /* Backgroud Image */ + //background-image: url("/path/to/image.png", none); + /* Simple Linear Gradient */ + //background-image: linear-gradient(red, orange, pink, purple); + /* Directional Linear Gradient */ + //background-image: linear-gradient(to bottom, pink, yellow, magenta); + /* Angle Linear Gradient */ + //background-image: linear-gradient(45, cyan, purple, indigo); +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 20px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @border-colour; + background-color: transparent; + children: [ "inputbar", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 10px 15px; + border: 1px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @background-alt; + text-color: @foreground-colour; + children: [ "textbox-prompt-colon", "entry" ]; +} + +prompt { + enabled: true; + background-color: inherit; + text-color: inherit; +} +textbox-prompt-colon { + enabled: true; + padding: 0px; + expand: false; + str: ""; + background-color: inherit; + text-color: @foreground; +} +entry { + enabled: true; + padding: 0px; + background-color: inherit; + text-color: inherit; + cursor: text; + placeholder: "Filter..."; + placeholder-color: inherit; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 1; + lines: 6; + cycle: true; + dynamic: true; + scrollbar: false; + layout: vertical; + reverse: false; + fixed-height: true; + fixed-columns: true; + + spacing: 5px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: "default"; +} +scrollbar { + handle-width: 5px ; + handle-color: @handle-colour; + border-radius: 10px; + background-color: @alternate-background; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 8px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: pointer; +} +element normal.normal { + background-color: var(normal-background); + text-color: var(normal-foreground); +} +element normal.urgent { + background-color: var(urgent-background); + text-color: var(urgent-foreground); +} +element normal.active { + background-color: var(active-background); + text-color: var(active-foreground); +} +element selected.normal { + background-color: var(selected-normal-background); + text-color: var(selected-normal-foreground); +} +element selected.urgent { + background-color: var(selected-urgent-background); + text-color: var(selected-urgent-foreground); +} +element selected.active { + background-color: var(selected-active-background); + text-color: var(selected-active-foreground); +} +element alternate.normal { + background-color: var(alternate-normal-background); + text-color: var(alternate-normal-foreground); +} +element alternate.urgent { + background-color: var(alternate-urgent-background); + text-color: var(alternate-urgent-foreground); +} +element alternate.active { + background-color: var(alternate-active-background); + text-color: var(alternate-active-foreground); +} +element-icon { + background-color: transparent; + text-color: inherit; + size: 24px; + cursor: inherit; +} +element-text { + background-color: transparent; + text-color: inherit; + highlight: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Mode Switcher -----*****/ +mode-switcher{ + enabled: true; + expand: false; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; +} +button { + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: inherit; + cursor: pointer; +} +button selected { + background-color: var(selected-normal-background); + text-color: var(selected-normal-foreground); +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: @foreground-colour; +} +textbox { + border: 0px solid; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + vertical-align: 0.5; + horizontal-align: 0.0; + highlight: none; + placeholder-color: @foreground-colour; + blink: true; + markup: true; +} +error-message { + padding: 15px; + border: 0px solid; + border-radius: 10px; + border-color: @border-colour; + background-color: @background-colour; + text-color: @foreground-colour; +} diff --git a/dot-config/bspwm/themes/hack/theme.bash b/dot-config/bspwm/themes/hack/theme.bash new file mode 100644 index 00000000..9e22f057 --- /dev/null +++ b/dot-config/bspwm/themes/hack/theme.bash @@ -0,0 +1,86 @@ +# ------------------------------------------------------------------------------ +# Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> +# +# Hack Theme +# ------------------------------------------------------------------------------ + +# Colors +background='#01161b' +foreground='#66FFFF' +color0='#01161b' +color1='#007b82' +color2='#028c94' +color3='#039ca4' +color4='#04acb5' +color5='#05bbc5' +color6='#06ccd7' +color7='#a3b5b8' +color8='#01161b' +color9='#007b82' +color10='#028c94' +color11='#039ca4' +color12='#04acb5' +color13='#05bbc5' +color14='#06ccd7' +color15='#a3b5b8' + +accent='#007B82' +color_red='#ff0000' +color_green='#00ff00' +color_yellow='#ffff00' + +light_value='0.05' +dark_value='0.30' + +# Wallpaper +wdir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" +wallpaper="$wdir/wallpaper" + +# Polybar +polybar_font='Iosevka Nerd Font:size=10;3' + +# Rofi +rofi_font='Iosevka 10' +rofi_icon='Papirus-Apps' + +# Terminal +terminal_font_name='JetBrainsMono Nerd Font' +terminal_font_size='10' + +# Geany +geany_colors='hack.conf' +geany_font='JetBrains Mono 10' + +# Appearance +gtk_font='Noto Sans 9' +gtk_theme='Hack' +icon_theme='Hack' +cursor_theme='LyraB' + +# Dunst +dunst_width='300' +dunst_height='80' +dunst_offset='10x36' +dunst_origin='top-right' +dunst_font='Iosevka 10' +dunst_border='1' +dunst_separator='1' + +# Picom +picom_backend='glx' +picom_corner='0' +picom_shadow_r='14' +picom_shadow_o='0.30' +picom_shadow_x='-12' +picom_shadow_y='-12' +picom_blur_method='none' +picom_blur_strength='0' + +# Bspwm +bspwm_fbc="$accent" +bspwm_nbc="$background" +bspwm_abc="$color5" +bspwm_pfc="$color2" +bspwm_border='1' +bspwm_gap='10' +bspwm_sratio='0.50' diff --git a/dot-config/bspwm/themes/hack/wallpaper b/dot-config/bspwm/themes/hack/wallpaper new file mode 120000 index 00000000..0fe82bf9 --- /dev/null +++ b/dot-config/bspwm/themes/hack/wallpaper @@ -0,0 +1 @@ +/usr/share/backgrounds/hack.jpg
\ No newline at end of file diff --git a/dot-config/bspwm/themes/manhattan/apply.sh b/dot-config/bspwm/themes/manhattan/apply.sh new file mode 100755 index 00000000..77b99d21 --- /dev/null +++ b/dot-config/bspwm/themes/manhattan/apply.sh @@ -0,0 +1,278 @@ +#!/usr/bin/env bash + +## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> +## +## Script To Apply Themes + +## Theme ------------------------------------ +BDIR="$HOME/.config/bspwm" +TDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" +THEME="${TDIR##*/}" + +source "$BDIR"/themes/"$THEME"/theme.bash +altbackground="`pastel color $element_bg | pastel lighten $light_value | pastel format hex`" +altforeground="`pastel color $element_fg | pastel darken $dark_value | pastel format hex`" + +## Directories ------------------------------ +PATH_CONF="$HOME/.config" +PATH_GEANY="$PATH_CONF/geany" +PATH_BSPWM="$PATH_CONF/bspwm" +PATH_TERM="$PATH_BSPWM/alacritty" +PATH_PBAR="$PATH_BSPWM/themes/$THEME/polybar" +PATH_ROFI="$PATH_BSPWM/themes/$THEME/rofi" + +## Wallpaper --------------------------------- +apply_wallpaper() { + feh --bg-fill "$wallpaper" +} + +## Polybar ----------------------------------- +apply_polybar() { + # modify polybar launch script + sed -i -e "s/STYLE=.*/STYLE=\"$THEME\"/g" ${PATH_BSPWM}/themes/polybar.sh + + # apply default theme fonts + sed -i -e "s/font-0 = .*/font-0 = \"$polybar_font\"/g" ${PATH_PBAR}/config.ini + + # rewrite colors file + cat > ${PATH_PBAR}/colors.ini <<- EOF + [color] + + BACKGROUND = ${element_bg} + FOREGROUND = ${element_fg} + ALTBACKGROUND = ${altbackground} + ALTFOREGROUND = ${altforeground} + ACCENT = ${element_hl} + + BLACK = ${color0} + RED = ${color1} + GREEN = ${color2} + YELLOW = ${color3} + BLUE = ${color4} + MAGENTA = ${color5} + CYAN = ${color6} + WHITE = ${color7} + ALTBLACK = ${color8} + ALTRED = ${color9} + ALTGREEN = ${color10} + ALTYELLOW = ${color11} + ALTBLUE = ${color12} + ALTMAGENTA = ${color13} + ALTCYAN = ${color14} + ALTWHITE = ${color15} + EOF +} + +# Rofi -------------------------------------- +apply_rofi() { + # modify rofi scripts + sed -i -e "s/STYLE=.*/STYLE=\"$THEME\"/g" \ + ${PATH_BSPWM}/scripts/rofi_askpass \ + ${PATH_BSPWM}/scripts/rofi_asroot \ + ${PATH_BSPWM}/scripts/rofi_launcher \ + ${PATH_BSPWM}/scripts/rofi_music \ + ${PATH_BSPWM}/scripts/rofi_powermenu \ + ${PATH_BSPWM}/scripts/rofi_runner \ + ${PATH_BSPWM}/scripts/rofi_screenshot \ + ${PATH_BSPWM}/scripts/rofi_themes \ + ${PATH_BSPWM}/scripts/rofi_windows + + # apply default theme fonts + sed -i -e "s/font:.*/font: \"$rofi_font\";/g" ${PATH_ROFI}/shared/fonts.rasi + + # rewrite colors file + cat > ${PATH_ROFI}/shared/colors.rasi <<- EOF + * { + background: ${element_bg}; + background-alt: ${altbackground}; + foreground: ${element_fg}; + selected: ${element_hl}; + active: ${color2}; + urgent: ${color1}; + } + EOF + + # modify icon theme + if [[ -f "$PATH_CONF"/rofi/config.rasi ]]; then + sed -i -e "s/icon-theme:.*/icon-theme: \"$rofi_icon\";/g" ${PATH_CONF}/rofi/config.rasi + fi +} + +# Network Menu ------------------------------ +apply_netmenu() { + if [[ -f "$PATH_CONF"/networkmanager-dmenu/nmd.ini ]]; then + sed -i -e "s#dmenu_command = .*#dmenu_command = rofi -dmenu -theme $PATH_ROFI/networkmenu.rasi#g" ${PATH_CONF}/networkmanager-dmenu/nmd.ini + fi +} + +# Terminal ---------------------------------- +apply_terminal() { + # alacritty : fonts + sed -i ${PATH_TERM}/fonts.yml \ + -e "s/family: .*/family: \"$terminal_font_name\"/g" \ + -e "s/size: .*/size: $terminal_font_size/g" + + # alacritty : colors + cat > ${PATH_TERM}/colors.yml <<- _EOF_ + ## Colors configuration + colors: + # Default colors + primary: + background: '${background}' + foreground: '${foreground}' + + # Normal colors + normal: + black: '${color0}' + red: '${color1}' + green: '${color2}' + yellow: '${color3}' + blue: '${color4}' + magenta: '${color5}' + cyan: '${color6}' + white: '${color7}' + + # Bright colors + bright: + black: '${color8}' + red: '${color9}' + green: '${color10}' + yellow: '${color11}' + blue: '${color12}' + magenta: '${color13}' + cyan: '${color14}' + white: '${color15}' + _EOF_ +} + +# Geany ------------------------------------- +apply_geany() { + sed -i ${PATH_GEANY}/geany.conf \ + -e "s/color_scheme=.*/color_scheme=$geany_colors/g" \ + -e "s/editor_font=.*/editor_font=$geany_font/g" +} + +# Appearance -------------------------------- +apply_appearance() { + XFILE="$PATH_BSPWM/xsettingsd" + GTK2FILE="$HOME/.gtkrc-2.0" + GTK3FILE="$PATH_CONF/gtk-3.0/settings.ini" + + # apply gtk theme, icons, cursor & fonts + if [[ `pidof xsettingsd` ]]; then + sed -i -e "s|Net/ThemeName .*|Net/ThemeName \"$gtk_theme\"|g" ${XFILE} + sed -i -e "s|Net/IconThemeName .*|Net/IconThemeName \"$icon_theme\"|g" ${XFILE} + sed -i -e "s|Gtk/CursorThemeName .*|Gtk/CursorThemeName \"$cursor_theme\"|g" ${XFILE} + else + sed -i -e "s/gtk-font-name=.*/gtk-font-name=\"$gtk_font\"/g" ${GTK2FILE} + sed -i -e "s/gtk-theme-name=.*/gtk-theme-name=\"$gtk_theme\"/g" ${GTK2FILE} + sed -i -e "s/gtk-icon-theme-name=.*/gtk-icon-theme-name=\"$icon_theme\"/g" ${GTK2FILE} + sed -i -e "s/gtk-cursor-theme-name=.*/gtk-cursor-theme-name=\"$cursor_theme\"/g" ${GTK2FILE} + + sed -i -e "s/gtk-font-name=.*/gtk-font-name=$gtk_font/g" ${GTK3FILE} + sed -i -e "s/gtk-theme-name=.*/gtk-theme-name=$gtk_theme/g" ${GTK3FILE} + sed -i -e "s/gtk-icon-theme-name=.*/gtk-icon-theme-name=$icon_theme/g" ${GTK3FILE} + sed -i -e "s/gtk-cursor-theme-name=.*/gtk-cursor-theme-name=$cursor_theme/g" ${GTK3FILE} + fi + + # inherit cursor theme + if [[ -f "$HOME"/.icons/default/index.theme ]]; then + sed -i -e "s/Inherits=.*/Inherits=$cursor_theme/g" "$HOME"/.icons/default/index.theme + fi +} + +# Dunst ------------------------------------- +apply_dunst() { + # modify dunst config + sed -i ${PATH_BSPWM}/dunstrc \ + -e "s/width = .*/width = $dunst_width/g" \ + -e "s/height = .*/height = $dunst_height/g" \ + -e "s/offset = .*/offset = $dunst_offset/g" \ + -e "s/origin = .*/origin = $dunst_origin/g" \ + -e "s/font = .*/font = $dunst_font/g" \ + -e "s/frame_width = .*/frame_width = $dunst_border/g" \ + -e "s/separator_height = .*/separator_height = $dunst_separator/g" \ + -e "s/line_height = .*/line_height = $dunst_separator/g" + + # modify colors + sed -i '/urgency_low/Q' ${PATH_BSPWM}/dunstrc + cat >> ${PATH_BSPWM}/dunstrc <<- _EOF_ + [urgency_low] + timeout = 2 + background = "${element_bg}" + foreground = "${element_fg}" + frame_color = "${altbackground}" + + [urgency_normal] + timeout = 5 + background = "${element_bg}" + foreground = "${element_fg}" + frame_color = "${altbackground}" + + [urgency_critical] + timeout = 0 + background = "${element_bg}" + foreground = "${color1}" + frame_color = "${color1}" + _EOF_ +} + +# Compositor -------------------------------- +apply_compositor() { + picom_cfg="$PATH_BSPWM/picom.conf" + + # modify picom config + sed -i "$picom_cfg" \ + -e "s/backend = .*/backend = \"$picom_backend\";/g" \ + -e "s/corner-radius = .*/corner-radius = $picom_corner;/g" \ + -e "s/shadow-radius = .*/shadow-radius = $picom_shadow_r;/g" \ + -e "s/shadow-opacity = .*/shadow-opacity = $picom_shadow_o;/g" \ + -e "s/shadow-offset-x = .*/shadow-offset-x = $picom_shadow_x;/g" \ + -e "s/shadow-offset-y = .*/shadow-offset-y = $picom_shadow_y;/g" \ + -e "s/method = .*/method = \"$picom_blur_method\";/g" \ + -e "s/strength = .*/strength = $picom_blur_strength;/g" +} + +# BSPWM ------------------------------------- +apply_bspwm() { + # modify bspwmrc + sed -i ${PATH_BSPWM}/bspwmrc \ + -e "s/BSPWM_FBC=.*/BSPWM_FBC='$bspwm_fbc'/g" \ + -e "s/BSPWM_NBC=.*/BSPWM_NBC='$bspwm_nbc'/g" \ + -e "s/BSPWM_ABC=.*/BSPWM_ABC='$bspwm_abc'/g" \ + -e "s/BSPWM_PFC=.*/BSPWM_PFC='$bspwm_pfc'/g" \ + -e "s/BSPWM_BORDER=.*/BSPWM_BORDER='$bspwm_border'/g" \ + -e "s/BSPWM_GAP=.*/BSPWM_GAP='$bspwm_gap'/g" \ + -e "s/BSPWM_SRATIO=.*/BSPWM_SRATIO='$bspwm_sratio'/g" + + # reload bspwm + bspc wm -r +} + +# Create Theme File ------------------------- +create_file() { + theme_file="$PATH_BSPWM/themes/.current" + if [[ ! -f "$theme_file" ]]; then + touch ${theme_file} + fi + echo "$THEME" > ${theme_file} +} + +# Notify User ------------------------------- +notify_user() { + dunstify -u normal -h string:x-dunst-stack-tag:applytheme -i /usr/share/archcraft/icons/dunst/themes.png "Applying Style : $THEME" +} + +## Execute Script --------------------------- +notify_user +create_file +apply_wallpaper +apply_polybar +apply_rofi +apply_netmenu +apply_terminal +apply_geany +apply_appearance +apply_dunst +apply_compositor +apply_bspwm diff --git a/dot-config/bspwm/themes/manhattan/polybar/.module b/dot-config/bspwm/themes/manhattan/polybar/.module new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/dot-config/bspwm/themes/manhattan/polybar/.module diff --git a/dot-config/bspwm/themes/manhattan/polybar/colors.ini b/dot-config/bspwm/themes/manhattan/polybar/colors.ini new file mode 100644 index 00000000..447b00a6 --- /dev/null +++ b/dot-config/bspwm/themes/manhattan/polybar/colors.ini @@ -0,0 +1,24 @@ +[color] + +BACKGROUND = #1F252B +FOREGROUND = #F0FBF8 +ALTBACKGROUND = #2a323a +ALTFOREGROUND = #77dbc0 +ACCENT = #B4A1DB + +BLACK = #20262c +RED = #db86ba +GREEN = #74dd91 +YELLOW = #e49186 +BLUE = #75dbe1 +MAGENTA = #b4a1db +CYAN = #9ee9ea +WHITE = #f1fcf9 +ALTBLACK = #465463 +ALTRED = #d04e9d +ALTGREEN = #4bc66d +ALTYELLOW = #db695b +ALTBLUE = #3dbac2 +ALTMAGENTA = #825ece +ALTCYAN = #62cdcd +ALTWHITE = #e0e5e5 diff --git a/dot-config/bspwm/themes/manhattan/polybar/config.ini b/dot-config/bspwm/themes/manhattan/polybar/config.ini new file mode 100644 index 00000000..21a463a9 --- /dev/null +++ b/dot-config/bspwm/themes/manhattan/polybar/config.ini @@ -0,0 +1,320 @@ +## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +;; Global WM Settings + +[global/wm] +; Adjust the _NET_WM_STRUT_PARTIAL top value +; Used for top aligned bars +margin-bottom = 0 + +; Adjust the _NET_WM_STRUT_PARTIAL bottom value +; Used for bottom aligned bars +margin-top = 0 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +;; File Inclusion +; include an external file, like module file, etc. + +include-file = ../../system.ini +include-file = ./colors.ini +include-file = ./modules.ini + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +;; Bar Settings + +[bar/main] +; Use either of the following command to list available outputs: +; If unspecified, the application will pick the first one it finds. +; $ polybar -m | cut -d ':' -f 1 +; $ xrandr -q | grep " connected" | cut -d ' ' -f1 +monitor = ${env:MONITOR:} + +; Use the specified monitor as a fallback if the main one is not found. +monitor-fallback = + +; Require the monitor to be in connected state +; XRandR sometimes reports my monitor as being disconnected (when in use) +monitor-strict = false + +; Tell the Window Manager not to configure the window. +; Use this to detach the bar if your WM is locking its size/position. +override-redirect = false + +; Put the bar at the bottom of the screen +bottom = true + +; Prefer fixed center position for the `modules-center` block +; When false, the center position will be based on the size of the other blocks. +fixed-center = true + +; Dimension defined as pixel value (e.g. 35) or percentage (e.g. 50%), +; the percentage can optionally be extended with a pixel offset like so: +; 50%:-10, this will result in a width or height of 50% minus 10 pixels +width = 100% +height = 38 + +; Offset defined as pixel value (e.g. 35) or percentage (e.g. 50%) +; the percentage can optionally be extended with a pixel offset like so: +; 50%:-10, this will result in an offset in the x or y direction +; of 50% minus 10 pixels +offset-x = 0% +offset-y = 0% + +; Background ARGB color (e.g. #f00, #ff992a, #ddff1023) +background = ${color.BACKGROUND} + +; Foreground ARGB color (e.g. #f00, #ff992a, #ddff1023) +foreground = ${color.FOREGROUND} + +; Background gradient (vertical steps) +; background-[0-9]+ = #aarrggbb +;;background-0 = + +; Value used for drawing rounded corners +; Note: This shouldn't be used together with border-size because the border +; doesn't get rounded +; Individual top/bottom values can be defined using: +; radius-{top,bottom} +radius-top = 0.0 +radius-bottom = 0.0 + +; Under-/overline pixel size and argb color +; Individual values can be defined using: +; {overline,underline}-size +; {overline,underline}-color +line-size = 6 +line-color = ${color.ACCENT} + +; Values applied to all borders +; Individual side values can be defined using: +; border-{left,top,right,bottom}-size +; border-{left,top,right,bottom}-color +; The top and bottom borders are added to the bar height, so the effective +; window height is: +; height + border-top-size + border-bottom-size +; Meanwhile the effective window width is defined entirely by the width key and +; the border is placed withing this area. So you effectively only have the +; following horizontal space on the bar: +; width - border-right-size - border-left-size +border-top-size = 0 +border-color = ${color.ACCENT} + +; Number of spaces to add at the beginning/end of the bar +; Individual side values can be defined using: +; padding-{left,right} +padding = 2 + +; Number of spaces to add before/after each module +; Individual side values can be defined using: +; module-margin-{left,right} +module-margin-left = 0 +module-margin-right = 0 + +; Fonts are defined using <font-name>;<vertical-offset> +; Font names are specified using a fontconfig pattern. +; font-0 = "Iosevka Nerd Font:size=10;3" +; font-1 = MaterialIcons:size=10 +; font-2 = Termsynu:size=8;-1 +; font-3 = FontAwesome:size=10 +; See the Fonts wiki page for more details + +font-0 = "Iosevka Nerd Font:size=10;3" +font-1 = "Iosevka Nerd Font:size=12;3" +font-2 = "Iosevka Nerd Font:size=6;3" + +; Modules are added to one of the available blocks +; modules-left = cpu ram +; modules-center = xwindow xbrightness +; modules-right = ipc clock + +;; Available modules +;; +;alsa brightness battery +;bspwm cpu date +;filesystem github i3 +;subscriber demo memory +;menu-apps mpd wired-network +;wireless-network network pulseaudio +;name_you_want temperature my-text-label +;brightness keyboard title workspaces +;; +;; User modules +;checknetwork updates window_switch launcher powermenu sysmenu menu +;; +;; Bars +;cpu_bar memory_bar filesystem_bar mpd_bar +;volume brightness battery_bar + +modules-left = date sep mpd +modules-center = mod sep bspwm +modules-right = volume sep2 bna sep2 battery sep2 network + +; The separator will be inserted between the output of each module +separator = + +; This value is used to add extra spacing between elements +; @deprecated: This parameter will be removed in an upcoming version +spacing = 0 + +; Opacity value between 0.0 and 1.0 used on fade in/out +dim-value = 1.0 + +; Value to be used to set the WM_NAME atom +; If the value is empty or undefined, the atom value +; will be created from the following template: polybar-[BAR]_[MONITOR] +; NOTE: The placeholders are not available for custom values +wm-name = bspwm + +; Locale used to localize various module data (e.g. date) +; Expects a valid libc locale, for example: sv_SE.UTF-8 +locale = + +; Position of the system tray window +; If empty or undefined, tray support will be disabled +; NOTE: A center aligned tray will cover center aligned modules +; +; Available positions: +; left +; center +; right +; none +tray-position = none + +; If true, the bar will not shift its +; contents when the tray changes +tray-detached = false + +; Tray icon max size +tray-maxsize = 16 + +; DEPRECATED! Since 3.3.0 the tray always uses pseudo-transparency +; Enable pseudo transparency +; Will automatically be enabled if a fully transparent +; background color is defined using `tray-background` +; tray-transparent = false + +; Background color for the tray container +; ARGB color (e.g. #f00, #ff992a, #ddff1023) +; By default the tray container will use the bar +; background color. +tray-background = ${color.ALTBACKGROUND} + +; Tray offset defined as pixel value (e.g. 35) or percentage (e.g. 50%) +tray-offset-x = 0 +tray-offset-y = 0 + +; Pad the sides of each tray icon +tray-padding = 0 + +; Scale factor for tray clients +tray-scale = 1.0 + +; Restack the bar window and put it above the +; selected window manager's root +; +; Fixes the issue where the bar is being drawn +; on top of fullscreen window's +; +; Currently supported WM's: +; bspwm +; i3 (requires: `override-redirect = true`) +wm-restack = bspwm + +; Set a DPI values used when rendering text +; This only affects scalable fonts +; dpi = + +; Enable support for inter-process messaging +; See the Messaging wiki page for more details. +enable-ipc = true + +; Fallback click handlers that will be called if +; there's no matching module handler found. +click-left = +click-middle = +click-right = +scroll-up = bspc desktop -f prev.local +scroll-down = bspc desktop -f next.local +double-click-left = +double-click-middle = +double-click-right = + +; Requires polybar to be built with xcursor support (xcb-util-cursor) +; Possible values are: +; - default : The default pointer as before, can also be an empty string (default) +; - pointer : Typically in the form of a hand +; - ns-resize : Up and down arrows, can be used to indicate scrolling +cursor-click = +cursor-scroll = + +;; WM Workspace Specific + +; bspwm +;;scroll-up = bspwm-desknext +;;scroll-down = bspwm-deskprev +;;scroll-up = bspc desktop -f prev.local +;;scroll-down = bspc desktop -f next.local + +;i3 +;;scroll-up = i3wm-wsnext +;;scroll-down = i3wm-wsprev +;;scroll-up = i3-msg workspace next_on_output +;;scroll-down = i3-msg workspace prev_on_output + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +;; Application Settings + +[settings] +; The throttle settings lets the eventloop swallow up til X events +; if they happen within Y millisecond after first event was received. +; This is done to prevent flood of update event. +; +; For example if 5 modules emit an update event at the same time, we really +; just care about the last one. But if we wait too long for events to swallow +; the bar would appear sluggish so we continue if timeout +; expires or limit is reached. +throttle-output = 5 +throttle-output-for = 10 + +; Time in milliseconds that the input handler will wait between processing events +;throttle-input-for = 30 + +; Reload upon receiving XCB_RANDR_SCREEN_CHANGE_NOTIFY events +screenchange-reload = false + +; Compositing operators +; @see: https://www.cairographics.org/manual/cairo-cairo-t.html#cairo-operator-t +compositing-background = source +compositing-foreground = over +compositing-overline = over +compositing-underline = over +compositing-border = over + +; Define fallback values used by all module formats +;format-foreground = +;format-background = +;format-underline = +;format-overline = +;format-spacing = +;format-padding = +;format-margin = +;format-offset = + +; Enables pseudo-transparency for the bar +; If set to true the bar can be transparent without a compositor. +pseudo-transparency = false + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ +;; __________ ______ +;; / ____/ __ \/ ____/ +;; / __/ / / / / /_ +;; / /___/ /_/ / __/ +;; /_____/\____/_/ +;; +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + diff --git a/dot-config/bspwm/themes/manhattan/polybar/launch.sh b/dot-config/bspwm/themes/manhattan/polybar/launch.sh new file mode 100755 index 00000000..ae47b54c --- /dev/null +++ b/dot-config/bspwm/themes/manhattan/polybar/launch.sh @@ -0,0 +1,42 @@ +#!/usr/bin/env bash + +## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" +CARD="$(light -L | grep 'backlight' | head -n1 | cut -d'/' -f3)" +INTERFACE="$(ip link | awk '/state UP/ {print $2}' | tr -d :)" +RFILE="$DIR/.module" + +# Fix backlight and network modules +fix_modules() { + if [[ -z "$CARD" ]]; then + sed -i -e 's/backlight/bna/g' "$DIR"/config.ini + elif [[ "$CARD" != *"intel_"* ]]; then + sed -i -e 's/backlight/brightness/g' "$DIR"/config.ini + fi + + if [[ "$INTERFACE" == e* ]]; then + sed -i -e 's/network/ethernet/g' "$DIR"/config.ini + fi +} + +# Launch the bar +launch_bar() { + # Terminate already running bar instances + killall -q polybar + + # Wait until the processes have been shut down + while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done + + # Launch the bar + for mon in $(polybar --list-monitors | cut -d":" -f1); do + MONITOR=$mon polybar -q main -c "$DIR"/config.ini & + done +} + +# Execute functions +if [[ ! -f "$RFILE" ]]; then + fix_modules + touch "$RFILE" +fi +launch_bar diff --git a/dot-config/bspwm/themes/manhattan/polybar/modules.ini b/dot-config/bspwm/themes/manhattan/polybar/modules.ini new file mode 100644 index 00000000..e23c5f3e --- /dev/null +++ b/dot-config/bspwm/themes/manhattan/polybar/modules.ini @@ -0,0 +1,734 @@ +## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/bspwm] +type = internal/bspwm + +pin-workspaces = true +inline-mode = false + +enable-click = true +enable-scroll = true +reverse-scroll = true + +fuzzy-match = true + +; ws-icon-[0-9]+ = label;icon +; Note that the label needs to correspond with the bspwm workspace name +ws-icon-0 = 1; +ws-icon-1 = 2; +ws-icon-2 = 3; +ws-icon-3 = 4; +ws-icon-4 = 5; +ws-icon-5 = 6; +ws-icon-6 = 7; +ws-icon-7 = 8; +ws-icon-default = + +format = <label-state> +format-font = 2 + +label-monitor = %name% + +; If any values for label-dimmed-N are defined, the workspace/mode +; colors will get overridden with those values if the monitor is out of focus +; To only override workspaces in a specific state, use: +; label-dimmed-focused +; label-dimmed-occupied +; label-dimmed-urgent +; label-dimmed-empty +;label-dimmed-foreground = ${color.FOREGROUND} +;label-dimmed-underline = ${color.YELLOW} +;label-dimmed-focused-background = ${color.BACKGROUND} + +label-focused = %name% +label-focused-foreground = ${color.RED} +;label-focused-underline = ${color.RED} +label-focused-padding = 1 + +label-occupied = %name% +label-occupied-foreground = ${color.CYAN} +;label-occupied-underline = ${color.CYAN} +label-occupied-padding = 1 + +label-urgent = %name% +label-urgent-foreground = ${color.GREEN} +;label-urgent-underline = ${color.GREEN} +label-urgent-padding = 1 + +label-empty = %name% +label-empty-foreground = ${color.FOREGROUND} +label-empty-padding = 1 + +; Separator in between workspaces +label-separator = "" +label-separator-padding = 0 +label-separator-foreground = ${color.ALTBACKGROUND} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/mod] +type = internal/bspwm + +format = [<label-mode>] +format-background = ${color.BACKGROUND} +format-foreground = ${color.YELLOW} +;format-underline = ${color.BACKGROUND} +;format-overline = ${color.BACKGROUND} +format-padding = 1 + +label-monocle = "Monocle" +label-tiled = "Tiled" + +label-floating = ", Float" +label-pseudotiled = ", Pseudo" +label-fullscreen = ", Full" + +label-locked = " | Locked" +label-sticky = " | Sticky" +label-private = " | Private" + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/volume] +type = internal/pulseaudio + +; Sink to be used, if it exists (find using `pacmd list-sinks`, name field) +; If not, uses default sink +sink = alsa_output.pci-0000_12_00.3.analog-stereo + +; Use PA_VOLUME_UI_MAX (~153%) if true, or PA_VOLUME_NORM (100%) if false +; Default: true +use-ui-max = false + +; Interval for volume increase/decrease (in percent points) +; Default: 5 +interval = 5 + +; Available tags: +; <label-volume> (default) +; <ramp-volume> +; <bar-volume> +format-volume = <ramp-volume> <label-volume> + +; Available tags: +; <label-muted> (default) +; <ramp-volume> +; <bar-volume> +format-muted = <label-muted> + +; Available tokens: +; %percentage% (default) +label-volume = %percentage%% + +; Available tokens: +; %percentage% (default +format-muted-prefix = 婢 +format-muted-prefix-foreground = ${color.ALTFOREGROUND} +format-muted-font = 2 +label-muted = " Mute" +label-muted-foreground = ${color.ALTFOREGROUND} + +; Only applies if <ramp-volume> is used +ramp-volume-0 = 奄 +ramp-volume-1 = 奔 +ramp-volume-2 = 奔 +ramp-volume-3 = 墳 +ramp-volume-4 = 墳 +ramp-volume-foreground = ${color.YELLOW} +ramp-volume-font = 2 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/bna] +type = custom/text + +content = " NA" +content-prefix = +content-prefix-font = 2 +content-prefix-foreground = ${color.RED} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/backlight] +type = internal/xbacklight + +; Use the following command to list available cards: +; $ ls -1 /sys/class/backlight/ +card = intel_backlight + +; Available tags: +; <label> (default) +; <ramp> +; <bar> +format = <ramp> <label> + +; Available tokens: +; %percentage% (default) +label = %percentage%% + +; Only applies if <ramp> is used + +ramp-0 = +ramp-1 = +ramp-2 = +ramp-3 = +ramp-4 = +ramp-5 = +ramp-6 = +ramp-7 = +ramp-8 = +ramp-9 = +ramp-font = 2 +ramp-foreground = ${color.CYAN} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/brightness] +type = internal/backlight + +; Use the following command to list available cards: +; $ ls -1 /sys/class/backlight/ +card = ${system.sys_graphics_card} + +enable-scroll = true + +; Available tags: +; <label> (default) +; <ramp> +; <bar> +format = <ramp> <label> + +; Available tokens: +; %percentage% (default) +label = %percentage%% + +; Only applies if <ramp> is used + +ramp-0 = +ramp-1 = +ramp-2 = +ramp-3 = +ramp-4 = +ramp-5 = +ramp-6 = +ramp-7 = +ramp-8 = +ramp-9 = +ramp-font = 2 +ramp-foreground = ${color.CYAN} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/battery] +type = internal/battery + +; This is useful in case the battery never reports 100% charge +full-at = 99 + +; Use the following command to list batteries and adapters: +; $ ls -1 /sys/class/power_supply/ +battery = ${system.sys_battery} +adapter = ${system.sys_adapter} + +; If an inotify event haven't been reported in this many +; seconds, manually poll for new values. +; +; Needed as a fallback for systems that don't report events +; on sysfs/procfs. +; +; Disable polling by setting the interval to 0. +; +; Default: 5 +poll-interval = 2 + +; see "man date" for details on how to format the time string +; NOTE: if you want to use syntax tags here you need to use %%{...} +; Default: %H:%M:%S +time-format = %H:%M + +; Available tags: +; <label-charging> (default) +; <bar-capacity> +; <ramp-capacity> +; <animation-charging> +format-charging = <animation-charging> <label-charging> +; Available tags: +; <label-discharging> (default) +; <bar-capacity> +; <ramp-capacity> +; <animation-discharging> +format-discharging = <ramp-capacity> <label-discharging> + +; Available tags: +; <label-full> (default) +; <bar-capacity> +; <ramp-capacity> +;format-full = <ramp-capacity> <label-full> + +; Available tokens: +; %percentage% (default) +; %time% +; %consumption% (shows current charge rate in watts) + +label-charging = %percentage%% + +; Available tokens: +; %percentage% (default) +; %time% +; %consumption% (shows current discharge rate in watts) +label-discharging = %percentage%% + +; Available tokens: +; %percentage% (default) +format-full = <label-full> +format-full-font = 2 +format-full-prefix = " " +format-full-prefix-foreground = ${color.GREEN} +label-full = %percentage%% + +; Only applies if <ramp-capacity> is used +ramp-capacity-0 = +ramp-capacity-1 = +ramp-capacity-2 = +ramp-capacity-3 = +ramp-capacity-4 = +ramp-capacity-foreground = ${color.BLUE} +ramp-capacity-font = 2 +; Only applies if <bar-capacity> is used +;bar-capacity-width = 10 + +; Only applies if <animation-charging> is used +animation-charging-0 = +animation-charging-1 = +animation-charging-2 = +animation-charging-3 = +animation-charging-4 = +animation-charging-foreground = ${color.GREEN} +animation-charging-font = 2 +; Framerate in milliseconds +animation-charging-framerate = 750 + +; Only applies if <animation-discharging> is used +;;animation-discharging-0 = +;;animation-discharging-1 = +;;animation-discharging-2 = +;;animation-discharging-3 = +;;animation-discharging-4 = +;;animation-discharging-5 = +;;animation-discharging-6 = +;;animation-discharging-7 = +;;animation-discharging-8 = + +; Framerate in milliseconds +;animation-discharging-framerate = 500 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/date] +type = internal/date + +; Seconds to sleep between updates +interval = 1.0 + +; See "http://en.cppreference.com/w/cpp/io/manip/put_time" for details on how to format the date string +; NOTE: if you want to use syntax tags here you need to use %%{...} +;;date = %Y-%m-%d% + +; Optional time format +time = %I:%M %p + +; if `date-alt` or `time-alt` is defined, clicking +; the module will toggle between formats +;;date-alt = %A, %d %B %Y +#time-alt = %d/%m/%Y% +time-alt = %b %d, %G + +; Available tags: +; <label> (default) + +format = <label> +format-prefix = " " +format-font = 2 +format-prefix-foreground = ${color.CYAN} +format-padding = 0 + +; Available tokens: +; %date% +; %time% +; Default: %date% +label = %time% + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/mpd] +type = internal/mpd + +; Host where mpd is running (either ip or domain name) +; Can also be the full path to a unix socket where mpd is running. +;;host = 127.0.0.1 +;;port = 6600 +;;password = mysecretpassword + +; Seconds to sleep between progressbar/song timer sync +; Default: 1 +interval = 2 + +; Available tags: +; <label-song> (default) +; <label-time> +; <bar-progress> +; <toggle> - gets replaced with <icon-(pause|play)> +; <toggle-stop> - gets replaced with <icon-(stop|play)> +; <icon-random> +; <icon-repeat> +; <icon-repeatone> (deprecated) +; <icon-single> - Toggle playing only a single song. Replaces <icon-repeatone> +; <icon-consume> +; <icon-prev> +; <icon-stop> +; <icon-play> +; <icon-pause> +; <icon-next> +; <icon-seekb> +; <icon-seekf> +format-online-prefix = " " +format-online-prefix-font = 2 +format-online-prefix-foreground = ${color.MAGENTA} +;format-online = <label-song> <toggle> +format-online = <label-song> <icon-prev> <toggle> <icon-next> +;format-online-font = 2 + +format-playing = ${self.format-online} +format-paused = <label-song> <toggle> +;format-stopped = ${self.format-online} + +; Available tags: +; <label-offline> +;format-offline = <label-offline> + +; Available tokens: +; %artist% +; %album-artist% +; %album% +; %date% +; %title% +; Default: %artist% - %title% +label-song = "%title%" +label-song-maxlen = 25 +label-song-ellipsis = true + +; Available tokens: +; %elapsed% +; %total% +; Default: %elapsed% / %total% +;;abel-time = %elapsed% / %total% + +; Available tokens: +; None +label-offline = "MPD is offline" + +; Only applies if <icon-X> is used +icon-play = +icon-play-font = 2 +icon-play-foreground = ${color.GREEN} +icon-pause = +icon-pause-font = 2 +icon-pause-foreground = ${color.YELLOW} +icon-stop = +icon-stop-foreground = ${color.RED} +icon-prev = 玲 +icon-prev-font = 2 +icon-prev-foreground = ${color.CYAN} +icon-next = 怜 +icon-next-font = 2 +icon-next-foreground = ${color.CYAN} +icon-seekb = ⏪ +icon-seekf = ⏩ +icon-random = 🔀 +icon-repeat = 🔁 +icon-repeatone = 🔂 +icon-single = 🔂 +icon-consume = ✀ + +; Used to display the state of random/repeat/repeatone/single +; Only applies if <icon-[random|repeat|repeatone|single]> is used +;;toggle-on-foreground = #ff +;;toggle-off-foreground = #55 + +; Only applies if <bar-progress> is used +;;bar-progress-width = 45 +;;bar-progress-indicator = | +;;bar-progress-fill = ─ +;;bar-progress-empty = ─ + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +; If you use both a wired and a wireless network, Add both modules in config.ini +[module/ethernet] +type = internal/network +interface = ${system.sys_network_interface} + +interval = 1.0 +accumulate-stats = true +unknown-as-up = true + +format-connected = <label-connected> +format-connected-prefix = "歷 " +format-connected-prefix-foreground = ${color.MAGENTA} +format-connected-prefix-font = 2 +format-connected-background = ${color.BACKGROUND} + +format-disconnected = <label-disconnected> +format-disconnected-prefix = "轢 " +format-disconnected-prefix-font = 2 +format-disconnected-prefix-foreground = ${color.ALTFOREGROUND} +format-disconnected-background = ${color.BACKGROUND} + +label-connected = "%{A1:nmd &:}%downspeed% | %upspeed%%{A}" +label-disconnected = "%{A1:nmd &:}Offline%{A}" + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +; Normal Module +[module/network] +type = internal/network +interface = ${system.sys_network_interface} + +; Seconds to sleep between updates +; Default: 1 +interval = 1.0 + +; Test connectivity every Nth update +; A value of 0 disables the feature +; NOTE: Experimental (needs more testing) +; Default: 0 +;ping-interval = 3 + +; @deprecated: Define min width using token specifiers (%downspeed:min% and %upspeed:min%) +; Minimum output width of upload/download rate +; Default: 3 +;;udspeed-minwidth = 5 + +; Accumulate values from all interfaces +; when querying for up/downspeed rate +; Default: false +accumulate-stats = true + +; Consider an `UNKNOWN` interface state as up. +; Some devices have an unknown state, even when they're running +; Default: false +unknown-as-up = true + +; Available tags: +; <label-connected> (default) +; <ramp-signal> +format-connected = <ramp-signal> <label-connected> + +; Available tags: +; <label-disconnected> (default) + +format-disconnected-prefix = "睊 " +format-disconnected-font = 2 +format-disconnected-prefix-foreground = ${color.ALTFOREGROUND} +format-disconnected = <label-disconnected> + +; Available tags: +; <label-connected> (default) +; <label-packetloss> +; <animation-packetloss> +;;format-packetloss = <animation-packetloss> <label-connected> + +; Available tokens: +; %ifname% [wireless+wired] +; %local_ip% [wireless+wired] +; %local_ip6% [wireless+wired] +; %essid% [wireless] +; %signal% [wireless] +; %upspeed% [wireless+wired] +; %downspeed% [wireless+wired] +; %linkspeed% [wired] +; Default: %ifname% %local_ip% +;label-connected = "%essid% %downspeed:8% %upspeed:8%" +label-connected = "%{A1:nmd &:}%essid%%{A}" +;;label-connected-foreground = #eefafafa + +; Available tokens: +; %ifname% [wireless+wired] +; Default: (none) +label-disconnected = "%{A1:nmd &:}Offline%{A}" +label-disconnected-foreground = ${color.ALTFOREGROUND} + +; Available tokens: +; %ifname% [wireless+wired] +; %local_ip% [wireless+wired] +; %local_ip6% [wireless+wired] +; %essid% [wireless] +; %signal% [wireless] +; %upspeed% [wireless+wired] +; %downspeed% [wireless+wired] +; %linkspeed% [wired] +; Default: (none) +;label-packetloss = %essid% +;label-packetloss-foreground = #eefafafa + +; Only applies if <ramp-signal> is used +ramp-signal-0 = 直 +ramp-signal-1 = 直 +ramp-signal-2 = 直 +ramp-signal-3 = 直 +ramp-signal-4 = 直 +ramp-signal-foreground = ${color.MAGENTA} +ramp-signal-font = 2 + +; Only applies if <animation-packetloss> is used +;;animation-packetloss-0 = ⚠ +;;animation-packetloss-0-foreground = #ffa64c +;;animation-packetloss-1 = ⚠ +;;animation-packetloss-1-foreground = #000000 +; Framerate in milliseconds +;;animation-packetloss-framerate = 500 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/workspaces] +type = internal/xworkspaces + +; Only show workspaces defined on the same output as the bar +; +; Useful if you want to show monitor specific workspaces +; on different bars +; +; Default: false +pin-workspaces = true + +; Create click handler used to focus desktop +; Default: true +enable-click = true + +; Create scroll handlers used to cycle desktops +; Default: true +enable-scroll = true + +; icon-[0-9]+ = <desktop-name>;<icon> +; NOTE: The desktop name needs to match the name configured by the WM +; You can get a list of the defined desktops using: +; $ xprop -root _NET_DESKTOP_NAMES +icon-0 = 1;ﱡ +icon-1 = 2;ﱡ +icon-2 = 3;ﱡ +icon-3 = 4;ﱡ +icon-4 = 5;ﱡ +icon-default = ﱡ + +; Available tags: +; <label-monitor> +; <label-state> - gets replaced with <label-(active|urgent|occupied|empty)> +; Default: <label-state> +format = <label-state> +format-padding = 0 +format-font = 2 + +; Available tokens: +; %name% +; Default: %name% +label-monitor = %name% + +; Available tokens: +; %name% +; %icon% +; %index% +; Default: %icon% %name% +label-active = ﱢ +label-active-foreground = ${color.RED} +label-active-background = ${color.BACKGROUND} +;;label-active-underline = ${color.RED} + +; Available tokens: +; %name% +; %icon% +; %index% +; Default: %icon% %name% +label-occupied = ﱢ +label-occupied-foreground = ${color.CYAN} +label-occupied-background = ${color.BACKGROUND} + +; Available tokens: +; %name% +; %icon% +; %index% +; Default: %icon% %name% +label-urgent = ﱢ +label-urgent-foreground = ${color.GREEN} +label-urgent-background = ${color.BACKGROUND} +;;label-urgent-underline = ${color.red} + +; Available tokens: +; %name% +; %icon% +; %index% +; Default: %icon% %name% +label-empty = %icon% +label-empty-foreground = ${color.CYAN} + +label-active-padding = 1 +label-urgent-padding = 1 +label-occupied-padding = 1 +label-empty-padding = 1 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/menu] +type = custom/text + +content = +content-font = 2 +content-foreground = ${color.ACCENT} +content-padding = 0 + +click-left = ~/.config/bspwm/scripts/rofi_launcher +click-right = ~/.config/bspwm/scripts/rofi_runner + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/sysmenu] +type = custom/text + +content = +content-font = 2 +content-foreground = ${color.RED} +content-padding = 0 + +click-left = ~/.config/bspwm/scripts/rofi_powermenu + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/sep] +type = custom/text +content = +content-font = 3 + +content-foreground = ${color.FOREGROUND} +content-background = ${color.BACKGROUND} +content-padding = 3 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/sep2] +type = custom/text +content = +content-font = 3 + +content-foreground = ${color.BACKGROUND} +content-background = ${color.BACKGROUND} +content-padding = 2 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ +;; __________ ______ +;; / ____/ __ \/ ____/ +;; / __/ / / / / /_ +;; / /___/ /_/ / __/ +;; /_____/\____/_/ +;; +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ diff --git a/dot-config/bspwm/themes/manhattan/rofi/askpass.rasi b/dot-config/bspwm/themes/manhattan/rofi/askpass.rasi new file mode 100644 index 00000000..b3a1e321 --- /dev/null +++ b/dot-config/bspwm/themes/manhattan/rofi/askpass.rasi @@ -0,0 +1,75 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/*****----- Main Window -----*****/ +window { + location: center; + anchor: center; + fullscreen: false; + width: 350px; + x-offset: 0px; + y-offset: 0px; + padding: 15px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: @background; + cursor: "default"; + children: [ "inputbar", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + children: [ "textbox-prompt-colon", "prompt", "entry" ]; +} + +dummy { + expand: false; + width: 10px; + background-color: transparent; +} +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + padding: 10px 13px; + border-radius: 0px; + background-color: @urgent; + text-color: @background; +} +prompt { + enabled: true; + padding: 10px; + border-radius: 0px; + background-color: @active; + text-color: @background; +} +entry { + enabled: true; + padding: 10px 15px; + border-radius: 0px; + background-color: @background-alt; + text-color: inherit; + cursor: text; + placeholder: "Password"; + placeholder-color: inherit; +} + +/*****----- Listview -----*****/ +listview { + enabled: false; +} diff --git a/dot-config/bspwm/themes/manhattan/rofi/asroot.rasi b/dot-config/bspwm/themes/manhattan/rofi/asroot.rasi new file mode 100644 index 00000000..62dbd032 --- /dev/null +++ b/dot-config/bspwm/themes/manhattan/rofi/asroot.rasi @@ -0,0 +1,148 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + show-icons: false; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/* +USE_ICON=YES +*/ + +/*****----- Main Window -----*****/ +window { + transparency: "real"; + location: south; + anchor: south; + fullscreen: false; + width: 400px; + x-offset: 0px; + y-offset: -48px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + cursor: "default"; + background-color: @background; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 20px; + background-color: transparent; + children: [ "inputbar", "listview", "message" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + padding: 0px; + border: 0px; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + children: [ "textbox-prompt-colon", "prompt"]; +} + +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + padding: 5px 0px; + border-radius: 0px; + background-color: @background; + text-color: @selected; +} +prompt { + enabled: true; + padding: 5px 0px; + border-radius: 0px; + background-color: @background; + text-color: @foreground; +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 15px; + border: 0px solid; + border-radius: 0%; + border-color: @selected; + background-color: @background-alt; + text-color: @foreground; +} +textbox { + background-color: inherit; + text-color: inherit; + vertical-align: 0.5; + horizontal-align: 0.5; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 3; + lines: 2; + cycle: true; + scrollbar: false; + layout: vertical; + + spacing: 10px; + background-color: transparent; + cursor: "default"; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + padding: 30px 10px; + border: 0px solid; + border-radius: 0%; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + cursor: pointer; +} +element-text { + font: "feather 28"; + background-color: transparent; + text-color: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.5; +} + +element normal.normal, +element alternate.normal { + background-color: var(background-alt); + text-color: var(foreground); +} +element normal.urgent, +element alternate.urgent, +element selected.active { + background-color: var(urgent); + text-color: var(background); +} +element normal.active, +element alternate.active, +element selected.urgent { + background-color: var(active); + text-color: var(background); +} +element selected.normal { + background-color: var(selected); + text-color: var(background); +} diff --git a/dot-config/bspwm/themes/manhattan/rofi/confirm.rasi b/dot-config/bspwm/themes/manhattan/rofi/confirm.rasi new file mode 100644 index 00000000..9a4b1d0c --- /dev/null +++ b/dot-config/bspwm/themes/manhattan/rofi/confirm.rasi @@ -0,0 +1,148 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + show-icons: false; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/* +USE_ICON=YES +*/ + +/*****----- Main Window -----*****/ +window { + transparency: "real"; + location: southeast; + anchor: southeast; + fullscreen: false; + width: 280px; + x-offset: -10px; + y-offset: -48px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + cursor: "default"; + background-color: @background; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 20px; + background-color: transparent; + children: [ "inputbar", "listview", "message" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + padding: 0px; + border: 0px; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + children: [ "textbox-prompt-colon", "prompt"]; +} + +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + padding: 5px 0px; + border-radius: 0px; + background-color: @background; + text-color: @selected; +} +prompt { + enabled: true; + padding: 5px 0px; + border-radius: 0px; + background-color: @background; + text-color: @foreground; +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 15px; + border: 0px solid; + border-radius: 0%; + border-color: @selected; + background-color: @background-alt; + text-color: @foreground; +} +textbox { + background-color: inherit; + text-color: inherit; + vertical-align: 0.5; + horizontal-align: 0.5; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 2; + lines: 1; + cycle: true; + scrollbar: false; + layout: vertical; + + spacing: 10px; + background-color: transparent; + cursor: "default"; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + padding: 30px 10px; + border: 0px solid; + border-radius: 0%; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + cursor: pointer; +} +element-text { + font: "feather 28"; + background-color: transparent; + text-color: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.5; +} + +element normal.normal, +element alternate.normal { + background-color: var(background-alt); + text-color: var(foreground); +} +element normal.urgent, +element alternate.urgent, +element selected.active { + background-color: var(urgent); + text-color: var(background); +} +element normal.active, +element alternate.active, +element selected.urgent { + background-color: var(active); + text-color: var(background); +} +element selected.normal { + background-color: var(selected); + text-color: var(background); +} diff --git a/dot-config/bspwm/themes/manhattan/rofi/launcher.rasi b/dot-config/bspwm/themes/manhattan/rofi/launcher.rasi new file mode 100644 index 00000000..75ebb8b8 --- /dev/null +++ b/dot-config/bspwm/themes/manhattan/rofi/launcher.rasi @@ -0,0 +1,274 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + modi: "drun"; + show-icons: true; + display-drun: ""; + display-run: ""; + display-filebrowser: ""; + display-window: ""; + drun-display-format: "{name} [<span weight='light' size='small'><i>({generic})</i></span>]"; + window-format: "{w} · {c} · {t}"; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +* { + border-colour: var(selected); + handle-colour: var(selected); + background-colour: var(background); + foreground-colour: var(foreground); + alternate-background: var(background-alt); + normal-background: var(background); + normal-foreground: var(foreground); + urgent-background: var(urgent); + urgent-foreground: var(background); + active-background: var(active); + active-foreground: var(background); + selected-normal-background: var(selected); + selected-normal-foreground: var(background); + selected-urgent-background: var(active); + selected-urgent-foreground: var(background); + selected-active-background: var(urgent); + selected-active-foreground: var(background); + alternate-normal-background: var(background); + alternate-normal-foreground: var(foreground); + alternate-urgent-background: var(urgent); + alternate-urgent-foreground: var(background); + alternate-active-background: var(active); + alternate-active-foreground: var(background); +} + +/*****----- Main Window -----*****/ +window { + /* properties for window widget */ + transparency: "real"; + location: southwest; + anchor: southwest; + fullscreen: false; + width: 500px; + x-offset: 10px; + y-offset: -48px; + + /* properties for all widgets */ + enabled: true; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + cursor: "default"; + background-color: @background-colour; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 0px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @border-colour; + background-color: transparent; + children: [ "inputbar", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 0px; + margin: 0px; + padding: 0px; + border: 0px 0px 1px 0px; + border-radius: 0px; + border-color: @alternate-background; + background-color: @background-colour; + text-color: @foreground-colour; + children: [ "prompt", "entry" ]; +} + +prompt { + enabled: true; + padding: 15px; + border: 0px 1px 0px 0px; + border-radius: 0px; + border-color: @alternate-background; + background-color: inherit; + text-color: @selected; +} +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + background-color: inherit; + text-color: inherit; +} +entry { + enabled: true; + padding: 15px; + background-color: inherit; + text-color: inherit; + cursor: text; + placeholder: "search..."; + placeholder-color: inherit; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 1; + lines: 8; + cycle: true; + dynamic: true; + scrollbar: false; + layout: vertical; + reverse: false; + fixed-height: true; + fixed-columns: true; + + spacing: 0px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: "default"; +} +scrollbar { + handle-width: 5px ; + handle-color: @handle-colour; + border-radius: 0px; + background-color: @alternate-background; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 8px 15px; + border: 0px 0px 1px 0px; + border-radius: 0px; + border-color: @alternate-background; + background-color: transparent; + text-color: @foreground-colour; + cursor: pointer; +} +element normal.normal { + background-color: var(normal-background); + text-color: var(normal-foreground); +} +element normal.urgent { + background-color: var(urgent-background); + text-color: var(urgent-foreground); +} +element normal.active { + background-color: var(active-background); + text-color: var(active-foreground); +} +element selected.normal { + background-color: var(urgent); + text-color: var(background); +} +element selected.urgent { + background-color: var(selected-urgent-background); + text-color: var(selected-urgent-foreground); +} +element selected.active { + background-color: var(selected-active-background); + text-color: var(selected-active-foreground); +} +element alternate.normal { + background-color: var(alternate-normal-background); + text-color: var(alternate-normal-foreground); +} +element alternate.urgent { + background-color: var(alternate-urgent-background); + text-color: var(alternate-urgent-foreground); +} +element alternate.active { + background-color: var(alternate-active-background); + text-color: var(alternate-active-foreground); +} +element-icon { + background-color: transparent; + text-color: inherit; + size: 32px; + cursor: inherit; +} +element-text { + background-color: transparent; + text-color: inherit; + highlight: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Mode Switcher -----*****/ +mode-switcher{ + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; +} +button { + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: inherit; + cursor: pointer; +} +button selected { + background-color: var(selected-normal-background); + text-color: var(selected-normal-foreground); +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; +} +textbox { + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: @foreground-colour; + vertical-align: 0.5; + horizontal-align: 0.0; + highlight: none; + placeholder-color: @foreground-colour; + blink: true; + markup: true; +} +error-message { + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @background-colour; + text-color: @foreground-colour; +} diff --git a/dot-config/bspwm/themes/manhattan/rofi/music.rasi b/dot-config/bspwm/themes/manhattan/rofi/music.rasi new file mode 100644 index 00000000..92f327d7 --- /dev/null +++ b/dot-config/bspwm/themes/manhattan/rofi/music.rasi @@ -0,0 +1,148 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + show-icons: false; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/* +USE_ICON=YES +*/ + +/*****----- Main Window -----*****/ +window { + transparency: "real"; + location: southwest; + anchor: southwest; + fullscreen: false; + width: 400px; + x-offset: 10px; + y-offset: -48px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + cursor: "default"; + background-color: @background; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 20px; + background-color: transparent; + children: [ "inputbar", "listview", "message" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + padding: 0px; + border: 0px; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + children: [ "textbox-prompt-colon", "prompt"]; +} + +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + padding: 5px 0px; + border-radius: 0px; + background-color: @background; + text-color: @selected; +} +prompt { + enabled: true; + padding: 5px 0px; + border-radius: 0px; + background-color: @background; + text-color: @foreground; +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 15px; + border: 0px solid; + border-radius: 0%; + border-color: @selected; + background-color: @background-alt; + text-color: @foreground; +} +textbox { + background-color: inherit; + text-color: inherit; + vertical-align: 0.5; + horizontal-align: 0.5; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 3; + lines: 2; + cycle: true; + scrollbar: false; + layout: vertical; + + spacing: 10px; + background-color: transparent; + cursor: "default"; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + padding: 30px 10px; + border: 0px solid; + border-radius: 0%; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + cursor: pointer; +} +element-text { + font: "feather 28"; + background-color: transparent; + text-color: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.5; +} + +element normal.normal, +element alternate.normal { + background-color: var(background-alt); + text-color: var(foreground); +} +element normal.urgent, +element alternate.urgent, +element selected.active { + background-color: var(urgent); + text-color: var(background); +} +element normal.active, +element alternate.active, +element selected.urgent { + background-color: var(active); + text-color: var(background); +} +element selected.normal { + background-color: var(selected); + text-color: var(background); +} diff --git a/dot-config/bspwm/themes/manhattan/rofi/networkmenu.rasi b/dot-config/bspwm/themes/manhattan/rofi/networkmenu.rasi new file mode 100644 index 00000000..c4a3061f --- /dev/null +++ b/dot-config/bspwm/themes/manhattan/rofi/networkmenu.rasi @@ -0,0 +1,278 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + modi: "drun"; + show-icons: false; + display-drun: ""; + display-run: ""; + display-filebrowser: ""; + display-window: ""; + drun-display-format: "{name} [<span weight='light' size='small'><i>({generic})</i></span>]"; + window-format: "{w} · {c} · {t}"; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +* { + border-colour: var(selected); + handle-colour: var(selected); + background-colour: var(background); + foreground-colour: var(foreground); + alternate-background: var(background-alt); + normal-background: var(background); + normal-foreground: var(foreground); + urgent-background: var(urgent); + urgent-foreground: var(background); + active-background: var(active); + active-foreground: var(background); + selected-normal-background: var(selected); + selected-normal-foreground: var(background); + selected-urgent-background: var(active); + selected-urgent-foreground: var(background); + selected-active-background: var(urgent); + selected-active-foreground: var(background); + alternate-normal-background: var(background); + alternate-normal-foreground: var(foreground); + alternate-urgent-background: var(urgent); + alternate-urgent-foreground: var(background); + alternate-active-background: var(active); + alternate-active-foreground: var(background); +} + +/*****----- Main Window -----*****/ +window { + /* properties for window widget */ + transparency: "real"; + location: southeast; + anchor: southeast; + fullscreen: false; + width: 500px; + height: 500px; + x-offset: -10px; + y-offset: -48px; + + /* properties for all widgets */ + enabled: true; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + cursor: "default"; + background-color: @background-colour; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 0px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @border-colour; + background-color: transparent; + children: [ "inputbar", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 0px; + margin: 0px; + padding: 0px; + border: 0px 0px 1px 0px; + border-radius: 0px; + border-color: @alternate-background; + background-color: @background-colour; + text-color: @foreground-colour; + children: [ "textbox-prompt-colon", "prompt", "entry" ]; +} + +prompt { + enabled: true; + padding: 15px; + border: 0px 1px 0px 0px; + border-radius: 0px; + border-color: @alternate-background; + background-color: inherit; + text-color: @selected; +} +textbox-prompt-colon { + enabled: true; + expand: false; + str: "直"; + padding: 15px 0px 15px 15px; + border-radius: 0px; + border-color: @alternate-background; + background-color: inherit; + text-color: @selected; +} +entry { + enabled: true; + padding: 15px; + background-color: inherit; + text-color: inherit; + cursor: text; + placeholder: ""; + placeholder-color: inherit; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 1; + lines: 8; + cycle: true; + dynamic: true; + scrollbar: false; + layout: vertical; + reverse: false; + fixed-height: true; + fixed-columns: true; + + spacing: 0px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: "default"; +} +scrollbar { + handle-width: 5px ; + handle-color: @handle-colour; + border-radius: 0px; + background-color: @alternate-background; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 13px; + border: 0px 0px 1px 0px; + border-radius: 0px; + border-color: @alternate-background; + background-color: transparent; + text-color: @foreground-colour; + cursor: pointer; +} +element normal.normal { + background-color: var(normal-background); + text-color: var(normal-foreground); +} +element normal.urgent { + background-color: var(urgent-background); + text-color: var(urgent-foreground); +} +element normal.active { + background-color: var(active-background); + text-color: var(active-foreground); +} +element selected.normal { + background-color: var(urgent); + text-color: var(background); +} +element selected.urgent { + background-color: var(selected-urgent-background); + text-color: var(selected-urgent-foreground); +} +element selected.active { + background-color: var(selected-active-background); + text-color: var(selected-active-foreground); +} +element alternate.normal { + background-color: var(alternate-normal-background); + text-color: var(alternate-normal-foreground); +} +element alternate.urgent { + background-color: var(alternate-urgent-background); + text-color: var(alternate-urgent-foreground); +} +element alternate.active { + background-color: var(alternate-active-background); + text-color: var(alternate-active-foreground); +} +element-icon { + background-color: transparent; + text-color: inherit; + size: 32px; + cursor: inherit; +} +element-text { + background-color: transparent; + text-color: inherit; + highlight: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Mode Switcher -----*****/ +mode-switcher{ + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; +} +button { + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: inherit; + cursor: pointer; +} +button selected { + background-color: var(selected-normal-background); + text-color: var(selected-normal-foreground); +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; +} +textbox { + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: @foreground-colour; + vertical-align: 0.5; + horizontal-align: 0.0; + highlight: none; + placeholder-color: @foreground-colour; + blink: true; + markup: true; +} +error-message { + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @background-colour; + text-color: @foreground-colour; +} diff --git a/dot-config/bspwm/themes/manhattan/rofi/powermenu.rasi b/dot-config/bspwm/themes/manhattan/rofi/powermenu.rasi new file mode 100644 index 00000000..c8e8e2bc --- /dev/null +++ b/dot-config/bspwm/themes/manhattan/rofi/powermenu.rasi @@ -0,0 +1,148 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + show-icons: false; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/* +USE_ICON=YES +*/ + +/*****----- Main Window -----*****/ +window { + transparency: "real"; + location: southeast; + anchor: southeast; + fullscreen: false; + width: 400px; + x-offset: -10px; + y-offset: -48px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + cursor: "default"; + background-color: @background; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 20px; + background-color: transparent; + children: [ "inputbar", "listview", "message" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + padding: 0px; + border: 0px; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + children: [ "textbox-prompt-colon", "prompt"]; +} + +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + padding: 5px 0px; + border-radius: 0px; + background-color: @background; + text-color: @selected; +} +prompt { + enabled: true; + padding: 5px 0px; + border-radius: 0px; + background-color: @background; + text-color: @foreground; +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 15px; + border: 0px solid; + border-radius: 0%; + border-color: @selected; + background-color: @background-alt; + text-color: @foreground; +} +textbox { + background-color: inherit; + text-color: inherit; + vertical-align: 0.5; + horizontal-align: 0.5; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 3; + lines: 2; + cycle: true; + scrollbar: false; + layout: vertical; + + spacing: 10px; + background-color: transparent; + cursor: "default"; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + padding: 30px 10px; + border: 0px solid; + border-radius: 0%; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + cursor: pointer; +} +element-text { + font: "feather 28"; + background-color: transparent; + text-color: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.5; +} + +element normal.normal, +element alternate.normal { + background-color: var(background-alt); + text-color: var(foreground); +} +element normal.urgent, +element alternate.urgent, +element selected.active { + background-color: var(urgent); + text-color: var(background); +} +element normal.active, +element alternate.active, +element selected.urgent { + background-color: var(active); + text-color: var(background); +} +element selected.normal { + background-color: var(selected); + text-color: var(background); +} diff --git a/dot-config/bspwm/themes/manhattan/rofi/runner.rasi b/dot-config/bspwm/themes/manhattan/rofi/runner.rasi new file mode 100644 index 00000000..5556debe --- /dev/null +++ b/dot-config/bspwm/themes/manhattan/rofi/runner.rasi @@ -0,0 +1,274 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + modi: "run"; + show-icons: true; + display-drun: ""; + display-run: ""; + display-filebrowser: ""; + display-window: ""; + drun-display-format: "{name} [<span weight='light' size='small'><i>({generic})</i></span>]"; + window-format: "{w} · {c} · {t}"; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +* { + border-colour: var(selected); + handle-colour: var(selected); + background-colour: var(background); + foreground-colour: var(foreground); + alternate-background: var(background-alt); + normal-background: var(background); + normal-foreground: var(foreground); + urgent-background: var(urgent); + urgent-foreground: var(background); + active-background: var(active); + active-foreground: var(background); + selected-normal-background: var(selected); + selected-normal-foreground: var(background); + selected-urgent-background: var(active); + selected-urgent-foreground: var(background); + selected-active-background: var(urgent); + selected-active-foreground: var(background); + alternate-normal-background: var(background); + alternate-normal-foreground: var(foreground); + alternate-urgent-background: var(urgent); + alternate-urgent-foreground: var(background); + alternate-active-background: var(active); + alternate-active-foreground: var(background); +} + +/*****----- Main Window -----*****/ +window { + /* properties for window widget */ + transparency: "real"; + location: southwest; + anchor: southwest; + fullscreen: false; + width: 400px; + x-offset: 10px; + y-offset: -48px; + + /* properties for all widgets */ + enabled: true; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + cursor: "default"; + background-color: @background-colour; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 0px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @border-colour; + background-color: transparent; + children: [ "inputbar", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 0px; + margin: 0px; + padding: 0px; + border: 0px 0px 1px 0px; + border-radius: 0px; + border-color: @alternate-background; + background-color: @background-colour; + text-color: @foreground-colour; + children: [ "prompt", "entry" ]; +} + +prompt { + enabled: true; + padding: 15px; + border: 0px 1px 0px 0px; + border-radius: 0px; + border-color: @alternate-background; + background-color: inherit; + text-color: @selected; +} +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + background-color: inherit; + text-color: inherit; +} +entry { + enabled: true; + padding: 15px; + background-color: inherit; + text-color: inherit; + cursor: text; + placeholder: "run..."; + placeholder-color: inherit; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 1; + lines: 6; + cycle: true; + dynamic: true; + scrollbar: false; + layout: vertical; + reverse: false; + fixed-height: true; + fixed-columns: true; + + spacing: 0px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: "default"; +} +scrollbar { + handle-width: 5px ; + handle-color: @handle-colour; + border-radius: 0px; + background-color: @alternate-background; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 8px 15px; + border: 0px 0px 1px 0px; + border-radius: 0px; + border-color: @alternate-background; + background-color: transparent; + text-color: @foreground-colour; + cursor: pointer; +} +element normal.normal { + background-color: var(normal-background); + text-color: var(normal-foreground); +} +element normal.urgent { + background-color: var(urgent-background); + text-color: var(urgent-foreground); +} +element normal.active { + background-color: var(active-background); + text-color: var(active-foreground); +} +element selected.normal { + background-color: var(urgent); + text-color: var(background); +} +element selected.urgent { + background-color: var(selected-urgent-background); + text-color: var(selected-urgent-foreground); +} +element selected.active { + background-color: var(selected-active-background); + text-color: var(selected-active-foreground); +} +element alternate.normal { + background-color: var(alternate-normal-background); + text-color: var(alternate-normal-foreground); +} +element alternate.urgent { + background-color: var(alternate-urgent-background); + text-color: var(alternate-urgent-foreground); +} +element alternate.active { + background-color: var(alternate-active-background); + text-color: var(alternate-active-foreground); +} +element-icon { + background-color: transparent; + text-color: inherit; + size: 32px; + cursor: inherit; +} +element-text { + background-color: transparent; + text-color: inherit; + highlight: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Mode Switcher -----*****/ +mode-switcher{ + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; +} +button { + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: inherit; + cursor: pointer; +} +button selected { + background-color: var(selected-normal-background); + text-color: var(selected-normal-foreground); +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; +} +textbox { + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: @foreground-colour; + vertical-align: 0.5; + horizontal-align: 0.0; + highlight: none; + placeholder-color: @foreground-colour; + blink: true; + markup: true; +} +error-message { + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @background-colour; + text-color: @foreground-colour; +} diff --git a/dot-config/bspwm/themes/manhattan/rofi/screenshot.rasi b/dot-config/bspwm/themes/manhattan/rofi/screenshot.rasi new file mode 100644 index 00000000..c3ca3f07 --- /dev/null +++ b/dot-config/bspwm/themes/manhattan/rofi/screenshot.rasi @@ -0,0 +1,148 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + show-icons: false; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/* +USE_ICON=YES +*/ + +/*****----- Main Window -----*****/ +window { + transparency: "real"; + location: southeast; + anchor: southeast; + fullscreen: false; + width: 400px; + x-offset: -10px; + y-offset: -48px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + cursor: "default"; + background-color: @background; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 20px; + background-color: transparent; + children: [ "inputbar", "listview", "message" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + padding: 0px; + border: 0px; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + children: [ "textbox-prompt-colon", "prompt"]; +} + +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + padding: 5px 0px; + border-radius: 0px; + background-color: @background; + text-color: @selected; +} +prompt { + enabled: true; + padding: 5px 0px; + border-radius: 0px; + background-color: @background; + text-color: @foreground; +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 15px; + border: 0px solid; + border-radius: 0%; + border-color: @selected; + background-color: @background-alt; + text-color: @foreground; +} +textbox { + background-color: inherit; + text-color: inherit; + vertical-align: 0.5; + horizontal-align: 0.5; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 3; + lines: 2; + cycle: true; + scrollbar: false; + layout: vertical; + + spacing: 10px; + background-color: transparent; + cursor: "default"; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + padding: 30px 10px; + border: 0px solid; + border-radius: 0%; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + cursor: pointer; +} +element-text { + font: "feather 28"; + background-color: transparent; + text-color: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.5; +} + +element normal.normal, +element alternate.normal { + background-color: var(background-alt); + text-color: var(foreground); +} +element normal.urgent, +element alternate.urgent, +element selected.active { + background-color: var(urgent); + text-color: var(background); +} +element normal.active, +element alternate.active, +element selected.urgent { + background-color: var(active); + text-color: var(background); +} +element selected.normal { + background-color: var(selected); + text-color: var(background); +} diff --git a/dot-config/bspwm/themes/manhattan/rofi/shared/colors.rasi b/dot-config/bspwm/themes/manhattan/rofi/shared/colors.rasi new file mode 100644 index 00000000..5c981de0 --- /dev/null +++ b/dot-config/bspwm/themes/manhattan/rofi/shared/colors.rasi @@ -0,0 +1,8 @@ +* { + background: #1F252B; + background-alt: #2a323a; + foreground: #F0FBF8; + selected: #B4A1DB; + active: #74dd91; + urgent: #db86ba; +} diff --git a/dot-config/bspwm/themes/manhattan/rofi/shared/fonts.rasi b/dot-config/bspwm/themes/manhattan/rofi/shared/fonts.rasi new file mode 100644 index 00000000..d2af39fe --- /dev/null +++ b/dot-config/bspwm/themes/manhattan/rofi/shared/fonts.rasi @@ -0,0 +1,7 @@ +/* Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> */ + +/* Text Font */ + +* { + font: "Iosevka 10"; +} diff --git a/dot-config/bspwm/themes/manhattan/rofi/themes.rasi b/dot-config/bspwm/themes/manhattan/rofi/themes.rasi new file mode 100644 index 00000000..26786a7f --- /dev/null +++ b/dot-config/bspwm/themes/manhattan/rofi/themes.rasi @@ -0,0 +1,275 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + modi: "drun"; + show-icons: false; + display-drun: ""; + display-run: ""; + display-filebrowser: ""; + display-window: ""; + drun-display-format: "{name} [<span weight='light' size='small'><i>({generic})</i></span>]"; + window-format: "{w} · {c} · {t}"; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +* { + border-colour: var(selected); + handle-colour: var(selected); + background-colour: var(background); + foreground-colour: var(foreground); + alternate-background: var(background-alt); + normal-background: var(background); + normal-foreground: var(foreground); + urgent-background: var(urgent); + urgent-foreground: var(background); + active-background: var(active); + active-foreground: var(background); + selected-normal-background: var(selected); + selected-normal-foreground: var(background); + selected-urgent-background: var(active); + selected-urgent-foreground: var(background); + selected-active-background: var(urgent); + selected-active-foreground: var(background); + alternate-normal-background: var(background); + alternate-normal-foreground: var(foreground); + alternate-urgent-background: var(urgent); + alternate-urgent-foreground: var(background); + alternate-active-background: var(active); + alternate-active-foreground: var(background); +} + +/*****----- Main Window -----*****/ +window { + /* properties for window widget */ + transparency: "real"; + location: south; + anchor: south; + fullscreen: false; + width: 400px; + x-offset: 0px; + y-offset: -48px; + + /* properties for all widgets */ + enabled: true; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + cursor: "default"; + background-color: @background-colour; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 0px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @border-colour; + background-color: transparent; + children: [ "inputbar", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 0px; + margin: 0px; + padding: 0px; + border: 0px 0px 1px 0px; + border-radius: 0px; + border-color: @alternate-background; + background-color: @background-colour; + text-color: @foreground-colour; + children: [ "textbox-prompt-colon", "prompt" ]; +} + +prompt { + enabled: true; + padding: 15px; + background-color: inherit; + text-color: inherit; +} +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + padding: 15px; + border: 0px 1px 0px 0px; + border-radius: 0px; + border-color: @alternate-background; + background-color: inherit; + text-color: @selected; +} +entry { + enabled: true; + padding: 15px; + background-color: inherit; + text-color: inherit; + cursor: text; + placeholder: "run..."; + placeholder-color: inherit; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 1; + lines: 6; + cycle: true; + dynamic: true; + scrollbar: false; + layout: vertical; + reverse: false; + fixed-height: true; + fixed-columns: true; + + spacing: 0px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: "default"; +} +scrollbar { + handle-width: 5px ; + handle-color: @handle-colour; + border-radius: 0px; + background-color: @alternate-background; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 15px; + border: 0px 0px 1px 0px; + border-radius: 0px; + border-color: @alternate-background; + background-color: transparent; + text-color: @foreground-colour; + cursor: pointer; +} +element normal.normal { + background-color: var(normal-background); + text-color: var(normal-foreground); +} +element normal.urgent { + background-color: var(urgent-background); + text-color: var(urgent-foreground); +} +element normal.active { + background-color: var(active-background); + text-color: var(active-foreground); +} +element selected.normal { + background-color: var(urgent); + text-color: var(background); +} +element selected.urgent { + background-color: var(selected-urgent-background); + text-color: var(selected-urgent-foreground); +} +element selected.active { + background-color: var(selected-active-background); + text-color: var(selected-active-foreground); +} +element alternate.normal { + background-color: var(alternate-normal-background); + text-color: var(alternate-normal-foreground); +} +element alternate.urgent { + background-color: var(alternate-urgent-background); + text-color: var(alternate-urgent-foreground); +} +element alternate.active { + background-color: var(alternate-active-background); + text-color: var(alternate-active-foreground); +} +element-icon { + background-color: transparent; + text-color: inherit; + size: 32px; + cursor: inherit; +} +element-text { + background-color: transparent; + text-color: inherit; + highlight: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Mode Switcher -----*****/ +mode-switcher{ + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; +} +button { + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: inherit; + cursor: pointer; +} +button selected { + background-color: var(selected-normal-background); + text-color: var(selected-normal-foreground); +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; +} +textbox { + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: @foreground-colour; + vertical-align: 0.5; + horizontal-align: 0.0; + highlight: none; + placeholder-color: @foreground-colour; + blink: true; + markup: true; +} +error-message { + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @background-colour; + text-color: @foreground-colour; +} diff --git a/dot-config/bspwm/themes/manhattan/rofi/windows.rasi b/dot-config/bspwm/themes/manhattan/rofi/windows.rasi new file mode 100644 index 00000000..5c554bb4 --- /dev/null +++ b/dot-config/bspwm/themes/manhattan/rofi/windows.rasi @@ -0,0 +1,274 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + modi: "drun"; + show-icons: true; + display-drun: ""; + display-run: ""; + display-filebrowser: ""; + display-window: ""; + drun-display-format: "{name} [<span weight='light' size='small'><i>({generic})</i></span>]"; + window-format: "{c} · {t}"; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +* { + border-colour: var(selected); + handle-colour: var(selected); + background-colour: var(background); + foreground-colour: var(foreground); + alternate-background: var(background-alt); + normal-background: var(background); + normal-foreground: var(foreground); + urgent-background: var(urgent); + urgent-foreground: var(background); + active-background: var(active); + active-foreground: var(background); + selected-normal-background: var(selected); + selected-normal-foreground: var(background); + selected-urgent-background: var(active); + selected-urgent-foreground: var(background); + selected-active-background: var(urgent); + selected-active-foreground: var(background); + alternate-normal-background: var(background); + alternate-normal-foreground: var(foreground); + alternate-urgent-background: var(urgent); + alternate-urgent-foreground: var(background); + alternate-active-background: var(active); + alternate-active-foreground: var(background); +} + +/*****----- Main Window -----*****/ +window { + /* properties for window widget */ + transparency: "real"; + location: southwest; + anchor: southwest; + fullscreen: false; + width: 500px; + x-offset: 10px; + y-offset: -48px; + + /* properties for all widgets */ + enabled: true; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + cursor: "default"; + background-color: @background-colour; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 0px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @border-colour; + background-color: transparent; + children: [ "inputbar", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 0px; + margin: 0px; + padding: 0px; + border: 0px 0px 1px 0px; + border-radius: 0px; + border-color: @alternate-background; + background-color: @background-colour; + text-color: @foreground-colour; + children: [ "prompt", "entry" ]; +} + +prompt { + enabled: true; + padding: 15px; + border: 0px 1px 0px 0px; + border-radius: 0px; + border-color: @alternate-background; + background-color: inherit; + text-color: @selected; +} +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + background-color: inherit; + text-color: inherit; +} +entry { + enabled: true; + padding: 15px; + background-color: inherit; + text-color: inherit; + cursor: text; + placeholder: "filter..."; + placeholder-color: inherit; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 1; + lines: 6; + cycle: true; + dynamic: true; + scrollbar: false; + layout: vertical; + reverse: false; + fixed-height: true; + fixed-columns: true; + + spacing: 0px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: "default"; +} +scrollbar { + handle-width: 5px ; + handle-color: @handle-colour; + border-radius: 0px; + background-color: @alternate-background; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 8px 15px; + border: 0px 0px 1px 0px; + border-radius: 0px; + border-color: @alternate-background; + background-color: transparent; + text-color: @foreground-colour; + cursor: pointer; +} +element normal.normal { + background-color: var(normal-background); + text-color: var(normal-foreground); +} +element normal.urgent { + background-color: var(urgent-background); + text-color: var(urgent-foreground); +} +element normal.active { + background-color: var(active-background); + text-color: var(active-foreground); +} +element selected.normal { + background-color: var(urgent); + text-color: var(background); +} +element selected.urgent { + background-color: var(selected-urgent-background); + text-color: var(selected-urgent-foreground); +} +element selected.active { + background-color: var(selected-active-background); + text-color: var(selected-active-foreground); +} +element alternate.normal { + background-color: var(alternate-normal-background); + text-color: var(alternate-normal-foreground); +} +element alternate.urgent { + background-color: var(alternate-urgent-background); + text-color: var(alternate-urgent-foreground); +} +element alternate.active { + background-color: var(alternate-active-background); + text-color: var(alternate-active-foreground); +} +element-icon { + background-color: transparent; + text-color: inherit; + size: 32px; + cursor: inherit; +} +element-text { + background-color: transparent; + text-color: inherit; + highlight: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Mode Switcher -----*****/ +mode-switcher{ + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; +} +button { + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: inherit; + cursor: pointer; +} +button selected { + background-color: var(selected-normal-background); + text-color: var(selected-normal-foreground); +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; +} +textbox { + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: @foreground-colour; + vertical-align: 0.5; + horizontal-align: 0.0; + highlight: none; + placeholder-color: @foreground-colour; + blink: true; + markup: true; +} +error-message { + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @background-colour; + text-color: @foreground-colour; +} diff --git a/dot-config/bspwm/themes/manhattan/theme.bash b/dot-config/bspwm/themes/manhattan/theme.bash new file mode 100644 index 00000000..c33e443c --- /dev/null +++ b/dot-config/bspwm/themes/manhattan/theme.bash @@ -0,0 +1,85 @@ +# ------------------------------------------------------------------------------ +# Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> +# +# Manhattan Theme +# ------------------------------------------------------------------------------ + +# Colors +background='#282f37' +foreground='#f1fcf9' +color0='#20262c' +color1='#db86ba' +color2='#74dd91' +color3='#e49186' +color4='#75dbe1' +color5='#b4a1db' +color6='#9ee9ea' +color7='#f1fcf9' +color8='#465463' +color9='#d04e9d' +color10='#4bc66d' +color11='#db695b' +color12='#3dbac2' +color13='#825ece' +color14='#62cdcd' +color15='#e0e5e5' + +element_bg='#1F252B' +element_fg='#F0FBF8' +element_hl='#B4A1DB' + +light_value='0.05' +dark_value='0.30' + +# Wallpaper +wdir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" +wallpaper="$wdir/wallpaper" + +# Polybar +polybar_font='Iosevka Nerd Font:size=10;3' + +# Rofi +rofi_font='Iosevka 10' +rofi_icon='Papirus-Apps' + +# Terminal +terminal_font_name='JetBrainsMono Nerd Font' +terminal_font_size='10' + +# Geany +geany_colors='manhattan.conf' +geany_font='JetBrains Mono 10' + +# Appearance +gtk_font='Noto Sans 9' +gtk_theme='Manhattan' +icon_theme='Luv-Folders-Dark' +cursor_theme='Vimix-Dark' + +# Dunst +dunst_width='300' +dunst_height='80' +dunst_offset='20x20' +dunst_origin='top-right' +dunst_font='Iosevka Custom 9' +dunst_border='2' +dunst_separator='2' + +# Picom +picom_backend='glx' +picom_corner='0' +picom_shadow_r='14' +picom_shadow_o='0.30' +picom_shadow_x='-12' +picom_shadow_y='-12' +picom_blur_method='none' +picom_blur_strength='0' + +# Bspwm +bspwm_fbc="$element_hl" +bspwm_nbc="$background" +bspwm_abc="$color5" +bspwm_pfc="$color2" +bspwm_border='2' +bspwm_gap='10' +bspwm_sratio='0.50' diff --git a/dot-config/bspwm/themes/manhattan/wallpaper b/dot-config/bspwm/themes/manhattan/wallpaper new file mode 120000 index 00000000..ad1cc74c --- /dev/null +++ b/dot-config/bspwm/themes/manhattan/wallpaper @@ -0,0 +1 @@ +/usr/share/backgrounds/manhattan.jpg
\ No newline at end of file diff --git a/dot-config/bspwm/themes/onedark/apply.sh b/dot-config/bspwm/themes/onedark/apply.sh new file mode 100755 index 00000000..d51dcf30 --- /dev/null +++ b/dot-config/bspwm/themes/onedark/apply.sh @@ -0,0 +1,278 @@ +#!/usr/bin/env bash + +## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> +## +## Script To Apply Themes + +## Theme ------------------------------------ +BDIR="$HOME/.config/bspwm" +TDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" +THEME="${TDIR##*/}" + +source "$BDIR"/themes/"$THEME"/theme.bash +altbackground="`pastel color $background | pastel lighten $light_value | pastel format hex`" +altforeground="`pastel color $foreground | pastel darken $dark_value | pastel format hex`" + +## Directories ------------------------------ +PATH_CONF="$HOME/.config" +PATH_GEANY="$PATH_CONF/geany" +PATH_BSPWM="$PATH_CONF/bspwm" +PATH_TERM="$PATH_BSPWM/alacritty" +PATH_PBAR="$PATH_BSPWM/themes/$THEME/polybar" +PATH_ROFI="$PATH_BSPWM/themes/$THEME/rofi" + +## Wallpaper --------------------------------- +apply_wallpaper() { + feh --bg-fill "$wallpaper" +} + +## Polybar ----------------------------------- +apply_polybar() { + # modify polybar launch script + sed -i -e "s/STYLE=.*/STYLE=\"$THEME\"/g" ${PATH_BSPWM}/themes/polybar.sh + + # apply default theme fonts + sed -i -e "s/font-0 = .*/font-0 = \"$polybar_font\"/g" ${PATH_PBAR}/config.ini + + # rewrite colors file + cat > ${PATH_PBAR}/colors.ini <<- EOF + [color] + + BACKGROUND = ${background} + FOREGROUND = ${foreground} + ALTBACKGROUND = ${altbackground} + ALTFOREGROUND = ${altforeground} + ACCENT = ${accent} + + BLACK = ${color0} + RED = ${color1} + GREEN = ${color2} + YELLOW = ${color3} + BLUE = ${color4} + MAGENTA = ${color5} + CYAN = ${color6} + WHITE = ${color7} + ALTBLACK = ${color8} + ALTRED = ${color9} + ALTGREEN = ${color10} + ALTYELLOW = ${color11} + ALTBLUE = ${color12} + ALTMAGENTA = ${color13} + ALTCYAN = ${color14} + ALTWHITE = ${color15} + EOF +} + +# Rofi -------------------------------------- +apply_rofi() { + # modify rofi scripts + sed -i -e "s/STYLE=.*/STYLE=\"$THEME\"/g" \ + ${PATH_BSPWM}/scripts/rofi_askpass \ + ${PATH_BSPWM}/scripts/rofi_asroot \ + ${PATH_BSPWM}/scripts/rofi_launcher \ + ${PATH_BSPWM}/scripts/rofi_music \ + ${PATH_BSPWM}/scripts/rofi_powermenu \ + ${PATH_BSPWM}/scripts/rofi_runner \ + ${PATH_BSPWM}/scripts/rofi_screenshot \ + ${PATH_BSPWM}/scripts/rofi_themes \ + ${PATH_BSPWM}/scripts/rofi_windows + + # apply default theme fonts + sed -i -e "s/font:.*/font: \"$rofi_font\";/g" ${PATH_ROFI}/shared/fonts.rasi + + # rewrite colors file + cat > ${PATH_ROFI}/shared/colors.rasi <<- EOF + * { + background: ${background}; + background-alt: ${altbackground}; + foreground: ${foreground}; + selected: ${accent}; + active: ${color2}; + urgent: ${color1}; + } + EOF + + # modify icon theme + if [[ -f "$PATH_CONF"/rofi/config.rasi ]]; then + sed -i -e "s/icon-theme:.*/icon-theme: \"$rofi_icon\";/g" ${PATH_CONF}/rofi/config.rasi + fi +} + +# Network Menu ------------------------------ +apply_netmenu() { + if [[ -f "$PATH_CONF"/networkmanager-dmenu/nmd.ini ]]; then + sed -i -e "s#dmenu_command = .*#dmenu_command = rofi -dmenu -theme $PATH_ROFI/networkmenu.rasi#g" ${PATH_CONF}/networkmanager-dmenu/nmd.ini + fi +} + +# Terminal ---------------------------------- +apply_terminal() { + # alacritty : fonts + sed -i ${PATH_TERM}/fonts.yml \ + -e "s/family: .*/family: \"$terminal_font_name\"/g" \ + -e "s/size: .*/size: $terminal_font_size/g" + + # alacritty : colors + cat > ${PATH_TERM}/colors.yml <<- _EOF_ + ## Colors configuration + colors: + # Default colors + primary: + background: '${background}' + foreground: '${foreground}' + + # Normal colors + normal: + black: '${color0}' + red: '${color1}' + green: '${color2}' + yellow: '${color3}' + blue: '${color4}' + magenta: '${color5}' + cyan: '${color6}' + white: '${color7}' + + # Bright colors + bright: + black: '${color8}' + red: '${color9}' + green: '${color10}' + yellow: '${color11}' + blue: '${color12}' + magenta: '${color13}' + cyan: '${color14}' + white: '${color15}' + _EOF_ +} + +# Geany ------------------------------------- +apply_geany() { + sed -i ${PATH_GEANY}/geany.conf \ + -e "s/color_scheme=.*/color_scheme=$geany_colors/g" \ + -e "s/editor_font=.*/editor_font=$geany_font/g" +} + +# Appearance -------------------------------- +apply_appearance() { + XFILE="$PATH_BSPWM/xsettingsd" + GTK2FILE="$HOME/.gtkrc-2.0" + GTK3FILE="$PATH_CONF/gtk-3.0/settings.ini" + + # apply gtk theme, icons, cursor & fonts + if [[ `pidof xsettingsd` ]]; then + sed -i -e "s|Net/ThemeName .*|Net/ThemeName \"$gtk_theme\"|g" ${XFILE} + sed -i -e "s|Net/IconThemeName .*|Net/IconThemeName \"$icon_theme\"|g" ${XFILE} + sed -i -e "s|Gtk/CursorThemeName .*|Gtk/CursorThemeName \"$cursor_theme\"|g" ${XFILE} + else + sed -i -e "s/gtk-font-name=.*/gtk-font-name=\"$gtk_font\"/g" ${GTK2FILE} + sed -i -e "s/gtk-theme-name=.*/gtk-theme-name=\"$gtk_theme\"/g" ${GTK2FILE} + sed -i -e "s/gtk-icon-theme-name=.*/gtk-icon-theme-name=\"$icon_theme\"/g" ${GTK2FILE} + sed -i -e "s/gtk-cursor-theme-name=.*/gtk-cursor-theme-name=\"$cursor_theme\"/g" ${GTK2FILE} + + sed -i -e "s/gtk-font-name=.*/gtk-font-name=$gtk_font/g" ${GTK3FILE} + sed -i -e "s/gtk-theme-name=.*/gtk-theme-name=$gtk_theme/g" ${GTK3FILE} + sed -i -e "s/gtk-icon-theme-name=.*/gtk-icon-theme-name=$icon_theme/g" ${GTK3FILE} + sed -i -e "s/gtk-cursor-theme-name=.*/gtk-cursor-theme-name=$cursor_theme/g" ${GTK3FILE} + fi + + # inherit cursor theme + if [[ -f "$HOME"/.icons/default/index.theme ]]; then + sed -i -e "s/Inherits=.*/Inherits=$cursor_theme/g" "$HOME"/.icons/default/index.theme + fi +} + +# Dunst ------------------------------------- +apply_dunst() { + # modify dunst config + sed -i ${PATH_BSPWM}/dunstrc \ + -e "s/width = .*/width = $dunst_width/g" \ + -e "s/height = .*/height = $dunst_height/g" \ + -e "s/offset = .*/offset = $dunst_offset/g" \ + -e "s/origin = .*/origin = $dunst_origin/g" \ + -e "s/font = .*/font = $dunst_font/g" \ + -e "s/frame_width = .*/frame_width = $dunst_border/g" \ + -e "s/separator_height = .*/separator_height = $dunst_separator/g" \ + -e "s/line_height = .*/line_height = $dunst_separator/g" + + # modify colors + sed -i '/urgency_low/Q' ${PATH_BSPWM}/dunstrc + cat >> ${PATH_BSPWM}/dunstrc <<- _EOF_ + [urgency_low] + timeout = 2 + background = "${background}" + foreground = "${foreground}" + frame_color = "${altbackground}" + + [urgency_normal] + timeout = 5 + background = "${background}" + foreground = "${foreground}" + frame_color = "${altbackground}" + + [urgency_critical] + timeout = 0 + background = "${background}" + foreground = "${color1}" + frame_color = "${color1}" + _EOF_ +} + +# Compositor -------------------------------- +apply_compositor() { + picom_cfg="$PATH_BSPWM/picom.conf" + + # modify picom config + sed -i "$picom_cfg" \ + -e "s/backend = .*/backend = \"$picom_backend\";/g" \ + -e "s/corner-radius = .*/corner-radius = $picom_corner;/g" \ + -e "s/shadow-radius = .*/shadow-radius = $picom_shadow_r;/g" \ + -e "s/shadow-opacity = .*/shadow-opacity = $picom_shadow_o;/g" \ + -e "s/shadow-offset-x = .*/shadow-offset-x = $picom_shadow_x;/g" \ + -e "s/shadow-offset-y = .*/shadow-offset-y = $picom_shadow_y;/g" \ + -e "s/method = .*/method = \"$picom_blur_method\";/g" \ + -e "s/strength = .*/strength = $picom_blur_strength;/g" +} + +# BSPWM ------------------------------------- +apply_bspwm() { + # modify bspwmrc + sed -i ${PATH_BSPWM}/bspwmrc \ + -e "s/BSPWM_FBC=.*/BSPWM_FBC='$bspwm_fbc'/g" \ + -e "s/BSPWM_NBC=.*/BSPWM_NBC='$bspwm_nbc'/g" \ + -e "s/BSPWM_ABC=.*/BSPWM_ABC='$bspwm_abc'/g" \ + -e "s/BSPWM_PFC=.*/BSPWM_PFC='$bspwm_pfc'/g" \ + -e "s/BSPWM_BORDER=.*/BSPWM_BORDER='$bspwm_border'/g" \ + -e "s/BSPWM_GAP=.*/BSPWM_GAP='$bspwm_gap'/g" \ + -e "s/BSPWM_SRATIO=.*/BSPWM_SRATIO='$bspwm_sratio'/g" + + # reload bspwm + bspc wm -r +} + +# Create Theme File ------------------------- +create_file() { + theme_file="$PATH_BSPWM/themes/.current" + if [[ ! -f "$theme_file" ]]; then + touch ${theme_file} + fi + echo "$THEME" > ${theme_file} +} + +# Notify User ------------------------------- +notify_user() { + dunstify -u normal -h string:x-dunst-stack-tag:applytheme -i /usr/share/archcraft/icons/dunst/themes.png "Applying Style : $THEME" +} + +## Execute Script --------------------------- +notify_user +create_file +apply_wallpaper +apply_polybar +apply_rofi +apply_netmenu +apply_terminal +apply_geany +apply_appearance +apply_dunst +apply_compositor +apply_bspwm diff --git a/dot-config/bspwm/themes/onedark/polybar/.module b/dot-config/bspwm/themes/onedark/polybar/.module new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/dot-config/bspwm/themes/onedark/polybar/.module diff --git a/dot-config/bspwm/themes/onedark/polybar/colors.ini b/dot-config/bspwm/themes/onedark/polybar/colors.ini new file mode 100644 index 00000000..89e94e38 --- /dev/null +++ b/dot-config/bspwm/themes/onedark/polybar/colors.ini @@ -0,0 +1,24 @@ +[color] + +BACKGROUND = #1E2128 +FOREGROUND = #ABB2BF +ALTBACKGROUND = #292d37 +ALTFOREGROUND = #5a6477 +ACCENT = #5294E2 + +BLACK = #32363D +RED = #E06B74 +GREEN = #98C379 +YELLOW = #E5C07A +BLUE = #62AEEF +MAGENTA = #C778DD +CYAN = #55B6C2 +WHITE = #ABB2BF +ALTBLACK = #50545B +ALTRED = #EA757E +ALTGREEN = #A2CD83 +ALTYELLOW = #EFCA84 +ALTBLUE = #6CB8F9 +ALTMAGENTA = #D282E7 +ALTCYAN = #5FC0CC +ALTWHITE = #B5BCC9 diff --git a/dot-config/bspwm/themes/onedark/polybar/config.ini b/dot-config/bspwm/themes/onedark/polybar/config.ini new file mode 100644 index 00000000..bf9b0558 --- /dev/null +++ b/dot-config/bspwm/themes/onedark/polybar/config.ini @@ -0,0 +1,318 @@ +## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +;; Global WM Settings + +[global/wm] +; Adjust the _NET_WM_STRUT_PARTIAL top value +; Used for top aligned bars +margin-bottom = 0 + +; Adjust the _NET_WM_STRUT_PARTIAL bottom value +; Used for bottom aligned bars +margin-top = 0 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +;; File Inclusion +; include an external file, like module file, etc. + +include-file = ../../system.ini +include-file = ./colors.ini +include-file = ./modules.ini +include-file = ./decor.ini + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +;; Bar Settings + +[bar/main] +; Use either of the following command to list available outputs: +; If unspecified, the application will pick the first one it finds. +; $ polybar -m | cut -d ':' -f 1 +; $ xrandr -q | grep " connected" | cut -d ' ' -f1 +monitor = ${env:MONITOR:} + +; Use the specified monitor as a fallback if the main one is not found. +monitor-fallback = + +; Require the monitor to be in connected state +; XRandR sometimes reports my monitor as being disconnected (when in use) +monitor-strict = false + +; Tell the Window Manager not to configure the window. +; Use this to detach the bar if your WM is locking its size/position. +override-redirect = false + +; Put the bar at the bottom of the screen +bottom = false + +; Prefer fixed center position for the `modules-center` block +; When false, the center position will be based on the size of the other blocks. +fixed-center = true + +; Dimension defined as pixel value (e.g. 35) or percentage (e.g. 50%), +; the percentage can optionally be extended with a pixel offset like so: +; 50%:-10, this will result in a width or height of 50% minus 10 pixels +width = 100% +height = 26 + +; Offset defined as pixel value (e.g. 35) or percentage (e.g. 50%) +; the percentage can optionally be extended with a pixel offset like so: +; 50%:-10, this will result in an offset in the x or y direction +; of 50% minus 10 pixels +offset-x = 0% +offset-y = 0% + +; Background ARGB color (e.g. #f00, #ff992a, #ddff1023) +background = ${color.BACKGROUND} + +; Foreground ARGB color (e.g. #f00, #ff992a, #ddff1023) +foreground = ${color.FOREGROUND} + +; Background gradient (vertical steps) +; background-[0-9]+ = #aarrggbb +;;background-0 = + +; Value used for drawing rounded corners +; Note: This shouldn't be used together with border-size because the border +; doesn't get rounded +; Individual top/bottom values can be defined using: +; radius-{top,bottom} +radius-top = 0.0 +radius-bottom = 0.0 + +; Under-/overline pixel size and argb color +; Individual values can be defined using: +; {overline,underline}-size +; {overline,underline}-color +line-size = 2 +line-color = ${color.ACCENT} + +; Values applied to all borders +; Individual side values can be defined using: +; border-{left,top,right,bottom}-size +; border-{left,top,right,bottom}-color +; The top and bottom borders are added to the bar height, so the effective +; window height is: +; height + border-top-size + border-bottom-size +; Meanwhile the effective window width is defined entirely by the width key and +; the border is placed withing this area. So you effectively only have the +; following horizontal space on the bar: +; width - border-right-size - border-left-size +border-size = 6 +border-color = ${color.BACKGROUND} + +; Number of spaces to add at the beginning/end of the bar +; Individual side values can be defined using: +; padding-{left,right} +padding = 0 + +; Number of spaces to add before/after each module +; Individual side values can be defined using: +; module-margin-{left,right} +module-margin-left = 0 +module-margin-right = 0 + +; Fonts are defined using <font-name>;<vertical-offset> +; Font names are specified using a fontconfig pattern. +; font-0 = "JetBrains Mono:size=10;3" +; font-1 = MaterialIcons:size=10 +; font-2 = Termsynu:size=8;-1 +; font-3 = FontAwesome:size=10 +; See the Fonts wiki page for more details + +; text +font-0 = "JetBrains Mono:size=10;3" +; icons +font-1 = "Iosevka Nerd Font:size=12;3" +; glyphs +font-2 = "Iosevka Nerd Font:size=15;4" +; dot +font-3 = "Iosevka Nerd Font:size=10;4" +; clock & mpd +font-4 = "Iosevka:style=bold:size=10;4" +; Archcraft +font-5 = "archcraft:size=12;3" + +; Modules are added to one of the available blocks +; modules-left = cpu ram +; modules-center = xwindow xbrightness +; modules-right = ipc clock + +# Default +modules-left = LD menu RD dot-alt LD mod RD dot LD bspwm RD dot cpu dot used-memory +modules-center = LD date RD dot-alt LD mpd RD sep song +modules-right = volume dot bna dot network dot LD battery RD dot-alt LD sysmenu RD + +# Alternate +;modules-left = openbox 2LD cpu 3LD memory 4LD filesystem 5LD +;modules-center = mpd +;modules-right = 2RD volume 3RD brightness 4RD battery 5RD network 6RD date sep + +; The separator will be inserted between the output of each module +separator = + +; This value is used to add extra spacing between elements +; @deprecated: This parameter will be removed in an upcoming version +spacing = 0 + +; Opacity value between 0.0 and 1.0 used on fade in/out +dim-value = 1.0 + +; Value to be used to set the WM_NAME atom +; If the value is empty or undefined, the atom value +; will be created from the following template: polybar-[BAR]_[MONITOR] +; NOTE: The placeholders are not available for custom values +wm-name = bspwm + +; Locale used to localize various module data (e.g. date) +; Expects a valid libc locale, for example: sv_SE.UTF-8 +locale = + +; Position of the system tray window +; If empty or undefined, tray support will be disabled +; NOTE: A center aligned tray will cover center aligned modules +; +; Available positions: +; left +; center +; right +; none +tray-position = right + +; If true, the bar will not shift its +; contents when the tray changes +tray-detached = false + +; Tray icon max size +tray-maxsize = 16 + +; DEPRECATED! Since 3.3.0 the tray always uses pseudo-transparency +; Enable pseudo transparency +; Will automatically be enabled if a fully transparent +; background color is defined using `tray-background` +; tray-transparent = false + +; Background color for the tray container +; ARGB color (e.g. #f00, #ff992a, #ddff1023) +; By default the tray container will use the bar +; background color. +tray-background = ${color.BACKGROUND} + +; Tray offset defined as pixel value (e.g. 35) or percentage (e.g. 50%) +tray-offset-x = 0 +tray-offset-y = 0 + +; Pad the sides of each tray icon +tray-padding = 0 + +; Scale factor for tray clients +tray-scale = 1.0 + +; Restack the bar window and put it above the +; selected window manager's root +; +; Fixes the issue where the bar is being drawn +; on top of fullscreen window's +; +; Currently supported WM's: +; bspwm +; i3 (requires: `override-redirect = true`) +wm-restack = bspwm + +; Set a DPI values used when rendering text +; This only affects scalable fonts +; dpi = + +; Enable support for inter-process messaging +; See the Messaging wiki page for more details. +enable-ipc = true + +; Fallback click handlers that will be called if +; there's no matching module handler found. +click-left = +click-middle = +click-right = +scroll-up = bspc desktop -f prev.local +scroll-down = bspc desktop -f next.local +double-click-left = +double-click-middle = +double-click-right = + +; Requires polybar to be built with xcursor support (xcb-util-cursor) +; Possible values are: +; - default : The default pointer as before, can also be an empty string (default) +; - pointer : Typically in the form of a hand +; - ns-resize : Up and down arrows, can be used to indicate scrolling +cursor-click = +cursor-scroll = + +;; WM Workspace Specific + +; bspwm +;;scroll-up = bspwm-desknext +;;scroll-down = bspwm-deskprev +;;scroll-up = bspc desktop -f prev.local +;;scroll-down = bspc desktop -f next.local + +;i3 +;;scroll-up = i3wm-wsnext +;;scroll-down = i3wm-wsprev +;;scroll-up = i3-msg workspace next_on_output +;;scroll-down = i3-msg workspace prev_on_output + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +;; Application Settings + +[settings] +; The throttle settings lets the eventloop swallow up til X events +; if they happen within Y millisecond after first event was received. +; This is done to prevent flood of update event. +; +; For example if 5 modules emit an update event at the same time, we really +; just care about the last one. But if we wait too long for events to swallow +; the bar would appear sluggish so we continue if timeout +; expires or limit is reached. +throttle-output = 5 +throttle-output-for = 10 + +; Time in milliseconds that the input handler will wait between processing events +;throttle-input-for = 30 + +; Reload upon receiving XCB_RANDR_SCREEN_CHANGE_NOTIFY events +screenchange-reload = false + +; Compositing operators +; @see: https://www.cairographics.org/manual/cairo-cairo-t.html#cairo-operator-t +compositing-background = source +compositing-foreground = over +compositing-overline = over +compositing-underline = over +compositing-border = over + +; Define fallback values used by all module formats +;format-foreground = +;format-background = +;format-underline = +;format-overline = +;format-spacing = +;format-padding = +;format-margin = +;format-offset = + +; Enables pseudo-transparency for the bar +; If set to true the bar can be transparent without a compositor. +pseudo-transparency = false + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ +;; __________ ______ +;; / ____/ __ \/ ____/ +;; / __/ / / / / /_ +;; / /___/ /_/ / __/ +;; /_____/\____/_/ +;; +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + diff --git a/dot-config/bspwm/themes/onedark/polybar/decor.ini b/dot-config/bspwm/themes/onedark/polybar/decor.ini new file mode 100644 index 00000000..ff3b82f3 --- /dev/null +++ b/dot-config/bspwm/themes/onedark/polybar/decor.ini @@ -0,0 +1,43 @@ +## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + +;; DECOR _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/sep] +type = custom/text +content = - +content-background = ${color.BACKGROUND} +content-foreground = ${color.BACKGROUND} + +[module/dot] +type = custom/text +content = +content-foreground = ${color.ALTBACKGROUND} +content-padding = 1 +content-font = 4 + +[module/dot-alt] +inherit = module/dot +content-foreground = ${color.ALTFOREGROUND} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/LD] +type = custom/text +content = "%{T3}%{T-}" +content-background = ${color.BACKGROUND} +content-foreground = ${color.ALTBACKGROUND} + +[module/RD] +type = custom/text +content = "%{T3}%{T-}" +content-background = ${color.BACKGROUND} +content-foreground = ${color.ALTBACKGROUND} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ +;; __________ ______ +;; / ____/ __ \/ ____/ +;; / __/ / / / / /_ +;; / /___/ /_/ / __/ +;; /_____/\____/_/ +;; +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ diff --git a/dot-config/bspwm/themes/onedark/polybar/launch.sh b/dot-config/bspwm/themes/onedark/polybar/launch.sh new file mode 100755 index 00000000..ae47b54c --- /dev/null +++ b/dot-config/bspwm/themes/onedark/polybar/launch.sh @@ -0,0 +1,42 @@ +#!/usr/bin/env bash + +## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" +CARD="$(light -L | grep 'backlight' | head -n1 | cut -d'/' -f3)" +INTERFACE="$(ip link | awk '/state UP/ {print $2}' | tr -d :)" +RFILE="$DIR/.module" + +# Fix backlight and network modules +fix_modules() { + if [[ -z "$CARD" ]]; then + sed -i -e 's/backlight/bna/g' "$DIR"/config.ini + elif [[ "$CARD" != *"intel_"* ]]; then + sed -i -e 's/backlight/brightness/g' "$DIR"/config.ini + fi + + if [[ "$INTERFACE" == e* ]]; then + sed -i -e 's/network/ethernet/g' "$DIR"/config.ini + fi +} + +# Launch the bar +launch_bar() { + # Terminate already running bar instances + killall -q polybar + + # Wait until the processes have been shut down + while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done + + # Launch the bar + for mon in $(polybar --list-monitors | cut -d":" -f1); do + MONITOR=$mon polybar -q main -c "$DIR"/config.ini & + done +} + +# Execute functions +if [[ ! -f "$RFILE" ]]; then + fix_modules + touch "$RFILE" +fi +launch_bar diff --git a/dot-config/bspwm/themes/onedark/polybar/modules.ini b/dot-config/bspwm/themes/onedark/polybar/modules.ini new file mode 100644 index 00000000..82bdee86 --- /dev/null +++ b/dot-config/bspwm/themes/onedark/polybar/modules.ini @@ -0,0 +1,1061 @@ +## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/bspwm] +type = internal/bspwm + +pin-workspaces = true +inline-mode = false + +enable-click = true +enable-scroll = true +reverse-scroll = true + +fuzzy-match = true + +; ws-icon-[0-9]+ = label;icon +; Note that the label needs to correspond with the bspwm workspace name +ws-icon-0 = 1; +ws-icon-1 = 2; +ws-icon-2 = 3; +ws-icon-3 = 4; +ws-icon-4 = 5; +ws-icon-5 = 6; +ws-icon-6 = 7; +ws-icon-7 = 8; +ws-icon-default = + +format = <label-state> +format-background = ${color.ALTBACKGROUND} +format-font = 1 + +label-monitor = %name% + +; If any values for label-dimmed-N are defined, the workspace/mode +; colors will get overridden with those values if the monitor is out of focus +; To only override workspaces in a specific state, use: +; label-dimmed-focused +; label-dimmed-occupied +; label-dimmed-urgent +; label-dimmed-empty +;label-dimmed-foreground = ${color.FOREGROUND} +;label-dimmed-underline = ${color.YELLOW} +;label-dimmed-focused-background = ${color.BACKGROUND} + +label-focused = %name% +label-focused-foreground = ${color.GREEN} +label-focused-underline = ${color.GREEN} +label-focused-padding = 1 + +label-occupied = %name% +label-occupied-foreground = ${color.ACCENT} +;label-occupied-underline = ${color.ACCENT} +label-occupied-padding = 1 + +label-urgent = %name% +label-urgent-foreground = ${color.RED} +label-urgent-underline = ${color.RED} +label-urgent-padding = 1 + +label-empty = %name% +label-empty-foreground = ${color.FOREGROUND} +label-empty-padding = 1 + +; Separator in between workspaces +label-separator = "" +label-separator-padding = 0 +label-separator-foreground = ${color.ALTBACKGROUND} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/mod] +type = internal/bspwm + +format = <label-mode> +format-background = ${color.ALTBACKGROUND} +format-foreground = ${color.YELLOW} +format-padding = 0 + +label-monocle = "Monocle" +label-tiled = "Tiled" + +label-floating = ", Float" +label-pseudotiled = ", Pseudo" +label-fullscreen = ", Full" + +label-locked = " | Locked" +label-sticky = " | Sticky" +label-private = " | Private" + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/bna] +type = custom/text + +content = " NA" +content-prefix = +content-prefix-font = 2 +content-prefix-foreground = ${color.RED} +content-padding = 1 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/backlight] +type = internal/xbacklight + +; Use the following command to list available cards: +; $ ls -1 /sys/class/backlight/ +card = intel_backlight + +; Available tags: +; <label> (default) +; <ramp> +; <bar> +format = <ramp> <label> +format-background = ${color.BACKGROUND} +format-padding = 1 + +; Available tokens: +; %percentage% (default) +label = %percentage%% + +; Only applies if <ramp> is used + +ramp-0 = +ramp-1 = +ramp-2 = +ramp-3 = +ramp-4 = +ramp-5 = +ramp-6 = +ramp-7 = +ramp-8 = +ramp-9 = +ramp-font = 2 +ramp-foreground = ${color.CYAN} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/brightness] +type = internal/backlight + +; Use the following command to list available cards: +; $ ls -1 /sys/class/backlight/ +card = ${system.sys_graphics_card} + +enable-scroll = true + +; Available tags: +; <label> (default) +; <ramp> +; <bar> +format = <ramp> <label> +format-background = ${color.BACKGROUND} +format-padding = 1 + +; Available tokens: +; %percentage% (default) +label = %percentage%% + +; Only applies if <ramp> is used + +ramp-0 = +ramp-1 = +ramp-2 = +ramp-3 = +ramp-4 = +ramp-5 = +ramp-6 = +ramp-7 = +ramp-8 = +ramp-9 = +ramp-font = 2 +ramp-foreground = ${color.CYAN} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/battery] +type = internal/battery + +; This is useful in case the battery never reports 100% charge +full-at = 99 + +; Use the following command to list batteries and adapters: +; $ ls -1 /sys/class/power_supply/ +battery = ${system.sys_battery} +adapter = ${system.sys_adapter} + +; If an inotify event haven't been reported in this many +; seconds, manually poll for new values. +; +; Needed as a fallback for systems that don't report events +; on sysfs/procfs. +; +; Disable polling by setting the interval to 0. +; +; Default: 5 +poll-interval = 2 + +; see "man date" for details on how to format the time string +; NOTE: if you want to use syntax tags here you need to use %%{...} +; Default: %H:%M:%S +time-format = %H:%M + +; Available tags: +; <label-charging> (default) +; <bar-capacity> +; <ramp-capacity> +; <animation-charging> +format-charging = <animation-charging> <label-charging> +format-charging-prefix = " " +format-charging-prefix-font = 1 +format-charging-prefix-foreground = ${color.RED} +format-charging-background = ${color.ALTBACKGROUND} + +; Available tags: +; <label-discharging> (default) +; <bar-capacity> +; <ramp-capacity> +; <animation-discharging> +format-discharging = <ramp-capacity> <label-discharging> +format-discharging-background = ${color.ALTBACKGROUND} + +; Available tags: +; <label-full> (default) +; <bar-capacity> +; <ramp-capacity> +;format-full = <ramp-capacity> <label-full> + +; Available tokens: +; %percentage% (default) +; %time% +; %consumption% (shows current charge rate in watts) + +label-charging = %percentage%% + +; Available tokens: +; %percentage% (default) +; %time% +; %consumption% (shows current discharge rate in watts) +label-discharging = %percentage%% + +; Available tokens: +; %percentage% (default) +format-full = <label-full> +format-full-prefix = " " +format-full-prefix-font = 2 +format-full-prefix-foreground = ${color.GREEN} +format-full-background = ${color.ALTBACKGROUND} +label-full = %percentage%% + +; Only applies if <ramp-capacity> is used +ramp-capacity-0 = +ramp-capacity-1 = +ramp-capacity-2 = +ramp-capacity-3 = +ramp-capacity-4 = +ramp-capacity-foreground = ${color.YELLOW} +ramp-capacity-font = 2 + +; Only applies if <animation-charging> is used +animation-charging-0 = +animation-charging-1 = +animation-charging-2 = +animation-charging-3 = +animation-charging-4 = +animation-charging-foreground = ${color.GREEN} +animation-charging-font = 2 +animation-charging-framerate = 700 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/cpu] +type = internal/cpu + +; Seconds to sleep between updates +; Default: 1 +interval = 0.5 + +; Available tags: +; <label> (default) +; <bar-load> +; <ramp-load> +; <ramp-coreload> +;;format = <label> <ramp-coreload> +format = <label> +format-prefix = +format-prefix-font = 2 +format-prefix-foreground = ${color.YELLOW} +format-background = ${color.BACKGROUND} +format-padding = 1 + +; Available tokens: +; %percentage% (default) - total cpu load averaged over all cores +; %percentage-sum% - Cumulative load on all cores +; %percentage-cores% - load percentage for each core +; %percentage-core[1-9]% - load percentage for specific core +label = " %percentage%%" + +; Spacing between individual per-core ramps +;;ramp-coreload-spacing = 1 +;;ramp-coreload-0 = +;;ramp-coreload-1 = +;;ramp-coreload-2 = +;;ramp-coreload-3 = +;;ramp-coreload-4 = + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/date] +type = internal/date + +; Seconds to sleep between updates +interval = 1.0 + +; See "http://en.cppreference.com/w/cpp/io/manip/put_time" for details on how to format the date string +; NOTE: if you want to use syntax tags here you need to use %%{...} +;;date = %Y-%m-%d% + +; Optional time format +time = %I:%M %p + +; if `date-alt` or `time-alt` is defined, clicking +; the module will toggle between formats +;;date-alt = %A, %d %B %Y +#time-alt = %d/%m/%Y% +time-alt = %A %b %d, %G + +; Available tags: +; <label> (default) + +format = <label> +format-prefix = " " +format-prefix-font = 2 +format-prefix-foreground = ${color.RED} +format-background = ${color.ALTBACKGROUND} + +; Available tokens: +; %date% +; %time% +; Default: %date% +label = %time% +label-font = 5 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/filesystem] +type = internal/fs + +; Mountpoints to display +mount-0 = / +;;mount-1 = /home +;;mount-2 = /var + +; Seconds to sleep between updates +; Default: 30 +interval = 10 + +; Display fixed precision values +; Default: false +fixed-values = true + +; Spacing between entries +; Default: 2 +;;spacing = 4 + +; Available tags: +; <label-mounted> (default) +; <bar-free> +; <bar-used> +; <ramp-capacity> +format-mounted = <label-mounted> +format-mounted-background = ${color.BACKGROUND} +format-mounted-padding = 1 + +format-mounted-prefix = +format-mounted-prefix-font = 2 +format-mounted-prefix-foreground = ${color.MAGENTA} + +; Available tags: +; <label-unmounted> (default) +format-unmounted = <label-unmounted> +format-unmounted-background = ${color.BACKGROUND} +format-unmounted-padding = 1 + +format-unmounted-prefix = +format-unmounted-prefix-font = 2 +format-unmounted-prefix-foreground = ${color.RED} + +; Available tokens: +; %mountpoint% +; %type% +; %fsname% +; %percentage_free% +; %percentage_used% +; %total% +; %free% +; %used% +; Default: %mountpoint% %percentage_free%% +label-mounted = " %free%" + +; Available tokens: +; %mountpoint% +; Default: %mountpoint% is not mounted +label-unmounted = " %mountpoint%: NM" + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/memory] +type = internal/memory + +; Seconds to sleep between updates +; Default: 1 +interval = 3 + +; Available tags: +; <label> (default) +; <bar-used> +; <bar-free> +; <ramp-used> +; <ramp-free> +; <bar-swap-used> +; <bar-swap-free> +; <ramp-swap-used> +; <ramp-swap-free> +format = <label> +format-background = ${color.BACKGROUND} +format-padding = 1 + +format-prefix = +format-prefix-font = 2 +format-prefix-foreground = ${color.CYAN} + +; Available tokens: +; %percentage_used% (default) +; %percentage_free% +; %gb_used% +; %gb_free% +; %gb_total% +; %mb_used% +; %mb_free% +; %mb_total% +; %percentage_swap_used% +; %percentage_swap_free% +; %mb_swap_total% +; %mb_swap_free% +; %mb_swap_used% +; %gb_swap_total% +; %gb_swap_free% +; %gb_swap_used% + +label = " %mb_used%" + +; Only applies if <ramp-used> is used +;;ramp-used-0 = +;;ramp-used-1 = +;;ramp-used-2 = +;;ramp-used-3 = +;;ramp-used-4 = + +; Only applies if <ramp-free> is used +;;ramp-free-0 = +;;ramp-free-1 = +;;ramp-free-2 = +;;ramp-free-3 = +;;ramp-free-4 = + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/used-memory] +type = custom/script + +exec = free -m | grep 'Mem:' | tr -s ' ' | cut -d ' ' -f3 + +tail = true +interval = 5 + +format = <label> +format-background = ${color.BACKGROUND} +format-padding = 1 + +format-prefix = +format-prefix-font = 2 +format-prefix-foreground = ${color.CYAN} + +label = " %output% MB" + +click-left = alacritty --class 'alacritty-float,alacritty-float' --config-file ~/.config/bspwm/alacritty/alacritty.yml -e "top" & + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/mpd] +type = internal/mpd + +; Host where mpd is running (either ip or domain name) +; Can also be the full path to a unix socket where mpd is running. +;;host = 127.0.0.1 +;;port = 6600 +;;password = mysecretpassword + +; Seconds to sleep between progressbar/song timer sync +; Default: 1 +interval = 2 + +; Available tags: +; <label-song> (default) +; <label-time> +; <bar-progress> +; <toggle> - gets replaced with <icon-(pause|play)> +; <toggle-stop> - gets replaced with <icon-(stop|play)> +; <icon-random> +; <icon-repeat> +; <icon-repeatone> (deprecated) +; <icon-single> - Toggle playing only a single song. Replaces <icon-repeatone> +; <icon-consume> +; <icon-prev> +; <icon-stop> +; <icon-play> +; <icon-pause> +; <icon-next> +; <icon-seekb> +; <icon-seekf> + +format-online = <icon-prev> <toggle> <icon-next> +;;format-online-prefix = " " +;;format-online-prefix-font = 2 +;;format-online-prefix-foreground = ${color.GREEN} +format-online-background = ${color.ALTBACKGROUND} + +format-playing = ${self.format-online} +format-paused = ${self.format-online} +format-stopped = ${self.format-online} + +; Available tags: +; <label-offline> +format-offline = <label-offline> +#format-offline-prefix = " " +format-offline-background = ${color.ALTBACKGROUND} + +; Available tokens: +; %artist% +; %album-artist% +; %album% +; %date% +; %title% +; Default: %artist% - %title% +label-song = "%artist% - %title%" +label-song-maxlen = 25 +label-song-ellipsis = true + +; Available tokens: +; %elapsed% +; %total% +; Default: %elapsed% / %total% +;;abel-time = %elapsed% / %total% + +; Available tokens: +; None +label-offline = "" + +; Only applies if <icon-X> is used +icon-play = +icon-play-font = 2 +icon-play-foreground = ${color.GREEN} +icon-pause = +icon-pause-font = 2 +icon-pause-foreground = ${color.YELLOW} +icon-stop = +icon-stop-foreground = ${color.RED} +icon-prev = 玲 +icon-prev-font = 1 +icon-prev-foreground = ${color.BLUE} +icon-next = 怜 +icon-next-font = 1 +icon-next-foreground = ${color.BLUE} + +; Used to display the state of random/repeat/repeatone/single +; Only applies if <icon-[random|repeat|repeatone|single]> is used +;;toggle-on-foreground = #ff +;;toggle-off-foreground = #55 + +;;----------- + +[module/song] +type = internal/mpd + +interval = 2 + +format-online = <label-song> +format-online-font = 5 +format-offline = <label-offline> +format-offline-font = 5 + +format-playing = ${self.format-online} +format-paused = "${self.format-online}" +format-stopped = "" + +label-offline = "Offline" +label-song = "%title%" +label-song-maxlen = 25 +label-song-ellipsis = true + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +; If you use both a wired and a wireless network, Add both modules in config.ini +[module/ethernet] +type = internal/network +interface = ${system.sys_network_interface} + +interval = 1.0 +accumulate-stats = true +unknown-as-up = true + +format-connected = <label-connected> +format-connected-prefix = "歷 " +format-connected-prefix-foreground = ${color.MAGENTA} +format-connected-prefix-font = 2 +format-connected-background = ${color.BACKGROUND} +format-connected-padding = 1 + +format-disconnected = <label-disconnected> +format-disconnected-prefix = "轢 " +format-disconnected-prefix-font = 2 +format-disconnected-foreground = ${color.ALTFOREGROUND} +format-disconnected-background = ${color.BACKGROUND} +format-disconnected-padding = 1 + +label-connected = "%{A1:nmd &:}%downspeed% | %upspeed%%{A}" +label-disconnected = "%{A1:nmd &:}Offline%{A}" + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/network] +type = internal/network +interface = ${system.sys_network_interface} + +; Seconds to sleep between updates +; Default: 1 +interval = 1.0 + +; Test connectivity every Nth update +; A value of 0 disables the feature +; NOTE: Experimental (needs more testing) +; Default: 0 +;ping-interval = 3 + +; @deprecated: Define min width using token specifiers (%downspeed:min% and %upspeed:min%) +; Minimum output width of upload/download rate +; Default: 3 +;;udspeed-minwidth = 5 + +; Accumulate values from all interfaces +; when querying for up/downspeed rate +; Default: false +accumulate-stats = true + +; Consider an `UNKNOWN` interface state as up. +; Some devices have an unknown state, even when they're running +; Default: false +unknown-as-up = true + +; Available tags: +; <label-connected> (default) +; <ramp-signal> +format-connected = <ramp-signal> <label-connected> +format-connected-background = ${color.BACKGROUND} +format-connected-padding = 1 + +; Available tags: +; <label-disconnected> (default) + +format-disconnected = <label-disconnected> +format-disconnected-prefix = "睊 " +format-disconnected-prefix-font = 2 +format-disconnected-foreground = ${color.ALTFOREGROUND} +format-disconnected-background = ${color.BACKGROUND} +format-disconnected-padding = 1 + +; Available tags: +; <label-connected> (default) +; <label-packetloss> +; <animation-packetloss> +;;format-packetloss = <animation-packetloss> <label-connected> + +; Available tokens: +; %ifname% [wireless+wired] +; %local_ip% [wireless+wired] +; %local_ip6% [wireless+wired] +; %essid% [wireless] +; %signal% [wireless] +; %upspeed% [wireless+wired] +; %downspeed% [wireless+wired] +; %linkspeed% [wired] +; Default: %ifname% %local_ip% +;label-connected = "%essid% %downspeed%" +label-connected = "%{A1:nmd &:}%essid%%{A}" + +; Available tokens: +; %ifname% [wireless+wired] +; Default: (none) +label-disconnected = "%{A1:nmd &:}Offline%{A}" + +; Available tokens: +; %ifname% [wireless+wired] +; %local_ip% [wireless+wired] +; %local_ip6% [wireless+wired] +; %essid% [wireless] +; %signal% [wireless] +; %upspeed% [wireless+wired] +; %downspeed% [wireless+wired] +; %linkspeed% [wired] +; Default: (none) +;label-packetloss = %essid% +;label-packetloss-foreground = #eefafafa + +; Only applies if <ramp-signal> is used +ramp-signal-0 = 直 +ramp-signal-1 = 直 +ramp-signal-2 = 直 +ramp-signal-3 = 直 +ramp-signal-4 = 直 +ramp-signal-foreground = ${color.MAGENTA} +ramp-signal-font = 2 + +; Only applies if <animation-packetloss> is used +;;animation-packetloss-0 = ⚠ +;;animation-packetloss-0-foreground = #ffa64c +;;animation-packetloss-1 = ⚠ +;;animation-packetloss-1-foreground = #000000 +; Framerate in milliseconds +;;animation-packetloss-framerate = 500 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/volume] +type = internal/pulseaudio + +; Sink to be used, if it exists (find using `pacmd list-sinks`, name field) +; If not, uses default sink +sink = alsa_output.pci-0000_12_00.3.analog-stereo + +; Use PA_VOLUME_UI_MAX (~153%) if true, or PA_VOLUME_NORM (100%) if false +; Default: true +use-ui-max = false + +; Interval for volume increase/decrease (in percent points) +; Default: 5 +interval = 5 + +; Available tags: +; <label-volume> (default) +; <ramp-volume> +; <bar-volume> +format-volume = <ramp-volume> <bar-volume> +format-volume-background = ${color.BACKGROUND} +format-volume-padding = 1 + +; Available tags: +; <label-muted> (default) +; <ramp-volume> +; <bar-volume> +format-muted = <label-muted> +format-muted-prefix = 婢 +format-muted-prefix-font = 2 +format-muted-prefix-foreground = ${color.ALTFOREGROUND} +format-muted-background = ${color.BACKGROUND} +format-muted-padding = 1 + +; Available tokens: +; %percentage% (default) +;label-volume = %percentage%% + +; Available tokens: +; %percentage% (default) +label-muted = " Mute" +label-muted-foreground = ${color.ALTFOREGROUND} + +; Only applies if <bar-volume> is used +bar-volume-width = 10 +bar-volume-gradient = false + +bar-volume-indicator = 雷 +bar-volume-indicator-font = 2 +bar-volume-indicator-foreground = ${color.BLUE} + +bar-volume-fill = 絛 +bar-volume-fill-font = 3 +bar-volume-foreground-0 = ${color.BLUE} +bar-volume-foreground-1 = ${color.BLUE} +bar-volume-foreground-2 = ${color.BLUE} +bar-volume-foreground-3 = ${color.BLUE} +bar-volume-foreground-4 = ${color.BLUE} + +bar-volume-empty = 絛 +bar-volume-empty-font = 3 +bar-volume-empty-foreground = ${color.ALTBACKGROUND} + +; Only applies if <ramp-volume> is used +ramp-volume-0 = 奄 +ramp-volume-1 = 奄 +ramp-volume-2 = 奄 +ramp-volume-3 = 奔 +ramp-volume-4 = 奔 +ramp-volume-5 = 奔 +ramp-volume-6 = 墳 +ramp-volume-7 = 墳 +ramp-volume-8 = 墳 +ramp-volume-9 = 墳 +ramp-volume-font = 2 +ramp-volume-foreground = ${color.BLUE} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/temperature] +type = internal/temperature + +; Seconds to sleep between updates +; Default: 1 +interval = 0.5 + +; Thermal zone to use +; To list all the zone types, run +; $ for i in /sys/class/thermal/thermal_zone*; do echo "$i: $(<$i/type)"; done +; Default: 0 +thermal-zone = 0 + +; Full path of temperature sysfs path +; Use `sensors` to find preferred temperature source, then run +; $ for i in /sys/class/hwmon/hwmon*/temp*_input; do echo "$(<$(dirname $i)/name): $(cat ${i%_*}_label 2>/dev/null || echo $(basename ${i%_*})) $(readlink -f $i)"; done +; to find path to desired file +; Default reverts to thermal zone setting +;;hwmon-path = /sys/devices/platform/coretemp.0/hwmon/hwmon2/temp1_input + +; Threshold temperature to display warning label (in degrees celsius) +; Default: 80 +warn-temperature = 60 + +; Whether or not to show units next to the temperature tokens (°C, °F) +; Default: true +units = true + +; Available tags: +; <label> (default) +; <ramp> +format = <ramp> <label> + +; Available tags: +; <label-warn> (default) +; <ramp> +format-warn = <ramp> <label-warn> + +; Available tokens: +; %temperature% (deprecated) +; %temperature-c% (default, temperature in °C) +; %temperature-f% (temperature in °F) +label = %temperature-c% + +; Available tokens: +; %temperature% (deprecated) +; %temperature-c% (default, temperature in °C) +; %temperature-f% (temperature in °F) +label-warn = "%temperature-c%" +label-warn-foreground = ${color.RED} + +; Requires the <ramp> tag +; The icon selection will range from 0 to `warn-temperature` +; with the current temperature as index. +ramp-0 = +ramp-1 = +ramp-2 = +ramp-3 = +ramp-4 = +ramp-5 = +ramp-6 = +ramp-7 = +ramp-8 = +ramp-9 = +ramp-font = 2 +ramp-foreground = ${color.YELLOW} +;;ramp-foreground = #55 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/keyboard] +type = internal/xkeyboard + +; List of indicators to ignore +;blacklist-0 = num lock +blacklist-1 = scroll lock + +; Available tags: +; <label-layout> (default) +; <label-indicator> (default) +format = <label-layout> <label-indicator> +format-prefix = " " +format-prefix-font = 2 +format-prefix-foreground = ${color.MAGENTA} +;;format-spacing = 0 + +; Available tokens: +; %layout% +; %name% +; %number% +; Default: %layout% +label-layout = %name% +;;label-layout-padding = 2 +;;label-layout-background = #bc99ed +;;label-layout-foreground = #000 + +; Available tokens: +; %name% +; Default: %name% +label-indicator-on = " %name%" +;;label-indicator-padding = 2 +label-indicator-on-foreground = ${color.BLUE} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/title] +type = internal/xwindow + +; Available tags: +; <label> (default) +format = <label> +format-prefix = " " +format-prefix-font = 2 +format-prefix-foreground = ${color.BLUE} +format-background = ${color.ALTBACKGROUND} + +; Available tokens: +; %title% +; Default: %title% +label = %title% +label-maxlen = 25 + +; Used instead of label when there is no window title +; Available tokens: +; None +label-empty = Desktop +;label-empty-foreground = ${color.ALTBLACK} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/openbox] +type = internal/xworkspaces + +; Only show workspaces defined on the same output as the bar +; +; Useful if you want to show monitor specific workspaces +; on different bars +; +; Default: false +pin-workspaces = true + +; Create click handler used to focus desktop +; Default: true +enable-click = true + +; Create scroll handlers used to cycle desktops +; Default: true +enable-scroll = true + +; icon-[0-9]+ = <desktop-name>;<icon> +; NOTE: The desktop name needs to match the name configured by the WM +; You can get a list of the defined desktops using: +; $ xprop -root _NET_DESKTOP_NAMES +icon-0 = 1; +icon-1 = 2; +icon-2 = 3; +icon-3 = 4; +icon-4 = 5;漣 +icon-default = + +; Available tags: +; <label-monitor> +; <label-state> - gets replaced with <label-(active|urgent|occupied|empty)> +; Default: <label-state> +format = <label-state> +format-background = ${color.ALTBACKGROUND} +format-font = 2 + +; Available tokens: +; %name% +; Default: %name% +label-monitor = %name% + +; Available tokens: +; %name% +; %icon% +; %index% +; Default: %icon% %name% +label-active = ﱣ +label-active-foreground = ${color.GREEN} +;;label-active-underline = ${color.ALTBLACK} + +; Available tokens: +; %name% +; %icon% +; %index% +; Default: %icon% %name% +label-occupied = 綠 +label-occupied-foreground = ${color.ACCENT} +;;label-occupied-underline = ${color.ALTBLACK} + +; Available tokens: +; %name% +; %icon% +; %index% +; Default: %icon% %name% +label-urgent = ﱣ +label-urgent-foreground = ${color.RED} +;;label-urgent-underline = ${color.ALTBLACK} + +; Available tokens: +; %name% +; %icon% +; %index% +; Default: %icon% %name% +label-empty = 祿 +label-empty-foreground = ${color.ACCENT} + +label-active-padding = 1 +label-urgent-padding = 1 +label-occupied-padding = 1 +label-empty-padding = 1 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/menu] +type = custom/text + +content = +content-font = 6 +content-background = ${color.ALTBACKGROUND} +content-foreground = ${color.GREEN} +content-padding = 0 + +click-left = ~/.config/bspwm/scripts/rofi_launcher +click-right = ~/.config/bspwm/scripts/rofi_runner + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/sysmenu] +type = custom/text + +content = 襤 +content-font = 2 +content-background = ${color.ALTBACKGROUND} +content-foreground = ${color.RED} +content-padding = 0 + +click-left = ~/.config/bspwm/scripts/rofi_powermenu + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ +;; __________ ______ +;; / ____/ __ \/ ____/ +;; / __/ / / / / /_ +;; / /___/ /_/ / __/ +;; /_____/\____/_/ +;; +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ diff --git a/dot-config/bspwm/themes/onedark/rofi/askpass.rasi b/dot-config/bspwm/themes/onedark/rofi/askpass.rasi new file mode 100644 index 00000000..8fc1dacf --- /dev/null +++ b/dot-config/bspwm/themes/onedark/rofi/askpass.rasi @@ -0,0 +1,75 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/*****----- Main Window -----*****/ +window { + location: center; + anchor: center; + fullscreen: false; + width: 350px; + x-offset: 0px; + y-offset: 0px; + padding: 15px; + border: 0px solid; + border-radius: 10px; + border-color: @selected; + background-color: @background; + cursor: "default"; + children: [ "inputbar", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + children: [ "textbox-prompt-colon", "prompt", "entry" ]; +} + +dummy { + expand: false; + width: 10px; + background-color: transparent; +} +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + padding: 10px 13px; + border-radius: 100%; + background-color: @active; + text-color: @background; +} +prompt { + enabled: true; + padding: 10px; + border-radius: 15px; + background-color: @selected; + text-color: @background; +} +entry { + enabled: true; + padding: 10px 15px; + border-radius: 15px; + background-color: @background-alt; + text-color: inherit; + cursor: text; + placeholder: "Password"; + placeholder-color: inherit; +} + +/*****----- Listview -----*****/ +listview { + enabled: false; +} diff --git a/dot-config/bspwm/themes/onedark/rofi/asroot.rasi b/dot-config/bspwm/themes/onedark/rofi/asroot.rasi new file mode 100644 index 00000000..53b979bb --- /dev/null +++ b/dot-config/bspwm/themes/onedark/rofi/asroot.rasi @@ -0,0 +1,148 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + show-icons: false; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/* +USE_ICON=YES +*/ + +/*****----- Main Window -----*****/ +window { + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 500px; + x-offset: 0px; + y-offset: 0px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 10px; + border-color: @selected; + cursor: "default"; + background-color: @background; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 30px; + background-color: transparent; + children: [ "inputbar", "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + padding: 0px; + border: 0px; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + children: [ "textbox-prompt-colon", "prompt"]; +} + +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + padding: 10px 12px; + border-radius: 100%; + background-color: @active; + text-color: @background; +} +prompt { + enabled: true; + padding: 10px; + border-radius: 20px; + background-color: @selected; + text-color: @background; +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 10px; + border: 0px solid; + border-radius: 12px; + border-color: @selected; + background-color: @background-alt; + text-color: @foreground; +} +textbox { + background-color: inherit; + text-color: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 5; + lines: 1; + cycle: true; + scrollbar: false; + layout: vertical; + + spacing: 10px; + background-color: transparent; + cursor: "default"; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + padding: 22px 10px; + border: 0px solid; + border-radius: 12px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + cursor: pointer; +} +element-text { + font: "feather 20"; + background-color: transparent; + text-color: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.5; +} + +element normal.normal, +element alternate.normal { + background-color: var(background-alt); + text-color: var(foreground); +} +element normal.urgent, +element alternate.urgent, +element selected.active { + background-color: var(urgent); + text-color: var(background); +} +element normal.active, +element alternate.active, +element selected.urgent { + background-color: var(active); + text-color: var(background); +} +element selected.normal { + background-color: var(selected); + text-color: var(background); +} diff --git a/dot-config/bspwm/themes/onedark/rofi/confirm.rasi b/dot-config/bspwm/themes/onedark/rofi/confirm.rasi new file mode 100644 index 00000000..bfa3257f --- /dev/null +++ b/dot-config/bspwm/themes/onedark/rofi/confirm.rasi @@ -0,0 +1,148 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + show-icons: false; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/* +USE_ICON=YES +*/ + +/*****----- Main Window -----*****/ +window { + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 300px; + x-offset: 0px; + y-offset: 0px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 10px; + border-color: @selected; + cursor: "default"; + background-color: @background; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 30px; + background-color: transparent; + children: [ "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + padding: 0px; + border: 0px; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + children: [ "textbox-prompt-colon", "prompt"]; +} + +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + padding: 10px 14px; + border-radius: 100%; + background-color: @active; + text-color: @background; +} +prompt { + enabled: true; + padding: 10px; + border-radius: 20px; + background-color: @selected; + text-color: @background; +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 10px; + border: 0px solid; + border-radius: 8px; + border-color: @selected; + background-color: @background-alt; + text-color: @foreground; +} +textbox { + background-color: inherit; + text-color: inherit; + vertical-align: 0.5; + horizontal-align: 0.5; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 2; + lines: 1; + cycle: true; + scrollbar: false; + layout: vertical; + + spacing: 10px; + background-color: transparent; + cursor: "default"; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + padding: 5px 10px; + border: 0px solid; + border-radius: 8px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + cursor: pointer; +} +element-text { + font: "feather 20"; + background-color: transparent; + text-color: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.5; +} + +element normal.normal, +element alternate.normal { + background-color: var(background-alt); + text-color: var(foreground); +} +element normal.urgent, +element alternate.urgent, +element selected.active { + background-color: var(urgent); + text-color: var(background); +} +element normal.active, +element alternate.active, +element selected.urgent { + background-color: var(active); + text-color: var(background); +} +element selected.normal { + background-color: var(selected); + text-color: var(background); +} diff --git a/dot-config/bspwm/themes/onedark/rofi/launcher.rasi b/dot-config/bspwm/themes/onedark/rofi/launcher.rasi new file mode 100644 index 00000000..be1d92ea --- /dev/null +++ b/dot-config/bspwm/themes/onedark/rofi/launcher.rasi @@ -0,0 +1,302 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + modi: "drun,run,filebrowser,window"; + show-icons: true; + display-drun: ""; + display-run: ""; + display-filebrowser: ""; + display-window: ""; + drun-display-format: "{name}"; + window-format: "{c} · {t}"; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +* { + border-colour: var(selected); + handle-colour: var(selected); + background-colour: var(background); + foreground-colour: var(foreground); + alternate-background: var(background-alt); + normal-background: var(background); + normal-foreground: var(foreground); + urgent-background: var(urgent); + urgent-foreground: var(background); + active-background: var(active); + active-foreground: var(background); + selected-normal-background: var(selected); + selected-normal-foreground: var(background); + selected-urgent-background: var(active); + selected-urgent-foreground: var(background); + selected-active-background: var(urgent); + selected-active-foreground: var(background); + alternate-normal-background: var(background); + alternate-normal-foreground: var(foreground); + alternate-urgent-background: var(urgent); + alternate-urgent-foreground: var(background); + alternate-active-background: var(active); + alternate-active-foreground: var(background); +} + +/*****----- Main Window -----*****/ +window { + /* properties for window widget */ + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 600px; + x-offset: 0px; + y-offset: 0px; + + /* properties for all widgets */ + enabled: true; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 10px; + border-color: @border-colour; + cursor: "default"; + /* Backgroud Colors */ + background-color: @background-colour; + /* Backgroud Image */ + //background-image: url("/path/to/image.png", none); + /* Simple Linear Gradient */ + //background-image: linear-gradient(red, orange, pink, purple); + /* Directional Linear Gradient */ + //background-image: linear-gradient(to bottom, pink, yellow, magenta); + /* Angle Linear Gradient */ + //background-image: linear-gradient(45, cyan, purple, indigo); +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 30px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @border-colour; + background-color: transparent; + children: [ "inputbar", "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + children: [ "textbox-prompt-colon", "entry", "mode-switcher" ]; +} + +prompt { + enabled: true; + background-color: inherit; + text-color: inherit; +} +textbox-prompt-colon { + enabled: true; + padding: 8px 0px; + expand: false; + str: ""; + background-color: inherit; + text-color: inherit; +} +entry { + enabled: true; + padding: 8px 0px; + background-color: inherit; + text-color: inherit; + cursor: text; + placeholder: "Search..."; + placeholder-color: inherit; +} +num-filtered-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +textbox-num-sep { + enabled: true; + expand: false; + str: "/"; + background-color: inherit; + text-color: inherit; +} +num-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +case-indicator { + enabled: true; + background-color: inherit; + text-color: inherit; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 1; + lines: 8; + cycle: true; + dynamic: true; + scrollbar: true; + layout: vertical; + reverse: false; + fixed-height: true; + fixed-columns: true; + + spacing: 5px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: "default"; +} +scrollbar { + handle-width: 5px ; + handle-color: @handle-colour; + border-radius: 10px; + background-color: @alternate-background; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 6px; + border: 0px solid; + border-radius: 8px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: pointer; +} +element normal.normal { + background-color: var(normal-background); + text-color: var(normal-foreground); +} +element normal.urgent { + background-color: var(urgent-background); + text-color: var(urgent-foreground); +} +element normal.active { + background-color: var(active-background); + text-color: var(active-foreground); +} +element selected.normal { + background-color: var(selected-normal-background); + text-color: var(selected-normal-foreground); +} +element selected.urgent { + background-color: var(selected-urgent-background); + text-color: var(selected-urgent-foreground); +} +element selected.active { + background-color: var(selected-active-background); + text-color: var(selected-active-foreground); +} +element alternate.normal { + background-color: var(alternate-normal-background); + text-color: var(alternate-normal-foreground); +} +element alternate.urgent { + background-color: var(alternate-urgent-background); + text-color: var(alternate-urgent-foreground); +} +element alternate.active { + background-color: var(alternate-active-background); + text-color: var(alternate-active-foreground); +} +element-icon { + background-color: transparent; + text-color: inherit; + size: 24px; + cursor: inherit; +} +element-text { + background-color: transparent; + text-color: inherit; + highlight: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Mode Switcher -----*****/ +mode-switcher{ + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; +} +button { + padding: 8px 12px; + border: 0px solid; + border-radius: 8px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: inherit; + cursor: pointer; +} +button selected { + background-color: var(selected-normal-background); + text-color: var(selected-normal-foreground); +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 8px 12px; + border: 0px solid; + border-radius: 8px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: @foreground-colour; +} +textbox { + border: 0px solid; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + vertical-align: 0.5; + horizontal-align: 0.0; + highlight: none; + placeholder-color: @foreground-colour; + blink: true; + markup: true; +} +error-message { + padding: 15px; + border: 0px solid; + border-radius: 10px; + border-color: @border-colour; + background-color: @background-colour; + text-color: @foreground-colour; +} diff --git a/dot-config/bspwm/themes/onedark/rofi/music.rasi b/dot-config/bspwm/themes/onedark/rofi/music.rasi new file mode 100644 index 00000000..4016ec4d --- /dev/null +++ b/dot-config/bspwm/themes/onedark/rofi/music.rasi @@ -0,0 +1,148 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + show-icons: false; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/* +USE_ICON=YES +*/ + +/*****----- Main Window -----*****/ +window { + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 600px; + x-offset: 0px; + y-offset: 0px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 10px; + border-color: @selected; + cursor: "default"; + background-color: @background; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 30px; + background-color: transparent; + children: [ "inputbar", "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + padding: 0px; + border: 0px; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + children: [ "textbox-prompt-colon", "prompt"]; +} + +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + padding: 10px 14px; + border-radius: 100%; + background-color: @active; + text-color: @background; +} +prompt { + enabled: true; + padding: 10px; + border-radius: 20px; + background-color: @selected; + text-color: @background; +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 10px; + border: 0px solid; + border-radius: 12px; + border-color: @selected; + background-color: @background-alt; + text-color: @foreground; +} +textbox { + background-color: inherit; + text-color: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 6; + lines: 1; + cycle: true; + scrollbar: false; + layout: vertical; + + spacing: 10px; + background-color: transparent; + cursor: "default"; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + padding: 22px 10px; + border: 0px solid; + border-radius: 12px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + cursor: pointer; +} +element-text { + font: "feather 20"; + background-color: transparent; + text-color: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.5; +} + +element normal.normal, +element alternate.normal { + background-color: var(background-alt); + text-color: var(foreground); +} +element normal.urgent, +element alternate.urgent, +element selected.active { + background-color: var(urgent); + text-color: var(background); +} +element normal.active, +element alternate.active, +element selected.urgent { + background-color: var(active); + text-color: var(background); +} +element selected.normal { + background-color: var(selected); + text-color: var(background); +} diff --git a/dot-config/bspwm/themes/onedark/rofi/networkmenu.rasi b/dot-config/bspwm/themes/onedark/rofi/networkmenu.rasi new file mode 100644 index 00000000..0627ba07 --- /dev/null +++ b/dot-config/bspwm/themes/onedark/rofi/networkmenu.rasi @@ -0,0 +1,300 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + show-icons: false; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +* { + border-colour: var(selected); + handle-colour: var(selected); + background-colour: var(background); + foreground-colour: var(foreground); + alternate-background: var(background-alt); + normal-background: var(background); + normal-foreground: var(foreground); + urgent-background: var(urgent); + urgent-foreground: var(background); + active-background: var(active); + active-foreground: var(background); + selected-normal-background: var(selected); + selected-normal-foreground: var(background); + selected-urgent-background: var(active); + selected-urgent-foreground: var(background); + selected-active-background: var(urgent); + selected-active-foreground: var(background); + alternate-normal-background: var(background); + alternate-normal-foreground: var(foreground); + alternate-urgent-background: var(urgent); + alternate-urgent-foreground: var(background); + alternate-active-background: var(active); + alternate-active-foreground: var(background); +} + +/*****----- Main Window -----*****/ +window { + /* properties for window widget */ + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 500px; + height: 490px; + x-offset: 0px; + y-offset: 0px; + + /* properties for all widgets */ + enabled: true; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 10px; + border-color: @border-colour; + cursor: "default"; + /* Backgroud Colors */ + background-color: @background-colour; + /* Backgroud Image */ + //background-image: url("/path/to/image.png", none); + /* Simple Linear Gradient */ + //background-image: linear-gradient(red, orange, pink, purple); + /* Directional Linear Gradient */ + //background-image: linear-gradient(to bottom, pink, yellow, magenta); + /* Angle Linear Gradient */ + //background-image: linear-gradient(45, cyan, purple, indigo); +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 30px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @border-colour; + background-color: transparent; + children: [ "inputbar", "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + children: [ "textbox-prompt-colon", "prompt", "entry" ]; +} + +prompt { + enabled: true; + padding: 8px 12px; + border-radius: 100%; + background-color: @selected; + text-color: @background; +} +textbox-prompt-colon { + enabled: true; + padding: 8px 11.5px; + border-radius: 100%; + expand: false; + str: "直"; + background-color: @active; + text-color: @background; +} +entry { + enabled: true; + padding: 8px 12px; + border-radius: 100%; + background-color: @background-alt; + text-color: inherit; + cursor: text; + placeholder: "..."; + placeholder-color: inherit; +} +num-filtered-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +textbox-num-sep { + enabled: true; + expand: false; + str: "/"; + background-color: inherit; + text-color: inherit; +} +num-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +case-indicator { + enabled: true; + background-color: inherit; + text-color: inherit; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 1; + lines: 6; + cycle: true; + dynamic: true; + scrollbar: true; + layout: vertical; + reverse: false; + fixed-height: true; + fixed-columns: true; + + spacing: 5px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: "default"; +} +scrollbar { + handle-width: 5px ; + handle-color: @handle-colour; + border-radius: 10px; + background-color: @alternate-background; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + spacing: 0px; + margin: 0px; + padding: 8px; + border: 0px solid; + border-radius: 8px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: pointer; +} +element normal.normal { + background-color: var(normal-background); + text-color: var(normal-foreground); +} +element normal.urgent { + background-color: var(urgent-background); + text-color: var(urgent-foreground); +} +element normal.active { + background-color: var(active-background); + text-color: var(active-foreground); +} +element selected.normal { + background-color: var(selected-normal-background); + text-color: var(selected-normal-foreground); +} +element selected.urgent { + background-color: var(selected-urgent-background); + text-color: var(selected-urgent-foreground); +} +element selected.active { + background-color: var(selected-active-background); + text-color: var(selected-active-foreground); +} +element alternate.normal { + background-color: var(alternate-normal-background); + text-color: var(alternate-normal-foreground); +} +element alternate.urgent { + background-color: var(alternate-urgent-background); + text-color: var(alternate-urgent-foreground); +} +element alternate.active { + background-color: var(alternate-active-background); + text-color: var(alternate-active-foreground); +} +element-icon { + background-color: transparent; + text-color: inherit; + size: 24px; + cursor: inherit; +} +element-text { + background-color: transparent; + text-color: inherit; + highlight: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Mode Switcher -----*****/ +mode-switcher{ + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; +} +button { + padding: 5px 10px; + border: 0px solid; + border-radius: 8px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: inherit; + cursor: pointer; +} +button selected { + background-color: var(selected-normal-background); + text-color: var(selected-normal-foreground); +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 8px 10px; + border: 0px solid; + border-radius: 8px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: @foreground-colour; +} +textbox { + border: 0px solid; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + vertical-align: 0.5; + horizontal-align: 0.0; + highlight: none; + placeholder-color: @foreground-colour; + blink: true; + markup: true; +} +error-message { + padding: 15px; + border: 0px solid; + border-radius: 10px; + border-color: @border-colour; + background-color: @background-colour; + text-color: @foreground-colour; +} diff --git a/dot-config/bspwm/themes/onedark/rofi/powermenu.rasi b/dot-config/bspwm/themes/onedark/rofi/powermenu.rasi new file mode 100644 index 00000000..41f0a3d8 --- /dev/null +++ b/dot-config/bspwm/themes/onedark/rofi/powermenu.rasi @@ -0,0 +1,148 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + show-icons: false; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/* +USE_ICON=YES +*/ + +/*****----- Main Window -----*****/ +window { + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 600px; + x-offset: 0px; + y-offset: 0px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 10px; + border-color: @selected; + cursor: "default"; + background-color: @background; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 30px; + background-color: transparent; + children: [ "inputbar", "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + padding: 0px; + border: 0px; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + children: [ "textbox-prompt-colon", "prompt"]; +} + +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + padding: 10px 14px; + border-radius: 100%; + background-color: @active; + text-color: @background; +} +prompt { + enabled: true; + padding: 10px; + border-radius: 20px; + background-color: @selected; + text-color: @background; +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 10px; + border: 0px solid; + border-radius: 12px; + border-color: @selected; + background-color: @background-alt; + text-color: @foreground; +} +textbox { + background-color: inherit; + text-color: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 6; + lines: 1; + cycle: true; + scrollbar: false; + layout: vertical; + + spacing: 10px; + background-color: transparent; + cursor: "default"; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + padding: 22px 10px; + border: 0px solid; + border-radius: 12px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + cursor: pointer; +} +element-text { + font: "feather 20"; + background-color: transparent; + text-color: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.5; +} + +element normal.normal, +element alternate.normal { + background-color: var(background-alt); + text-color: var(foreground); +} +element normal.urgent, +element alternate.urgent, +element selected.active { + background-color: var(urgent); + text-color: var(background); +} +element normal.active, +element alternate.active, +element selected.urgent { + background-color: var(active); + text-color: var(background); +} +element selected.normal { + background-color: var(selected); + text-color: var(background); +} diff --git a/dot-config/bspwm/themes/onedark/rofi/runner.rasi b/dot-config/bspwm/themes/onedark/rofi/runner.rasi new file mode 100644 index 00000000..dba04bc4 --- /dev/null +++ b/dot-config/bspwm/themes/onedark/rofi/runner.rasi @@ -0,0 +1,302 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + modi: "run"; + show-icons: true; + display-drun: ""; + display-run: ""; + display-filebrowser: ""; + display-window: ""; + drun-display-format: "{name}"; + window-format: "{w} · {c} · {t}"; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +* { + border-colour: var(selected); + handle-colour: var(selected); + background-colour: var(background); + foreground-colour: var(foreground); + alternate-background: var(background-alt); + normal-background: var(background); + normal-foreground: var(foreground); + urgent-background: var(urgent); + urgent-foreground: var(background); + active-background: var(active); + active-foreground: var(background); + selected-normal-background: var(selected); + selected-normal-foreground: var(background); + selected-urgent-background: var(active); + selected-urgent-foreground: var(background); + selected-active-background: var(urgent); + selected-active-foreground: var(background); + alternate-normal-background: var(background); + alternate-normal-foreground: var(foreground); + alternate-urgent-background: var(urgent); + alternate-urgent-foreground: var(background); + alternate-active-background: var(active); + alternate-active-foreground: var(background); +} + +/*****----- Main Window -----*****/ +window { + /* properties for window widget */ + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 500px; + x-offset: 0px; + y-offset: 0px; + + /* properties for all widgets */ + enabled: true; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 10px; + border-color: @border-colour; + cursor: "default"; + /* Backgroud Colors */ + background-color: @background-colour; + /* Backgroud Image */ + //background-image: url("/path/to/image.png", none); + /* Simple Linear Gradient */ + //background-image: linear-gradient(red, orange, pink, purple); + /* Directional Linear Gradient */ + //background-image: linear-gradient(to bottom, pink, yellow, magenta); + /* Angle Linear Gradient */ + //background-image: linear-gradient(45, cyan, purple, indigo); +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 30px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @border-colour; + background-color: transparent; + children: [ "inputbar", "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + children: [ "textbox-prompt-colon", "entry" ]; +} + +prompt { + enabled: true; + background-color: inherit; + text-color: inherit; +} +textbox-prompt-colon { + enabled: true; + padding: 5px 0px; + expand: false; + str: ""; + background-color: inherit; + text-color: inherit; +} +entry { + enabled: true; + padding: 5px 0px; + background-color: inherit; + text-color: inherit; + cursor: text; + placeholder: "Run..."; + placeholder-color: inherit; +} +num-filtered-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +textbox-num-sep { + enabled: true; + expand: false; + str: "/"; + background-color: inherit; + text-color: inherit; +} +num-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +case-indicator { + enabled: true; + background-color: inherit; + text-color: inherit; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 1; + lines: 6; + cycle: true; + dynamic: true; + scrollbar: false; + layout: vertical; + reverse: false; + fixed-height: true; + fixed-columns: true; + + spacing: 5px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: "default"; +} +scrollbar { + handle-width: 5px ; + handle-color: @handle-colour; + border-radius: 10px; + background-color: @alternate-background; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 6px; + border: 0px solid; + border-radius: 8px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: pointer; +} +element normal.normal { + background-color: var(normal-background); + text-color: var(normal-foreground); +} +element normal.urgent { + background-color: var(urgent-background); + text-color: var(urgent-foreground); +} +element normal.active { + background-color: var(active-background); + text-color: var(active-foreground); +} +element selected.normal { + background-color: var(selected-normal-background); + text-color: var(selected-normal-foreground); +} +element selected.urgent { + background-color: var(selected-urgent-background); + text-color: var(selected-urgent-foreground); +} +element selected.active { + background-color: var(selected-active-background); + text-color: var(selected-active-foreground); +} +element alternate.normal { + background-color: var(alternate-normal-background); + text-color: var(alternate-normal-foreground); +} +element alternate.urgent { + background-color: var(alternate-urgent-background); + text-color: var(alternate-urgent-foreground); +} +element alternate.active { + background-color: var(alternate-active-background); + text-color: var(alternate-active-foreground); +} +element-icon { + background-color: transparent; + text-color: inherit; + size: 24px; + cursor: inherit; +} +element-text { + background-color: transparent; + text-color: inherit; + highlight: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Mode Switcher -----*****/ +mode-switcher{ + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; +} +button { + padding: 5px 10px; + border: 0px solid; + border-radius: 8px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: inherit; + cursor: pointer; +} +button selected { + background-color: var(selected-normal-background); + text-color: var(selected-normal-foreground); +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 8px 10px; + border: 0px solid; + border-radius: 8px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: @foreground-colour; +} +textbox { + border: 0px solid; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + vertical-align: 0.5; + horizontal-align: 0.0; + highlight: none; + placeholder-color: @foreground-colour; + blink: true; + markup: true; +} +error-message { + padding: 15px; + border: 0px solid; + border-radius: 10px; + border-color: @border-colour; + background-color: @background-colour; + text-color: @foreground-colour; +} diff --git a/dot-config/bspwm/themes/onedark/rofi/screenshot.rasi b/dot-config/bspwm/themes/onedark/rofi/screenshot.rasi new file mode 100644 index 00000000..9c599d0d --- /dev/null +++ b/dot-config/bspwm/themes/onedark/rofi/screenshot.rasi @@ -0,0 +1,148 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + show-icons: false; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/* +USE_ICON=YES +*/ + +/*****----- Main Window -----*****/ +window { + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 500px; + x-offset: 0px; + y-offset: 0px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 10px; + border-color: @selected; + cursor: "default"; + background-color: @background; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 30px; + background-color: transparent; + children: [ "inputbar", "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + padding: 0px; + border: 0px; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + children: [ "textbox-prompt-colon", "prompt"]; +} + +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + padding: 10px 12px; + border-radius: 100%; + background-color: @active; + text-color: @background; +} +prompt { + enabled: true; + padding: 10px; + border-radius: 20px; + background-color: @selected; + text-color: @background; +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 10px; + border: 0px solid; + border-radius: 12px; + border-color: @selected; + background-color: @background-alt; + text-color: @foreground; +} +textbox { + background-color: inherit; + text-color: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 5; + lines: 1; + cycle: true; + scrollbar: false; + layout: vertical; + + spacing: 10px; + background-color: transparent; + cursor: "default"; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + padding: 22px 10px; + border: 0px solid; + border-radius: 12px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + cursor: pointer; +} +element-text { + font: "feather 20"; + background-color: transparent; + text-color: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.5; +} + +element normal.normal, +element alternate.normal { + background-color: var(background-alt); + text-color: var(foreground); +} +element normal.urgent, +element alternate.urgent, +element selected.active { + background-color: var(urgent); + text-color: var(background); +} +element normal.active, +element alternate.active, +element selected.urgent { + background-color: var(active); + text-color: var(background); +} +element selected.normal { + background-color: var(selected); + text-color: var(background); +} diff --git a/dot-config/bspwm/themes/onedark/rofi/shared/colors.rasi b/dot-config/bspwm/themes/onedark/rofi/shared/colors.rasi new file mode 100644 index 00000000..0f66fa6c --- /dev/null +++ b/dot-config/bspwm/themes/onedark/rofi/shared/colors.rasi @@ -0,0 +1,8 @@ +* { + background: #1E2128; + background-alt: #292d37; + foreground: #ABB2BF; + selected: #5294E2; + active: #98C379; + urgent: #E06B74; +} diff --git a/dot-config/bspwm/themes/onedark/rofi/shared/fonts.rasi b/dot-config/bspwm/themes/onedark/rofi/shared/fonts.rasi new file mode 100644 index 00000000..d2af39fe --- /dev/null +++ b/dot-config/bspwm/themes/onedark/rofi/shared/fonts.rasi @@ -0,0 +1,7 @@ +/* Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> */ + +/* Text Font */ + +* { + font: "Iosevka 10"; +} diff --git a/dot-config/bspwm/themes/onedark/rofi/themes.rasi b/dot-config/bspwm/themes/onedark/rofi/themes.rasi new file mode 100644 index 00000000..c5fdc74b --- /dev/null +++ b/dot-config/bspwm/themes/onedark/rofi/themes.rasi @@ -0,0 +1,299 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + show-icons: false; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +* { + border-colour: var(selected); + handle-colour: var(selected); + background-colour: var(background); + foreground-colour: var(foreground); + alternate-background: var(background-alt); + normal-background: var(background); + normal-foreground: var(foreground); + urgent-background: var(urgent); + urgent-foreground: var(background); + active-background: var(active); + active-foreground: var(background); + selected-normal-background: var(selected); + selected-normal-foreground: var(background); + selected-urgent-background: var(active); + selected-urgent-foreground: var(background); + selected-active-background: var(urgent); + selected-active-foreground: var(background); + alternate-normal-background: var(background); + alternate-normal-foreground: var(foreground); + alternate-urgent-background: var(urgent); + alternate-urgent-foreground: var(background); + alternate-active-background: var(active); + alternate-active-foreground: var(background); +} + +/*****----- Main Window -----*****/ +window { + /* properties for window widget */ + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 500px; + x-offset: 0px; + y-offset: 0px; + + /* properties for all widgets */ + enabled: true; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 10px; + border-color: @border-colour; + cursor: "default"; + /* Backgroud Colors */ + background-color: @background-colour; + /* Backgroud Image */ + //background-image: url("/path/to/image.png", none); + /* Simple Linear Gradient */ + //background-image: linear-gradient(red, orange, pink, purple); + /* Directional Linear Gradient */ + //background-image: linear-gradient(to bottom, pink, yellow, magenta); + /* Angle Linear Gradient */ + //background-image: linear-gradient(45, cyan, purple, indigo); +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 30px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @border-colour; + background-color: transparent; + children: [ "inputbar", "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + children: [ "textbox-prompt-colon", "prompt" ]; +} + +prompt { + enabled: true; + padding: 8px 12px; + border-radius: 100%; + background-color: @selected; + text-color: @background; +} +textbox-prompt-colon { + enabled: true; + padding: 8px 11.5px; + border-radius: 100%; + expand: false; + str: ""; + background-color: @active; + text-color: @background; +} +entry { + enabled: true; + padding: 8px 12px; + border-radius: 100%; + background-color: @background-alt; + text-color: inherit; + cursor: text; + placeholder: "..."; + placeholder-color: inherit; +} +num-filtered-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +textbox-num-sep { + enabled: true; + expand: false; + str: "/"; + background-color: inherit; + text-color: inherit; +} +num-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +case-indicator { + enabled: true; + background-color: inherit; + text-color: inherit; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 1; + lines: 6; + cycle: true; + dynamic: true; + scrollbar: true; + layout: vertical; + reverse: false; + fixed-height: true; + fixed-columns: true; + + spacing: 5px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: "default"; +} +scrollbar { + handle-width: 5px ; + handle-color: @handle-colour; + border-radius: 10px; + background-color: @alternate-background; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + spacing: 0px; + margin: 0px; + padding: 8px; + border: 0px solid; + border-radius: 8px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: pointer; +} +element normal.normal { + background-color: var(normal-background); + text-color: var(normal-foreground); +} +element normal.urgent { + background-color: var(urgent-background); + text-color: var(urgent-foreground); +} +element normal.active { + background-color: var(active-background); + text-color: var(active-foreground); +} +element selected.normal { + background-color: var(selected-normal-background); + text-color: var(selected-normal-foreground); +} +element selected.urgent { + background-color: var(selected-urgent-background); + text-color: var(selected-urgent-foreground); +} +element selected.active { + background-color: var(selected-active-background); + text-color: var(selected-active-foreground); +} +element alternate.normal { + background-color: var(alternate-normal-background); + text-color: var(alternate-normal-foreground); +} +element alternate.urgent { + background-color: var(alternate-urgent-background); + text-color: var(alternate-urgent-foreground); +} +element alternate.active { + background-color: var(alternate-active-background); + text-color: var(alternate-active-foreground); +} +element-icon { + background-color: transparent; + text-color: inherit; + size: 24px; + cursor: inherit; +} +element-text { + background-color: transparent; + text-color: inherit; + highlight: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Mode Switcher -----*****/ +mode-switcher{ + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; +} +button { + padding: 5px 10px; + border: 0px solid; + border-radius: 8px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: inherit; + cursor: pointer; +} +button selected { + background-color: var(selected-normal-background); + text-color: var(selected-normal-foreground); +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 8px 10px; + border: 0px solid; + border-radius: 8px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: @foreground-colour; +} +textbox { + border: 0px solid; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + vertical-align: 0.5; + horizontal-align: 0.0; + highlight: none; + placeholder-color: @foreground-colour; + blink: true; + markup: true; +} +error-message { + padding: 15px; + border: 0px solid; + border-radius: 10px; + border-color: @border-colour; + background-color: @background-colour; + text-color: @foreground-colour; +} diff --git a/dot-config/bspwm/themes/onedark/rofi/windows.rasi b/dot-config/bspwm/themes/onedark/rofi/windows.rasi new file mode 100644 index 00000000..b4beca52 --- /dev/null +++ b/dot-config/bspwm/themes/onedark/rofi/windows.rasi @@ -0,0 +1,302 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + modi: "window"; + show-icons: true; + display-drun: ""; + display-run: ""; + display-filebrowser: ""; + display-window: ""; + drun-display-format: "{name}"; + window-format: "{c} · {t}"; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +* { + border-colour: var(selected); + handle-colour: var(selected); + background-colour: var(background); + foreground-colour: var(foreground); + alternate-background: var(background-alt); + normal-background: var(background); + normal-foreground: var(foreground); + urgent-background: var(urgent); + urgent-foreground: var(background); + active-background: var(active); + active-foreground: var(background); + selected-normal-background: var(selected); + selected-normal-foreground: var(background); + selected-urgent-background: var(active); + selected-urgent-foreground: var(background); + selected-active-background: var(urgent); + selected-active-foreground: var(background); + alternate-normal-background: var(background); + alternate-normal-foreground: var(foreground); + alternate-urgent-background: var(urgent); + alternate-urgent-foreground: var(background); + alternate-active-background: var(active); + alternate-active-foreground: var(background); +} + +/*****----- Main Window -----*****/ +window { + /* properties for window widget */ + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 600px; + x-offset: 0px; + y-offset: 0px; + + /* properties for all widgets */ + enabled: true; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 10px; + border-color: @border-colour; + cursor: "default"; + /* Backgroud Colors */ + background-color: @background-colour; + /* Backgroud Image */ + //background-image: url("/path/to/image.png", none); + /* Simple Linear Gradient */ + //background-image: linear-gradient(red, orange, pink, purple); + /* Directional Linear Gradient */ + //background-image: linear-gradient(to bottom, pink, yellow, magenta); + /* Angle Linear Gradient */ + //background-image: linear-gradient(45, cyan, purple, indigo); +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 30px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @border-colour; + background-color: transparent; + children: [ "inputbar", "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + children: [ "textbox-prompt-colon", "entry" ]; +} + +prompt { + enabled: true; + background-color: inherit; + text-color: inherit; +} +textbox-prompt-colon { + enabled: true; + padding: 5px 0px; + expand: false; + str: ""; + background-color: inherit; + text-color: inherit; +} +entry { + enabled: true; + padding: 5px 0px; + background-color: inherit; + text-color: inherit; + cursor: text; + placeholder: "Filter..."; + placeholder-color: inherit; +} +num-filtered-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +textbox-num-sep { + enabled: true; + expand: false; + str: "/"; + background-color: inherit; + text-color: inherit; +} +num-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +case-indicator { + enabled: true; + background-color: inherit; + text-color: inherit; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 1; + lines: 6; + cycle: true; + dynamic: true; + scrollbar: false; + layout: vertical; + reverse: false; + fixed-height: true; + fixed-columns: true; + + spacing: 5px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: "default"; +} +scrollbar { + handle-width: 5px ; + handle-color: @handle-colour; + border-radius: 10px; + background-color: @alternate-background; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 6px; + border: 0px solid; + border-radius: 8px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: pointer; +} +element normal.normal { + background-color: var(normal-background); + text-color: var(normal-foreground); +} +element normal.urgent { + background-color: var(urgent-background); + text-color: var(urgent-foreground); +} +element normal.active { + background-color: var(active-background); + text-color: var(active-foreground); +} +element selected.normal { + background-color: var(selected-normal-background); + text-color: var(selected-normal-foreground); +} +element selected.urgent { + background-color: var(selected-urgent-background); + text-color: var(selected-urgent-foreground); +} +element selected.active { + background-color: var(selected-active-background); + text-color: var(selected-active-foreground); +} +element alternate.normal { + background-color: var(alternate-normal-background); + text-color: var(alternate-normal-foreground); +} +element alternate.urgent { + background-color: var(alternate-urgent-background); + text-color: var(alternate-urgent-foreground); +} +element alternate.active { + background-color: var(alternate-active-background); + text-color: var(alternate-active-foreground); +} +element-icon { + background-color: transparent; + text-color: inherit; + size: 24px; + cursor: inherit; +} +element-text { + background-color: transparent; + text-color: inherit; + highlight: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Mode Switcher -----*****/ +mode-switcher{ + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; +} +button { + padding: 5px 10px; + border: 0px solid; + border-radius: 8px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: inherit; + cursor: pointer; +} +button selected { + background-color: var(selected-normal-background); + text-color: var(selected-normal-foreground); +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 8px 10px; + border: 0px solid; + border-radius: 8px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: @foreground-colour; +} +textbox { + border: 0px solid; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + vertical-align: 0.5; + horizontal-align: 0.0; + highlight: none; + placeholder-color: @foreground-colour; + blink: true; + markup: true; +} +error-message { + padding: 15px; + border: 0px solid; + border-radius: 10px; + border-color: @border-colour; + background-color: @background-colour; + text-color: @foreground-colour; +} diff --git a/dot-config/bspwm/themes/onedark/theme.bash b/dot-config/bspwm/themes/onedark/theme.bash new file mode 100644 index 00000000..de027d94 --- /dev/null +++ b/dot-config/bspwm/themes/onedark/theme.bash @@ -0,0 +1,82 @@ +# ------------------------------------------------------------------------------ +# Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> +# +# Onedark Theme +# ------------------------------------------------------------------------------ + +# Colors +background='#1E2128' +foreground='#ABB2BF' +color0='#32363D' +color1='#E06B74' +color2='#98C379' +color3='#E5C07A' +color4='#62AEEF' +color5='#C778DD' +color6='#55B6C2' +color7='#ABB2BF' +color8='#50545B' +color9='#EA757E' +color10='#A2CD83' +color11='#EFCA84' +color12='#6CB8F9' +color13='#D282E7' +color14='#5FC0CC' +color15='#B5BCC9' + +accent='#5294E2' +light_value='0.05' +dark_value='0.30' + +# Wallpaper +wdir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" +wallpaper="$wdir/wallpaper" + +# Polybar +polybar_font='JetBrains Mono:size=10;3' + +# Rofi +rofi_font='Iosevka 10' +rofi_icon='Zafiro' + +# Terminal +terminal_font_name='JetBrainsMono Nerd Font' +terminal_font_size='10' + +# Geany +geany_colors='arc.conf' +geany_font='JetBrains Mono 10' + +# Appearance +gtk_font='Noto Sans 9' +gtk_theme='Arc-Dark' +icon_theme='Zafiro' +cursor_theme='Qogirr' + +# Dunst +dunst_width='300' +dunst_height='80' +dunst_offset='10x48' +dunst_origin='top-right' +dunst_font='JetBrains Mono 10' +dunst_border='2' +dunst_separator='2' + +# Picom +picom_backend='glx' +picom_corner='0' +picom_shadow_r='14' +picom_shadow_o='0.30' +picom_shadow_x='-12' +picom_shadow_y='-12' +picom_blur_method='none' +picom_blur_strength='0' + +# Bspwm +bspwm_fbc="$accent" +bspwm_nbc="$background" +bspwm_abc="$color5" +bspwm_pfc="$color2" +bspwm_border='2' +bspwm_gap='10' +bspwm_sratio='0.50' diff --git a/dot-config/bspwm/themes/onedark/wallpaper b/dot-config/bspwm/themes/onedark/wallpaper new file mode 120000 index 00000000..a7f85747 --- /dev/null +++ b/dot-config/bspwm/themes/onedark/wallpaper @@ -0,0 +1 @@ +/usr/share/backgrounds/default.jpg
\ No newline at end of file diff --git a/dot-config/bspwm/themes/polybar.sh b/dot-config/bspwm/themes/polybar.sh new file mode 100755 index 00000000..372e0b1f --- /dev/null +++ b/dot-config/bspwm/themes/polybar.sh @@ -0,0 +1,44 @@ +#!/usr/bin/env bash + +## Files and Directories +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" +SFILE="$DIR/system.ini" +RFILE="$DIR/.system" +STYLE="default" + +## Get system variable values for various modules +get_values() { + CARD=$(light -L | grep 'backlight' | head -n1 | cut -d'/' -f3) + BATTERY=$(upower -i `upower -e | grep 'BAT'` | grep 'native-path' | cut -d':' -f2 | tr -d '[:blank:]') + ADAPTER=$(upower -i `upower -e | grep 'AC'` | grep 'native-path' | cut -d':' -f2 | tr -d '[:blank:]') + INTERFACE=$(ip link | awk '/state UP/ {print $2}' | tr -d :) +} + +## Write values to `system.ini` file +set_values() { + if [[ "$ADAPTER" ]]; then + sed -i -e "s/sys_adapter = .*/sys_adapter = $ADAPTER/g" ${SFILE} + fi + if [[ "$BATTERY" ]]; then + sed -i -e "s/sys_battery = .*/sys_battery = $BATTERY/g" ${SFILE} + fi + if [[ "$CARD" ]]; then + sed -i -e "s/sys_graphics_card = .*/sys_graphics_card = $CARD/g" ${SFILE} + fi + if [[ "$INTERFACE" ]]; then + sed -i -e "s/sys_network_interface = .*/sys_network_interface = $INTERFACE/g" ${SFILE} + fi +} + +## Launch Polybar with selected style +launch_bar() { + bash "$HOME"/.config/bspwm/themes/"$STYLE"/polybar/launch.sh +} + +# Execute functions +if [[ ! -f "$RFILE" ]]; then + get_values + set_values + touch ${RFILE} +fi +launch_bar diff --git a/dot-config/bspwm/themes/slime/apply.sh b/dot-config/bspwm/themes/slime/apply.sh new file mode 100755 index 00000000..ac9ffcb2 --- /dev/null +++ b/dot-config/bspwm/themes/slime/apply.sh @@ -0,0 +1,278 @@ +#!/usr/bin/env bash + +## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> +## +## Script To Apply Themes + +## Theme ------------------------------------ +BDIR="$HOME/.config/bspwm" +TDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" +THEME="${TDIR##*/}" + +source "$BDIR"/themes/"$THEME"/theme.bash +altbackground="`pastel color $background | pastel darken $dark_value | pastel format hex`" +altforeground="`pastel color $foreground | pastel lighten $light_value | pastel format hex`" + +## Directories ------------------------------ +PATH_CONF="$HOME/.config" +PATH_GEANY="$PATH_CONF/geany" +PATH_BSPWM="$PATH_CONF/bspwm" +PATH_TERM="$PATH_BSPWM/alacritty" +PATH_PBAR="$PATH_BSPWM/themes/$THEME/polybar" +PATH_ROFI="$PATH_BSPWM/themes/$THEME/rofi" + +## Wallpaper --------------------------------- +apply_wallpaper() { + feh --bg-fill "$wallpaper" +} + +## Polybar ----------------------------------- +apply_polybar() { + # modify polybar launch script + sed -i -e "s/STYLE=.*/STYLE=\"$THEME\"/g" ${PATH_BSPWM}/themes/polybar.sh + + # apply default theme fonts + sed -i -e "s/font-0 = .*/font-0 = \"$polybar_font\"/g" ${PATH_PBAR}/config.ini + + # rewrite colors file + cat > ${PATH_PBAR}/colors.ini <<- EOF + [color] + + BACKGROUND = ${background} + FOREGROUND = ${foreground} + ALTBACKGROUND = ${altbackground} + ALTFOREGROUND = ${altforeground} + ACCENT = ${accent} + + BLACK = ${color0} + RED = ${color1} + GREEN = ${color2} + YELLOW = ${color3} + BLUE = ${color4} + MAGENTA = ${color5} + CYAN = ${color6} + WHITE = ${color7} + ALTBLACK = ${color8} + ALTRED = ${color9} + ALTGREEN = ${color10} + ALTYELLOW = ${color11} + ALTBLUE = ${color12} + ALTMAGENTA = ${color13} + ALTCYAN = ${color14} + ALTWHITE = ${color15} + EOF +} + +# Rofi -------------------------------------- +apply_rofi() { + # modify rofi scripts + sed -i -e "s/STYLE=.*/STYLE=\"$THEME\"/g" \ + ${PATH_BSPWM}/scripts/rofi_askpass \ + ${PATH_BSPWM}/scripts/rofi_asroot \ + ${PATH_BSPWM}/scripts/rofi_launcher \ + ${PATH_BSPWM}/scripts/rofi_music \ + ${PATH_BSPWM}/scripts/rofi_powermenu \ + ${PATH_BSPWM}/scripts/rofi_runner \ + ${PATH_BSPWM}/scripts/rofi_screenshot \ + ${PATH_BSPWM}/scripts/rofi_themes \ + ${PATH_BSPWM}/scripts/rofi_windows + + # apply default theme fonts + sed -i -e "s/font:.*/font: \"$rofi_font\";/g" ${PATH_ROFI}/shared/fonts.rasi + + # rewrite colors file + cat > ${PATH_ROFI}/shared/colors.rasi <<- EOF + * { + background: ${background}; + background-alt: ${altbackground}; + foreground: ${foreground}; + selected: ${accent}; + active: ${color2}; + urgent: ${color1}; + } + EOF + + # modify icon theme + if [[ -f "$PATH_CONF"/rofi/config.rasi ]]; then + sed -i -e "s/icon-theme:.*/icon-theme: \"$rofi_icon\";/g" ${PATH_CONF}/rofi/config.rasi + fi +} + +# Network Menu ------------------------------ +apply_netmenu() { + if [[ -f "$PATH_CONF"/networkmanager-dmenu/nmd.ini ]]; then + sed -i -e "s#dmenu_command = .*#dmenu_command = rofi -dmenu -theme $PATH_ROFI/networkmenu.rasi#g" ${PATH_CONF}/networkmanager-dmenu/nmd.ini + fi +} + +# Terminal ---------------------------------- +apply_terminal() { + # alacritty : fonts + sed -i ${PATH_TERM}/fonts.yml \ + -e "s/family: .*/family: \"$terminal_font_name\"/g" \ + -e "s/size: .*/size: $terminal_font_size/g" + + # alacritty : colors + cat > ${PATH_TERM}/colors.yml <<- _EOF_ + ## Colors configuration + colors: + # Default colors + primary: + background: '${background}' + foreground: '${foreground}' + + # Normal colors + normal: + black: '${color0}' + red: '${color1}' + green: '${color2}' + yellow: '${color3}' + blue: '${color4}' + magenta: '${color5}' + cyan: '${color6}' + white: '${color7}' + + # Bright colors + bright: + black: '${color8}' + red: '${color9}' + green: '${color10}' + yellow: '${color11}' + blue: '${color12}' + magenta: '${color13}' + cyan: '${color14}' + white: '${color15}' + _EOF_ +} + +# Geany ------------------------------------- +apply_geany() { + sed -i ${PATH_GEANY}/geany.conf \ + -e "s/color_scheme=.*/color_scheme=$geany_colors/g" \ + -e "s/editor_font=.*/editor_font=$geany_font/g" +} + +# Appearance -------------------------------- +apply_appearance() { + XFILE="$PATH_BSPWM/xsettingsd" + GTK2FILE="$HOME/.gtkrc-2.0" + GTK3FILE="$PATH_CONF/gtk-3.0/settings.ini" + + # apply gtk theme, icons, cursor & fonts + if [[ `pidof xsettingsd` ]]; then + sed -i -e "s|Net/ThemeName .*|Net/ThemeName \"$gtk_theme\"|g" ${XFILE} + sed -i -e "s|Net/IconThemeName .*|Net/IconThemeName \"$icon_theme\"|g" ${XFILE} + sed -i -e "s|Gtk/CursorThemeName .*|Gtk/CursorThemeName \"$cursor_theme\"|g" ${XFILE} + else + sed -i -e "s/gtk-font-name=.*/gtk-font-name=\"$gtk_font\"/g" ${GTK2FILE} + sed -i -e "s/gtk-theme-name=.*/gtk-theme-name=\"$gtk_theme\"/g" ${GTK2FILE} + sed -i -e "s/gtk-icon-theme-name=.*/gtk-icon-theme-name=\"$icon_theme\"/g" ${GTK2FILE} + sed -i -e "s/gtk-cursor-theme-name=.*/gtk-cursor-theme-name=\"$cursor_theme\"/g" ${GTK2FILE} + + sed -i -e "s/gtk-font-name=.*/gtk-font-name=$gtk_font/g" ${GTK3FILE} + sed -i -e "s/gtk-theme-name=.*/gtk-theme-name=$gtk_theme/g" ${GTK3FILE} + sed -i -e "s/gtk-icon-theme-name=.*/gtk-icon-theme-name=$icon_theme/g" ${GTK3FILE} + sed -i -e "s/gtk-cursor-theme-name=.*/gtk-cursor-theme-name=$cursor_theme/g" ${GTK3FILE} + fi + + # inherit cursor theme + if [[ -f "$HOME"/.icons/default/index.theme ]]; then + sed -i -e "s/Inherits=.*/Inherits=$cursor_theme/g" "$HOME"/.icons/default/index.theme + fi +} + +# Dunst ------------------------------------- +apply_dunst() { + # modify dunst config + sed -i ${PATH_BSPWM}/dunstrc \ + -e "s/width = .*/width = $dunst_width/g" \ + -e "s/height = .*/height = $dunst_height/g" \ + -e "s/offset = .*/offset = $dunst_offset/g" \ + -e "s/origin = .*/origin = $dunst_origin/g" \ + -e "s/font = .*/font = $dunst_font/g" \ + -e "s/frame_width = .*/frame_width = $dunst_border/g" \ + -e "s/separator_height = .*/separator_height = $dunst_separator/g" \ + -e "s/line_height = .*/line_height = $dunst_separator/g" + + # modify colors + sed -i '/urgency_low/Q' ${PATH_BSPWM}/dunstrc + cat >> ${PATH_BSPWM}/dunstrc <<- _EOF_ + [urgency_low] + timeout = 2 + background = "${background}" + foreground = "${foreground}" + frame_color = "${altbackground}" + + [urgency_normal] + timeout = 5 + background = "${background}" + foreground = "${foreground}" + frame_color = "${altbackground}" + + [urgency_critical] + timeout = 0 + background = "${background}" + foreground = "${color1}" + frame_color = "${color1}" + _EOF_ +} + +# Compositor -------------------------------- +apply_compositor() { + picom_cfg="$PATH_BSPWM/picom.conf" + + # modify picom config + sed -i "$picom_cfg" \ + -e "s/backend = .*/backend = \"$picom_backend\";/g" \ + -e "s/corner-radius = .*/corner-radius = $picom_corner;/g" \ + -e "s/shadow-radius = .*/shadow-radius = $picom_shadow_r;/g" \ + -e "s/shadow-opacity = .*/shadow-opacity = $picom_shadow_o;/g" \ + -e "s/shadow-offset-x = .*/shadow-offset-x = $picom_shadow_x;/g" \ + -e "s/shadow-offset-y = .*/shadow-offset-y = $picom_shadow_y;/g" \ + -e "s/method = .*/method = \"$picom_blur_method\";/g" \ + -e "s/strength = .*/strength = $picom_blur_strength;/g" +} + +# BSPWM ------------------------------------- +apply_bspwm() { + # modify bspwmrc + sed -i ${PATH_BSPWM}/bspwmrc \ + -e "s/BSPWM_FBC=.*/BSPWM_FBC='$bspwm_fbc'/g" \ + -e "s/BSPWM_NBC=.*/BSPWM_NBC='$bspwm_nbc'/g" \ + -e "s/BSPWM_ABC=.*/BSPWM_ABC='$bspwm_abc'/g" \ + -e "s/BSPWM_PFC=.*/BSPWM_PFC='$bspwm_pfc'/g" \ + -e "s/BSPWM_BORDER=.*/BSPWM_BORDER='$bspwm_border'/g" \ + -e "s/BSPWM_GAP=.*/BSPWM_GAP='$bspwm_gap'/g" \ + -e "s/BSPWM_SRATIO=.*/BSPWM_SRATIO='$bspwm_sratio'/g" + + # reload bspwm + bspc wm -r +} + +# Create Theme File ------------------------- +create_file() { + theme_file="$PATH_BSPWM/themes/.current" + if [[ ! -f "$theme_file" ]]; then + touch ${theme_file} + fi + echo "$THEME" > ${theme_file} +} + +# Notify User ------------------------------- +notify_user() { + dunstify -u normal -h string:x-dunst-stack-tag:applytheme -i /usr/share/archcraft/icons/dunst/themes.png "Applying Style : $THEME" +} + +## Execute Script --------------------------- +notify_user +create_file +apply_wallpaper +apply_polybar +apply_rofi +apply_netmenu +apply_terminal +apply_geany +apply_appearance +apply_dunst +apply_compositor +apply_bspwm diff --git a/dot-config/bspwm/themes/slime/polybar/.module b/dot-config/bspwm/themes/slime/polybar/.module new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/dot-config/bspwm/themes/slime/polybar/.module diff --git a/dot-config/bspwm/themes/slime/polybar/bars.ini b/dot-config/bspwm/themes/slime/polybar/bars.ini new file mode 100644 index 00000000..cf0439a7 --- /dev/null +++ b/dot-config/bspwm/themes/slime/polybar/bars.ini @@ -0,0 +1,645 @@ +## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/volume-bar] +type = internal/pulseaudio + +; Sink to be used, if it exists (find using `pacmd list-sinks`, name field) +; If not, uses default sink +sink = alsa_output.pci-0000_12_00.3.analog-stereo + +; Use PA_VOLUME_UI_MAX (~153%) if true, or PA_VOLUME_NORM (100%) if false +; Default: true +use-ui-max = false + +; Interval for volume increase/decrease (in percent points) +; Default: 5 +interval = 5 + +; Available tags: +; <label-volume> (default) +; <ramp-volume> +; <bar-volume> +format-volume = <label-volume> <bar-volume> + +; Available tags: +; <label-muted> (default) +; <ramp-volume> +; <bar-volume> +format-muted = <label-muted> + +; Available tokens: +; %percentage% (default) +label-volume = 墳 +label-volume-foreground = ${color.FOREGROUND} + +; Available tokens: +; %percentage% (default +format-muted-prefix = 婢 +label-muted = " MUTE" +label-muted-foreground = ${color.RED} + +; Only applies if <ramp-volume> is used +ramp-volume-0 = 奄 +ramp-volume-1 = 奄 +ramp-volume-2 = 奄 +ramp-volume-3 = 奔 +ramp-volume-4 = 奔 +ramp-volume-5 = 奔 +ramp-volume-6 = 墳 +ramp-volume-7 = 墳 +ramp-volume-8 = 墳 +ramp-volume-9 = 墳 + +; Only applies if <bar-volume> is used +bar-volume-width = 10 +bar-volume-gradient = false + +bar-volume-indicator = +bar-volume-indicator-foreground = ${color.ACCENT} +bar-volume-indicator-font = 2 + +bar-volume-fill = +bar-volume-foreground-0 = ${color.GREEN} +bar-volume-foreground-1 = ${color.GREEN} +bar-volume-foreground-2 = ${color.YELLOW} +bar-volume-foreground-3 = ${color.RED} +bar-volume-fill-font = 2 + +bar-volume-empty = +bar-volume-empty-foreground = ${color.ALTBACKGROUND} +bar-volume-empty-font = 2 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/bna-bar] +type = custom/text + +content = " NA" +content-prefix = +content-prefix-foreground = ${color.FOREGROUND} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/backlight-bar] +type = internal/xbacklight + +; Use the following command to list available cards: +; $ ls -1 /sys/class/backlight/ +card = intel_backlight + +; Available tags: +; <label> (default) +; <ramp> +; <bar> +format = <label> <bar> + +; Available tokens: +; %percentage% (default) +label = +label-foreground = ${color.FOREGROUND} + +; Only applies if <ramp> is used + +ramp-0 = +ramp-1 = +ramp-2 = +ramp-3 = +ramp-4 = +ramp-5 = +ramp-6 = +ramp-7 = +ramp-8 = +ramp-9 = + +;; Other Icons +; + +; Only applies if <bar> is used +bar-width = 10 +bar-gradient = false + +bar-indicator = +bar-indicator-foreground = ${color.ACCENT} +bar-indicator-font = 2 + +bar-fill = +bar-foreground-0 = ${color.GREEN} +bar-foreground-1 = ${color.GREEN} +bar-foreground-2 = ${color.GREEN} +bar-foreground-3 = ${color.GREEN} +bar-foreground-4 = ${color.GREEN} +bar-foreground-5 = ${color.YELLOW} +bar-foreground-6 = ${color.YELLOW} +bar-foreground-7 = ${color.YELLOW} +bar-foreground-8 = ${color.RED} +bar-foreground-9 = ${color.RED} +bar-fill-font = 2 + +bar-empty = +bar-empty-foreground = ${color.ALTBACKGROUND} +bar-empty-font = 2 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/brightness-bar] +type = internal/backlight + +; Use the following command to list available cards: +; $ ls -1 /sys/class/backlight/ +card = ${system.sys_graphics_card} + +enable-scroll = true + +; Available tags: +; <label> (default) +; <ramp> +; <bar> +format = <label> <bar> + +; Available tokens: +; %percentage% (default) +label = +label-foreground = ${color.FOREGROUND} + +; Only applies if <ramp> is used + +ramp-0 = +ramp-1 = +ramp-2 = +ramp-3 = +ramp-4 = +ramp-5 = +ramp-6 = +ramp-7 = +ramp-8 = +ramp-9 = + +;; Other Icons +; + +; Only applies if <bar> is used +bar-width = 10 +bar-gradient = false + +bar-indicator = +bar-indicator-foreground = ${color.ACCENT} +bar-indicator-font = 2 + +bar-fill = +bar-foreground-0 = ${color.GREEN} +bar-foreground-1 = ${color.GREEN} +bar-foreground-2 = ${color.GREEN} +bar-foreground-3 = ${color.GREEN} +bar-foreground-4 = ${color.GREEN} +bar-foreground-5 = ${color.YELLOW} +bar-foreground-6 = ${color.YELLOW} +bar-foreground-7 = ${color.YELLOW} +bar-foreground-8 = ${color.RED} +bar-foreground-9 = ${color.RED} +bar-fill-font = 2 + +bar-empty = +bar-empty-foreground = ${color.ALTBACKGROUND} +bar-empty-font = 2 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/battery_bar] +type = internal/battery + +; This is useful in case the battery never reports 100% charge +full-at = 99 + +; Use the following command to list batteries and adapters: +; $ ls -1 /sys/class/power_supply/ +battery = ${system.battery} +adapter = ${system.adapter} + +; If an inotify event haven't been reported in this many +; seconds, manually poll for new values. +; +; Needed as a fallback for systems that don't report events +; on sysfs/procfs. +; +; Disable polling by setting the interval to 0. +; +; Default: 5 +poll-interval = 2 + +; see "man date" for details on how to format the time string +; NOTE: if you want to use syntax tags here you need to use %%{...} +; Default: %H:%M:%S +time-format = %H:%M + +; Available tags: +; <label-charging> (default) +; <bar-capacity> +; <ramp-capacity> +; <animation-charging> +format-charging = <bar-capacity> +format-charging-prefix = " " + +; Available tags: +; <label-discharging> (default) +; <bar-capacity> +; <ramp-capacity> +; <animation-discharging> +format-discharging = <bar-capacity> +format-discharging-prefix = " " + +; Available tags: +; <label-full> (default) +; <bar-capacity> +; <ramp-capacity> +format-full = <bar-capacity> <label-full> +format-full-prefix = " " + +; Available tokens: +; %percentage% (default) +; %time% +; %consumption% (shows current charge rate in watts) + +label-charging = %percentage%% + +; Available tokens: +; %percentage% (default) +; %time% +; %consumption% (shows current discharge rate in watts) +label-discharging = %percentage%% + +; Available tokens: +; %percentage% (default) +label-full = %percentage%% + +; Only applies if <bar-capacity> is used +bar-capacity-width = 10 +bar-capacity-gradient = false + +bar-capacity-indicator = +bar-capacity-indicator-foreground = ${color.ACCENT} +bar-capacity-indicator-font = 2 + +bar-capacity-fill = +bar-capacity-foreground-0 = ${color.RED} +bar-capacity-foreground-1 = ${color.RED} +bar-capacity-foreground-2 = ${color.RED} +bar-capacity-foreground-3 = ${color.YELLOW} +bar-capacity-foreground-4 = ${color.YELLOW} +bar-capacity-foreground-5 = ${color.YELLOW} +bar-capacity-foreground-6 = ${color.YELLOW} +bar-capacity-foreground-7 = ${color.GREEN} +bar-capacity-foreground-8 = ${color.GREEN} +bar-capacity-fill-font = 2 + +bar-capacity-empty = +bar-capacity-empty-foreground = ${color.ALTBACKGROUND} +bar-capacity-empty-font = 2 + +; Only applies if <ramp-capacity> is used +ramp-capacity-0 = +ramp-capacity-1 = +ramp-capacity-2 = +ramp-capacity-3 = +ramp-capacity-4 = +ramp-capacity-5 = +ramp-capacity-6 = +ramp-capacity-7 = +ramp-capacity-8 = +ramp-capacity-9 = + +; Only applies if <animation-charging> is used +animation-charging-0 = +animation-charging-1 = +animation-charging-2 = +animation-charging-3 = +animation-charging-4 = +animation-charging-5 = +animation-charging-6 = +animation-charging-7 = +animation-charging-8 = + +; Framerate in milliseconds +animation-charging-framerate = 750 + +; Only applies if <animation-discharging> is used +;;animation-discharging-0 = +;;animation-discharging-1 = +;;animation-discharging-2 = +;;animation-discharging-3 = +;;animation-discharging-4 = +;;animation-discharging-5 = +;;animation-discharging-6 = +;;animation-discharging-7 = +;;animation-discharging-8 = + +; Framerate in milliseconds +;animation-discharging-framerate = 500 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/cpu_bar] +type = internal/cpu + +; Seconds to sleep between updates +; Default: 1 +interval = 0.5 + +; Available tags: +; <label> (default) +; <bar-load> +; <ramp-load> +; <ramp-coreload> +;;format = <label> <ramp-coreload> +format = <bar-load> <label> +format-prefix = " " + +; Available tokens: +; %percentage% (default) - total cpu load averaged over all cores +; %percentage-sum% - Cumulative load on all cores +; %percentage-cores% - load percentage for each core +; %percentage-core[1-9]% - load percentage for specific core +label = "%percentage%%" + +; Only applies if <bar-load> is used +bar-load-width = 10 +bar-load-gradient = false + +bar-load-indicator = +bar-load-indicator-foreground = ${color.ACCENT} +bar-load-indicator-font = 2 + +bar-load-fill = +bar-load-foreground-0 = ${color.GREEN} +bar-load-foreground-1 = ${color.GREEN} +bar-load-foreground-2 = ${color.GREEN} +bar-load-foreground-3 = ${color.YELLOW} +bar-load-foreground-4 = ${color.YELLOW} +bar-load-foreground-5 = ${color.YELLOW} +bar-load-foreground-6 = ${color.RED} +bar-load-foreground-7 = ${color.RED} +bar-load-foreground-8 = ${color.RED} +bar-load-fill-font = 2 + +bar-load-empty = +bar-load-empty-foreground = ${color.ALTBACKGROUND} +bar-load-empty-font = 2 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/filesystem_bar] +type = internal/fs + +; Mountpoints to display +mount-0 = / +;;mount-1 = /home +;;mount-2 = /var + +; Seconds to sleep between updates +; Default: 30 +interval = 10 + +; Display fixed precision values +; Default: false +fixed-values = false + +; Spacing between entries +; Default: 2 +;;spacing = 4 + +; Available tags: +; <label-mounted> (default) +; <bar-free> +; <bar-used> +; <ramp-capacity> +format-mounted = <bar-used> <label-mounted> +format-mounted-prefix = " " + +; Available tags: +; <label-unmounted> (default) +;;format-unmounted = <label-unmounted> +;;format-unmounted-prefix = + +; Available tokens: +; %mountpoint% +; %type% +; %fsname% +; %percentage_free% +; %percentage_used% +; %total% +; %free% +; %used% +; Default: %mountpoint% %percentage_free%% +label-mounted = %used%/%total% + +; Available tokens: +; %mountpoint% +; Default: %mountpoint% is not mounted +;;label-unmounted = %mountpoint%: not mounted + +; Only applies if <bar-used> is used +bar-used-width = 10 +bar-used-gradient = false + +bar-used-indicator = +bar-used-indicator-foreground = ${color.ACCENT} +bar-used-indicator-font = 2 + +bar-used-fill = +bar-used-foreground-0 = ${color.GREEN} +bar-used-foreground-1 = ${color.GREEN} +bar-used-foreground-2 = ${color.GREEN} +bar-used-foreground-3 = ${color.GREEN} +bar-used-foreground-4 = ${color.GREEN} +bar-used-foreground-5 = ${color.YELLOW} +bar-used-foreground-6 = ${color.YELLOW} +bar-used-foreground-7 = ${color.RED} +bar-used-foreground-8 = ${color.RED} +bar-used-fill-font = 2 + +bar-used-empty = +bar-used-empty-foreground = ${color.ALTBACKGROUND} +bar-used-empty-font = 2 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/memory_bar] +type = internal/memory + +; Seconds to sleep between updates +; Default: 1 +interval = 2 + +; Available tags: +; <label> (default) +; <bar-used> +; <bar-free> +; <ramp-used> +; <ramp-free> +; <bar-swap-used> +; <bar-swap-free> +; <ramp-swap-used> +; <ramp-swap-free> +format = <bar-used> <label> +format-prefix = " " + +; Available tokens: +; %percentage_used% (default) +; %percentage_free% +; %gb_used% +; %gb_free% +; %gb_total% +; %mb_used% +; %mb_free% +; %mb_total% +; %percentage_swap_used% +; %percentage_swap_free% +; %mb_swap_total% +; %mb_swap_free% +; %mb_swap_used% +; %gb_swap_total% +; %gb_swap_free% +; %gb_swap_used% + +label = "%mb_used%" + +; Only applies if <bar-used> is used +bar-used-width = 10 +bar-used-gradient = false + +bar-used-indicator = +bar-used-indicator-foreground = ${color.ACCENT} +bar-used-indicator-font = 2 + +bar-used-fill = +bar-used-foreground-0 = ${color.GREEN} +bar-used-foreground-1 = ${color.GREEN} +bar-used-foreground-2 = ${color.GREEN} +bar-used-foreground-3 = ${color.YELLOW} +bar-used-foreground-4 = ${color.YELLOW} +bar-used-foreground-5 = ${color.YELLOW} +bar-used-foreground-6 = ${color.RED} +bar-used-foreground-7 = ${color.RED} +bar-used-foreground-8 = ${color.RED} +bar-used-fill-font = 2 + +bar-used-empty = +bar-used-empty-foreground = ${color.ALTBACKGROUND} +bar-used-empty-font = 2 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/mpd_bar] +type = internal/mpd + +; Host where mpd is running (either ip or domain name) +; Can also be the full path to a unix socket where mpd is running. +;;host = 127.0.0.1 +;;port = 6600 +;;password = mysecretpassword + +; Seconds to sleep between progressbar/song timer sync +; Default: 1 +interval = 1 + +; Available tags: +; <label-song> (default) +; <label-time> +; <bar-progress> +; <toggle> - gets replaced with <icon-(pause|play)> +; <toggle-stop> - gets replaced with <icon-(stop|play)> +; <icon-random> +; <icon-repeat> +; <icon-repeatone> (deprecated) +; <icon-single> - Toggle playing only a single song. Replaces <icon-repeatone> +; <icon-consume> +; <icon-prev> +; <icon-stop> +; <icon-play> +; <icon-pause> +; <icon-next> +; <icon-seekb> +; <icon-seekf> +format-online = <label-song> <bar-progress> <label-time> + +;format-playing = ${self.format-online} +;format-paused = ${self.format-online} +;format-stopped = ${self.format-online} + +; Available tags: +; <label-offline> +;format-offline = <label-offline> + +; Available tokens: +; %artist% +; %album-artist% +; %album% +; %date% +; %title% +; Default: %artist% - %title% +label-song = "%title%" +label-song-maxlen = 25 +label-song-ellipsis = true + +; Available tokens: +; %elapsed% +; %total% +; Default: %elapsed% / %total% +;;abel-time = %elapsed% / %total% + +; Available tokens: +; None +label-offline = "mpd is offline" + +; Only applies if <icon-X> is used +icon-play = +icon-pause = +icon-stop = +icon-prev = +icon-next = +icon-seekb = ⏪ +icon-seekf = ⏩ +icon-random = 🔀 +icon-repeat = 🔁 +icon-repeatone = 🔂 +icon-single = 🔂 +icon-consume = ✀ + +; Used to display the state of random/repeat/repeatone/single +; Only applies if <icon-[random|repeat|repeatone|single]> is used +;;toggle-on-foreground = #ff +;;toggle-off-foreground = #55 + +; Only applies if <bar-progress> is used +bar-progress-width = 10 +bar-progress-gradient = true + +bar-progress-indicator = +bar-progress-indicator-foreground = ${color.ACCENT} +bar-progress-indicator-font = 2 + +bar-progress-fill = +bar-progress-foreground-0 = ${color.GREEN} +bar-progress-foreground-1 = ${color.GREEN} +bar-progress-foreground-2 = ${color.GREEN} +bar-progress-foreground-3 = ${color.YELLOW} +bar-progress-foreground-4 = ${color.YELLOW} +bar-progress-foreground-5 = ${color.YELLOW} +bar-progress-foreground-6 = ${color.RED} +bar-progress-foreground-7 = ${color.RED} +bar-progress-foreground-8 = ${color.RED} +bar-progress-fill-font = 2 + +bar-progress-empty = +bar-progress-empty-foreground = ${color.ALTBACKGROUND} +bar-progress-empty-font = 2 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ +;; __________ ______ +;; / ____/ __ \/ ____/ +;; / __/ / / / / /_ +;; / /___/ /_/ / __/ +;; /_____/\____/_/ +;; +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ diff --git a/dot-config/bspwm/themes/slime/polybar/colors.ini b/dot-config/bspwm/themes/slime/polybar/colors.ini new file mode 100644 index 00000000..f0144f93 --- /dev/null +++ b/dot-config/bspwm/themes/slime/polybar/colors.ini @@ -0,0 +1,24 @@ +[color] + +BACKGROUND = #ffffff +FOREGROUND = #383a42 +ALTBACKGROUND = #e6e6e6 +ALTFOREGROUND = #9b9eaa +ACCENT = #0997B3 + +BLACK = #383a42 +RED = #e45649 +GREEN = #50a14f +YELLOW = #c18401 +BLUE = #0184bc +MAGENTA = #a626a4 +CYAN = #0997b3 +WHITE = #909090 +ALTBLACK = #383a42 +ALTRED = #e45649 +ALTGREEN = #50a14f +ALTYELLOW = #c18401 +ALTBLUE = #0184bc +ALTMAGENTA = #a626a4 +ALTCYAN = #0997b3 +ALTWHITE = #909090 diff --git a/dot-config/bspwm/themes/slime/polybar/config.ini b/dot-config/bspwm/themes/slime/polybar/config.ini new file mode 100644 index 00000000..7d58dd31 --- /dev/null +++ b/dot-config/bspwm/themes/slime/polybar/config.ini @@ -0,0 +1,319 @@ +## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +;; Global WM Settings + +[global/wm] +; Adjust the _NET_WM_STRUT_PARTIAL top value +; Used for top aligned bars +margin-bottom = 0 + +; Adjust the _NET_WM_STRUT_PARTIAL bottom value +; Used for bottom aligned bars +margin-top = 0 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +;; File Inclusion +; include an external file, like module file, etc. + +include-file = ../../system.ini +include-file = ./colors.ini +include-file = ./modules.ini +include-file = ./bars.ini + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +;; Bar Settings + +[bar/main] +; Use either of the following command to list available outputs: +; If unspecified, the application will pick the first one it finds. +; $ polybar -m | cut -d ':' -f 1 +; $ xrandr -q | grep " connected" | cut -d ' ' -f1 +monitor = ${env:MONITOR:} + +; Use the specified monitor as a fallback if the main one is not found. +monitor-fallback = + +; Require the monitor to be in connected state +; XRandR sometimes reports my monitor as being disconnected (when in use) +monitor-strict = false + +; Tell the Window Manager not to configure the window. +; Use this to detach the bar if your WM is locking its size/position. +override-redirect = false + +; Put the bar at the bottom of the screen +bottom = false + +; Prefer fixed center position for the `modules-center` block +; When false, the center position will be based on the size of the other blocks. +fixed-center = true + +; Dimension defined as pixel value (e.g. 35) or percentage (e.g. 50%), +; the percentage can optionally be extended with a pixel offset like so: +; 50%:-10, this will result in a width or height of 50% minus 10 pixels +width = 100% +height = 30 + +; Offset defined as pixel value (e.g. 35) or percentage (e.g. 50%) +; the percentage can optionally be extended with a pixel offset like so: +; 50%:-10, this will result in an offset in the x or y direction +; of 50% minus 10 pixels +offset-x = 0 +offset-y = 0 + +; Background ARGB color (e.g. #f00, #ff992a, #ddff1023) +background = ${color.BACKGROUND} + +; Foreground ARGB color (e.g. #f00, #ff992a, #ddff1023) +foreground = ${color.FOREGROUND} + +; Background gradient (vertical steps) +; background-[0-9]+ = #aarrggbb +;;background-0 = + +; Value used for drawing rounded corners +; Note: This shouldn't be used together with border-size because the border +; doesn't get rounded +; Individual top/bottom values can be defined using: +; radius-{top,bottom} +radius-top = 0.0 +radius-bottom = 0.0 + +; Under-/overline pixel size and argb color +; Individual values can be defined using: +; {overline,underline}-size +; {overline,underline}-color +line-size = 0 +line-color = ${color.ACCENT} + +; Values applied to all borders +; Individual side values can be defined using: +; border-{left,top,right,bottom}-size +; border-{left,top,right,bottom}-color +; The top and bottom borders are added to the bar height, so the effective +; window height is: +; height + border-top-size + border-bottom-size +; Meanwhile the effective window width is defined entirely by the width key and +; the border is placed withing this area. So you effectively only have the +; following horizontal space on the bar: +; width - border-right-size - border-left-size +border-bottom-size = 0 +border-color = ${color.ACCENT} + +; Number of spaces to add at the beginning/end of the bar +; Individual side values can be defined using: +; padding-{left,right} +padding = 2 + +; Number of spaces to add before/after each module +; Individual side values can be defined using: +; module-margin-{left,right} +module-margin-left = 1 +module-margin-right = 1 + +; Fonts are defined using <font-name>;<vertical-offset> +; Font names are specified using a fontconfig pattern. +; font-0 = "Iosevka Nerd Font:size=10;3" +; font-1 = MaterialIcons:size=10 +; font-2 = Termsynu:size=8;-1 +; font-3 = FontAwesome:size=10 +; See the Fonts wiki page for more details + +font-0 = "Iosevka Nerd Font:size=10;3" +font-1 = "waffle:size=12;2" + +; Modules are added to one of the available blocks +; modules-left = cpu ram +; modules-center = xwindow xbrightness +; modules-right = ipc clock + +;; Available modules +;; +;alsa brightness battery +;bspwm cpu date +;filesystem github i3 +;subscriber demo memory +;menu-apps mpd wired-network +;wireless-network network pulseaudio +;name_you_want temperature my-text-label +;brightness keyboard title workspaces +;; +;; User modules +;checknetwork updates window_switch launcher powermenu sysmenu menu +;; +;; Bars +;cpu_bar memory_bar filesystem_bar mpd_bar +;volume brightness battery_bar + +modules-left = mod bspwm sep2 cpu used-memory filesystem +modules-center = mpd sep date +modules-right = battery network sep volume-bar bna-bar + +; The separator will be inserted between the output of each module +separator = + +; This value is used to add extra spacing between elements +; @deprecated: This parameter will be removed in an upcoming version +spacing = 0 + +; Opacity value between 0.0 and 1.0 used on fade in/out +dim-value = 1.0 + +; Value to be used to set the WM_NAME atom +; If the value is empty or undefined, the atom value +; will be created from the following template: polybar-[BAR]_[MONITOR] +; NOTE: The placeholders are not available for custom values +wm-name = bspwm + +; Locale used to localize various module data (e.g. date) +; Expects a valid libc locale, for example: sv_SE.UTF-8 +locale = + +; Position of the system tray window +; If empty or undefined, tray support will be disabled +; NOTE: A center aligned tray will cover center aligned modules +; +; Available positions: +; left +; center +; right +; none +tray-position = right + +; If true, the bar will not shift its +; contents when the tray changes +tray-detached = false + +; Tray icon max size +tray-maxsize = 16 + +; DEPRECATED! Since 3.3.0 the tray always uses pseudo-transparency +; Enable pseudo transparency +; Will automatically be enabled if a fully transparent +; background color is defined using `tray-background` +; tray-transparent = false + +; Background color for the tray container +; ARGB color (e.g. #f00, #ff992a, #ddff1023) +; By default the tray container will use the bar +; background color. +tray-background = ${color.ALTBACKGROUND} + +; Tray offset defined as pixel value (e.g. 35) or percentage (e.g. 50%) +tray-offset-x = 0 +tray-offset-y = 0 + +; Pad the sides of each tray icon +tray-padding = 2 + +; Scale factor for tray clients +tray-scale = 1.0 + +; Restack the bar window and put it above the +; selected window manager's root +; +; Fixes the issue where the bar is being drawn +; on top of fullscreen window's +; +; Currently supported WM's: +; bspwm +; i3 (requires: `override-redirect = true`) +wm-restack = bspwm + +; Set a DPI values used when rendering text +; This only affects scalable fonts +; dpi = + +; Enable support for inter-process messaging +; See the Messaging wiki page for more details. +enable-ipc = true + +; Fallback click handlers that will be called if +; there's no matching module handler found. +click-left = +click-middle = +click-right = +scroll-up = bspc desktop -f prev.local +scroll-down = bspc desktop -f next.local +double-click-left = +double-click-middle = +double-click-right = + +; Requires polybar to be built with xcursor support (xcb-util-cursor) +; Possible values are: +; - default : The default pointer as before, can also be an empty string (default) +; - pointer : Typically in the form of a hand +; - ns-resize : Up and down arrows, can be used to indicate scrolling +cursor-click = +cursor-scroll = + +;; WM Workspace Specific + +; bspwm +;;scroll-up = bspwm-desknext +;;scroll-down = bspwm-deskprev +;;scroll-up = bspc desktop -f prev.local +;;scroll-down = bspc desktop -f next.local + +;i3 +;;scroll-up = i3wm-wsnext +;;scroll-down = i3wm-wsprev +;;scroll-up = i3-msg workspace next_on_output +;;scroll-down = i3-msg workspace prev_on_output + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +;; Application Settings + +[settings] +; The throttle settings lets the eventloop swallow up til X events +; if they happen within Y millisecond after first event was received. +; This is done to prevent flood of update event. +; +; For example if 5 modules emit an update event at the same time, we really +; just care about the last one. But if we wait too long for events to swallow +; the bar would appear sluggish so we continue if timeout +; expires or limit is reached. +throttle-output = 5 +throttle-output-for = 10 + +; Time in milliseconds that the input handler will wait between processing events +;throttle-input-for = 30 + +; Reload upon receiving XCB_RANDR_SCREEN_CHANGE_NOTIFY events +screenchange-reload = false + +; Compositing operators +; @see: https://www.cairographics.org/manual/cairo-cairo-t.html#cairo-operator-t +compositing-background = source +compositing-foreground = over +compositing-overline = over +compositing-underline = over +compositing-border = over + +; Define fallback values used by all module formats +;format-foreground = +;format-background = +;format-underline = +;format-overline = +;format-spacing = +;format-padding = +;format-margin = +;format-offset = + +; Enables pseudo-transparency for the bar +; If set to true the bar can be transparent without a compositor. +pseudo-transparency = false + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ +;; __________ ______ +;; / ____/ __ \/ ____/ +;; / __/ / / / / /_ +;; / /___/ /_/ / __/ +;; /_____/\____/_/ +;; +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ diff --git a/dot-config/bspwm/themes/slime/polybar/launch.sh b/dot-config/bspwm/themes/slime/polybar/launch.sh new file mode 100755 index 00000000..ae47b54c --- /dev/null +++ b/dot-config/bspwm/themes/slime/polybar/launch.sh @@ -0,0 +1,42 @@ +#!/usr/bin/env bash + +## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" +CARD="$(light -L | grep 'backlight' | head -n1 | cut -d'/' -f3)" +INTERFACE="$(ip link | awk '/state UP/ {print $2}' | tr -d :)" +RFILE="$DIR/.module" + +# Fix backlight and network modules +fix_modules() { + if [[ -z "$CARD" ]]; then + sed -i -e 's/backlight/bna/g' "$DIR"/config.ini + elif [[ "$CARD" != *"intel_"* ]]; then + sed -i -e 's/backlight/brightness/g' "$DIR"/config.ini + fi + + if [[ "$INTERFACE" == e* ]]; then + sed -i -e 's/network/ethernet/g' "$DIR"/config.ini + fi +} + +# Launch the bar +launch_bar() { + # Terminate already running bar instances + killall -q polybar + + # Wait until the processes have been shut down + while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done + + # Launch the bar + for mon in $(polybar --list-monitors | cut -d":" -f1); do + MONITOR=$mon polybar -q main -c "$DIR"/config.ini & + done +} + +# Execute functions +if [[ ! -f "$RFILE" ]]; then + fix_modules + touch "$RFILE" +fi +launch_bar diff --git a/dot-config/bspwm/themes/slime/polybar/modules.ini b/dot-config/bspwm/themes/slime/polybar/modules.ini new file mode 100644 index 00000000..c8674ffc --- /dev/null +++ b/dot-config/bspwm/themes/slime/polybar/modules.ini @@ -0,0 +1,1095 @@ +## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/bspwm] +type = internal/bspwm + +pin-workspaces = true +inline-mode = false + +enable-click = true +enable-scroll = true +reverse-scroll = true + +fuzzy-match = true + +; ws-icon-[0-9]+ = label;icon +; Note that the label needs to correspond with the bspwm workspace name +ws-icon-0 = 1; +ws-icon-1 = 2; +ws-icon-2 = 3; +ws-icon-3 = 4; +ws-icon-4 = 5; +ws-icon-5 = 6; +ws-icon-6 = 7; +ws-icon-7 = 8; +ws-icon-default = + +format = <label-state> +format-font = 1 + +label-monitor = %name% + +; If any values for label-dimmed-N are defined, the workspace/mode +; colors will get overridden with those values if the monitor is out of focus +; To only override workspaces in a specific state, use: +; label-dimmed-focused +; label-dimmed-occupied +; label-dimmed-urgent +; label-dimmed-empty +;label-dimmed-foreground = ${color.FOREGROUND} +;label-dimmed-underline = ${color.YELLOW} +;label-dimmed-focused-background = ${color.BACKGROUND} + +label-focused = %name% +label-focused-foreground = ${color.RED} +label-focused-underline = ${color.RED} +label-focused-padding = 1 + +label-occupied = %name% +label-occupied-foreground = ${color.ACCENT} +;label-occupied-underline = ${color.ACCENT} +label-occupied-padding = 1 + +label-urgent = %name% +label-urgent-foreground = ${color.GREEN} +label-urgent-underline = ${color.GREEN} +label-urgent-padding = 1 + +label-empty = %name% +label-empty-foreground = ${color.FOREGROUND} +label-empty-padding = 1 + +; Separator in between workspaces +label-separator = "" +label-separator-padding = 0 +label-separator-foreground = ${color.ALTBACKGROUND} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/mod] +type = internal/bspwm + +format = [<label-mode>] +format-foreground = ${color.YELLOW} +format-padding = 0 + +label-monocle = "Monocle" +label-tiled = "Tiled" + +label-floating = ", Float" +label-pseudotiled = ", Pseudo" +label-fullscreen = ", Full" + +label-locked = " | Locked" +label-sticky = " | Sticky" +label-private = " | Private" + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/alsa] +type = internal/alsa + +; Soundcard to be used +; Usually in the format hw:# where # is the card number +; You can find the different card numbers in `/proc/asound/cards` +;;master-soundcard = default +;;speaker-soundcard = default +;;headphone-soundcard = default + +; Name of the master, speaker and headphone mixers +; Use the following command to list available mixer controls: +; $ amixer scontrols | sed -nr "s/.*'([[:alnum:]]+)'.*/\1/p" +; If master, speaker or headphone-soundcard isn't the default, +; use `amixer -c # scontrols` instead where # is the number +; of the master, speaker or headphone soundcard respectively +; +; Default: Master +;;master-mixer = Master + +; Optionally define speaker and headphone mixers +; Default: none +;;speaker-mixer = Speaker +; Default: none +;;headphone-mixer = Headphone + +; NOTE: This is required if headphone_mixer is defined +; Use the following command to list available device controls +; $ amixer controls | sed -r "/CARD/\!d; s/.*=([0-9]+).*name='([^']+)'.*/printf '%3.0f: %s\n' '\1' '\2'/e" | sort +; You may also need to use `amixer -c # controls` as above for the mixer names +; Default: none +;;headphone-id = 9 + +; Use volume mapping (similar to amixer -M and alsamixer), where the increase in volume is linear to the ear +; Default: false +;;mapped = true + +; Interval for volume increase/decrease (in percent points) +; Default: 5 +;;interval = 5 + +; Available tags: +; <label-volume> (default) +; <ramp-volume> +; <bar-volume> +format-volume = <ramp-volume> <label-volume> + +; Available tags: +; <label-muted> (default) +; <ramp-volume> +; <bar-volume> +;format-muted = <label-muted> + +; Available tokens: +; %percentage% (default) +label-volume = %percentage%% + +; Available tokens: +; %percentage% (default +format-muted-prefix = 婢 +format-muted-prefix-foreground = ${color.RED} +label-muted = " Mute" +label-muted-foreground = ${color.ALTFOREGROUND} + +; Only applies if <ramp-volume> is used +ramp-volume-0 = 奄 +ramp-volume-1 = 奄 +ramp-volume-2 = 奄 +ramp-volume-3 = 奔 +ramp-volume-4 = 奔 +ramp-volume-5 = 奔 +ramp-volume-6 = 墳 +ramp-volume-7 = 墳 +ramp-volume-8 = 墳 +ramp-volume-9 = 墳 +ramp-volume-foreground = ${color.RED} + +; If defined, it will replace <ramp-volume> when +; headphones are plugged in to `headphone_control_numid` +; If undefined, <ramp-volume> will be used for both +; Only applies if <ramp-volume> is used +ramp-headphones-0 = +ramp-headphones-1 = + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/bna] +type = custom/text + +content = " NA" +content-prefix = +content-prefix-foreground = ${color.RED} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/backlight] +type = internal/xbacklight + +; Use the following command to list available cards: +; $ ls -1 /sys/class/backlight/ +card = intel_backlight + +; Available tags: +; <label> (default) +; <ramp> +; <bar> +format = <ramp> <label> + +; Available tokens: +; %percentage% (default) +label = %percentage%% + +; Only applies if <ramp> is used + +ramp-0 = +ramp-1 = +ramp-2 = +ramp-3 = +ramp-4 = +ramp-5 = +ramp-6 = +ramp-7 = +ramp-8 = +ramp-9 = +ramp-foreground = ${color.CYAN} + +;; Other Icons +; + +; Only applies if <bar> is used +;;bar-width = 10 +;;bar-indicator = | +;;bar-fill = ─ +;;bar-empty = ─ + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/brightness] +type = internal/backlight + +; Use the following command to list available cards: +; $ ls -1 /sys/class/backlight/ +card = ${system.sys_graphics_card} + +enable-scroll = true + +; Available tags: +; <label> (default) +; <ramp> +; <bar> +format = <ramp> <label> + +; Available tokens: +; %percentage% (default) +label = %percentage%% + +; Only applies if <ramp> is used + +ramp-0 = +ramp-1 = +ramp-2 = +ramp-3 = +ramp-4 = +ramp-5 = +ramp-6 = +ramp-7 = +ramp-8 = +ramp-9 = +ramp-foreground = ${color.CYAN} + +;; Other Icons +; + +; Only applies if <bar> is used +;;bar-width = 10 +;;bar-indicator = | +;;bar-fill = ─ +;;bar-empty = ─ + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/battery] +type = internal/battery + +; This is useful in case the battery never reports 100% charge +full-at = 99 + +; Use the following command to list batteries and adapters: +; $ ls -1 /sys/class/power_supply/ +battery = ${system.sys_battery} +adapter = ${system.sys_adapter} + +; If an inotify event haven't been reported in this many +; seconds, manually poll for new values. +; +; Needed as a fallback for systems that don't report events +; on sysfs/procfs. +; +; Disable polling by setting the interval to 0. +; +; Default: 5 +poll-interval = 2 + +; see "man date" for details on how to format the time string +; NOTE: if you want to use syntax tags here you need to use %%{...} +; Default: %H:%M:%S +time-format = %H:%M + +; Available tags: +; <label-charging> (default) +; <bar-capacity> +; <ramp-capacity> +; <animation-charging> +format-charging = <animation-charging> <label-charging> +format-charging-prefix = +; Available tags: +; <label-discharging> (default) +; <bar-capacity> +; <ramp-capacity> +; <animation-discharging> +format-discharging = <ramp-capacity> <label-discharging> + +; Available tags: +; <label-full> (default) +; <bar-capacity> +; <ramp-capacity> +format-full = <label-full> +format-full-prefix = " " +format-full-prefix-foreground = ${color.RED} +; Available tokens: +; %percentage% (default) +; %time% +; %consumption% (shows current charge rate in watts) + +label-charging = %percentage%% + +; Available tokens: +; %percentage% (default) +; %time% +; %consumption% (shows current discharge rate in watts) +label-discharging = %percentage%% + +; Available tokens: +; %percentage% (default) +label-full = %percentage%% + +; Only applies if <ramp-capacity> is used +ramp-capacity-0 = +ramp-capacity-1 = +ramp-capacity-2 = +ramp-capacity-3 = +ramp-capacity-4 = +ramp-capacity-foreground = ${color.YELLOW} + +; Only applies if <bar-capacity> is used +;bar-capacity-width = 10 + +; Only applies if <animation-charging> is used +animation-charging-0 = +animation-charging-1 = +animation-charging-2 = +animation-charging-3 = +animation-charging-4 = +animation-charging-foreground = ${color.GREEN} + +; Framerate in milliseconds +animation-charging-framerate = 750 + +; Only applies if <animation-discharging> is used +;;animation-discharging-0 = +;;animation-discharging-1 = +;;animation-discharging-2 = +;;animation-discharging-3 = +;;animation-discharging-4 = +;;animation-discharging-5 = +;;animation-discharging-6 = +;;animation-discharging-7 = +;;animation-discharging-8 = + +; Framerate in milliseconds +;animation-discharging-framerate = 500 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/cpu] +type = internal/cpu + +; Seconds to sleep between updates +; Default: 1 +interval = 0.5 + +; Available tags: +; <label> (default) +; <bar-load> +; <ramp-load> +; <ramp-coreload> +;;format = <label> <ramp-coreload> +format = <label> +format-prefix = +format-prefix-foreground = ${color.YELLOW} + +; Available tokens: +; %percentage% (default) - total cpu load averaged over all cores +; %percentage-sum% - Cumulative load on all cores +; %percentage-cores% - load percentage for each core +; %percentage-core[1-9]% - load percentage for specific core +label = " %percentage%%" + +; Spacing between individual per-core ramps +;;ramp-coreload-spacing = 1 +;;ramp-coreload-0 = +;;ramp-coreload-1 = +;;ramp-coreload-2 = +;;ramp-coreload-3 = +;;ramp-coreload-4 = + +ramp-load-0 = +ramp-load-1 = +ramp-load-2 = +ramp-load-3 = +ramp-load-4 = + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/date] +type = internal/date + +; Seconds to sleep between updates +interval = 1.0 + +; See "http://en.cppreference.com/w/cpp/io/manip/put_time" for details on how to format the date string +; NOTE: if you want to use syntax tags here you need to use %%{...} +date = %A, %d %B + +; Optional time format +time = at %I:%M %p + +; if `date-alt` or `time-alt` is defined, clicking +; the module will toggle between formats +date-alt = It's %A, %d %B %Y +time-alt = at %k:%M:%S + +; Available tags: +; <label> (default) +format = <label> +format-prefix = " " +format-prefix-foreground = ${color.RED} + +; Available tokens: +; %date% +; %time% +; Default: %date% +label = %date% %time% + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/filesystem] +type = internal/fs + +; Mountpoints to display +mount-0 = / +;;mount-1 = /home +;;mount-2 = /var + +; Seconds to sleep between updates +; Default: 30 +interval = 10 + +; Display fixed precision values +; Default: false +fixed-values = true + +; Spacing between entries +; Default: 2 +;;spacing = 4 + +; Available tags: +; <label-mounted> (default) +; <bar-free> +; <bar-used> +; <ramp-capacity> +format-mounted = <label-mounted> +format-mounted-prefix = +format-mounted-prefix-foreground = ${color.MAGENTA} + +; Available tags: +; <label-unmounted> (default) +format-unmounted = <label-unmounted> +format-unmounted-prefix = +format-unmounted-prefix-foreground = ${color.MAGENTA} + +; Available tokens: +; %mountpoint% +; %type% +; %fsname% +; %percentage_free% +; %percentage_used% +; %total% +; %free% +; %used% +; Default: %mountpoint% %percentage_free%% +label-mounted = " %free%" + +; Available tokens: +; %mountpoint% +; Default: %mountpoint% is not mounted +label-unmounted = %mountpoint%: not mounted + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/memory] +type = internal/memory + +; Seconds to sleep between updates +; Default: 1 +interval = 3 + +; Available tags: +; <label> (default) +; <bar-used> +; <bar-free> +; <ramp-used> +; <ramp-free> +; <bar-swap-used> +; <bar-swap-free> +; <ramp-swap-used> +; <ramp-swap-free> +format = <label> +format-prefix = +format-prefix-foreground = ${color.BLUE} + +; Available tokens: +; %percentage_used% (default) +; %percentage_free% +; %gb_used% +; %gb_free% +; %gb_total% +; %mb_used% +; %mb_free% +; %mb_total% +; %percentage_swap_used% +; %percentage_swap_free% +; %mb_swap_total% +; %mb_swap_free% +; %mb_swap_used% +; %gb_swap_total% +; %gb_swap_free% +; %gb_swap_used% + +label = " %mb_used%" + +; Only applies if <bar-used> is used +;;bar-used-indicator = +;;bar-used-width = 50 +;;bar-used-foreground-0 = #55aa55 +;;bar-used-foreground-1 = #557755 +;;bar-used-foreground-2 = #f5a70a +;;bar-used-foreground-3 = #ff5555 +;;bar-used-fill = ▐ +;;bar-used-empty = ▐ +;;bar-used-empty-foreground = #444444 + +; Only applies if <ramp-used> is used +;;ramp-used-0 = +;;ramp-used-1 = +;;ramp-used-2 = +;;ramp-used-3 = +;;ramp-used-4 = + +; Only applies if <ramp-free> is used +;;ramp-free-0 = +;;ramp-free-1 = +;;ramp-free-2 = +;;ramp-free-3 = +;;ramp-free-4 = + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/used-memory] +type = custom/script + +exec = free -m | grep 'Mem:' | tr -s ' ' | cut -d ' ' -f3 + +tail = true +interval = 5 + +format = <label> +format-prefix = +format-prefix-foreground = ${color.BLUE} + +label = " %output% MB" + +click-left = alacritty --class 'alacritty-float,alacritty-float' --config-file ~/.config/bspwm/alacritty/alacritty.yml -e "top" & + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/mpd] +type = internal/mpd + +; Host where mpd is running (either ip or domain name) +; Can also be the full path to a unix socket where mpd is running. +;;host = 127.0.0.1 +;;port = 6600 +;;password = mysecretpassword + +; Seconds to sleep between progressbar/song timer sync +; Default: 1 +interval = 2 + +; Available tags: +; <label-song> (default) +; <label-time> +; <bar-progress> +; <toggle> - gets replaced with <icon-(pause|play)> +; <toggle-stop> - gets replaced with <icon-(stop|play)> +; <icon-random> +; <icon-repeat> +; <icon-repeatone> (deprecated) +; <icon-single> - Toggle playing only a single song. Replaces <icon-repeatone> +; <icon-consume> +; <icon-prev> +; <icon-stop> +; <icon-play> +; <icon-pause> +; <icon-next> +; <icon-seekb> +; <icon-seekf> +format-online = <label-song> <icon-prev> <toggle> <icon-next> +format-online-prefix = " " +format-online-prefix-foreground = ${color.GREEN} + +;format-playing = ${self.format-online} +;format-paused = ${self.format-online} +;format-stopped = ${self.format-online} + +; Available tags: +; <label-offline> +;format-offline = <label-offline> + +; Available tokens: +; %artist% +; %album-artist% +; %album% +; %date% +; %title% +; Default: %artist% - %title% +label-song = "%title%" +label-song-maxlen = 25 +label-song-ellipsis = true + +; Available tokens: +; %elapsed% +; %total% +; Default: %elapsed% / %total% +;;abel-time = %elapsed% / %total% + +; Available tokens: +; None +label-offline = "MPD is offline" + +; Only applies if <icon-X> is used +icon-play-foreground = ${color.CYAN} +icon-play = 契 +icon-pause-foreground = ${color.CYAN} +icon-pause = +icon-stop-foreground = ${color.CYAN} +icon-stop = 栗 +icon-prev-foreground = ${color.CYAN} +icon-prev = 寧 +icon-next-foreground = ${color.CYAN} +icon-next = 嶺 + +icon-seekb = ⏪ +icon-seekf = ⏩ +icon-random = 🔀 +icon-repeat = 🔁 +icon-repeatone = 🔂 +icon-single = 🔂 +icon-consume = ✀ + +; Used to display the state of random/repeat/repeatone/single +; Only applies if <icon-[random|repeat|repeatone|single]> is used +;;toggle-on-foreground = #ff +;;toggle-off-foreground = #55 + +; Only applies if <bar-progress> is used +;;bar-progress-width = 45 +;;bar-progress-indicator = | +;;bar-progress-fill = ─ +;;bar-progress-empty = ─ + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +; If you use both a wired and a wireless network, Add both modules in config.ini +[module/ethernet] +type = internal/network +interface = ${system.sys_network_interface} + +interval = 1.0 +accumulate-stats = true +unknown-as-up = true + +format-connected = <label-connected> +format-connected-prefix = "歷 " +format-connected-prefix-foreground = ${color.MAGENTA} + +format-disconnected = <label-disconnected> +format-disconnected-prefix = "轢 " +format-disconnected-prefix-foreground = ${color.RED} + +label-connected = "%{A1:nmd &:}%downspeed% | %upspeed%%{A}" +label-disconnected = "%{A1:nmd &:}Offline%{A}" + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +; Normal Module +[module/network] +type = internal/network +interface = ${system.sys_network_interface} + +; Seconds to sleep between updates +; Default: 1 +interval = 1.0 + +; Test connectivity every Nth update +; A value of 0 disables the feature +; NOTE: Experimental (needs more testing) +; Default: 0 +;ping-interval = 3 + +; @deprecated: Define min width using token specifiers (%downspeed:min% and %upspeed:min%) +; Minimum output width of upload/download rate +; Default: 3 +;;udspeed-minwidth = 5 + +; Accumulate values from all interfaces +; when querying for up/downspeed rate +; Default: false +accumulate-stats = true + +; Consider an `UNKNOWN` interface state as up. +; Some devices have an unknown state, even when they're running +; Default: false +unknown-as-up = true + +; Available tags: +; <label-connected> (default) +; <ramp-signal> +format-connected = <ramp-signal> <label-connected> + +; Available tags: +; <label-disconnected> (default) +format-disconnected = <label-disconnected> +format-disconnected-prefix = "睊 " +format-disconnected-prefix-foreground = ${color.RED} + +; Available tags: +; <label-connected> (default) +; <label-packetloss> +; <animation-packetloss> +;;format-packetloss = <animation-packetloss> <label-connected> + +; Available tokens: +; %ifname% [wireless+wired] +; %local_ip% [wireless+wired] +; %local_ip6% [wireless+wired] +; %essid% [wireless] +; %signal% [wireless] +; %upspeed% [wireless+wired] +; %downspeed% [wireless+wired] +; %linkspeed% [wired] +; Default: %ifname% %local_ip% +label-connected = "%{A1:nmd &:}%essid% 龍 %downspeed%%{A}" +;;label-connected-foreground = #eefafafa + +; Available tokens: +; %ifname% [wireless+wired] +; Default: (none) +label-disconnected = "%{A1:nmd &:}Disconnected%{A}" +;;label-disconnected-foreground = #66ffffff + +; Available tokens: +; %ifname% [wireless+wired] +; %local_ip% [wireless+wired] +; %local_ip6% [wireless+wired] +; %essid% [wireless] +; %signal% [wireless] +; %upspeed% [wireless+wired] +; %downspeed% [wireless+wired] +; %linkspeed% [wired] +; Default: (none) +;label-packetloss = %essid% +;label-packetloss-foreground = #eefafafa + +; Only applies if <ramp-signal> is used +ramp-signal-0 = 直 +ramp-signal-1 = 直 +ramp-signal-2 = 直 +ramp-signal-3 = 直 +ramp-signal-4 = 直 +ramp-signal-foreground = ${color.MAGENTA} + +; Only applies if <animation-packetloss> is used +;;animation-packetloss-0 = ⚠ +;;animation-packetloss-0-foreground = #ffa64c +;;animation-packetloss-1 = ⚠ +;;animation-packetloss-1-foreground = #000000 +; Framerate in milliseconds +;;animation-packetloss-framerate = 500 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/pulseaudio] +type = internal/pulseaudio + +; Sink to be used, if it exists (find using `pacmd list-sinks`, name field) +; If not, uses default sink +sink = alsa_output.pci-0000_12_00.3.analog-stereo + +; Use PA_VOLUME_UI_MAX (~153%) if true, or PA_VOLUME_NORM (100%) if false +; Default: true +use-ui-max = false + +; Interval for volume increase/decrease (in percent points) +; Default: 5 +interval = 5 + +; Available tags: +; <label-volume> (default) +; <ramp-volume> +; <bar-volume> +format-volume = <ramp-volume> <label-volume> + +; Available tags: +; <label-muted> (default) +; <ramp-volume> +; <bar-volume> +;format-muted = <label-muted> + +; Available tokens: +; %percentage% (default) +;label-volume = %percentage%% + +; Available tokens: +; %percentage% (default) +format-muted-prefix = 婢 +format-muted-prefix-foreground = ${color.RED} +label-muted = " Mute" +label-muted-foreground = ${color.ALTFOREGROUND} + +; Only applies if <ramp-volume> is used +ramp-volume-0 = 奄 +ramp-volume-1 = 奄 +ramp-volume-2 = 奄 +ramp-volume-3 = 奔 +ramp-volume-4 = 奔 +ramp-volume-5 = 奔 +ramp-volume-6 = 墳 +ramp-volume-7 = 墳 +ramp-volume-8 = 墳 +ramp-volume-9 = 墳 +ramp-volume-foreground = ${color.RED} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/temperature] +type = internal/temperature + +; Seconds to sleep between updates +; Default: 1 +interval = 0.5 + +; Thermal zone to use +; To list all the zone types, run +; $ for i in /sys/class/thermal/thermal_zone*; do echo "$i: $(<$i/type)"; done +; Default: 0 +thermal-zone = 0 + +; Full path of temperature sysfs path +; Use `sensors` to find preferred temperature source, then run +; $ for i in /sys/class/hwmon/hwmon*/temp*_input; do echo "$(<$(dirname $i)/name): $(cat ${i%_*}_label 2>/dev/null || echo $(basename ${i%_*})) $(readlink -f $i)"; done +; to find path to desired file +; Default reverts to thermal zone setting +;;hwmon-path = /sys/devices/platform/coretemp.0/hwmon/hwmon2/temp1_input + +; Threshold temperature to display warning label (in degrees celsius) +; Default: 80 +warn-temperature = 60 + +; Whether or not to show units next to the temperature tokens (°C, °F) +; Default: true +units = true + +; Available tags: +; <label> (default) +; <ramp> +format = <ramp> <label> + +; Available tags: +; <label-warn> (default) +; <ramp> +format-warn = <ramp> <label-warn> + +; Available tokens: +; %temperature% (deprecated) +; %temperature-c% (default, temperature in °C) +; %temperature-f% (temperature in °F) +label = %temperature-c% + +; Available tokens: +; %temperature% (deprecated) +; %temperature-c% (default, temperature in °C) +; %temperature-f% (temperature in °F) +label-warn = "%temperature-c%" +label-warn-foreground = #f00 + +; Requires the <ramp> tag +; The icon selection will range from 0 to `warn-temperature` +; with the current temperature as index. +ramp-0 = +ramp-1 = +ramp-2 = +ramp-3 = +ramp-4 = +ramp-5 = +ramp-6 = +ramp-7 = +ramp-8 = +ramp-9 = +ramp-foreground = ${color.YELLOW} +;;ramp-foreground = #55 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/keyboard] +type = internal/xkeyboard + +; List of indicators to ignore +blacklist-0 = num lock +blacklist-1 = scroll lock + +; Available tags: +; <label-layout> (default) +; <label-indicator> (default) +format = <label-layout> <label-indicator> +format-prefix = " " +format-prefix-foreground = ${color.MAGENTA} +;;format-spacing = 0 + +; Available tokens: +; %layout% +; %name% +; %number% +; Default: %layout% +label-layout = %layout% +;;label-layout-padding = 2 +;;label-layout-background = #bc99ed +;;label-layout-foreground = #000 + +; Available tokens: +; %name% +; Default: %name% +label-indicator-on = %name% +;;label-indicator-padding = 2 +label-indicator-on-foreground = ${color.CYAN} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/title] +type = internal/xwindow + +; Available tags: +; <label> (default) +format = <label> +format-prefix = " " +format-prefix-foreground = ${color.BLUE} +;;format-background = ${color.BACKGROUND} +;;format-foreground = ${color.CYAN} +;;format-padding = 4 + +; Available tokens: +; %title% +; Default: %title% +label = %title% +label-maxlen = 25 + +; Used instead of label when there is no window title +; Available tokens: +; None +;;label-empty = Archcraft +;;label-empty-foreground = #707880 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/openbox] +type = internal/xworkspaces + +; Only show workspaces defined on the same output as the bar +; +; Useful if you want to show monitor specific workspaces +; on different bars +; +; Default: false +pin-workspaces = true + +; Create click handler used to focus desktop +; Default: true +enable-click = true + +; Create scroll handlers used to cycle desktops +; Default: true +enable-scroll = true + +; icon-[0-9]+ = <desktop-name>;<icon> +; NOTE: The desktop name needs to match the name configured by the WM +; You can get a list of the defined desktops using: +; $ xprop -root _NET_DESKTOP_NAMES +icon-0 = 1; +icon-1 = 2; +icon-2 = 3; +icon-3 = 4; +icon-4 = 5; +icon-default = + +; Available tags: +; <label-monitor> +; <label-state> - gets replaced with <label-(active|urgent|occupied|empty)> +; Default: <label-state> +format = <label-state> +format-padding = 0 + +; Available tokens: +; %name% +; Default: %name% +label-monitor = %name% + +; Available tokens: +; %name% +; %icon% +; %index% +; Default: %icon% %name% +label-active = +label-active-foreground = ${color.RED} +label-active-background = ${color.BACKGROUND} +;;label-active-underline = ${color.CYAN} +;;label-active-overline = ${color.CYAN} + +; Available tokens: +; %name% +; %icon% +; %index% +; Default: %icon% %name% +label-occupied = +label-occupied-foreground = ${color.ACCENT} +label-occupied-background = ${color.BACKGROUND} +;;label-occupied-underline = ${color.CYAN} +;;label-occupied-overline = ${color.CYAN} + +; Available tokens: +; %name% +; %icon% +; %index% +; Default: %icon% %name% +label-urgent = +label-urgent-foreground = ${color.GREEN} +label-urgent-background = ${color.BACKGROUND} +;;label-urgent-underline = ${color.CYAN} +;;label-urgent-overline = ${color.CYAN} + +; Available tokens: +; %name% +; %icon% +; %index% +; Default: %icon% %name% +label-empty = %icon% +label-empty-foreground = ${color.FOREGROUND} +label-empty-background = ${color.BACKGROUND} +;;label-empty-underline = ${color.CYAN} +;;label-empty-overline = ${color.CYAN} + +label-active-padding = 1 +label-urgent-padding = 1 +label-occupied-padding = 1 +label-empty-padding = 1 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/sep] +type = custom/text +content = | +content-foreground = ${color.ALTBACKGROUND} + +[module/sep2] +type = custom/text +content = "| " +content-foreground = ${color.ALTBACKGROUND} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ +;; __________ ______ +;; / ____/ __ \/ ____/ +;; / __/ / / / / /_ +;; / /___/ /_/ / __/ +;; /_____/\____/_/ +;; +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ diff --git a/dot-config/bspwm/themes/slime/rofi/askpass.rasi b/dot-config/bspwm/themes/slime/rofi/askpass.rasi new file mode 100644 index 00000000..0f94f4f5 --- /dev/null +++ b/dot-config/bspwm/themes/slime/rofi/askpass.rasi @@ -0,0 +1,77 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/*****----- Main Window -----*****/ +window { + location: center; + anchor: center; + fullscreen: false; + width: 350px; + x-offset: 0px; + y-offset: 0px; + padding: 30px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: @background; + cursor: "default"; + children: [ "inputbar", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + children: [ "textbox-prompt-colon", "prompt", "entry" ]; +} + +dummy { + expand: false; + width: 10px; + background-color: transparent; +} +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + padding: 10px 13px; + border-radius: 0px; + background-color: @urgent; + text-color: @background; +} +prompt { + enabled: true; + padding: 10px; + border-radius: 0px; + background-color: @selected; + text-color: @background; +} +entry { + enabled: true; + padding: 10px 15px; + border: 0px 0px 2px dash 0px; + border-radius: 0px; + border-color: @urgent; + background-color: @background; + text-color: inherit; + cursor: text; + placeholder: "Password"; + placeholder-color: inherit; +} + +/*****----- Listview -----*****/ +listview { + enabled: false; +} diff --git a/dot-config/bspwm/themes/slime/rofi/asroot.rasi b/dot-config/bspwm/themes/slime/rofi/asroot.rasi new file mode 100644 index 00000000..3be45bd7 --- /dev/null +++ b/dot-config/bspwm/themes/slime/rofi/asroot.rasi @@ -0,0 +1,145 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + show-icons: false; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/* +USE_ICON=NO +*/ + +/*****----- Main Window -----*****/ +window { + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 400px; + x-offset: 0px; + y-offset: 0px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + cursor: "default"; + background-color: @background; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 30px; + background-color: transparent; + children: [ "inputbar", "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + padding: 10px; + border: 0px 0px 2px dash 0px; + border-radius: 0px; + border-color: @urgent; + background-color: transparent; + text-color: @foreground; + children: [ "textbox-prompt-colon", "prompt"]; +} + +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + border-radius: 0px; + background-color: transparent; + text-color: @foreground; +} +prompt { + enabled: true; + border-radius: 0px; + background-color: @background; + text-color: @foreground; +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: @background-alt; + text-color: @foreground; +} +textbox { + background-color: inherit; + text-color: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 1; + lines: 5; + cycle: true; + scrollbar: false; + layout: vertical; + + spacing: 5px; + background-color: transparent; + cursor: "default"; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + cursor: pointer; +} +element-text { + background-color: transparent; + text-color: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +element normal.normal, +element alternate.normal { + background-color: var(background); + text-color: var(foreground); +} +element normal.urgent, +element alternate.urgent, +element selected.active { + background-color: var(urgent); + text-color: var(background); +} +element normal.active, +element alternate.active, +element selected.urgent { + background-color: var(active); + text-color: var(background); +} +element selected.normal { + background-color: var(selected); + text-color: var(background); +} diff --git a/dot-config/bspwm/themes/slime/rofi/confirm.rasi b/dot-config/bspwm/themes/slime/rofi/confirm.rasi new file mode 100644 index 00000000..5afa3b05 --- /dev/null +++ b/dot-config/bspwm/themes/slime/rofi/confirm.rasi @@ -0,0 +1,147 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + show-icons: false; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/* +USE_ICON=NO +*/ + +/*****----- Main Window -----*****/ +window { + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 250px; + x-offset: 0px; + y-offset: 0px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + cursor: "default"; + background-color: @background; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 20px; + background-color: transparent; + children: [ "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + padding: 0px; + border: 0px; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + children: [ "textbox-prompt-colon", "prompt"]; +} + +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + padding: 10px 14px; + border-radius: 100%; + background-color: @urgent; + text-color: @background; +} +prompt { + enabled: true; + padding: 10px; + border-radius: 20px; + background-color: @active; + text-color: @background; +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 10px; + border: 0px 0px 2px dash 0px; + border-radius: 0px; + border-color: @urgent; + background-color: @background; + text-color: @foreground; +} +textbox { + background-color: inherit; + text-color: inherit; + vertical-align: 0.5; + horizontal-align: 0.5; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 1; + lines: 2; + cycle: true; + scrollbar: false; + layout: vertical; + + spacing: 10px; + background-color: transparent; + cursor: "default"; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + padding: 10px 10px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + cursor: pointer; +} +element-text { + background-color: transparent; + text-color: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.5; +} + +element normal.normal, +element alternate.normal { + background-color: var(background-alt); + text-color: var(foreground); +} +element normal.urgent, +element alternate.urgent, +element selected.active { + background-color: var(urgent); + text-color: var(background); +} +element normal.active, +element alternate.active, +element selected.urgent { + background-color: var(active); + text-color: var(background); +} +element selected.normal { + background-color: var(selected); + text-color: var(background); +} diff --git a/dot-config/bspwm/themes/slime/rofi/launcher.rasi b/dot-config/bspwm/themes/slime/rofi/launcher.rasi new file mode 100644 index 00000000..fbf091d7 --- /dev/null +++ b/dot-config/bspwm/themes/slime/rofi/launcher.rasi @@ -0,0 +1,269 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + modi: "drun"; + show-icons: true; + display-drun: ""; + display-run: ""; + display-filebrowser: ""; + display-window: ""; + drun-display-format: "{name} [<span weight='light' size='small'><i>({generic})</i></span>]"; + window-format: "{w} · {c} · {t}"; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +* { + border-colour: var(selected); + handle-colour: var(selected); + background-colour: var(background); + foreground-colour: var(foreground); + alternate-background: var(background-alt); + normal-background: var(background); + normal-foreground: var(foreground); + urgent-background: var(urgent); + urgent-foreground: var(background); + active-background: var(active); + active-foreground: var(background); + selected-normal-background: var(selected); + selected-normal-foreground: var(background); + selected-urgent-background: var(active); + selected-urgent-foreground: var(background); + selected-active-background: var(urgent); + selected-active-foreground: var(background); + alternate-normal-background: var(background); + alternate-normal-foreground: var(foreground); + alternate-urgent-background: var(urgent); + alternate-urgent-foreground: var(background); + alternate-active-background: var(active); + alternate-active-foreground: var(background); +} + +/*****----- Main Window -----*****/ +window { + /* properties for window widget */ + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 800px; + x-offset: 0px; + y-offset: 0px; + + /* properties for all widgets */ + enabled: true; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + cursor: "default"; + background-color: @background-colour; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 30px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @border-colour; + background-color: transparent; + children: [ "inputbar", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px 10px 10px 10px; + border: 0px 0px 2px dash 0px; + border-radius: 0px; + border-color: @urgent; + background-color: @background-colour; + text-color: @foreground-colour; + children: [ "prompt", "entry" ]; +} + +prompt { + enabled: true; + background-color: inherit; + text-color: inherit; +} +textbox-prompt-colon { + enabled: true; + expand: false; + str: "::"; + background-color: inherit; + text-color: inherit; +} +entry { + enabled: true; + background-color: inherit; + text-color: inherit; + cursor: text; + placeholder: "Search..."; + placeholder-color: inherit; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 2; + lines: 12; + cycle: true; + dynamic: true; + scrollbar: false; + layout: vertical; + reverse: false; + fixed-height: true; + fixed-columns: true; + + spacing: 0px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: "default"; +} +scrollbar { + handle-width: 5px ; + handle-color: @handle-colour; + border-radius: 0px; + background-color: @alternate-background; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 5px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: pointer; +} +element normal.normal { + background-color: var(normal-background); + text-color: var(normal-foreground); +} +element normal.urgent { + background-color: var(urgent-background); + text-color: var(urgent-foreground); +} +element normal.active { + background-color: var(active-background); + text-color: var(active-foreground); +} +element selected.normal { + background-color: var(alternate-background); + text-color: var(foreground); +} +element selected.urgent { + background-color: var(selected-urgent-background); + text-color: var(selected-urgent-foreground); +} +element selected.active { + background-color: var(selected-active-background); + text-color: var(selected-active-foreground); +} +element alternate.normal { + background-color: var(alternate-normal-background); + text-color: var(alternate-normal-foreground); +} +element alternate.urgent { + background-color: var(alternate-urgent-background); + text-color: var(alternate-urgent-foreground); +} +element alternate.active { + background-color: var(alternate-active-background); + text-color: var(alternate-active-foreground); +} +element-icon { + background-color: transparent; + text-color: inherit; + size: 24px; + cursor: inherit; +} +element-text { + background-color: transparent; + text-color: inherit; + highlight: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Mode Switcher -----*****/ +mode-switcher{ + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; +} +button { + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: inherit; + cursor: pointer; +} +button selected { + background-color: var(selected-normal-background); + text-color: var(selected-normal-foreground); +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; +} +textbox { + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: @foreground-colour; + vertical-align: 0.5; + horizontal-align: 0.0; + highlight: none; + placeholder-color: @foreground-colour; + blink: true; + markup: true; +} +error-message { + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @background-colour; + text-color: @foreground-colour; +} diff --git a/dot-config/bspwm/themes/slime/rofi/music.rasi b/dot-config/bspwm/themes/slime/rofi/music.rasi new file mode 100644 index 00000000..2394ebfa --- /dev/null +++ b/dot-config/bspwm/themes/slime/rofi/music.rasi @@ -0,0 +1,145 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + show-icons: false; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/* +USE_ICON=NO +*/ + +/*****----- Main Window -----*****/ +window { + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 400px; + x-offset: 0px; + y-offset: 0px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + cursor: "default"; + background-color: @background; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 30px; + background-color: transparent; + children: [ "inputbar", "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + padding: 10px; + border: 0px 0px 2px dash 0px; + border-radius: 0px; + border-color: @urgent; + background-color: transparent; + text-color: @foreground; + children: [ "textbox-prompt-colon", "prompt"]; +} + +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + border-radius: 0px; + background-color: transparent; + text-color: @foreground; +} +prompt { + enabled: true; + border-radius: 0px; + background-color: @background; + text-color: @foreground; +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: @background-alt; + text-color: @foreground; +} +textbox { + background-color: inherit; + text-color: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 1; + lines: 6; + cycle: true; + scrollbar: false; + layout: vertical; + + spacing: 5px; + background-color: transparent; + cursor: "default"; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + cursor: pointer; +} +element-text { + background-color: transparent; + text-color: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +element normal.normal, +element alternate.normal { + background-color: var(background); + text-color: var(foreground); +} +element normal.urgent, +element alternate.urgent, +element selected.active { + background-color: var(urgent); + text-color: var(background); +} +element normal.active, +element alternate.active, +element selected.urgent { + background-color: var(active); + text-color: var(background); +} +element selected.normal { + background-color: var(selected); + text-color: var(background); +} diff --git a/dot-config/bspwm/themes/slime/rofi/networkmenu.rasi b/dot-config/bspwm/themes/slime/rofi/networkmenu.rasi new file mode 100644 index 00000000..f57a1084 --- /dev/null +++ b/dot-config/bspwm/themes/slime/rofi/networkmenu.rasi @@ -0,0 +1,270 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + modi: "drun"; + show-icons: false; + display-drun: ""; + display-run: ""; + display-filebrowser: ""; + display-window: ""; + drun-display-format: "{name} [<span weight='light' size='small'><i>({generic})</i></span>]"; + window-format: "{w} · {c} · {t}"; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +* { + border-colour: var(selected); + handle-colour: var(selected); + background-colour: var(background); + foreground-colour: var(foreground); + alternate-background: var(background-alt); + normal-background: var(background); + normal-foreground: var(foreground); + urgent-background: var(urgent); + urgent-foreground: var(background); + active-background: var(active); + active-foreground: var(background); + selected-normal-background: var(selected); + selected-normal-foreground: var(background); + selected-urgent-background: var(active); + selected-urgent-foreground: var(background); + selected-active-background: var(urgent); + selected-active-foreground: var(background); + alternate-normal-background: var(background); + alternate-normal-foreground: var(foreground); + alternate-urgent-background: var(urgent); + alternate-urgent-foreground: var(background); + alternate-active-background: var(active); + alternate-active-foreground: var(background); +} + +/*****----- Main Window -----*****/ +window { + /* properties for window widget */ + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 500px; + height: 475px; + x-offset: 0px; + y-offset: 0px; + + /* properties for all widgets */ + enabled: true; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + cursor: "default"; + background-color: @background-colour; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 30px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @border-colour; + background-color: transparent; + children: [ "inputbar", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px 10px 10px 10px; + border: 0px 0px 2px dash 0px; + border-radius: 0px; + border-color: @urgent; + background-color: @background-colour; + text-color: @foreground-colour; + children: [ "textbox-prompt-colon", "prompt", "entry" ]; +} + +prompt { + enabled: true; + background-color: inherit; + text-color: inherit; +} +textbox-prompt-colon { + enabled: true; + expand: false; + str: "直"; + background-color: inherit; + text-color: inherit; +} +entry { + enabled: true; + background-color: inherit; + text-color: inherit; + cursor: text; + placeholder: ""; + placeholder-color: inherit; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 1; + lines: 8; + cycle: true; + dynamic: true; + scrollbar: false; + layout: vertical; + reverse: false; + fixed-height: true; + fixed-columns: true; + + spacing: 0px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: "default"; +} +scrollbar { + handle-width: 5px ; + handle-color: @handle-colour; + border-radius: 0px; + background-color: @alternate-background; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 8px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: pointer; +} +element normal.normal { + background-color: var(normal-background); + text-color: var(normal-foreground); +} +element normal.urgent { + background-color: var(urgent-background); + text-color: var(urgent-foreground); +} +element normal.active { + background-color: var(active-background); + text-color: var(active-foreground); +} +element selected.normal { + background-color: var(alternate-background); + text-color: var(foreground); +} +element selected.urgent { + background-color: var(selected-urgent-background); + text-color: var(selected-urgent-foreground); +} +element selected.active { + background-color: var(selected-active-background); + text-color: var(selected-active-foreground); +} +element alternate.normal { + background-color: var(alternate-normal-background); + text-color: var(alternate-normal-foreground); +} +element alternate.urgent { + background-color: var(alternate-urgent-background); + text-color: var(alternate-urgent-foreground); +} +element alternate.active { + background-color: var(alternate-active-background); + text-color: var(alternate-active-foreground); +} +element-icon { + background-color: transparent; + text-color: inherit; + size: 24px; + cursor: inherit; +} +element-text { + background-color: transparent; + text-color: inherit; + highlight: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Mode Switcher -----*****/ +mode-switcher{ + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; +} +button { + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: inherit; + cursor: pointer; +} +button selected { + background-color: var(selected-normal-background); + text-color: var(selected-normal-foreground); +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; +} +textbox { + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: @foreground-colour; + vertical-align: 0.5; + horizontal-align: 0.0; + highlight: none; + placeholder-color: @foreground-colour; + blink: true; + markup: true; +} +error-message { + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @background-colour; + text-color: @foreground-colour; +} diff --git a/dot-config/bspwm/themes/slime/rofi/powermenu.rasi b/dot-config/bspwm/themes/slime/rofi/powermenu.rasi new file mode 100644 index 00000000..5b439eb5 --- /dev/null +++ b/dot-config/bspwm/themes/slime/rofi/powermenu.rasi @@ -0,0 +1,145 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + show-icons: false; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/* +USE_ICON=NO +*/ + +/*****----- Main Window -----*****/ +window { + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 400px; + x-offset: 0px; + y-offset: 0px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + cursor: "default"; + background-color: @background; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 30px; + background-color: transparent; + children: [ "inputbar", "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + padding: 10px; + border: 0px 0px 2px dash 0px; + border-radius: 0px; + border-color: @urgent; + background-color: transparent; + text-color: @foreground; + children: [ "textbox-prompt-colon", "prompt"]; +} + +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + border-radius: 0px; + background-color: transparent; + text-color: @foreground; +} +prompt { + enabled: true; + border-radius: 0px; + background-color: @background; + text-color: @foreground; +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: @background-alt; + text-color: @foreground; +} +textbox { + background-color: inherit; + text-color: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 1; + lines: 6; + cycle: true; + scrollbar: false; + layout: vertical; + + spacing: 5px; + background-color: transparent; + cursor: "default"; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + cursor: pointer; +} +element-text { + background-color: transparent; + text-color: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +element normal.normal, +element alternate.normal { + background-color: var(background); + text-color: var(foreground); +} +element normal.urgent, +element alternate.urgent, +element selected.active { + background-color: var(urgent); + text-color: var(background); +} +element normal.active, +element alternate.active, +element selected.urgent { + background-color: var(active); + text-color: var(background); +} +element selected.normal { + background-color: var(selected); + text-color: var(background); +} diff --git a/dot-config/bspwm/themes/slime/rofi/runner.rasi b/dot-config/bspwm/themes/slime/rofi/runner.rasi new file mode 100644 index 00000000..41b8f616 --- /dev/null +++ b/dot-config/bspwm/themes/slime/rofi/runner.rasi @@ -0,0 +1,269 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + modi: "run"; + show-icons: true; + display-drun: ""; + display-run: ""; + display-filebrowser: ""; + display-window: ""; + drun-display-format: "{name} [<span weight='light' size='small'><i>({generic})</i></span>]"; + window-format: "{w} · {c} · {t}"; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +* { + border-colour: var(selected); + handle-colour: var(selected); + background-colour: var(background); + foreground-colour: var(foreground); + alternate-background: var(background-alt); + normal-background: var(background); + normal-foreground: var(foreground); + urgent-background: var(urgent); + urgent-foreground: var(background); + active-background: var(active); + active-foreground: var(background); + selected-normal-background: var(selected); + selected-normal-foreground: var(background); + selected-urgent-background: var(active); + selected-urgent-foreground: var(background); + selected-active-background: var(urgent); + selected-active-foreground: var(background); + alternate-normal-background: var(background); + alternate-normal-foreground: var(foreground); + alternate-urgent-background: var(urgent); + alternate-urgent-foreground: var(background); + alternate-active-background: var(active); + alternate-active-foreground: var(background); +} + +/*****----- Main Window -----*****/ +window { + /* properties for window widget */ + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 500px; + x-offset: 0px; + y-offset: 0px; + + /* properties for all widgets */ + enabled: true; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + cursor: "default"; + background-color: @background-colour; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 30px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @border-colour; + background-color: transparent; + children: [ "inputbar", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px 10px 10px 10px; + border: 0px 0px 2px dash 0px; + border-radius: 0px; + border-color: @urgent; + background-color: @background-colour; + text-color: @foreground-colour; + children: [ "prompt", "entry" ]; +} + +prompt { + enabled: true; + background-color: inherit; + text-color: inherit; +} +textbox-prompt-colon { + enabled: true; + expand: false; + str: "::"; + background-color: inherit; + text-color: inherit; +} +entry { + enabled: true; + background-color: inherit; + text-color: inherit; + cursor: text; + placeholder: "Run..."; + placeholder-color: inherit; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 1; + lines: 8; + cycle: true; + dynamic: true; + scrollbar: false; + layout: vertical; + reverse: false; + fixed-height: true; + fixed-columns: true; + + spacing: 0px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: "default"; +} +scrollbar { + handle-width: 5px ; + handle-color: @handle-colour; + border-radius: 0px; + background-color: @alternate-background; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 5px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: pointer; +} +element normal.normal { + background-color: var(normal-background); + text-color: var(normal-foreground); +} +element normal.urgent { + background-color: var(urgent-background); + text-color: var(urgent-foreground); +} +element normal.active { + background-color: var(active-background); + text-color: var(active-foreground); +} +element selected.normal { + background-color: var(alternate-background); + text-color: var(foreground); +} +element selected.urgent { + background-color: var(selected-urgent-background); + text-color: var(selected-urgent-foreground); +} +element selected.active { + background-color: var(selected-active-background); + text-color: var(selected-active-foreground); +} +element alternate.normal { + background-color: var(alternate-normal-background); + text-color: var(alternate-normal-foreground); +} +element alternate.urgent { + background-color: var(alternate-urgent-background); + text-color: var(alternate-urgent-foreground); +} +element alternate.active { + background-color: var(alternate-active-background); + text-color: var(alternate-active-foreground); +} +element-icon { + background-color: transparent; + text-color: inherit; + size: 24px; + cursor: inherit; +} +element-text { + background-color: transparent; + text-color: inherit; + highlight: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Mode Switcher -----*****/ +mode-switcher{ + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; +} +button { + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: inherit; + cursor: pointer; +} +button selected { + background-color: var(selected-normal-background); + text-color: var(selected-normal-foreground); +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; +} +textbox { + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: @foreground-colour; + vertical-align: 0.5; + horizontal-align: 0.0; + highlight: none; + placeholder-color: @foreground-colour; + blink: true; + markup: true; +} +error-message { + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @background-colour; + text-color: @foreground-colour; +} diff --git a/dot-config/bspwm/themes/slime/rofi/screenshot.rasi b/dot-config/bspwm/themes/slime/rofi/screenshot.rasi new file mode 100644 index 00000000..5516d775 --- /dev/null +++ b/dot-config/bspwm/themes/slime/rofi/screenshot.rasi @@ -0,0 +1,145 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + show-icons: false; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/* +USE_ICON=NO +*/ + +/*****----- Main Window -----*****/ +window { + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 450px; + x-offset: 0px; + y-offset: 0px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + cursor: "default"; + background-color: @background; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 30px; + background-color: transparent; + children: [ "inputbar", "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + padding: 10px; + border: 0px 0px 2px dash 0px; + border-radius: 0px; + border-color: @urgent; + background-color: transparent; + text-color: @foreground; + children: [ "textbox-prompt-colon", "prompt"]; +} + +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + border-radius: 0px; + background-color: transparent; + text-color: @foreground; +} +prompt { + enabled: true; + border-radius: 0px; + background-color: @background; + text-color: @foreground; +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: @background-alt; + text-color: @foreground; +} +textbox { + background-color: inherit; + text-color: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 1; + lines: 5; + cycle: true; + scrollbar: false; + layout: vertical; + + spacing: 5px; + background-color: transparent; + cursor: "default"; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + cursor: pointer; +} +element-text { + background-color: transparent; + text-color: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +element normal.normal, +element alternate.normal { + background-color: var(background); + text-color: var(foreground); +} +element normal.urgent, +element alternate.urgent, +element selected.active { + background-color: var(urgent); + text-color: var(background); +} +element normal.active, +element alternate.active, +element selected.urgent { + background-color: var(active); + text-color: var(background); +} +element selected.normal { + background-color: var(selected); + text-color: var(background); +} diff --git a/dot-config/bspwm/themes/slime/rofi/shared/colors.rasi b/dot-config/bspwm/themes/slime/rofi/shared/colors.rasi new file mode 100644 index 00000000..dc953783 --- /dev/null +++ b/dot-config/bspwm/themes/slime/rofi/shared/colors.rasi @@ -0,0 +1,8 @@ +* { + background: #ffffff; + background-alt: #e6e6e6; + foreground: #383a42; + selected: #0997B3; + active: #50a14f; + urgent: #e45649; +} diff --git a/dot-config/bspwm/themes/slime/rofi/shared/fonts.rasi b/dot-config/bspwm/themes/slime/rofi/shared/fonts.rasi new file mode 100644 index 00000000..d2af39fe --- /dev/null +++ b/dot-config/bspwm/themes/slime/rofi/shared/fonts.rasi @@ -0,0 +1,7 @@ +/* Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> */ + +/* Text Font */ + +* { + font: "Iosevka 10"; +} diff --git a/dot-config/bspwm/themes/slime/rofi/themes.rasi b/dot-config/bspwm/themes/slime/rofi/themes.rasi new file mode 100644 index 00000000..ec145eb1 --- /dev/null +++ b/dot-config/bspwm/themes/slime/rofi/themes.rasi @@ -0,0 +1,145 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + show-icons: false; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/* +USE_ICON=NO +*/ + +/*****----- Main Window -----*****/ +window { + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 400px; + x-offset: 0px; + y-offset: 0px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + cursor: "default"; + background-color: @background; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 30px; + background-color: transparent; + children: [ "inputbar", "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + padding: 10px; + border: 0px 0px 2px dash 0px; + border-radius: 0px; + border-color: @urgent; + background-color: transparent; + text-color: @foreground; + children: [ "textbox-prompt-colon", "prompt"]; +} + +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + border-radius: 0px; + background-color: transparent; + text-color: @foreground; +} +prompt { + enabled: true; + border-radius: 0px; + background-color: @background; + text-color: @foreground; +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: @background-alt; + text-color: @foreground; +} +textbox { + background-color: inherit; + text-color: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 1; + lines: 5; + cycle: true; + scrollbar: false; + layout: vertical; + + spacing: 5px; + background-color: transparent; + cursor: "default"; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + cursor: pointer; +} +element-text { + background-color: transparent; + text-color: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +element normal.normal, +element alternate.normal { + background-color: var(background); + text-color: var(foreground); +} +element normal.urgent, +element alternate.urgent, +element selected.active { + background-color: var(urgent); + text-color: var(background); +} +element normal.active, +element alternate.active, +element selected.urgent { + background-color: var(active); + text-color: var(background); +} +element selected.normal { + background-color: var(selected); + text-color: var(background); +} diff --git a/dot-config/bspwm/themes/slime/rofi/windows.rasi b/dot-config/bspwm/themes/slime/rofi/windows.rasi new file mode 100644 index 00000000..d49d980a --- /dev/null +++ b/dot-config/bspwm/themes/slime/rofi/windows.rasi @@ -0,0 +1,269 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + modi: "window"; + show-icons: true; + display-drun: ""; + display-run: ""; + display-filebrowser: ""; + display-window: ""; + drun-display-format: "{name} [<span weight='light' size='small'><i>({generic})</i></span>]"; + window-format: "{c} · {t}"; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +* { + border-colour: var(selected); + handle-colour: var(selected); + background-colour: var(background); + foreground-colour: var(foreground); + alternate-background: var(background-alt); + normal-background: var(background); + normal-foreground: var(foreground); + urgent-background: var(urgent); + urgent-foreground: var(background); + active-background: var(active); + active-foreground: var(background); + selected-normal-background: var(selected); + selected-normal-foreground: var(background); + selected-urgent-background: var(active); + selected-urgent-foreground: var(background); + selected-active-background: var(urgent); + selected-active-foreground: var(background); + alternate-normal-background: var(background); + alternate-normal-foreground: var(foreground); + alternate-urgent-background: var(urgent); + alternate-urgent-foreground: var(background); + alternate-active-background: var(active); + alternate-active-foreground: var(background); +} + +/*****----- Main Window -----*****/ +window { + /* properties for window widget */ + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 500px; + x-offset: 0px; + y-offset: 0px; + + /* properties for all widgets */ + enabled: true; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + cursor: "default"; + background-color: @background-colour; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 30px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @border-colour; + background-color: transparent; + children: [ "inputbar", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px 10px 10px 10px; + border: 0px 0px 2px dash 0px; + border-radius: 0px; + border-color: @urgent; + background-color: @background-colour; + text-color: @foreground-colour; + children: [ "prompt", "entry" ]; +} + +prompt { + enabled: true; + background-color: inherit; + text-color: inherit; +} +textbox-prompt-colon { + enabled: true; + expand: false; + str: "::"; + background-color: inherit; + text-color: inherit; +} +entry { + enabled: true; + background-color: inherit; + text-color: inherit; + cursor: text; + placeholder: "Filter..."; + placeholder-color: inherit; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 1; + lines: 6; + cycle: true; + dynamic: true; + scrollbar: false; + layout: vertical; + reverse: false; + fixed-height: true; + fixed-columns: true; + + spacing: 0px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: "default"; +} +scrollbar { + handle-width: 5px ; + handle-color: @handle-colour; + border-radius: 0px; + background-color: @alternate-background; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 5px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: pointer; +} +element normal.normal { + background-color: var(normal-background); + text-color: var(normal-foreground); +} +element normal.urgent { + background-color: var(urgent-background); + text-color: var(urgent-foreground); +} +element normal.active { + background-color: var(active-background); + text-color: var(active-foreground); +} +element selected.normal { + background-color: var(alternate-background); + text-color: var(foreground); +} +element selected.urgent { + background-color: var(selected-urgent-background); + text-color: var(selected-urgent-foreground); +} +element selected.active { + background-color: var(selected-active-background); + text-color: var(selected-active-foreground); +} +element alternate.normal { + background-color: var(alternate-normal-background); + text-color: var(alternate-normal-foreground); +} +element alternate.urgent { + background-color: var(alternate-urgent-background); + text-color: var(alternate-urgent-foreground); +} +element alternate.active { + background-color: var(alternate-active-background); + text-color: var(alternate-active-foreground); +} +element-icon { + background-color: transparent; + text-color: inherit; + size: 24px; + cursor: inherit; +} +element-text { + background-color: transparent; + text-color: inherit; + highlight: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Mode Switcher -----*****/ +mode-switcher{ + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; +} +button { + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: inherit; + cursor: pointer; +} +button selected { + background-color: var(selected-normal-background); + text-color: var(selected-normal-foreground); +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; +} +textbox { + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: @foreground-colour; + vertical-align: 0.5; + horizontal-align: 0.0; + highlight: none; + placeholder-color: @foreground-colour; + blink: true; + markup: true; +} +error-message { + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @background-colour; + text-color: @foreground-colour; +} diff --git a/dot-config/bspwm/themes/slime/theme.bash b/dot-config/bspwm/themes/slime/theme.bash new file mode 100644 index 00000000..94715ea6 --- /dev/null +++ b/dot-config/bspwm/themes/slime/theme.bash @@ -0,0 +1,82 @@ +# ------------------------------------------------------------------------------ +# Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> +# +# Slime Theme +# ------------------------------------------------------------------------------ + +# Colors +background='#ffffff' +foreground='#383a42' +color0='#383a42' +color1='#e45649' +color2='#50a14f' +color3='#c18401' +color4='#0184bc' +color5='#a626a4' +color6='#0997b3' +color7='#909090' +color8='#383a42' +color9='#e45649' +color10='#50a14f' +color11='#c18401' +color12='#0184bc' +color13='#a626a4' +color14='#0997b3' +color15='#909090' + +accent='#0997B3' +light_value='0.40' +dark_value='0.10' + +# Wallpaper +wdir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" +wallpaper="$wdir/wallpaper" + +# Polybar +polybar_font='Iosevka Nerd Font:size=10;3' + +# Rofi +rofi_font='Iosevka 10' +rofi_icon='Papirus-Apps' + +# Terminal +terminal_font_name='JetBrainsMono Nerd Font' +terminal_font_size='10' + +# Geany +geany_colors='slime.conf' +geany_font='JetBrains Mono 10' + +# Appearance +gtk_font='Noto Sans 9' +gtk_theme='Slime' +icon_theme='Luv-Folders' +cursor_theme='Qogirr-Dark' + +# Dunst +dunst_width='300' +dunst_height='80' +dunst_offset='10x40' +dunst_origin='top-right' +dunst_font='Iosevka Custom 9' +dunst_border='0' +dunst_separator='2' + +# Picom +picom_backend='glx' +picom_corner='0' +picom_shadow_r='14' +picom_shadow_o='0.30' +picom_shadow_x='-12' +picom_shadow_y='-12' +picom_blur_method='none' +picom_blur_strength='0' + +# Bspwm +bspwm_fbc="$accent" +bspwm_nbc="$background" +bspwm_abc="$color5" +bspwm_pfc="$color2" +bspwm_border='2' +bspwm_gap='10' +bspwm_sratio='0.50' diff --git a/dot-config/bspwm/themes/slime/wallpaper b/dot-config/bspwm/themes/slime/wallpaper new file mode 120000 index 00000000..2ac8dbbb --- /dev/null +++ b/dot-config/bspwm/themes/slime/wallpaper @@ -0,0 +1 @@ +/usr/share/backgrounds/slime.jpg
\ No newline at end of file diff --git a/dot-config/bspwm/themes/spark/apply.sh b/dot-config/bspwm/themes/spark/apply.sh new file mode 100755 index 00000000..8f03cb9e --- /dev/null +++ b/dot-config/bspwm/themes/spark/apply.sh @@ -0,0 +1,278 @@ +#!/usr/bin/env bash + +## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> +## +## Script To Apply Themes + +## Theme ------------------------------------ +BDIR="$HOME/.config/bspwm" +TDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" +THEME="${TDIR##*/}" + +source "$BDIR"/themes/"$THEME"/theme.bash +altbackground="`pastel color $element_bg | pastel darken $dark_value | pastel format hex`" +altforeground="`pastel color $element_fg | pastel lighten $light_value | pastel format hex`" + +## Directories ------------------------------ +PATH_CONF="$HOME/.config" +PATH_GEANY="$PATH_CONF/geany" +PATH_BSPWM="$PATH_CONF/bspwm" +PATH_TERM="$PATH_BSPWM/alacritty" +PATH_PBAR="$PATH_BSPWM/themes/$THEME/polybar" +PATH_ROFI="$PATH_BSPWM/themes/$THEME/rofi" + +## Wallpaper --------------------------------- +apply_wallpaper() { + feh --bg-fill "$wallpaper" +} + +## Polybar ----------------------------------- +apply_polybar() { + # modify polybar launch script + sed -i -e "s/STYLE=.*/STYLE=\"$THEME\"/g" ${PATH_BSPWM}/themes/polybar.sh + + # apply default theme fonts + sed -i -e "s/font-0 = .*/font-0 = \"$polybar_font\"/g" ${PATH_PBAR}/config.ini + + # rewrite colors file + cat > ${PATH_PBAR}/colors.ini <<- EOF + [color] + + BACKGROUND = ${element_bg} + FOREGROUND = ${element_fg} + ALTBACKGROUND = ${color15} + ALTFOREGROUND = ${altforeground} + ACCENT = ${accent} + + BLACK = ${color0} + RED = ${color1} + GREEN = ${color2} + YELLOW = ${color3} + BLUE = ${color4} + MAGENTA = ${color5} + CYAN = ${color6} + WHITE = ${color7} + ALTBLACK = ${color8} + ALTRED = ${color9} + ALTGREEN = ${color10} + ALTYELLOW = ${color11} + ALTBLUE = ${color12} + ALTMAGENTA = ${color13} + ALTCYAN = ${color14} + ALTWHITE = ${color15} + EOF +} + +# Rofi -------------------------------------- +apply_rofi() { + # modify rofi scripts + sed -i -e "s/STYLE=.*/STYLE=\"$THEME\"/g" \ + ${PATH_BSPWM}/scripts/rofi_askpass \ + ${PATH_BSPWM}/scripts/rofi_asroot \ + ${PATH_BSPWM}/scripts/rofi_launcher \ + ${PATH_BSPWM}/scripts/rofi_music \ + ${PATH_BSPWM}/scripts/rofi_powermenu \ + ${PATH_BSPWM}/scripts/rofi_runner \ + ${PATH_BSPWM}/scripts/rofi_screenshot \ + ${PATH_BSPWM}/scripts/rofi_themes \ + ${PATH_BSPWM}/scripts/rofi_windows + + # apply default theme fonts + sed -i -e "s/font:.*/font: \"$rofi_font\";/g" ${PATH_ROFI}/shared/fonts.rasi + + # rewrite colors file + cat > ${PATH_ROFI}/shared/colors.rasi <<- EOF + * { + background: ${element_bg}; + background-alt: ${color15}; + foreground: ${element_fg}; + selected: ${accent}; + active: ${color10}; + urgent: ${color9}; + } + EOF + + # modify icon theme + if [[ -f "$PATH_CONF"/rofi/config.rasi ]]; then + sed -i -e "s/icon-theme:.*/icon-theme: \"$rofi_icon\";/g" ${PATH_CONF}/rofi/config.rasi + fi +} + +# Network Menu ------------------------------ +apply_netmenu() { + if [[ -f "$PATH_CONF"/networkmanager-dmenu/nmd.ini ]]; then + sed -i -e "s#dmenu_command = .*#dmenu_command = rofi -dmenu -theme $PATH_ROFI/networkmenu.rasi#g" ${PATH_CONF}/networkmanager-dmenu/nmd.ini + fi +} + +# Terminal ---------------------------------- +apply_terminal() { + # alacritty : fonts + sed -i ${PATH_TERM}/fonts.yml \ + -e "s/family: .*/family: \"$terminal_font_name\"/g" \ + -e "s/size: .*/size: $terminal_font_size/g" + + # alacritty : colors + cat > ${PATH_TERM}/colors.yml <<- _EOF_ + ## Colors configuration + colors: + # Default colors + primary: + background: '${background}' + foreground: '${foreground}' + + # Normal colors + normal: + black: '${color0}' + red: '${color1}' + green: '${color2}' + yellow: '${color3}' + blue: '${color4}' + magenta: '${color5}' + cyan: '${color6}' + white: '${color7}' + + # Bright colors + bright: + black: '${color8}' + red: '${color9}' + green: '${color10}' + yellow: '${color11}' + blue: '${color12}' + magenta: '${color13}' + cyan: '${color14}' + white: '${color15}' + _EOF_ +} + +# Geany ------------------------------------- +apply_geany() { + sed -i ${PATH_GEANY}/geany.conf \ + -e "s/color_scheme=.*/color_scheme=$geany_colors/g" \ + -e "s/editor_font=.*/editor_font=$geany_font/g" +} + +# Appearance -------------------------------- +apply_appearance() { + XFILE="$PATH_BSPWM/xsettingsd" + GTK2FILE="$HOME/.gtkrc-2.0" + GTK3FILE="$PATH_CONF/gtk-3.0/settings.ini" + + # apply gtk theme, icons, cursor & fonts + if [[ `pidof xsettingsd` ]]; then + sed -i -e "s|Net/ThemeName .*|Net/ThemeName \"$gtk_theme\"|g" ${XFILE} + sed -i -e "s|Net/IconThemeName .*|Net/IconThemeName \"$icon_theme\"|g" ${XFILE} + sed -i -e "s|Gtk/CursorThemeName .*|Gtk/CursorThemeName \"$cursor_theme\"|g" ${XFILE} + else + sed -i -e "s/gtk-font-name=.*/gtk-font-name=\"$gtk_font\"/g" ${GTK2FILE} + sed -i -e "s/gtk-theme-name=.*/gtk-theme-name=\"$gtk_theme\"/g" ${GTK2FILE} + sed -i -e "s/gtk-icon-theme-name=.*/gtk-icon-theme-name=\"$icon_theme\"/g" ${GTK2FILE} + sed -i -e "s/gtk-cursor-theme-name=.*/gtk-cursor-theme-name=\"$cursor_theme\"/g" ${GTK2FILE} + + sed -i -e "s/gtk-font-name=.*/gtk-font-name=$gtk_font/g" ${GTK3FILE} + sed -i -e "s/gtk-theme-name=.*/gtk-theme-name=$gtk_theme/g" ${GTK3FILE} + sed -i -e "s/gtk-icon-theme-name=.*/gtk-icon-theme-name=$icon_theme/g" ${GTK3FILE} + sed -i -e "s/gtk-cursor-theme-name=.*/gtk-cursor-theme-name=$cursor_theme/g" ${GTK3FILE} + fi + + # inherit cursor theme + if [[ -f "$HOME"/.icons/default/index.theme ]]; then + sed -i -e "s/Inherits=.*/Inherits=$cursor_theme/g" "$HOME"/.icons/default/index.theme + fi +} + +# Dunst ------------------------------------- +apply_dunst() { + # modify dunst config + sed -i ${PATH_BSPWM}/dunstrc \ + -e "s/width = .*/width = $dunst_width/g" \ + -e "s/height = .*/height = $dunst_height/g" \ + -e "s/offset = .*/offset = $dunst_offset/g" \ + -e "s/origin = .*/origin = $dunst_origin/g" \ + -e "s/font = .*/font = $dunst_font/g" \ + -e "s/frame_width = .*/frame_width = $dunst_border/g" \ + -e "s/separator_height = .*/separator_height = $dunst_separator/g" \ + -e "s/line_height = .*/line_height = $dunst_separator/g" + + # modify colors + sed -i '/urgency_low/Q' ${PATH_BSPWM}/dunstrc + cat >> ${PATH_BSPWM}/dunstrc <<- _EOF_ + [urgency_low] + timeout = 2 + background = "${element_bg}" + foreground = "${element_fg}" + frame_color = "${color15}" + + [urgency_normal] + timeout = 5 + background = "${element_bg}" + foreground = "${element_fg}" + frame_color = "${color15}" + + [urgency_critical] + timeout = 0 + background = "${element_bg}" + foreground = "${color9}" + frame_color = "${color9}" + _EOF_ +} + +# Compositor -------------------------------- +apply_compositor() { + picom_cfg="$PATH_BSPWM/picom.conf" + + # modify picom config + sed -i "$picom_cfg" \ + -e "s/backend = .*/backend = \"$picom_backend\";/g" \ + -e "s/corner-radius = .*/corner-radius = $picom_corner;/g" \ + -e "s/shadow-radius = .*/shadow-radius = $picom_shadow_r;/g" \ + -e "s/shadow-opacity = .*/shadow-opacity = $picom_shadow_o;/g" \ + -e "s/shadow-offset-x = .*/shadow-offset-x = $picom_shadow_x;/g" \ + -e "s/shadow-offset-y = .*/shadow-offset-y = $picom_shadow_y;/g" \ + -e "s/method = .*/method = \"$picom_blur_method\";/g" \ + -e "s/strength = .*/strength = $picom_blur_strength;/g" +} + +# BSPWM ------------------------------------- +apply_bspwm() { + # modify bspwmrc + sed -i ${PATH_BSPWM}/bspwmrc \ + -e "s/BSPWM_FBC=.*/BSPWM_FBC='$bspwm_fbc'/g" \ + -e "s/BSPWM_NBC=.*/BSPWM_NBC='$bspwm_nbc'/g" \ + -e "s/BSPWM_ABC=.*/BSPWM_ABC='$bspwm_abc'/g" \ + -e "s/BSPWM_PFC=.*/BSPWM_PFC='$bspwm_pfc'/g" \ + -e "s/BSPWM_BORDER=.*/BSPWM_BORDER='$bspwm_border'/g" \ + -e "s/BSPWM_GAP=.*/BSPWM_GAP='$bspwm_gap'/g" \ + -e "s/BSPWM_SRATIO=.*/BSPWM_SRATIO='$bspwm_sratio'/g" + + # reload bspwm + bspc wm -r +} + +# Create Theme File ------------------------- +create_file() { + theme_file="$PATH_BSPWM/themes/.current" + if [[ ! -f "$theme_file" ]]; then + touch ${theme_file} + fi + echo "$THEME" > ${theme_file} +} + +# Notify User ------------------------------- +notify_user() { + dunstify -u normal -h string:x-dunst-stack-tag:applytheme -i /usr/share/archcraft/icons/dunst/themes.png "Applying Style : $THEME" +} + +## Execute Script --------------------------- +notify_user +create_file +apply_wallpaper +apply_polybar +apply_rofi +apply_netmenu +apply_terminal +apply_geany +apply_appearance +apply_dunst +apply_compositor +apply_bspwm diff --git a/dot-config/bspwm/themes/spark/polybar/.module b/dot-config/bspwm/themes/spark/polybar/.module new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/dot-config/bspwm/themes/spark/polybar/.module diff --git a/dot-config/bspwm/themes/spark/polybar/colors.ini b/dot-config/bspwm/themes/spark/polybar/colors.ini new file mode 100644 index 00000000..f8b4d748 --- /dev/null +++ b/dot-config/bspwm/themes/spark/polybar/colors.ini @@ -0,0 +1,24 @@ +[color] + +BACKGROUND = #EEFFFF +FOREGROUND = #303030 +ALTBACKGROUND = #dee6e7 +ALTFOREGROUND = #d3d3d3 +ACCENT = #F0719B + +BLACK = #1e2541 +RED = #f0719b +GREEN = #5af7b0 +YELLOW = #ffa56b +BLUE = #57c7ff +MAGENTA = #c792ea +CYAN = #89ddff +WHITE = #eeffff +ALTBLACK = #354274 +ALTRED = #f02e6e +ALTGREEN = #2ce592 +ALTYELLOW = #ff8537 +ALTBLUE = #1da0e2 +ALTMAGENTA = #a742ea +ALTCYAN = #47bae8 +ALTWHITE = #dee6e7 diff --git a/dot-config/bspwm/themes/spark/polybar/config.ini b/dot-config/bspwm/themes/spark/polybar/config.ini new file mode 100644 index 00000000..14bc8206 --- /dev/null +++ b/dot-config/bspwm/themes/spark/polybar/config.ini @@ -0,0 +1,320 @@ +## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +;; Global WM Settings + +[global/wm] +; Adjust the _NET_WM_STRUT_PARTIAL top value +; Used for top aligned bars +margin-bottom = 0 + +; Adjust the _NET_WM_STRUT_PARTIAL bottom value +; Used for bottom aligned bars +margin-top = 0 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +;; File Inclusion +; include an external file, like module file, etc. + +include-file = ../../system.ini +include-file = ./colors.ini +include-file = ./modules.ini + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +;; Bar Settings + +[bar/main] +; Use either of the following command to list available outputs: +; If unspecified, the application will pick the first one it finds. +; $ polybar -m | cut -d ':' -f 1 +; $ xrandr -q | grep " connected" | cut -d ' ' -f1 +monitor = ${env:MONITOR:} + +; Use the specified monitor as a fallback if the main one is not found. +monitor-fallback = + +; Require the monitor to be in connected state +; XRandR sometimes reports my monitor as being disconnected (when in use) +monitor-strict = false + +; Tell the Window Manager not to configure the window. +; Use this to detach the bar if your WM is locking its size/position. +override-redirect = false + +; Put the bar at the bottom of the screen +bottom = true + +; Prefer fixed center position for the `modules-center` block +; When false, the center position will be based on the size of the other blocks. +fixed-center = true + +; Dimension defined as pixel value (e.g. 35) or percentage (e.g. 50%), +; the percentage can optionally be extended with a pixel offset like so: +; 50%:-10, this will result in a width or height of 50% minus 10 pixels +width = 70% +height = 38 + +; Offset defined as pixel value (e.g. 35) or percentage (e.g. 50%) +; the percentage can optionally be extended with a pixel offset like so: +; 50%:-10, this will result in an offset in the x or y direction +; of 50% minus 10 pixels +offset-x = 15% +offset-y = 15 + +; Background ARGB color (e.g. #f00, #ff992a, #ddff1023) +background = ${color.BACKGROUND} + +; Foreground ARGB color (e.g. #f00, #ff992a, #ddff1023) +foreground = ${color.FOREGROUND} + +; Background gradient (vertical steps) +; background-[0-9]+ = #aarrggbb +;;background-0 = + +; Value used for drawing rounded corners +; Note: This shouldn't be used together with border-size because the border +; doesn't get rounded +; Individual top/bottom values can be defined using: +; radius-{top,bottom} +radius-top = 4.0 +radius-bottom = 4.0 + +; Under-/overline pixel size and argb color +; Individual values can be defined using: +; {overline,underline}-size +; {overline,underline}-color +line-size = 2 +line-color = ${color.ACCENT} + +; Values applied to all borders +; Individual side values can be defined using: +; border-{left,top,right,bottom}-size +; border-{left,top,right,bottom}-color +; The top and bottom borders are added to the bar height, so the effective +; window height is: +; height + border-top-size + border-bottom-size +; Meanwhile the effective window width is defined entirely by the width key and +; the border is placed withing this area. So you effectively only have the +; following horizontal space on the bar: +; width - border-right-size - border-left-size +border-top-size = 0 +border-color = ${color.ACCENT} + +; Number of spaces to add at the beginning/end of the bar +; Individual side values can be defined using: +; padding-{left,right} +padding = 2 + +; Number of spaces to add before/after each module +; Individual side values can be defined using: +; module-margin-{left,right} +module-margin-left = 1 +module-margin-right = 1 + +; Fonts are defined using <font-name>;<vertical-offset> +; Font names are specified using a fontconfig pattern. +; font-0 = "Iosevka Nerd Font:size=10;3" +; font-1 = MaterialIcons:size=10 +; font-2 = Termsynu:size=8;-1 +; font-3 = FontAwesome:size=10 +; See the Fonts wiki page for more details + +font-0 = "Iosevka Nerd Font:size=10;3" +font-1 = "Iosevka Nerd Font:size=12;3" +font-2 = "Iosevka Nerd Font:size=6;3" + +; Modules are added to one of the available blocks +; modules-left = cpu ram +; modules-center = xwindow xbrightness +; modules-right = ipc clock + +;; Available modules +;; +;alsa brightness battery +;bspwm cpu date +;filesystem github i3 +;subscriber demo memory +;menu-apps mpd wired-network +;wireless-network network pulseaudio +;name_you_want temperature my-text-label +;brightness keyboard title workspaces +;; +;; User modules +;checknetwork updates window_switch launcher powermenu sysmenu menu +;; +;; Bars +;cpu_bar memory_bar filesystem_bar mpd_bar +;volume brightness battery_bar + +modules-left = bspwm sep mpd +modules-center = mod +modules-right = volume sep bna sep battery sep network sep date + +; The separator will be inserted between the output of each module +separator = + +; This value is used to add extra spacing between elements +; @deprecated: This parameter will be removed in an upcoming version +spacing = 0 + +; Opacity value between 0.0 and 1.0 used on fade in/out +dim-value = 1.0 + +; Value to be used to set the WM_NAME atom +; If the value is empty or undefined, the atom value +; will be created from the following template: polybar-[BAR]_[MONITOR] +; NOTE: The placeholders are not available for custom values +wm-name = bspwm + +; Locale used to localize various module data (e.g. date) +; Expects a valid libc locale, for example: sv_SE.UTF-8 +locale = + +; Position of the system tray window +; If empty or undefined, tray support will be disabled +; NOTE: A center aligned tray will cover center aligned modules +; +; Available positions: +; left +; center +; right +; none +tray-position = none + +; If true, the bar will not shift its +; contents when the tray changes +tray-detached = false + +; Tray icon max size +tray-maxsize = 16 + +; DEPRECATED! Since 3.3.0 the tray always uses pseudo-transparency +; Enable pseudo transparency +; Will automatically be enabled if a fully transparent +; background color is defined using `tray-background` +; tray-transparent = false + +; Background color for the tray container +; ARGB color (e.g. #f00, #ff992a, #ddff1023) +; By default the tray container will use the bar +; background color. +tray-background = ${color.BACKGROUND} + +; Tray offset defined as pixel value (e.g. 35) or percentage (e.g. 50%) +tray-offset-x = 0 +tray-offset-y = 0 + +; Pad the sides of each tray icon +tray-padding = 0 + +; Scale factor for tray clients +tray-scale = 1.0 + +; Restack the bar window and put it above the +; selected window manager's root +; +; Fixes the issue where the bar is being drawn +; on top of fullscreen window's +; +; Currently supported WM's: +; bspwm +; i3 (requires: `override-redirect = true`) +wm-restack = bspwm + +; Set a DPI values used when rendering text +; This only affects scalable fonts +; dpi = + +; Enable support for inter-process messaging +; See the Messaging wiki page for more details. +enable-ipc = true + +; Fallback click handlers that will be called if +; there's no matching module handler found. +click-left = +click-middle = +click-right = +scroll-up = bspc desktop -f prev.local +scroll-down = bspc desktop -f next.local +double-click-left = +double-click-middle = +double-click-right = + +; Requires polybar to be built with xcursor support (xcb-util-cursor) +; Possible values are: +; - default : The default pointer as before, can also be an empty string (default) +; - pointer : Typically in the form of a hand +; - ns-resize : Up and down arrows, can be used to indicate scrolling +cursor-click = +cursor-scroll = + +;; WM Workspace Specific + +; bspwm +;;scroll-up = bspwm-desknext +;;scroll-down = bspwm-deskprev +;;scroll-up = bspc desktop -f prev.local +;;scroll-down = bspc desktop -f next.local + +;i3 +;;scroll-up = i3wm-wsnext +;;scroll-down = i3wm-wsprev +;;scroll-up = i3-msg workspace next_on_output +;;scroll-down = i3-msg workspace prev_on_output + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +;; Application Settings + +[settings] +; The throttle settings lets the eventloop swallow up til X events +; if they happen within Y millisecond after first event was received. +; This is done to prevent flood of update event. +; +; For example if 5 modules emit an update event at the same time, we really +; just care about the last one. But if we wait too long for events to swallow +; the bar would appear sluggish so we continue if timeout +; expires or limit is reached. +throttle-output = 5 +throttle-output-for = 10 + +; Time in milliseconds that the input handler will wait between processing events +;throttle-input-for = 30 + +; Reload upon receiving XCB_RANDR_SCREEN_CHANGE_NOTIFY events +screenchange-reload = false + +; Compositing operators +; @see: https://www.cairographics.org/manual/cairo-cairo-t.html#cairo-operator-t +compositing-background = source +compositing-foreground = over +compositing-overline = over +compositing-underline = over +compositing-border = over + +; Define fallback values used by all module formats +;format-foreground = +;format-background = +;format-underline = +;format-overline = +;format-spacing = +;format-padding = +;format-margin = +;format-offset = + +; Enables pseudo-transparency for the bar +; If set to true the bar can be transparent without a compositor. +pseudo-transparency = false + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ +;; __________ ______ +;; / ____/ __ \/ ____/ +;; / __/ / / / / /_ +;; / /___/ /_/ / __/ +;; /_____/\____/_/ +;; +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + diff --git a/dot-config/bspwm/themes/spark/polybar/launch.sh b/dot-config/bspwm/themes/spark/polybar/launch.sh new file mode 100755 index 00000000..ae47b54c --- /dev/null +++ b/dot-config/bspwm/themes/spark/polybar/launch.sh @@ -0,0 +1,42 @@ +#!/usr/bin/env bash + +## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" +CARD="$(light -L | grep 'backlight' | head -n1 | cut -d'/' -f3)" +INTERFACE="$(ip link | awk '/state UP/ {print $2}' | tr -d :)" +RFILE="$DIR/.module" + +# Fix backlight and network modules +fix_modules() { + if [[ -z "$CARD" ]]; then + sed -i -e 's/backlight/bna/g' "$DIR"/config.ini + elif [[ "$CARD" != *"intel_"* ]]; then + sed -i -e 's/backlight/brightness/g' "$DIR"/config.ini + fi + + if [[ "$INTERFACE" == e* ]]; then + sed -i -e 's/network/ethernet/g' "$DIR"/config.ini + fi +} + +# Launch the bar +launch_bar() { + # Terminate already running bar instances + killall -q polybar + + # Wait until the processes have been shut down + while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done + + # Launch the bar + for mon in $(polybar --list-monitors | cut -d":" -f1); do + MONITOR=$mon polybar -q main -c "$DIR"/config.ini & + done +} + +# Execute functions +if [[ ! -f "$RFILE" ]]; then + fix_modules + touch "$RFILE" +fi +launch_bar diff --git a/dot-config/bspwm/themes/spark/polybar/modules.ini b/dot-config/bspwm/themes/spark/polybar/modules.ini new file mode 100644 index 00000000..d2d3046b --- /dev/null +++ b/dot-config/bspwm/themes/spark/polybar/modules.ini @@ -0,0 +1,698 @@ +## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/bspwm] +type = internal/bspwm + +pin-workspaces = true +inline-mode = false + +enable-click = true +enable-scroll = true +reverse-scroll = true + +fuzzy-match = true + +; ws-icon-[0-9]+ = label;icon +; Note that the label needs to correspond with the bspwm workspace name +ws-icon-0 = 1; +ws-icon-1 = 2; +ws-icon-2 = 3; +ws-icon-3 = 4; +ws-icon-4 = 5; +ws-icon-5 = 6; +ws-icon-6 = 7; +ws-icon-7 = 8; +ws-icon-default = + +format = <label-state> +format-font = 2 + +label-monitor = %name% + +; If any values for label-dimmed-N are defined, the workspace/mode +; colors will get overridden with those values if the monitor is out of focus +; To only override workspaces in a specific state, use: +; label-dimmed-focused +; label-dimmed-occupied +; label-dimmed-urgent +; label-dimmed-empty +;label-dimmed-foreground = ${color.FOREGROUND} +;label-dimmed-underline = ${color.YELLOW} +;label-dimmed-focused-background = ${color.BACKGROUND} + +label-focused = %name% +label-focused-foreground = ${color.ACCENT} +;label-focused-underline = ${color.ACCENT} +label-focused-padding = 1 + +label-occupied = %name% +label-occupied-foreground = ${color.ALTCYAN} +;label-occupied-underline = ${color.ALTCYAN} +label-occupied-padding = 1 + +label-urgent = %name% +label-urgent-foreground = ${color.ALTGREEN} +;label-urgent-underline = ${color.ALTGREEN} +label-urgent-padding = 1 + +label-empty = %name% +label-empty-foreground = ${color.FOREGROUND} +label-empty-padding = 1 + +; Separator in between workspaces +label-separator = "" +label-separator-padding = 0 +label-separator-foreground = ${color.ALTBACKGROUND} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/mod] +type = internal/bspwm + +format = [<label-mode>] +format-foreground = ${color.FOREGROUND} +format-padding = 1 + +label-monocle = "Monocle" +label-tiled = "Tiled" + +label-floating = ", Float" +label-pseudotiled = ", Pseudo" +label-fullscreen = ", Full" + +label-locked = " | Locked" +label-sticky = " | Sticky" +label-private = " | Private" + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/volume] +type = internal/pulseaudio + +; Sink to be used, if it exists (find using `pacmd list-sinks`, name field) +; If not, uses default sink +sink = alsa_output.pci-0000_12_00.3.analog-stereo + +; Use PA_VOLUME_UI_MAX (~153%) if true, or PA_VOLUME_NORM (100%) if false +; Default: true +use-ui-max = false + +; Interval for volume increase/decrease (in percent points) +; Default: 5 +interval = 5 + +; Available tags: +; <label-volume> (default) +; <ramp-volume> +; <bar-volume> +format-volume = <ramp-volume> <label-volume> + +; Available tags: +; <label-muted> (default) +; <ramp-volume> +; <bar-volume> +format-muted = <label-muted> + +; Available tokens: +; %percentage% (default) +label-volume = %percentage%% + +; Available tokens: +; %percentage% (default +format-muted-prefix = 婢 +format-muted-prefix-foreground = ${color.FOREGROUND} +format-muted-font = 2 +label-muted = " Mute" +;label-muted-foreground = ${color.RED} + +; Only applies if <ramp-volume> is used +ramp-volume-0 = 奄 +ramp-volume-1 = 奔 +ramp-volume-2 = 奔 +ramp-volume-3 = 墳 +ramp-volume-4 = 墳 +ramp-volume-foreground = ${color.ALTMAGENTA} +ramp-volume-font = 2 + +; If defined, it will replace <ramp-volume> when +; headphones are plugged in to `headphone_control_numid` +; If undefined, <ramp-volume> will be used for both +; Only applies if <ramp-volume> is used +;;ramp-headphones-0 = +;;ramp-headphones-1 = + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/bna] +type = custom/text + +content = " NA" +content-prefix = +content-prefix-font = 2 +content-prefix-foreground = ${color.ALTRED} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/backlight] +type = internal/xbacklight + +; Use the following command to list available cards: +; $ ls -1 /sys/class/backlight/ +card = intel_backlight + +; Available tags: +; <label> (default) +; <ramp> +; <bar> +format = <ramp> <label> + +; Available tokens: +; %percentage% (default) +label = %percentage%% + +; Only applies if <ramp> is used + +ramp-0 = +ramp-1 = +ramp-2 = +ramp-3 = +ramp-4 = +ramp-5 = +ramp-6 = +ramp-7 = +ramp-8 = +ramp-9 = +ramp-font = 2 +ramp-foreground = ${color.ALTRED} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/brightness] +type = internal/backlight + +; Use the following command to list available cards: +; $ ls -1 /sys/class/backlight/ +card = ${system.sys_graphics_card} + +enable-scroll = true + +; Available tags: +; <label> (default) +; <ramp> +; <bar> +format = <ramp> <label> + +; Available tokens: +; %percentage% (default) +label = %percentage%% + +; Only applies if <ramp> is used + +ramp-0 = +ramp-1 = +ramp-2 = +ramp-3 = +ramp-4 = +ramp-5 = +ramp-6 = +ramp-7 = +ramp-8 = +ramp-9 = +ramp-font = 2 +ramp-foreground = ${color.ALTRED} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/battery] +type = internal/battery + +; This is useful in case the battery never reports 100% charge +full-at = 99 + +; Use the following command to list batteries and adapters: +; $ ls -1 /sys/class/power_supply/ +battery = ${system.sys_battery} +adapter = ${system.sys_adapter} + +; If an inotify event haven't been reported in this many +; seconds, manually poll for new values. +; +; Needed as a fallback for systems that don't report events +; on sysfs/procfs. +; +; Disable polling by setting the interval to 0. +; +; Default: 5 +poll-interval = 2 + +; see "man date" for details on how to format the time string +; NOTE: if you want to use syntax tags here you need to use %%{...} +; Default: %H:%M:%S +time-format = %H:%M + +; Available tags: +; <label-charging> (default) +; <bar-capacity> +; <ramp-capacity> +; <animation-charging> +format-charging = <animation-charging> <label-charging> +; Available tags: +; <label-discharging> (default) +; <bar-capacity> +; <ramp-capacity> +; <animation-discharging> +format-discharging = <ramp-capacity> <label-discharging> + +; Available tags: +; <label-full> (default) +; <bar-capacity> +; <ramp-capacity> +;format-full = <ramp-capacity> <label-full> + +; Available tokens: +; %percentage% (default) +; %time% +; %consumption% (shows current charge rate in watts) + +label-charging = %percentage%% + +; Available tokens: +; %percentage% (default) +; %time% +; %consumption% (shows current discharge rate in watts) +label-discharging = %percentage%% + +; Available tokens: +; %percentage% (default) +format-full = <label-full> +format-full-font = 2 +format-full-prefix = " " +format-full-prefix-foreground = ${color.ALTGREEN} +label-full = %percentage%% + +; Only applies if <ramp-capacity> is used +ramp-capacity-0 = +ramp-capacity-1 = +ramp-capacity-2 = +ramp-capacity-3 = +ramp-capacity-4 = +ramp-capacity-foreground = ${color.ALTBLUE} +ramp-capacity-font = 2 +; Only applies if <bar-capacity> is used +;bar-capacity-width = 10 + +; Only applies if <animation-charging> is used +animation-charging-0 = +animation-charging-1 = +animation-charging-2 = +animation-charging-3 = +animation-charging-4 = +animation-charging-foreground = ${color.ALTGREEN} +animation-charging-font = 2 +; Framerate in milliseconds +animation-charging-framerate = 750 + +; Only applies if <animation-discharging> is used +;;animation-discharging-0 = +;;animation-discharging-1 = +;;animation-discharging-2 = +;;animation-discharging-3 = +;;animation-discharging-4 = +;;animation-discharging-5 = +;;animation-discharging-6 = +;;animation-discharging-7 = +;;animation-discharging-8 = + +; Framerate in milliseconds +;animation-discharging-framerate = 500 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/date] +type = internal/date + +; Seconds to sleep between updates +interval = 1.0 + +; See "http://en.cppreference.com/w/cpp/io/manip/put_time" for details on how to format the date string +; NOTE: if you want to use syntax tags here you need to use %%{...} +;;date = %Y-%m-%d% + +; Optional time format +time = %I:%M %p + +; if `date-alt` or `time-alt` is defined, clicking +; the module will toggle between formats +;;date-alt = %A, %d %B %Y +#time-alt = %d/%m/%Y% +time-alt = %b %d, %G + +; Available tags: +; <label> (default) + +format = <label> +format-prefix = " " +format-font = 2 +format-prefix-foreground = ${color.ALTCYAN} +format-padding = 0 + +; Available tokens: +; %date% +; %time% +; Default: %date% +label = %time% + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/mpd] +type = internal/mpd + +; Host where mpd is running (either ip or domain name) +; Can also be the full path to a unix socket where mpd is running. +;;host = 127.0.0.1 +;;port = 6600 +;;password = mysecretpassword + +; Seconds to sleep between progressbar/song timer sync +; Default: 1 +interval = 2 + +; Available tags: +; <label-song> (default) +; <label-time> +; <bar-progress> +; <toggle> - gets replaced with <icon-(pause|play)> +; <toggle-stop> - gets replaced with <icon-(stop|play)> +; <icon-random> +; <icon-repeat> +; <icon-repeatone> (deprecated) +; <icon-single> - Toggle playing only a single song. Replaces <icon-repeatone> +; <icon-consume> +; <icon-prev> +; <icon-stop> +; <icon-play> +; <icon-pause> +; <icon-next> +; <icon-seekb> +; <icon-seekf> +;format-online-prefix = " " +;format-online-prefix-foreground = ${color.CYAN} +;format-online = <toggle> <label-song> +format-online = <icon-prev> <toggle> <icon-next> <label-song> +;format-online-font = 2 + +format-playing = ${self.format-online} +format-paused = <toggle> <label-song> +;format-stopped = ${self.format-online} + +; Available tags: +; <label-offline> +;format-offline = <label-offline> + +; Available tokens: +; %artist% +; %album-artist% +; %album% +; %date% +; %title% +; Default: %artist% - %title% +label-song = "%title%" +label-song-maxlen = 25 +label-song-ellipsis = true + +; Available tokens: +; %elapsed% +; %total% +; Default: %elapsed% / %total% +;;abel-time = %elapsed% / %total% + +; Available tokens: +; None +label-offline = "MPD is offline" + +; Only applies if <icon-X> is used +icon-play = +icon-play-font = 2 +icon-play-foreground = ${color.ALTGREEN} +icon-pause = +icon-pause-font = 2 +icon-pause-foreground = ${color.ALTYELLOW} +icon-stop = +icon-stop-foreground = ${color.ALTRED} +icon-prev = 玲 +icon-prev-font = 2 +icon-prev-foreground = ${color.ALTMAGENTA} +icon-next = 怜 +icon-next-font = 2 +icon-next-foreground = ${color.ALTMAGENTA} +icon-seekb = ⏪ +icon-seekf = ⏩ +icon-random = 🔀 +icon-repeat = 🔁 +icon-repeatone = 🔂 +icon-single = 🔂 +icon-consume = ✀ + +; Used to display the state of random/repeat/repeatone/single +; Only applies if <icon-[random|repeat|repeatone|single]> is used +;;toggle-on-foreground = #ff +;;toggle-off-foreground = #55 + +; Only applies if <bar-progress> is used +;;bar-progress-width = 45 +;;bar-progress-indicator = | +;;bar-progress-fill = ─ +;;bar-progress-empty = ─ + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +; If you use both a wired and a wireless network, Add both modules in config.ini +[module/ethernet] +type = internal/network +interface = ${system.sys_network_interface} + +interval = 1.0 +accumulate-stats = true +unknown-as-up = true + +format-connected = <label-connected> +format-connected-prefix = "歷 " +format-connected-prefix-foreground = ${color.ALTYELLOW} +format-connected-prefix-font = 2 + +format-disconnected = <label-disconnected> +format-disconnected-prefix = "轢 " +format-disconnected-prefix-font = 2 +format-disconnected-prefix-foreground = ${color.FOREGROUND} + +label-connected = "%{A1:nmd &:}%downspeed% | %upspeed%%{A}" +label-disconnected = "%{A1:nmd &:}Offline%{A}" + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +; Normal Module +[module/network] +type = internal/network +interface = ${system.sys_network_interface} + +; Seconds to sleep between updates +; Default: 1 +interval = 1.0 + +; Test connectivity every Nth update +; A value of 0 disables the feature +; NOTE: Experimental (needs more testing) +; Default: 0 +;ping-interval = 3 + +; @deprecated: Define min width using token specifiers (%downspeed:min% and %upspeed:min%) +; Minimum output width of upload/download rate +; Default: 3 +;;udspeed-minwidth = 5 + +; Accumulate values from all interfaces +; when querying for up/downspeed rate +; Default: false +accumulate-stats = true + +; Consider an `UNKNOWN` interface state as up. +; Some devices have an unknown state, even when they're running +; Default: false +unknown-as-up = true + +; Available tags: +; <label-connected> (default) +; <ramp-signal> +format-connected = <ramp-signal> <label-connected> + +; Available tags: +; <label-disconnected> (default) + +format-disconnected-prefix = "睊 " +format-disconnected-font = 2 +format-disconnected-prefix-foreground = ${color.FOREGROUND} +format-disconnected = <label-disconnected> + +; Available tags: +; <label-connected> (default) +; <label-packetloss> +; <animation-packetloss> +;;format-packetloss = <animation-packetloss> <label-connected> + +; Available tokens: +; %ifname% [wireless+wired] +; %local_ip% [wireless+wired] +; %local_ip6% [wireless+wired] +; %essid% [wireless] +; %signal% [wireless] +; %upspeed% [wireless+wired] +; %downspeed% [wireless+wired] +; %linkspeed% [wired] +; Default: %ifname% %local_ip% +;label-connected = "%essid% %downspeed:8% %upspeed:8%" +label-connected = "%{A1:nmd &:}%essid% %downspeed%%{A}" +;;label-connected-foreground = #eefafafa + +; Available tokens: +; %ifname% [wireless+wired] +; Default: (none) +label-disconnected = "%{A1:nmd &:}NA%{A}" + +; Available tokens: +; %ifname% [wireless+wired] +; %local_ip% [wireless+wired] +; %local_ip6% [wireless+wired] +; %essid% [wireless] +; %signal% [wireless] +; %upspeed% [wireless+wired] +; %downspeed% [wireless+wired] +; %linkspeed% [wired] +; Default: (none) +;label-packetloss = %essid% +;label-packetloss-foreground = #eefafafa + +; Only applies if <ramp-signal> is used +ramp-signal-0 = 直 +ramp-signal-1 = 直 +ramp-signal-2 = 直 +ramp-signal-3 = 直 +ramp-signal-4 = 直 +ramp-signal-foreground = ${color.ALTYELLOW} +ramp-signal-font = 2 + +; Only applies if <animation-packetloss> is used +;;animation-packetloss-0 = ⚠ +;;animation-packetloss-0-foreground = #ffa64c +;;animation-packetloss-1 = ⚠ +;;animation-packetloss-1-foreground = #000000 +; Framerate in milliseconds +;;animation-packetloss-framerate = 500 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/workspaces] +type = internal/xworkspaces + +; Only show workspaces defined on the same output as the bar +; +; Useful if you want to show monitor specific workspaces +; on different bars +; +; Default: false +pin-workspaces = true + +; Create click handler used to focus desktop +; Default: true +enable-click = true + +; Create scroll handlers used to cycle desktops +; Default: true +enable-scroll = true + +; icon-[0-9]+ = <desktop-name>;<icon> +; NOTE: The desktop name needs to match the name configured by the WM +; You can get a list of the defined desktops using: +; $ xprop -root _NET_DESKTOP_NAMES +icon-0 = 1; +icon-1 = 2; +icon-2 = 3; +icon-3 = 4; +icon-4 = 5; +icon-default = + +; Available tags: +; <label-monitor> +; <label-state> - gets replaced with <label-(active|urgent|occupied|empty)> +; Default: <label-state> +format = <label-state> +format-padding = 0 +format-font = 2 + +; Available tokens: +; %name% +; Default: %name% +label-monitor = %name% + +; Available tokens: +; %name% +; %icon% +; %index% +; Default: %icon% %name% +label-active = %icon% +label-active-foreground = ${color.ACCENT} +label-active-background = ${color.BACKGROUND} +;;label-active-underline = ${color.RED} + +; Available tokens: +; %name% +; %icon% +; %index% +; Default: %icon% %name% +label-occupied = %icon% +label-occupied-foreground = ${color.ALTCYAN} +label-occupied-background = ${color.BACKGROUND} + +; Available tokens: +; %name% +; %icon% +; %index% +; Default: %icon% %name% +label-urgent = %icon% +label-urgent-foreground = ${color.ALTGREEN} +label-urgent-background = ${color.BACKGROUND} +;;label-urgent-underline = ${color.red} + +; Available tokens: +; %name% +; %icon% +; %index% +; Default: %icon% %name% +label-empty = %icon% +label-empty-foreground = ${color.ALTBACKGROUND} + +label-active-padding = 1 +label-urgent-padding = 1 +label-occupied-padding = 1 +label-empty-padding = 1 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/sep] +type = custom/text +content = +content-font = 3 + +content-foreground = ${color.ALTFOREGROUND} +content-background = ${color.BACKGROUND} +content-padding = 0 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ +;; __________ ______ +;; / ____/ __ \/ ____/ +;; / __/ / / / / /_ +;; / /___/ /_/ / __/ +;; /_____/\____/_/ +;; +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ diff --git a/dot-config/bspwm/themes/spark/rofi/askpass.rasi b/dot-config/bspwm/themes/spark/rofi/askpass.rasi new file mode 100644 index 00000000..a76a5842 --- /dev/null +++ b/dot-config/bspwm/themes/spark/rofi/askpass.rasi @@ -0,0 +1,75 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/*****----- Main Window -----*****/ +window { + location: south; + anchor: south; + fullscreen: false; + width: 350px; + x-offset: 0px; + y-offset: -68px; + padding: 20px; + border: 0px solid; + border-radius: 4px; + border-color: @selected; + background-color: @background; + cursor: "default"; + children: [ "inputbar", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + children: [ "textbox-prompt-colon", "prompt", "entry" ]; +} + +dummy { + expand: false; + width: 10px; + background-color: transparent; +} +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + padding: 10px 13px; + border-radius: 6px; + background-color: @urgent; + text-color: @background; +} +prompt { + enabled: true; + padding: 10px; + border-radius: 6px; + background-color: @selected; + text-color: @background; +} +entry { + enabled: true; + padding: 10px 15px; + border-radius: 6px; + background-color: @background-alt; + text-color: inherit; + cursor: text; + placeholder: "Password"; + placeholder-color: inherit; +} + +/*****----- Listview -----*****/ +listview { + enabled: false; +} diff --git a/dot-config/bspwm/themes/spark/rofi/asroot.rasi b/dot-config/bspwm/themes/spark/rofi/asroot.rasi new file mode 100644 index 00000000..9ef0326e --- /dev/null +++ b/dot-config/bspwm/themes/spark/rofi/asroot.rasi @@ -0,0 +1,147 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + show-icons: false; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/* +USE_ICON=NO +*/ + +/*****----- Main Window -----*****/ +window { + transparency: "real"; + location: south; + anchor: south; + fullscreen: false; + width: 400px; + x-offset: 0px; + y-offset: -68px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 4px; + border-color: @selected; + cursor: "default"; + background-color: @background; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 20px; + background-color: transparent; + children: [ "inputbar", "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 0px; + padding: 0px; + border: 0px; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + children: [ "textbox-prompt-colon", "prompt"]; +} + +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + padding: 10px 14px; + border-radius: 6px; + background-color: @selected; + text-color: @background; +} +prompt { + enabled: true; + padding: 10px; + border-radius: 0px; + background-color: @background; + text-color: @foreground; +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 10px; + border: 0px solid; + border-radius: 6px; + border-color: @selected; + background-color: @background-alt; + text-color: @foreground; +} +textbox { + background-color: inherit; + text-color: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 3; + lines: 2; + cycle: true; + scrollbar: false; + layout: vertical; + + spacing: 10px; + background-color: transparent; + cursor: "default"; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + padding: 10px; + border: 0px solid; + border-radius: 6px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + cursor: pointer; +} +element-text { + background-color: transparent; + text-color: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.5; +} + +element normal.normal, +element alternate.normal { + background-color: var(background-alt); + text-color: var(foreground); +} +element normal.urgent, +element alternate.urgent, +element selected.active { + background-color: var(urgent); + text-color: var(background); +} +element normal.active, +element alternate.active, +element selected.urgent { + background-color: var(active); + text-color: var(background); +} +element selected.normal { + background-color: var(selected); + text-color: var(background); +} diff --git a/dot-config/bspwm/themes/spark/rofi/confirm.rasi b/dot-config/bspwm/themes/spark/rofi/confirm.rasi new file mode 100644 index 00000000..f66e9121 --- /dev/null +++ b/dot-config/bspwm/themes/spark/rofi/confirm.rasi @@ -0,0 +1,147 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + show-icons: false; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/* +USE_ICON=NO +*/ + +/*****----- Main Window -----*****/ +window { + transparency: "real"; + location: southeast; + anchor: southeast; + fullscreen: false; + width: 300px; + x-offset: -15%; + y-offset: -68px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 4px; + border-color: @selected; + cursor: "default"; + background-color: @background; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 20px; + background-color: transparent; + children: [ "inputbar", "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 0px; + padding: 0px; + border: 0px; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + children: [ "textbox-prompt-colon", "prompt"]; +} + +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + padding: 10px 14px; + border-radius: 6px; + background-color: @selected; + text-color: @background; +} +prompt { + enabled: true; + padding: 10px; + border-radius: 0px; + background-color: @background; + text-color: @foreground; +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 10px; + border: 0px solid; + border-radius: 6px; + border-color: @selected; + background-color: @background-alt; + text-color: @foreground; +} +textbox { + background-color: inherit; + text-color: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 6; + lines: 1; + cycle: true; + scrollbar: false; + layout: vertical; + + spacing: 10px; + background-color: transparent; + cursor: "default"; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + padding: 10px; + border: 0px solid; + border-radius: 6px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + cursor: pointer; +} +element-text { + background-color: transparent; + text-color: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.5; +} + +element normal.normal, +element alternate.normal { + background-color: var(background-alt); + text-color: var(foreground); +} +element normal.urgent, +element alternate.urgent, +element selected.active { + background-color: var(urgent); + text-color: var(background); +} +element normal.active, +element alternate.active, +element selected.urgent { + background-color: var(active); + text-color: var(background); +} +element selected.normal { + background-color: var(selected); + text-color: var(background); +} diff --git a/dot-config/bspwm/themes/spark/rofi/launcher.rasi b/dot-config/bspwm/themes/spark/rofi/launcher.rasi new file mode 100644 index 00000000..682087f7 --- /dev/null +++ b/dot-config/bspwm/themes/spark/rofi/launcher.rasi @@ -0,0 +1,301 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + modi: "drun,run,filebrowser,window"; + show-icons: true; + display-drun: " Apps"; + display-run: " Run"; + display-filebrowser: " Files"; + display-window: " Windows"; + drun-display-format: "{name}"; + window-format: "{c} · {t}"; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +* { + border-colour: var(selected); + handle-colour: var(selected); + background-colour: var(background); + foreground-colour: var(foreground); + alternate-background: var(background-alt); + normal-background: var(background); + normal-foreground: var(foreground); + urgent-background: var(urgent); + urgent-foreground: var(background); + active-background: var(active); + active-foreground: var(background); + selected-normal-background: var(selected); + selected-normal-foreground: var(background); + selected-urgent-background: var(active); + selected-urgent-foreground: var(background); + selected-active-background: var(urgent); + selected-active-foreground: var(background); + alternate-normal-background: var(background); + alternate-normal-foreground: var(foreground); + alternate-urgent-background: var(urgent); + alternate-urgent-foreground: var(background); + alternate-active-background: var(active); + alternate-active-foreground: var(background); +} + +/*****----- Main Window -----*****/ +window { + /* properties for window widget */ + transparency: "real"; + location: southwest; + anchor: southwest; + fullscreen: false; + width: 500px; + x-offset: 15%; + y-offset: -68px; + + /* properties for all widgets */ + enabled: true; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 4px; + border-color: @border-colour; + cursor: "default"; + /* Backgroud Colors */ + background-color: @background-colour; + /* Backgroud Image */ + //background-image: url("/path/to/image.png", none); + /* Simple Linear Gradient */ + //background-image: linear-gradient(red, orange, pink, purple); + /* Directional Linear Gradient */ + //background-image: linear-gradient(to bottom, pink, yellow, magenta); + /* Angle Linear Gradient */ + //background-image: linear-gradient(45, cyan, purple, indigo); +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 20px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @border-colour; + background-color: transparent; + children: [ "inputbar", "listview", "message", "mode-switcher" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 10px; + border: 0px solid; + border-radius: 6px; + border-color: @border-colour; + background-color: @background-alt; + text-color: @foreground-colour; + children: [ "textbox-prompt-colon", "entry" ]; +} + +prompt { + enabled: true; + background-color: inherit; + text-color: inherit; +} +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + background-color: inherit; + text-color: inherit; +} +entry { + enabled: true; + background-color: inherit; + text-color: inherit; + cursor: text; + placeholder: "Search..."; + placeholder-color: inherit; +} +num-filtered-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +textbox-num-sep { + enabled: true; + expand: false; + str: "/"; + background-color: inherit; + text-color: inherit; +} +num-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +case-indicator { + enabled: true; + background-color: inherit; + text-color: inherit; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 1; + lines: 6; + cycle: true; + dynamic: true; + scrollbar: false; + layout: vertical; + reverse: false; + fixed-height: true; + fixed-columns: true; + + spacing: 5px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: "default"; +} +scrollbar { + handle-width: 5px ; + handle-color: @handle-colour; + border-radius: 10px; + background-color: @alternate-background; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 6px; + border: 0px solid; + border-radius: 6px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: pointer; +} +element normal.normal { + background-color: var(normal-background); + text-color: var(normal-foreground); +} +element normal.urgent { + background-color: var(urgent-background); + text-color: var(urgent-foreground); +} +element normal.active { + background-color: var(active-background); + text-color: var(active-foreground); +} +element selected.normal { + background-color: var(selected); + text-color: var(background); +} +element selected.urgent { + background-color: var(selected-urgent-background); + text-color: var(selected-urgent-foreground); +} +element selected.active { + background-color: var(selected-active-background); + text-color: var(selected-active-foreground); +} +element alternate.normal { + background-color: var(alternate-normal-background); + text-color: var(alternate-normal-foreground); +} +element alternate.urgent { + background-color: var(alternate-urgent-background); + text-color: var(alternate-urgent-foreground); +} +element alternate.active { + background-color: var(alternate-active-background); + text-color: var(alternate-active-foreground); +} +element-icon { + background-color: transparent; + text-color: inherit; + size: 24px; + cursor: inherit; +} +element-text { + background-color: transparent; + text-color: inherit; + highlight: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Mode Switcher -----*****/ +mode-switcher{ + enabled: true; + expand: false; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; +} +button { + padding: 10px; + border: 0px solid; + border-radius: 6px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: inherit; + cursor: pointer; +} +button selected { + background-color: var(selected); + text-color: var(background); +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 10px; + border: 0px solid; + border-radius: 6px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: @foreground-colour; +} +textbox { + border: 0px solid; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + vertical-align: 0.5; + horizontal-align: 0.0; + highlight: none; + placeholder-color: @foreground-colour; + blink: true; + markup: true; +} +error-message { + padding: 20px; + border: 0px solid; + border-radius: 6px; + border-color: @border-colour; + background-color: @background-colour; + text-color: @foreground-colour; +} diff --git a/dot-config/bspwm/themes/spark/rofi/music.rasi b/dot-config/bspwm/themes/spark/rofi/music.rasi new file mode 100644 index 00000000..aefac734 --- /dev/null +++ b/dot-config/bspwm/themes/spark/rofi/music.rasi @@ -0,0 +1,147 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + show-icons: false; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/* +USE_ICON=NO +*/ + +/*****----- Main Window -----*****/ +window { + transparency: "real"; + location: southeast; + anchor: southeast; + fullscreen: false; + width: 700px; + x-offset: -15%; + y-offset: -68px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 4px; + border-color: @selected; + cursor: "default"; + background-color: @background; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 20px; + background-color: transparent; + children: [ "inputbar", "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 0px; + padding: 0px; + border: 0px; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + children: [ "textbox-prompt-colon", "prompt"]; +} + +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + padding: 10px 14px; + border-radius: 6px; + background-color: @selected; + text-color: @background; +} +prompt { + enabled: true; + padding: 10px; + border-radius: 0px; + background-color: @background; + text-color: @foreground; +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 10px; + border: 0px solid; + border-radius: 6px; + border-color: @selected; + background-color: @background-alt; + text-color: @foreground; +} +textbox { + background-color: inherit; + text-color: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 6; + lines: 1; + cycle: true; + scrollbar: false; + layout: vertical; + + spacing: 10px; + background-color: transparent; + cursor: "default"; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + padding: 10px; + border: 0px solid; + border-radius: 6px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + cursor: pointer; +} +element-text { + background-color: transparent; + text-color: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.5; +} + +element normal.normal, +element alternate.normal { + background-color: var(background-alt); + text-color: var(foreground); +} +element normal.urgent, +element alternate.urgent, +element selected.active { + background-color: var(urgent); + text-color: var(background); +} +element normal.active, +element alternate.active, +element selected.urgent { + background-color: var(active); + text-color: var(background); +} +element selected.normal { + background-color: var(selected); + text-color: var(background); +} diff --git a/dot-config/bspwm/themes/spark/rofi/networkmenu.rasi b/dot-config/bspwm/themes/spark/rofi/networkmenu.rasi new file mode 100644 index 00000000..cda88c9e --- /dev/null +++ b/dot-config/bspwm/themes/spark/rofi/networkmenu.rasi @@ -0,0 +1,302 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + modi: "drun,run,filebrowser,window"; + show-icons: false; + display-drun: " Apps"; + display-run: " Run"; + display-filebrowser: " Files"; + display-window: " Windows"; + drun-display-format: "{name}"; + window-format: "{w} · {c} · {t}"; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +* { + border-colour: var(selected); + handle-colour: var(selected); + background-colour: var(background); + foreground-colour: var(foreground); + alternate-background: var(background-alt); + normal-background: var(background); + normal-foreground: var(foreground); + urgent-background: var(urgent); + urgent-foreground: var(background); + active-background: var(active); + active-foreground: var(background); + selected-normal-background: var(selected); + selected-normal-foreground: var(background); + selected-urgent-background: var(active); + selected-urgent-foreground: var(background); + selected-active-background: var(urgent); + selected-active-foreground: var(background); + alternate-normal-background: var(background); + alternate-normal-foreground: var(foreground); + alternate-urgent-background: var(urgent); + alternate-urgent-foreground: var(background); + alternate-active-background: var(active); + alternate-active-foreground: var(background); +} + +/*****----- Main Window -----*****/ +window { + /* properties for window widget */ + transparency: "real"; + location: southeast; + anchor: southeast; + fullscreen: false; + width: 400px; + height: 430px; + x-offset: -15%; + y-offset: -68px; + + /* properties for all widgets */ + enabled: true; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 4px; + border-color: @border-colour; + cursor: "default"; + /* Backgroud Colors */ + background-color: @background-colour; + /* Backgroud Image */ + //background-image: url("/path/to/image.png", none); + /* Simple Linear Gradient */ + //background-image: linear-gradient(red, orange, pink, purple); + /* Directional Linear Gradient */ + //background-image: linear-gradient(to bottom, pink, yellow, magenta); + /* Angle Linear Gradient */ + //background-image: linear-gradient(45, cyan, purple, indigo); +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 20px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @border-colour; + background-color: transparent; + children: [ "inputbar", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 10px; + border: 0px solid; + border-radius: 6px; + border-color: @border-colour; + background-color: @background-alt; + text-color: @foreground-colour; + children: [ "textbox-prompt-colon", "prompt", "entry" ]; +} + +prompt { + enabled: true; + background-color: inherit; + text-color: inherit; +} +textbox-prompt-colon { + enabled: true; + expand: false; + str: "直"; + background-color: inherit; + text-color: inherit; +} +entry { + enabled: true; + background-color: inherit; + text-color: inherit; + cursor: text; + placeholder: ""; + placeholder-color: inherit; +} +num-filtered-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +textbox-num-sep { + enabled: true; + expand: false; + str: "/"; + background-color: inherit; + text-color: inherit; +} +num-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +case-indicator { + enabled: true; + background-color: inherit; + text-color: inherit; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 1; + lines: 6; + cycle: true; + dynamic: true; + scrollbar: false; + layout: vertical; + reverse: false; + fixed-height: true; + fixed-columns: true; + + spacing: 5px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: "default"; +} +scrollbar { + handle-width: 5px ; + handle-color: @handle-colour; + border-radius: 10px; + background-color: @alternate-background; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 10px; + border: 0px solid; + border-radius: 6px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: pointer; +} +element normal.normal { + background-color: var(normal-background); + text-color: var(normal-foreground); +} +element normal.urgent { + background-color: var(urgent-background); + text-color: var(urgent-foreground); +} +element normal.active { + background-color: var(active-background); + text-color: var(active-foreground); +} +element selected.normal { + background-color: var(selected); + text-color: var(background); +} +element selected.urgent { + background-color: var(selected-urgent-background); + text-color: var(selected-urgent-foreground); +} +element selected.active { + background-color: var(selected-active-background); + text-color: var(selected-active-foreground); +} +element alternate.normal { + background-color: var(alternate-normal-background); + text-color: var(alternate-normal-foreground); +} +element alternate.urgent { + background-color: var(alternate-urgent-background); + text-color: var(alternate-urgent-foreground); +} +element alternate.active { + background-color: var(alternate-active-background); + text-color: var(alternate-active-foreground); +} +element-icon { + background-color: transparent; + text-color: inherit; + size: 24px; + cursor: inherit; +} +element-text { + background-color: transparent; + text-color: inherit; + highlight: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Mode Switcher -----*****/ +mode-switcher{ + enabled: true; + expand: false; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; +} +button { + padding: 10px; + border: 0px solid; + border-radius: 6px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: inherit; + cursor: pointer; +} +button selected { + background-color: var(selected); + text-color: var(foreground); +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 10px; + border: 0px solid; + border-radius: 6px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: @foreground-colour; +} +textbox { + border: 0px solid; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + vertical-align: 0.5; + horizontal-align: 0.0; + highlight: none; + placeholder-color: @foreground-colour; + blink: true; + markup: true; +} +error-message { + padding: 20px; + border: 0px solid; + border-radius: 6px; + border-color: @border-colour; + background-color: @background-colour; + text-color: @foreground-colour; +} diff --git a/dot-config/bspwm/themes/spark/rofi/powermenu.rasi b/dot-config/bspwm/themes/spark/rofi/powermenu.rasi new file mode 100644 index 00000000..d6972f15 --- /dev/null +++ b/dot-config/bspwm/themes/spark/rofi/powermenu.rasi @@ -0,0 +1,147 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + show-icons: false; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/* +USE_ICON=NO +*/ + +/*****----- Main Window -----*****/ +window { + transparency: "real"; + location: southeast; + anchor: southeast; + fullscreen: false; + width: 800px; + x-offset: -15%; + y-offset: -68px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 4px; + border-color: @selected; + cursor: "default"; + background-color: @background; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 20px; + background-color: transparent; + children: [ "inputbar", "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 0px; + padding: 0px; + border: 0px; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + children: [ "textbox-prompt-colon", "prompt"]; +} + +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + padding: 10px 14px; + border-radius: 6px; + background-color: @selected; + text-color: @background; +} +prompt { + enabled: true; + padding: 10px; + border-radius: 0px; + background-color: @background; + text-color: @foreground; +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 10px; + border: 0px solid; + border-radius: 6px; + border-color: @selected; + background-color: @background-alt; + text-color: @foreground; +} +textbox { + background-color: inherit; + text-color: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 6; + lines: 1; + cycle: true; + scrollbar: false; + layout: vertical; + + spacing: 10px; + background-color: transparent; + cursor: "default"; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + padding: 10px; + border: 0px solid; + border-radius: 6px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + cursor: pointer; +} +element-text { + background-color: transparent; + text-color: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.5; +} + +element normal.normal, +element alternate.normal { + background-color: var(background-alt); + text-color: var(foreground); +} +element normal.urgent, +element alternate.urgent, +element selected.active { + background-color: var(urgent); + text-color: var(background); +} +element normal.active, +element alternate.active, +element selected.urgent { + background-color: var(active); + text-color: var(background); +} +element selected.normal { + background-color: var(selected); + text-color: var(background); +} diff --git a/dot-config/bspwm/themes/spark/rofi/runner.rasi b/dot-config/bspwm/themes/spark/rofi/runner.rasi new file mode 100644 index 00000000..69e7e454 --- /dev/null +++ b/dot-config/bspwm/themes/spark/rofi/runner.rasi @@ -0,0 +1,301 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + modi: "run"; + show-icons: true; + display-drun: " Apps"; + display-run: " Run"; + display-filebrowser: " Files"; + display-window: " Windows"; + drun-display-format: "{name}"; + window-format: "{w} · {c} · {t}"; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +* { + border-colour: var(selected); + handle-colour: var(selected); + background-colour: var(background); + foreground-colour: var(foreground); + alternate-background: var(background-alt); + normal-background: var(background); + normal-foreground: var(foreground); + urgent-background: var(urgent); + urgent-foreground: var(background); + active-background: var(active); + active-foreground: var(background); + selected-normal-background: var(selected); + selected-normal-foreground: var(background); + selected-urgent-background: var(active); + selected-urgent-foreground: var(background); + selected-active-background: var(urgent); + selected-active-foreground: var(background); + alternate-normal-background: var(background); + alternate-normal-foreground: var(foreground); + alternate-urgent-background: var(urgent); + alternate-urgent-foreground: var(background); + alternate-active-background: var(active); + alternate-active-foreground: var(background); +} + +/*****----- Main Window -----*****/ +window { + /* properties for window widget */ + transparency: "real"; + location: southwest; + anchor: southwest; + fullscreen: false; + width: 400px; + x-offset: 15%; + y-offset: -68px; + + /* properties for all widgets */ + enabled: true; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 4px; + border-color: @border-colour; + cursor: "default"; + /* Backgroud Colors */ + background-color: @background-colour; + /* Backgroud Image */ + //background-image: url("/path/to/image.png", none); + /* Simple Linear Gradient */ + //background-image: linear-gradient(red, orange, pink, purple); + /* Directional Linear Gradient */ + //background-image: linear-gradient(to bottom, pink, yellow, magenta); + /* Angle Linear Gradient */ + //background-image: linear-gradient(45, cyan, purple, indigo); +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 20px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @border-colour; + background-color: transparent; + children: [ "inputbar", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 10px; + border: 0px solid; + border-radius: 6px; + border-color: @border-colour; + background-color: @background-alt; + text-color: @foreground-colour; + children: [ "textbox-prompt-colon", "entry" ]; +} + +prompt { + enabled: true; + background-color: inherit; + text-color: inherit; +} +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + background-color: inherit; + text-color: inherit; +} +entry { + enabled: true; + background-color: inherit; + text-color: inherit; + cursor: text; + placeholder: "Run..."; + placeholder-color: inherit; +} +num-filtered-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +textbox-num-sep { + enabled: true; + expand: false; + str: "/"; + background-color: inherit; + text-color: inherit; +} +num-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +case-indicator { + enabled: true; + background-color: inherit; + text-color: inherit; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 1; + lines: 6; + cycle: true; + dynamic: true; + scrollbar: false; + layout: vertical; + reverse: false; + fixed-height: true; + fixed-columns: true; + + spacing: 5px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: "default"; +} +scrollbar { + handle-width: 5px ; + handle-color: @handle-colour; + border-radius: 10px; + background-color: @alternate-background; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 6px; + border: 0px solid; + border-radius: 6px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: pointer; +} +element normal.normal { + background-color: var(normal-background); + text-color: var(normal-foreground); +} +element normal.urgent { + background-color: var(urgent-background); + text-color: var(urgent-foreground); +} +element normal.active { + background-color: var(active-background); + text-color: var(active-foreground); +} +element selected.normal { + background-color: var(selected); + text-color: var(background); +} +element selected.urgent { + background-color: var(selected-urgent-background); + text-color: var(selected-urgent-foreground); +} +element selected.active { + background-color: var(selected-active-background); + text-color: var(selected-active-foreground); +} +element alternate.normal { + background-color: var(alternate-normal-background); + text-color: var(alternate-normal-foreground); +} +element alternate.urgent { + background-color: var(alternate-urgent-background); + text-color: var(alternate-urgent-foreground); +} +element alternate.active { + background-color: var(alternate-active-background); + text-color: var(alternate-active-foreground); +} +element-icon { + background-color: transparent; + text-color: inherit; + size: 24px; + cursor: inherit; +} +element-text { + background-color: transparent; + text-color: inherit; + highlight: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Mode Switcher -----*****/ +mode-switcher{ + enabled: true; + expand: false; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; +} +button { + padding: 10px; + border: 0px solid; + border-radius: 6px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: inherit; + cursor: pointer; +} +button selected { + background-color: var(selected); + text-color: var(foreground); +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 10px; + border: 0px solid; + border-radius: 6px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: @foreground-colour; +} +textbox { + border: 0px solid; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + vertical-align: 0.5; + horizontal-align: 0.0; + highlight: none; + placeholder-color: @foreground-colour; + blink: true; + markup: true; +} +error-message { + padding: 20px; + border: 0px solid; + border-radius: 6px; + border-color: @border-colour; + background-color: @background-colour; + text-color: @foreground-colour; +} diff --git a/dot-config/bspwm/themes/spark/rofi/screenshot.rasi b/dot-config/bspwm/themes/spark/rofi/screenshot.rasi new file mode 100644 index 00000000..4ac14a9c --- /dev/null +++ b/dot-config/bspwm/themes/spark/rofi/screenshot.rasi @@ -0,0 +1,147 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + show-icons: false; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/* +USE_ICON=NO +*/ + +/*****----- Main Window -----*****/ +window { + transparency: "real"; + location: southeast; + anchor: southeast; + fullscreen: false; + width: 600px; + x-offset: -15%; + y-offset: -68px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 4px; + border-color: @selected; + cursor: "default"; + background-color: @background; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 20px; + background-color: transparent; + children: [ "inputbar", "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 0px; + padding: 0px; + border: 0px; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + children: [ "textbox-prompt-colon", "prompt"]; +} + +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + padding: 10px 14px; + border-radius: 6px; + background-color: @selected; + text-color: @background; +} +prompt { + enabled: true; + padding: 10px; + border-radius: 0px; + background-color: @background; + text-color: @foreground; +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 10px; + border: 0px solid; + border-radius: 6px; + border-color: @selected; + background-color: @background-alt; + text-color: @foreground; +} +textbox { + background-color: inherit; + text-color: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 3; + lines: 2; + cycle: true; + scrollbar: false; + layout: vertical; + + spacing: 10px; + background-color: transparent; + cursor: "default"; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + padding: 10px; + border: 0px solid; + border-radius: 6px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + cursor: pointer; +} +element-text { + background-color: transparent; + text-color: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.5; +} + +element normal.normal, +element alternate.normal { + background-color: var(background-alt); + text-color: var(foreground); +} +element normal.urgent, +element alternate.urgent, +element selected.active { + background-color: var(urgent); + text-color: var(background); +} +element normal.active, +element alternate.active, +element selected.urgent { + background-color: var(active); + text-color: var(background); +} +element selected.normal { + background-color: var(selected); + text-color: var(background); +} diff --git a/dot-config/bspwm/themes/spark/rofi/shared/colors.rasi b/dot-config/bspwm/themes/spark/rofi/shared/colors.rasi new file mode 100644 index 00000000..5ab278f7 --- /dev/null +++ b/dot-config/bspwm/themes/spark/rofi/shared/colors.rasi @@ -0,0 +1,8 @@ +* { + background: #EEFFFF; + background-alt: #dee6e7; + foreground: #303030; + selected: #F0719B; + active: #2ce592; + urgent: #f02e6e; +} diff --git a/dot-config/bspwm/themes/spark/rofi/shared/fonts.rasi b/dot-config/bspwm/themes/spark/rofi/shared/fonts.rasi new file mode 100644 index 00000000..d2af39fe --- /dev/null +++ b/dot-config/bspwm/themes/spark/rofi/shared/fonts.rasi @@ -0,0 +1,7 @@ +/* Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> */ + +/* Text Font */ + +* { + font: "Iosevka 10"; +} diff --git a/dot-config/bspwm/themes/spark/rofi/themes.rasi b/dot-config/bspwm/themes/spark/rofi/themes.rasi new file mode 100644 index 00000000..c230e92a --- /dev/null +++ b/dot-config/bspwm/themes/spark/rofi/themes.rasi @@ -0,0 +1,147 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + show-icons: false; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/* +USE_ICON=NO +*/ + +/*****----- Main Window -----*****/ +window { + transparency: "real"; + location: south; + anchor: south; + fullscreen: false; + width: 400px; + x-offset: 0px; + y-offset: -68px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 4px; + border-color: @selected; + cursor: "default"; + background-color: @background; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 20px; + background-color: transparent; + children: [ "inputbar", "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 0px; + padding: 0px; + border: 0px; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + children: [ "textbox-prompt-colon", "prompt"]; +} + +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + padding: 10px 14px; + border-radius: 6px; + background-color: @selected; + text-color: @background; +} +prompt { + enabled: true; + padding: 10px; + border-radius: 0px; + background-color: @background; + text-color: @foreground; +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 10px; + border: 0px solid; + border-radius: 6px; + border-color: @selected; + background-color: @background-alt; + text-color: @foreground; +} +textbox { + background-color: inherit; + text-color: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 3; + lines: 4; + cycle: true; + scrollbar: false; + layout: vertical; + + spacing: 10px; + background-color: transparent; + cursor: "default"; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + padding: 10px; + border: 0px solid; + border-radius: 6px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + cursor: pointer; +} +element-text { + background-color: transparent; + text-color: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.5; +} + +element normal.normal, +element alternate.normal { + background-color: var(background-alt); + text-color: var(foreground); +} +element normal.urgent, +element alternate.urgent, +element selected.active { + background-color: var(urgent); + text-color: var(background); +} +element normal.active, +element alternate.active, +element selected.urgent { + background-color: var(active); + text-color: var(background); +} +element selected.normal { + background-color: var(selected); + text-color: var(background); +} diff --git a/dot-config/bspwm/themes/spark/rofi/windows.rasi b/dot-config/bspwm/themes/spark/rofi/windows.rasi new file mode 100644 index 00000000..68814fc4 --- /dev/null +++ b/dot-config/bspwm/themes/spark/rofi/windows.rasi @@ -0,0 +1,301 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + modi: "drun,run,filebrowser,window"; + show-icons: true; + display-drun: " Apps"; + display-run: " Run"; + display-filebrowser: " Files"; + display-window: " Windows"; + drun-display-format: "{name}"; + window-format: "{c} · {t}"; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +* { + border-colour: var(selected); + handle-colour: var(selected); + background-colour: var(background); + foreground-colour: var(foreground); + alternate-background: var(background-alt); + normal-background: var(background); + normal-foreground: var(foreground); + urgent-background: var(urgent); + urgent-foreground: var(background); + active-background: var(active); + active-foreground: var(background); + selected-normal-background: var(selected); + selected-normal-foreground: var(background); + selected-urgent-background: var(active); + selected-urgent-foreground: var(background); + selected-active-background: var(urgent); + selected-active-foreground: var(background); + alternate-normal-background: var(background); + alternate-normal-foreground: var(foreground); + alternate-urgent-background: var(urgent); + alternate-urgent-foreground: var(background); + alternate-active-background: var(active); + alternate-active-foreground: var(background); +} + +/*****----- Main Window -----*****/ +window { + /* properties for window widget */ + transparency: "real"; + location: southwest; + anchor: southwest; + fullscreen: false; + width: 500px; + x-offset: 15%; + y-offset: -68px; + + /* properties for all widgets */ + enabled: true; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 4px; + border-color: @border-colour; + cursor: "default"; + /* Backgroud Colors */ + background-color: @background-colour; + /* Backgroud Image */ + //background-image: url("/path/to/image.png", none); + /* Simple Linear Gradient */ + //background-image: linear-gradient(red, orange, pink, purple); + /* Directional Linear Gradient */ + //background-image: linear-gradient(to bottom, pink, yellow, magenta); + /* Angle Linear Gradient */ + //background-image: linear-gradient(45, cyan, purple, indigo); +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 20px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @border-colour; + background-color: transparent; + children: [ "inputbar", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 10px; + border: 0px solid; + border-radius: 6px; + border-color: @border-colour; + background-color: @background-alt; + text-color: @foreground-colour; + children: [ "textbox-prompt-colon", "entry" ]; +} + +prompt { + enabled: true; + background-color: inherit; + text-color: inherit; +} +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + background-color: inherit; + text-color: inherit; +} +entry { + enabled: true; + background-color: inherit; + text-color: inherit; + cursor: text; + placeholder: "Filter..."; + placeholder-color: inherit; +} +num-filtered-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +textbox-num-sep { + enabled: true; + expand: false; + str: "/"; + background-color: inherit; + text-color: inherit; +} +num-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +case-indicator { + enabled: true; + background-color: inherit; + text-color: inherit; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 1; + lines: 6; + cycle: true; + dynamic: true; + scrollbar: false; + layout: vertical; + reverse: false; + fixed-height: true; + fixed-columns: true; + + spacing: 5px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: "default"; +} +scrollbar { + handle-width: 5px ; + handle-color: @handle-colour; + border-radius: 10px; + background-color: @alternate-background; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 6px; + border: 0px solid; + border-radius: 6px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: pointer; +} +element normal.normal { + background-color: var(normal-background); + text-color: var(normal-foreground); +} +element normal.urgent { + background-color: var(urgent-background); + text-color: var(urgent-foreground); +} +element normal.active { + background-color: var(active-background); + text-color: var(active-foreground); +} +element selected.normal { + background-color: var(selected); + text-color: var(background); +} +element selected.urgent { + background-color: var(selected-urgent-background); + text-color: var(selected-urgent-foreground); +} +element selected.active { + background-color: var(selected-active-background); + text-color: var(selected-active-foreground); +} +element alternate.normal { + background-color: var(alternate-normal-background); + text-color: var(alternate-normal-foreground); +} +element alternate.urgent { + background-color: var(alternate-urgent-background); + text-color: var(alternate-urgent-foreground); +} +element alternate.active { + background-color: var(alternate-active-background); + text-color: var(alternate-active-foreground); +} +element-icon { + background-color: transparent; + text-color: inherit; + size: 24px; + cursor: inherit; +} +element-text { + background-color: transparent; + text-color: inherit; + highlight: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Mode Switcher -----*****/ +mode-switcher{ + enabled: true; + expand: false; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; +} +button { + padding: 10px; + border: 0px solid; + border-radius: 6px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: inherit; + cursor: pointer; +} +button selected { + background-color: var(selected); + text-color: var(foreground); +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 10px; + border: 0px solid; + border-radius: 6px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: @foreground-colour; +} +textbox { + border: 0px solid; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + vertical-align: 0.5; + horizontal-align: 0.0; + highlight: none; + placeholder-color: @foreground-colour; + blink: true; + markup: true; +} +error-message { + padding: 20px; + border: 0px solid; + border-radius: 6px; + border-color: @border-colour; + background-color: @background-colour; + text-color: @foreground-colour; +} diff --git a/dot-config/bspwm/themes/spark/theme.bash b/dot-config/bspwm/themes/spark/theme.bash new file mode 100644 index 00000000..524b6610 --- /dev/null +++ b/dot-config/bspwm/themes/spark/theme.bash @@ -0,0 +1,85 @@ +# ------------------------------------------------------------------------------ +# Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> +# +# Spark Theme +# ------------------------------------------------------------------------------ + +# Colors +background='#1e2541' +foreground='#eeffff' +color0='#1e2541' +color1='#f0719b' +color2='#5af7b0' +color3='#ffa56b' +color4='#57c7ff' +color5='#c792ea' +color6='#89ddff' +color7='#eeffff' +color8='#354274' +color9='#f02e6e' +color10='#2ce592' +color11='#ff8537' +color12='#1da0e2' +color13='#a742ea' +color14='#47bae8' +color15='#dee6e7' + +accent='#F0719B' +element_bg='#EEFFFF' +element_fg='#303030' + +light_value='0.64' +dark_value='0.08' + +# Wallpaper +wdir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" +wallpaper="$wdir/wallpaper" + +# Polybar +polybar_font='Iosevka Nerd Font:size=10;3' + +# Rofi +rofi_font='Iosevka 10' +rofi_icon='Papirus-Apps' + +# Terminal +terminal_font_name='JetBrainsMono Nerd Font' +terminal_font_size='10' + +# Geany +geany_colors='spark.conf' +geany_font='JetBrains Mono 10' + +# Appearance +gtk_font='Noto Sans 9' +gtk_theme='Spark' +icon_theme='Luv-Folders' +cursor_theme='Vimix' + +# Dunst +dunst_width='300' +dunst_height='80' +dunst_offset='30x30' +dunst_origin='top-right' +dunst_font='Iosevka Custom 9' +dunst_border='0' +dunst_separator='2' + +# Picom +picom_backend='glx' +picom_corner='0' +picom_shadow_r='14' +picom_shadow_o='0.30' +picom_shadow_x='-12' +picom_shadow_y='-12' +picom_blur_method='none' +picom_blur_strength='0' + +# Bspwm +bspwm_fbc="$accent" +bspwm_nbc="$background" +bspwm_abc="$color5" +bspwm_pfc="$color2" +bspwm_border='2' +bspwm_gap='15' +bspwm_sratio='0.50' diff --git a/dot-config/bspwm/themes/spark/wallpaper b/dot-config/bspwm/themes/spark/wallpaper new file mode 120000 index 00000000..0b57fe22 --- /dev/null +++ b/dot-config/bspwm/themes/spark/wallpaper @@ -0,0 +1 @@ +/usr/share/backgrounds/spark.jpg
\ No newline at end of file diff --git a/dot-config/bspwm/themes/system.ini b/dot-config/bspwm/themes/system.ini new file mode 100644 index 00000000..f4466105 --- /dev/null +++ b/dot-config/bspwm/themes/system.ini @@ -0,0 +1,25 @@ +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ +;; +;; System Variables (Edit according to your system) +;; +;; Warning : DO NOT DELETE THIS FILE +;; +;; Run `ls -1 /sys/class/power_supply/` to list list batteries and adapters. +;; +;; Run `ls -1 /sys/class/backlight/` to list available graphics cards. +;; +;; Run `ip link | awk '/state UP/ {print $2}' | tr -d :` to get active network interface. +;; +;; Polybar Variables For Modules : +;; card = ${system.sys_graphics_card} +;; battery = ${system.sys_battery} +;; adapter = ${system.sys_adapter} +;; interface = ${system.sys_network_interface} + +[system] +sys_adapter = ACAD +sys_battery = BAT1 +sys_graphics_card = amdgpu_bl0 +sys_network_interface = wlan0 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ diff --git a/dot-config/bspwm/themes/wave/apply.sh b/dot-config/bspwm/themes/wave/apply.sh new file mode 100755 index 00000000..83e008a5 --- /dev/null +++ b/dot-config/bspwm/themes/wave/apply.sh @@ -0,0 +1,286 @@ +#!/usr/bin/env bash + +## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> +## +## Script To Apply Themes + +## Theme ------------------------------------ +BDIR="$HOME/.config/bspwm" +TDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" +THEME="${TDIR##*/}" + +source "$BDIR"/themes/"$THEME"/theme.bash +altbackground="`pastel color $element_bg | pastel lighten $light_value | pastel format hex`" +altforeground="`pastel color $element_fg | pastel darken $dark_value | pastel format hex`" +modbackground=(`pastel gradient -n 7 $element_bg $altbackground | pastel format hex`) + +## Directories ------------------------------ +PATH_CONF="$HOME/.config" +PATH_GEANY="$PATH_CONF/geany" +PATH_BSPWM="$PATH_CONF/bspwm" +PATH_TERM="$PATH_BSPWM/alacritty" +PATH_PBAR="$PATH_BSPWM/themes/$THEME/polybar" +PATH_ROFI="$PATH_BSPWM/themes/$THEME/rofi" + +## Wallpaper --------------------------------- +apply_wallpaper() { + feh --bg-fill "$wallpaper" +} + +## Polybar ----------------------------------- +apply_polybar() { + # modify polybar launch script + sed -i -e "s/STYLE=.*/STYLE=\"$THEME\"/g" ${PATH_BSPWM}/themes/polybar.sh + + # apply default theme fonts + sed -i -e "s/font-0 = .*/font-0 = \"$polybar_font\"/g" ${PATH_PBAR}/config.ini + + # rewrite colors file + cat > ${PATH_PBAR}/colors.ini <<- EOF + [color] + + BACKGROUND = ${element_bg} + FOREGROUND = ${element_fg} + ALTBACKGROUND = ${altbackground} + ALTFOREGROUND = ${altforeground} + ACCENT = ${accent} + + BLACK = ${color0} + RED = ${color1} + GREEN = ${color2} + YELLOW = ${color3} + BLUE = ${color4} + MAGENTA = ${color5} + CYAN = ${color6} + WHITE = ${color7} + ALTBLACK = ${color8} + ALTRED = ${color9} + ALTGREEN = ${color10} + ALTYELLOW = ${color11} + ALTBLUE = ${color12} + ALTMAGENTA = ${color13} + ALTCYAN = ${color14} + ALTWHITE = ${color15} + + BACKGROUND1 = ${modbackground[1]} + BACKGROUND2 = ${modbackground[2]} + BACKGROUND3 = ${modbackground[3]} + BACKGROUND4 = ${modbackground[4]} + BACKGROUND5 = ${modbackground[5]} + BACKGROUND6 = ${modbackground[6]} + EOF +} + +# Rofi -------------------------------------- +apply_rofi() { + # modify rofi scripts + sed -i -e "s/STYLE=.*/STYLE=\"$THEME\"/g" \ + ${PATH_BSPWM}/scripts/rofi_askpass \ + ${PATH_BSPWM}/scripts/rofi_asroot \ + ${PATH_BSPWM}/scripts/rofi_launcher \ + ${PATH_BSPWM}/scripts/rofi_music \ + ${PATH_BSPWM}/scripts/rofi_powermenu \ + ${PATH_BSPWM}/scripts/rofi_runner \ + ${PATH_BSPWM}/scripts/rofi_screenshot \ + ${PATH_BSPWM}/scripts/rofi_themes \ + ${PATH_BSPWM}/scripts/rofi_windows + + # apply default theme fonts + sed -i -e "s/font:.*/font: \"$rofi_font\";/g" ${PATH_ROFI}/shared/fonts.rasi + + # rewrite colors file + cat > ${PATH_ROFI}/shared/colors.rasi <<- EOF + * { + background: ${element_bg}; + background-alt: ${modbackground[2]}; + foreground: ${element_fg}; + selected: ${accent}; + active: ${color2}; + urgent: ${color1}; + } + EOF + + # modify icon theme + if [[ -f "$PATH_CONF"/rofi/config.rasi ]]; then + sed -i -e "s/icon-theme:.*/icon-theme: \"$rofi_icon\";/g" ${PATH_CONF}/rofi/config.rasi + fi +} + +# Network Menu ------------------------------ +apply_netmenu() { + if [[ -f "$PATH_CONF"/networkmanager-dmenu/nmd.ini ]]; then + sed -i -e "s#dmenu_command = .*#dmenu_command = rofi -dmenu -theme $PATH_ROFI/networkmenu.rasi#g" ${PATH_CONF}/networkmanager-dmenu/nmd.ini + fi +} + +# Terminal ---------------------------------- +apply_terminal() { + # alacritty : fonts + sed -i ${PATH_TERM}/fonts.yml \ + -e "s/family: .*/family: \"$terminal_font_name\"/g" \ + -e "s/size: .*/size: $terminal_font_size/g" + + # alacritty : colors + cat > ${PATH_TERM}/colors.yml <<- _EOF_ + ## Colors configuration + colors: + # Default colors + primary: + background: '${background}' + foreground: '${foreground}' + + # Normal colors + normal: + black: '${color0}' + red: '${color1}' + green: '${color2}' + yellow: '${color3}' + blue: '${color4}' + magenta: '${color5}' + cyan: '${color6}' + white: '${color7}' + + # Bright colors + bright: + black: '${color8}' + red: '${color9}' + green: '${color10}' + yellow: '${color11}' + blue: '${color12}' + magenta: '${color13}' + cyan: '${color14}' + white: '${color15}' + _EOF_ +} + +# Geany ------------------------------------- +apply_geany() { + sed -i ${PATH_GEANY}/geany.conf \ + -e "s/color_scheme=.*/color_scheme=$geany_colors/g" \ + -e "s/editor_font=.*/editor_font=$geany_font/g" +} + +# Appearance -------------------------------- +apply_appearance() { + XFILE="$PATH_BSPWM/xsettingsd" + GTK2FILE="$HOME/.gtkrc-2.0" + GTK3FILE="$PATH_CONF/gtk-3.0/settings.ini" + + # apply gtk theme, icons, cursor & fonts + if [[ `pidof xsettingsd` ]]; then + sed -i -e "s|Net/ThemeName .*|Net/ThemeName \"$gtk_theme\"|g" ${XFILE} + sed -i -e "s|Net/IconThemeName .*|Net/IconThemeName \"$icon_theme\"|g" ${XFILE} + sed -i -e "s|Gtk/CursorThemeName .*|Gtk/CursorThemeName \"$cursor_theme\"|g" ${XFILE} + else + sed -i -e "s/gtk-font-name=.*/gtk-font-name=\"$gtk_font\"/g" ${GTK2FILE} + sed -i -e "s/gtk-theme-name=.*/gtk-theme-name=\"$gtk_theme\"/g" ${GTK2FILE} + sed -i -e "s/gtk-icon-theme-name=.*/gtk-icon-theme-name=\"$icon_theme\"/g" ${GTK2FILE} + sed -i -e "s/gtk-cursor-theme-name=.*/gtk-cursor-theme-name=\"$cursor_theme\"/g" ${GTK2FILE} + + sed -i -e "s/gtk-font-name=.*/gtk-font-name=$gtk_font/g" ${GTK3FILE} + sed -i -e "s/gtk-theme-name=.*/gtk-theme-name=$gtk_theme/g" ${GTK3FILE} + sed -i -e "s/gtk-icon-theme-name=.*/gtk-icon-theme-name=$icon_theme/g" ${GTK3FILE} + sed -i -e "s/gtk-cursor-theme-name=.*/gtk-cursor-theme-name=$cursor_theme/g" ${GTK3FILE} + fi + + # inherit cursor theme + if [[ -f "$HOME"/.icons/default/index.theme ]]; then + sed -i -e "s/Inherits=.*/Inherits=$cursor_theme/g" "$HOME"/.icons/default/index.theme + fi +} + +# Dunst ------------------------------------- +apply_dunst() { + # modify dunst config + sed -i ${PATH_BSPWM}/dunstrc \ + -e "s/width = .*/width = $dunst_width/g" \ + -e "s/height = .*/height = $dunst_height/g" \ + -e "s/offset = .*/offset = $dunst_offset/g" \ + -e "s/origin = .*/origin = $dunst_origin/g" \ + -e "s/font = .*/font = $dunst_font/g" \ + -e "s/frame_width = .*/frame_width = $dunst_border/g" \ + -e "s/separator_height = .*/separator_height = $dunst_separator/g" \ + -e "s/line_height = .*/line_height = $dunst_separator/g" + + # modify colors + sed -i '/urgency_low/Q' ${PATH_BSPWM}/dunstrc + cat >> ${PATH_BSPWM}/dunstrc <<- _EOF_ + [urgency_low] + timeout = 2 + background = "${element_bg}" + foreground = "${element_fg}" + frame_color = "${altbackground}" + + [urgency_normal] + timeout = 5 + background = "${element_bg}" + foreground = "${element_fg}" + frame_color = "${altbackground}" + + [urgency_critical] + timeout = 0 + background = "${element_bg}" + foreground = "${color1}" + frame_color = "${color1}" + _EOF_ +} + +# Compositor -------------------------------- +apply_compositor() { + picom_cfg="$PATH_BSPWM/picom.conf" + + # modify picom config + sed -i "$picom_cfg" \ + -e "s/backend = .*/backend = \"$picom_backend\";/g" \ + -e "s/corner-radius = .*/corner-radius = $picom_corner;/g" \ + -e "s/shadow-radius = .*/shadow-radius = $picom_shadow_r;/g" \ + -e "s/shadow-opacity = .*/shadow-opacity = $picom_shadow_o;/g" \ + -e "s/shadow-offset-x = .*/shadow-offset-x = $picom_shadow_x;/g" \ + -e "s/shadow-offset-y = .*/shadow-offset-y = $picom_shadow_y;/g" \ + -e "s/method = .*/method = \"$picom_blur_method\";/g" \ + -e "s/strength = .*/strength = $picom_blur_strength;/g" +} + +# BSPWM ------------------------------------- +apply_bspwm() { + # modify bspwmrc + sed -i ${PATH_BSPWM}/bspwmrc \ + -e "s/BSPWM_FBC=.*/BSPWM_FBC='$bspwm_fbc'/g" \ + -e "s/BSPWM_NBC=.*/BSPWM_NBC='$bspwm_nbc'/g" \ + -e "s/BSPWM_ABC=.*/BSPWM_ABC='$bspwm_abc'/g" \ + -e "s/BSPWM_PFC=.*/BSPWM_PFC='$bspwm_pfc'/g" \ + -e "s/BSPWM_BORDER=.*/BSPWM_BORDER='$bspwm_border'/g" \ + -e "s/BSPWM_GAP=.*/BSPWM_GAP='$bspwm_gap'/g" \ + -e "s/BSPWM_SRATIO=.*/BSPWM_SRATIO='$bspwm_sratio'/g" + + # reload bspwm + bspc wm -r +} + +# Create Theme File ------------------------- +create_file() { + theme_file="$PATH_BSPWM/themes/.current" + if [[ ! -f "$theme_file" ]]; then + touch ${theme_file} + fi + echo "$THEME" > ${theme_file} +} + +# Notify User ------------------------------- +notify_user() { + dunstify -u normal -h string:x-dunst-stack-tag:applytheme -i /usr/share/archcraft/icons/dunst/themes.png "Applying Style : $THEME" +} + +## Execute Script --------------------------- +notify_user +create_file +apply_wallpaper +apply_polybar +apply_rofi +apply_netmenu +apply_terminal +apply_geany +apply_appearance +apply_dunst +apply_compositor +apply_bspwm diff --git a/dot-config/bspwm/themes/wave/polybar/.module b/dot-config/bspwm/themes/wave/polybar/.module new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/dot-config/bspwm/themes/wave/polybar/.module diff --git a/dot-config/bspwm/themes/wave/polybar/colors.ini b/dot-config/bspwm/themes/wave/polybar/colors.ini new file mode 100644 index 00000000..4bfb9b25 --- /dev/null +++ b/dot-config/bspwm/themes/wave/polybar/colors.ini @@ -0,0 +1,31 @@ +[color] + +BACKGROUND = #3D4C5F +FOREGROUND = #F8F8F8 +ALTBACKGROUND = #556984 +ALTFOREGROUND = #acacac +ACCENT = #BD99FF + +BLACK = #3d4c5f +RED = #f48fb1 +GREEN = #a1efd3 +YELLOW = #f1fa8c +BLUE = #92b6f4 +MAGENTA = #bd99ff +CYAN = #87dfeb +WHITE = #f8f8f2 +ALTBLACK = #56687e +ALTRED = #ee4f84 +ALTGREEN = #53e2ae +ALTYELLOW = #f1ff52 +ALTBLUE = #6498ef +ALTMAGENTA = #985eff +ALTCYAN = #24d1e7 +ALTWHITE = #e5e5e5 + +BACKGROUND1 = #415165 +BACKGROUND2 = #45556b +BACKGROUND3 = #495a71 +BACKGROUND4 = #4d5f77 +BACKGROUND5 = #51647e +BACKGROUND6 = #556984 diff --git a/dot-config/bspwm/themes/wave/polybar/config.ini b/dot-config/bspwm/themes/wave/polybar/config.ini new file mode 100644 index 00000000..a01ce3d5 --- /dev/null +++ b/dot-config/bspwm/themes/wave/polybar/config.ini @@ -0,0 +1,320 @@ +## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +;; Global WM Settings + +[global/wm] +; Adjust the _NET_WM_STRUT_PARTIAL top value +; Used for top aligned bars +margin-bottom = 0 + +; Adjust the _NET_WM_STRUT_PARTIAL bottom value +; Used for bottom aligned bars +margin-top = 0 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +;; File Inclusion +; include an external file, like module file, etc. + +include-file = ../../system.ini +include-file = ./colors.ini +include-file = ./modules.ini + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +;; Bar Settings + +[bar/main] +; Use either of the following command to list available outputs: +; If unspecified, the application will pick the first one it finds. +; $ polybar -m | cut -d ':' -f 1 +; $ xrandr -q | grep " connected" | cut -d ' ' -f1 +monitor = ${env:MONITOR:} + +; Use the specified monitor as a fallback if the main one is not found. +monitor-fallback = + +; Require the monitor to be in connected state +; XRandR sometimes reports my monitor as being disconnected (when in use) +monitor-strict = false + +; Tell the Window Manager not to configure the window. +; Use this to detach the bar if your WM is locking its size/position. +override-redirect = false + +; Put the bar at the bottom of the screen +bottom = true + +; Prefer fixed center position for the `modules-center` block +; When false, the center position will be based on the size of the other blocks. +fixed-center = true + +; Dimension defined as pixel value (e.g. 35) or percentage (e.g. 50%), +; the percentage can optionally be extended with a pixel offset like so: +; 50%:-10, this will result in a width or height of 50% minus 10 pixels +width = 100% +height = 38 + +; Offset defined as pixel value (e.g. 35) or percentage (e.g. 50%) +; the percentage can optionally be extended with a pixel offset like so: +; 50%:-10, this will result in an offset in the x or y direction +; of 50% minus 10 pixels +offset-x = 0% +offset-y = 0% + +; Background ARGB color (e.g. #f00, #ff992a, #ddff1023) +background = ${color.BACKGROUND} + +; Foreground ARGB color (e.g. #f00, #ff992a, #ddff1023) +foreground = ${color.FOREGROUND} + +; Background gradient (vertical steps) +; background-[0-9]+ = #aarrggbb +;;background-0 = + +; Value used for drawing rounded corners +; Note: This shouldn't be used together with border-size because the border +; doesn't get rounded +; Individual top/bottom values can be defined using: +; radius-{top,bottom} +radius-top = 0.0 +radius-bottom = 0.0 + +; Under-/overline pixel size and argb color +; Individual values can be defined using: +; {overline,underline}-size +; {overline,underline}-color +line-size = 4 +line-color = ${color.ACCENT} + +; Values applied to all borders +; Individual side values can be defined using: +; border-{left,top,right,bottom}-size +; border-{left,top,right,bottom}-color +; The top and bottom borders are added to the bar height, so the effective +; window height is: +; height + border-top-size + border-bottom-size +; Meanwhile the effective window width is defined entirely by the width key and +; the border is placed withing this area. So you effectively only have the +; following horizontal space on the bar: +; width - border-right-size - border-left-size +border-top-size = 0 +border-color = ${color.ACCENT} + +; Number of spaces to add at the beginning/end of the bar +; Individual side values can be defined using: +; padding-{left,right} +padding = 0 + +; Number of spaces to add before/after each module +; Individual side values can be defined using: +; module-margin-{left,right} +module-margin-left = 0 +module-margin-right = 0 + +; Fonts are defined using <font-name>;<vertical-offset> +; Font names are specified using a fontconfig pattern. +; font-0 = "Iosevka Nerd Font:size=10;3" +; font-1 = MaterialIcons:size=10 +; font-2 = Termsynu:size=8;-1 +; font-3 = FontAwesome:size=10 +; See the Fonts wiki page for more details + +font-0 = "Iosevka Nerd Font:size=10;3" +font-1 = "Iosevka Nerd Font:size=12;3" +font-2 = "Iosevka Nerd Font:size=6;3" + +; Modules are added to one of the available blocks +; modules-left = cpu ram +; modules-center = xwindow xbrightness +; modules-right = ipc clock + +;; Available modules +;; +;alsa brightness battery +;bspwm cpu date +;filesystem github i3 +;subscriber demo memory +;menu-apps mpd wired-network +;wireless-network network pulseaudio +;name_you_want temperature my-text-label +;brightness keyboard title workspaces +;; +;; User modules +;checknetwork updates window_switch launcher powermenu sysmenu menu +;; +;; Bars +;cpu_bar memory_bar filesystem_bar mpd_bar +;volume brightness battery_bar + +modules-left = menu mpd +modules-center = mod sep bspwm +modules-right = volume bna battery network date + +; The separator will be inserted between the output of each module +separator = + +; This value is used to add extra spacing between elements +; @deprecated: This parameter will be removed in an upcoming version +spacing = 0 + +; Opacity value between 0.0 and 1.0 used on fade in/out +dim-value = 1.0 + +; Value to be used to set the WM_NAME atom +; If the value is empty or undefined, the atom value +; will be created from the following template: polybar-[BAR]_[MONITOR] +; NOTE: The placeholders are not available for custom values +wm-name = bspwm + +; Locale used to localize various module data (e.g. date) +; Expects a valid libc locale, for example: sv_SE.UTF-8 +locale = + +; Position of the system tray window +; If empty or undefined, tray support will be disabled +; NOTE: A center aligned tray will cover center aligned modules +; +; Available positions: +; left +; center +; right +; none +tray-position = right + +; If true, the bar will not shift its +; contents when the tray changes +tray-detached = false + +; Tray icon max size +tray-maxsize = 16 + +; DEPRECATED! Since 3.3.0 the tray always uses pseudo-transparency +; Enable pseudo transparency +; Will automatically be enabled if a fully transparent +; background color is defined using `tray-background` +; tray-transparent = false + +; Background color for the tray container +; ARGB color (e.g. #f00, #ff992a, #ddff1023) +; By default the tray container will use the bar +; background color. +tray-background = ${color.BACKGROUND6} + +; Tray offset defined as pixel value (e.g. 35) or percentage (e.g. 50%) +tray-offset-x = 0 +tray-offset-y = 0 + +; Pad the sides of each tray icon +tray-padding = 0 + +; Scale factor for tray clients +tray-scale = 1.0 + +; Restack the bar window and put it above the +; selected window manager's root +; +; Fixes the issue where the bar is being drawn +; on top of fullscreen window's +; +; Currently supported WM's: +; bspwm +; i3 (requires: `override-redirect = true`) +wm-restack = bspwm + +; Set a DPI values used when rendering text +; This only affects scalable fonts +; dpi = + +; Enable support for inter-process messaging +; See the Messaging wiki page for more details. +enable-ipc = true + +; Fallback click handlers that will be called if +; there's no matching module handler found. +click-left = +click-middle = +click-right = +scroll-up = bspc desktop -f prev.local +scroll-down = bspc desktop -f next.local +double-click-left = +double-click-middle = +double-click-right = + +; Requires polybar to be built with xcursor support (xcb-util-cursor) +; Possible values are: +; - default : The default pointer as before, can also be an empty string (default) +; - pointer : Typically in the form of a hand +; - ns-resize : Up and down arrows, can be used to indicate scrolling +cursor-click = +cursor-scroll = + +;; WM Workspace Specific + +; bspwm +;;scroll-up = bspwm-desknext +;;scroll-down = bspwm-deskprev +;;scroll-up = bspc desktop -f prev.local +;;scroll-down = bspc desktop -f next.local + +;i3 +;;scroll-up = i3wm-wsnext +;;scroll-down = i3wm-wsprev +;;scroll-up = i3-msg workspace next_on_output +;;scroll-down = i3-msg workspace prev_on_output + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +;; Application Settings + +[settings] +; The throttle settings lets the eventloop swallow up til X events +; if they happen within Y millisecond after first event was received. +; This is done to prevent flood of update event. +; +; For example if 5 modules emit an update event at the same time, we really +; just care about the last one. But if we wait too long for events to swallow +; the bar would appear sluggish so we continue if timeout +; expires or limit is reached. +throttle-output = 5 +throttle-output-for = 10 + +; Time in milliseconds that the input handler will wait between processing events +;throttle-input-for = 30 + +; Reload upon receiving XCB_RANDR_SCREEN_CHANGE_NOTIFY events +screenchange-reload = false + +; Compositing operators +; @see: https://www.cairographics.org/manual/cairo-cairo-t.html#cairo-operator-t +compositing-background = source +compositing-foreground = over +compositing-overline = over +compositing-underline = over +compositing-border = over + +; Define fallback values used by all module formats +;format-foreground = +;format-background = +;format-underline = +;format-overline = +;format-spacing = +;format-padding = +;format-margin = +;format-offset = + +; Enables pseudo-transparency for the bar +; If set to true the bar can be transparent without a compositor. +pseudo-transparency = false + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ +;; __________ ______ +;; / ____/ __ \/ ____/ +;; / __/ / / / / /_ +;; / /___/ /_/ / __/ +;; /_____/\____/_/ +;; +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + diff --git a/dot-config/bspwm/themes/wave/polybar/launch.sh b/dot-config/bspwm/themes/wave/polybar/launch.sh new file mode 100755 index 00000000..ae47b54c --- /dev/null +++ b/dot-config/bspwm/themes/wave/polybar/launch.sh @@ -0,0 +1,42 @@ +#!/usr/bin/env bash + +## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" +CARD="$(light -L | grep 'backlight' | head -n1 | cut -d'/' -f3)" +INTERFACE="$(ip link | awk '/state UP/ {print $2}' | tr -d :)" +RFILE="$DIR/.module" + +# Fix backlight and network modules +fix_modules() { + if [[ -z "$CARD" ]]; then + sed -i -e 's/backlight/bna/g' "$DIR"/config.ini + elif [[ "$CARD" != *"intel_"* ]]; then + sed -i -e 's/backlight/brightness/g' "$DIR"/config.ini + fi + + if [[ "$INTERFACE" == e* ]]; then + sed -i -e 's/network/ethernet/g' "$DIR"/config.ini + fi +} + +# Launch the bar +launch_bar() { + # Terminate already running bar instances + killall -q polybar + + # Wait until the processes have been shut down + while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done + + # Launch the bar + for mon in $(polybar --list-monitors | cut -d":" -f1); do + MONITOR=$mon polybar -q main -c "$DIR"/config.ini & + done +} + +# Execute functions +if [[ ! -f "$RFILE" ]]; then + fix_modules + touch "$RFILE" +fi +launch_bar diff --git a/dot-config/bspwm/themes/wave/polybar/modules.ini b/dot-config/bspwm/themes/wave/polybar/modules.ini new file mode 100644 index 00000000..f58e3d48 --- /dev/null +++ b/dot-config/bspwm/themes/wave/polybar/modules.ini @@ -0,0 +1,734 @@ +## Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/bspwm] +type = internal/bspwm + +pin-workspaces = true +inline-mode = false + +enable-click = true +enable-scroll = true +reverse-scroll = true + +fuzzy-match = true + +; ws-icon-[0-9]+ = label;icon +; Note that the label needs to correspond with the bspwm workspace name +ws-icon-0 = 1; +ws-icon-1 = 2; +ws-icon-2 = 3; +ws-icon-3 = 4; +ws-icon-4 = 5; +ws-icon-5 = 6; +ws-icon-6 = 7; +ws-icon-7 = 8; +ws-icon-default = + +format = <label-state> +format-font = 2 + +label-monitor = %name% + +; If any values for label-dimmed-N are defined, the workspace/mode +; colors will get overridden with those values if the monitor is out of focus +; To only override workspaces in a specific state, use: +; label-dimmed-focused +; label-dimmed-occupied +; label-dimmed-urgent +; label-dimmed-empty +;label-dimmed-foreground = ${color.FOREGROUND} +;label-dimmed-underline = ${color.YELLOW} +;label-dimmed-focused-background = ${color.BACKGROUND} + +label-focused = %name% +label-focused-foreground = ${color.ACCENT} +label-focused-padding = 1 + +label-occupied = %name% +label-occupied-foreground = ${color.CYAN} +label-occupied-padding = 1 + +label-urgent = %name% +label-urgent-foreground = ${color.RED} +label-urgent-padding = 1 + +label-empty = %name% +label-empty-foreground = ${color.FOREGROUND} +label-empty-padding = 1 + +; Separator in between workspaces +label-separator = "" +label-separator-padding = 0 +label-separator-foreground = ${color.ALTBACKGROUND} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/mod] +type = internal/bspwm + +format = <label-mode> +format-background = ${color.BACKGROUND5} +format-foreground = ${color.FOREGROUND} +format-underline = ${color.BACKGROUND} +format-overline = ${color.BACKGROUND} +format-padding = 2 + +label-monocle = "Monocle" +label-tiled = "Tiled" + +label-floating = ", Float" +label-pseudotiled = ", Pseudo" +label-fullscreen = ", Full" + +label-locked = " | Locked" +label-sticky = " | Sticky" +label-private = " | Private" + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/sep] +type = custom/text +content = ◆ + +content-background = ${color.BACKGROUND} +content-foreground = ${color.ALTBACKGROUND} +content-padding = 2 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/volume] +type = internal/pulseaudio + +; Sink to be used, if it exists (find using `pacmd list-sinks`, name field) +; If not, uses default sink +sink = alsa_output.pci-0000_12_00.3.analog-stereo + +; Use PA_VOLUME_UI_MAX (~153%) if true, or PA_VOLUME_NORM (100%) if false +; Default: true +use-ui-max = false + +; Interval for volume increase/decrease (in percent points) +; Default: 5 +interval = 5 + +; Available tags: +; <label-volume> (default) +; <ramp-volume> +; <bar-volume> +format-volume = <ramp-volume> <label-volume> +format-volume-background = ${color.BACKGROUND1} +format-volume-padding = 3 + +; Available tags: +; <label-muted> (default) +; <ramp-volume> +; <bar-volume> +format-muted = <label-muted> +format-muted-background = ${color.BACKGROUND1} +format-muted-padding = 3 + +; Available tokens: +; %percentage% (default) +label-volume = %percentage%% + +; Available tokens: +; %percentage% (default +format-muted-prefix = 婢 +format-muted-font = 2 +label-muted = " Mute" + +; Only applies if <ramp-volume> is used +ramp-volume-0 = 奄 +ramp-volume-1 = 奔 +ramp-volume-2 = 奔 +ramp-volume-3 = 墳 +ramp-volume-4 = 墳 +ramp-volume-foreground = ${color.MAGENTA} +ramp-volume-font = 2 + +; If defined, it will replace <ramp-volume> when +; headphones are plugged in to `headphone_control_numid` +; If undefined, <ramp-volume> will be used for both +; Only applies if <ramp-volume> is used +;;ramp-headphones-0 = +;;ramp-headphones-1 = + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/bna] +type = custom/text + +content = " NA" +content-prefix = +content-prefix-font = 2 +content-prefix-foreground = ${color.RED} +content-padding = 3 +content-background = ${color.BACKGROUND2} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/backlight] +type = internal/xbacklight + +; Use the following command to list available cards: +; $ ls -1 /sys/class/backlight/ +card = intel_backlight + +; Available tags: +; <label> (default) +; <ramp> +; <bar> +format = <ramp> <label> +format-background = ${color.BACKGROUND2} +format-padding = 3 + +; Available tokens: +; %percentage% (default) +label = %percentage%% + +; Only applies if <ramp> is used + +ramp-0 = +ramp-1 = +ramp-2 = +ramp-3 = +ramp-4 = +ramp-5 = +ramp-6 = +ramp-7 = +ramp-8 = +ramp-9 = +ramp-font = 2 +ramp-foreground = ${color.RED} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/brightness] +type = internal/backlight + +; Use the following command to list available cards: +; $ ls -1 /sys/class/backlight/ +card = ${system.sys_graphics_card} + +enable-scroll = true + +; Available tags: +; <label> (default) +; <ramp> +; <bar> +format = <ramp> <label> +format-background = ${color.BACKGROUND2} +format-padding = 3 + +; Available tokens: +; %percentage% (default) +label = %percentage%% + +; Only applies if <ramp> is used + +ramp-0 = +ramp-1 = +ramp-2 = +ramp-3 = +ramp-4 = +ramp-5 = +ramp-6 = +ramp-7 = +ramp-8 = +ramp-9 = +ramp-font = 2 +ramp-foreground = ${color.RED} + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/battery] +type = internal/battery + +; This is useful in case the battery never reports 100% charge +full-at = 99 + +; Use the following command to list batteries and adapters: +; $ ls -1 /sys/class/power_supply/ +battery = ${system.sys_battery} +adapter = ${system.sys_adapter} + +; If an inotify event haven't been reported in this many +; seconds, manually poll for new values. +; +; Needed as a fallback for systems that don't report events +; on sysfs/procfs. +; +; Disable polling by setting the interval to 0. +; +; Default: 5 +poll-interval = 2 + +; see "man date" for details on how to format the time string +; NOTE: if you want to use syntax tags here you need to use %%{...} +; Default: %H:%M:%S +time-format = %H:%M + +; Available tags: +; <label-charging> (default) +; <bar-capacity> +; <ramp-capacity> +; <animation-charging> +format-charging = <animation-charging> <label-charging> +format-charging-background = ${color.BACKGROUND3} +format-charging-padding = 3 + +; Available tags: +; <label-discharging> (default) +; <bar-capacity> +; <ramp-capacity> +; <animation-discharging> +format-discharging = <ramp-capacity> <label-discharging> +format-discharging-background = ${color.BACKGROUND3} +format-discharging-padding = 3 + +; Available tags: +; <label-full> (default) +; <bar-capacity> +; <ramp-capacity> +;format-full = <ramp-capacity> <label-full> + +; Available tokens: +; %percentage% (default) +; %time% +; %consumption% (shows current charge rate in watts) + +label-charging = %percentage%% + +; Available tokens: +; %percentage% (default) +; %time% +; %consumption% (shows current discharge rate in watts) +label-discharging = %percentage%% + +; Available tokens: +; %percentage% (default) +format-full = <label-full> +format-full-background = ${color.BACKGROUND3} +format-full-padding = 3 +format-full-font = 2 +format-full-prefix = " " +format-full-prefix-foreground = ${color.GREEN} +label-full = %percentage%% + +; Only applies if <ramp-capacity> is used +ramp-capacity-0 = +ramp-capacity-1 = +ramp-capacity-2 = +ramp-capacity-3 = +ramp-capacity-4 = +ramp-capacity-foreground = ${color.YELLOW} +ramp-capacity-font = 2 +; Only applies if <bar-capacity> is used +;bar-capacity-width = 10 + +; Only applies if <animation-charging> is used +animation-charging-0 = +animation-charging-1 = +animation-charging-2 = +animation-charging-3 = +animation-charging-4 = +animation-charging-foreground = ${color.GREEN} +animation-charging-font = 2 +; Framerate in milliseconds +animation-charging-framerate = 750 + +; Only applies if <animation-discharging> is used +;;animation-discharging-0 = +;;animation-discharging-1 = +;;animation-discharging-2 = +;;animation-discharging-3 = +;;animation-discharging-4 = +;;animation-discharging-5 = +;;animation-discharging-6 = +;;animation-discharging-7 = +;;animation-discharging-8 = + +; Framerate in milliseconds +;animation-discharging-framerate = 500 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/date] +type = internal/date + +; Seconds to sleep between updates +interval = 1.0 + +; See "http://en.cppreference.com/w/cpp/io/manip/put_time" for details on how to format the date string +; NOTE: if you want to use syntax tags here you need to use %%{...} +;;date = %Y-%m-%d% + +; Optional time format +time = %I:%M %p + +; if `date-alt` or `time-alt` is defined, clicking +; the module will toggle between formats +;;date-alt = %A, %d %B %Y +#time-alt = %d/%m/%Y% +time-alt = %b %d, %G + +; Available tags: +; <label> (default) + +format = <label> +format-background = ${color.BACKGROUND5} +format-padding = 2 +format-prefix = " " +format-font = 2 +format-prefix-foreground = ${color.CYAN} + +; Available tokens: +; %date% +; %time% +; Default: %date% +label = %time% + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/mpd] +type = internal/mpd + +; Host where mpd is running (either ip or domain name) +; Can also be the full path to a unix socket where mpd is running. +;;host = 127.0.0.1 +;;port = 6600 +;;password = mysecretpassword + +; Seconds to sleep between progressbar/song timer sync +; Default: 1 +interval = 2 + +; Available tags: +; <label-song> (default) +; <label-time> +; <bar-progress> +; <toggle> - gets replaced with <icon-(pause|play)> +; <toggle-stop> - gets replaced with <icon-(stop|play)> +; <icon-random> +; <icon-repeat> +; <icon-repeatone> (deprecated) +; <icon-single> - Toggle playing only a single song. Replaces <icon-repeatone> +; <icon-consume> +; <icon-prev> +; <icon-stop> +; <icon-play> +; <icon-pause> +; <icon-next> +; <icon-seekb> +; <icon-seekf> +;;format-online-prefix = " " +;;format-online-prefix-font = 2 +;;format-online-prefix-foreground = ${color.PURPLE} +;format-online = <toggle> <label-song> +format-online = <toggle> <label-song> +;format-online-background = ${color.BACKGROUND2} +format-online-padding = 2 +;format-online-font = 2 + +format-playing = <icon-prev> <toggle> <icon-next> <label-song> +format-paused = ${self.format-online} +format-stopped = ${self.format-online} + +; Available tags: +; <label-offline> +;format-offline = <label-offline> + +; Available tokens: +; %artist% +; %album-artist% +; %album% +; %date% +; %title% +; Default: %artist% - %title% +label-song = "%title%" +label-song-maxlen = 25 +label-song-ellipsis = true + +; Available tokens: +; %elapsed% +; %total% +; Default: %elapsed% / %total% +;;abel-time = %elapsed% / %total% + +; Available tokens: +; None +label-offline = "Offline" + +; Only applies if <icon-X> is used +icon-play = +icon-play-font = 2 +icon-play-foreground = ${color.GREEN} +icon-pause = +icon-pause-font = 2 +icon-pause-foreground = ${color.RED} +icon-stop = +icon-stop-foreground = ${color.RED} +icon-prev = 玲 +icon-prev-foreground = ${color.YELLOW} +icon-next = 怜 +icon-next-foreground = ${color.YELLOW} +icon-seekb = ⏪ +icon-seekf = ⏩ +icon-random = 🔀 +icon-repeat = 🔁 +icon-repeatone = 🔂 +icon-single = 🔂 +icon-consume = ✀ + +; Used to display the state of random/repeat/repeatone/single +; Only applies if <icon-[random|repeat|repeatone|single]> is used +;;toggle-on-foreground = #ff +;;toggle-off-foreground = #55 + +; Only applies if <bar-progress> is used +;;bar-progress-width = 45 +;;bar-progress-indicator = | +;;bar-progress-fill = ─ +;;bar-progress-empty = ─ + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +; If you use both a wired and a wireless network, Add both modules in config.ini +[module/ethernet] +type = internal/network +interface = ${system.sys_network_interface} + +interval = 1.0 +accumulate-stats = true +unknown-as-up = true + +format-connected = <label-connected> +format-connected-prefix = "歷 " +format-connected-prefix-foreground = ${color.BLUE} +format-connected-prefix-font = 2 +format-connected-background = ${color.BACKGROUND4} +format-connected-padding = 3 + +format-disconnected = <label-disconnected> +format-disconnected-prefix = "轢 " +format-disconnected-prefix-font = 2 +format-disconnected-background = ${color.BACKGROUND4} +format-disconnected-padding = 3 + +label-connected = "%{A1:nmd &:}%downspeed% | %upspeed%%{A}" +label-disconnected = "%{A1:nmd &:}Offline%{A}" + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +; Normal Module +[module/network] +type = internal/network +interface = ${system.sys_network_interface} + +; Seconds to sleep between updates +; Default: 1 +interval = 1.0 + +; Test connectivity every Nth update +; A value of 0 disables the feature +; NOTE: Experimental (needs more testing) +; Default: 0 +;ping-interval = 3 + +; @deprecated: Define min width using token specifiers (%downspeed:min% and %upspeed:min%) +; Minimum output width of upload/download rate +; Default: 3 +;;udspeed-minwidth = 5 + +; Accumulate values from all interfaces +; when querying for up/downspeed rate +; Default: false +accumulate-stats = true + +; Consider an `UNKNOWN` interface state as up. +; Some devices have an unknown state, even when they're running +; Default: false +unknown-as-up = true + +; Available tags: +; <label-connected> (default) +; <ramp-signal> +format-connected = <ramp-signal> <label-connected> +format-connected-background = ${color.BACKGROUND4} +format-connected-padding = 3 + +; Available tags: +; <label-disconnected> (default) + +format-disconnected-prefix = "睊 " +format-disconnected-font = 2 +format-disconnected = <label-disconnected> +format-disconnected-background = ${color.BACKGROUND4} +format-disconnected-padding = 3 + +; Available tags: +; <label-connected> (default) +; <label-packetloss> +; <animation-packetloss> +;;format-packetloss = <animation-packetloss> <label-connected> + +; Available tokens: +; %ifname% [wireless+wired] +; %local_ip% [wireless+wired] +; %local_ip6% [wireless+wired] +; %essid% [wireless] +; %signal% [wireless] +; %upspeed% [wireless+wired] +; %downspeed% [wireless+wired] +; %linkspeed% [wired] +; Default: %ifname% %local_ip% +;label-connected = "%essid% %downspeed:8% %upspeed:8%" +label-connected = "%{A1:nmd &:}%essid%%{A}" +;;label-connected-foreground = #eefafafa + +; Available tokens: +; %ifname% [wireless+wired] +; Default: (none) +label-disconnected = "%{A1:nmd &:}Offline%{A}" + +; Available tokens: +; %ifname% [wireless+wired] +; %local_ip% [wireless+wired] +; %local_ip6% [wireless+wired] +; %essid% [wireless] +; %signal% [wireless] +; %upspeed% [wireless+wired] +; %downspeed% [wireless+wired] +; %linkspeed% [wired] +; Default: (none) +;label-packetloss = %essid% +;label-packetloss-foreground = #eefafafa + +; Only applies if <ramp-signal> is used +ramp-signal-0 = 直 +ramp-signal-1 = 直 +ramp-signal-2 = 直 +ramp-signal-3 = 直 +ramp-signal-4 = 直 +ramp-signal-foreground = ${color.BLUE} +ramp-signal-font = 2 + +; Only applies if <animation-packetloss> is used +;;animation-packetloss-0 = ⚠ +;;animation-packetloss-0-foreground = #ffa64c +;;animation-packetloss-1 = ⚠ +;;animation-packetloss-1-foreground = #000000 +; Framerate in milliseconds +;;animation-packetloss-framerate = 500 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/workspaces] +type = internal/xworkspaces + +; Only show workspaces defined on the same output as the bar +; +; Useful if you want to show monitor specific workspaces +; on different bars +; +; Default: false +pin-workspaces = true + +; Create click handler used to focus desktop +; Default: true +enable-click = true + +; Create scroll handlers used to cycle desktops +; Default: true +enable-scroll = true + +; icon-[0-9]+ = <desktop-name>;<icon> +; NOTE: The desktop name needs to match the name configured by the WM +; You can get a list of the defined desktops using: +; $ xprop -root _NET_DESKTOP_NAMES +icon-0 = 1; +icon-1 = 2; +icon-2 = 3; +icon-3 = 4; +icon-4 = 5; +icon-default = + +; Available tags: +; <label-monitor> +; <label-state> - gets replaced with <label-(active|urgent|occupied|empty)> +; Default: <label-state> +format = <label-state> +format-padding = 0 +format-font = 2 + +; Available tokens: +; %name% +; Default: %name% +label-monitor = %name% + +; Available tokens: +; %name% +; %icon% +; %index% +; Default: %icon% %name% +label-active = +label-active-foreground = ${color.ACCENT} +label-active-background = ${color.BACKGROUND} +;;label-active-underline = ${color.RED} + +; Available tokens: +; %name% +; %icon% +; %index% +; Default: %icon% %name% +label-occupied = +label-occupied-foreground = ${color.CYAN} +label-occupied-background = ${color.BACKGROUND} + +; Available tokens: +; %name% +; %icon% +; %index% +; Default: %icon% %name% +label-urgent = +label-urgent-foreground = ${color.RED} +label-urgent-background = ${color.BACKGROUND} +;;label-urgent-underline = ${color.red} + +; Available tokens: +; %name% +; %icon% +; %index% +; Default: %icon% %name% +label-empty = %icon% +label-empty-foreground = ${color.CYAN} + +label-active-padding = 1 +label-urgent-padding = 1 +label-occupied-padding = 1 +label-empty-padding = 1 + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ + +[module/menu] +type = custom/text + +content = גּ +content-font = 2 +content-background = ${color.BACKGROUND1} +content-foreground = ${color.ACCENT} +content-padding = 4 + +click-left = ~/.config/bspwm/scripts/rofi_launcher +click-right = ~/.config/bspwm/scripts/rofi_runner + +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ +;; __________ ______ +;; / ____/ __ \/ ____/ +;; / __/ / / / / /_ +;; / /___/ /_/ / __/ +;; /_____/\____/_/ +;; +;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ diff --git a/dot-config/bspwm/themes/wave/rofi/askpass.rasi b/dot-config/bspwm/themes/wave/rofi/askpass.rasi new file mode 100644 index 00000000..f8ec6288 --- /dev/null +++ b/dot-config/bspwm/themes/wave/rofi/askpass.rasi @@ -0,0 +1,75 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/*****----- Main Window -----*****/ +window { + location: center; + anchor: center; + fullscreen: false; + width: 350px; + x-offset: 0px; + y-offset: 0px; + padding: 15px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: @background; + cursor: "default"; + children: [ "inputbar", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + children: [ "textbox-prompt-colon", "prompt", "entry" ]; +} + +dummy { + expand: false; + width: 10px; + background-color: transparent; +} +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + padding: 10px 13px; + border-radius: 0px; + background-color: @urgent; + text-color: @background; +} +prompt { + enabled: true; + padding: 10px; + border-radius: 0px; + background-color: @selected; + text-color: @background; +} +entry { + enabled: true; + padding: 10px 15px; + border-radius: 0px; + background-color: @background-alt; + text-color: inherit; + cursor: text; + placeholder: "Password"; + placeholder-color: inherit; +} + +/*****----- Listview -----*****/ +listview { + enabled: false; +} diff --git a/dot-config/bspwm/themes/wave/rofi/asroot.rasi b/dot-config/bspwm/themes/wave/rofi/asroot.rasi new file mode 100644 index 00000000..4f8ccc31 --- /dev/null +++ b/dot-config/bspwm/themes/wave/rofi/asroot.rasi @@ -0,0 +1,145 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + show-icons: false; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/* +USE_ICON=NO +*/ + +/*****----- Main Window -----*****/ +window { + transparency: "real"; + location: south; + anchor: south; + fullscreen: false; + width: 400px; + x-offset: 0px; + y-offset: -48px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + cursor: "default"; + background-color: @background; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 20px; + background-color: transparent; + children: [ "inputbar", "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + padding: 0px; + border: 0px; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + children: [ "textbox-prompt-colon", "prompt"]; +} + +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + border-radius: 0px; + background-color: inherit; + text-color: inherit; +} +prompt { + enabled: true; + border-radius: 0px; + background-color: inherit; + text-color: inherit; +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: @background-alt; + text-color: @foreground; +} +textbox { + background-color: inherit; + text-color: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 2; + lines: 3; + cycle: true; + scrollbar: false; + layout: vertical; + + spacing: 10px; + background-color: transparent; + cursor: "default"; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + cursor: pointer; +} +element-text { + background-color: transparent; + text-color: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.5; +} + +element normal.normal, +element alternate.normal { + background-color: var(background-alt); + text-color: var(foreground); +} +element normal.urgent, +element alternate.urgent, +element selected.active { + background-color: var(urgent); + text-color: var(background); +} +element normal.active, +element alternate.active, +element selected.urgent { + background-color: var(active); + text-color: var(background); +} +element selected.normal { + background-color: var(selected); + text-color: var(background); +} diff --git a/dot-config/bspwm/themes/wave/rofi/confirm.rasi b/dot-config/bspwm/themes/wave/rofi/confirm.rasi new file mode 100644 index 00000000..cb088a3c --- /dev/null +++ b/dot-config/bspwm/themes/wave/rofi/confirm.rasi @@ -0,0 +1,145 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + show-icons: false; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/* +USE_ICON=NO +*/ + +/*****----- Main Window -----*****/ +window { + transparency: "real"; + location: southeast; + anchor: southeast; + fullscreen: false; + width: 250px; + x-offset: -10px; + y-offset: -48px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + cursor: "default"; + background-color: @background; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 20px; + background-color: transparent; + children: [ "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + padding: 0px; + border: 0px; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + children: [ "textbox-prompt-colon", "prompt"]; +} + +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + border-radius: 0px; + background-color: inherit; + text-color: inherit; +} +prompt { + enabled: true; + border-radius: 0px; + background-color: inherit; + text-color: inherit; +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: @background-alt; + text-color: @foreground; +} +textbox { + background-color: inherit; + text-color: inherit; + vertical-align: 0.5; + horizontal-align: 0.5; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 2; + lines: 1; + cycle: true; + scrollbar: false; + layout: vertical; + + spacing: 10px; + background-color: transparent; + cursor: "default"; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + cursor: pointer; +} +element-text { + background-color: transparent; + text-color: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.5; +} + +element normal.normal, +element alternate.normal { + background-color: var(background-alt); + text-color: var(foreground); +} +element normal.urgent, +element alternate.urgent, +element selected.active { + background-color: var(urgent); + text-color: var(background); +} +element normal.active, +element alternate.active, +element selected.urgent { + background-color: var(active); + text-color: var(background); +} +element selected.normal { + background-color: var(selected); + text-color: var(background); +} diff --git a/dot-config/bspwm/themes/wave/rofi/launcher.rasi b/dot-config/bspwm/themes/wave/rofi/launcher.rasi new file mode 100644 index 00000000..3958d958 --- /dev/null +++ b/dot-config/bspwm/themes/wave/rofi/launcher.rasi @@ -0,0 +1,303 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + modi: "drun,run,filebrowser,window"; + show-icons: true; + display-drun: " Apps"; + display-run: " Run"; + display-filebrowser: " Files"; + display-window: " Windows"; + drun-display-format: "{name}"; + window-format: "{c} · {t}"; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +* { + border-colour: var(selected); + handle-colour: var(selected); + background-colour: var(background); + foreground-colour: var(foreground); + alternate-background: var(background-alt); + normal-background: var(background); + normal-foreground: var(foreground); + urgent-background: var(urgent); + urgent-foreground: var(background); + active-background: var(active); + active-foreground: var(background); + selected-normal-background: var(selected); + selected-normal-foreground: var(background); + selected-urgent-background: var(active); + selected-urgent-foreground: var(background); + selected-active-background: var(urgent); + selected-active-foreground: var(background); + alternate-normal-background: var(background); + alternate-normal-foreground: var(foreground); + alternate-urgent-background: var(urgent); + alternate-urgent-foreground: var(background); + alternate-active-background: var(active); + alternate-active-foreground: var(background); +} + +/*****----- Main Window -----*****/ +window { + /* properties for window widget */ + transparency: "real"; + location: southwest; + anchor: southwest; + fullscreen: false; + width: 450px; + x-offset: 10px; + y-offset: -48px; + + /* properties for all widgets */ + enabled: true; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + cursor: "default"; + /* Backgroud Colors */ + background-color: @background-colour; + /* Backgroud Image */ + //background-image: url("/path/to/image.png", none); + /* Simple Linear Gradient */ + //background-image: linear-gradient(red, orange, pink, purple); + /* Directional Linear Gradient */ + //background-image: linear-gradient(to bottom, pink, yellow, magenta); + /* Angle Linear Gradient */ + //background-image: linear-gradient(45, cyan, purple, indigo); +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 20px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @border-colour; + background-color: transparent; + children: [ "inputbar", "mode-switcher", "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + children: [ "textbox-prompt-colon", "entry" ]; +} + +prompt { + enabled: true; + background-color: inherit; + text-color: inherit; +} +textbox-prompt-colon { + enabled: true; + padding: 5px 0px; + expand: false; + str: ""; + background-color: inherit; + text-color: inherit; +} +entry { + enabled: true; + padding: 5px 0px; + background-color: inherit; + text-color: inherit; + cursor: text; + placeholder: "Search..."; + placeholder-color: inherit; +} +num-filtered-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +textbox-num-sep { + enabled: true; + expand: false; + str: "/"; + background-color: inherit; + text-color: inherit; +} +num-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +case-indicator { + enabled: true; + background-color: inherit; + text-color: inherit; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 1; + lines: 8; + cycle: true; + dynamic: true; + scrollbar: false; + layout: vertical; + reverse: false; + fixed-height: true; + fixed-columns: true; + + spacing: 5px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: "default"; +} +scrollbar { + handle-width: 5px ; + handle-color: @handle-colour; + border-radius: 10px; + background-color: @alternate-background; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 8px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: pointer; +} +element normal.normal { + background-color: var(normal-background); + text-color: var(normal-foreground); +} +element normal.urgent { + background-color: var(urgent-background); + text-color: var(urgent-foreground); +} +element normal.active { + background-color: var(active-background); + text-color: var(active-foreground); +} +element selected.normal { + background-color: var(selected-normal-background); + text-color: var(selected-normal-foreground); +} +element selected.urgent { + background-color: var(selected-urgent-background); + text-color: var(selected-urgent-foreground); +} +element selected.active { + background-color: var(selected-active-background); + text-color: var(selected-active-foreground); +} +element alternate.normal { + background-color: var(alternate-normal-background); + text-color: var(alternate-normal-foreground); +} +element alternate.urgent { + background-color: var(alternate-urgent-background); + text-color: var(alternate-urgent-foreground); +} +element alternate.active { + background-color: var(alternate-active-background); + text-color: var(alternate-active-foreground); +} +element-icon { + background-color: transparent; + text-color: inherit; + size: 24px; + cursor: inherit; +} +element-text { + background-color: transparent; + text-color: inherit; + highlight: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Mode Switcher -----*****/ +mode-switcher{ + enabled: true; + expand: false; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; +} +button { + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: inherit; + cursor: pointer; +} +button selected { + background-color: var(selected-normal-background); + text-color: var(selected-normal-foreground); +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: @foreground-colour; +} +textbox { + border: 0px solid; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + vertical-align: 0.5; + horizontal-align: 0.0; + highlight: none; + placeholder-color: @foreground-colour; + blink: true; + markup: true; +} +error-message { + padding: 15px; + border: 0px solid; + border-radius: 10px; + border-color: @border-colour; + background-color: @background-colour; + text-color: @foreground-colour; +} diff --git a/dot-config/bspwm/themes/wave/rofi/music.rasi b/dot-config/bspwm/themes/wave/rofi/music.rasi new file mode 100644 index 00000000..6aa9a05c --- /dev/null +++ b/dot-config/bspwm/themes/wave/rofi/music.rasi @@ -0,0 +1,145 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + show-icons: false; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/* +USE_ICON=NO +*/ + +/*****----- Main Window -----*****/ +window { + transparency: "real"; + location: southwest; + anchor: southwest; + fullscreen: false; + width: 400px; + x-offset: 10px; + y-offset: -48px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + cursor: "default"; + background-color: @background; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 20px; + background-color: transparent; + children: [ "inputbar", "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + padding: 0px; + border: 0px; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + children: [ "textbox-prompt-colon", "prompt"]; +} + +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + border-radius: 0px; + background-color: inherit; + text-color: inherit; +} +prompt { + enabled: true; + border-radius: 0px; + background-color: inherit; + text-color: inherit; +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: @background-alt; + text-color: @foreground; +} +textbox { + background-color: inherit; + text-color: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 2; + lines: 3; + cycle: true; + scrollbar: false; + layout: vertical; + + spacing: 10px; + background-color: transparent; + cursor: "default"; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + cursor: pointer; +} +element-text { + background-color: transparent; + text-color: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.5; +} + +element normal.normal, +element alternate.normal { + background-color: var(background-alt); + text-color: var(foreground); +} +element normal.urgent, +element alternate.urgent, +element selected.active { + background-color: var(urgent); + text-color: var(background); +} +element normal.active, +element alternate.active, +element selected.urgent { + background-color: var(active); + text-color: var(background); +} +element selected.normal { + background-color: var(selected); + text-color: var(background); +} diff --git a/dot-config/bspwm/themes/wave/rofi/networkmenu.rasi b/dot-config/bspwm/themes/wave/rofi/networkmenu.rasi new file mode 100644 index 00000000..982feb65 --- /dev/null +++ b/dot-config/bspwm/themes/wave/rofi/networkmenu.rasi @@ -0,0 +1,305 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + modi: "run"; + show-icons: false; + display-drun: " Apps"; + display-run: " Run"; + display-filebrowser: " Files"; + display-window: " Windows"; + drun-display-format: "{name}"; + window-format: "{w} · {c} · {t}"; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +* { + border-colour: var(selected); + handle-colour: var(selected); + background-colour: var(background); + foreground-colour: var(foreground); + alternate-background: var(background-alt); + normal-background: var(background); + normal-foreground: var(foreground); + urgent-background: var(urgent); + urgent-foreground: var(background); + active-background: var(active); + active-foreground: var(background); + selected-normal-background: var(selected); + selected-normal-foreground: var(background); + selected-urgent-background: var(active); + selected-urgent-foreground: var(background); + selected-active-background: var(urgent); + selected-active-foreground: var(background); + alternate-normal-background: var(background); + alternate-normal-foreground: var(foreground); + alternate-urgent-background: var(urgent); + alternate-urgent-foreground: var(background); + alternate-active-background: var(active); + alternate-active-foreground: var(background); +} + +/*****----- Main Window -----*****/ +window { + /* properties for window widget */ + transparency: "real"; + location: southeast; + anchor: southeast; + fullscreen: false; + width: 450px; + height: 420px; + x-offset: -10px; + y-offset: -48px; + + /* properties for all widgets */ + enabled: true; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + cursor: "default"; + /* Backgroud Colors */ + background-color: @background-colour; + /* Backgroud Image */ + //background-image: url("/path/to/image.png", none); + /* Simple Linear Gradient */ + //background-image: linear-gradient(red, orange, pink, purple); + /* Directional Linear Gradient */ + //background-image: linear-gradient(to bottom, pink, yellow, magenta); + /* Angle Linear Gradient */ + //background-image: linear-gradient(45, cyan, purple, indigo); +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 20px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @border-colour; + background-color: transparent; + children: [ "inputbar", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + children: [ "textbox-prompt-colon", "prompt", "entry" ]; +} + +prompt { + enabled: true; + padding: 5px 0px; + background-color: inherit; + text-color: inherit; +} +textbox-prompt-colon { + enabled: true; + padding: 5px 0px; + expand: false; + str: "直"; + background-color: inherit; + text-color: inherit; +} +entry { + enabled: true; + padding: 5px 0px; + background-color: inherit; + text-color: inherit; + cursor: text; + placeholder: ""; + placeholder-color: inherit; +} +num-filtered-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +textbox-num-sep { + enabled: true; + expand: false; + str: "/"; + background-color: inherit; + text-color: inherit; +} +num-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +case-indicator { + enabled: true; + background-color: inherit; + text-color: inherit; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 1; + lines: 8; + cycle: true; + dynamic: true; + scrollbar: false; + layout: vertical; + reverse: false; + fixed-height: true; + fixed-columns: true; + + spacing: 5px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: "default"; +} +scrollbar { + handle-width: 5px ; + handle-color: @handle-colour; + border-radius: 10px; + background-color: @alternate-background; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: pointer; +} +element normal.normal { + background-color: var(normal-background); + text-color: var(normal-foreground); +} +element normal.urgent { + background-color: var(urgent-background); + text-color: var(urgent-foreground); +} +element normal.active { + background-color: var(active-background); + text-color: var(active-foreground); +} +element selected.normal { + background-color: var(selected-normal-background); + text-color: var(selected-normal-foreground); +} +element selected.urgent { + background-color: var(selected-urgent-background); + text-color: var(selected-urgent-foreground); +} +element selected.active { + background-color: var(selected-active-background); + text-color: var(selected-active-foreground); +} +element alternate.normal { + background-color: var(alternate-normal-background); + text-color: var(alternate-normal-foreground); +} +element alternate.urgent { + background-color: var(alternate-urgent-background); + text-color: var(alternate-urgent-foreground); +} +element alternate.active { + background-color: var(alternate-active-background); + text-color: var(alternate-active-foreground); +} +element-icon { + background-color: transparent; + text-color: inherit; + size: 24px; + cursor: inherit; +} +element-text { + background-color: transparent; + text-color: inherit; + highlight: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Mode Switcher -----*****/ +mode-switcher{ + enabled: true; + expand: false; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; +} +button { + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: inherit; + cursor: pointer; +} +button selected { + background-color: var(selected-normal-background); + text-color: var(selected-normal-foreground); +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: @foreground-colour; +} +textbox { + border: 0px solid; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + vertical-align: 0.5; + horizontal-align: 0.0; + highlight: none; + placeholder-color: @foreground-colour; + blink: true; + markup: true; +} +error-message { + padding: 15px; + border: 0px solid; + border-radius: 10px; + border-color: @border-colour; + background-color: @background-colour; + text-color: @foreground-colour; +} diff --git a/dot-config/bspwm/themes/wave/rofi/powermenu.rasi b/dot-config/bspwm/themes/wave/rofi/powermenu.rasi new file mode 100644 index 00000000..011d9274 --- /dev/null +++ b/dot-config/bspwm/themes/wave/rofi/powermenu.rasi @@ -0,0 +1,145 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + show-icons: false; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/* +USE_ICON=NO +*/ + +/*****----- Main Window -----*****/ +window { + transparency: "real"; + location: southeast; + anchor: southeast; + fullscreen: false; + width: 400px; + x-offset: -10px; + y-offset: -48px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + cursor: "default"; + background-color: @background; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 20px; + background-color: transparent; + children: [ "inputbar", "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + padding: 0px; + border: 0px; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + children: [ "textbox-prompt-colon", "prompt"]; +} + +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + border-radius: 0px; + background-color: inherit; + text-color: inherit; +} +prompt { + enabled: true; + border-radius: 0px; + background-color: inherit; + text-color: inherit; +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: @background-alt; + text-color: @foreground; +} +textbox { + background-color: inherit; + text-color: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 2; + lines: 3; + cycle: true; + scrollbar: false; + layout: vertical; + + spacing: 10px; + background-color: transparent; + cursor: "default"; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + cursor: pointer; +} +element-text { + background-color: transparent; + text-color: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.5; +} + +element normal.normal, +element alternate.normal { + background-color: var(background-alt); + text-color: var(foreground); +} +element normal.urgent, +element alternate.urgent, +element selected.active { + background-color: var(urgent); + text-color: var(background); +} +element normal.active, +element alternate.active, +element selected.urgent { + background-color: var(active); + text-color: var(background); +} +element selected.normal { + background-color: var(selected); + text-color: var(background); +} diff --git a/dot-config/bspwm/themes/wave/rofi/runner.rasi b/dot-config/bspwm/themes/wave/rofi/runner.rasi new file mode 100644 index 00000000..559e1718 --- /dev/null +++ b/dot-config/bspwm/themes/wave/rofi/runner.rasi @@ -0,0 +1,303 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + modi: "run"; + show-icons: true; + display-drun: " Apps"; + display-run: " Run"; + display-filebrowser: " Files"; + display-window: " Windows"; + drun-display-format: "{name}"; + window-format: "{w} · {c} · {t}"; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +* { + border-colour: var(selected); + handle-colour: var(selected); + background-colour: var(background); + foreground-colour: var(foreground); + alternate-background: var(background-alt); + normal-background: var(background); + normal-foreground: var(foreground); + urgent-background: var(urgent); + urgent-foreground: var(background); + active-background: var(active); + active-foreground: var(background); + selected-normal-background: var(selected); + selected-normal-foreground: var(background); + selected-urgent-background: var(active); + selected-urgent-foreground: var(background); + selected-active-background: var(urgent); + selected-active-foreground: var(background); + alternate-normal-background: var(background); + alternate-normal-foreground: var(foreground); + alternate-urgent-background: var(urgent); + alternate-urgent-foreground: var(background); + alternate-active-background: var(active); + alternate-active-foreground: var(background); +} + +/*****----- Main Window -----*****/ +window { + /* properties for window widget */ + transparency: "real"; + location: southwest; + anchor: southwest; + fullscreen: false; + width: 450px; + x-offset: 10px; + y-offset: -48px; + + /* properties for all widgets */ + enabled: true; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + cursor: "default"; + /* Backgroud Colors */ + background-color: @background-colour; + /* Backgroud Image */ + //background-image: url("/path/to/image.png", none); + /* Simple Linear Gradient */ + //background-image: linear-gradient(red, orange, pink, purple); + /* Directional Linear Gradient */ + //background-image: linear-gradient(to bottom, pink, yellow, magenta); + /* Angle Linear Gradient */ + //background-image: linear-gradient(45, cyan, purple, indigo); +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 20px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @border-colour; + background-color: transparent; + children: [ "inputbar", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + children: [ "textbox-prompt-colon", "entry" ]; +} + +prompt { + enabled: true; + background-color: inherit; + text-color: inherit; +} +textbox-prompt-colon { + enabled: true; + padding: 5px 0px; + expand: false; + str: ""; + background-color: inherit; + text-color: inherit; +} +entry { + enabled: true; + padding: 5px 0px; + background-color: inherit; + text-color: inherit; + cursor: text; + placeholder: "Run..."; + placeholder-color: inherit; +} +num-filtered-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +textbox-num-sep { + enabled: true; + expand: false; + str: "/"; + background-color: inherit; + text-color: inherit; +} +num-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +case-indicator { + enabled: true; + background-color: inherit; + text-color: inherit; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 1; + lines: 8; + cycle: true; + dynamic: true; + scrollbar: false; + layout: vertical; + reverse: false; + fixed-height: true; + fixed-columns: true; + + spacing: 5px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: "default"; +} +scrollbar { + handle-width: 5px ; + handle-color: @handle-colour; + border-radius: 10px; + background-color: @alternate-background; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 8px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: pointer; +} +element normal.normal { + background-color: var(normal-background); + text-color: var(normal-foreground); +} +element normal.urgent { + background-color: var(urgent-background); + text-color: var(urgent-foreground); +} +element normal.active { + background-color: var(active-background); + text-color: var(active-foreground); +} +element selected.normal { + background-color: var(selected-normal-background); + text-color: var(selected-normal-foreground); +} +element selected.urgent { + background-color: var(selected-urgent-background); + text-color: var(selected-urgent-foreground); +} +element selected.active { + background-color: var(selected-active-background); + text-color: var(selected-active-foreground); +} +element alternate.normal { + background-color: var(alternate-normal-background); + text-color: var(alternate-normal-foreground); +} +element alternate.urgent { + background-color: var(alternate-urgent-background); + text-color: var(alternate-urgent-foreground); +} +element alternate.active { + background-color: var(alternate-active-background); + text-color: var(alternate-active-foreground); +} +element-icon { + background-color: transparent; + text-color: inherit; + size: 24px; + cursor: inherit; +} +element-text { + background-color: transparent; + text-color: inherit; + highlight: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Mode Switcher -----*****/ +mode-switcher{ + enabled: true; + expand: false; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; +} +button { + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: inherit; + cursor: pointer; +} +button selected { + background-color: var(selected-normal-background); + text-color: var(selected-normal-foreground); +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: @foreground-colour; +} +textbox { + border: 0px solid; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + vertical-align: 0.5; + horizontal-align: 0.0; + highlight: none; + placeholder-color: @foreground-colour; + blink: true; + markup: true; +} +error-message { + padding: 15px; + border: 0px solid; + border-radius: 10px; + border-color: @border-colour; + background-color: @background-colour; + text-color: @foreground-colour; +} diff --git a/dot-config/bspwm/themes/wave/rofi/screenshot.rasi b/dot-config/bspwm/themes/wave/rofi/screenshot.rasi new file mode 100644 index 00000000..615f4244 --- /dev/null +++ b/dot-config/bspwm/themes/wave/rofi/screenshot.rasi @@ -0,0 +1,145 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + show-icons: false; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/* +USE_ICON=NO +*/ + +/*****----- Main Window -----*****/ +window { + transparency: "real"; + location: southeast; + anchor: southeast; + fullscreen: false; + width: 400px; + x-offset: -10px; + y-offset: -48px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + cursor: "default"; + background-color: @background; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 20px; + background-color: transparent; + children: [ "inputbar", "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + padding: 0px; + border: 0px; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + children: [ "textbox-prompt-colon", "prompt"]; +} + +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + border-radius: 0px; + background-color: inherit; + text-color: inherit; +} +prompt { + enabled: true; + border-radius: 0px; + background-color: inherit; + text-color: inherit; +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: @background-alt; + text-color: @foreground; +} +textbox { + background-color: inherit; + text-color: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 2; + lines: 3; + cycle: true; + scrollbar: false; + layout: vertical; + + spacing: 10px; + background-color: transparent; + cursor: "default"; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + cursor: pointer; +} +element-text { + background-color: transparent; + text-color: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.5; +} + +element normal.normal, +element alternate.normal { + background-color: var(background-alt); + text-color: var(foreground); +} +element normal.urgent, +element alternate.urgent, +element selected.active { + background-color: var(urgent); + text-color: var(background); +} +element normal.active, +element alternate.active, +element selected.urgent { + background-color: var(active); + text-color: var(background); +} +element selected.normal { + background-color: var(selected); + text-color: var(background); +} diff --git a/dot-config/bspwm/themes/wave/rofi/shared/colors.rasi b/dot-config/bspwm/themes/wave/rofi/shared/colors.rasi new file mode 100644 index 00000000..aa66c804 --- /dev/null +++ b/dot-config/bspwm/themes/wave/rofi/shared/colors.rasi @@ -0,0 +1,8 @@ +* { + background: #3D4C5F; + background-alt: #45556b; + foreground: #F8F8F8; + selected: #BD99FF; + active: #a1efd3; + urgent: #f48fb1; +} diff --git a/dot-config/bspwm/themes/wave/rofi/shared/fonts.rasi b/dot-config/bspwm/themes/wave/rofi/shared/fonts.rasi new file mode 100644 index 00000000..d2af39fe --- /dev/null +++ b/dot-config/bspwm/themes/wave/rofi/shared/fonts.rasi @@ -0,0 +1,7 @@ +/* Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> */ + +/* Text Font */ + +* { + font: "Iosevka 10"; +} diff --git a/dot-config/bspwm/themes/wave/rofi/themes.rasi b/dot-config/bspwm/themes/wave/rofi/themes.rasi new file mode 100644 index 00000000..e0842174 --- /dev/null +++ b/dot-config/bspwm/themes/wave/rofi/themes.rasi @@ -0,0 +1,145 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + show-icons: false; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +/* +USE_ICON=NO +*/ + +/*****----- Main Window -----*****/ +window { + transparency: "real"; + location: south; + anchor: south; + fullscreen: false; + width: 400px; + x-offset: 0px; + y-offset: -48px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + cursor: "default"; + background-color: @background; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 20px; + background-color: transparent; + children: [ "inputbar", "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + padding: 0px; + border: 0px; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + children: [ "textbox-prompt-colon", "prompt"]; +} + +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + border-radius: 0px; + background-color: inherit; + text-color: inherit; +} +prompt { + enabled: true; + border-radius: 0px; + background-color: inherit; + text-color: inherit; +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: @background-alt; + text-color: @foreground; +} +textbox { + background-color: inherit; + text-color: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 2; + lines: 4; + cycle: true; + scrollbar: false; + layout: vertical; + + spacing: 10px; + background-color: transparent; + cursor: "default"; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + text-color: @foreground; + cursor: pointer; +} +element-text { + background-color: transparent; + text-color: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.5; +} + +element normal.normal, +element alternate.normal { + background-color: var(background-alt); + text-color: var(foreground); +} +element normal.urgent, +element alternate.urgent, +element selected.active { + background-color: var(urgent); + text-color: var(background); +} +element normal.active, +element alternate.active, +element selected.urgent { + background-color: var(active); + text-color: var(background); +} +element selected.normal { + background-color: var(selected); + text-color: var(background); +} diff --git a/dot-config/bspwm/themes/wave/rofi/windows.rasi b/dot-config/bspwm/themes/wave/rofi/windows.rasi new file mode 100644 index 00000000..80748b9b --- /dev/null +++ b/dot-config/bspwm/themes/wave/rofi/windows.rasi @@ -0,0 +1,303 @@ +/** + * Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> + **/ + +/*****----- Configuration -----*****/ +configuration { + modi: "window"; + show-icons: true; + display-drun: " Apps"; + display-run: " Run"; + display-filebrowser: " Files"; + display-window: " Windows"; + drun-display-format: "{name}"; + window-format: "{c} · {t}"; +} + +/*****----- Global Properties -----*****/ +@import "shared/colors.rasi" +@import "shared/fonts.rasi" + +* { + border-colour: var(selected); + handle-colour: var(selected); + background-colour: var(background); + foreground-colour: var(foreground); + alternate-background: var(background-alt); + normal-background: var(background); + normal-foreground: var(foreground); + urgent-background: var(urgent); + urgent-foreground: var(background); + active-background: var(active); + active-foreground: var(background); + selected-normal-background: var(selected); + selected-normal-foreground: var(background); + selected-urgent-background: var(active); + selected-urgent-foreground: var(background); + selected-active-background: var(urgent); + selected-active-foreground: var(background); + alternate-normal-background: var(background); + alternate-normal-foreground: var(foreground); + alternate-urgent-background: var(urgent); + alternate-urgent-foreground: var(background); + alternate-active-background: var(active); + alternate-active-foreground: var(background); +} + +/*****----- Main Window -----*****/ +window { + /* properties for window widget */ + transparency: "real"; + location: southwest; + anchor: southwest; + fullscreen: false; + width: 500px; + x-offset: 10px; + y-offset: -48px; + + /* properties for all widgets */ + enabled: true; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + cursor: "default"; + /* Backgroud Colors */ + background-color: @background-colour; + /* Backgroud Image */ + //background-image: url("/path/to/image.png", none); + /* Simple Linear Gradient */ + //background-image: linear-gradient(red, orange, pink, purple); + /* Directional Linear Gradient */ + //background-image: linear-gradient(to bottom, pink, yellow, magenta); + /* Angle Linear Gradient */ + //background-image: linear-gradient(45, cyan, purple, indigo); +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 20px; + border: 0px solid; + border-radius: 0px 0px 0px 0px; + border-color: @border-colour; + background-color: transparent; + children: [ "inputbar", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + children: [ "textbox-prompt-colon", "entry" ]; +} + +prompt { + enabled: true; + background-color: inherit; + text-color: inherit; +} +textbox-prompt-colon { + enabled: true; + padding: 5px 0px; + expand: false; + str: ""; + background-color: inherit; + text-color: inherit; +} +entry { + enabled: true; + padding: 5px 0px; + background-color: inherit; + text-color: inherit; + cursor: text; + placeholder: "Filter..."; + placeholder-color: inherit; +} +num-filtered-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +textbox-num-sep { + enabled: true; + expand: false; + str: "/"; + background-color: inherit; + text-color: inherit; +} +num-rows { + enabled: true; + expand: false; + background-color: inherit; + text-color: inherit; +} +case-indicator { + enabled: true; + background-color: inherit; + text-color: inherit; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 1; + lines: 6; + cycle: true; + dynamic: true; + scrollbar: false; + layout: vertical; + reverse: false; + fixed-height: true; + fixed-columns: true; + + spacing: 5px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: "default"; +} +scrollbar { + handle-width: 5px ; + handle-color: @handle-colour; + border-radius: 10px; + background-color: @alternate-background; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + spacing: 10px; + margin: 0px; + padding: 8px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + cursor: pointer; +} +element normal.normal { + background-color: var(normal-background); + text-color: var(normal-foreground); +} +element normal.urgent { + background-color: var(urgent-background); + text-color: var(urgent-foreground); +} +element normal.active { + background-color: var(active-background); + text-color: var(active-foreground); +} +element selected.normal { + background-color: var(selected-normal-background); + text-color: var(selected-normal-foreground); +} +element selected.urgent { + background-color: var(selected-urgent-background); + text-color: var(selected-urgent-foreground); +} +element selected.active { + background-color: var(selected-active-background); + text-color: var(selected-active-foreground); +} +element alternate.normal { + background-color: var(alternate-normal-background); + text-color: var(alternate-normal-foreground); +} +element alternate.urgent { + background-color: var(alternate-urgent-background); + text-color: var(alternate-urgent-foreground); +} +element alternate.active { + background-color: var(alternate-active-background); + text-color: var(alternate-active-foreground); +} +element-icon { + background-color: transparent; + text-color: inherit; + size: 24px; + cursor: inherit; +} +element-text { + background-color: transparent; + text-color: inherit; + highlight: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.0; +} + +/*****----- Mode Switcher -----*****/ +mode-switcher{ + enabled: true; + expand: false; + spacing: 10px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; +} +button { + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: inherit; + cursor: pointer; +} +button selected { + background-color: var(selected-normal-background); + text-color: var(selected-normal-foreground); +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px; + padding: 10px; + border: 0px solid; + border-radius: 0px; + border-color: @border-colour; + background-color: @alternate-background; + text-color: @foreground-colour; +} +textbox { + border: 0px solid; + border-color: @border-colour; + background-color: transparent; + text-color: @foreground-colour; + vertical-align: 0.5; + horizontal-align: 0.0; + highlight: none; + placeholder-color: @foreground-colour; + blink: true; + markup: true; +} +error-message { + padding: 15px; + border: 0px solid; + border-radius: 10px; + border-color: @border-colour; + background-color: @background-colour; + text-color: @foreground-colour; +} diff --git a/dot-config/bspwm/themes/wave/theme.bash b/dot-config/bspwm/themes/wave/theme.bash new file mode 100644 index 00000000..2ce391ba --- /dev/null +++ b/dot-config/bspwm/themes/wave/theme.bash @@ -0,0 +1,85 @@ +# ------------------------------------------------------------------------------ +# Copyright (C) 2020-2022 Aditya Shakya <adi1090x@gmail.com> +# +# Wave Theme +# ------------------------------------------------------------------------------ + +# Colors +background='#323f4e' +foreground='#f8f8f2' +color0='#3d4c5f' +color1='#f48fb1' +color2='#a1efd3' +color3='#f1fa8c' +color4='#92b6f4' +color5='#bd99ff' +color6='#87dfeb' +color7='#f8f8f2' +color8='#56687e' +color9='#ee4f84' +color10='#53e2ae' +color11='#f1ff52' +color12='#6498ef' +color13='#985eff' +color14='#24d1e7' +color15='#e5e5e5' + +accent='#BD99FF' +element_bg='#3D4C5F' +element_fg='#F8F8F8' + +light_value='0.12' +dark_value='0.30' + +# Wallpaper +wdir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" +wallpaper="$wdir/wallpaper" + +# Polybar +polybar_font='Iosevka Nerd Font:size=10;3' + +# Rofi +rofi_font='Iosevka 10' +rofi_icon='Papirus-Apps' + +# Terminal +terminal_font_name='JetBrainsMono Nerd Font' +terminal_font_size='10' + +# Geany +geany_colors='wave.conf' +geany_font='JetBrains Mono 10' + +# Appearance +gtk_font='Noto Sans 9' +gtk_theme='Wave' +icon_theme='Luv-Folders-Dark' +cursor_theme='Vimix' + +# Dunst +dunst_width='300' +dunst_height='80' +dunst_offset='20x58' +dunst_origin='bottom-right' +dunst_font='Iosevka Custom 9' +dunst_border='0' +dunst_separator='2' + +# Picom +picom_backend='glx' +picom_corner='0' +picom_shadow_r='14' +picom_shadow_o='0.30' +picom_shadow_x='-12' +picom_shadow_y='-12' +picom_blur_method='none' +picom_blur_strength='0' + +# Bspwm +bspwm_fbc="$accent" +bspwm_nbc="$background" +bspwm_abc="$color5" +bspwm_pfc="$color2" +bspwm_border='2' +bspwm_gap='10' +bspwm_sratio='0.50' diff --git a/dot-config/bspwm/themes/wave/wallpaper b/dot-config/bspwm/themes/wave/wallpaper new file mode 120000 index 00000000..0776829b --- /dev/null +++ b/dot-config/bspwm/themes/wave/wallpaper @@ -0,0 +1 @@ +/usr/share/backgrounds/wave.jpg
\ No newline at end of file |
