├── wallpaper.jpg ├── assets ├── app.png ├── btop.png ├── steam.png ├── zen.png ├── desktop.png ├── discord.png ├── wlogout.png └── hyprlock.png ├── .config ├── hypr │ ├── wallpaper.jpg │ ├── pyprland.toml │ ├── hypridle.conf │ ├── scripts │ │ ├── gamemode.sh │ │ ├── Refresh.sh │ │ ├── Wlogout.sh │ │ └── Volume.sh │ ├── configs │ │ ├── exec.conf │ │ ├── look.conf │ │ ├── plugins.conf │ │ ├── window-rules.conf │ │ └── binds.conf │ ├── mocha.conf │ ├── hyprlock.conf │ └── hyprland.conf ├── swaync │ ├── icons │ │ ├── bolt.png │ │ ├── music.png │ │ ├── play.png │ │ ├── timer.png │ │ ├── wand.png │ │ ├── gamemode.png │ │ ├── palette.png │ │ ├── picture.png │ │ ├── microphone.png │ │ ├── volume-high.png │ │ ├── volume-low.png │ │ ├── volume-mid.png │ │ ├── volume-mute.png │ │ ├── brightness-20.png │ │ ├── brightness-40.png │ │ ├── brightness-60.png │ │ ├── brightness-80.png │ │ ├── brightness-100.png │ │ └── microphone-mute.png │ ├── config.json │ ├── themes │ │ └── nova-dark │ │ │ ├── notifications.css │ │ │ └── central_control.css │ ├── style.css │ └── configSchema.json ├── fish │ ├── config.back.fish │ ├── config.fish │ └── fish_variables ├── cava │ ├── shaders │ │ ├── pass_through.vert │ │ ├── northern_lights.frag │ │ └── bar_spectrum.frag │ └── config ├── Thunar │ ├── uca.xml │ └── accels.scm ├── fastfetch │ └── config.jsonc ├── sys64 │ └── hud │ │ └── style.css ├── kitty │ └── kitty.conf ├── btop │ ├── themes │ │ └── mocha.theme │ ├── btop.log │ └── btop.conf ├── starship.toml └── waybar │ ├── style.css │ └── config ├── README.md └── .local └── share └── rofi └── themes └── mocha.rasi /wallpaper.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m70v/DOTTY_DOTS/HEAD/wallpaper.jpg -------------------------------------------------------------------------------- /assets/app.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m70v/DOTTY_DOTS/HEAD/assets/app.png -------------------------------------------------------------------------------- /assets/btop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m70v/DOTTY_DOTS/HEAD/assets/btop.png -------------------------------------------------------------------------------- /assets/steam.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m70v/DOTTY_DOTS/HEAD/assets/steam.png -------------------------------------------------------------------------------- /assets/zen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m70v/DOTTY_DOTS/HEAD/assets/zen.png -------------------------------------------------------------------------------- /assets/desktop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m70v/DOTTY_DOTS/HEAD/assets/desktop.png -------------------------------------------------------------------------------- /assets/discord.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m70v/DOTTY_DOTS/HEAD/assets/discord.png -------------------------------------------------------------------------------- /assets/wlogout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m70v/DOTTY_DOTS/HEAD/assets/wlogout.png -------------------------------------------------------------------------------- /assets/hyprlock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m70v/DOTTY_DOTS/HEAD/assets/hyprlock.png -------------------------------------------------------------------------------- /.config/hypr/wallpaper.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m70v/DOTTY_DOTS/HEAD/.config/hypr/wallpaper.jpg -------------------------------------------------------------------------------- /.config/swaync/icons/bolt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m70v/DOTTY_DOTS/HEAD/.config/swaync/icons/bolt.png -------------------------------------------------------------------------------- /.config/swaync/icons/music.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m70v/DOTTY_DOTS/HEAD/.config/swaync/icons/music.png -------------------------------------------------------------------------------- /.config/swaync/icons/play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m70v/DOTTY_DOTS/HEAD/.config/swaync/icons/play.png -------------------------------------------------------------------------------- /.config/swaync/icons/timer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m70v/DOTTY_DOTS/HEAD/.config/swaync/icons/timer.png -------------------------------------------------------------------------------- /.config/swaync/icons/wand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m70v/DOTTY_DOTS/HEAD/.config/swaync/icons/wand.png -------------------------------------------------------------------------------- /.config/swaync/icons/gamemode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m70v/DOTTY_DOTS/HEAD/.config/swaync/icons/gamemode.png -------------------------------------------------------------------------------- /.config/swaync/icons/palette.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m70v/DOTTY_DOTS/HEAD/.config/swaync/icons/palette.png -------------------------------------------------------------------------------- /.config/swaync/icons/picture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m70v/DOTTY_DOTS/HEAD/.config/swaync/icons/picture.png -------------------------------------------------------------------------------- /.config/swaync/icons/microphone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m70v/DOTTY_DOTS/HEAD/.config/swaync/icons/microphone.png -------------------------------------------------------------------------------- /.config/swaync/icons/volume-high.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m70v/DOTTY_DOTS/HEAD/.config/swaync/icons/volume-high.png -------------------------------------------------------------------------------- /.config/swaync/icons/volume-low.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m70v/DOTTY_DOTS/HEAD/.config/swaync/icons/volume-low.png -------------------------------------------------------------------------------- /.config/swaync/icons/volume-mid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m70v/DOTTY_DOTS/HEAD/.config/swaync/icons/volume-mid.png -------------------------------------------------------------------------------- /.config/swaync/icons/volume-mute.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m70v/DOTTY_DOTS/HEAD/.config/swaync/icons/volume-mute.png -------------------------------------------------------------------------------- /.config/swaync/icons/brightness-20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m70v/DOTTY_DOTS/HEAD/.config/swaync/icons/brightness-20.png -------------------------------------------------------------------------------- /.config/swaync/icons/brightness-40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m70v/DOTTY_DOTS/HEAD/.config/swaync/icons/brightness-40.png -------------------------------------------------------------------------------- /.config/swaync/icons/brightness-60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m70v/DOTTY_DOTS/HEAD/.config/swaync/icons/brightness-60.png -------------------------------------------------------------------------------- /.config/swaync/icons/brightness-80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m70v/DOTTY_DOTS/HEAD/.config/swaync/icons/brightness-80.png -------------------------------------------------------------------------------- /.config/swaync/icons/brightness-100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m70v/DOTTY_DOTS/HEAD/.config/swaync/icons/brightness-100.png -------------------------------------------------------------------------------- /.config/swaync/icons/microphone-mute.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/m70v/DOTTY_DOTS/HEAD/.config/swaync/icons/microphone-mute.png -------------------------------------------------------------------------------- /.config/fish/config.back.fish: -------------------------------------------------------------------------------- 1 | if status is-interactive 2 | # Commands to run in interactive sessions can go here 3 | 4 | end 5 | 6 | neofetch 7 | 8 | #for greeting 9 | function fish_greeting 10 | echo "Welcome M70v!" 11 | end -------------------------------------------------------------------------------- /.config/hypr/pyprland.toml: -------------------------------------------------------------------------------- 1 | [pyprland] 2 | 3 | plugins = [ 4 | "scratchpads", 5 | "magnify", 6 | "expose", 7 | ] 8 | 9 | [scratchpads.term] 10 | animation = "fromTop" 11 | command = "kitty --class kitty-dropterm" 12 | class = "kitty-dropterm" 13 | size = "75% 60%" 14 | -------------------------------------------------------------------------------- /.config/cava/shaders/pass_through.vert: -------------------------------------------------------------------------------- 1 | #version 330 2 | 3 | 4 | // Input vertex data, different for all executions of this shader. 5 | layout(location = 0) in vec3 vertexPosition_modelspace; 6 | 7 | // Output data ; will be interpolated for each fragment. 8 | out vec2 fragCoord; 9 | 10 | void main() 11 | { 12 | gl_Position = vec4(vertexPosition_modelspace,1); 13 | fragCoord = (vertexPosition_modelspace.xy+vec2(1,1))/2.0; 14 | } 15 | -------------------------------------------------------------------------------- /.config/Thunar/uca.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | utilities-terminal 5 | Open Terminal Here 6 | 7 | 1734693562588808-1 8 | exo-open --working-directory %f --launch TerminalEmulator 9 | Example for a custom action 10 | 11 | * 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /.config/fish/config.fish: -------------------------------------------------------------------------------- 1 | if status is-interactive 2 | # Commands to run in interactive sessions can go here 3 | starship init fish | source 4 | end 5 | 6 | fastfetch 7 | 8 | #for greeting 9 | function fish_greeting 10 | echo "" 11 | end 12 | #starship init fish | source 13 | set -x HYPRSHOT_DIR ~/Pictures/Screenshots 14 | alias droidkill="waydroid session stop && sudo waydroid container stop" 15 | alias cord="/home/m70v/.config/hypr/scripts/cord.sh" 16 | alias cach="sudo sync && echo 3 | sudo tee /proc/sys/vm/drop_caches" 17 | -------------------------------------------------------------------------------- /.config/hypr/hypridle.conf: -------------------------------------------------------------------------------- 1 | $lock_cmd = pidof hyprlock || hyprlock 2 | $suspend_cmd = pidof steam || systemctl suspend || loginctl suspend # fuck nvidia 3 | 4 | general { 5 | lock_cmd = $lock_cmd 6 | before_sleep_cmd = loginctl lock-session 7 | } 8 | 9 | listener { 10 | timeout = 180 # 3mins 11 | on-timeout = loginctl lock-session 12 | } 13 | 14 | listener { 15 | timeout = 240 # 4mins 16 | on-timeout = hyprctl dispatch dpms off 17 | on-resume = hyprctl dispatch dpms on 18 | } 19 | 20 | listener { 21 | timeout = 540 # 9mins 22 | on-timeout = $suspend_cmd 23 | } 24 | -------------------------------------------------------------------------------- /.config/hypr/scripts/gamemode.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | HYPRGAMEMODE=$(hyprctl getoption animations:enabled | awk 'NR==1{print $2}') 3 | if [ "$HYPRGAMEMODE" = 1 ] ; then 4 | hyprctl --batch "\ 5 | keyword animations:enabled 0;\ 6 | keyword decoration:shadow:enabled 0;\ 7 | keyword decoration:blur:enabled 0;\ 8 | keyword general:gaps_in 0;\ 9 | keyword general:gaps_out 0;\ 10 | keyword general:border_size 1;\ 11 | keyword decoration:rounding 0" 12 | tuned-adm profile accelerator-performance 13 | exit 14 | fi 15 | sync && echo 3 | tee /proc/sys/vm/drop_caches 16 | hyprctl reload 17 | -------------------------------------------------------------------------------- /.config/hypr/configs/exec.conf: -------------------------------------------------------------------------------- 1 | exec-once = waybar 2 | exec-once = pypr & hypridle # for some tricks and for idling 3 | exec-once = xwaylandvideobridge #for streaming 4 | exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP #for streaming 5 | exec-once = kdeconnectd #kde conncet 6 | exec-once = swww-daemon #wallpaper 7 | exec-once = nm-applet #network manager tray 8 | exec-once = hyprpm reload -nn #for hyprland plugins 9 | exec-once = wl-paste --type text --watch cliphist store # Stores only text data 10 | exec-once = wl-paste --type image --watch cliphist store # Stores only image data 11 | exec-once = udiskie #for auto mounting disks 12 | exec-once = systemctl --user start hyprpolkitagent #for authenrication apps 13 | exec-once = hyprcursor #for cursor 14 | 15 | exec-once = syshud #-o verticle -p right # for the audio thing 16 | exec-once = waypaper-engine daemon # walls app 17 | exec-once = hyprlock #hyprlock duh 18 | 19 | -------------------------------------------------------------------------------- /.config/hypr/scripts/Refresh.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ## 3 | # Scripts for refreshing ags waybar, rofi, swaync, wallust 4 | 5 | SCRIPTSDIR=$HOME/.config/hypr/scripts 6 | UserScripts=$HOME/.config/hypr/UserScripts 7 | 8 | # Define file_exists function 9 | file_exists() { 10 | if [ -e "$1" ]; then 11 | return 0 # File exists 12 | else 13 | return 1 # File does not exist 14 | fi 15 | } 16 | 17 | # Kill already running processes 18 | _ps=(waybar rofi swaync ags) 19 | for _prs in "${_ps[@]}"; do 20 | if pidof "${_prs}" >/dev/null; then 21 | pkill "${_prs}" 22 | fi 23 | done 24 | 25 | # quit ags 26 | ags -q 27 | 28 | sleep 0.3 29 | #Restart waybar 30 | waybar & 31 | 32 | # relaunch swaync 33 | sleep 0.5 34 | swaync > /dev/null 2>&1 & 35 | 36 | # relaunch ags 37 | ags & 38 | 39 | # Relaunching rainbow borders if the script exists 40 | sleep 1 41 | if file_exists "${UserScripts}/RainbowBorders.sh"; then 42 | ${UserScripts}/RainbowBorders.sh & 43 | fi 44 | 45 | 46 | exit 0 -------------------------------------------------------------------------------- /.config/cava/shaders/northern_lights.frag: -------------------------------------------------------------------------------- 1 | #version 330 2 | 3 | in vec2 fragCoord; 4 | out vec4 fragColor; 5 | 6 | // bar values. defaults to left channels first (low to high), then right (high to low). 7 | uniform float bars[512]; 8 | 9 | uniform int bars_count; // number of bars (left + right) (configurable) 10 | 11 | uniform vec3 u_resolution; // window resolution, not used here 12 | 13 | //colors, configurable in cava config file 14 | uniform vec3 bg_color; // background color(r,g,b) (0.0 - 1.0), not used here 15 | uniform vec3 fg_color; // foreground color, not used here 16 | 17 | void main() 18 | { 19 | // find which bar to use based on where we are on the x axis 20 | int bar = int(bars_count * fragCoord.x); 21 | 22 | float bar_y = 1.0 - abs((fragCoord.y - 0.5)) * 2.0; 23 | float y = (bars[bar]) * bar_y; 24 | 25 | float bar_x = (fragCoord.x - float(bar) / float(bars_count)) * bars_count; 26 | float bar_r = 1.0 - abs((bar_x - 0.5)) * 2; 27 | 28 | bar_r = bar_r * bar_r * 2; 29 | 30 | // set color 31 | fragColor.r = fg_color.x * y * bar_r; 32 | fragColor.g = fg_color.y * y * bar_r; 33 | fragColor.b = fg_color.z * y * bar_r; 34 | } 35 | -------------------------------------------------------------------------------- /.config/fish/fish_variables: -------------------------------------------------------------------------------- 1 | # This file contains fish universal variable definitions. 2 | # VERSION: 3.0 3 | SETUVAR __fish_initialized:3400 4 | SETUVAR fish_color_autosuggestion:brblack 5 | SETUVAR fish_color_cancel:\x2dr 6 | SETUVAR fish_color_command:blue 7 | SETUVAR fish_color_comment:red 8 | SETUVAR fish_color_cwd:green 9 | SETUVAR fish_color_cwd_root:red 10 | SETUVAR fish_color_end:green 11 | SETUVAR fish_color_error:brred 12 | SETUVAR fish_color_escape:brcyan 13 | SETUVAR fish_color_history_current:\x2d\x2dbold 14 | SETUVAR fish_color_host:normal 15 | SETUVAR fish_color_host_remote:yellow 16 | SETUVAR fish_color_normal:normal 17 | SETUVAR fish_color_operator:brcyan 18 | SETUVAR fish_color_param:cyan 19 | SETUVAR fish_color_quote:yellow 20 | SETUVAR fish_color_redirection:cyan\x1e\x2d\x2dbold 21 | SETUVAR fish_color_search_match:bryellow\x1e\x2d\x2dbackground\x3dbrblack 22 | SETUVAR fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrblack 23 | SETUVAR fish_color_status:red 24 | SETUVAR fish_color_user:brgreen 25 | SETUVAR fish_color_valid_path:\x2d\x2dunderline 26 | SETUVAR fish_key_bindings:fish_default_key_bindings 27 | SETUVAR fish_pager_color_completion:normal 28 | SETUVAR fish_pager_color_description:yellow\x1e\x2di 29 | SETUVAR fish_pager_color_prefix:normal\x1e\x2d\x2dbold\x1e\x2d\x2dunderline 30 | SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan 31 | SETUVAR fish_pager_color_selected_background:\x2dr 32 | SETUVAR fish_user_paths:/root/\x2elocal/share/gem/ruby/3\x2e3\x2e0/bin 33 | -------------------------------------------------------------------------------- /.config/hypr/mocha.conf: -------------------------------------------------------------------------------- 1 | 2 | $rosewater = rgb(f5e0dc) 3 | $rosewaterAlpha = f5e0dc 4 | 5 | $flamingo = rgb(f2cdcd) 6 | $flamingoAlpha = f2cdcd 7 | 8 | $pink = rgb(f5c2e7) 9 | $pinkAlpha = f5c2e7 10 | 11 | $mauve = rgb(cba6f7) 12 | $mauveAlpha = cba6f7 13 | 14 | $red = rgb(f38ba8) 15 | $redAlpha = f38ba8 16 | 17 | $maroon = rgb(eba0ac) 18 | $maroonAlpha = eba0ac 19 | 20 | $peach = rgb(fab387) 21 | $peachAlpha = fab387 22 | 23 | $yellow = rgb(f9e2af) 24 | $yellowAlpha = f9e2af 25 | 26 | $green = rgb(a6e3a1) 27 | $greenAlpha = a6e3a1 28 | 29 | $teal = rgb(94e2d5) 30 | $tealAlpha = 94e2d5 31 | 32 | $sky = rgb(89dceb) 33 | $skyAlpha = 89dceb 34 | 35 | $sapphire = rgb(74c7ec) 36 | $sapphireAlpha = 74c7ec 37 | 38 | $blue = rgb(89b4fa) 39 | $blueAlpha = 89b4fa 40 | 41 | $lavender = rgb(b4befe) 42 | $lavenderAlpha = b4befe 43 | 44 | $text = rgb(cdd6f4) 45 | $textAlpha = cdd6f4 46 | 47 | $subtext1 = rgb(bac2de) 48 | $subtext1Alpha = bac2de 49 | 50 | $subtext0 = rgb(a6adc8) 51 | $subtext0Alpha = a6adc8 52 | 53 | $overlay2 = rgb(9399b2) 54 | $overlay2Alpha = 9399b2 55 | 56 | $overlay1 = rgb(7f849c) 57 | $overlay1Alpha = 7f849c 58 | 59 | $overlay0 = rgb(6c7086) 60 | $overlay0Alpha = 6c7086 61 | 62 | $surface2 = rgb(585b70) 63 | $surface2Alpha = 585b70 64 | 65 | $surface1 = rgb(45475a) 66 | $surface1Alpha = 45475a 67 | 68 | $surface0 = rgb(313244) 69 | $surface0Alpha = 313244 70 | 71 | $base = rgb(1e1e2e) 72 | $baseAlpha = 1e1e2e 73 | 74 | $mantle = rgb(181825) 75 | $mantleAlpha = 181825 76 | 77 | $crust = rgb(11111b) 78 | $crustAlpha = 11111b -------------------------------------------------------------------------------- /.config/swaync/config.json: -------------------------------------------------------------------------------- 1 | { 2 | // "$schema": "$XDG_CONFIG_HOME/swaync/configSchema.json", 3 | "control-center-height": 2, 4 | "control-center-layer": "overlay", 5 | "control-center-margin-bottom": 20, 6 | "control-center-margin-left": 10, 7 | "control-center-margin-right": 0, 8 | "control-center-margin-top": 10, 9 | "control-center-width": 500, 10 | "cssPriority": "application", 11 | "control-center-positionX":"right", 12 | "control-center-positionY":"center", 13 | "fit-to-screen": true, 14 | "hide-on-action": false, 15 | "hide-on-clear": true, 16 | "image-visibility": "when-available", 17 | "keyboard-shortcuts": true, 18 | "layer": "layer", 19 | "notification-body-image-height": 100, 20 | "notification-body-image-width": 200, 21 | "notification-icon-size": 40, 22 | "notification-inline-replies": true, 23 | "notification-visibility": {}, 24 | "notification-window-width": 500, 25 | "positionX": "center", 26 | "positionY": "top", 27 | "script-fail-notify": true, 28 | "scripts": {}, 29 | "timeout": 3, 30 | "timeout-critical": 0, 31 | "timeout-low": 3, 32 | "transition-time": 1000, 33 | "widget-config": { 34 | "volume": { 35 | "label": " ", 36 | "show-per-app": true, 37 | "show-per-app-icon": true, 38 | "show-per-app-label":true 39 | } 40 | }, 41 | 42 | "widgets": [ 43 | "title", 44 | "notifications", 45 | 46 | "mpris", 47 | "volume" 48 | ] 49 | } -------------------------------------------------------------------------------- /.config/fastfetch/config.jsonc: -------------------------------------------------------------------------------- 1 | // _____ _____ _____ _____ _____ _____ _____ _____ _____ 2 | // | __| _ | __|_ _| __| __|_ _| | | | 3 | // | __| |__ | | | | __| __| | | | --| | 4 | // |__| |__|__|_____| |_| |__| |_____| |_| |_____|__|__| OS 5 | // 6 | // by Bina 7 | 8 | 9 | { 10 | "$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json", 11 | "logo": { 12 | "source": "arch_small", // search for logos: fastfetch --list-logos or --print-logos 13 | "padding": { 14 | "top": 1 15 | }, 16 | }, 17 | "display": { 18 | "separator": " " 19 | }, 20 | "modules": [ 21 | "break", 22 | "title", 23 | { 24 | "type": "os", 25 | "key": " ", 26 | "keyColor": "33", // = color3 27 | }, 28 | { 29 | "type": "cpu", 30 | "key": "CPU ", 31 | "keyColor": "33", 32 | }, 33 | { 34 | "type": "gpu", 35 | "format": "{1} {2}", 36 | "key": "GPU ", 37 | "keyColor": "33", 38 | }, 39 | { 40 | "type": "packages", 41 | "format": "{} (pacman)", 42 | "key": "pkgs ", 43 | "keyColor": "33", 44 | }, 45 | { 46 | "type": "uptime", 47 | "format": "{2}h {3}m", 48 | "key": "uptime", 49 | "keyColor": "33", 50 | }, 51 | { 52 | "type": "memory", 53 | "key": "memory", 54 | "keyColor": "33", 55 | }, 56 | 57 | "break", 58 | ] 59 | } -------------------------------------------------------------------------------- /.config/sys64/hud/style.css: -------------------------------------------------------------------------------- 1 | #syshud { 2 | background: transparent; 3 | } 4 | 5 | #syshud .box_layout { 6 | background: #181825; 7 | border-radius: 8px; 8 | border: 2px solid #cba6f7; 9 | margin: 10px; 10 | 11 | } 12 | 13 | #syshud scale { 14 | margin: 0px; 15 | padding: 0px; 16 | } 17 | #syshud label { 18 | color: alpha(#cdd6f4, 0.5); 19 | } 20 | 21 | /* Horizontal layout */ 22 | #syshud scale.horizontal { 23 | padding: 0px; 24 | min-height: 5px; 25 | } 26 | #syshud scale.horizontal trough { 27 | border-radius: 3px; 28 | background: alpha(#6c7086, 0.1); 29 | min-height: 5px; 30 | padding: 0px; 31 | } 32 | #syshud scale.horizontal highlight { 33 | border-radius: 3px; 34 | min-height: 30px; 35 | background: alpha(#cba6f7, 0.75); 36 | margin: 0px; 37 | } 38 | #syshud scale.horizontal slider { 39 | margin: 0px; 40 | background: transparent; 41 | min-height: 5px; 42 | box-shadow: none; 43 | padding: 0px; 44 | } 45 | 46 | /* Vertical layout */ 47 | #syshud scale.vertical { 48 | padding: 0px; 49 | min-width: 5px; 50 | } 51 | #syshud scale.vertical trough { 52 | border-radius: 3px; 53 | background: alpha(currentColor, 0.1); 54 | min-width: 5px; 55 | padding: 0px; 56 | } 57 | #syshud scale.vertical highlight { 58 | border-radius: 3px; 59 | min-width: 5px; 60 | background: alpha(@theme_fg_color, 0.75); 61 | margin: 0px; 62 | } 63 | #syshud scale.vertical slider { 64 | margin: 0px; 65 | background: transparent; 66 | min-width: 5px; 67 | box-shadow: none; 68 | padding: 0px; 69 | min-height: 50px; 70 | } 71 | 72 | /* Levels */ 73 | #syshud .muted { 74 | } 75 | #syshud .low { 76 | } 77 | #syshud .medium { 78 | } 79 | #syshud .high { 80 | } 81 | 82 | -------------------------------------------------------------------------------- /.config/hypr/hyprlock.conf: -------------------------------------------------------------------------------- 1 | 2 | 3 | $clock = rgba(cad3f5ff) 4 | 5 | # BACKGROUND 6 | background { 7 | monitor = 8 | path = ~/wallpaper.jpg 9 | blur_passes = 3 10 | contrast = 0.9 11 | brightness = 0.81 12 | vibrancy = 0.17 13 | vibrancy_darkness = 0 14 | } 15 | 16 | # GENERAL 17 | general { 18 | disable_loading_bar = true 19 | } 20 | 21 | # INPUT FIELD 22 | input-field { 23 | monitor = 24 | size = 300, 40 25 | outline_thickness = 2 26 | dots_size = 0.2 # Scale of input-field height, 0.2 - 0.8 27 | dots_spacing = 0.2 # Scale of dots' absolute size, 0.0 - 1.0 28 | dots_center = true 29 | outer_color = rgba(45475aff) 30 | inner_color = rgba(cdd6f4ff) 31 | font_color = rgba(363a4fff) 32 | fade_on_empty = true 33 | placeholder_text = 34 | hide_input = false 35 | position = 0, 150 36 | halign = center 37 | valign = bottom 38 | } 39 | 40 | # Hour-Time 41 | label { 42 | monitor = 43 | text = cmd[update:1000] echo -e "$(date +"%I")" 44 | color = $clock 45 | font_family = JetBrainsMono Bold 46 | font_size = 180 47 | position = 0, 150 48 | halign = center 49 | valign = center 50 | } 51 | 52 | # Minute-Time 53 | label { 54 | monitor = 55 | text = cmd[update:1000] echo -e "$(date +"%M ")" 56 | color = $clock 57 | font_family = JetBrainsMono Bold 58 | font_size = 180 59 | position = 0, -75 60 | halign = center 61 | valign = center 62 | } 63 | 64 | # Date 65 | label { 66 | monitor = 67 | text = cmd[update:1000] echo -e "$(date +"%a, %b %d")" 68 | color = $clock 69 | font_family = JetBrainsMono Bold 70 | position = 0, 0 71 | halign = center 72 | valign = top 73 | } 74 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # DOTTY_DOTS 2 | my very first hyprland rice!! 3 | 4 | Most of the dots are either catpuccin mocha or dots from others that i modified to my liking :) 5 | # **some of these configs are outdate (mainly the hyprland config)** 6 | # Dependencies 7 | these were the main packages used in this rice: 8 | - btop 9 | - cava 10 | - fastfetch 11 | - hypridle 12 | - hyprland 13 | - hyprlock 14 | - swww 15 | - udiskie 16 | - waybar 17 | - wl-clipboard 18 | - wlogout 19 | - rofi 20 | - fish 21 | - waypaper 22 | - waypaper-engine 23 | - hyprcursor 24 | - dracula cursor https://store.kde.org/p/1669262 25 | - dracula icons https://github.com/m4thewz/dracula-icons 26 | - starship 27 | - syshud https://github.com/System64fumo/syshud 28 | - Adwaita for Steam https://github.com/tkashkin/Adwaita-for-Steam 29 | - zen-browser https://zen-browser.app/ 30 | - discord theme: https://github.com/refact0r/midnight-discord/blob/master/themes/flavors/midnight-catppuccin-mocha.theme.css 31 | 32 | # ScreenShots 33 | 34 | 35 | ### desktop with cava and kitty 36 | ![desktop](https://github.com/m70v/DOTTY_DOTS/blob/main/assets/desktop.png) 37 | 38 | ### btop 39 | ![btop](https://github.com/m70v/DOTTY_DOTS/blob/main/assets/btop.png) 40 | 41 | ### Steam 42 | ![steam](https://github.com/m70v/DOTTY_DOTS/blob/main/assets/steam.png) 43 | 44 | ### App launcher + audio hud 45 | ![App launcher + audio hud](https://github.com/m70v/DOTTY_DOTS/blob/main/assets/app.png) 46 | 47 | ### hyprlock 48 | ![hyprlock](https://github.com/m70v/DOTTY_DOTS/blob/main/assets/hyprlock.png) 49 | 50 | ### Logout menu 51 | ![wlogout](https://github.com/m70v/DOTTY_DOTS/blob/main/assets/wlogout.png) 52 | 53 | ### Discord 54 | ![Discord](https://github.com/m70v/DOTTY_DOTS/blob/main/assets/discord.png) 55 | 56 | ### Browser 57 | ![browser](https://github.com/m70v/DOTTY_DOTS/blob/main/assets/zen.png) 58 | -------------------------------------------------------------------------------- /.config/kitty/kitty.conf: -------------------------------------------------------------------------------- 1 | # vim:ft=kitty 2 | 3 | ## name: Catppuccin Kitty Mocha 4 | ## author: Catppuccin Org 5 | ## license: MIT 6 | ## upstream: https://github.com/catppuccin/kitty/blob/main/themes/mocha.conf 7 | ## blurb: Soothing pastel theme for the high-spirited! 8 | 9 | 10 | 11 | # The basic colors 12 | foreground #cdd6f4 13 | background #1e1e2e 14 | selection_foreground #1e1e2e 15 | selection_background #f5e0dc 16 | 17 | # Cursor colors 18 | cursor #f5e0dc 19 | cursor_text_color #1e1e2e 20 | 21 | # URL underline color when hovering with mouse 22 | url_color #f5e0dc 23 | 24 | # Kitty window border colors 25 | active_border_color #b4befe 26 | inactive_border_color #6c7086 27 | bell_border_color #f9e2af 28 | 29 | # OS Window titlebar colors 30 | wayland_titlebar_color system 31 | macos_titlebar_color system 32 | 33 | # Tab bar colors 34 | active_tab_foreground #11111b 35 | active_tab_background #cba6f7 36 | inactive_tab_foreground #cdd6f4 37 | inactive_tab_background #181825 38 | tab_bar_background #11111b 39 | 40 | # Colors for marks (marked text in the terminal) 41 | mark1_foreground #1e1e2e 42 | mark1_background #b4befe 43 | mark2_foreground #1e1e2e 44 | mark2_background #cba6f7 45 | mark3_foreground #1e1e2e 46 | mark3_background #74c7ec 47 | 48 | # The 16 terminal colors 49 | 50 | # black 51 | color0 #45475a 52 | color8 #585b70 53 | 54 | # red 55 | color1 #f38ba8 56 | color9 #f38ba8 57 | 58 | # green 59 | color5 #a6e3a1 60 | color13 #a6e3a1 61 | 62 | # blue 63 | color4 #89b4fa 64 | color12 #89b4fa 65 | 66 | # lavender 67 | color3 #b4befe 68 | color11 #b4befe 69 | 70 | # magenta 71 | color2 #f5c2e7 72 | color10 #f5c2e7 73 | 74 | # mauve 75 | color6 #cba6f7 76 | color14 #cba6f7 77 | 78 | # white 79 | color7 #bac2de 80 | color15 #a6adc8 -------------------------------------------------------------------------------- /.config/hypr/hyprland.conf: -------------------------------------------------------------------------------- 1 | 2 | # ______ ___ _________ _________ ____ ____ ______ ___ _________ ______ 3 | # |_ _ `. .' `. | _ _ || _ _ ||_ _||_ _| |_ _ `. .' `. | _ _ |.' ____ \ 4 | # | | `. \/ .-. \|_/ | | \_||_/ | | \_| \ \ / / | | `. \/ .-. \|_/ | | \_|| (___ \_| 5 | # | | | || | | | | | | | \ \/ / | | | || | | | | | _.____`. 6 | # _| |_.' /\ `-' / _| |_ _| |_ _| |_ _______ _| |_.' /\ `-' / _| |_ | \____) | 7 | # |______.' `.___.' |_____| |_____| |______||_______||______.' `.___.' |_____| \______.' 8 | 9 | 10 | 11 | 12 | $terminal = kitty 13 | $fileManager = dolphins 14 | $menu = rofi -show drun 15 | 16 | 17 | #config files 18 | source = ~/.config/hypr/configs/binds.conf 19 | source = ~/.config/hypr/configs/window-rules.conf 20 | source = ~/.config/hypr/configs/plugins.conf 21 | source = ~/.config/hypr/configs/exec.conf 22 | source = ~/.config/hypr/configs/look.conf 23 | 24 | #screens 25 | monitor= eDP-1 ,1920x1080@120,auto,1 26 | 27 | 28 | #cursor 29 | env = XCURSOR_SIZE,24 30 | env = HYPRCURSOR_SIZE,24 31 | env = XCURSOR_THEME,Dracula-cursors 32 | cursor { 33 | no_hardware_cursors = true 34 | } 35 | 36 | #for nvidia 37 | env = LIBVA_DRIVER_NAME,nvidia 38 | env = __GLX_VENDOR_LIBRARY_NAME,nvidia 39 | env = NVD_BACKEND,direct 40 | 41 | 42 | #input 43 | input { 44 | kb_layout = us,ara 45 | kb_variant = , 46 | kb_options = grp:alt_shift_toggle 47 | 48 | touchpad { 49 | disable_while_typing = true 50 | natural_scroll = true 51 | clickfinger_behavior = false 52 | middle_button_emulation = true 53 | tap-to-click = true 54 | drag_lock = false 55 | } 56 | sensitivity = 0.0000000 57 | force_no_accel = 1 58 | accel_profile=flat 59 | follow_mouse=1 60 | 61 | 62 | } 63 | 64 | gestures { 65 | workspace_swipe = true 66 | workspace_swipe_fingers = 3 67 | workspace_swipe_distance = 100 68 | workspace_swipe_invert = true 69 | workspace_swipe_min_speed_to_force = 30 70 | workspace_swipe_cancel_ratio = 0.5 71 | workspace_swipe_create_new = true 72 | workspace_swipe_forever = true 73 | } 74 | device { 75 | name = epic-mouse-v1 76 | sensitivity = 0 77 | } 78 | 79 | -------------------------------------------------------------------------------- /.local/share/rofi/themes/mocha.rasi: -------------------------------------------------------------------------------- 1 | * { 2 | bg-col: #1e1e2e; 3 | bg-col-light: #1e1e2e; 4 | border-col: #1e1e2e; 5 | selected-col: #1e1e2e; 6 | blue: #cba6f7; 7 | fg-col: #cdd6f4; 8 | fg-col2: #cba6f7; 9 | grey: #6c7086; 10 | 11 | width: 600; 12 | font: "JetBrainsMono Nerd Font 14"; 13 | } 14 | 15 | element-text, element-icon , mode-switcher { 16 | background-color: inherit; 17 | text-color: inherit; 18 | } 19 | 20 | window { 21 | height: 360px; 22 | border: 3px; 23 | border-color: @blue; 24 | background-color: @bg-col; 25 | border-radius: 7px; 26 | } 27 | 28 | mainbox { 29 | background-color: @bg-col; 30 | } 31 | 32 | inputbar { 33 | children: [prompt,entry]; 34 | background-color: @bg-col; 35 | border-radius: 5px; 36 | padding: 2px; 37 | } 38 | 39 | prompt { 40 | background-color: @blue; 41 | padding: 6px; 42 | text-color: @bg-col; 43 | border-radius: 3px; 44 | margin: 20px 0px 0px 20px; 45 | } 46 | 47 | textbox-prompt-colon { 48 | expand: false; 49 | str: ":"; 50 | } 51 | 52 | entry { 53 | padding: 6px; 54 | margin: 20px 0px 0px 10px; 55 | text-color: @fg-col; 56 | background-color: @bg-col; 57 | } 58 | 59 | listview { 60 | border: 0px 0px 0px; 61 | padding: 6px 0px 0px; 62 | margin: 10px 0px 0px 20px; 63 | columns: 1; 64 | lines: 10; 65 | background-color: @bg-col; 66 | } 67 | 68 | element { 69 | padding: 5px; 70 | background-color: @bg-col; 71 | text-color: @fg-col ; 72 | } 73 | 74 | element-icon { 75 | size: 25px; 76 | } 77 | 78 | element selected { 79 | background-color: @selected-col ; 80 | text-color: #89b4fa ; 81 | } 82 | 83 | mode-switcher { 84 | spacing: 0; 85 | } 86 | 87 | button { 88 | padding: 10px; 89 | background-color: @bg-col-light; 90 | text-color: @grey; 91 | vertical-align: 0.5; 92 | horizontal-align: 0.5; 93 | } 94 | 95 | button selected { 96 | background-color: @bg-col; 97 | text-color: @blue; 98 | } 99 | 100 | message { 101 | background-color: @bg-col-light; 102 | margin: 2px; 103 | padding: 2px; 104 | border-radius: 5px; 105 | } 106 | 107 | textbox { 108 | padding: 6px; 109 | margin: 20px 0px 0px 20px; 110 | text-color: @blue; 111 | background-color: @bg-col-light; 112 | } -------------------------------------------------------------------------------- /.config/hypr/configs/look.conf: -------------------------------------------------------------------------------- 1 | general { 2 | gaps_in = 2 3 | gaps_out = 3 4 | 5 | border_size = 2 6 | 7 | # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors 8 | col.active_border = rgba(c6a0f6ff) #rgba(7287fdff) rgba(33ccffee) 90deg 9 | col.inactive_border = rgba(c6a0f655) 10 | 11 | # Set to true enable resizing windows by clicking and dragging on borders and gaps 12 | resize_on_border = true 13 | 14 | # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on 15 | allow_tearing = false 16 | 17 | layout = dwindle 18 | } 19 | input { 20 | numlock_by_default = true 21 | } 22 | decoration { 23 | rounding = 5 24 | 25 | active_opacity = 1 26 | inactive_opacity = 1 27 | fullscreen_opacity = 1 28 | dim_inactive = yes 29 | dim_strength = 0.3 30 | dim_special = 0 31 | 32 | blur { 33 | enabled = no 34 | size = 5 35 | passes = 4 36 | ignore_opacity = true 37 | new_optimizations = true 38 | special = true 39 | noise = 0 40 | contrast = 100 41 | xray = false 42 | brightness = 0.8 43 | } 44 | } 45 | animations { 46 | enabled = yes 47 | 48 | bezier = quart, 0.19, 1, -0.30, 1 49 | bezier = wind, 0.05, 0.9, 0.1, 1.05 50 | bezier = winIn, 0.1, 1.1, 0.1, 1.1 51 | bezier = winOut, 0.3, -0.3, 0, 1 52 | bezier = liner, 1, 1, 1, 1 53 | bezier = overshot, 0.05, 0.9, 0.1, 1.05 54 | bezier = smoothOut, 0.5, 0, 0.99, 0.99 55 | bezier = smoothIn, 0.5, -0.5, 0.68, 1.5 56 | 57 | animation = windows, 1, 5, quart, slide 58 | animation = windowsIn, 1, 5, quart, slide 59 | animation = windowsOut, 1, 5, quart, slide 60 | animation = windowsMove, 1, 3, quart, 61 | animation = border, 0, 5, quart 62 | animation = fade, 1, 3, quart 63 | animation = workspaces, 1, 2, quart 64 | } 65 | 66 | misc:vfr = true 67 | # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more 68 | dwindle { 69 | pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below 70 | preserve_split = true # You probably want this 71 | } 72 | 73 | # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more 74 | master { 75 | new_status = master 76 | } 77 | 78 | # https://wiki.hyprland.org/Configuring/Variables/#misc 79 | misc { 80 | force_default_wallpaper = 1 # Set to 0 or 1 to disable the anime mascot wallpapers 81 | disable_hyprland_logo = true # If true disables the random hyprland logo / anime girl background. :( 82 | } 83 | -------------------------------------------------------------------------------- /.config/btop/themes/mocha.theme: -------------------------------------------------------------------------------- 1 | # Main background, empty for terminal default, need to be empty if you want transparent background 2 | theme[main_bg]="#1e1e2e" 3 | 4 | # Main text color 5 | theme[main_fg]="#cdd6f4" 6 | 7 | # Title color for boxes 8 | theme[title]="#cdd6f4" 9 | 10 | # Highlight color for keyboard shortcuts 11 | theme[hi_fg]="#89b4fa" 12 | 13 | # Background color of selected item in processes box 14 | theme[selected_bg]="#45475a" 15 | 16 | # Foreground color of selected item in processes box 17 | theme[selected_fg]="#89b4fa" 18 | 19 | # Color of inactive/disabled text 20 | theme[inactive_fg]="#7f849c" 21 | 22 | # Color of text appearing on top of graphs, i.e uptime and current network graph scaling 23 | theme[graph_text]="#f5e0dc" 24 | 25 | # Background color of the percentage meters 26 | theme[meter_bg]="#45475a" 27 | 28 | # Misc colors for processes box including mini cpu graphs, details memory graph and details status text 29 | theme[proc_misc]="#f5e0dc" 30 | 31 | # CPU, Memory, Network, Proc box outline colors 32 | theme[cpu_box]="#cba6f7" #Mauve 33 | theme[mem_box]="#a6e3a1" #Green 34 | theme[net_box]="#eba0ac" #Maroon 35 | theme[proc_box]="#89b4fa" #Blue 36 | 37 | # Box divider line and small boxes line color 38 | theme[div_line]="#6c7086" 39 | 40 | # Temperature graph color (Green -> Yellow -> Red) 41 | theme[temp_start]="#a6e3a1" 42 | theme[temp_mid]="#f9e2af" 43 | theme[temp_end]="#f38ba8" 44 | 45 | # CPU graph colors (Teal -> Lavender) 46 | theme[cpu_start]="#94e2d5" 47 | theme[cpu_mid]="#74c7ec" 48 | theme[cpu_end]="#b4befe" 49 | 50 | # Mem/Disk free meter (Mauve -> Lavender -> Blue) 51 | theme[free_start]="#cba6f7" 52 | theme[free_mid]="#b4befe" 53 | theme[free_end]="#89b4fa" 54 | 55 | # Mem/Disk cached meter (Sapphire -> Lavender) 56 | theme[cached_start]="#74c7ec" 57 | theme[cached_mid]="#89b4fa" 58 | theme[cached_end]="#b4befe" 59 | 60 | # Mem/Disk available meter (Peach -> Red) 61 | theme[available_start]="#fab387" 62 | theme[available_mid]="#eba0ac" 63 | theme[available_end]="#f38ba8" 64 | 65 | # Mem/Disk used meter (Green -> Sky) 66 | theme[used_start]="#a6e3a1" 67 | theme[used_mid]="#94e2d5" 68 | theme[used_end]="#89dceb" 69 | 70 | # Download graph colors (Peach -> Red) 71 | theme[download_start]="#fab387" 72 | theme[download_mid]="#eba0ac" 73 | theme[download_end]="#f38ba8" 74 | 75 | # Upload graph colors (Green -> Sky) 76 | theme[upload_start]="#a6e3a1" 77 | theme[upload_mid]="#94e2d5" 78 | theme[upload_end]="#89dceb" 79 | 80 | # Process box color gradient for threads, mem and cpu usage (Sapphire -> Mauve) 81 | theme[process_start]="#74c7ec" 82 | theme[process_mid]="#b4befe" 83 | theme[process_end]="#cba6f7" -------------------------------------------------------------------------------- /.config/cava/shaders/bar_spectrum.frag: -------------------------------------------------------------------------------- 1 | #version 330 2 | 3 | in vec2 fragCoord; 4 | out vec4 fragColor; 5 | 6 | // bar values. defaults to left channels first (low to high), then right (high to low). 7 | uniform float bars[512]; 8 | 9 | uniform int bars_count; // number of bars (left + right) (configurable) 10 | uniform int bar_width; // bar width (configurable), not used here 11 | uniform int bar_spacing; // space bewteen bars (configurable) 12 | 13 | uniform vec3 u_resolution; // window resolution 14 | 15 | //colors, configurable in cava config file (r,g,b) (0.0 - 1.0) 16 | uniform vec3 bg_color; // background color 17 | uniform vec3 fg_color; // foreground color 18 | 19 | uniform int gradient_count; 20 | uniform vec3 gradient_colors[8]; // gradient colors 21 | 22 | vec3 normalize_C(float y,vec3 col_1, vec3 col_2, float y_min, float y_max) 23 | { 24 | //create color based on fraction of this color and next color 25 | float yr = (y - y_min) / (y_max - y_min); 26 | return col_1 * (1.0 - yr) + col_2 * yr; 27 | } 28 | 29 | void main() 30 | { 31 | // find which bar to use based on where we are on the x axis 32 | float x = u_resolution.x * fragCoord.x; 33 | int bar = int(bars_count * fragCoord.x); 34 | 35 | //calculate a bar size 36 | float bar_size = u_resolution.x / bars_count; 37 | 38 | //the y coordinate and bar values are the same 39 | float y = bars[bar]; 40 | 41 | // make sure there is a thin line at bottom 42 | if (y * u_resolution.y < 1.0) 43 | { 44 | y = 1.0 / u_resolution.y; 45 | } 46 | 47 | //draw the bar up to current height 48 | if (y > fragCoord.y) 49 | { 50 | //make some space between bars basen on settings 51 | if (x > (bar + 1) * (bar_size) - bar_spacing) 52 | { 53 | fragColor = vec4(bg_color,1.0); 54 | } 55 | else 56 | { 57 | if (gradient_count == 0) 58 | { 59 | fragColor = vec4(fg_color,1.0); 60 | } 61 | else 62 | { 63 | //find which color in the configured gradient we are at 64 | int color = int((gradient_count - 1) * fragCoord.y); 65 | 66 | //find where on y this and next color is supposed to be 67 | float y_min = color / (gradient_count - 1.0); 68 | float y_max = (color + 1.0) / (gradient_count - 1.0); 69 | 70 | //make color 71 | fragColor = vec4(normalize_C(fragCoord.y, gradient_colors[color], gradient_colors[color + 1], y_min, y_max), 1.0); 72 | } 73 | } 74 | } 75 | else 76 | { 77 | fragColor = vec4(bg_color,1.0); 78 | } 79 | } -------------------------------------------------------------------------------- /.config/starship.toml: -------------------------------------------------------------------------------- 1 | format = """ 2 | [](#1E1E2E)\ 3 | $python\ 4 | $username\ 5 | [](bg:#302D41 fg:#1E1E2E)\ 6 | $directory\ 7 | [](fg:#302D41 bg:#575268)\ 8 | $git_branch\ 9 | $git_status\ 10 | [](fg:#575268 bg:#8D77AB)\ 11 | $c\ 12 | $elixir\ 13 | $elm\ 14 | $golang\ 15 | $haskell\ 16 | $java\ 17 | $julia\ 18 | $nodejs\ 19 | $nim\ 20 | $rust\ 21 | [](fg:#8D77AB bg:#A891F2)\ 22 | $docker_context\ 23 | [](fg:#A891F2 bg:#b08ae0)\ 24 | $time\ 25 | [ ](fg:#b08ae0)\ 26 | """ 27 | command_timeout = 5000 28 | # Disable the blank line at the start of the prompt 29 | # add_newline = false 30 | 31 | [username] 32 | show_always = true 33 | style_user = "bg:#1E1E2E" 34 | style_root = "bg:#1E1E2E" 35 | format = '[$user ]($style)' 36 | 37 | [directory] 38 | style = "bg:#302D41" 39 | format = "[ $path ]($style)" 40 | truncation_length = 3 41 | truncation_symbol = "…/" 42 | 43 | [directory.substitutions] 44 | "Documents" = "󰈙 " 45 | "Downloads" = " " 46 | "Music" = " " 47 | "Pictures" = " " 48 | 49 | [c] 50 | symbol = " " 51 | style = "bg:#8D77AB" 52 | format = '[ $symbol ($version) ]($style)' 53 | 54 | [docker_context] 55 | symbol = " " 56 | style = "bg:#A891F2" 57 | format = '[ $symbol $context ]($style) $path' 58 | 59 | [elixir] 60 | symbol = " " 61 | style = "bg:#8D77AB" 62 | format = '[ $symbol ($version) ]($style)' 63 | 64 | [elm] 65 | symbol = " " 66 | style = "bg:#8D77AB" 67 | format = '[ $symbol ($version) ]($style)' 68 | 69 | [git_branch] 70 | symbol = "" 71 | style = "bg:#575268" 72 | format = '[ $symbol $branch ]($style)' 73 | 74 | [git_status] 75 | style = "bg:#575268" 76 | format = '[$all_status$ahead_behind ]($style)' 77 | 78 | [golang] 79 | symbol = " " 80 | style = "bg:#8D77AB" 81 | format = '[ $symbol ($version) ]($style)' 82 | 83 | [haskell] 84 | symbol = " " 85 | style = "bg:#8D77AB" 86 | format = '[ $symbol ($version) ]($style)' 87 | 88 | [java] 89 | symbol = " " 90 | style = "bg:#8D77AB" 91 | format = '[ $symbol ($version) ]($style)' 92 | 93 | [julia] 94 | symbol = " " 95 | style = "bg:#8D77AB" 96 | format = '[ $symbol ($version) ]($style)' 97 | 98 | [nodejs] 99 | symbol = "" 100 | style = "bg:#8D77AB" 101 | format = '[ $symbol ($version) ]($style)' 102 | 103 | [nim] 104 | symbol = " " 105 | style = "bg:#8D77AB" 106 | format = '[ $symbol ($version) ]($style)' 107 | 108 | [python] 109 | style = "bg:#1E1E2E" 110 | format = '[(\($virtualenv\) )]($style)' 111 | 112 | [rust] 113 | symbol = "" 114 | style = "bg:#8D77AB" 115 | format = '[ $symbol ($version) ]($style)' 116 | 117 | [time] 118 | disabled = false 119 | time_format = "%R" 120 | style = "bg:#b08ae0" 121 | format = '[ $time ]($style)' 122 | -------------------------------------------------------------------------------- /.config/hypr/scripts/Wlogout.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ## 3 | # wlogout (Power, Screen Lock, Suspend, etc) 4 | 5 | # Set variables for parameters. First numbers corresponts to Monitor Resolution 6 | # i.e 2160 means 2160p 7 | A_2160=700 8 | B_2160=700 9 | A_1600=480 10 | B_1600=480 11 | A_1440=450 12 | B_1440=450 13 | A_1080=350 14 | B_1080=350 15 | A_720=50 16 | B_720=50 17 | 18 | # Check if wlogout is already running 19 | if pgrep -x "wlogout" > /dev/null; then 20 | pkill -x "wlogout" 21 | exit 0 22 | fi 23 | 24 | # Detect monitor resolution and scaling factor 25 | resolution=$(hyprctl -j monitors | jq -r '.[] | select(.focused==true) | .height / .scale' | awk -F'.' '{print $1}') 26 | hypr_scale=$(hyprctl -j monitors | jq -r '.[] | select(.focused==true) | .scale') 27 | 28 | # Set parameters based on screen resolution and scaling factor 29 | if ((resolution >= 2160)); then 30 | T_val=$(awk "BEGIN {printf \"%.0f\", $A_2160 * 2160 * $hypr_scale / $resolution}") 31 | B_val=$(awk "BEGIN {printf \"%.0f\", $B_2160 * 2160 * $hypr_scale / $resolution}") 32 | echo "Setting parameters for resolution >= 4k" 33 | wlogout --protocol layer-shell -b 6 -T $T_val -B $B_val & 34 | elif ((resolution >= 1600 && resolution < 2160)); then 35 | T_val=$(awk "BEGIN {printf \"%.0f\", $A_1600 * 1600 * $hypr_scale / $resolution}") 36 | B_val=$(awk "BEGIN {printf \"%.0f\", $B_1600 * 1600 * $hypr_scale / $resolution}") 37 | echo "Setting parameters for resolution >= 2.5k and < 4k" 38 | wlogout --protocol layer-shell -b 6 -T $T_val -B $B_val & 39 | elif ((resolution >= 1440 && resolution < 1600)); then 40 | T_val=$(awk "BEGIN {printf \"%.0f\", $A_1440 * 1440 * $hypr_scale / $resolution}") 41 | B_val=$(awk "BEGIN {printf \"%.0f\", $B_1440 * 1440 * $hypr_scale / $resolution}") 42 | echo "Setting parameters for resolution >= 2k and < 2.5k" 43 | wlogout --protocol layer-shell -b 6 -T $T_val -B $B_val & 44 | elif ((resolution >= 1080 && resolution < 1440)); then 45 | T_val=$(awk "BEGIN {printf \"%.0f\", $A_1080 * 1080 * $hypr_scale / $resolution}") 46 | B_val=$(awk "BEGIN {printf \"%.0f\", $B_1080 * 1080 * $hypr_scale / $resolution}") 47 | echo "Setting parameters for resolution >= 1080p and < 2k" 48 | wlogout --protocol layer-shell -b 6 -T $T_val -B $B_val & 49 | elif ((resolution >= 720 && resolution < 1080)); then 50 | T_val=$(awk "BEGIN {printf \"%.0f\", $A_720 * 720 * $hypr_scale / $resolution}") 51 | B_val=$(awk "BEGIN {printf \"%.0f\", $B_720 * 720 * $hypr_scale / $resolution}") 52 | echo "Setting parameters for resolution >= 720p and < 1080p" 53 | wlogout --protocol layer-shell -b 3 -T $T_val -B $B_val & 54 | else 55 | echo "Setting default parameters" 56 | wlogout & 57 | fi 58 | -------------------------------------------------------------------------------- /.config/hypr/configs/plugins.conf: -------------------------------------------------------------------------------- 1 | #alot of these i dont use now 2 | #####plugins 3 | 4 | plugin { 5 | hyprtrails { 6 | color = rgba(cba6f7ff) 7 | } 8 | } 9 | 10 | plugin { 11 | hyprwinwrap { 12 | # class is an EXACT match and NOT a regex! 13 | class = kitty-bg 14 | } 15 | } 16 | 17 | # path must be absolute 18 | 19 | 20 | plugin { 21 | hyprexpo { 22 | columns = 2 23 | gap_size = 10 24 | bg_col = rgb(111111) 25 | workspace_method = center current # [center/first] [workspace] e.g. first 1 or center m+1 26 | 27 | enable_gesture = false # laptop touchpad 28 | gesture_fingers = 3 # 3 or 4 29 | gesture_distance = 300 # how far is the "max" 30 | gesture_positive = false # positive = swipe down. Negative = swipe up. 31 | } 32 | } 33 | plugin { 34 | nstack { 35 | layout { 36 | orientation=left 37 | new_on_top=0 38 | new_is_master=1 39 | no_gaps_when_only=0 40 | special_scale_factor=0.8 41 | inherit_fullscreen=1 42 | stacks=2 43 | center_single_master=0 44 | mfact=0.5 45 | single_mfact=0.5 46 | } 47 | } 48 | } 49 | plugin { 50 | borders-plus-plus { 51 | add_borders = 1 # 0 - 9 52 | 53 | # you can add up to 9 borders 54 | col.border_2 = rgba(7287fdff) 55 | col.border_1 = rgba(c6a0f6ff) 56 | 57 | # -1 means "default" as in the one defined in general:border_size 58 | border_size_1 = 2 59 | border_size_2 = 2 60 | 61 | # makes outer edges match rounding of the parent. Turn on / off to better understand. Default = on. 62 | natural_rounding = no 63 | } 64 | } 65 | 66 | plugin { 67 | hyprtasking { 68 | grid{ 69 | rows = 2 70 | } 71 | exit_behavior = interacted 72 | gap_size = 8 73 | bg_color = rgb(000000) 74 | border_size = 4 75 | } 76 | } 77 | 78 | plugin:hyprfocus { 79 | enabled = yes 80 | 81 | focus_animation = shrink 82 | 83 | bezier = bezIn, 0.5,0.0,1.0,0.5 84 | bezier = bezOut, 0.0,0.5,0.5,1.0 85 | bezier = overshot, 0.05, 0.9, 0.1, 1.05 86 | bezier = smoothOut, 0.36, 0, 0.66, -0.56 87 | bezier = smoothIn, 0.25, 1, 0.5, 1 88 | bezier = realsmooth, 0.28,0.29,.69,1.08 89 | flash { 90 | flash_opacity = 0.7 91 | 92 | in_bezier = overshot 93 | in_speed = 0.5 94 | 95 | out_bezier = bezOut 96 | out_speed = 3 97 | } 98 | 99 | shrink { 100 | shrink_percentage = 0.995 101 | 102 | in_bezier = bezIn 103 | in_speed = 0.5 104 | 105 | out_bezier = bezOut 106 | out_speed = 1 107 | } 108 | } -------------------------------------------------------------------------------- /.config/swaync/themes/nova-dark/notifications.css: -------------------------------------------------------------------------------- 1 | @define-color text @foreground; 2 | @define-color background-alt @color1; 3 | @define-color selected @color3; 4 | @define-color hover @color5; 5 | @define-color urgent @color2; 6 | 7 | * { 8 | 9 | /*background-alt: @color1; Buttons background */ 10 | /*selected: @color2; Button selected */ 11 | /*hover: @color5; Hover button */ 12 | /*urgent: @color6; Urgency critical */ 13 | /*text-selected: @background; */ 14 | 15 | color: @text; 16 | 17 | all: unset; 18 | font-size: 14px; 19 | font-family: "JetBrains Mono Nerd Font 10"; 20 | transition: 200ms; 21 | 22 | } 23 | 24 | .notification-row { 25 | outline: none; 26 | margin: 0; 27 | padding: 0px; 28 | } 29 | 30 | .floating-notifications.background .notification-row .notification-background { 31 | background: alpha(@background, .55); 32 | box-shadow: 0 0 8px 0 rgba(0,0,0,.6); 33 | border: 1px solid @selected; 34 | border-radius: 24px; 35 | margin: 16px; 36 | padding: 0; 37 | } 38 | 39 | .floating-notifications.background .notification-row .notification-background .notification { 40 | padding: 6px; 41 | border-radius: 12px; 42 | } 43 | 44 | .floating-notifications.background .notification-row .notification-background .notification.critical { 45 | border: 2px solid @urgent; 46 | } 47 | 48 | .floating-notifications.background .notification-row .notification-background .notification .notification-content { 49 | margin: 14px; 50 | } 51 | 52 | .floating-notifications.background .notification-row .notification-background .notification > *:last-child > * { 53 | min-height: 3.4em; 54 | } 55 | 56 | .floating-notifications.background .notification-row .notification-background .notification > *:last-child > * .notification-action { 57 | border-radius: 8px; 58 | background-color: @background-alt ; 59 | margin: 6px; 60 | border: 1px solid transparent; 61 | } 62 | 63 | .floating-notifications.background .notification-row .notification-background .notification > *:last-child > * .notification-action:hover { 64 | background-color: @hover; 65 | border: 1px solid @selected; 66 | } 67 | 68 | .floating-notifications.background .notification-row .notification-background .notification > *:last-child > * .notification-action:active { 69 | background-color: @selected; 70 | color: @background; 71 | } 72 | 73 | .image { 74 | margin: 10px 20px 10px 0px; 75 | } 76 | 77 | .summary { 78 | font-weight: 800; 79 | font-size: 1rem; 80 | } 81 | 82 | .body { 83 | font-size: 0.8rem; 84 | } 85 | 86 | .floating-notifications.background .notification-row .notification-background .close-button { 87 | margin: 6px; 88 | padding: 2px; 89 | border-radius: 6px; 90 | background-color: transparent; 91 | border: 1px solid transparent; 92 | } 93 | 94 | .floating-notifications.background .notification-row .notification-background .close-button:hover { 95 | background-color: @selected; 96 | } 97 | 98 | .floating-notifications.background .notification-row .notification-background .close-button:active { 99 | background-color: @selected; 100 | color: @background; 101 | } 102 | 103 | .notification.critical progress { 104 | background-color: @selected; 105 | } 106 | 107 | .notification.low progress, 108 | .notification.normal progress { 109 | background-color: @selected; 110 | } 111 | 112 | -------------------------------------------------------------------------------- /.config/hypr/scripts/Volume.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ## 3 | # Scripts for volume controls for audio and mic 4 | 5 | iDIR="$HOME/.config/swaync/icons" 6 | sDIR="$HOME/.config/hypr/scripts" 7 | 8 | # Get Volume 9 | get_volume() { 10 | volume=$(pamixer --get-volume) 11 | if [[ "$volume" -eq "0" ]]; then 12 | echo "Muted" 13 | else 14 | echo "$volume%" 15 | fi 16 | } 17 | 18 | # Get icons 19 | get_icon() { 20 | current=$(get_volume) 21 | if [[ "$current" == "Muted" ]]; then 22 | echo "$iDIR/volume-mute.png" 23 | elif [[ "${current%\%}" -le 30 ]]; then 24 | echo "$iDIR/volume-low.png" 25 | elif [[ "${current%\%}" -le 60 ]]; then 26 | echo "$iDIR/volume-mid.png" 27 | else 28 | echo "$iDIR/volume-high.png" 29 | fi 30 | } 31 | 32 | # Notify 33 | notify_user() { 34 | if [[ "$(get_volume)" == "Muted" ]]; then 35 | notify-send -e -h string:x-canonical-private-synchronous:volume_notif -u low -i "$(get_icon)" "Volume: Muted" 36 | else 37 | notify-send -e -h int:value:"$(get_volume | sed 's/%//')" -h string:x-canonical-private-synchronous:volume_notif -u low -i "$(get_icon)" "Volume: $(get_volume)" 38 | "$sDIR/Sounds.sh" --volume 39 | fi 40 | } 41 | 42 | # Increase Volume 43 | inc_volume() { 44 | if [ "$(pamixer --get-mute)" == "true" ]; then 45 | toggle_mute 46 | else 47 | pamixer -i 5 --allow-boost --set-limit 150 48 | fi 49 | } 50 | 51 | # Decrease Volume 52 | dec_volume() { 53 | if [ "$(pamixer --get-mute)" == "true" ]; then 54 | toggle_mute 55 | else 56 | pamixer -d 5 --allow-boost 57 | fi 58 | } 59 | 60 | # Toggle Mute 61 | toggle_mute() { 62 | if [ "$(pamixer --get-mute)" == "false" ]; then 63 | pamixer -m && notify-send -e -u low -i "$iDIR/volume-mute.png" "Volume Switched OFF" 64 | elif [ "$(pamixer --get-mute)" == "true" ]; then 65 | pamixer -u && notify-send -e -u low -i "$(get_icon)" "Volume Switched ON" 66 | fi 67 | } 68 | 69 | # Toggle Mic 70 | toggle_mic() { 71 | if [ "$(pamixer --default-source --get-mute)" == "false" ]; then 72 | pamixer --default-source -m && notify-send -e -u low -i "$iDIR/microphone-mute.png" "Microphone Switched OFF" 73 | elif [ "$(pamixer --default-source --get-mute)" == "true" ]; then 74 | pamixer -u --default-source u && notify-send -e -u low -i "$iDIR/microphone.png" "Microphone Switched ON" 75 | fi 76 | } 77 | # Get Mic Icon 78 | get_mic_icon() { 79 | current=$(pamixer --default-source --get-volume) 80 | if [[ "$current" -eq "0" ]]; then 81 | echo "$iDIR/microphone-mute.png" 82 | else 83 | echo "$iDIR/microphone.png" 84 | fi 85 | } 86 | 87 | # Get Microphone Volume 88 | get_mic_volume() { 89 | volume=$(pamixer --default-source --get-volume) 90 | if [[ "$volume" -eq "0" ]]; then 91 | echo "Muted" 92 | else 93 | echo "$volume%" 94 | fi 95 | } 96 | 97 | # Notify for Microphone 98 | notify_mic_user() { 99 | volume=$(get_mic_volume) 100 | icon=$(get_mic_icon) 101 | notify-send -e -h int:value:"$volume" -h "string:x-canonical-private-synchronous:volume_notif" -u low -i "$icon" "Mic-Level: $volume" 102 | } 103 | 104 | # Increase MIC Volume 105 | inc_mic_volume() { 106 | if [ "$(pamixer --default-source --get-mute)" == "true" ]; then 107 | toggle_mic 108 | else 109 | pamixer --default-source -i 5 --allow-boost --set-limit 150 110 | fi 111 | } 112 | 113 | # Decrease MIC Volume 114 | dec_mic_volume() { 115 | if [ "$(pamixer --default-source --get-mute)" == "true" ]; then 116 | toggle-mic 117 | else 118 | pamixer --default-source -d 5 --allow-boost 119 | fi 120 | } 121 | 122 | # Execute accordingly 123 | if [[ "$1" == "--get" ]]; then 124 | get_volume 125 | elif [[ "$1" == "--inc" ]]; then 126 | inc_volume 127 | elif [[ "$1" == "--dec" ]]; then 128 | dec_volume 129 | elif [[ "$1" == "--toggle" ]]; then 130 | toggle_mute 131 | elif [[ "$1" == "--toggle-mic" ]]; then 132 | toggle_mic 133 | elif [[ "$1" == "--get-icon" ]]; then 134 | get_icon 135 | elif [[ "$1" == "--get-mic-icon" ]]; then 136 | get_mic_icon 137 | elif [[ "$1" == "--mic-inc" ]]; then 138 | inc_mic_volume 139 | elif [[ "$1" == "--mic-dec" ]]; then 140 | dec_mic_volume 141 | else 142 | get_volume 143 | fi 144 | -------------------------------------------------------------------------------- /.config/waybar/style.css: -------------------------------------------------------------------------------- 1 | * { 2 | font-family: "JetBrainsMono Nerd Font"; 3 | 4 | font-weight: bold; 5 | min-height: 0; 6 | /* set font-size to 100% if font scaling is set to 1.00 using nwg-look */ 7 | font-size: 95%; 8 | font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"'; 9 | } 10 | 11 | 12 | 13 | window#waybar { 14 | background: transparent; 15 | border-radius: 5px; 16 | color: whitesmoke; 17 | } 18 | 19 | window#waybar.hidden { 20 | opacity: 0.5; 21 | } 22 | 23 | window#waybar.empty, 24 | window#waybar.empty #window { 25 | padding: 0px; 26 | border: 0px; 27 | background-color: transparent; 28 | } 29 | 30 | tooltip { 31 | color: #cdd6f4; 32 | background: #1e1e2e; 33 | border-radius: 10px; 34 | border-width: 2px; 35 | border-style: solid; 36 | border-color: #11111b; 37 | } 38 | 39 | tooltip label { 40 | color: #cdd6f4; 41 | padding-right: 2px; 42 | padding-left: 2px; 43 | } 44 | 45 | /*-----module groups----*/ 46 | .modules-right, 47 | .modules-center, 48 | .modules-left { 49 | border-radius: 5px 5px 5px 5px; 50 | background-color:#1e1e2e; 51 | padding-top: 0px; 52 | padding-bottom: 0px; 53 | padding-right: 4px; 54 | padding-left: 4px; 55 | } 56 | 57 | #taskbar button, 58 | #workspaces button { 59 | color: #cba6f7; 60 | background-color: #cdd6f4; 61 | padding: 0px 5px; 62 | margin:4px 1px; 63 | border-radius: 15px; 64 | animation: gradient_f 20s ease-in infinite; 65 | transition: all 0.5s cubic-bezier(.55,-0.68,.48,1.682); 66 | 67 | } 68 | 69 | #taskbar button.active, 70 | #workspaces button.active { 71 | color: #cba6f7; 72 | border-radius: 15px; 73 | background-color: #cdd6f4; 74 | min-width: 40px; 75 | background-size: 400% 400%; 76 | opacity:1; 77 | transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); 78 | } 79 | 80 | #workspaces button.focused { 81 | color: #b4befe; 82 | } 83 | 84 | #workspaces button.urgent { 85 | color: #11111b; 86 | border-radius: 10px; 87 | } 88 | 89 | #taskbar button:hover, 90 | #workspaces button:hover { 91 | color: #b4befe; 92 | border-radius: 15px; 93 | padding-left: 2px; 94 | padding-right: 2px; 95 | animation: gradient_f 20s ease-in infinite; 96 | transition: all 0.3s cubic-bezier(.55,-0.68,.48,1.682); 97 | } 98 | #battery, 99 | #backlight, 100 | #backlight-slider, 101 | #bbattery, 102 | #bluetooth, 103 | #clock, 104 | #cpu, 105 | #disk, 106 | #idle_inhibitor, 107 | #keyboard-state, 108 | #memory, 109 | #mode, 110 | #mpris, 111 | #network, 112 | #power-profiles-daemon, 113 | #pulseaudio, 114 | #pulseaudio-slider, 115 | #taskbar, 116 | #temperature, 117 | #tray, 118 | #cava, 119 | #window, 120 | #wireplumber, 121 | #workspaces, 122 | #custom-backlight, 123 | #custom-browser, 124 | #custom-cava, 125 | #custom-cycle_wall, 126 | #custom-file_manager, 127 | #custom-keybinds, 128 | #custom-keyboard, 129 | #custom-light_dark, 130 | #custom-lock, 131 | #custom-hint, 132 | #custom-hypridle, 133 | #custom-menu, 134 | #custom-power_vertical, 135 | #custom-power, 136 | #custom-settings, 137 | #custom-spotify, 138 | #custom-swaync, 139 | #custom-tty, 140 | #custom-updater, 141 | #custom-weather, 142 | #custom-weather.clearNight, 143 | #custom-weather.cloudyFoggyDay, 144 | #custom-weather.cloudyFoggyNight, 145 | #custom-weather.default, 146 | #custom-weather.rainyDay, 147 | #custom-weather.rainyNight, 148 | #custom-weather.severe, 149 | #custom-weather.showyIcyDay, 150 | #custom-weather.snowyIcyNight, 151 | #custom-weather.sunnyDay { 152 | color: #cdd6f4; 153 | border-radius: 8px; 154 | padding-top: 5px; 155 | padding-bottom: 5px; 156 | padding-right: 6px; 157 | padding-left: 6px; 158 | } 159 | 160 | #temperature.critical { 161 | background-color: #ff0000; 162 | } 163 | 164 | @keyframes blink { 165 | to { 166 | color: #000000; 167 | } 168 | } 169 | 170 | /*-----Indicators----*/ 171 | #custom-hypridle.notactive, 172 | #idle_inhibitor.activated { 173 | color: #39FF14; 174 | } 175 | 176 | #battery.critical:not(.charging) { 177 | color: #f53c3c; 178 | animation-name: blink; 179 | animation-duration: 0.5s; 180 | animation-timing-function: linear; 181 | animation-iteration-count: infinite; 182 | animation-direction: alternate; 183 | } 184 | #pulseaudio-slider slider { 185 | min-width: 0px; 186 | min-height: 0px; 187 | opacity: 0; 188 | background-image: none; 189 | border: none; 190 | box-shadow: none; 191 | } 192 | 193 | #pulseaudio-slider trough { 194 | min-width: 80px; 195 | min-height: 5px; 196 | border-radius: 5px; 197 | } 198 | 199 | #pulseaudio-slider highlight { 200 | min-height: 10px; 201 | border-radius: 5px; 202 | } 203 | 204 | #backlight-slider slider { 205 | min-width: 0px; 206 | min-height: 0px; 207 | opacity: 0; 208 | background-image: none; 209 | border: none; 210 | box-shadow: none; 211 | } 212 | 213 | #backlight-slider trough { 214 | min-width: 80px; 215 | min-height: 10px; 216 | border-radius: 5px; 217 | } 218 | 219 | #backlight-slider highlight { 220 | min-width: 10px; 221 | border-radius: 5px; 222 | } 223 | -------------------------------------------------------------------------------- /.config/hypr/configs/window-rules.conf: -------------------------------------------------------------------------------- 1 | windowrule = float, ^(waypaper)$ 2 | 3 | 4 | windowrulev2 = float, class:([Tt]hunar), title:(File Operation Progress) 5 | windowrulev2 = float, class:([Tt]hunar), title:(Confirm to replace files) 6 | 7 | # Ignore maximize requests from apps. You'll probably like this. 8 | windowrulev2 = suppressevent maximize, class:.* 9 | 10 | # Fix some dragging issues with XWayland 11 | windowrulev2 = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0 12 | 13 | 14 | windowrulev2 = opacity 0.0 override, class:^(xwaylandvideobridge)$ 15 | windowrulev2 = noanim, class:^(xwaylandvideobridge)$ 16 | windowrulev2 = noinitialfocus, class:^(xwaylandvideobridge)$ 17 | windowrulev2 = maxsize 1 1, class:^(xwaylandvideobridge)$ 18 | windowrulev2 = noblur, class:^(xwaylandvideobridge)$ 19 | windowrulev2 = nofocus, class:^(xwaylandvideobridge)$ 20 | 21 | 22 | windowrule = center,^(pavucontrol|org.pulseaudio.pavucontrol|com.saivert.pwvucontrol) 23 | windowrule = center,^([Ww]hatsapp-for-linux)$ 24 | windowrule = center,^([Ff]erdium)$ 25 | windowrulev2 = center, class:([Tt]hunar), title:(File Operation Progress) 26 | windowrulev2 = center, class:([Tt]hunar), title:(Confirm to replace files) 27 | windowrulev2 = center, title:^(ROG Control)$ 28 | windowrulev2 = center, title:^(Keybindings)$ 29 | windowrulev2 = move 72% 7%,title:^(Picture-in-Picture)$ 30 | windowrulev2 = idleinhibit fullscreen, class:^(*)$ 31 | windowrulev2 = idleinhibit fullscreen, title:^(*)$ 32 | windowrulev2 = idleinhibit fullscreen, fullscreen:1 33 | 34 | windowrulev2 = workspace 1, class:^([Tt]hunderbird)$ 35 | windowrulev2 = workspace 2, class:^([Mm]icrosoft-edge(-stable|-beta|-dev|-unstable)?)$ 36 | windowrulev2 = workspace 2, class:^([Gg]oogle-chrome(-beta|-dev|-unstable)?)$ 37 | windowrulev2 = workspace 2, class:^([Tt]horium-browser)$ 38 | windowrulev2 = workspace 4, class:^(com.obsproject.Studio)$ 39 | 40 | windowrulev2 = workspace special:magic silent, class:^([Dd]iscord|[Ww]ebCord|[Vv]esktop)$ 41 | windowrulev2 = workspace 7, class:^([Ff]erdium)$ 42 | windowrulev2 = workspace special:magic, class:^([Ss]potube)$ 43 | windowrulev2 = workspace 6 silent, class:^(virt-manager)$ 44 | windowrulev2 = workspace 9 silent, class:^([Aa]udacious)$ 45 | windowrulev2 = workspace special:magic, class:^([Ss]team)$,title:^((?![Ss]team).*|[Ss]team [Ss]ettings)$ 46 | 47 | 48 | # windowrule v2 - float 49 | windowrulev2 = float, class:^(org.kde.polkit-kde-authentication-agent-1)$ 50 | windowrulev2 = float, class:([Zz]oom|onedriver|onedriver-launcher)$ 51 | windowrulev2 = float, class:([Tt]hunar), title:(File Operation Progress) 52 | windowrulev2 = float, class:([Tt]hunar), title:(Confirm to replace files) 53 | windowrulev2 = float, class:(xdg-desktop-portal-gtk) 54 | windowrulev2 = float, class:(org.gnome.Calculator), title:(Calculator) 55 | windowrulev2 = float, class:(codium|codium-url-handler|VSCodium|code-oss), title:(Add Folder to Workspace) 56 | windowrulev2 = float, class:(electron), title:(Add Folder to Workspace) 57 | windowrulev2 = float, class:^([Rr]ofi)$ 58 | windowrulev2 = float, class:^(eog|org.gnome.Loupe)$ # image viewer 59 | windowrulev2 = float, class:^(pavucontrol|org.pulseaudio.pavucontrol|com.saivert.pwvucontrol)$ 60 | windowrulev2 = float, class:^(nwg-look|qt5ct|qt6ct)$ 61 | 62 | windowrulev2 = float, class:^(nm-applet|nm-connection-editor|blueman-manager)$ 63 | windowrulev2 = float, class:^(gnome-system-monitor|org.gnome.SystemMonitor|io.missioncenter.MissionCenter)$ # system monitor 64 | windowrulev2 = float, class:^([Yy]ad)$ 65 | windowrulev2 = float, class:^(wihotspot(-gui)?)$ # wifi hotspot 66 | windowrulev2 = float, class:^(evince)$ # document viewer 67 | windowrulev2 = float, class:^(file-roller|org.gnome.FileRoller)$ # archive manager 68 | windowrulev2 = float, class:^([Bb]aobab|org.gnome.[Bb]aobab)$ # Disk usage analyzer 69 | windowrulev2 = float, title:(Kvantum Manager) 70 | windowrulev2 = float, title:^(Friends List|Steam Settings)$ 71 | windowrulev2 = float, class:^([Qq]alculate-gtk)$ 72 | #windowrulev2 = float, class:^([Ww]hatsapp-for-linux)$ 73 | windowrulev2 = float, class:^([Ff]erdium)$ 74 | windowrulev2 = float, title:^(Picture-in-Picture)$ 75 | windowrulev2 = float, title:^(ROG Control)$ 76 | windowrulev2 = float, title:^(Spotube)$ 77 | #windowrulev2 = float, title:^(Firefox)$ 78 | windowrulev2 = float, title:^(hyprgui)$ 79 | windowrulev2 = float,title: ^cava$ -> kitty 80 | windowrulev2 = float,size 800 600,regex:title:^(cava)$ -> kitty 81 | windowrulev2 = float, class:^(it.mijorus.smile)$ 82 | 83 | # windowrule v2 - size 84 | windowrulev2 = size 70% 70%, class:^(gnome-system-monitor|org.gnome.SystemMonitor|io.missioncenter.MissionCenter)$ 85 | windowrulev2 = size 70% 70%, class:^(xdg-desktop-portal-gtk)$ 86 | windowrulev2 = size 60% 70%, title:(Kvantum Manager) 87 | windowrulev2 = size 60% 70%, class:^(qt6ct)$ 88 | windowrulev2 = size 70% 70%, class:^(evince|wihotspot(-gui)?)$ 89 | windowrulev2 = size 60% 70%, class:^(file-roller|org.gnome.FileRoller)$ 90 | windowrulev2 = size 60% 70%, class:^([Ww]hatsapp-for-linux)$ 91 | windowrulev2 = size 60% 70%, class:^([Ff]erdium)$ 92 | windowrulev2 = size 60% 70%, title:^(ROG Control)$ 93 | windowrulev2 = size 60% 70%, title:^(hyprgui)$ 94 | 95 | # windowrule v2 - pinning 96 | windowrulev2 = pin,title:^(Picture-in-Picture)$ 97 | #windowrulev2 = pin,title:^(Firefox)$ 98 | 99 | # windowrule v2 - extras 100 | windowrulev2 = keepaspectratio, title:^(Picture-in-Picture)$ 101 | -------------------------------------------------------------------------------- /.config/hypr/configs/binds.conf: -------------------------------------------------------------------------------- 1 | 2 | 3 | $mainMod = SUPER 4 | $terminal = kitty 5 | $fileManager = thunar 6 | $menu = rofi -show drun 7 | 8 | bind = CTRL ALT, Delete, exec, hyprctl dispatch exit 0 9 | bind = $mainMod, Q, killactive, 10 | bind = $mainMod, F, fullscreen 11 | bind = $mainMod, space, exec, $menu 12 | bind = $mainMod SHIFT, F, togglefloating, 13 | bind = $mainMod ALT, F, exec, hyprctl dispatch workspaceopt allfloat 14 | bind = $mainMod, Return, exec, $terminal 15 | bind = $mainMod, E, exec, $fileManager 16 | bind = $mainMod, M, exit, 17 | bind = $mainMod, ESCAPE, exec, missioncenter 18 | bind = $mainMod, o, exec, $scriptsDir/Wlogout.sh 19 | bind = $mainMod SHIFT, I, togglesplit 20 | 21 | bind = ALT, tab, cyclenext 22 | bind = ALT, tab, bringactivetotop 23 | 24 | 25 | 26 | # Waybar / Bar related 27 | bind = $mainMod, B, exec, pkill -SIGUSR1 waybar # Toggle hide/show waybar 28 | 29 | bind = $mainMod, L, exec, hyprlock 30 | bindl=,switch:Lid Switch, exec, hyprlock 31 | 32 | # Move focus with mainMod + arrow keys 33 | bind = $mainMod, left, movefocus, l 34 | bind = $mainMod, right, movefocus, r 35 | bind = $mainMod, up, movefocus, u 36 | bind = $mainMod, down, movefocus, d 37 | 38 | 39 | 40 | # Switch workspaces with mainMod + [0-9] 41 | bind = $mainMod, 1, workspace, 1 42 | bind = $mainMod, 2, workspace, 2 43 | bind = $mainMod, 3, workspace, 3 44 | bind = $mainMod, 4, workspace, 4 45 | bind = $mainMod, 5, workspace, 5 46 | bind = $mainMod, 6, workspace, 6 47 | bind = $mainMod, 7, workspace, 7 48 | bind = $mainMod, 8, workspace, 8 49 | bind = $mainMod, 9, workspace, 9 50 | bind = $mainMod, 0, workspace, 10 51 | 52 | # Move active window to a workspace with mainMod + SHIFT + [0-9] 53 | bind = $mainMod SHIFT, 1, movetoworkspace, 1 54 | bind = $mainMod SHIFT, 2, movetoworkspace, 2 55 | bind = $mainMod SHIFT, 3, movetoworkspace, 3 56 | bind = $mainMod SHIFT, 4, movetoworkspace, 4 57 | bind = $mainMod SHIFT, 5, movetoworkspace, 5 58 | bind = $mainMod SHIFT, 6, movetoworkspace, 6 59 | bind = $mainMod SHIFT, 7, movetoworkspace, 7 60 | bind = $mainMod SHIFT, 8, movetoworkspace, 8 61 | bind = $mainMod SHIFT, 9, movetoworkspace, 9 62 | bind = $mainMod SHIFT, 0, movetoworkspace, 10 63 | 64 | # Move active window to a workspace silently mainMod + CTRL [0-9] 65 | bind = $mainMod CTRL, code:10, movetoworkspacesilent, 1 66 | bind = $mainMod CTRL, code:11, movetoworkspacesilent, 2 67 | bind = $mainMod CTRL, code:12, movetoworkspacesilent, 3 68 | bind = $mainMod CTRL, code:13, movetoworkspacesilent, 4 69 | bind = $mainMod CTRL, code:14, movetoworkspacesilent, 5 70 | bind = $mainMod CTRL, code:15, movetoworkspacesilent, 6 71 | bind = $mainMod CTRL, code:16, movetoworkspacesilent, 7 72 | bind = $mainMod CTRL, code:17, movetoworkspacesilent, 8 73 | bind = $mainMod CTRL, code:18, movetoworkspacesilent, 9 74 | bind = $mainMod CTRL, code:19, movetoworkspacesilent, 10 75 | bind = $mainMod CTRL, s, movetoworkspacesilent, special:magic 76 | bind = $mainMod CTRL, bracketleft, movetoworkspacesilent, -1 # brackets [ or ] 77 | bind = $mainMod CTRL, bracketright, movetoworkspacesilent, +1 78 | 79 | 80 | # Screenshot a window 81 | bind = $mainMod, PRINT, exec, hyprshot -m output 82 | # Screenshot a monitor 83 | bind = , PRINT, exec, hyprshot -m window 84 | # Screenshot a region 85 | bind = $mainMod SHIFT, PRINT, exec, hyprshot -m region 86 | 87 | 88 | # Example special workspace (scratchpad) 89 | bind = $mainMod, S, togglespecialworkspace, magic 90 | bind = $mainMod SHIFT, S, movetoworkspace, special:magic 91 | 92 | # Scroll through existing workspaces with mainMod + scroll 93 | bind = $mainMod, mouse_down, workspace, e+1 94 | bind = $mainMod, mouse_up, workspace, e-1 95 | 96 | # Move/resize windows with mainMod + LMB/RMB and dragging 97 | bindm = $mainMod, mouse:272, movewindow 98 | bindm = $mainMod, mouse:273, resizewindow 99 | 100 | # Resize windows 101 | binde = $mainMod SHIFT, left, resizeactive,-50 0 102 | binde = $mainMod SHIFT, right, resizeactive,50 0 103 | binde = $mainMod SHIFT, up, resizeactive,0 -50 104 | binde = $mainMod SHIFT, down, resizeactive,0 50 105 | 106 | $scriptsDir = ~/.config/hypr/scripts 107 | 108 | bindel = , xf86AudioRaiseVolume, exec, $scriptsDir/Volume.sh --inc && swayosd-client --output-volume 0#volume up 109 | bindel = , xf86audiolowervolume, exec, $scriptsDir/Volume.sh --dec && swayosd-client --output-volume 0#volume down 110 | bindl = , xf86AudioMicMute, exec, $scriptsDir/Volume.sh --toggle-mic #mute mic 111 | bindl = , xf86audiomute, exec, $scriptsDir/Volume.sh --toggle && swayosd-client --output-volume 0 112 | 113 | bindel = ,XF86MonBrightnessUp, exec, brightnessctl s 5%+ 114 | bindel = ,XF86MonBrightnessDown, exec, brightnessctl s 5d%- 115 | 116 | # Requires playerctl 117 | bindl = , XF86AudioNext, exec, playerctl next 118 | bindl = , XF86AudioPause, exec, playerctl play-pause 119 | bindl = , XF86AudioPlay, exec, playerctl play-pause 120 | bindl = , XF86AudioPrev, exec, playerctl previous 121 | 122 | bind = $mainMod SHIFT, Return, exec, pypr toggle term # Dropdown terminal 123 | bind = $mainMod, Z, exec, pypr zoom # Toggle Zoom 124 | bind = $mainMod SHIFT, N, exec, swaync-client -t -sw 125 | 126 | bind = $mainMod ALT, B, exec, $scriptsDir/Refresh.sh #refresh waybar 127 | 128 | #for hyprtasking 129 | bind = $mainMod, a, hyprtasking:toggle, all # can be: toggle, off/disable or on/enable 130 | 131 | # Movement 132 | bind = $mainMod CTRL, left, movewindow, l 133 | bind = $mainMod CTRL, right, movewindow, r 134 | bind = $mainMod CTRL, up, movewindow, u 135 | bind = $mainMod CTRL, down, movewindow, d 136 | 137 | bind = $mainMod, period, exec, smile #emojis app 138 | bind = $mainMod, G, exec, $scriptsDir/gamemode.sh 139 | 140 | 141 | 142 | bind = SUPER, V, exec, cliphist list | rofi -dmenu | cliphist decode | wl-copy #clipboard 143 | bind = SUPER SHIFT, W, exec, waypaper-engine random #random wallpaper 144 | bind = $mainMod, w, exec, waypaper #wallpaper selection 145 | -------------------------------------------------------------------------------- /.config/btop/btop.log: -------------------------------------------------------------------------------- 1 | 2 | 2024/12/28 (00:21:55) | ===> btop++ v.1.4.0 3 | 2024/12/28 (00:21:55) | WARNING: NVML: Failed to get maximum GPU power draw, defaulting to 225W: Not Supported 4 | 5 | 2024/12/31 (10:32:43) | ===> btop++ v.1.4.0 6 | 2024/12/31 (10:32:43) | WARNING: NVML: Failed to get maximum GPU power draw, defaulting to 225W: Not Supported 7 | 8 | 2024/12/31 (12:48:16) | ===> btop++ v.1.4.0 9 | 2024/12/31 (12:48:16) | WARNING: NVML: Failed to get maximum GPU power draw, defaulting to 225W: Not Supported 10 | 11 | 2024/12/31 (14:40:17) | ===> btop++ v.1.4.0 12 | 2024/12/31 (14:40:17) | WARNING: NVML: Failed to get maximum GPU power draw, defaulting to 225W: Not Supported 13 | 14 | 2025/01/02 (17:08:12) | ===> btop++ v.1.4.0 15 | 2025/01/02 (17:08:12) | WARNING: NVML: Failed to get maximum GPU power draw, defaulting to 225W: Not Supported 16 | 17 | 2025/01/02 (17:14:41) | ===> btop++ v.1.4.0 18 | 2025/01/02 (17:14:41) | WARNING: NVML: Failed to get maximum GPU power draw, defaulting to 225W: Not Supported 19 | 20 | 2025/01/02 (18:58:04) | ===> btop++ v.1.4.0 21 | 2025/01/02 (18:58:04) | WARNING: NVML: Failed to get maximum GPU power draw, defaulting to 225W: Not Supported 22 | 23 | 2025/01/02 (21:08:04) | ===> btop++ v.1.4.0 24 | 2025/01/02 (21:08:04) | WARNING: NVML: Failed to get maximum GPU power draw, defaulting to 225W: Not Supported 25 | 26 | 2025/01/02 (21:09:39) | ===> btop++ v.1.4.0 27 | 2025/01/02 (21:09:39) | WARNING: NVML: Failed to get maximum GPU power draw, defaulting to 225W: Not Supported 28 | 29 | 2025/01/02 (21:10:11) | ===> btop++ v.1.4.0 30 | 2025/01/02 (21:10:11) | WARNING: NVML: Failed to get maximum GPU power draw, defaulting to 225W: Not Supported 31 | 32 | 2025/01/02 (21:12:32) | ===> btop++ v.1.4.0 33 | 2025/01/02 (21:12:32) | WARNING: NVML: Failed to get maximum GPU power draw, defaulting to 225W: Not Supported 34 | 35 | 2025/01/02 (21:13:55) | ===> btop++ v.1.4.0 36 | 2025/01/02 (21:13:55) | WARNING: NVML: Failed to get maximum GPU power draw, defaulting to 225W: Not Supported 37 | 38 | 2025/01/03 (16:19:29) | ===> btop++ v.1.4.0 39 | 2025/01/03 (16:19:29) | WARNING: NVML: Failed to get maximum GPU power draw, defaulting to 225W: Not Supported 40 | 41 | 2025/01/03 (22:08:39) | ===> btop++ v.1.4.0 42 | 2025/01/03 (22:08:39) | WARNING: NVML: Failed to get maximum GPU power draw, defaulting to 225W: Not Supported 43 | 44 | 2025/01/04 (12:03:28) | ===> btop++ v.1.4.0 45 | 2025/01/04 (12:03:28) | WARNING: NVML: Failed to get maximum GPU power draw, defaulting to 225W: Not Supported 46 | 47 | 2025/01/07 (21:21:06) | ===> btop++ v.1.4.0 48 | 2025/01/07 (21:21:06) | WARNING: NVML: Failed to get maximum GPU power draw, defaulting to 225W: Not Supported 49 | 50 | 2025/01/07 (21:24:02) | ===> btop++ v.1.4.0 51 | 2025/01/07 (21:24:02) | WARNING: NVML: Failed to get maximum GPU power draw, defaulting to 225W: Not Supported 52 | 2025/01/07 (22:36:55) | ERROR: Couldn't determine terminal size of "STDOUT_FILENO"! 53 | 54 | 2025/01/09 (17:23:57) | ===> btop++ v.1.4.0 55 | 2025/01/09 (17:23:57) | WARNING: NVML: Failed to get maximum GPU power draw, defaulting to 225W: Not Supported 56 | 57 | 2025/01/19 (11:23:55) | ===> btop++ v.1.4.0 58 | 2025/01/19 (11:23:55) | WARNING: NVML: Failed to get maximum GPU power draw, defaulting to 225W: Not Supported 59 | 60 | 2025/01/19 (11:28:32) | ===> btop++ v.1.4.0 61 | 2025/01/19 (11:28:32) | WARNING: NVML: Failed to get maximum GPU power draw, defaulting to 225W: Not Supported 62 | 63 | 2025/01/19 (11:32:40) | ===> btop++ v.1.4.0 64 | 2025/01/19 (11:32:40) | WARNING: NVML: Failed to get maximum GPU power draw, defaulting to 225W: Not Supported 65 | 66 | 2025/01/21 (22:18:09) | ===> btop++ v.1.4.0 67 | 2025/01/21 (22:18:09) | WARNING: NVML: Failed to get maximum GPU power draw, defaulting to 225W: Not Supported 68 | 69 | 2025/01/22 (10:05:35) | ===> btop++ v.1.4.0 70 | 2025/01/22 (10:05:35) | WARNING: NVML: Failed to get maximum GPU power draw, defaulting to 225W: Not Supported 71 | 2025/01/22 (10:13:04) | ERROR: Couldn't determine terminal size of "STDOUT_FILENO"! 72 | 2025/01/22 (10:13:04) | ERROR: Couldn't determine terminal size of "/dev/tty"! 73 | 74 | 2025/01/22 (16:36:32) | ===> btop++ v.1.4.0 75 | 2025/01/22 (16:36:32) | WARNING: NVML: Failed to get maximum GPU power draw, defaulting to 225W: Not Supported 76 | 77 | 2025/01/22 (16:37:26) | ===> btop++ v.1.4.0 78 | 2025/01/22 (16:37:26) | WARNING: NVML: Failed to get maximum GPU power draw, defaulting to 225W: Not Supported 79 | 80 | 2025/01/23 (14:06:21) | ===> btop++ v.1.4.0 81 | 2025/01/23 (14:06:21) | WARNING: NVML: Failed to get maximum GPU power draw, defaulting to 225W: Not Supported 82 | 2025/01/23 (16:07:28) | ERROR: Stall in Runner thread, restarting! 83 | 84 | 2025/01/23 (23:10:14) | ===> btop++ v.1.4.0 85 | 2025/01/23 (23:10:14) | WARNING: NVML: Failed to get maximum GPU power draw, defaulting to 225W: Not Supported 86 | 87 | 2025/01/24 (16:02:29) | ===> btop++ v.1.4.0 88 | 2025/01/24 (16:02:29) | WARNING: NVML: Failed to get maximum GPU power draw, defaulting to 225W: Not Supported 89 | 90 | 2025/01/26 (14:02:04) | ===> btop++ v.1.4.0 91 | 2025/01/26 (14:02:04) | WARNING: NVML: Failed to get maximum GPU power draw, defaulting to 225W: Not Supported 92 | 2025/01/26 (14:54:54) | ERROR: Stall in Runner thread, restarting! 93 | 2025/01/26 (14:55:00) | ERROR: Stall in Runner thread, restarting! 94 | 2025/01/26 (14:55:06) | ERROR: Stall in Runner thread, restarting! 95 | 2025/01/26 (14:55:12) | ERROR: Stall in Runner thread, restarting! 96 | 2025/01/26 (14:55:18) | ERROR: Stall in Runner thread, restarting! 97 | 2025/01/26 (14:55:24) | ERROR: Stall in Runner thread, restarting! 98 | 2025/01/26 (14:55:30) | ERROR: Stall in Runner thread, restarting! 99 | 2025/01/26 (14:55:36) | ERROR: Stall in Runner thread, restarting! 100 | 2025/01/26 (14:55:42) | ERROR: Stall in Runner thread, restarting! 101 | 2025/01/26 (14:55:52) | ERROR: Stall in Runner thread, restarting! 102 | 103 | 2025/01/28 (08:08:12) | ===> btop++ v.1.4.0 104 | 2025/01/28 (08:08:12) | WARNING: NVML: Failed to get maximum GPU power draw, defaulting to 225W: Not Supported 105 | -------------------------------------------------------------------------------- /.config/swaync/themes/nova-dark/central_control.css: -------------------------------------------------------------------------------- 1 | @define-color text @foreground; 2 | @define-color background-alt alpha(@color1, .4); 3 | @define-color selected @color6; 4 | @define-color hover alpha(@selected, .4); 5 | @define-color urgent @color2; 6 | 7 | * { 8 | color: @text; 9 | 10 | all: unset; 11 | font-size: 14px; 12 | font-family: "JetBrains Mono Nerd Font 10"; 13 | transition: 200ms; 14 | 15 | } 16 | 17 | /* Avoid 'annoying' backgroud */ 18 | .blank-window { 19 | background: transparent; 20 | } 21 | 22 | /* CONTROL CENTER ------------------------------------------------------------------------ */ 23 | 24 | .control-center { 25 | background: alpha(@background, .55); 26 | border-radius: 24px; 27 | border: 1px solid @selected; 28 | box-shadow: 0 0 10px 0 rgba(0,0,0,.6); 29 | margin: 18px; 30 | padding: 12px; 31 | } 32 | 33 | /* Notifications */ 34 | .control-center .notification-row .notification-background, 35 | .control-center .notification-row .notification-background .notification.critical { 36 | background-color: @background-alt; 37 | border-radius: 16px; 38 | margin: 4px 0px; 39 | padding: 4px; 40 | } 41 | 42 | .control-center .notification-row .notification-background .notification.critical { 43 | color: @urgent; 44 | } 45 | 46 | .control-center .notification-row .notification-background .notification .notification-content { 47 | margin: 6px; 48 | padding: 8px 6px 2px 2px; 49 | } 50 | 51 | .control-center .notification-row .notification-background .notification > *:last-child > * { 52 | min-height: 3.4em; 53 | } 54 | 55 | .control-center .notification-row .notification-background .notification > *:last-child > * .notification-action { 56 | background: alpha(@selected, .6); 57 | color: @text; 58 | border-radius: 12px; 59 | margin: 6px; 60 | } 61 | 62 | .control-center .notification-row .notification-background .notification > *:last-child > * .notification-action:hover { 63 | background: @selected; 64 | } 65 | 66 | .control-center .notification-row .notification-background .notification > *:last-child > * .notification-action:active { 67 | background-color: @selected; 68 | } 69 | 70 | /* Buttons */ 71 | 72 | .control-center .notification-row .notification-background .close-button { 73 | background: transparent; 74 | border-radius: 6px; 75 | color: @text; 76 | margin: 0px; 77 | padding: 4px; 78 | } 79 | 80 | .control-center .notification-row .notification-background .close-button:hover { 81 | background-color: @selected; 82 | } 83 | 84 | .control-center .notification-row .notification-background .close-button:active { 85 | background-color: @selected; 86 | } 87 | 88 | progressbar, 89 | progress, 90 | trough { 91 | border-radius: 12px; 92 | } 93 | 94 | progressbar { 95 | background-color: rgba(255,255,255,.1); 96 | } 97 | 98 | /* Notifications expanded-group */ 99 | 100 | .notification-group { 101 | margin: 2px 8px 2px 8px; 102 | 103 | } 104 | .notification-group-headers { 105 | font-weight: bold; 106 | font-size: 1.25rem; 107 | color: @text; 108 | letter-spacing: 2px; 109 | } 110 | 111 | .notification-group-icon { 112 | color: @text; 113 | } 114 | 115 | .notification-group-collapse-button, 116 | .notification-group-close-all-button { 117 | background: transparent; 118 | color: @text; 119 | margin: 4px; 120 | border-radius: 6px; 121 | padding: 4px; 122 | } 123 | 124 | .notification-group-collapse-button:hover, 125 | .notification-group-close-all-button:hover { 126 | background: @hover; 127 | } 128 | 129 | /* WIDGETS --------------------------------------------------------------------------- */ 130 | 131 | /* Notification clear button */ 132 | .widget-title { 133 | font-size: 1.2em; 134 | margin: 6px; 135 | } 136 | 137 | .widget-title button { 138 | background: @background-alt; 139 | border-radius: 6px; 140 | padding: 4px 16px; 141 | } 142 | 143 | .widget-title button:hover { 144 | background-color: @hover; 145 | } 146 | 147 | .widget-title button:active { 148 | background-color: @selected; 149 | } 150 | 151 | /* Do not disturb */ 152 | .widget-dnd { 153 | margin: 6px; 154 | font-size: 1.2rem; 155 | } 156 | 157 | .widget-dnd > switch { 158 | background: @background-alt; 159 | font-size: initial; 160 | border-radius: 8px; 161 | box-shadow: none; 162 | padding: 2px; 163 | } 164 | 165 | .widget-dnd > switch:hover { 166 | background: @hover; 167 | } 168 | 169 | .widget-dnd > switch:checked { 170 | background: @selected; 171 | } 172 | 173 | .widget-dnd > switch:checked:hover { 174 | background: @hover; 175 | } 176 | 177 | .widget-dnd > switch slider { 178 | background: @text; 179 | border-radius: 6px; 180 | } 181 | 182 | /* Buttons menu */ 183 | .widget-buttons-grid { 184 | font-size: x-large; 185 | padding: 6px 2px; 186 | margin: 6px; 187 | border-radius: 12px; 188 | background: @background-alt; 189 | } 190 | 191 | .widget-buttons-grid>flowbox>flowboxchild>button { 192 | margin: 4px 10px; 193 | padding: 6px 12px; 194 | background: transparent; 195 | border-radius: 8px; 196 | } 197 | 198 | .widget-buttons-grid>flowbox>flowboxchild>button:hover { 199 | background: @hover; 200 | } 201 | 202 | 203 | /* Music player */ 204 | .widget-mpris { 205 | background: @background-alt; 206 | border-radius: 16px; 207 | color: @text; 208 | margin: 20px 6px; 209 | } 210 | 211 | /* NOTE: Background need *opacity 1* otherwise will turn into the album art blurred */ 212 | .widget-mpris-player { 213 | background-color: @background-sec; 214 | border-radius: 22px; 215 | padding: 6px 14px; 216 | margin: 6px; 217 | } 218 | 219 | .widget-mpris > box > button { 220 | color: @text; 221 | border-radius: 20px; 222 | } 223 | 224 | .widget-mpris button { 225 | color: alpha(@text, .6); 226 | } 227 | 228 | .widget-mpris button:hover { 229 | color: @text; 230 | } 231 | 232 | .widget-mpris-album-art { 233 | border-radius: 16px; 234 | } 235 | 236 | .widget-mpris-title { 237 | font-weight: 700; 238 | font-size: 1rem; 239 | } 240 | 241 | .widget-mpris-subtitle { 242 | font-weight: 500; 243 | font-size: 0.8rem; 244 | } 245 | 246 | /* Volume */ 247 | .widget-volume { 248 | background: @background-sec; 249 | color: @background; 250 | padding: 4px; 251 | margin: 6px; 252 | border-radius: 6px; 253 | } 254 | -------------------------------------------------------------------------------- /.config/waybar/config: -------------------------------------------------------------------------------- 1 | 2 | { 3 | 4 | "layer": "top", 5 | //"mode": "dock", 6 | "exclusive": true, 7 | "passthrough": false, 8 | "position": "top", 9 | "spacing": 1, 10 | "fixed-center": true, 11 | "ipc": true, 12 | "margin-top": 3, 13 | "margin-left": 3, 14 | "margin-right": 3, 15 | 16 | "modules-left": [ 17 | "hyprland/workspaces", 18 | "custom/separator#line", 19 | "cpu", 20 | "memory" 21 | ], 22 | 23 | "modules-center": [ 24 | "cava", 25 | "clock", 26 | "cava" 27 | ], 28 | 29 | "modules-right": [ 30 | "network#speed", 31 | "tray", 32 | "custom/separator#line", 33 | "pulseaudio#microphone", 34 | "pulseaudio", 35 | "custom/separator#line", 36 | "battery", 37 | "custom/notification" 38 | ], 39 | 40 | 41 | // CIRCLES Style 42 | "hyprland/workspaces": { 43 | "active-only": false, 44 | "all-outputs": true, 45 | "format": "{icon}", 46 | "show-special": false, 47 | "on-click": "activate", 48 | "on-scroll-up": "hyprctl dispatch workspace e+1", 49 | "on-scroll-down": "hyprctl dispatch workspace e-1", 50 | "persistent-workspaces": { 51 | "*": 5 52 | }, 53 | 54 | "format-icons": { 55 | "active": "", 56 | "default": "", 57 | 58 | }, 59 | }, 60 | 61 | //MODULES// 62 | "custom/separator#line": { 63 | "format": "|", 64 | "interval": "once", 65 | "tooltip": false 66 | }, 67 | 68 | "battery": { 69 | "interval": 5, 70 | 71 | "format": "{icon} {capacity}% ", 72 | "format-icons": ["", "", "", "", ""], 73 | "format-charging": " {icon} {capacity}% ", 74 | "format-plugged": "{icon} {capacity}%", 75 | "tooltip-format": " {power}W - {timeTo}", 76 | 77 | "states": { 78 | "full": 100, 79 | "great": 97, 80 | "good": 85, 81 | "ok": 50, 82 | "warning": 30, 83 | "low": 20, 84 | "critical": 10 85 | }, 86 | }, 87 | 88 | "clock": { 89 | "interval": 1, 90 | "format": " {:%I:%M:%S %p}", // AM PM format 91 | // "format": " {:%H:%M:%S}", // 24H 92 | "format-alt": " {:%H:%M:%p  %Y, %d %B, %A}", 93 | "tooltip-format": "{calendar}", 94 | "calendar": { 95 | "mode": "year", 96 | "mode-mon-col": 3, 97 | "weeks-pos": "right", 98 | "on-scroll": 1, 99 | "format": { 100 | "months": "{}", 101 | "days": "{}", 102 | "weeks": "W{}", 103 | "weekdays": "{}", 104 | "today": "{}" 105 | } 106 | } 107 | }, 108 | 109 | "cpu": { 110 | "format": " {usage}%", 111 | "interval": 1, 112 | "min-length": 5, 113 | "format-alt-click": "click", 114 | "format-alt": "󰍛{usage:>2}% {icon0}{icon1}{icon2}{icon3}{icon4} ", 115 | "format-icons": [ 116 | "▁", "▂", "▃", "▄", "▅", "▆", "▇", "█" 117 | ], 118 | "on-click-right": "gnome-system-monitor", 119 | }, 120 | 121 | "memory": { 122 | "interval": 1, 123 | "format": "󰓅 {used:0.1f}G", 124 | "format-alt": "{percentage}% 󰾆", 125 | "format-alt-click": "click", 126 | "tooltip": true, 127 | "tooltip-format": "{used:0.1f}GB/{total:0.1f}G", 128 | "on-click-right": "kitty --title btop sh -c 'btop'" 129 | }, 130 | 131 | "network#speed": { 132 | "interval": 1, 133 | "format": "{ifname}", 134 | "format-wifi": " U {bandwidthUpBytes} D {bandwidthDownBytes}", 135 | "format-ethernet": " U {bandwidthUpBytes} D {bandwidthDownBytes}", 136 | "format-disconnected": "󰌙", 137 | "tooltip-format": "{ipaddr}", 138 | "format-linked": "󰈁 {ifname} (No IP)", 139 | "tooltip-format-wifi": "{essid} {icon} {signalStrength}%", 140 | "tooltip-format-ethernet": "{ifname} ", 141 | "tooltip-format-disconnected": "Disconnected", 142 | "min-length": 1, 143 | "max-length": 35, 144 | "format-icons": [ 145 | "󰤯", "󰤟", "󰤢", "󰤥", "󰤨" 146 | ] 147 | }, 148 | 149 | "custom/notification": { 150 | "tooltip": false, 151 | "format": "{icon}", 152 | "format-icons": { 153 | "notification": " ", 154 | "none": " ", 155 | "dnd-notification": " ", 156 | "dnd-none": " ", 157 | "inhibited-notification": " ", 158 | "inhibited-none": " ", 159 | "dnd-inhibited-notification": " ", 160 | "dnd-inhibited-none": " " 161 | }, 162 | "return-type": "json", 163 | "exec-if": "which swaync-client", 164 | "exec": "swaync-client -swb", 165 | "on-click": "swaync-client -t -sw", 166 | "on-click-right": "swaync-client -d -sw", 167 | "escape": true 168 | }, 169 | 170 | "pulseaudio": { 171 | "format": "{icon} {volume}%", 172 | "format-bluetooth": "{icon} 󰂰 {volume}%", 173 | "format-muted": "󰖁", 174 | "on-click": "$HOME/.config/hypr/scripts/Volume.sh --toggle", 175 | "format-icons": { 176 | "headphone": "", 177 | "hands-free": "", 178 | "headset": "", 179 | "phone": "", 180 | "portable": "", 181 | "car": "", 182 | "default": [ 183 | "", "", "󰕾", "" 184 | ], 185 | "ignored-sinks": [ 186 | "Easy Effects Sink" 187 | ], 188 | }, 189 | 190 | }, 191 | 192 | "tray": { 193 | "icon-size": 20, 194 | "spacing": 4, 195 | }, 196 | 197 | 198 | 199 | "pulseaudio#microphone": { 200 | "format": "{format_source}", 201 | "format-source": " {volume}%", 202 | "format-source-muted": "", 203 | "on-click": "$HOME/.config/hypr/scripts/Volume.sh --toggle-mic", 204 | "on-click-right": "pavucontrol -t 4", 205 | "on-scroll-up": "$HOME/.config/hypr/scripts/Volume.sh --mic-inc", 206 | "on-scroll-down": "$HOME/.config/hypr/scripts/Volume.sh --mic-dec", 207 | "tooltip-format": "{source_desc} | {source_volume}%", 208 | "scroll-step": 5, 209 | }, 210 | 211 | "cava": { 212 | "framerate": 120, 213 | "autosens": 1,, 214 | "bars": 8, 215 | "lower_cutoff_freq": 1, 216 | "higher_cutoff_freq": 10000, 217 | "method": "pulse", 218 | "source": "auto", 219 | "stereo": true, 220 | "reverse": false, 221 | "bar_delimiter": 0, 222 | "monstercat": false, 223 | "waves": false, 224 | "noise_reduction": 0.5, 225 | "input_delay": 0, 226 | "hide_on_silence": false, 227 | "format-icons" : ["▁", "▂", "▃", "▄", "▅", "▆", "▇", "█" ], 228 | "actions": { 229 | "on-click-right": "mode" 230 | } 231 | } 232 | 233 | 234 | } 235 | 236 | } 237 | 238 | -------------------------------------------------------------------------------- /.config/Thunar/accels.scm: -------------------------------------------------------------------------------- 1 | ; thunar GtkAccelMap rc-file -*- scheme -*- 2 | ; this file is an automated accelerator map dump 3 | ; 4 | ; (gtk_accel_path "/ThunarStandardView/sort-by-type" "") 5 | ; (gtk_accel_path "/ThunarStatusBar/toggle-last-modified" "") 6 | ; (gtk_accel_path "/Thunarwindow/menu" "") 7 | ; (gtk_accel_path "/ThunarActionManager/cut" "x") 8 | ; (gtk_accel_path "/ThunarStandardView/sort-by-size" "") 9 | ; (gtk_accel_path "/ThunarWindow/file-menu" "") 10 | ; (gtk_accel_path "/ThunarWindow/close-tab" "w") 11 | ; (gtk_accel_path "/ThunarWindow/switch-previous-tab-alt" "ISO_Left_Tab") 12 | ; (gtk_accel_path "/ThunarStatusBar/toggle-size" "") 13 | ; (gtk_accel_path "/ThunarWindow/new-window" "n") 14 | ; (gtk_accel_path "/ThunarWindow/clear-directory-specific-settings" "") 15 | ; (gtk_accel_path "/ThunarWindow/close-window" "q") 16 | ; (gtk_accel_path "/ThunarWindow/open-parent" "Up") 17 | ; (gtk_accel_path "/ThunarWindow/view-side-pane-menu" "") 18 | ; (gtk_accel_path "/ThunarStatusBar/toggle-size-in-bytes" "") 19 | ; (gtk_accel_path "/ThunarWindow/switch-previous-tab" "Page_Up") 20 | ; (gtk_accel_path "/ThunarActionManager/open" "o") 21 | ; (gtk_accel_path "/ThunarStandardView/sort-ascending" "") 22 | ; (gtk_accel_path "/ThunarBookmarks/0b6db5857a0a7c273afe3b294365f990" "") 23 | ; (gtk_accel_path "/ThunarWindow/toggle-split-view" "F3") 24 | ; (gtk_accel_path "/ThunarActionManager/copy-2" "Insert") 25 | ; (gtk_accel_path "/ThunarActionManager/trash-delete" "Delete") 26 | ; (gtk_accel_path "/ThunarWindow/open-recent" "") 27 | ; (gtk_accel_path "/ThunarWindow/view-configure-toolbar" "") 28 | ; (gtk_accel_path "/ThunarStandardView/forward" "Right") 29 | ; (gtk_accel_path "/ThunarActionManager/restore" "") 30 | ; (gtk_accel_path "/ThunarWindow/open-location-alt" "d") 31 | ; (gtk_accel_path "/ThunarWindow/zoom-out-alt" "KP_Subtract") 32 | ; (gtk_accel_path "/ThunarStandardView/select-by-pattern" "s") 33 | ; (gtk_accel_path "/ThunarWindow/open-file-menu" "F10") 34 | ; (gtk_accel_path "/ThunarWindow/contents" "F1") 35 | ; (gtk_accel_path "/ThunarWindow/show-highlight" "") 36 | ; (gtk_accel_path "/ThunarStandardView/sort-descending" "") 37 | ; (gtk_accel_path "/ThunarStandardView/sort-by-name" "") 38 | ; (gtk_accel_path "/ThunarStandardView/select-all-files" "a") 39 | ; (gtk_accel_path "/ThunarActionManager/execute" "") 40 | ; (gtk_accel_path "/ThunarStandardView/properties" "Return") 41 | ; (gtk_accel_path "/ThunarActionManager/cut-2" "") 42 | ; (gtk_accel_path "/ThunarStandardView/sort-by-dtime" "") 43 | ; (gtk_accel_path "/ThunarWindow/switch-next-tab" "Page_Down") 44 | ; (gtk_accel_path "/ThunarWindow/open-templates" "") 45 | ; (gtk_accel_path "/ThunarActionManager/paste-2" "Insert") 46 | ; (gtk_accel_path "/ThunarStatusBar/toggle-filetype" "") 47 | ; (gtk_accel_path "/ThunarWindow/close-all-windows" "w") 48 | ; (gtk_accel_path "/ThunarStandardView/create-document" "") 49 | ; (gtk_accel_path "/ThunarWindow/detach-tab" "") 50 | ; (gtk_accel_path "/ThunarWindow/cancel-search" "Escape") 51 | ; (gtk_accel_path "/ThunarWindow/zoom-in-alt2" "equal") 52 | ; (gtk_accel_path "/ThunarStatusBar/toggle-hidden-count" "") 53 | ; (gtk_accel_path "/ThunarShortcutsPane/sendto-shortcuts" "d") 54 | ; (gtk_accel_path "/ThunarActionManager/undo" "z") 55 | ; (gtk_accel_path "/ThunarBookmarks/e1e37089d49396cedec6bd2a7962eca5" "") 56 | ; (gtk_accel_path "/ThunarStandardView/toggle-sort-order" "") 57 | ; (gtk_accel_path "/ThunarWindow/view-location-selector-entry" "") 58 | ; (gtk_accel_path "/ThunarActionManager/paste" "v") 59 | ; (gtk_accel_path "/ThunarWindow/zoom-in-alt1" "KP_Add") 60 | ; (gtk_accel_path "/ThunarWindow/view-menubar" "m") 61 | ; (gtk_accel_path "/ThunarStandardView/back" "Left") 62 | ; (gtk_accel_path "/ThunarWindow/open-desktop" "") 63 | ; (gtk_accel_path "/ThunarWindow/view-as-detailed-list" "2") 64 | ; (gtk_accel_path "/ThunarActionManager/restore-show" "") 65 | ; (gtk_accel_path "/ThunarWindow/sendto-menu" "") 66 | ; (gtk_accel_path "/ThunarStatusBar/toggle-display-name" "") 67 | ; (gtk_accel_path "/ThunarWindow/go-menu" "") 68 | ; (gtk_accel_path "/ThunarWindow/zoom-out" "minus") 69 | ; (gtk_accel_path "/ThunarBookmarks/f250b6025cc691d771f66937dcf2e3a1" "") 70 | ; (gtk_accel_path "/ThunarWindow/remove-from-recent" "") 71 | ; (gtk_accel_path "/ThunarActionManager/open-with-other" "") 72 | ; (gtk_accel_path "/ThunarStandardView/invert-selection" "i") 73 | ; (gtk_accel_path "/ThunarStandardView/sort-by-mtime" "") 74 | ; (gtk_accel_path "/ThunarWindow/view-side-pane-shortcuts" "b") 75 | ; (gtk_accel_path "/ThunarWindow/reload-alt-2" "Reload") 76 | ; (gtk_accel_path "/ThunarWindow/view-location-selector-menu" "") 77 | ; (gtk_accel_path "/ThunarWindow/reload" "r") 78 | ; (gtk_accel_path "/ThunarWindow/edit-menu" "") 79 | ; (gtk_accel_path "/ThunarActionManager/copy" "c") 80 | ; (gtk_accel_path "/ThunarWindow/bookmarks-menu" "") 81 | ; (gtk_accel_path "/ThunarStandardView/forward-alt" "Forward") 82 | ; (gtk_accel_path "/ThunarActionManager/move-to-trash" "") 83 | ; (gtk_accel_path "/ThunarWindow/reload-alt-1" "F5") 84 | ; (gtk_accel_path "/ThunarActionManager/delete-3" "KP_Delete") 85 | ; (gtk_accel_path "/ThunarBookmarks/db9d223ba9f1a4e0ed3d1009c0ad4448" "") 86 | ; (gtk_accel_path "/ThunarWindow/contents/help-menu" "") 87 | ; (gtk_accel_path "/ThunarStandardView/arrange-items-menu" "") 88 | ; (gtk_accel_path "/ThunarStandardView/unselect-all-files" "Escape") 89 | ; (gtk_accel_path "/ThunarWindow/open-computer" "") 90 | ; (gtk_accel_path "/ThunarWindow/toggle-image-preview" "") 91 | ; (gtk_accel_path "/ThunarActionManager/delete-2" "Delete") 92 | ; (gtk_accel_path "/ThunarWindow/view-as-icons" "1") 93 | ; (gtk_accel_path "/ThunarWindow/zoom-in" "plus") 94 | ; (gtk_accel_path "/ThunarWindow/toggle-side-pane" "F9") 95 | ; (gtk_accel_path "/ThunarStandardView/rename" "F2") 96 | ; (gtk_accel_path "/ThunarWindow/open-location" "l") 97 | ; (gtk_accel_path "/ThunarWindow/view-as-compact-list" "3") 98 | ; (gtk_accel_path "/ThunarWindow/view-menu" "") 99 | ; (gtk_accel_path "/ThunarWindow/search" "f") 100 | ; (gtk_accel_path "/ThunarWindow/new-tab" "t") 101 | ; (gtk_accel_path "/ThunarWindow/zoom-reset" "0") 102 | ; (gtk_accel_path "/ThunarWindow/open-trash" "") 103 | ; (gtk_accel_path "/ThunarActionManager/open-in-new-tab" "p") 104 | ; (gtk_accel_path "/ThunarWindow/view-location-selector-buttons" "") 105 | ; (gtk_accel_path "/ThunarActionManager/redo" "z") 106 | ; (gtk_accel_path "/ThunarStandardView/back-alt2" "Back") 107 | ; (gtk_accel_path "/ThunarActionManager/open-in-new-window" "o") 108 | ; (gtk_accel_path "/ThunarWindow/view-statusbar" "") 109 | ; (gtk_accel_path "/ThunarActionManager/open-location" "") 110 | ; (gtk_accel_path "/ThunarStandardView/duplicate" "") 111 | ; (gtk_accel_path "/ThunarActionManager/trash-delete-2" "KP_Delete") 112 | ; (gtk_accel_path "/ThunarStandardView/back-alt1" "BackSpace") 113 | ; (gtk_accel_path "/ThunarStandardView/create-folder" "n") 114 | ; (gtk_accel_path "/ThunarWindow/open-home" "Home") 115 | ; (gtk_accel_path "/ThunarWindow/switch-focused-split-view-pane" "") 116 | ; (gtk_accel_path "/ThunarWindow/show-hidden" "h") 117 | ; (gtk_accel_path "/ThunarStandardView/set-default-app" "") 118 | ; (gtk_accel_path "/ThunarWindow/empty-trash" "") 119 | ; (gtk_accel_path "/ThunarWindow/preferences" "") 120 | ; (gtk_accel_path "/ThunarBookmarks/27a27b4c54c733abee3776af6784e0b6" "") 121 | ; (gtk_accel_path "/ThunarActionManager/delete" "") 122 | ; (gtk_accel_path "/ThunarWindow/open-network" "") 123 | ; (gtk_accel_path "/ThunarWindow/view-side-pane-tree" "e") 124 | ; (gtk_accel_path "/ThunarWindow/open-file-system" "") 125 | ; (gtk_accel_path "/ThunarStandardView/make-link" "") 126 | ; (gtk_accel_path "/ThunarWindow/switch-next-tab-alt" "Tab") 127 | ; (gtk_accel_path "/ThunarActionManager/sendto-desktop" "") 128 | ; (gtk_accel_path "/ThunarWindow/search-alt" "Search") 129 | ; (gtk_accel_path "/ThunarWindow/zoom-reset-alt" "KP_0") 130 | ; (gtk_accel_path "/ThunarWindow/about" "") 131 | -------------------------------------------------------------------------------- /.config/swaync/style.css: -------------------------------------------------------------------------------- 1 | * { 2 | all: unset; 3 | font-size: 14px; 4 | font-family: "Ubuntu Nerd Font"; 5 | transition: 200ms; 6 | } 7 | 8 | trough highlight { 9 | background: #cdd6f4; 10 | } 11 | 12 | scale trough { 13 | margin: 0rem 1rem; 14 | background-color: #313244; 15 | min-height: 8px; 16 | min-width: 70px; 17 | } 18 | 19 | slider { 20 | background-color: #89b4fa; 21 | } 22 | 23 | .floating-notifications.background .notification-row .notification-background { 24 | box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.8), inset 0 0 0 1px #313244; 25 | border-radius: 12.6px; 26 | margin: 18px; 27 | background-color: #1e1e2e; 28 | color: #cdd6f4; 29 | padding: 0; 30 | } 31 | 32 | .floating-notifications.background .notification-row .notification-background .notification { 33 | padding: 7px; 34 | border-radius: 12.6px; 35 | } 36 | 37 | .floating-notifications.background .notification-row .notification-background .notification.critical { 38 | box-shadow: inset 0 0 7px 0 #f38ba8; 39 | } 40 | 41 | .floating-notifications.background .notification-row .notification-background .notification .notification-content { 42 | margin: 7px; 43 | } 44 | 45 | .floating-notifications.background .notification-row .notification-background .notification .notification-content .summary { 46 | color: #cdd6f4; 47 | } 48 | 49 | .floating-notifications.background .notification-row .notification-background .notification .notification-content .time { 50 | color: #a6adc8; 51 | } 52 | 53 | .floating-notifications.background .notification-row .notification-background .notification .notification-content .body { 54 | color: #cdd6f4; 55 | } 56 | 57 | .floating-notifications.background .notification-row .notification-background .notification > *:last-child > * { 58 | min-height: 3.4em; 59 | } 60 | 61 | .floating-notifications.background .notification-row .notification-background .notification > *:last-child > * .notification-action { 62 | border-radius: 7px; 63 | color: #cdd6f4; 64 | background-color: #313244; 65 | box-shadow: inset 0 0 0 1px #45475a; 66 | margin: 7px; 67 | } 68 | 69 | .floating-notifications.background .notification-row .notification-background .notification > *:last-child > * .notification-action:hover { 70 | box-shadow: inset 0 0 0 1px #45475a; 71 | background-color: #313244; 72 | color: #cdd6f4; 73 | } 74 | 75 | .floating-notifications.background .notification-row .notification-background .notification > *:last-child > * .notification-action:active { 76 | box-shadow: inset 0 0 0 1px #45475a; 77 | background-color: #74c7ec; 78 | color: #cdd6f4; 79 | } 80 | 81 | .floating-notifications.background .notification-row .notification-background .close-button { 82 | margin: 7px; 83 | padding: 2px; 84 | border-radius: 6.3px; 85 | color: #1e1e2e; 86 | background-color: #f38ba8; 87 | } 88 | 89 | .floating-notifications.background .notification-row .notification-background .close-button:hover { 90 | background-color: #eba0ac; 91 | color: #1e1e2e; 92 | } 93 | 94 | .floating-notifications.background .notification-row .notification-background .close-button:active { 95 | background-color: #f38ba8; 96 | color: #1e1e2e; 97 | } 98 | 99 | .control-center { 100 | box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.8), inset 0 0 0 1px #313244; 101 | border-radius: 12.6px; 102 | margin: 18px; 103 | background-color: #1e1e2e; 104 | color: #cdd6f4; 105 | padding: 14px; 106 | } 107 | 108 | .control-center .widget-title > label { 109 | color: #cdd6f4; 110 | font-size: 1.3em; 111 | } 112 | 113 | .control-center .widget-title button { 114 | border-radius: 7px; 115 | color: #cdd6f4; 116 | background-color: #313244; 117 | box-shadow: inset 0 0 0 1px #45475a; 118 | padding: 8px; 119 | } 120 | 121 | .control-center .widget-title button:hover { 122 | box-shadow: inset 0 0 0 1px #45475a; 123 | background-color: #585b70; 124 | color: #cdd6f4; 125 | } 126 | 127 | .control-center .widget-title button:active { 128 | box-shadow: inset 0 0 0 1px #45475a; 129 | background-color: #74c7ec; 130 | color: #1e1e2e; 131 | } 132 | 133 | .control-center .notification-row .notification-background { 134 | border-radius: 7px; 135 | color: #cdd6f4; 136 | background-color: #313244; 137 | box-shadow: inset 0 0 0 1px #45475a; 138 | margin-top: 14px; 139 | } 140 | 141 | .control-center .notification-row .notification-background .notification { 142 | padding: 7px; 143 | border-radius: 7px; 144 | } 145 | 146 | .control-center .notification-row .notification-background .notification.critical { 147 | box-shadow: inset 0 0 7px 0 #f38ba8; 148 | } 149 | 150 | .control-center .notification-row .notification-background .notification .notification-content { 151 | margin: 7px; 152 | } 153 | 154 | .control-center .notification-row .notification-background .notification .notification-content .summary { 155 | color: #cdd6f4; 156 | } 157 | 158 | .control-center .notification-row .notification-background .notification .notification-content .time { 159 | color: #a6adc8; 160 | } 161 | 162 | .control-center .notification-row .notification-background .notification .notification-content .body { 163 | color: #cdd6f4; 164 | } 165 | 166 | .control-center .notification-row .notification-background .notification > *:last-child > * { 167 | min-height: 3.4em; 168 | } 169 | 170 | .control-center .notification-row .notification-background .notification > *:last-child > * .notification-action { 171 | border-radius: 7px; 172 | color: #cdd6f4; 173 | background-color: #11111b; 174 | box-shadow: inset 0 0 0 1px #45475a; 175 | margin: 7px; 176 | } 177 | 178 | .control-center .notification-row .notification-background .notification > *:last-child > * .notification-action:hover { 179 | box-shadow: inset 0 0 0 1px #45475a; 180 | background-color: #313244; 181 | color: #cdd6f4; 182 | } 183 | 184 | .control-center .notification-row .notification-background .notification > *:last-child > * .notification-action:active { 185 | box-shadow: inset 0 0 0 1px #45475a; 186 | background-color: #74c7ec; 187 | color: #cdd6f4; 188 | } 189 | 190 | .control-center .notification-row .notification-background .close-button { 191 | margin: 7px; 192 | padding: 2px; 193 | border-radius: 6.3px; 194 | color: #1e1e2e; 195 | background-color: #eba0ac; 196 | } 197 | 198 | .close-button { 199 | border-radius: 6.3px; 200 | } 201 | 202 | .control-center .notification-row .notification-background .close-button:hover { 203 | background-color: #f38ba8; 204 | color: #1e1e2e; 205 | } 206 | 207 | .control-center .notification-row .notification-background .close-button:active { 208 | background-color: #f38ba8; 209 | color: #1e1e2e; 210 | } 211 | 212 | .control-center .notification-row .notification-background:hover { 213 | box-shadow: inset 0 0 0 1px #45475a; 214 | background-color: #7f849c; 215 | color: #cdd6f4; 216 | } 217 | 218 | .control-center .notification-row .notification-background:active { 219 | box-shadow: inset 0 0 0 1px #45475a; 220 | background-color: #74c7ec; 221 | color: #cdd6f4; 222 | } 223 | 224 | .notification.critical progress { 225 | background-color: #f38ba8; 226 | } 227 | 228 | .notification.low progress, 229 | .notification.normal progress { 230 | background-color: #89b4fa; 231 | } 232 | 233 | .control-center-dnd { 234 | margin-top: 5px; 235 | border-radius: 8px; 236 | background: #313244; 237 | border: 1px solid #45475a; 238 | box-shadow: none; 239 | } 240 | 241 | .control-center-dnd:checked { 242 | background: #313244; 243 | } 244 | 245 | .control-center-dnd slider { 246 | background: #45475a; 247 | border-radius: 8px; 248 | } 249 | 250 | .widget-dnd { 251 | margin: 0px; 252 | font-size: 1.1rem; 253 | } 254 | 255 | .widget-dnd > switch { 256 | font-size: initial; 257 | border-radius: 8px; 258 | background: #313244; 259 | border: 1px solid #45475a; 260 | box-shadow: none; 261 | } 262 | 263 | .widget-dnd > switch:checked { 264 | background: #313244; 265 | } 266 | 267 | .widget-dnd > switch slider { 268 | background: #45475a; 269 | border-radius: 8px; 270 | border: 1px solid #6c7086; 271 | } 272 | 273 | .widget-mpris .widget-mpris-player { 274 | background: #313244; 275 | padding: 7px; 276 | } 277 | 278 | .widget-mpris .widget-mpris-title { 279 | font-size: 1.2rem; 280 | } 281 | 282 | .widget-mpris .widget-mpris-subtitle { 283 | font-size: 0.8rem; 284 | } 285 | 286 | .widget-menubar > box > .menu-button-bar > button > label { 287 | font-size: 3rem; 288 | padding: 0.5rem 2rem; 289 | } 290 | 291 | .widget-menubar > box > .menu-button-bar > :last-child { 292 | color: #f38ba8; 293 | } 294 | 295 | .power-buttons button:hover, 296 | .powermode-buttons button:hover, 297 | .screenshot-buttons button:hover { 298 | background: #313244; 299 | } 300 | 301 | .control-center .widget-label > label { 302 | color: #cdd6f4; 303 | font-size: 2rem; 304 | } 305 | 306 | .widget-buttons-grid { 307 | padding-top: 1rem; 308 | } 309 | 310 | .widget-buttons-grid > flowbox > flowboxchild > button label { 311 | font-size: 2.5rem; 312 | } 313 | 314 | .widget-volume { 315 | padding-top: 1rem; 316 | } 317 | 318 | .widget-volume label { 319 | font-size: 1.5rem; 320 | color: #74c7ec; 321 | } 322 | 323 | .widget-volume trough highlight { 324 | background: #74c7ec; 325 | } 326 | 327 | .widget-backlight trough highlight { 328 | background: #f9e2af; 329 | } 330 | 331 | .widget-backlight label { 332 | font-size: 1.5rem; 333 | color: #f9e2af; 334 | } 335 | 336 | .widget-backlight .KB { 337 | padding-bottom: 1rem; 338 | } 339 | 340 | .image { 341 | padding-right: 0.5rem; 342 | } 343 | -------------------------------------------------------------------------------- /.config/btop/btop.conf: -------------------------------------------------------------------------------- 1 | #? Config file for btop v. 1.4.0 2 | 3 | #* Name of a btop++/bpytop/bashtop formatted ".theme" file, "Default" and "TTY" for builtin themes. 4 | #* Themes should be placed in "../share/btop/themes" relative to binary or "$HOME/.config/btop/themes" 5 | color_theme = "~/.config/btop/themes/mocha.theme" 6 | 7 | #* If the theme set background should be shown, set to False if you want terminal background transparency. 8 | theme_background = False 9 | 10 | #* Sets if 24-bit truecolor should be used, will convert 24-bit colors to 256 color (6x6x6 color cube) if false. 11 | truecolor = True 12 | 13 | #* Set to true to force tty mode regardless if a real tty has been detected or not. 14 | #* Will force 16-color mode and TTY theme, set all graph symbols to "tty" and swap out other non tty friendly symbols. 15 | force_tty = False 16 | 17 | #* Define presets for the layout of the boxes. Preset 0 is always all boxes shown with default settings. Max 9 presets. 18 | #* Format: "box_name:P:G,box_name:P:G" P=(0 or 1) for alternate positions, G=graph symbol to use for box. 19 | #* Use whitespace " " as separator between different presets. 20 | #* Example: "cpu:0:default,mem:0:tty,proc:1:default cpu:0:braille,proc:0:tty" 21 | presets = "cpu:1:default,proc:0:default cpu:0:default,mem:0:default,net:0:default cpu:0:block,net:0:tty" 22 | 23 | #* Set to True to enable "h,j,k,l,g,G" keys for directional control in lists. 24 | #* Conflicting keys for h:"help" and k:"kill" is accessible while holding shift. 25 | vim_keys = False 26 | 27 | #* Rounded corners on boxes, is ignored if TTY mode is ON. 28 | rounded_corners = True 29 | 30 | #* Default symbols to use for graph creation, "braille", "block" or "tty". 31 | #* "braille" offers the highest resolution but might not be included in all fonts. 32 | #* "block" has half the resolution of braille but uses more common characters. 33 | #* "tty" uses only 3 different symbols but will work with most fonts and should work in a real TTY. 34 | #* Note that "tty" only has half the horizontal resolution of the other two, so will show a shorter historical view. 35 | graph_symbol = "braille" 36 | 37 | # Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". 38 | graph_symbol_cpu = "default" 39 | 40 | # Graph symbol to use for graphs in gpu box, "default", "braille", "block" or "tty". 41 | graph_symbol_gpu = "default" 42 | 43 | # Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". 44 | graph_symbol_mem = "default" 45 | 46 | # Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". 47 | graph_symbol_net = "default" 48 | 49 | # Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". 50 | graph_symbol_proc = "default" 51 | 52 | #* Manually set which boxes to show. Available values are "cpu mem net proc" and "gpu0" through "gpu5", separate values with whitespace. 53 | shown_boxes = "cpu gpu0 proc" 54 | 55 | #* Update time in milliseconds, recommended 2000 ms or above for better sample times for graphs. 56 | update_ms = 2000 57 | 58 | #* Processes sorting, "pid" "program" "arguments" "threads" "user" "memory" "cpu lazy" "cpu direct", 59 | #* "cpu lazy" sorts top process over time (easier to follow), "cpu direct" updates top process directly. 60 | proc_sorting = "cpu lazy" 61 | 62 | #* Reverse sorting order, True or False. 63 | proc_reversed = False 64 | 65 | #* Show processes as a tree. 66 | proc_tree = False 67 | 68 | #* Use the cpu graph colors in the process list. 69 | proc_colors = True 70 | 71 | #* Use a darkening gradient in the process list. 72 | proc_gradient = True 73 | 74 | #* If process cpu usage should be of the core it's running on or usage of the total available cpu power. 75 | proc_per_core = False 76 | 77 | #* Show process memory as bytes instead of percent. 78 | proc_mem_bytes = True 79 | 80 | #* Show cpu graph for each process. 81 | proc_cpu_graphs = True 82 | 83 | #* Use /proc/[pid]/smaps for memory information in the process info box (very slow but more accurate) 84 | proc_info_smaps = False 85 | 86 | #* Show proc box on left side of screen instead of right. 87 | proc_left = False 88 | 89 | #* (Linux) Filter processes tied to the Linux kernel(similar behavior to htop). 90 | proc_filter_kernel = False 91 | 92 | #* In tree-view, always accumulate child process resources in the parent process. 93 | proc_aggregate = False 94 | 95 | #* Sets the CPU stat shown in upper half of the CPU graph, "total" is always available. 96 | #* Select from a list of detected attributes from the options menu. 97 | cpu_graph_upper = "Auto" 98 | 99 | #* Sets the CPU stat shown in lower half of the CPU graph, "total" is always available. 100 | #* Select from a list of detected attributes from the options menu. 101 | cpu_graph_lower = "Auto" 102 | 103 | #* If gpu info should be shown in the cpu box. Available values = "Auto", "On" and "Off". 104 | show_gpu_info = "Auto" 105 | 106 | #* Toggles if the lower CPU graph should be inverted. 107 | cpu_invert_lower = True 108 | 109 | #* Set to True to completely disable the lower CPU graph. 110 | cpu_single_graph = False 111 | 112 | #* Show cpu box at bottom of screen instead of top. 113 | cpu_bottom = False 114 | 115 | #* Shows the system uptime in the CPU box. 116 | show_uptime = True 117 | 118 | #* Show cpu temperature. 119 | check_temp = True 120 | 121 | #* Which sensor to use for cpu temperature, use options menu to select from list of available sensors. 122 | cpu_sensor = "Auto" 123 | 124 | #* Show temperatures for cpu cores also if check_temp is True and sensors has been found. 125 | show_coretemp = True 126 | 127 | #* Set a custom mapping between core and coretemp, can be needed on certain cpus to get correct temperature for correct core. 128 | #* Use lm-sensors or similar to see which cores are reporting temperatures on your machine. 129 | #* Format "x:y" x=core with wrong temp, y=core with correct temp, use space as separator between multiple entries. 130 | #* Example: "4:0 5:1 6:3" 131 | cpu_core_map = "" 132 | 133 | #* Which temperature scale to use, available values: "celsius", "fahrenheit", "kelvin" and "rankine". 134 | temp_scale = "celsius" 135 | 136 | #* Use base 10 for bits/bytes sizes, KB = 1000 instead of KiB = 1024. 137 | base_10_sizes = False 138 | 139 | #* Show CPU frequency. 140 | show_cpu_freq = True 141 | 142 | #* Draw a clock at top of screen, formatting according to strftime, empty string to disable. 143 | #* Special formatting: /host = hostname | /user = username | /uptime = system uptime 144 | clock_format = "%X" 145 | 146 | #* Update main ui in background when menus are showing, set this to false if the menus is flickering too much for comfort. 147 | background_update = True 148 | 149 | #* Custom cpu model name, empty string to disable. 150 | custom_cpu_name = "" 151 | 152 | #* Optional filter for shown disks, should be full path of a mountpoint, separate multiple values with whitespace " ". 153 | #* Begin line with "exclude=" to change to exclude filter, otherwise defaults to "most include" filter. Example: disks_filter="exclude=/boot /home/user". 154 | disks_filter = "" 155 | 156 | #* Show graphs instead of meters for memory values. 157 | mem_graphs = True 158 | 159 | #* Show mem box below net box instead of above. 160 | mem_below_net = False 161 | 162 | #* Count ZFS ARC in cached and available memory. 163 | zfs_arc_cached = True 164 | 165 | #* If swap memory should be shown in memory box. 166 | show_swap = True 167 | 168 | #* Show swap as a disk, ignores show_swap value above, inserts itself after first disk. 169 | swap_disk = True 170 | 171 | #* If mem box should be split to also show disks info. 172 | show_disks = True 173 | 174 | #* Filter out non physical disks. Set this to False to include network disks, RAM disks and similar. 175 | only_physical = True 176 | 177 | #* Read disks list from /etc/fstab. This also disables only_physical. 178 | use_fstab = True 179 | 180 | #* Setting this to True will hide all datasets, and only show ZFS pools. (IO stats will be calculated per-pool) 181 | zfs_hide_datasets = False 182 | 183 | #* Set to true to show available disk space for privileged users. 184 | disk_free_priv = False 185 | 186 | #* Toggles if io activity % (disk busy time) should be shown in regular disk usage view. 187 | show_io_stat = True 188 | 189 | #* Toggles io mode for disks, showing big graphs for disk read/write speeds. 190 | io_mode = False 191 | 192 | #* Set to True to show combined read/write io graphs in io mode. 193 | io_graph_combined = False 194 | 195 | #* Set the top speed for the io graphs in MiB/s (100 by default), use format "mountpoint:speed" separate disks with whitespace " ". 196 | #* Example: "/mnt/media:100 /:20 /boot:1". 197 | io_graph_speeds = "" 198 | 199 | #* Set fixed values for network graphs in Mebibits. Is only used if net_auto is also set to False. 200 | net_download = 100 201 | 202 | net_upload = 100 203 | 204 | #* Use network graphs auto rescaling mode, ignores any values set above and rescales down to 10 Kibibytes at the lowest. 205 | net_auto = False 206 | 207 | #* Sync the auto scaling for download and upload to whichever currently has the highest scale. 208 | net_sync = True 209 | 210 | #* Starts with the Network Interface specified here. 211 | net_iface = "" 212 | 213 | #* Show battery stats in top right if battery is present. 214 | show_battery = True 215 | 216 | #* Which battery to use if multiple are present. "Auto" for auto detection. 217 | selected_battery = "Auto" 218 | 219 | #* Show power stats of battery next to charge indicator. 220 | show_battery_watts = True 221 | 222 | #* Set loglevel for "~/.config/btop/btop.log" levels are: "ERROR" "WARNING" "INFO" "DEBUG". 223 | #* The level set includes all lower levels, i.e. "DEBUG" will show all logging info. 224 | log_level = "WARNING" 225 | 226 | #* Measure PCIe throughput on NVIDIA cards, may impact performance on certain cards. 227 | nvml_measure_pcie_speeds = True 228 | 229 | #* Horizontally mirror the GPU graph. 230 | gpu_mirror_graph = True 231 | 232 | #* Custom gpu0 model name, empty string to disable. 233 | custom_gpu_name0 = "" 234 | 235 | #* Custom gpu1 model name, empty string to disable. 236 | custom_gpu_name1 = "" 237 | 238 | #* Custom gpu2 model name, empty string to disable. 239 | custom_gpu_name2 = "" 240 | 241 | #* Custom gpu3 model name, empty string to disable. 242 | custom_gpu_name3 = "" 243 | 244 | #* Custom gpu4 model name, empty string to disable. 245 | custom_gpu_name4 = "" 246 | 247 | #* Custom gpu5 model name, empty string to disable. 248 | custom_gpu_name5 = "" 249 | -------------------------------------------------------------------------------- /.config/cava/config: -------------------------------------------------------------------------------- 1 | ## Configuration file for CAVA. 2 | # Remove the ; to change parameters. 3 | 4 | 5 | [general] 6 | 7 | 8 | [color] 9 | #background = '#1e1e2e' 10 | 11 | gradient = 1 12 | 13 | 14 | gradient_color_1 = '#cba6f7' 15 | gradient_color_2 = '#cba6f7' 16 | 17 | # Smoothing mode. Can be 'normal', 'scientific' or 'waves'. DEPRECATED as of 0.6.0 18 | ; mode = normal 19 | 20 | # Accepts only non-negative values. 21 | ; framerate = 60 22 | 23 | # 'autosens' will attempt to decrease sensitivity if the bars peak. 1 = on, 0 = off 24 | # new as of 0.6.0 autosens of low values (dynamic range) 25 | # 'overshoot' allows bars to overshoot (in % of terminal height) without initiating autosens. DEPRECATED as of 0.6.0 26 | ; autosens = 1 27 | ; overshoot = 20 28 | 29 | # Manual sensitivity in %. If autosens is enabled, this will only be the initial value. 30 | # 200 means double height. Accepts only non-negative values. 31 | ; sensitivity = 100 32 | 33 | # The number of bars (0-512). 0 sets it to auto (fill up console). 34 | # Bars' width and space between bars in number of characters. 35 | ; bars = 0 36 | ; bar_width = 2 37 | ; bar_spacing = 1 38 | # bar_height is only used for output in "noritake" format 39 | ; bar_height = 32 40 | 41 | # For SDL width and space between bars is in pixels, defaults are: 42 | ; bar_width = 20 43 | ; bar_spacing = 5 44 | 45 | # sdl_glsl have these default values, they are only used to calulate max number of bars. 46 | ; bar_width = 1 47 | ; bar_spacing = 0 48 | 49 | 50 | # Lower and higher cutoff frequencies for lowest and highest bars 51 | # the bandwidth of the visualizer. 52 | # Note: there is a minimum total bandwidth of 43Mhz x number of bars. 53 | # Cava will automatically increase the higher cutoff if a too low band is specified. 54 | ; lower_cutoff_freq = 50 55 | ; higher_cutoff_freq = 10000 56 | 57 | 58 | # Seconds with no input before cava goes to sleep mode. Cava will not perform FFT or drawing and 59 | # only check for input once per second. Cava will wake up once input is detected. 0 = disable. 60 | ; sleep_timer = 0 61 | 62 | 63 | [input] 64 | 65 | # Audio capturing method. Possible methods are: 'fifo', 'portaudio', 'pipewire', 'alsa', 'pulse', 'sndio', 'oss', 'jack' or 'shmem' 66 | # Defaults to 'oss', 'pipewire', 'sndio', 'jack', 'pulse', 'alsa', 'portaudio' or 'fifo', in that order, dependent on what support cava was built with. 67 | # On Mac it defaults to 'portaudio' or 'fifo' 68 | # On windows this is automatic and no input settings are needed. 69 | # 70 | # All input methods uses the same config variable 'source' 71 | # to define where it should get the audio. 72 | # 73 | # For pulseaudio and pipewire 'source' will be the source. Default: 'auto', which uses the monitor source of the default sink 74 | # (all pulseaudio sinks(outputs) have 'monitor' sources(inputs) associated with them). 75 | # 76 | # For pipewire 'source' will be the object name or object.serial of the device to capture from. 77 | # Both input and output devices are supported. 78 | # 79 | # For alsa 'source' will be the capture device. 80 | # For fifo 'source' will be the path to fifo-file. 81 | # For shmem 'source' will be /squeezelite-AA:BB:CC:DD:EE:FF where 'AA:BB:CC:DD:EE:FF' will be squeezelite's MAC address 82 | # 83 | # For sndio 'source' will be a raw recording audio descriptor or a monitoring sub-device, e.g. 'rsnd/2' or 'snd/1'. Default: 'default'. 84 | # README.md contains further information on how to setup CAVA for sndio. 85 | # 86 | # For oss 'source' will be the path to a audio device, e.g. '/dev/dsp2'. Default: '/dev/dsp', i.e. the default audio device. 87 | # README.md contains further information on how to setup CAVA for OSS on FreeBSD. 88 | # 89 | # For jack 'source' will be the name of the JACK server to connect to, e.g. 'foobar'. Default: 'default'. 90 | # README.md contains further information on how to setup CAVA for JACK. 91 | # 92 | method = pulse 93 | ; source = auto 94 | 95 | ; method = pulseaudio 96 | ; source = auto 97 | 98 | 99 | ; method = pipewire 100 | ; source = auto 101 | 102 | ; method = alsa 103 | ; source = hw:Loopback,1 104 | 105 | ; method = fifo 106 | ; source = /tmp/mpd.fifo 107 | 108 | ; method = shmem 109 | ; source = /squeezelite-AA:BB:CC:DD:EE:FF 110 | 111 | ; method = portaudio 112 | ; source = auto 113 | 114 | ; method = sndio 115 | ; source = default 116 | 117 | ; method = oss 118 | ; source = /dev/dsp 119 | 120 | ; method = jack 121 | ; source = default 122 | ## test config file for CAVA, testing if zero pulseaudio input gives zero bar height output 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | # The options 'sample_rate', 'sample_bits', 'channels' and 'autoconnect' can be configured for some input methods: 131 | # sample_rate: fifo, pipewire, sndio, oss 132 | # sample_bits: fifo, pipewire, sndio, oss 133 | # channels: sndio, oss, jack 134 | # autoconnect: jack 135 | # Other methods ignore these settings. 136 | # 137 | # For 'sndio' and 'oss' they are only preferred values, i.e. if the values are not supported 138 | # by the chosen audio device, the device will use other supported values instead. 139 | # Example: 48000, 32 and 2, but the device only supports 44100, 16 and 1, then it 140 | # will use 44100, 16 and 1. 141 | # 142 | ; sample_rate = 44100 143 | ; sample_bits = 16 144 | ; channels = 2 145 | ; autoconnect = 2 146 | 147 | 148 | [output] 149 | 150 | # Output method. Can be 'ncurses', 'noncurses', 'raw', 'noritake', 'sdl' 151 | # or 'sdl_glsl'. 152 | # 'noncurses' (default) uses a buffer and cursor movements to only print 153 | # changes from frame to frame in the terminal. Uses less resources and is less 154 | # prone to tearing (vsync issues) than 'ncurses'. 155 | # 156 | # 'raw' is an 8 or 16 bit (configurable via the 'bit_format' option) data 157 | # stream of the bar heights that can be used to send to other applications. 158 | # 'raw' defaults to 200 bars, which can be adjusted in the 'bars' option above. 159 | # 160 | # 'noritake' outputs a bitmap in the format expected by a Noritake VFD display 161 | # in graphic mode. It only support the 3000 series graphical VFDs for now. 162 | # 163 | # 'sdl' uses the Simple DirectMedia Layer to render in a graphical context. 164 | # 'sdl_glsl' uses SDL to create an OpenGL context. Write your own shaders or 165 | # use one of the predefined ones. 166 | ; method = noncurses 167 | 168 | # Orientation of the visualization. Can be 'bottom', 'top', 'left' or 'right'. 169 | # Default is 'bottom'. Other orientations are only supported on sdl and ncruses 170 | # output. Note: many fonts have weird glyphs for 'top' and 'right' characters, 171 | # which can make ncurses not look right. 172 | ; orientation = bottom 173 | 174 | # Visual channels. Can be 'stereo' or 'mono'. 175 | # 'stereo' mirrors both channels with low frequencies in center. 176 | # 'mono' outputs left to right lowest to highest frequencies. 177 | # 'mono_option' set mono to either take input from 'left', 'right' or 'average'. 178 | # set 'reverse' to 1 to display frequencies the other way around. 179 | ; channels = stereo 180 | ; mono_option = average 181 | ; reverse = 0 182 | 183 | # Raw output target. A fifo will be created if target does not exist. 184 | ; raw_target = /dev/stdout 185 | 186 | # Raw data format. Can be 'binary' or 'ascii'. 187 | ; data_format = binary 188 | 189 | # Binary bit format, can be '8bit' (0-255) or '16bit' (0-65530). 190 | ; bit_format = 16bit 191 | 192 | # Ascii max value. In 'ascii' mode range will run from 0 to value specified here 193 | ; ascii_max_range = 1000 194 | 195 | # Ascii delimiters. In ascii format each bar and frame is separated by a delimiters. 196 | # Use decimal value in ascii table (i.e. 59 = ';' and 10 = '\n' (line feed)). 197 | ; bar_delimiter = 59 198 | ; frame_delimiter = 10 199 | 200 | # sdl window size and position. -1,-1 is centered. 201 | ; sdl_width = 1000 202 | ; sdl_height = 500 203 | ; sdl_x = -1 204 | ; sdl_y= -1 205 | ; sdl_full_screen = 0 206 | 207 | # set label on bars on the x-axis. Can be 'frequency' or 'none'. Default: 'none' 208 | # 'frequency' displays the lower cut off frequency of the bar above. 209 | # Only supported on ncurses and noncurses output. 210 | ; xaxis = none 211 | 212 | # enable alacritty synchronized updates. 1 = on, 0 = off 213 | # removes flickering in alacritty terminal emulator. 214 | # defaults to off since the behaviour in other terminal emulators is unknown 215 | ; alacritty_sync = 0 216 | 217 | # Shaders for sdl_glsl, located in $HOME/.config/cava/shaders 218 | ; vertex_shader = pass_through.vert 219 | ; fragment_shader = bar_spectrum.frag 220 | 221 | ; for glsl output mode, keep rendering even if no audio 222 | ; continuous_rendering = 0 223 | 224 | # disable console blank (screen saver) in tty 225 | # (Not supported on FreeBSD) 226 | ; disable_blanking = 0 227 | 228 | # show a flat bar at the bottom of the screen when idle, 1 = on, 0 = off 229 | ; show_idle_bar_heads = 1 230 | 231 | # show waveform instead of frequency spectrum, 1 = on, 0 = off 232 | ; waveform = 0 233 | 234 | #[color] 235 | 236 | # Colors can be one of seven predefined: black, blue, cyan, green, magenta, red, white, yellow. 237 | # Or defined by hex code '#xxxxxx' (hex code must be within ''). User defined colors requires 238 | # a terminal that can change color definitions such as Gnome-terminal or rxvt. 239 | # default is to keep current terminal color 240 | #; background = default 241 | #; foreground = default 242 | 243 | # SDL and sdl_glsl only support hex code colors, these are the default: 244 | #; background = '#111111' 245 | #; foreground = '#33ffff' 246 | 247 | 248 | # Gradient mode, only hex defined colors are supported, 249 | # background must also be defined in hex or remain commented out. 1 = on, 0 = off. 250 | # You can define as many as 8 different colors. They range from bottom to top of screen 251 | #; gradient = 0 252 | #; gradient_count = 8 253 | #; gradient_color_1 = '#59cc33' 254 | #; gradient_color_2 = '#80cc33' 255 | #; gradient_color_3 = '#a6cc33' 256 | #; gradient_color_4 = '#cccc33' 257 | #; gradient_color_5 = '#cca633' 258 | #; gradient_color_6 = '#cc8033' 259 | #; gradient_color_7 = '#cc5933' 260 | #; gradient_color_8 = '#cc3333' 261 | 262 | 263 | 264 | [smoothing] 265 | 266 | # Percentage value for integral smoothing. Takes values from 0 - 100. 267 | # Higher values means smoother, but less precise. 0 to disable. 268 | # DEPRECATED as of 0.8.0, use noise_reduction instead 269 | ; integral = 77 270 | 271 | # Disables or enables the so-called "Monstercat smoothing" with or without "waves". Set to 0 to disable. 272 | ; monstercat = 0 273 | ; waves = 0 274 | 275 | # Set gravity percentage for "drop off". Higher values means bars will drop faster. 276 | # Accepts only non-negative values. 50 means half gravity, 200 means double. Set to 0 to disable "drop off". 277 | # DEPRECATED as of 0.8.0, use noise_reduction instead 278 | ; gravity = 100 279 | 280 | 281 | # In bar height, bars that would have been lower that this will not be drawn. 282 | # DEPRECATED as of 0.8.0 283 | ; ignore = 0 284 | 285 | # Noise reduction, int 0 - 100. default 77 286 | # the raw visualization is very noisy, this factor adjusts the integral and gravity filters to keep the signal smooth 287 | # 100 will be very slow and smooth, 0 will be fast but noisy. 288 | ; noise_reduction = 77 289 | 290 | 291 | [eq] 292 | 293 | # This one is tricky. You can have as much keys as you want. 294 | # Remember to uncomment more than one key! More keys = more precision. 295 | # Look at readme.md on github for further explanations and examples. 296 | ; 1 = 1 # bass 297 | ; 2 = 1 298 | ; 3 = 1 # midtone 299 | ; 4 = 1 300 | ; 5 = 1 # treble 301 | -------------------------------------------------------------------------------- /.config/swaync/configSchema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json-schema.org/draft/2020-12/schema", 3 | "title": "SwayNotificationCenter JSON schema", 4 | "type": "object", 5 | "additionalProperties": false, 6 | "properties": { 7 | "$schema": { 8 | "type": "string", 9 | "description": "Pointer to the schema against which this document should be validated." 10 | }, 11 | "positionX": { 12 | "type": "string", 13 | "description": "Horizontal position of control center and notification window", 14 | "default": "right", 15 | "enum": [ 16 | "right", 17 | "left", 18 | "center" 19 | ] 20 | }, 21 | "layer": { 22 | "type": "string", 23 | "description": "Layer of control center window", 24 | "default": "top", 25 | "enum": [ 26 | "background", 27 | "bottom", 28 | "top", 29 | "overlay" 30 | ] 31 | }, 32 | "cssPriority": { 33 | "type": "string", 34 | "description": "Which GTK priority to use when loading the default and user CSS files. Pick \"user\" to override XDG_CONFIG_HOME/gtk-3.0/gtk.css", 35 | "default": "application", 36 | "enum": [ 37 | "application", 38 | "user" 39 | ] 40 | }, 41 | "positionY": { 42 | "type": "string", 43 | "description": "Vertical position of control center and notification window", 44 | "default": "top", 45 | "enum": [ 46 | "top", 47 | "bottom" 48 | ] 49 | }, 50 | "control-center-positionX": { 51 | "type": "string", 52 | "description": "Optional: Horizontal position of the control center. Supersedes positionX if not set to `none`", 53 | "default": "none", 54 | "enum": [ 55 | "right", 56 | "left", 57 | "center", 58 | "none" 59 | ] 60 | }, 61 | "control-center-positionY": { 62 | "type": "string", 63 | "description": "Optional: Vertical position of the control center. Supersedes positionY if not set to `none`", 64 | "default": "none", 65 | "enum": [ 66 | "top", 67 | "bottom", 68 | "none" 69 | ] 70 | }, 71 | "control-center-margin-top": { 72 | "type": "integer", 73 | "description": "The margin (in pixels) at the top of the notification center. 0 to disable", 74 | "default": 0 75 | }, 76 | "control-center-margin-bottom": { 77 | "type": "integer", 78 | "description": "The margin (in pixels) at the bottom of the notification center. 0 to disable", 79 | "default": 0 80 | }, 81 | "control-center-margin-right": { 82 | "type": "integer", 83 | "description": "The margin (in pixels) at the right of the notification center. 0 to disable", 84 | "default": 0 85 | }, 86 | "control-center-margin-left": { 87 | "type": "integer", 88 | "description": "The margin (in pixels) at the left of the notification center. 0 to disable", 89 | "default": 0 90 | }, 91 | "notification-icon-size": { 92 | "type": "integer", 93 | "description": "The notification icon size (in pixels)", 94 | "default": 64, 95 | "minimum": 16 96 | }, 97 | "notification-body-image-height": { 98 | "type": "integer", 99 | "description": "The notification body image height (in pixels)", 100 | "default": 100, 101 | "minimum": 100 102 | }, 103 | "notification-body-image-width": { 104 | "type": "integer", 105 | "description": "The notification body image width (in pixels)", 106 | "default": 200, 107 | "minimum": 200 108 | }, 109 | "timeout": { 110 | "type": "integer", 111 | "description": "The notification timeout for notifications with normal priority", 112 | "default": 10 113 | }, 114 | "timeout-low": { 115 | "type": "integer", 116 | "description": "The notification timeout for notifications with low priority", 117 | "default": 5 118 | }, 119 | "timeout-critical": { 120 | "type": "integer", 121 | "description": "The notification timeout for notifications with critical priority. 0 to disable", 122 | "default": 0 123 | }, 124 | "notification-window-width": { 125 | "type": "integer", 126 | "description": "Width of the notification in pixels", 127 | "default": 500 128 | }, 129 | "fit-to-screen": { 130 | "type": "boolean", 131 | "description": "If the control center should expand to both edges of the screen", 132 | "default": true 133 | }, 134 | "control-center-height": { 135 | "type": "integer", 136 | "description": "Height of the control center in pixels. Ignored when 'fit-to-screen' is set to 'true'", 137 | "default": 600, 138 | "minimum": 300 139 | }, 140 | "control-center-width": { 141 | "type": "integer", 142 | "description": "Width of the control center in pixels", 143 | "default": 500, 144 | "minimum": 300 145 | }, 146 | "keyboard-shortcuts": { 147 | "type": "boolean", 148 | "description": "If control center should use keyboard shortcuts", 149 | "default": true 150 | }, 151 | "image-visibility": { 152 | "type": "string", 153 | "description": "An explanation about the purpose of this instance.", 154 | "default": "when-available", 155 | "enum": [ 156 | "always", 157 | "when-available", 158 | "never" 159 | ] 160 | }, 161 | "transition-time": { 162 | "type": "integer", 163 | "description": "The notification animation duration. 0 to disable", 164 | "default": 200 165 | }, 166 | "hide-on-clear": { 167 | "type": "boolean", 168 | "description": "Hides the control center after pressing \"Clear All\"", 169 | "default": false 170 | }, 171 | "hide-on-action": { 172 | "type": "boolean", 173 | "description": "Hides the control center when clicking on notification action", 174 | "default": true 175 | }, 176 | "script-fail-notify": { 177 | "type": "boolean", 178 | "description": "Sends a notification if a script fails to run", 179 | "default": true 180 | }, 181 | "scripts": { 182 | "type": "object", 183 | "description": "Which scripts to check and potentially run for every notification. If the notification doesn't include one of the properties, that property will be ignored. All properties (except for exec) use regex. If all properties match the given notification, the script will be run. Only the first matching script will be run.", 184 | "minProperties": 1, 185 | "additionalProperties": false, 186 | "patternProperties": { 187 | "^.{1,}$": { 188 | "type": "object", 189 | "description": "Your script object.", 190 | "required": [ 191 | "exec" 192 | ], 193 | "minProperties": 2, 194 | "additionalProperties": false, 195 | "properties": { 196 | "exec": { 197 | "type": "string", 198 | "description": "The script to run. Can also run regular shell commands." 199 | }, 200 | "app-name": { 201 | "type": "string", 202 | "description": "The app-name. Uses Regex." 203 | }, 204 | "desktop-entry": { 205 | "type": "string", 206 | "description": "The desktop-entry. Uses Regex." 207 | }, 208 | "summary": { 209 | "type": "string", 210 | "description": "The summary of the notification. Uses Regex." 211 | }, 212 | "body": { 213 | "type": "string", 214 | "description": "The body of the notification. Uses Regex." 215 | }, 216 | "urgency": { 217 | "type": "string", 218 | "description": "The urgency of the notification.", 219 | "default": "Normal", 220 | "enum": [ 221 | "Low", 222 | "Normal", 223 | "Critical" 224 | ] 225 | }, 226 | "category": { 227 | "type": "string", 228 | "description": "Which category the notification belongs to. Uses Regex." 229 | }, 230 | "run-on": { 231 | "type": "string", 232 | "description": "Whether to run the script on an action being activated, or when the notification is received.", 233 | "enum": [ 234 | "action", 235 | "receive" 236 | ], 237 | "default": "receive" 238 | } 239 | } 240 | } 241 | } 242 | }, 243 | "notification-visibility": { 244 | "type": "object", 245 | "description": "Set the visibility of each incoming notification. If the notification doesn't include one of the properties, that property will be ignored. All properties (except for state) use regex. If all properties match the given notification, the notification will be follow the provided state. Only the first matching object will be used.", 246 | "minProperties": 1, 247 | "additionalProperties": false, 248 | "patternProperties": { 249 | "^.{1,}$": { 250 | "type": "object", 251 | "description": "Your script object.", 252 | "required": [ 253 | "state" 254 | ], 255 | "minProperties": 2, 256 | "additionalProperties": false, 257 | "properties": { 258 | "state": { 259 | "type": "string", 260 | "description": "The notification visibility state.", 261 | "default": "enabled", 262 | "enum": [ 263 | "ignored", 264 | "muted", 265 | "enabled", 266 | "transient" 267 | ] 268 | }, 269 | "app-name": { 270 | "type": "string", 271 | "description": "The app-name. Uses Regex." 272 | }, 273 | "desktop-entry": { 274 | "type": "string", 275 | "description": "The desktop-entry. Uses Regex." 276 | }, 277 | "summary": { 278 | "type": "string", 279 | "description": "The summary of the notification. Uses Regex." 280 | }, 281 | "body": { 282 | "type": "string", 283 | "description": "The body of the notification. Uses Regex." 284 | }, 285 | "urgency": { 286 | "type": "string", 287 | "description": "The urgency of the notification.", 288 | "default": "Normal", 289 | "enum": [ 290 | "Low", 291 | "Normal", 292 | "Critical" 293 | ] 294 | }, 295 | "override-urgency": { 296 | "type": "string", 297 | "description": "The new urgency of the notification (optional)", 298 | "default": "unset", 299 | "enum": [ 300 | "unset", 301 | "low", 302 | "normal", 303 | "critical" 304 | ] 305 | }, 306 | "category": { 307 | "type": "string", 308 | "description": "Which category the notification belongs to. Uses Regex." 309 | } 310 | } 311 | } 312 | } 313 | }, 314 | "widgets": { 315 | "type": "array", 316 | "description": "Which order and which widgets to display. If the \"notifications\" widget isn't specified, it will be placed at the bottom.", 317 | "default": [ 318 | "inhibitors", 319 | "title", 320 | 321 | "notifications" 322 | ], 323 | "items": { 324 | "type": "string", 325 | // Sadly can't use regex and enums at the same time. Fix in the future? 326 | "pattern": "^[a-zA-Z0-9_-]{1,}(#[a-zA-Z0-9_-]{1,}){0,1}?$" 327 | } 328 | }, 329 | "widget-config": { 330 | "type": "object", 331 | "description": "Configure specific widget properties.", 332 | "additionalProperties": false, 333 | "patternProperties": { 334 | // New widgets go here 335 | "^title(#[a-zA-Z0-9_-]{1,}){0,1}?$": { 336 | // References the widget structure from "widgets" below 337 | "$ref": "#/widgets/title" 338 | }, 339 | 340 | "^label(#[a-zA-Z0-9_-]{1,}){0,1}?$": { 341 | "$ref": "#/widgets/label" 342 | }, 343 | "^mpris(#[a-zA-Z0-9_-]{1,}){0,1}?$": { 344 | "$ref": "#/widgets/mpris" 345 | }, 346 | "^buttons-grid(#[a-zA-Z0-9_-]{1,}){0,1}?$": { 347 | "$ref": "#/widgets/buttons-grid" 348 | }, 349 | "^menubar(#[a-zA-Z0-9_-]{1,}){0,1}?$": { 350 | "$ref": "#/widgets/menubar" 351 | }, 352 | "^volume(#[a-zA-Z0-9_-]{1,}){0,1}?$": { 353 | "$ref": "#/widgets/volume" 354 | }, 355 | "^backlight(#[a-zA-Z0-9_-]{1,}){0,1}?$": { 356 | "$ref": "#/widgets/backlight" 357 | }, 358 | "^inhibitors(#[a-zA-Z0-9_-]{1,}){0,1}?$": { 359 | // References the widget structure from "widgets" below 360 | "$ref": "#/widgets/inhibitors" 361 | } 362 | } 363 | } 364 | }, 365 | "widgets": { 366 | // New widgets go here 367 | "title": { 368 | "type": "object", 369 | "description": "Control Center Title Widget", 370 | "additionalProperties": false, 371 | "properties": { 372 | "text": { 373 | "type": "string", 374 | "description": "The title of the widget", 375 | "default": "Notifications" 376 | }, 377 | "clear-all-button": { 378 | "type": "boolean", 379 | "description": "Wether to display a \"Clear All\" button", 380 | "default": true 381 | }, 382 | "button-text": { 383 | "type": "string", 384 | "description": "\"Clear All\" button text", 385 | "default": "Clear All" 386 | } 387 | } 388 | }, 389 | "dnd": { 390 | "type": "object", 391 | "description": "Control Center Do Not Disturb Widget", 392 | "additionalProperties": false, 393 | "properties": { 394 | "text": { 395 | "type": "string", 396 | "description": "The title of the widget", 397 | "default": "Do Not Disturb" 398 | } 399 | } 400 | }, 401 | "label": { 402 | "type": "object", 403 | "description": "A generic widget that allows the user to add custom text", 404 | "additionalProperties": false, 405 | "properties": { 406 | "text": { 407 | "type": "string", 408 | "description": "The text content of the widget", 409 | "default": "Label Text" 410 | }, 411 | "max-lines": { 412 | "type": "integer", 413 | "description": "The maximum lines", 414 | "default": 5 415 | } 416 | } 417 | }, 418 | "mpris": { 419 | "type": "object", 420 | "description": "A widget that displays multiple music players", 421 | "additionalProperties": false, 422 | "properties": { 423 | "image-size": { 424 | "type": "integer", 425 | "description": "The size of the album art", 426 | "default": 96 427 | }, 428 | "image-radius": { 429 | "type": "integer", 430 | "description": "The border radius of the album art", 431 | "default": 12 432 | } 433 | } 434 | }, 435 | "buttons-grid": { 436 | "type": "object", 437 | "description": "A widget to add a grid of buttons that execute shell commands", 438 | "additionalProperties": false, 439 | "properties": { 440 | "actions": { 441 | "type": "array", 442 | "description": "A list of actions containing a label and a command", 443 | "items": { 444 | "type": "object", 445 | "properties": { 446 | "label": { 447 | "type": "string", 448 | "description": "Text to be displayed in button", 449 | "default": "label" 450 | }, 451 | "command": { 452 | "type": "string", 453 | "description": "Command to be executed on click", 454 | "default": "" 455 | } 456 | } 457 | } 458 | } 459 | } 460 | }, 461 | "menubar": { 462 | "type": "object", 463 | "description": "A bar that contains action-buttons and buttons to open a dropdown with action-buttons", 464 | "additionalProperties": false, 465 | "patternProperties": { 466 | "^menu(#[a-zA-Z0-9_-]{1,}){0,1}?$": { 467 | "type": "object", 468 | "description": "A button that opens a dropdown with action-buttons", 469 | "additionalProperties": false, 470 | "properties": { 471 | "label": { 472 | "type": "string", 473 | "description": "Text to be displayed in button", 474 | "default": "Menu" 475 | }, 476 | "position": { 477 | "type": "string", 478 | "description": "Horizontal position of the button in the bar", 479 | "default": "right", 480 | "enum": [ 481 | "right", 482 | "left" 483 | ] 484 | }, 485 | "actions": { 486 | "$ref": "#/widgets/buttons-grid/properties/actions" 487 | } 488 | } 489 | }, 490 | "^buttons(#[a-zA-Z0-9_-]{1,}){0,1}?$": { 491 | "type": "object", 492 | "description": "A list of action-buttons to be displayed in the topbar", 493 | "additionalProperties": false, 494 | "properties": { 495 | "position": { 496 | "type": "string", 497 | "description": "Horizontal position of the button in the bar", 498 | "default": "right", 499 | "enum": [ 500 | "right", 501 | "left" 502 | ] 503 | }, 504 | "actions": { 505 | "$ref": "#/widgets/buttons-grid/properties/actions" 506 | } 507 | } 508 | } 509 | } 510 | }, 511 | "volume": { 512 | "type": "object", 513 | "description": "Slider to control pulse volume", 514 | "additionalProperties": false, 515 | "properties": { 516 | "label": { 517 | "type": "string", 518 | "description": "Text displayed in front of the volume slider", 519 | "default": "Volume" 520 | } 521 | } 522 | }, 523 | "backlight": { 524 | "type": "object", 525 | "description": "Slider to control monitor brightness", 526 | "additionalProperties": false, 527 | "properties": { 528 | "label": { 529 | "type": "string", 530 | "description": "Text displayed in front of the backlight slider", 531 | "default": "Brightness" 532 | }, 533 | "device": { 534 | "type": "string", 535 | "description": "Name of monitor (find possible devices using `ls /sys/class/backlight` or `ls /sys/class/leds`)", 536 | "default": "intel_backlight" 537 | }, 538 | "subsystem": { 539 | "type": "string", 540 | "description": "Kernel subsystem for brightness control", 541 | "default": "backlight", 542 | "enum": [ 543 | "backlight", 544 | "leds" 545 | ] 546 | }, 547 | "min": { 548 | "type": "integer", 549 | "default": 0, 550 | "description": "Lowest possible value for brightness" 551 | } 552 | } 553 | }, 554 | "inhibitors": { 555 | "type": "object", 556 | "description": "Control Center Inhibitors Widget", 557 | "additionalProperties": false, 558 | "properties": { 559 | "text": { 560 | "type": "string", 561 | "description": "The title of the widget", 562 | "default": "Inhibitors" 563 | }, 564 | "clear-all-button": { 565 | "type": "boolean", 566 | "description": "Wether to display a \"Clear All\" button", 567 | "default": true 568 | }, 569 | "button-text": { 570 | "type": "string", 571 | "description": "\"Clear All\" button text", 572 | "default": "Clear All" 573 | } 574 | } 575 | } 576 | } 577 | } --------------------------------------------------------------------------------