initial commit

This commit is contained in:
2024-04-06 19:31:51 -05:00
commit 8ff9cb0e98
32 changed files with 1229 additions and 0 deletions

3
README.md Normal file
View File

@ -0,0 +1,3 @@
# Linux Dotfiles
A collection of dotfiles I use for my Arch Linux system.

32
alacritty/alacritty.toml Normal file
View File

@ -0,0 +1,32 @@
# _____ .__ .__ __ __
# / _ \ | | _____ ___________|__|/ |__/ |_ ___.__.
# / /_\ \| | \__ \ _/ ___\_ __ \ \ __\ __< | |
# / | \ |__/ __ \\ \___| | \/ || | | | \___ |
# \____|__ /____(____ /\___ >__| |__||__| |__| / ____|
# \/ \/ \/ \/
#
# https://alacritty.org/config-alacritty.html
# Configuration by Coby Powers
import = [
"~/.config/alacritty/catppuccin-mocha.toml"
]
[window]
padding.x = 10
padding.y = 10
opacity = 0.9
[scrolling]
multiplier = 2
[font]
normal.family = "JetBrains Mono Nerd Font"
size = 12
[cursor]
style.shape = "Beam"
style.blinking = "On"
blink_interval = 500
unfocused_hollow = false

View File

@ -0,0 +1,75 @@
[colors.primary]
background = "#1E1E2E"
foreground = "#CDD6F4"
dim_foreground = "#CDD6F4"
bright_foreground = "#CDD6F4"
[colors.cursor]
text = "#1E1E2E"
cursor = "#F5E0DC"
[colors.vi_mode_cursor]
text = "#1E1E2E"
cursor = "#B4BEFE"
[colors.search.matches]
foreground = "#1E1E2E"
background = "#A6ADC8"
[colors.search.focused_match]
foreground = "#1E1E2E"
background = "#A6E3A1"
[colors.footer_bar]
foreground = "#1E1E2E"
background = "#A6ADC8"
[colors.hints.start]
foreground = "#1E1E2E"
background = "#F9E2AF"
[colors.hints.end]
foreground = "#1E1E2E"
background = "#A6ADC8"
[colors.selection]
text = "#1E1E2E"
background = "#F5E0DC"
[colors.normal]
black = "#45475A"
red = "#F38BA8"
green = "#A6E3A1"
yellow = "#F9E2AF"
blue = "#89B4FA"
magenta = "#F5C2E7"
cyan = "#94E2D5"
white = "#BAC2DE"
[colors.bright]
black = "#585B70"
red = "#F38BA8"
green = "#A6E3A1"
yellow = "#F9E2AF"
blue = "#89B4FA"
magenta = "#F5C2E7"
cyan = "#94E2D5"
white = "#A6ADC8"
[colors.dim]
black = "#45475A"
red = "#F38BA8"
green = "#A6E3A1"
yellow = "#F9E2AF"
blue = "#89B4FA"
magenta = "#F5C2E7"
cyan = "#94E2D5"
white = "#BAC2DE"
[[colors.indexed_colors]]
index = 16
color = "#FAB387"
[[colors.indexed_colors]]
index = 17
color = "#F5E0DC"

View File

@ -0,0 +1,61 @@
$rosewaterAlpha = f5e0dc
$flamingoAlpha = f2cdcd
$pinkAlpha = f5c2e7
$mauveAlpha = cba6f7
$redAlpha = f38ba8
$maroonAlpha = eba0ac
$peachAlpha = fab387
$yellowAlpha = f9e2af
$greenAlpha = a6e3a1
$tealAlpha = 94e2d5
$skyAlpha = 89dceb
$sapphireAlpha = 74c7ec
$blueAlpha = 89b4fa
$lavenderAlpha = b4befe
$textAlpha = cdd6f4
$subtext1Alpha = bac2de
$subtext0Alpha = a6adc8
$overlay2Alpha = 9399b2
$overlay1Alpha = 7f849c
$overlay0Alpha = 6c7086
$surface2Alpha = 585b70
$surface1Alpha = 45475a
$surface0Alpha = 313244
$baseAlpha = 1e1e2e
$mantleAlpha = 181825
$crustAlpha = 11111b
$rosewater = 0xfff5e0dc
$flamingo = 0xfff2cdcd
$pink = 0xfff5c2e7
$mauve = 0xffcba6f7
$red = 0xfff38ba8
$maroon = 0xffeba0ac
$peach = 0xfffab387
$yellow = 0xfff9e2af
$green = 0xffa6e3a1
$teal = 0xff94e2d5
$sky = 0xff89dceb
$sapphire = 0xff74c7ec
$blue = 0xff89b4fa
$lavender = 0xffb4befe
$text = 0xffcdd6f4
$subtext1 = 0xffbac2de
$subtext0 = 0xffa6adc8
$overlay2 = 0xff9399b2
$overlay1 = 0xff7f849c
$overlay0 = 0xff6c7086
$surface2 = 0xff585b70
$surface1 = 0xff45475a
$surface0 = 0xff313244
$base = 0xff1e1e2e
$mantle = 0xff181825
$crust = 0xff11111b

49
hypr/hypridle.conf Normal file
View File

@ -0,0 +1,49 @@
# ___ ___ .__ .___.__
# / | \ ___.__._____________|__| __| _/| | ____
# / ~ < | |\____ \_ __ \ |/ __ | | | _/ __ \
# \ Y /\___ || |_> > | \/ / /_/ | | |_\ ___/
# \___|_ / / ____|| __/|__| |__\____ | |____/\___ >
# \/ \/ |__| \/ \/
#
# https://wiki.hyprland.org/Hypr-Ecosystem/hypridle/
# Configuration by Coby Powers
general {
lock_cmd = pidof hyprlock || hyprlock
unlock_cmd = pidof hyprlock && pkill -USR1 hyprlock
before_sleep_cmd = loginctl lock-session
after_sleep_cmd = hyprctl dispatch dpms on
}
listener {
timeout = 180
on-timeout = brightnessctl -s s 10
on-resume = brightnessctl -r
}
listener {
timeout = 180
on-timeout = brightnessctl -sd asus::kbd_backlight s 0
on-resume = brightnessctl -rd asus::kbd_backlight
}
listener {
timeout = 300
on-timeout = loginctl lock-session
}
listener {
timeout = 600
on-timeout = hyprctl dispatch dpms off
on-resume = hyprctl dispatch dpms on
}
listener {
timeout = 1200
on-timeout = playerctl pause
}
listener {
timeout = 1800
on-timeout = systemctl suspend
}

207
hypr/hyprland.conf Normal file
View File

@ -0,0 +1,207 @@
# ___ ___ .__ .___
# / | \ ___.__._____________| | _____ ____ __| _/
# / ~ < | |\____ \_ __ \ | \__ \ / \ / __ |
# \ Y /\___ || |_> > | \/ |__/ __ \| | \/ /_/ |
# \___|_ / / ____|| __/|__| |____(____ /___| /\____ |
# \/ \/ |__| \/ \/ \/
#
# https://wiki.hyprland.org/Configuring/Variables/#general
# Configuration by Coby Powers
source = ~/.config/hypr/catppuccin-mocha.conf
monitor = HDMI-A-1, 2560x1440@144, 0x1080, 1
monitor = DP-10, 1920x1080@74.97, 320x0, 1
monitor = DP-11, 1920x1080@74.97,320x0, 1
monitor = eDP-1, 2560x1600@120, 2560x1400, 2
monitor = eDP-2, 2560x1600@120, 2560x1400, 2
monitor = , preferred, auto, auto
# keybind variables
$mainMod = SUPER
# app variables
$terminal = alacritty
$browser = brave
$fileManager = nautilus
$musicPlayer = spotify
$menu = wofi
$powerMenu = wlogout
# environment variables
env = XDG_CURRENT_DESKTOP, Hyprland
env = XDG_SESSION_DESTOP, Hyprland
env = XDG_SESSION_TYPE, wayland
env = GDK_BACKEND, wayland,x11
env = QT_QPA_PLATFORM, wayland;xcb
env = QT_QPA_PLATFORMTHEME, qt6ct
env = QT_AUTO_SCREEN_SCALE_FACTOR, 1
env = SDL_VIDEODRIVER, wayland
env = CLUTTER_BACKEND, wayland
env = ELECTRON_OZONE_PLATFORM_HINT, wayland
env = HYPRCURSOR_THEME, Oxygen-18-White
env = HYPRCURSOR_SIZE, 24
# launch system apps
exec-once = ~/.config/hypr/scripts/xdg-portal-hyprland.sh
exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
exec-once = systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
# launch util apps
exec-once = wl-paste --watch cliphist store
exec-once = hyprpaper
exec-once = hypridle
exec-once = waybar
exec-once = nm-applet
exec-once = blueman-applet
exec-once = nextcloud-client
exec-once = notify-send -u low "Daily Quote" "$(python ~/.config/hypr/scripts/quotes.py)"
general {
border_size = 2
gaps_in = 5
gaps_out = 10
col.inactive_border = $surface0
col.active_border = $blue
resize_on_border = true
}
decoration {
rounding = 12
inactive_opacity = 0.95
}
animations {
enabled = true
bezier = custom, .8, 0, .08, 1
animation = windows, 1, 2, custom
animation = layers, 1, 2, custom
animation = fade, 1, 3, default
animation = border, 1, 3, default
animation = borderangle, 1, 3, default
animation = workspaces, 1, 2, custom
}
misc {
disable_hyprland_logo = true
disable_splash_rendering = true # isn't working
}
input {
repeat_rate = 30
repeat_delay = 400
follow_mouse = 1
touchpad {
natural_scroll = true
scroll_factor = 0.3
}
}
gestures {
workspace_swipe = true
}
device {
name = razer-razer-viper-ultimate-dongle
#sensitivity = -0.9
}
dwindle {
pseudotile = true
preserve_split = true
}
windowrulev2 = float, class:(Lxappearance)
windowrulev2 = float, class:(nwg-look)
windowrulev2 = float, class:(qt5ct)
windowrulev2 = float, class:(qt6ct)
windowrulev2 = float, class:(com.nextcloud.desktopclient.nextcloud)
windowrulev2 = float, class:(minecraft-launcher)
windowrulev2 = float, class:(org.gnome.Nautilus)
windowrulev2 = float, title:(Save File)
windowrulev2 = float, title:(Open File)
windowrulev2 = opacity 0.9, class:(org.gnome.Nautilus)
windowrulev2 = opacity, 0.9, class:(wofi)
windowrulev2 = opacity 0.95, class:(signal)
layerrule = blur, logout_dialog
bind = $mainMod, T, exec, $terminal
bind = $mainMod, B, exec, $browser
bind = $mainMod, F, exec, $fileManager
bind = $mainMod, M, exec, $musicPlayer
bind = $mainMod, R, exec, $menu
bind = $mainMod, P, exec, $powerMenu
bind = $mainMod, Q, killactive,
bind = $mainMod SHIFT, Q, exit,
bind = $mainMod, K, togglefloating,
bind = $mainMod, J, togglesplit, # dwindle
bind = $mainMod, C, exec, grim -g "$(slurp -p)" -t ppm - | convert - -format '%[pixel:p{0,0}]' txt:- | tail -n 1 | cut -d ' ' -f 4 | wl-copy
bind = $mainMod, V, exec, cliphist list | wofi --dmenu | cliphist decode | wl-copy
bind = $mainMod SHIFT, V, exec, cliphist wipe
bind = $mainMod, S, exec, grim -g "$(slurp)" - | wl-copy && wl-paste > /home/coby/Pictures/Screenshots/$(date +"scrn_%Y%m%d_%H%M%S.png") && notify-send "Screenshot taken!"
bind = $mainMod SHIFT, S, exec, grim - | wl-copy && wl-paste > /home/coby/Pictures/Screenshots/$(date +"fscrn_%Y%m%d_%H%M%S.png") && notify-send "Screenshot taken!"
bind = $mainMod, left, swapwindow, l
bind = $mainMod, right, swapwindow, r
bind = $mainMod, up, swapwindow, u
bind = $mainMod, down, swapwindow, d
bind = $mainMod SHIFT, left, resizeactive, -5% 0%
bind = $mainMod SHIFT, right, resizeactive, 5% 0%
bind = $mainMod SHIFT, up, resizeactive, 0% -5%
bind = $mainMod SHIFT, down, resizeactive, 0% 5%
bind = $mainMod, 1, workspace, 1
bind = $mainMod, 2, workspace, 2
bind = $mainMod, 3, workspace, 3
bind = $mainMod, 4, workspace, 4
bind = $mainMod, 5, workspace, 5
bind = $mainMod, 6, workspace, 6
bind = $mainMod, 7, workspace, 7
bind = $mainMod, 8, workspace, 8
bind = $mainMod, 9, workspace, 9
bind = $mainMod, 0, workspace, 10
bind = $mainMod SHIFT, 1, movetoworkspace, 1
bind = $mainMod SHIFT, 2, movetoworkspace, 2
bind = $mainMod SHIFT, 3, movetoworkspace, 3
bind = $mainMod SHIFT, 4, movetoworkspace, 4
bind = $mainMod SHIFT, 5, movetoworkspace, 5
bind = $mainMod SHIFT, 6, movetoworkspace, 6
bind = $mainMod SHIFT, 7, movetoworkspace, 7
bind = $mainMod SHIFT, 8, movetoworkspace, 8
bind = $mainMod SHIFT, 9, movetoworkspace, 9
bind = $mainMod SHIFT, 0, movetoworkspace, 10
bind = $mainMod, N, togglespecialworkspace, magic
bind = $mainMod SHIFT, N, movetoworkspace, special:magic
bind = $mainMod, mouse_down, workspace, e+1
bind = $mainMod, mouse_up, workspace, e-1
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow
# TODO: maybe extrapolate notification behavior into scripts
bindel = ,XF86AudioRaiseVolume, exec, pamixer -i 5; notify-send -h string:x-canonical-private-synchronous:vol "Volume set to $(pamixer --get-volume)%"
bindel = ,XF86AudioLowerVolume, exec, pamixer -d 5; notify-send -h string:x-canonical-private-synchronous:vol "Volume set to $(pamixer --get-volume)%"
bindel = ,XF86KbdBrightnessUp, exec, brightnessctl -d asus::kbd_backlight set 1%+; notify-send -h string:x-canonical-private-synchronous:kbd_bright "Keyboard brightness set to $(brightnessctl -d asus::kbd_backlight g)"
bindel = ,XF86KbdBrightnessDown, exec, brightnessctl -d asus::kbd_backlight set 1%-; notify-send -h string:x-canonical-private-synchronous:kbd_bright "Keyboard brightness set to $(brightnessctl -d asus::kbd_backlight g)"
bindel = ,XF86MonBrightnessUp, exec, brightnessctl set 5%+; notify-send -h string:x-canonical-private-synchronous:mon_bright "Monitor brightness set to $(brightnessctl g)"
bindel = ,XF86MonBrightnessDown, exec, brightnessctl set 5%-; notify-send -h string:x-canonical-private-synchronous:mon_bright "Monitor brightness set to $(brightnessctl g)"
bindl = ,XF86AudioMute, exec, pamixer -t; notify-send -h string:x-canonical-private-synchronous:vol "Volume is now $(pamixer --get-volume-human)"
bindl = ,XF86AudioMicMute, exec, pamixer --default-source -t
bindl = ,XF86AudioPrev, exec, playerctl previous
bindl = ,XF86AudioPlay, exec, playerctl play-pause
bindl = ,XF86AudioNext, exec, playerctl next
bindl = ,XF86TouchpadToggle, exec, notify-send -u normal "Unavailable" "Disabling the touchpad has not been implemented yet."
bind = ,156, exec, rog-control-center # rog button
bind = ,210, exec, asusctl led-mode -n # aura button
bind = ,211, exec, asusctl profile -n # fan button

80
hypr/hyprlock.conf Normal file
View File

@ -0,0 +1,80 @@
# ___ ___ .__ __
# / | \ ___.__._____________| | ____ ____ | | __
# / ~ < | |\____ \_ __ \ | / _ \_/ ___\| |/ /
# \ Y /\___ || |_> > | \/ |_( <_> ) \___| <
# \___|_ / / ____|| __/|__| |____/\____/ \___ >__|_ \
# \/ \/ |__| \/ \/
#
# https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock/
# Configuration by Coby Powers
background {
monitor =
path = /home/coby/Nextcloud/Wallpapers/Color Mountains.png
#color = rgba(30, 30, 46, 0.9)
blur_passes = 3
blur_size = 8
noise = 0.0117
contrast = 0.8916
brightness = 0.8172
vibrancy = 0.1696
vibrancy_darkness = 0.0
}
label {
monitor =
text = cmd[update:1000] echo $(date +"%l:%M")
color = rgb(205, 214, 244)
font_size = 180
font_family = Noto Sans
shadow_passes = 1
shadow_color = rgb(49, 50, 68)
position = 0, -110
halign = center
valign = center
}
input-field {
monitor =
size = 600, 75
outline_thickness = 3
dots_size = 0.25
dots_spacing = 0.3
dots_center = false
dots_rounding = -1
outer_color = rgb(49, 50, 68)
inner_color = rgb(30, 30, 46)
font_color = rgb(205, 214, 244)
fade_on_empty = true
fade_timeout = 1000
placeholder_text = <span foreground="##6c7086">Please enter your password...</span>
hide_input = false
rounding = 16
check_color = rgb(249, 226, 175)
fail_color = rgb(243, 139, 168)
fail_text =
fail_transition = 200
capslock_color = rgb(203, 166, 247)
numlock_color = rgb(203, 166, 247)
bothlock_color = rgb(203, 166, 247)
invert_numlock = false
swap_font_color = false
position = 0, -200
halign = center
valign = center
}
label {
monitor =
text = cmd[update:60000] echo -e $(python ~/.config/hypr/scripts/quotes.py || "Hello, Coby")
color = rgb(166, 173, 200)
font_size = 18
font_family = JetBrainsMono Nerd Font
position = 0, -35
halign = center
valign = bottom
}

12
hypr/hyprpaper.conf Normal file
View File

@ -0,0 +1,12 @@
# ___ ___
# / | \ ___.__.________________________ ______ ___________
# / ~ < | |\____ \_ __ \____ \__ \ \____ \_/ __ \_ __ \
# \ Y /\___ || |_> > | \/ |_> > __ \| |_> > ___/| | \/
# \___|_ / / ____|| __/|__| | __(____ / __/ \___ >__|
# \/ \/ |__| |__| \/|__| \/
#
# https://wiki.hyprland.org/Hypr-Ecosystem/hyprpaper/
# Configuration by Coby Powers
preload = /home/coby/Nextcloud/Wallpapers/Color Mountains.png
wallpaper = ,/home/coby/Nextcloud/Wallpapers/Color Mountains.png

17
hypr/scripts/powermenu.sh Executable file
View File

@ -0,0 +1,17 @@
#!/usr/bin/env bash
op=$( echo -e " Shutdown\n Reboot\n Suspend\n Lock" | wofi --dmenu | awk '{print tolower($2)}' )
case $op in
shutdown)
shutdown now
;;
reboot)
;&
suspend)
systemctl $op
;;
lock)
hyprlock
;;
esac

13
hypr/scripts/quotes.py Executable file
View File

@ -0,0 +1,13 @@
#!/usr/bin/env python
import requests
res = requests.get('https://zenquotes.io/api/random')
if not res:
exit(1)
json = res.json()
data = json[0]
print(f"{data['q']}\n -- {data['a']}")

View File

@ -0,0 +1,10 @@
#!/usr/bin/env bash
sleep 1
killall xdg-desktop-portal-hyprland
killall xdg-desktop-portal-wlr
killall xdg-desktop-portal
/usr/lib/xdg-desktop-portal-hyprland &
sleep 2
/usr/lib/xdg-desktop-portal &

27
mako/config Normal file
View File

@ -0,0 +1,27 @@
sort=-time
layer=overlay
background-color=#181825
progress-color=#1e1e2e
text-color=#cdd6f4
width=400
height=200
outer-margin=45,45
margin=0,0,12,0
padding=16
border-size=2
border-color=#b4befe
border-radius=10
max-icon-size=64
default-timeout=5000
ignore-timeout=1
font=monospace 12
[urgency=low]
border-color=#b4befe
[urgency=normal]
border-color=#fab387
[urgency=high]
border-color=#f38ba8
default-timeout=0

145
waybar/config.jsonc Normal file
View File

@ -0,0 +1,145 @@
// __ __ ___.
// / \ / \_____ ___.__.\_ |__ _____ _______
// \ \/\/ /\__ \< | | | __ \\__ \\_ __ \
// \ / / __ \\___ | | \_\ \/ __ \| | \/
// \__/\ / (____ / ____| |___ (____ /__|
// \/ \/\/ \/ \/
//
// https://github.com/Alexays/Waybar/wiki
// Configuration by Coby Powers
{
"layer": "top",
"position": "top",
"height": 50,
"modules-left": ["custom/app-drawer", "hyprland/workspaces", "cpu", "disk", "memory", "custom/weather"],
"modules-center": ["clock", "custom/updates"],
"modules-right": ["temperature", "custom/power_profile", "battery", "pulseaudio", "pulseaudio#microphone", "tray"],
"custom/app-drawer": {
"format": "",
"on-click": "sleep 0.1 && wofi",
"tooltip": false
},
"hyprland/workspaces": {
"persistent-workspaces": {
"1": [],
"2": [],
"3": []
}
},
"cpu": {
"format": " {usage}%",
//"format": "{icon0}{icon1}{icon2}{icon3}{icon4}{icon5}{icon6}{icon7}{icon8}{icon9}{icon10}{icon11}{icon12}{icon13}{icon14}{icon15}",
"format-icons": ["▁", "▂", "▃", "▄", "▅", "▆", "▇", "█"],
//"tooltip-format": "CPU Usage\n{usage}% | {load}\n{avg_frequency} GHz\n\n{icon0}{icon1}{icon2}{icon3}{icon4}{icon5}{icon6}{icon7}\n{icon8}{icon9}{icon10}{icon11}{icon12}{icon13}{icon14}{icon15}",
"tooltip-format": "bruh",
"on-click": "alacritty -o 'window.startup_mode=\"Fullscreen\"' -e btop"
},
"disk": {
"format": "󰋊 {percentage_used}%",
"tooltip-format": "Disk Usage\n\nFree: {percentage_free}%\nUsed: {percentage_used}%\nTotal: {total}",
"on-click": "alacritty -o 'window.startup_mode=\"Fullscreen\"' -e btop"
},
"memory": {
"format": " {percentage}%",
"tooltip-format": "Memory Usage\n\nFree: {avail} GiB\nUsed: {used} GiB\nTotal: {total} GiB",
"on-click": "alacritty -o 'window.startup_mode=\"Fullscreen\"' -e btop"
},
"custom/weather":{
"exec": "~/.config/waybar/scripts/weather.py",
"interval": 30,
"format": "{}",
"return-type": "json"
},
"clock": {
"format": "{:%I:%M %p • %D}",
"tooltip-format": "<big>{:%A, %b %d}</big>\n<tt>{calendar}</tt>",
"calendar": {
"format": {
"months": "",
"weekdays": "<span color='#89b4fa'><b><u>{}</u></b></span>",
"today": "<span color='#89b4fa'><b><u>{}</u></b></span>"
}
}
},
"custom/updates":{
"exec": "~/.config/waybar/scripts/updates.sh json",
"interval": 300,
"format": "{}",
"on-click": "~/.config/waybar/scripts/updates.sh update",
"return-type": "json"
},
"temperature": {
"thermal-zone": 0,
"critical-threshold": 75,
"format": " {temperatureC}°C",
"format-critical": " {temperatureC}°C",
"tooltip-format": "CPU Temp\n{temperatureC}°C | {temperatureF}°F"
},
"custom/power_profile":{
"exec": "asusctl profile -p | sed s:'Active profile is '::",
"interval": 30,
"format": "󰈐 {}",
"tooltip-format": "CPU Mode\n{}",
"on-click": "asusctl profile -n; pkill -SIGRTMIN+8 waybar",
"signal": 8
},
"battery": {
"states": {
"ok": 50,
"warning": 30,
"critical": 15
},
"format": "{icon} {capacity}%",
"format-charging": " {capacity}%",
"format-plugged": " {capacity}%",
"format-icons": ["󰂎", "󰁺", "󰁻", "󰁼", "󰁽", "󰁾", "󰁿", "󰂀", "󰂁", "󰂂", "󰁹"],
"tooltip-format": "Battery\n{capacity}% | {power} W\n\n{timeTo}"
},
"pulseaudio": {
"format": "{icon} {volume}%",
"tooltip-format": "{icon} {desc}",
"format-muted": " Muted",
"on-click": "pamixer -t",
"on-scroll-up": "pamixer -i 5",
"on-scroll-down": "pamixer -d 5",
"scroll-step": 5,
"format-icons": {
"headphone": "",
"hands-free": "",
"headset": "",
"phone": "",
"portable": "",
"car": "",
"default": ["", "", ""]
}
},
"pulseaudio#microphone": {
"format": "{format_source}",
"format-source": " {volume}%",
"format-source-muted": " Muted",
"tooltip-format": " {desc}",
"on-click": "pamixer --default-source -t",
"on-scroll-up": "pamixer --default-source -i 5",
"on-scroll-down": "pamixer --default-source -d 5",
"scroll-step": 5
},
"tray": {
"icon-size": 14,
"spacing": 10
}
}

27
waybar/scripts/updates.sh Executable file
View File

@ -0,0 +1,27 @@
#!/usr/bin/env bash
if [ ! -f /etc/arch-release ]; then
exit 0
fi
AUR=$(paru -Qua | wc -l)
OFFICIAL=$(checkupdates | wc -l)
case $1 in
aur) echo "$AUR";;
official) echo "$OFFICIAL";;
esac
if [ "$1" = "update" ]; then
alacritty -o 'window.startup_mode="Fullscreen"' -e 'paru'
fi
if [ "$1" = "json" ]; then
COUNT=$((OFFICIAL+AUR))
echo "{ \"text\": \" $COUNT\", \"alt\": \"$COUNT Updates\", \"tooltip\": \"Updates Available\n\nAUR: $AUR\nOfficial: $OFFICIAL\nTotal: $COUNT\" }"
fi
if [ "$1" = "" ]; then
echo "$((OFFICIAL+AUR))"
fi

115
waybar/scripts/weather.py Executable file
View File

@ -0,0 +1,115 @@
#!/usr/bin/env python
import json
import requests
from datetime import datetime
ZIP_CODE = 38654
WEATHER_CODES = {
'113': '☀️',
'116': '',
'119': '☁️',
'122': '☁️',
'143': '☁️',
'176': '🌧️',
'179': '🌧️',
'182': '🌧️',
'185': '🌧️',
'200': '⛈️',
'227': '🌨️',
'230': '🌨️',
'248': '☁️',
'260': '☁️',
'263': '🌧️',
'266': '🌧️',
'281': '🌧️',
'284': '🌧️',
'293': '🌧️',
'296': '🌧️',
'299': '🌧️',
'302': '🌧️',
'305': '🌧️',
'308': '🌧️',
'311': '🌧️',
'314': '🌧️',
'317': '🌧️',
'320': '🌨️',
'323': '🌨️',
'326': '🌨️',
'329': '❄️',
'332': ' ',
'335': '❄️',
'338': '❄️',
'350': '🌧️',
'353': '🌧️',
'356': '',
'359': '',
'362': '',
'365': '',
'368': '',
'371': '❄️',
'374': '',
'377': '',
'386': '',
'389': '',
'392': '',
'395': '❄️'
}
data = {}
weather = requests.get(f"https://wttr.in/{ZIP_CODE}?format=j1").json()
def format_time(time):
return time.replace("00", "").zfill(2)
def format_temp(temp):
return (hour['FeelsLikeF']+"°").ljust(3)
def format_chances(hour):
chances = {
"chanceoffog": "Fog",
"chanceoffrost": "Frost",
"chanceofovercast": "Overcast",
"chanceofrain": "Rain",
"chanceofsnow": "Snow",
"chanceofsunshine": "Sunshine",
"chanceofthunder": "Thunder",
"chanceofwindy": "Wind"
}
conditions = []
for event in chances.keys():
if int(hour[event]) > 0:
conditions.append(chances[event]+" "+hour[event]+"%")
return ", ".join(conditions)
tempint = int(weather['current_condition'][0]['FeelsLikeF'])
extrachar = ''
if tempint > 0 and tempint < 10:
extrachar = '+'
data['text'] = ''+WEATHER_CODES[weather['current_condition'][0]['weatherCode']] + \
" "+extrachar+weather['current_condition'][0]['FeelsLikeF']+"°"
data['tooltip'] = f"<b>{weather['current_condition'][0]['weatherDesc'][0]['value']} {weather['current_condition'][0]['temp_F']}°</b>\n"
data['tooltip'] += f"Feels like: {weather['current_condition'][0]['FeelsLikeF']}°\n"
data['tooltip'] += f"Wind: {weather['current_condition'][0]['windspeedKmph']}Km/h\n"
data['tooltip'] += f"Humidity: {weather['current_condition'][0]['humidity']}%\n"
for i, day in enumerate(weather['weather']):
data['tooltip'] += f"\n<b>"
if i == 0:
data['tooltip'] += "Today, "
if i == 1:
data['tooltip'] += "Tomorrow, "
data['tooltip'] += f"{day['date']}</b>\n"
data['tooltip'] += f"⬆️ {day['maxtempF']}° ⬇️ {day['mintempF']}° "
data['tooltip'] += f"🌅 {day['astronomy'][0]['sunrise']} 🌇 {day['astronomy'][0]['sunset']}\n"
for hour in day['hourly']:
if i == 0:
if int(format_time(hour['time'])) < datetime.now().hour-2:
continue
data['tooltip'] += f"{format_time(hour['time'])} {WEATHER_CODES[hour['weatherCode']]} {format_temp(hour['FeelsLikeF'])} {hour['weatherDesc'][0]['value'].replace('Clear ', 'Clear')}, {format_chances(hour)}\n"
print(json.dumps(data))

175
waybar/style.css Normal file
View File

@ -0,0 +1,175 @@
* {
border: none;
border-radius: 0;
font-family: "JetBrainsMono Nerd Font";
font-weight: bold;
font-size: 13px;
}
window#waybar {
background: transparent;
color: #cdd6f4;
}
tooltip {
background: #1e1e2e;
border-radius: 10px;
border: 1px solid #181825;
}
tooltip label {
color: #cdd6f4;
text-decoration: none;
}
tooltip > * {
border-radius: 10px;
}
#custom-app-drawer,
#cpu,
#disk,
#memory,
#custom-weather,
#workspaces,
#clock,
#custom-updates,
#window,
#temperature,
#custom-power_profile,
#battery,
#pulseaudio,
#tray {
background: #1e1e2e;
opacity: 0.9;
padding: 0px 10px;
margin-top: 10px;
border: 1px solid #181825;
}
#custom-app-drawer {
color: #94e2d5;
margin-left: 10px;
padding: 0 15px;
border-radius: 10px 0 0 10px;
}
#workspaces {
margin-right: 10px;
padding-right: 5px;
border-radius: 0 10px 10px 0;
border-left: 0;
}
#cpu,
#disk,
#memory {
color: #f2cdcd;
}
#cpu {
border-radius: 10px 0 0 10px;
}
#disk {
border-left: 0;
}
#memory {
border-left: none;
border-radius: 0 10px 10px 0;
margin-right: 10px;
}
#custom-weather {
color: #f9e2af;
border-radius: 10px;
}
#workspaces button {
color: #6c7086;
padding: 5px;
margin-right: 5px;
}
#workspaces button.active {
color: #a6adc8;
}
#workspaces button.focused {
color: #a6adc8;
background: #eba0ac;
}
#workspaces button.urgent {
color: #11111b;
background: #a6e3a1;
}
#workspaces button:hover {
background: #11111b;
color: #cdd6f4;
}
#clock {
color: #89b4fa;
border-radius: 10px 0 0 10px;
margin-left: 60px;
}
#custom-updates {
border-left: 0;
border-radius: 0 10px 10px 0;
margin-right: 60px;
}
#temperature {
color: #94e2d5;
border-radius: 10px 0px 0px 10px;
}
#temperature.critical {
color: #eba0ac;
}
#custom-power_profile {
color: #a6e3a1;
border-left: 0px;
border-right: 0px;
}
#battery {
color: #a6e3a1;
border-radius: 0 10px 10px 0;
margin-right: 10px;
border-left: 0px;
}
#battery.ok {
color: #f9e2af;
}
#battery.warning {
color: #fab387;
}
#battery.critical {
color: #eba0ac;
}
#pulseaudio {
color: #cba6f7;
border-radius: 10px 0 0 10px;
}
#pulseaudio.microphone {
color: #cba6f7;
border-radius: 0 10px 10px 0;
border-left: none;
margin-right: 10px;
}
#tray {
border-radius: 10px;
margin-right: 10px;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

35
wlogout/layout Normal file
View File

@ -0,0 +1,35 @@
{
"label" : "shutdown",
"action" : "systemctl poweroff",
"text" : "Shutdown"
}
{
"label" : "lock",
"action" : "loginctl lock-session",
"text" : "Lock"
}
{
"label" : "reboot",
"action" : "systemctl reboot",
"text" : "Reboot"
}
{
"label" : "logout",
"action" : "hyprctl dispatch exit 0",
"text" : "Logout"
}
{
"label" : "suspend",
"action" : "systemctl suspend",
"text" : "Suspend"
}
{
"label": "hibernate",
"action": "systemctl hibernate",
"text": "Hibernate"
}

69
wlogout/style.css Normal file
View File

@ -0,0 +1,69 @@
window {
background-color: rgba(17, 17, 17, 0.8);
}
button {
margin: 4px;
color: #cdd6f4;
background-color: #1e1e2e;
background-repeat: no-repeat;
background-position: 50% 32%;
background-size: 25%;
border-radius: 10px;
transition: 0.2s ease-out all;
}
button:focus, button:active, button:hover {
background-color: #89b4fa;
color: #1e1e2e;
box-shadow: none;
}
#shutdown {
background-image: image(url("./icons/inactive/shutdown.png"), url("./icons/inactive/shutdown.png"));
}
#reboot {
background-image: image(url("./icons/inactive/reboot.png"), url("./icons/inactive/reboot.png"));
}
#suspend {
background-image: image(url("./icons/inactive/suspend.png"), url("./icons/inactive/suspend.png"));
}
#lock {
background-image: image(url("./icons/inactive/lock.png"), url("./icons/inactive/lock.png"));
}
#logout {
background-image: image(url("./icons/inactive/logout.png"), url("./icons/inactive/logout.png"));
}
#hibernate {
background-image: image(url("./icons/inactive/hibernate.png"), url("./icons/inactive/hibernate.png"));
}
#shutdown:focus, #shutdown:active, #shutdown:hover {
background-image: image(url("./icons/active/shutdown.png"), url("./icons/active/shutdown.png"));
}
#reboot:focus, #reboot:active, #reboot:hover {
background-image: image(url("./icons/active/reboot.png"), url("./icons/active/reboot.png"));
}
#suspend:focus, #suspend:active, #suspend:hover {
background-image: image(url("./icons/active/suspend.png"), url("./icons/active/suspend.png"));
}
#lock:focus, #lock:active, #lock:hover {
background-image: image(url("./icons/active/lock.png"), url("./icons/active/lock.png"));
}
#logout:focus, #logout:active, #logout:hover {
background-image: image(url("./icons/active/logout.png"), url("./icons/active/logout.png"));
}
#hibernate:focus, #hibernate:active, #hibernate:hover {
background-image: image(url("./icons/active/hibernate.png"), url("./icons/active/hibernate.png"));
}

15
wofi/config Normal file
View File

@ -0,0 +1,15 @@
width=600
height=400
location=center
show=drun
prompt=Search...
filter_rate=100
allow_markup=true
no_actions=true
halign=fill
orientation=vertical
content_halign=fill
insensitive=true
allow_images=true
image_size=40
gtk_dark=true

62
wofi/style.css Normal file
View File

@ -0,0 +1,62 @@
window {
border-radius: 16px;
}
#input {
margin: 4px;
padding: 6px 18px;
border: none;
color: #cdd6f4;
background-color: #1e1e2e;
outline: none;
border-radius: 8px;
margin: 10px;
margin-bottom: 0;
}
#input:first-child > :nth-child(1) {
margin-right: 12px;
}
#input > * {
color: inherit;
}
#input:focus {
margin: 12px;
margin-bottom: 0;
}
#inner-box {
}
#outer-box {
}
#scroll {
margin: 16px;
}
#img {
margin-right: 14px;
}
#text {
color: #e2e7f9;
font-weight: bold;
}
#text:selected {
color: #1e1e2e;
}
#entry {
padding: 6px 8px;
border-radius: 8px;
}
#entry:selected {
background-color: #89b4fa;
border: none;
outline: none;
}