update a lot of dotfiles and dirs

This commit is contained in:
João Dias
2024-07-24 20:17:01 -03:00
parent 84b6f1916d
commit c0476113b8
17 changed files with 1260 additions and 70 deletions
+2
View File
@@ -0,0 +1,2 @@
# ignore waybar mediaplayer
mediaplayer.py
+13
View File
@@ -0,0 +1,13 @@
general {
lock_cmd = echo "Locked Hyprland Session"
unlock_cmd = echo "Unlocked Hyprland Session"
ignore_dbus_inhibit = false
ignore_systemd_inhibit = false
}
listener {
timeout = 3600 # 1800 -> 30m | 3600 -> 1h | 7200 -> 2h
on-timeout = hyprlock
on-resume = notify-send "Welcome back to Hyprland, $USER!"
}
+11 -8
View File
@@ -7,7 +7,7 @@
# See https://wiki.hyprland.org/Configuring/Variables for more information on how to configure appearance # See https://wiki.hyprland.org/Configuring/Variables for more information on how to configure appearance
general { general {
gaps_in = 5 gaps_in = 4
gaps_out = 8 gaps_out = 8
border_size = 2 border_size = 2
@@ -34,10 +34,10 @@ decoration {
col.shadow = rgba(1a1a1aee) col.shadow = rgba(1a1a1aee)
blur { blur {
enabled = true enabled = false
size = 3 size = 3
passes = 1 passes = 1
vibrancy = 0.1696 vibrancy = 0.1696
} }
} }
@@ -45,13 +45,16 @@ animations {
enabled = true enabled = true
bezier = myBezier, 0.05, 0.9, 0.1, 1.05 bezier = myBezier, 0.05, 0.9, 0.1, 1.05
bezier = amazingBezier, 0.25, 0.59, 0.1, 1.05
animation = windows, 1, 5.5, myBezier animation = windows, 1, 5.5, amazingBezier, slide
animation = windowsOut, 1, 5, default, popin 80% animation = windowsOut, 1, 5, default, popin 70%
animation = layers, 1, 7, default, slide
animation = border, 1, 10, default animation = border, 1, 10, default
animation = borderangle, 1, 8, default animation = borderangle, 1, 8, default
animation = fade, 1, 3.5, default animation = fade, 1, 3.5, default
animation = workspaces, 1, 6, default animation = fadeLayers, 1, 7, amazingBezier
animation = workspaces, 1, 6, default, slidefade
} }
dwindle { dwindle {
+15 -6
View File
@@ -3,11 +3,20 @@
## AUTOSTART ## ## AUTOSTART ##
############### ###############
exec-once = /usr/lib/polkit-kde-authentication-agent-1 # exec kde auth agent if app asks for extra permissions exec-once = /usr/lib/polkit-kde-authentication-agent-1 # exec kde auth agent if app asks for sudo
exec-once = /bin/waybar exec-once = waybar
exec-once = /bin/swaync # Run notification center / daemon exec-once = swaync # Run notification center / daemon
exec-once = /bin/hyprpaper exec-once = hyprpaper
exec-once = hypridle # Idle daemon for Hyprland
# App example # Clipboard manager
# exec-once = /opt/discord/Discord --start-minimized exec-once = wl-paste --type text --watch cliphist store # Stores text
exec-once = wl-paste --type image --watch cliphist store # Stores images
# Apps
exec-once = /opt/discord/Discord --start-minimized
# Special
exec-once = /home/joaov/.local/share/scripts/fix-nautilus.sh
exec-once = /bin/systemctl enable --now bluetooth
+17 -7
View File
@@ -7,8 +7,8 @@
$mainMod = SUPER $mainMod = SUPER
$terminal = kitty $terminal = kitty
$fileManager = nautilus $fileManager = nautilus
$menu = wofi --show drun $menu = wofi -I -m -a -G -i
$screenshotDir = "/home/"+ $USER +"/Images/Screenshots" $screenshotDir = "$HOME/Imagens/Capturas"
input { input {
kb_layout = br kb_layout = br
@@ -26,19 +26,26 @@ input {
} }
} }
# https://wiki.hyprland.org/Configuring/Variables/#gestures
gestures { gestures {
workspace_swipe = true workspace_swipe = true
} }
# Example per-device config
# See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more
device {
name = epic-mouse-v1
sensitivity = -0.5
}
# Main binds, see https://wiki.hyprland.org/Configuring/Binds/ for more # Main binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
bind = $mainMod, K, exec, $terminal bind = $mainMod, K, exec, $terminal
bind = $mainMod, Q, killactive, bind = $mainMod, Q, killactive
bind = $mainMod, M, exit,
bind = $mainMod, E, exec, $fileManager bind = $mainMod, E, exec, $fileManager
bind = $mainMod, V, togglefloating, bind = $mainMod, F, togglefloating
bind = $mainMod, SPACE, exec, $menu bind = $mainMod, SPACE, exec, $menu --show drun -p "Search for Programs..."
bind = $mainMod, P, pseudo, # dwindle bind = $mainMod, P, pseudo, # dwindle
bind = $mainMod, J, togglesplit, # dwindle bind = $mainMod, J, togglesplit # dwindle
bind = $mainMod ALT, ENTER, fullscreen bind = $mainMod ALT, ENTER, fullscreen
# Function keys # Function keys
@@ -55,6 +62,9 @@ bind = , code:233, exec, brightnessctl s +5% # Increase monitor brightness
bind = , Print, exec, hyprshot -m region --output-folder $screenshotDir bind = , Print, exec, hyprshot -m region --output-folder $screenshotDir
bind = $mainMod, Print, exec, hyprshot -m output --output-folder $screenshotDir bind = $mainMod, Print, exec, hyprshot -m output --output-folder $screenshotDir
# Open wofi clipboard
bind = $mainMod, V, exec, cliphist list | $menu -p "Search through clipboard..." -S dmenu | cliphist decode | wl-copy
# Reloading Components # Reloading Components
# Waybar # Waybar
bind = $mainMod, F7, exec, pkill waybar && waybar bind = $mainMod, F7, exec, pkill waybar && waybar
+2 -1
View File
@@ -5,5 +5,6 @@
env = XCURSOR_SIZE, 24 env = XCURSOR_SIZE, 24
env = HYPRCURSOR_SIZE, 24 env = HYPRCURSOR_SIZE, 24
env = QT_QPA_PLATFORM,wayland
env = QT_QPA_PLATFORMTHEME,qt6ct env = QT_QPA_PLATFORMTHEME,qt6ct
env = ADW_DISABLE_PORTAL,1 # Allows dark theme in adwaita applications env = ADW_DISABLE_PORTAL,1
-4
View File
@@ -1,4 +0,0 @@
general {
# Looks empty... Maybe I should take some time to configure that.
}
-8
View File
@@ -1,8 +0,0 @@
unload unused
splash = true
# preload = ~/Imagens/Wallpapers/apple-dark.jpg
# wallpaper = , ~/Imagens/Wallpapers/apple-dark.jpg # use ´contain:´ before wallpaper to preserve original size
+5
View File
@@ -5,4 +5,9 @@
# See https://wiki.hyprland.org/Configuring/Window-Rules/ and https://wiki.hyprland.org/Configuring/Workspace-Rules/ for information on how to configure this # See https://wiki.hyprland.org/Configuring/Window-Rules/ and https://wiki.hyprland.org/Configuring/Workspace-Rules/ for information on how to configure this
# Floating windows
windowrulev2 = float, class:moe.launcher.*
windowrulev2 = float, title:^(Clapper)$
windowrulev2 = float, title:^(Resources)$
windowrulev2 = suppressevent maximize, class:.* windowrulev2 = suppressevent maximize, class:.*
+75 -3
View File
@@ -1,7 +1,79 @@
source = $HOME/.config/hypr/mocha.conf
# Hyprland lockscreen config file $accent = $mauve
# Currently not working $accentAlpha = $mauveAlpha
$font = JetBrainsMono Nerd Font
# GENERAL
general { general {
# hide_cursor = true disable_loading_bar = true
hide_cursor = true
}
# BACKGROUND
background {
monitor =
path = ~/.config/background
blur_passes = 0
color = $base
}
# TIME
label {
monitor =
text = cmd[update:30000] echo "$(date +"%R")"
color = $text
font_size = 90
font_family = $font
position = -30, 0
halign = right
valign = top
}
# DATE
label {
monitor =
text = cmd[update:43200000] echo "$(date +"%A, %d %B %Y")"
color = $text
font_size = 25
font_family = $font
position = -30, -150
halign = right
valign = top
}
# USER AVATAR
image {
monitor =
path = ~/.face
size = 100
border_color = $accent
position = 0, 75
halign = center
valign = center
}
# INPUT FIELD
input-field {
monitor =
size = 300, 60
outline_thickness = 4
dots_size = 0.2
dots_spacing = 0.2
dots_center = true
outer_color = $accent
inner_color = $surface0
font_color = $text
fade_on_empty = false
placeholder_text = <span foreground="##cad3f5"><i>󰌾 Logged in as </i><span foreground="##b7bdf8">$USER</span></span>
hide_input = false
check_color = $accent
fail_color = $red
fail_text = <i>$FAIL <b>($ATTEMPTS)</b></i>
capslock_color = $yellow
position = 0, -35
halign = center
valign = center
} }
+4
View File
@@ -0,0 +1,4 @@
splash = false
preload = ~/Imagens/Wallpapers/linux-girl.png
wallpaper = , ~/Imagens/Wallpapers/linux-girl.png # use ´contain:´ before wallpaper to preserve original size
+100
View File
@@ -0,0 +1,100 @@
{
"$schema": "/etc/xdg/swaync/configSchema.json",
"positionX": "right",
"positionY": "top",
"layer": "overlay",
"control-center-layer": "overlay",
"layer-shell": true,
"cssPriority": "application",
"control-center-margin-top": 0,
"control-center-margin-bottom": 0,
"control-center-margin-right": 0,
"control-center-margin-left": 0,
"notification-2fa-action": true,
"notification-inline-replies": false,
"notification-icon-size": 64,
"notification-body-image-height": 100,
"notification-body-image-width": 200,
"timeout": 5,
"timeout-low": 3,
"timeout-critical": 0,
"fit-to-screen": true,
"relative-timestamps": true,
"control-center-width": 500,
"control-center-height": 600,
"notification-window-width": 500,
"keyboard-shortcuts": true,
"image-visibility": "when-available",
"transition-time": 120,
"hide-on-clear": false,
"hide-on-action": true,
"script-fail-notify": true,
"scripts": {
"example-script": {
"exec": "echo 'Do something...'",
"urgency": "Normal"
},
"example-action-script": {
"exec": "echo 'Do something actionable!'",
"urgency": "Normal",
"run-on": "action"
}
},
"notification-visibility": {
"spotify": {
"state": "muted",
"urgency": "Low",
"app-name": "Spotify"
}
},
"widgets": [
"title",
"volume",
"backlight",
"mpris",
"dnd",
"inhibitors",
"notifications"
],
"widget-config": {
"inhibitors": {
"text": "Inhibitors",
"button-text": "Clear All",
"clear-all-button": true
},
"title": {
"text": "Notifications",
"clear-all-button": true,
"button-text": "Clear All"
},
"dnd": {
"text": "Do Not Disturb"
},
"label": {
"max-lines": 5,
"text": "Label Text"
},
"mpris": {
"image-size": 96,
"image-radius": 12,
"blur": false
},
"volume": {
"label": ""
},
"backlight": {
"label": ""
},
"buttons-grid": {
"actions": [
{
"label": "直",
"type": "toggle",
"active": true,
"command": "sh -c '[[ $SWAYNC_TOGGLE_STATE == true ]] && nmcli radio wifi on || nmcli radio wifi off'",
"update_command": "sh -c '[[ $(nmcli radio wifi) == \"enabled\" ]] && echo true || echo false'"
}
]
}
}
}
+622
View File
@@ -0,0 +1,622 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "SwayNotificationCenter JSON schema",
"type": "object",
"additionalProperties": false,
"properties": {
"$schema": {
"type": "string",
"description": "Pointer to the schema against which this document should be validated."
},
"positionX": {
"type": "string",
"description": "Horizontal position of control center and notification window",
"default": "right",
"enum": ["right", "left", "center"]
},
"layer": {
"type": "string",
"description": "Layer of notification window",
"default": "overlay",
"enum": ["background", "bottom", "top", "overlay"]
},
"layer-shell": {
"type": "boolean",
"description": "Wether or not the windows should be opened as layer-shell surfaces. Note: Requires swaync restart to apply",
"default": true
},
"cssPriority": {
"type": "string",
"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",
"default": "application",
"enum": ["application", "user"]
},
"positionY": {
"type": "string",
"description": "Vertical position of control center and notification window",
"default": "top",
"enum": ["top", "center", "bottom"]
},
"control-center-positionX": {
"type": "string",
"description": "Optional: Horizontal position of the control center. Supersedes positionX if not set to `none`",
"default": "none",
"enum": ["right", "left", "center", "none"]
},
"control-center-positionY": {
"type": "string",
"description": "Optional: Vertical position of the control center. Supersedes positionY if not set to `none`",
"default": "none",
"enum": ["top", "bottom", "none"]
},
"control-center-margin-top": {
"type": "integer",
"description": "The margin (in pixels) at the top of the control center. 0 to disable",
"default": 0
},
"control-center-margin-bottom": {
"type": "integer",
"description": "The margin (in pixels) at the bottom of the control center. 0 to disable",
"default": 0
},
"control-center-margin-right": {
"type": "integer",
"description": "The margin (in pixels) at the right of the control center. 0 to disable",
"default": 0
},
"control-center-margin-left": {
"type": "integer",
"description": "The margin (in pixels) at the left of the control center. 0 to disable",
"default": 0
},
"control-center-layer": {
"type": "string",
"description": "Layer of control center window",
"default": "none",
"enum": ["background", "bottom", "top", "overlay", "none"]
},
"control-center-exclusive-zone": {
"type": "boolean",
"description": "Whether or not the control center should follow the compositors exclusive zones. An example would be setting it to \"false\" to cover your panel/dock.",
"default": true
},
"notification-2fa-action": {
"type": "boolean",
"description": "If each notification should display a 'COPY \"1234\"' action",
"default": true
},
"notification-inline-replies": {
"type": "boolean",
"description": "If notifications should display a text field to reply if the sender requests it. NOTE: Replying in popup notifications is only available if the compositor supports GTK Layer-Shell ON_DEMAND keyboard interactivity.",
"default": false
},
"notification-icon-size": {
"type": "integer",
"description": "The notification icon size (in pixels). The app icon size is 1/3",
"default": 64,
"minimum": 16
},
"notification-body-image-height": {
"type": "integer",
"description": "The notification body image height (in pixels)",
"default": 100,
"minimum": 100
},
"notification-body-image-width": {
"type": "integer",
"description": "The notification body image width (in pixels)",
"default": 200,
"minimum": 200
},
"timeout": {
"type": "integer",
"description": "The notification timeout for notifications with normal priority",
"default": 10
},
"timeout-low": {
"type": "integer",
"description": "The notification timeout for notifications with low priority",
"default": 5
},
"timeout-critical": {
"type": "integer",
"description": "The notification timeout for notifications with critical priority. 0 to disable",
"default": 0
},
"notification-window-width": {
"type": "integer",
"description": "Width of the notification in pixels",
"default": 500
},
"fit-to-screen": {
"type": "boolean",
"description": "If the control center should expand to both edges of the screen",
"default": true
},
"relative-timestamps": {
"type": "boolean",
"description": "Display notification timestamps relative to now e.g. \"26 minutes ago\". If false, a local iso8601-formatted absolute timestamp is displayed.",
"default": true
},
"control-center-height": {
"type": "integer",
"description": "Height of the control center in pixels. Ignored when 'fit-to-screen' is set to 'true'",
"default": 600,
"minimum": 300
},
"control-center-width": {
"type": "integer",
"description": "Width of the control center in pixels",
"default": 500,
"minimum": 300
},
"keyboard-shortcuts": {
"type": "boolean",
"description": "If control center should use keyboard shortcuts",
"default": true
},
"image-visibility": {
"type": "string",
"description": "The notification image visibility when no icon is available.",
"default": "when-available",
"enum": ["always", "when-available", "never"]
},
"transition-time": {
"type": "integer",
"description": "The notification animation duration. 0 to disable",
"default": 200
},
"hide-on-clear": {
"type": "boolean",
"description": "Hides the control center after pressing \"Clear All\"",
"default": false
},
"hide-on-action": {
"type": "boolean",
"description": "Hides the control center when clicking on notification action",
"default": true
},
"script-fail-notify": {
"type": "boolean",
"description": "Sends a notification if a script fails to run",
"default": true
},
"scripts": {
"type": "object",
"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.",
"minProperties": 1,
"additionalProperties": false,
"patternProperties": {
"^.{1,}$": {
"type": "object",
"description": "Your script object.",
"required": ["exec"],
"minProperties": 2,
"additionalProperties": false,
"properties": {
"exec": {
"type": "string",
"description": "The script to run. Can also run regular shell commands."
},
"app-name": {
"type": "string",
"description": "The app-name. Uses Regex."
},
"desktop-entry": {
"type": "string",
"description": "The desktop-entry. Uses Regex."
},
"summary": {
"type": "string",
"description": "The summary of the notification. Uses Regex."
},
"body": {
"type": "string",
"description": "The body of the notification. Uses Regex."
},
"urgency": {
"type": "string",
"description": "The urgency of the notification.",
"default": "Normal",
"enum": ["Low", "Normal", "Critical"]
},
"category": {
"type": "string",
"description": "Which category the notification belongs to. Uses Regex."
},
"run-on": {
"type": "string",
"description": "Whether to run the script on an action being activated, or when the notification is received.",
"enum": ["action", "receive"],
"default": "receive"
}
}
}
}
},
"notification-visibility": {
"type": "object",
"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.",
"minProperties": 1,
"additionalProperties": false,
"patternProperties": {
"^.{1,}$": {
"type": "object",
"description": "Your script object.",
"required": ["state"],
"minProperties": 2,
"additionalProperties": false,
"properties": {
"state": {
"type": "string",
"description": "The notification visibility state.",
"default": "enabled",
"enum": ["ignored", "muted", "enabled", "transient"]
},
"app-name": {
"type": "string",
"description": "The app-name. Uses Regex."
},
"desktop-entry": {
"type": "string",
"description": "The desktop-entry. Uses Regex."
},
"summary": {
"type": "string",
"description": "The summary of the notification. Uses Regex."
},
"body": {
"type": "string",
"description": "The body of the notification. Uses Regex."
},
"urgency": {
"type": "string",
"description": "The urgency of the notification.",
"default": "Normal",
"enum": ["Low", "Normal", "Critical"]
},
"override-urgency": {
"type": "string",
"description": "The new urgency of the notification (optional)",
"default": "unset",
"enum": ["unset", "low", "normal", "critical"]
},
"category": {
"type": "string",
"description": "Which category the notification belongs to. Uses Regex."
}
}
}
}
},
"widgets": {
"type": "array",
"description": "Which order and which widgets to display. If the \"notifications\" widget isn't specified, it will be placed at the bottom.",
"default": ["inhibitors", "title", "dnd", "notifications"],
"items": {
"type": "string",
"$comment": "Sadly can't use regex and enums at the same time. Fix in the future?",
"pattern": "^[a-zA-Z0-9_-]{1,}(#[a-zA-Z0-9_-]{1,}){0,1}?$"
}
},
"widget-config": {
"type": "object",
"description": "Configure specific widget properties.",
"additionalProperties": false,
"$comment": "New widgets go here in \"patternProperties\" ↓",
"patternProperties": {
"^title(#[a-zA-Z0-9_-]{1,}){0,1}?$": {
"$comment": "References the widget structure from \"widgets\" below",
"$ref": "#/widgets/title"
},
"^dnd(#[a-zA-Z0-9_-]{1,}){0,1}?$": {
"$ref": "#/widgets/dnd"
},
"^label(#[a-zA-Z0-9_-]{1,}){0,1}?$": {
"$ref": "#/widgets/label"
},
"^mpris(#[a-zA-Z0-9_-]{1,}){0,1}?$": {
"$ref": "#/widgets/mpris"
},
"^buttons-grid(#[a-zA-Z0-9_-]{1,}){0,1}?$": {
"$ref": "#/widgets/buttons-grid"
},
"^menubar(#[a-zA-Z0-9_-]{1,}){0,1}?$": {
"$ref": "#/widgets/menubar"
},
"^volume(#[a-zA-Z0-9_-]{1,}){0,1}?$": {
"$ref": "#/widgets/volume"
},
"^backlight(#[a-zA-Z0-9_-]{1,}){0,1}?$": {
"$ref": "#/widgets/backlight"
},
"^inhibitors(#[a-zA-Z0-9_-]{1,}){0,1}?$": {
"$comment": "References the widget structure from \"widgets\" below",
"$ref": "#/widgets/inhibitors"
}
}
}
},
"widgets": {
"$comment": "New widgets go here",
"title": {
"type": "object",
"description": "Control Center Title Widget",
"additionalProperties": false,
"properties": {
"text": {
"type": "string",
"description": "The title of the widget",
"default": "Notifications"
},
"clear-all-button": {
"type": "boolean",
"description": "Wether to display a \"Clear All\" button",
"default": true
},
"button-text": {
"type": "string",
"description": "\"Clear All\" button text",
"default": "Clear All"
}
}
},
"dnd": {
"type": "object",
"description": "Control Center Do Not Disturb Widget",
"additionalProperties": false,
"properties": {
"text": {
"type": "string",
"description": "The title of the widget",
"default": "Do Not Disturb"
}
}
},
"label": {
"type": "object",
"description": "A generic widget that allows the user to add custom text",
"additionalProperties": false,
"properties": {
"text": {
"type": "string",
"description": "The text content of the widget",
"default": "Label Text"
},
"max-lines": {
"type": "integer",
"description": "The maximum lines",
"default": 5
}
}
},
"mpris": {
"type": "object",
"description": "A widget that displays multiple music players",
"additionalProperties": false,
"properties": {
"image-size": {
"type": "integer",
"description": "The size of the album art",
"default": 96
},
"image-radius": {
"type": "integer",
"description": "The border radius of the album art. Will be overriden by setting the border-radius in the style.css for the \".widget-mpris-album-art\" class",
"default": 12
},
"blur": {
"type": "boolean",
"description": "Appy the artwork as the MPRIS background and blur it",
"default": true
}
}
},
"buttons-grid": {
"type": "object",
"description": "A widget to add a grid of buttons that execute shell commands",
"additionalProperties": false,
"properties": {
"actions": {
"type": "array",
"description": "A list of actions containing a label and a command",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string",
"description": "Text to be displayed in button",
"default": "label"
},
"command": {
"type": "string",
"description": "Command to be executed on click",
"default": ""
},
"type": {
"type": "string",
"description": "Type of the button; toggle buttons receive the .active css class and an env variable 'SWAYNC_TOGGLE_STATE' is set. See example in the default config.json",
"default": "normal",
"enum": ["normal", "toggle"]
},
"update-command": {
"type": "string",
"description": "Command to be executed on visibility change of cc to update the active state of the toggle button (should echo true or false)",
"default": ""
},
"active": {
"type": "boolean",
"description": "Wether the toggle button is active as default or not",
"default": false
}
}
}
}
}
},
"menubar": {
"type": "object",
"description": "A bar that contains action-buttons and buttons to open a dropdown with action-buttons",
"additionalProperties": false,
"patternProperties": {
"^menu(#[a-zA-Z0-9_-]{1,}){0,1}?$": {
"type": "object",
"description": "A button that opens a dropdown with action-buttons",
"additionalProperties": false,
"properties": {
"label": {
"type": "string",
"description": "Text to be displayed in button",
"default": "Menu"
},
"position": {
"type": "string",
"description": "Horizontal position of the button in the bar",
"default": "right",
"enum": ["right", "left"]
},
"animation-type": {
"type": "string",
"default": "slide_down",
"description": "Animation type for menu",
"enum": ["slide_down", "slide_up", "none"]
},
"animation-duration":{
"type": "integer",
"default": 250,
"description": "Duration of animation in milliseconds"
},
"actions": {
"$ref" : "#/widgets/buttons-grid/properties/actions"
}
}
},
"^buttons(#[a-zA-Z0-9_-]{1,}){0,1}?$": {
"type": "object",
"description": "A list of action-buttons to be displayed in the topbar",
"additionalProperties": false,
"properties": {
"position": {
"type": "string",
"description": "Horizontal position of the button in the bar",
"default": "right",
"enum": ["right", "left"]
},
"actions": {
"$ref" : "#/widgets/buttons-grid/properties/actions"
}
}
}
}
},
"volume": {
"type": "object",
"description": "Slider to control pulse volume",
"additionalProperties": false,
"properties": {
"label": {
"type": "string",
"description": "Text displayed in front of the volume slider",
"default": "Volume"
},
"show-per-app": {
"type": "boolean",
"default": false,
"description": "Show per app volume control"
},
"show-per-app-icon": {
"type": "boolean",
"default": true,
"description": "Show application icon in per app control"
},
"show-per-app-label": {
"type": "boolean",
"default": false,
"description": "Show application name in per app control"
},
"empty-list-label": {
"type": "string",
"default": "No active sink input",
"description": "Text displayed when there are not active sink inputs"
},
"expand-button-label": {
"type": "string",
"default": "⇧",
"description": "Label displayed on button to show per app volume control"
},
"collapse-button-label": {
"type": "string",
"default": "⇩",
"description": "Label displayed on button to hide per app volume control"
},
"icon-size": {
"type": "integer",
"default": 24,
"description": "Size of the application icon in per app volume control"
},
"animation-type": {
"type": "string",
"default": "slide_down",
"description": "Animation type for menu",
"enum": ["slide_down", "slide_up", "none"]
},
"animation-duration":{
"type": "integer",
"default": 250,
"description": "Duration of animation in milliseconds"
}
}
},
"backlight": {
"type": "object",
"description": "Slider to control monitor brightness",
"additionalProperties": false,
"properties": {
"label": {
"type": "string",
"description": "Text displayed in front of the backlight slider",
"default": "Brightness"
},
"device": {
"type": "string",
"description": "Name of monitor (find possible devices using `ls /sys/class/backlight` or `ls /sys/class/leds`)",
"default": "intel_backlight"
},
"subsystem": {
"type": "string",
"description": "Kernel subsystem for brightness control",
"default": "backlight",
"enum": ["backlight", "leds"]
},
"min": {
"type": "integer",
"default": 0,
"description": "Lowest possible value for brightness"
}
}
},
"inhibitors": {
"type": "object",
"description": "Control Center Inhibitors Widget",
"additionalProperties": false,
"properties": {
"text": {
"type": "string",
"description": "The title of the widget",
"default": "Inhibitors"
},
"clear-all-button": {
"type": "boolean",
"description": "Wether to display a \"Clear All\" button",
"default": true
},
"button-text": {
"type": "string",
"description": "\"Clear All\" button text",
"default": "Clear All"
}
}
}
}
}
+355
View File
@@ -0,0 +1,355 @@
* {
all: unset;
font-size: 14px;
font-family: "0xProto Nerd Font Regular";
transition: 200ms;
}
trough highlight {
background: #cdd6f4;
}
scale trough {
margin: 0rem 1rem;
background-color: #313244;
min-height: 8px;
min-width: 70px;
}
slider {
background-color: #89b4fa;
border-radius: 50%;
}
.floating-notifications.background .notification-row .notification-background {
box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.8), inset 0 0 0 1px #313244;
border-radius: 12.6px;
margin: 18px;
background-color: #1e1e2e;
color: #cdd6f4;
padding: 0;
}
.floating-notifications.background .notification-row .notification-background .notification {
padding: 7px;
border-radius: 12.6px;
}
.floating-notifications.background .notification-row .notification-background .notification.critical {
box-shadow: inset 0 0 7px 0 #f38ba8;
}
.floating-notifications.background .notification-row .notification-background .notification .notification-content {
margin: 7px;
}
.floating-notifications.background .notification-row .notification-background .notification .notification-content .summary {
color: #cdd6f4;
}
.floating-notifications.background .notification-row .notification-background .notification .notification-content .time {
color: #a6adc8;
}
.floating-notifications.background .notification-row .notification-background .notification .notification-content .body {
color: #cdd6f4;
}
.floating-notifications.background .notification-row .notification-background .notification > *:last-child > * {
min-height: 3.4em;
}
.floating-notifications.background .notification-row .notification-background .notification > *:last-child > * .notification-action {
border-radius: 7px;
color: #cdd6f4;
background-color: #313244;
box-shadow: inset 0 0 0 1px #45475a;
margin: 7px;
}
.floating-notifications.background .notification-row .notification-background .notification > *:last-child > * .notification-action:hover {
box-shadow: inset 0 0 0 1px #45475a;
background-color: #313244;
color: #cdd6f4;
}
.floating-notifications.background .notification-row .notification-background .notification > *:last-child > * .notification-action:active {
box-shadow: inset 0 0 0 1px #45475a;
background-color: #74c7ec;
color: #cdd6f4;
}
.floating-notifications.background .notification-row .notification-background .close-button {
margin: 7px;
padding: 2px;
border-radius: 6.3px;
color: #1e1e2e;
background-color: #f38ba8;
}
.floating-notifications.background .notification-row .notification-background .close-button:hover {
background-color: #eba0ac;
color: #1e1e2e;
}
.floating-notifications.background .notification-row .notification-background .close-button:active {
background-color: #f38ba8;
color: #1e1e2e;
}
.control-center {
box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.8), inset 0 0 0 1px #313244;
border-radius: 12.6px;
margin: 18px;
background-color: #1e1e2e;
color: #cdd6f4;
padding: 14px;
}
.control-center .widget-title > label {
color: #cdd6f4;
font-size: 1.3em;
}
.control-center .widget-title button {
border-radius: 7px;
color: #cdd6f4;
background-color: #313244;
box-shadow: inset 0 0 0 1px #45475a;
padding: 8px;
}
.control-center .widget-title button:hover {
box-shadow: inset 0 0 0 1px #45475a;
background-color: #585b70;
color: #cdd6f4;
}
.control-center .widget-title button:active {
box-shadow: inset 0 0 0 1px #45475a;
background-color: #74c7ec;
color: #1e1e2e;
}
.control-center .notification-row .notification-background {
border-radius: 7px;
color: #cdd6f4;
background-color: #313244;
box-shadow: inset 0 0 0 1px #45475a;
margin-top: 14px;
}
.control-center .notification-row .notification-background .notification {
padding: 7px;
border-radius: 7px;
}
.control-center .notification-row .notification-background .notification.critical {
box-shadow: inset 0 0 7px 0 #f38ba8;
}
.control-center .notification-row .notification-background .notification .notification-content {
margin: 7px;
}
.control-center .notification-row .notification-background .notification .notification-content .summary {
color: #cdd6f4;
}
.control-center .notification-row .notification-background .notification .notification-content .time {
color: #a6adc8;
}
.control-center .notification-row .notification-background .notification .notification-content .body {
color: #cdd6f4;
}
.control-center .notification-row .notification-background .notification > *:last-child > * {
min-height: 3.4em;
}
.control-center .notification-row .notification-background .notification > *:last-child > * .notification-action {
border-radius: 7px;
color: #cdd6f4;
background-color: #11111b;
box-shadow: inset 0 0 0 1px #45475a;
margin: 7px;
}
.control-center .notification-row .notification-background .notification > *:last-child > * .notification-action:hover {
box-shadow: inset 0 0 0 1px #45475a;
background-color: #313244;
color: #cdd6f4;
}
.control-center .notification-row .notification-background .notification > *:last-child > * .notification-action:active {
box-shadow: inset 0 0 0 1px #45475a;
background-color: #74c7ec;
color: #cdd6f4;
}
.control-center .notification-row .notification-background .close-button {
margin: 7px;
padding: 2px;
border-radius: 6.3px;
color: #1e1e2e;
background-color: #eba0ac;
}
.close-button {
border-radius: 6.3px;
}
.control-center .notification-row .notification-background .close-button:hover {
background-color: #f38ba8;
color: #1e1e2e;
}
.control-center .notification-row .notification-background .close-button:active {
background-color: #f38ba8;
color: #1e1e2e;
}
.control-center .notification-row .notification-background:hover {
box-shadow: inset 0 0 0 1px #45475a;
background-color: #7f849c;
color: #cdd6f4;
}
.control-center .notification-row .notification-background:active {
box-shadow: inset 0 0 0 1px #45475a;
background-color: #74c7ec;
color: #cdd6f4;
}
.notification.critical progress {
background-color: #f38ba8;
}
.notification.low progress,
.notification.normal progress {
background-color: #89b4fa;
}
.control-center-dnd {
margin-top: 5px;
border-radius: 8px;
background: #313244;
border: 1px solid #45475a;
box-shadow: none;
}
.control-center-dnd:checked {
background: #313244;
}
.control-center-dnd slider {
background: #45475a;
border-radius: 8px;
}
.widget-dnd {
margin: 0px;
font-size: 1.1rem;
}
.widget-dnd > switch {
font-size: initial;
border-radius: 8px;
background: #313244;
border: 1px solid #45475a;
box-shadow: none;
}
.widget-dnd > switch:checked {
background: #313244;
}
.widget-dnd > switch slider {
background: #45475a;
border-radius: 8px;
border: 1px solid #6c7086;
}
.widget-mpris {
margin-top: 16px;
border-radius: 16px;
padding-bottom: 0;
}
.widget-mpris .widget-mpris-player {
padding: 16px;
background: #45475a;
box-shadow: none;
border: none;
}
.widget-mpris .widget-mpris-title {
font-size: 1.2rem;
font-weight: 600;
text-shadow: 1px 1px 2px black;
}
.widget-mpris .widget-mpris-subtitle {
font-size: 0.8rem;
text-shadow: 1px 1px 2px black;
}
.widget-menubar > box > .menu-button-bar > button > label {
font-size: 3rem;
padding: 0.5rem 2rem;
}
.widget-menubar > box > .menu-button-bar > :last-child {
color: #f38ba8;
}
.power-buttons button:hover,
.powermode-buttons button:hover,
.screenshot-buttons button:hover {
background: #313244;
}
.control-center .widget-label > label {
color: #cdd6f4;
font-size: 2rem;
}
.widget-buttons-grid {
padding-top: 1rem;
}
.widget-buttons-grid > flowbox > flowboxchild > button label {
font-size: 2.5rem;
}
.widget-volume {
padding-top: 1rem;
}
.widget-volume label {
font-size: 1.5rem;
color: #74c7ec;
}
.widget-volume trough highlight {
background: #74c7ec;
}
.widget-backlight trough highlight {
background: #f9e2af;
}
.widget-backlight label {
font-size: 1.5rem;
color: #f9e2af;
}
.widget-backlight .KB {
padding-bottom: 1rem;
}
.image {
padding-right: 0.5rem;
border-radius: 16px;
}
+17 -17
View File
@@ -8,23 +8,22 @@
// Choose the order of the modules // Choose the order of the modules
"modules-left": [ "modules-left": [
"hyprland/workspaces", "hyprland/workspaces",
"hyprland/window",
"custom/media" "custom/media"
], ],
"modules-center": [ "modules-center": [
"clock" "hyprland/window",
"clock"
], ],
"modules-right": [ "modules-right": [
"tray", "tray",
"backlight", "pulseaudio",
"pulseaudio", "custom/notifications"
"custom/notifications"
], ],
// Modules configuration // Modules configuration
"hyprland/workspaces": { "hyprland/workspaces": {
"disable-scroll": false, "disable-scroll": false,
"all-outputs": true, "all-outputs": true,
"warp-on-scroll": true, "warp-on-scroll": false,
"format": "{icon}", "format": "{icon}",
"format-icons": { "format-icons": {
"urgent": "", "urgent": "",
@@ -33,14 +32,14 @@
} }
}, },
"bluetooth": { "bluetooth": {
"format": " {status}", "format": " {status}",
"format-connected": " {device_alias}", "format-connected": " {device_alias}",
"format-connected-battery": " {device_alias} {device_battery_percentage}%", "format-connected-battery": " {device_alias} {device_battery_percentage}%",
// "format-device-preference": [ "device1", "device2" ], // preference list deciding the displayed device // "format-device-preference": [ "device1", "device2" ], // preference list deciding the displayed device
"tooltip-format": "{controller_alias}\t{controller_address}\n\n{num_connections} connected", "tooltip-format": "{controller_alias}\t{controller_address}\n\n{num_connections} connected",
"tooltip-format-connected": "{controller_alias}\t{controller_address}\n\n{num_connections} connected\n\n{device_enumerate}", "tooltip-format-connected": "{controller_alias}\t{controller_address}\n\n{num_connections} connected\n\n{device_enumerate}",
"tooltip-format-enumerate-connected": "{device_alias}\t{device_address}", "tooltip-format-enumerate-connected": "{device_alias}\t{device_address}",
"tooltip-format-enumerate-connected-battery": "{device_alias}\t{device_address}\t{device_battery_percentage}%" "tooltip-format-enumerate-connected-battery": "{device_alias}\t{device_address}\t{device_battery_percentage}%"
}, },
"keyboard-state": { "keyboard-state": {
"numlock": true, "numlock": true,
@@ -53,10 +52,11 @@
}, },
"hyprland/window": { "hyprland/window": {
"format": "{icon} {count}", "format": "{icon} {count}",
"show-empty": false, "show-empty": true,
"max-length": 200,
"separate-outputs": true,
"format-icons": ["", ""], "format-icons": ["", ""],
"tooltip": true, "escape": true
"tooltip-format": "{app}: {title}"
}, },
"custom/notifications": { "custom/notifications": {
"tooltip": false, "tooltip": false,
+1 -1
View File
@@ -3,7 +3,7 @@
window { window {
/* `otf-font-awesome` is required to be installed for icons */ /* `otf-font-awesome` is required to be installed for icons */
font-family: "0xProto Nerd Font Regular", sans-serif, "Font Awesome 5"; font-family: "0xProto Nerd Font Regular", "Font Awesome", sans-serif;
font-size: 12px; font-size: 12px;
border-radius: 10px; border-radius: 10px;
color: @text; color: @text;
+21 -15
View File
@@ -11,48 +11,54 @@
} }
#outer-box { #outer-box {
border: 4px solid #1b1b26; border: 3px solid #1b1b26;
border-radius: 12px; border-radius: 12px;
} }
#window { #window {
background-color: var(--base); background-color: #1e1e2e;
border-radius: 10px; border-radius: 12px;
margin-top: 100px;
padding: 6px;
} }
#text { #text {
font-family: system-ui, sans-serif; font-family: system-ui, sans-serif;
transition: 50ms ease-in;
margin-left: 10px;
} }
#text:selected { #text:selected {
color: var(--crust); color: lightgray;
} }
#input { #input {
border-radius: 10px; border: 2px solid darkgray;
border-radius: 10px;
margin: 4px; margin: 4px;
border: 2px solid #11111b; background-color: #11111b;
background-color: var(--base); box-shadow: none;
}
#input:selected {
background: white;
} }
#scroll { #scroll {
border-radius: 10px; border-bottom: 1px solid #1b1b26;
border-radius: 6px 6px;
} }
#entry { #entry {
padding: 2px 4px; padding: 0 16px;
margin: 0px 6px; margin: 0px 6px;
padding-top: 4px; padding-top: 6px;
padding-bottom: 4px; padding-bottom: 4px;
transition: 50ms ease-in; transition: 80ms ease-in;
font-size: 1em; font-size: 1em;
font-weight: 500; font-weight: 600;
border-radius: 12px;
} }
#entry:selected { #entry:selected {
background-color: #38384a; background-color: #38384a;
border-radius: 6px;
outline: none; outline: none;
} }