From a3c9ccbf6f63861c9e37056509819ac83dcd5dfb Mon Sep 17 00:00:00 2001 From: arindy Date: Tue, 17 Feb 2026 22:18:10 +0100 Subject: [PATCH] Introduce Serpensortia theme, enhance Hyprland scripts, and improve configuration modularity --- dotfiles/.config/dunst/dunstrc | 387 ++++++++++++++++++ dotfiles/.config/hypr/conf/input.conf | 2 +- dotfiles/.config/hypr/shared.conf | 2 +- .../.config/qt6ct/colors/Serpensortia.conf | 4 + dotfiles/.config/qt6ct/qss/Serpensortia.qss | 115 ++++++ dotfiles/.config/starship.toml | 159 +++++++ dotfiles/.local/bin/volume | 8 +- .../.themes/Serpensortia/gtk-3.0/base.css | 25 ++ .../.themes/Serpensortia/gtk-3.0/buttons.css | 36 ++ .../.themes/Serpensortia/gtk-3.0/checks.css | 49 +++ .../.themes/Serpensortia/gtk-3.0/entries.css | 19 + dotfiles/.themes/Serpensortia/gtk-3.0/gtk.css | 9 + .../Serpensortia/gtk-3.0/headerbar.css | 11 + .../.themes/Serpensortia/gtk-3.0/menus.css | 53 +++ .../.themes/Serpensortia/gtk-3.0/notebook.css | 32 ++ .../Serpensortia/gtk-3.0/scrollbars.css | 24 ++ .../.themes/Serpensortia/gtk-3.0/widgets.css | 77 ++++ .../.themes/Serpensortia/gtk-4.0/base.css | 25 ++ .../.themes/Serpensortia/gtk-4.0/buttons.css | 36 ++ .../.themes/Serpensortia/gtk-4.0/checks.css | 49 +++ .../.themes/Serpensortia/gtk-4.0/entries.css | 19 + dotfiles/.themes/Serpensortia/gtk-4.0/gtk.css | 9 + .../Serpensortia/gtk-4.0/headerbar.css | 11 + .../.themes/Serpensortia/gtk-4.0/menus.css | 53 +++ .../.themes/Serpensortia/gtk-4.0/notebook.css | 32 ++ .../Serpensortia/gtk-4.0/scrollbars.css | 24 ++ .../.themes/Serpensortia/gtk-4.0/widgets.css | 77 ++++ .../Serpensortia/intellij/Serpensortia.jar | Bin 0 -> 1290 bytes setup.sh | 11 +- 29 files changed, 1351 insertions(+), 7 deletions(-) create mode 100644 dotfiles/.config/dunst/dunstrc create mode 100644 dotfiles/.config/qt6ct/colors/Serpensortia.conf create mode 100644 dotfiles/.config/qt6ct/qss/Serpensortia.qss create mode 100644 dotfiles/.config/starship.toml create mode 100644 dotfiles/.themes/Serpensortia/gtk-3.0/base.css create mode 100644 dotfiles/.themes/Serpensortia/gtk-3.0/buttons.css create mode 100644 dotfiles/.themes/Serpensortia/gtk-3.0/checks.css create mode 100644 dotfiles/.themes/Serpensortia/gtk-3.0/entries.css create mode 100644 dotfiles/.themes/Serpensortia/gtk-3.0/gtk.css create mode 100644 dotfiles/.themes/Serpensortia/gtk-3.0/headerbar.css create mode 100644 dotfiles/.themes/Serpensortia/gtk-3.0/menus.css create mode 100644 dotfiles/.themes/Serpensortia/gtk-3.0/notebook.css create mode 100644 dotfiles/.themes/Serpensortia/gtk-3.0/scrollbars.css create mode 100644 dotfiles/.themes/Serpensortia/gtk-3.0/widgets.css create mode 100644 dotfiles/.themes/Serpensortia/gtk-4.0/base.css create mode 100644 dotfiles/.themes/Serpensortia/gtk-4.0/buttons.css create mode 100644 dotfiles/.themes/Serpensortia/gtk-4.0/checks.css create mode 100644 dotfiles/.themes/Serpensortia/gtk-4.0/entries.css create mode 100644 dotfiles/.themes/Serpensortia/gtk-4.0/gtk.css create mode 100644 dotfiles/.themes/Serpensortia/gtk-4.0/headerbar.css create mode 100644 dotfiles/.themes/Serpensortia/gtk-4.0/menus.css create mode 100644 dotfiles/.themes/Serpensortia/gtk-4.0/notebook.css create mode 100644 dotfiles/.themes/Serpensortia/gtk-4.0/scrollbars.css create mode 100644 dotfiles/.themes/Serpensortia/gtk-4.0/widgets.css create mode 100644 dotfiles/.themes/Serpensortia/intellij/Serpensortia.jar diff --git a/dotfiles/.config/dunst/dunstrc b/dotfiles/.config/dunst/dunstrc new file mode 100644 index 0000000..3501546 --- /dev/null +++ b/dotfiles/.config/dunst/dunstrc @@ -0,0 +1,387 @@ +[global] + ### Display ### + + monitor = 0 + follow = keyboard + + width = 500 + height = (0,500) + + origin = top-center + + offset = 0x25 + + # Scale factor. It is auto-detected if value is 0. + scale = 0 + + notification_limit = 20 + progress_bar = true + + highlight = "#124326" + + progress_bar_height = 15 + + progress_bar_frame_width = 1 + + progress_bar_min_width = 150 + + progress_bar_max_width = 500 + + progress_bar_corner_radius = 4 + + icon_corner_radius = 0 + + indicate_hidden = yes + + separator_height = 2 + + padding = 8 + + horizontal_padding = 8 + + text_icon_padding = 0 + + frame_width = 5 + + frame_color = "#124326" + + gap_size = 0 + + separator_color = frame + + sort = yes + + idle_threshold = 120 + + font = "Fira Sans Semibold" 9 + + line_height = 1 + + # Possible values are: + # full: Allow a small subset of html markup in notifications: + # bold + # italic + # strikethrough + # underline + # + # For a complete reference see + # . + # + # strip: This setting is provided for compatibility with some broken + # clients that send markup even though it's not enabled on the + # server. Dunst will try to strip the markup but the parsing is + # simplistic so using this option outside of matching rules for + # specific applications *IS GREATLY DISCOURAGED*. + # + # no: Disable markup parsing, incoming notifications will be treated as + # plain text. Dunst will not advertise that it has the body-markup + # capability if this is set as a global setting. + # + # It's important to note that markup inside the format option will be parsed + # regardless of what this is set to. + markup = full + + # The format of the message. Possible variables are: + # %a appname + # %s summary + # %b body + # %i iconname (including its path) + # %I iconname (without its path) + # %p progress value if set ([ 0%] to [100%]) or nothing + # %n progress value if set without any extra characters + # %% Literal % + # Markup is allowed + format = "%a\n%s %p\n%b" + + # Alignment of message text. + # Possible values are "left", "center" and "right". + alignment = center + + # Vertical alignment of message text and icon. + # Possible values are "top", "center" and "bottom". + vertical_alignment = center + + # Show age of message if message is older than show_age_threshold + # seconds. + # Set to -1 to disable. + show_age_threshold = 60 + + # Specify where to make an ellipsis in long lines. + # Possible values are "start", "middle" and "end". + ellipsize = middle + + # Ignore newlines '\n' in notifications. + ignore_newline = no + + # Stack together notifications with the same content + stack_duplicates = true + + # Hide the count of stacked notifications with the same content + hide_duplicate_count = false + + # Display indicators for URLs (U) and actions (A). + show_indicators = yes + + ### Icons ### + + # Recursive icon lookup. You can set a single theme, instead of having to + # define all lookup paths. + enable_recursive_icon_lookup = true + + # Set icon theme (only used for recursive icon lookup) + icon_theme = "Silvery-Dark-Icons,Adwaita" + # You can also set multiple icon themes, with the leftmost one being used first. + # icon_theme = "Adwaita, breeze" + + # Align icons left/right/top/off + icon_position = left + + # Scale small icons up to this size, set to 0 to disable. Helpful + # for e.g. small files or high-dpi screens. In case of conflict, + # max_icon_size takes precedence over this. + min_icon_size = 32 + + # Scale larger icons down to this size, set to 0 to disable + max_icon_size = 128 + + # Paths to default icons (only neccesary when not using recursive icon lookup) + icon_path = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/ + + ### History ### + + # Should a notification popped up from history be sticky or timeout + # as if it would normally do. + sticky_history = yes +§" + # Maximum amount of notifications kept in history + history_length = 20 + + ### Misc/Advanced ### + + # dmenu path. + dmenu = /usr/bin/dmenu -p dunst: + + # Browser for opening urls in context menu. + browser = /usr/bin/xdg-open + + # Always run rule-defined scripts, even if the notification is suppressed + always_run_script = true + + # Define the title of the windows spawned by dunst + title = Dunst + + # Define the class of the windows spawned by dunst + class = Dunst + + # Define the corner radius of the notification window + # in pixel size. If the radius is 0, you have no rounded + # corners. + # The radius will be automatically lowered if it exceeds half of the + # notification height to avoid clipping text and/or icons. + corner_radius = 16 + + # Ignore the dbus closeNotification message. + # Useful to enforce the timeout set by dunst configuration. Without this + # parameter, an application may close the notification sent before the + # user defined timeout. + ignore_dbusclose = false + + ### Wayland ### + # These settings are Wayland-specific. They have no effect when using X11 + + # Uncomment this if you want to let notications appear under fullscreen + # applications (default: overlay) + # layer = top + + # Set this to true to use X11 output on Wayland. + force_xwayland = false + + ### Legacy + + # Use the Xinerama extension instead of RandR for multi-monitor support. + # This setting is provided for compatibility with older nVidia drivers that + # do not support RandR and using it on systems that support RandR is highly + # discouraged. + # + # By enabling this setting dunst will not be able to detect when a monitor + # is connected or disconnected which might break follow mode if the screen + # layout changes. + force_xinerama = false + + ### mouse + + # Defines list of actions for each mouse event + # Possible values are: + # * none: Don't do anything. + # * do_action: Invoke the action determined by the action_name rule. If there is no + # such action, open the context menu. + # * open_url: If the notification has exactly one url, open it. If there are multiple + # ones, open the context menu. + # * close_current: Close current notification. + # * close_all: Close all notifications. + # * context: Open context menu for the notification. + # * context_all: Open context menu for all notifications. + # These values can be strung together for each mouse event, and + # will be executed in sequence. + mouse_left_click = close_current + mouse_middle_click = do_action, close_current + mouse_right_click = close_all + +# Experimental features that may or may not work correctly. Do not expect them +# to have a consistent behaviour across releases. +[experimental] + # Calculate the dpi to use on a per-monitor basis. + # If this setting is enabled the Xft.dpi value will be ignored and instead + # dunst will attempt to calculate an appropriate dpi value for each monitor + # using the resolution and physical size. This might be useful in setups + # where there are multiple screens with very different dpi values. + per_monitor_dpi = false + + +[urgency_low] + # IMPORTANT: colors have to be defined in quotation marks. + # Otherwise the "#" and following would be interpreted as a comment. + background = "#131d13CC" + foreground = "#c0c0c0" + timeout = 6 + # Icon for notifications with low urgency, uncomment to enable + #default_icon = /path/to/icon + +[urgency_normal] + background = "#131d13CC" + foreground = "#c0c0c0" + timeout = 6 + # Icon for notifications with normal urgency, uncomment to enable + #default_icon = /path/to/icon + +[urgency_critical] + background = "#131d13CC" + foreground = "#c0c0c0" + frame_color = "#dc143c" + timeout = 6 + # Icon for notifications with critical urgency, uncomment to enable + #default_icon = /path/to/icon + +# Every section that isn't one of the above is interpreted as a rules to +# override settings for certain messages. +# +# Messages can be matched by +# appname (discouraged, see desktop_entry) +# body +# category +# desktop_entry +# icon +# match_transient +# msg_urgency +# stack_tag +# summary +# +# and you can override the +# background +# foreground +# format +# frame_color +# fullscreen +# new_icon +# set_stack_tag +# set_transient +# set_category +# timeout +# urgency +# icon_position +# skip_display +# history_ignore +# action_name +# word_wrap +# ellipsize +# alignment +# hide_text +# +# Shell-like globbing will get expanded. +# +# Instead of the appname filter, it's recommended to use the desktop_entry filter. +# GLib based applications export their desktop-entry name. In comparison to the appname, +# the desktop-entry won't get localized. +# +# SCRIPTING +# You can specify a script that gets run when the rule matches by +# setting the "script" option. +# The script will be called as follows: +# script appname summary body icon urgency +# where urgency can be "LOW", "NORMAL" or "CRITICAL". +# +# NOTE: It might be helpful to run dunst -print in a terminal in order +# to find fitting options for rules. + +# Disable the transient hint so that idle_threshold cannot be bypassed from the +# client +#[transient_disable] +# match_transient = yes +# set_transient = no +# +# Make the handling of transient notifications more strict by making them not +# be placed in history. +#[transient_history_ignore] +# match_transient = yes +# history_ignore = yes + +# fullscreen values +# show: show the notifications, regardless if there is a fullscreen window opened +# delay: displays the new notification, if there is no fullscreen window active +# If the notification is already drawn, it won't get undrawn. +# pushback: same as delay, but when switching into fullscreen, the notification will get +# withdrawn from screen again and will get delayed like a new notification +#[fullscreen_delay_everything] +# fullscreen = delay +#[fullscreen_show_critical] +# msg_urgency = critical +# fullscreen = show + +#[espeak] +# summary = "*" +# script = dunst_espeak.sh + +#[script-test] +# summary = "*script*" +# script = dunst_test.sh + +#[ignore] +# # This notification will not be displayed +# summary = "foobar" +# skip_display = true + +#[history-ignore] +# # This notification will not be saved in history +# summary = "foobar" +# history_ignore = yes + +#[skip-display] +# # This notification will not be displayed, but will be included in the history +# summary = "foobar" +# skip_display = yes + +#[signed_on] +# appname = Pidgin +# summary = "*signed on*" +# urgency = low +# +#[signed_off] +# appname = Pidgin +# summary = *signed off* +# urgency = low +# +#[says] +# appname = Pidgin +# summary = *says* +# urgency = critical +# +#[twitter] +# appname = Pidgin +# summary = *twitter.com* +# urgency = normal +# +#[stack-volumes] +# appname = "some_volume_notifiers" +# set_stack_tag = "volume" +# +# vim: ft=cfg diff --git a/dotfiles/.config/hypr/conf/input.conf b/dotfiles/.config/hypr/conf/input.conf index a9c4601..b8eb6ad 100644 --- a/dotfiles/.config/hypr/conf/input.conf +++ b/dotfiles/.config/hypr/conf/input.conf @@ -10,7 +10,7 @@ input { kb_options = kb_rules = - follow_mouse = 0 + follow_mouse = 1 sensitivity = 0 # -1.0 - 1.0, 0 means no modification. diff --git a/dotfiles/.config/hypr/shared.conf b/dotfiles/.config/hypr/shared.conf index a9d5768..8f13869 100644 --- a/dotfiles/.config/hypr/shared.conf +++ b/dotfiles/.config/hypr/shared.conf @@ -10,4 +10,4 @@ $fileManager = thunar $browser = vivaldi $menu = rofi -show -$SCRIPT_DIR = ~/.config/hypr/conf/scripts \ No newline at end of file +$SCRIPT_DIR = ~/.local/bin \ No newline at end of file diff --git a/dotfiles/.config/qt6ct/colors/Serpensortia.conf b/dotfiles/.config/qt6ct/colors/Serpensortia.conf new file mode 100644 index 0000000..2023fa6 --- /dev/null +++ b/dotfiles/.config/qt6ct/colors/Serpensortia.conf @@ -0,0 +1,4 @@ +[ColorScheme] +active_colors=#c0c0c0, #080c08, #424a42, #131d13, #424a42, #c0c0c0, #c0c0c0, #c0c0c0, #c0c0c0, #080c08, #080c08, #0b110b, #1c7a44, #080c08, #1c7a44, #dc143c, #080c08, #c0c0c0, #1c7a44, #080c08, #0e2d1a +disabled_colors=#424a42, #080c08, #424a42, #131d13, #424a42, #424a42, #424a42, #424a42, #424a42, #080c08, #080c08, #0b110b, #424a42, #080c08, #424a42, #dc143c, #080c08, #424a42, #424a42, #080c08, #424a42 +inactive_colors=#c0c0c0, #080c08, #424a42, #131d13, #424a42, #c0c0c0, #c0c0c0, #c0c0c0, #c0c0c0, #080c08, #080c08, #0b110b, #1c7a44, #080c08, #1c7a44, #dc143c, #080c08, #c0c0c0, #1c7a44, #080c08, #0e2d1a diff --git a/dotfiles/.config/qt6ct/qss/Serpensortia.qss b/dotfiles/.config/qt6ct/qss/Serpensortia.qss new file mode 100644 index 0000000..bcdb418 --- /dev/null +++ b/dotfiles/.config/qt6ct/qss/Serpensortia.qss @@ -0,0 +1,115 @@ +/* Global Styles */ +QWidget { + background-color: #080c08; + color: #c0c0c0; + selection-background-color: #1c7a44; + selection-color: #080c08; +} + +/* Buttons */ +QPushButton { + background-color: #424a42; + border: 1px solid #0b110b; + border-radius: 8px; + padding: 2px 4px; +} + +QPushButton:hover { + background-color: #0b110b; +} + +QPushButton:pressed { + background-color: #1c7a44; + color: #080c08; +} + +QPushButton:disabled { + background-color: #080c08; + color: #424a42; + border-color: #424a42; +} + +/* Input Fields */ +QLineEdit, QTextEdit, QPlainTextEdit { + background-color: #131d13; + border: 1px solid #0b110b; + border-radius: 8px; + padding: 1px 2px; +} + +QLineEdit:focus { + border: 1px solid #1c7a44; +} + +/* Menus and Lists */ +QListView, QTreeView, QTableView { + background-color: #131d13; + border: 1px solid #0b110b; + border-radius: 8px; + alternate-background-color: #424a42; +} + +QListView::item:selected, QTreeView::item:selected, QTableView::item:selected { + background-color: #0e2d1a; + border: 1px solid #1c7a44; + color: #c0c0c0; +} + +/* Scrollbars */ +QScrollBar:vertical { + background: #424a42; + width: 12px; + margin: 0px; +} + +QScrollBar::handle:vertical { + background: #0b110b; + min-height: 20px; + border-radius: 4px; + margin: 2px; +} + +QScrollBar::handle:vertical:hover { + background: #1c7a44; +} + +QScrollBar::add-line:vertical, QScrollBar::sub-line:vertical { + height: 0px; +} + +/* Tabs */ +QTabBar::tab { + background: #131d13; + border: 1px solid #0b110b; + padding: 2px 4px; + border-top-left-radius: 8px; + border-top-right-radius: 8px; +} + +QTabBar::tab:selected { + background: #080c08; + border-bottom-color: #1c7a44; +} + +/* Checkboxes and Radio Buttons */ +QCheckBox::indicator, QRadioButton::indicator { + width: 18px; + height: 18px; + border: 1px solid #0b110b; + background-color: #424a42; + border-radius: 8px; +} + +QRadioButton::indicator { + border-radius: 9px; +} + +QCheckBox::indicator:checked { + border-color: #1c7a44; + background-color: #1c7a44; +} + +QRadioButton::indicator:checked { + border-color: #1c7a44; + background-color: #1c7a44; +} diff --git a/dotfiles/.config/starship.toml b/dotfiles/.config/starship.toml new file mode 100644 index 0000000..86b10f1 --- /dev/null +++ b/dotfiles/.config/starship.toml @@ -0,0 +1,159 @@ +"$schema" = 'https://starship.rs/config-schema.json' + +format = """ +[](color_bg1)\ +[](bg:color_bg1 fg:color_fg0)\ +$username\ +[](fg:color_bg1)\ +$directory\ +[](bg:color_bg1 fg:color_black)\ +$git_branch\ +$git_status\ +[](fg:color_bg1 bg:color_blue)\ +$c\ +$cpp\ +$rust\ +$golang\ +$nodejs\ +$php\ +$java\ +$kotlin\ +$haskell\ +$python\ +[](fg:color_blue bg:color_bg3)\ +$docker_context\ +$conda\ +$pixi\ +[](fg:color_bg3 bg:color_bg1)\ +$time\ +[ ](fg:color_bg1)\ +$cmd_duration\ +$line_break$character""" + +palette = 'serpensortia' + +[palettes.serpensortia] +color_black = "#000000" +color_fg0 = "#c0c0c0" +color_bg1 = "#131d13" +color_bg3 = "#424a42" +color_blue = "#1c7a44" +color_aqua = "#1c7a44" +color_accent = "#1c7a44" +color_orange = "#1c7a44" +color_purple = "#1c7a44" +color_warn = "#1c7a44" +color_yellow = "#1c7a44" + +[username] +show_always = true +style_user = "bg:color_bg1 fg:color_accent" +style_root = "bg:color_warn fg:color_bg1" +format = '[ $user ]($style)' + +[directory] +style = "fg:color_bg0 bg:color_text" +format = "[ $path ]($style)[$read_only]($read_only_style) " +read_only_style = "#dc143c" +read_only = "󰌾" +truncation_length = 0 +truncation_symbol = "…/" + +[directory.substitutions] +"Documents" = "󰈙 " +"Downloads" = " " +"Music" = "󰝚 " +"Pictures" = " " +"workspace" = "󰲋 " + +[git_branch] +symbol = "" +style = "bg:color_bg1" +format = '[[ $symbol $branch ](fg:color_accent bg:color_bg1)]($style)' + +[git_status] +style = "bg:color_bg1" +format = '[[($all_status$ahead_behind )](fg:color_accent bg:color_bg1)]($style)' + +[nodejs] +symbol = "" +style = "bg:color_blue" +format = '[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)' + +[c] +symbol = " " +style = "bg:color_blue" +format = '[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)' + +[cpp] +symbol = " " +style = "bg:color_blue" +format = '[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)' + +[rust] +symbol = "" +style = "bg:color_blue" +format = '[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)' + +[golang] +symbol = "" +style = "bg:color_blue" +format = '[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)' + +[php] +symbol = "" +style = "bg:color_blue" +format = '[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)' + +[java] +symbol = "" +style = "bg:color_blue" +format = '[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)' + +[kotlin] +symbol = "" +style = "bg:color_blue" +format = '[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)' + +[haskell] +symbol = "" +style = "bg:color_blue" +format = '[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)' + +[python] +symbol = "" +style = "bg:color_blue" +format = '[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)' + +[docker_context] +symbol = "" +style = "bg:color_bg3" +format = '[[ $symbol( $context) ](fg:#83a598 bg:color_bg3)]($style)' + +[conda] +style = "bg:color_bg3" +format = '[[ $symbol( $environment) ](fg:#83a598 bg:color_bg3)]($style)' + +[pixi] +style = "bg:color_bg3" +format = '[[ $symbol( $version)( $environment) ](fg:color_fg0 bg:color_bg3)]($style)' + +[time] +disabled = false +time_format = "%R" +style = "bg:color_bg1" +format = '[[  $time ](fg:color_fg0 bg:color_bg1)]($style)' + +[line_break] +disabled = false + +[character] +disabled = false +success_symbol = '[❯](bold green)' +error_symbol = '[✖](bold red)' + +[cmd_duration] +disabled = false +min_time = 50 +show_milliseconds = true +format = '[$duration](bold)' \ No newline at end of file diff --git a/dotfiles/.local/bin/volume b/dotfiles/.local/bin/volume index 0ea7457..25655ea 100755 --- a/dotfiles/.local/bin/volume +++ b/dotfiles/.local/bin/volume @@ -12,17 +12,19 @@ case "$1" in ;; mute) wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle + volume=$(wpctl get-volume @DEFAULT_AUDIO_SINK@ | awk '{print int($2*100)}') mute=$(wpctl get-volume @DEFAULT_AUDIO_SINK@ | grep -q MUTED && echo "yes" || echo "no") if [[ "$mute" == "yes" ]]; then dunstify -t $TIME \ -a "Volume" \ -h string:x-dunst-stack-tag:$msgTag \ - "Muted" + "muted" else dunstify -t $TIME \ -a "Volume" \ -h string:x-dunst-stack-tag:$msgTag \ - "Unmuted" + -h int:value:"$volume" \ + "unmuted" fi exit 0 ;; @@ -40,5 +42,5 @@ if [[ "$mute" != "yes" ]]; then -a "Volume" \ -h string:x-dunst-stack-tag:$msgTag \ -h int:value:"$volume" \ - "Volume: $volume%" + "$1" fi diff --git a/dotfiles/.themes/Serpensortia/gtk-3.0/base.css b/dotfiles/.themes/Serpensortia/gtk-3.0/base.css new file mode 100644 index 0000000..ba0369d --- /dev/null +++ b/dotfiles/.themes/Serpensortia/gtk-3.0/base.css @@ -0,0 +1,25 @@ +* { + -GtkHTML-cursor-color: #c0c0c0; + -GtkIMHtml-cursor-color: #c0c0c0; + -GtkTextView-error-underline-color: #dc143c; + -W3C-focus-color: #1c7a44; + outline-color: #124326; + background-clip: padding-box; + -gtk-secondary-caret-color: #1c7a44; +} + +.background { + background-color: #080c08; + color: #c0c0c0; +} + +:disabled { + color: #424a42; +} + +window, +.window-frame { + background-color: #080c08; + color: #c0c0c0; + border-radius: 16px; +} diff --git a/dotfiles/.themes/Serpensortia/gtk-3.0/buttons.css b/dotfiles/.themes/Serpensortia/gtk-3.0/buttons.css new file mode 100644 index 0000000..6cb7af6 --- /dev/null +++ b/dotfiles/.themes/Serpensortia/gtk-3.0/buttons.css @@ -0,0 +1,36 @@ +button { + background-color: #424a42; + color: #c0c0c0; + border: 1px solid #0b110b; + border-radius: 8px; + padding: 2px 4px; + transition: all 0.2s ease; +} + +button:hover { + background-color: #0b110b; +} + +button:active, +button:checked { + background-color: #1c7a44; + color: #080c08; +} + +button:disabled { + background-color: #080c08; + color: #424a42; + border-color: #424a42; +} + +button.suggested-action { + background-color: #1c7a44; + color: #080c08; + border-color: #1c7a44; +} + +button.destructive-action { + background-color: #dc143c; + color: #080c08; + border-color: #dc143c; +} diff --git a/dotfiles/.themes/Serpensortia/gtk-3.0/checks.css b/dotfiles/.themes/Serpensortia/gtk-3.0/checks.css new file mode 100644 index 0000000..7df2cdc --- /dev/null +++ b/dotfiles/.themes/Serpensortia/gtk-3.0/checks.css @@ -0,0 +1,49 @@ +check, radio { + margin: 0 2px; + min-height: 18px; + min-width: 18px; + border: 1px solid #0b110b; + border-radius: 8px; + background-color: #424a42; + color: transparent; + -gtk-icon-source: none; + transition: all 0.2s ease; +} + +radio { + border-radius: 50%; +} + +check:checked { + background-color: #424a42; + border-color: #1c7a44; + background-image: + linear-gradient(45deg, transparent 45%, #1c7a44 45%, #1c7a44 55%, transparent 55%), + linear-gradient(-45deg, transparent 45%, #1c7a44 45%, #1c7a44 55%, transparent 55%); + background-size: 70% 70%; + background-repeat: no-repeat; + background-position: center; +} + +radio:checked { + background-color: #424a42; + border-color: #1c7a44; + background-image: radial-gradient(circle, #1c7a44 35%, transparent 40%); +} + +check:indeterminate { + background-color: #424a42; + border-color: #1c7a44; + background-image: linear-gradient(to right, #1c7a44, #1c7a44); + background-size: 60% 2px; + background-repeat: no-repeat; + background-position: center; +} + +check:disabled, +radio:disabled { + background-color: #080c08; + border-color: #424a42; + color: transparent; + background-image: none; +} diff --git a/dotfiles/.themes/Serpensortia/gtk-3.0/entries.css b/dotfiles/.themes/Serpensortia/gtk-3.0/entries.css new file mode 100644 index 0000000..a4ad089 --- /dev/null +++ b/dotfiles/.themes/Serpensortia/gtk-3.0/entries.css @@ -0,0 +1,19 @@ +entry { + background-color: #131d13; + color: #c0c0c0; + border: 1px solid #0b110b; + border-radius: 8px; + padding: 1px 2px; + caret-color: #1c7a44; +} + +entry:focus { + border-color: #1c7a44; + box-shadow: inset 0 0 0 1px #1c7a44; +} + +entry:disabled { + background-color: #080c08; + color: #424a42; + border-color: #424a42; +} diff --git a/dotfiles/.themes/Serpensortia/gtk-3.0/gtk.css b/dotfiles/.themes/Serpensortia/gtk-3.0/gtk.css new file mode 100644 index 0000000..aabd418 --- /dev/null +++ b/dotfiles/.themes/Serpensortia/gtk-3.0/gtk.css @@ -0,0 +1,9 @@ +@import url("base.css"); +@import url("headerbar.css"); +@import url("buttons.css"); +@import url("entries.css"); +@import url("menus.css"); +@import url("widgets.css"); +@import url("checks.css"); +@import url("scrollbars.css"); +@import url("notebook.css"); diff --git a/dotfiles/.themes/Serpensortia/gtk-3.0/headerbar.css b/dotfiles/.themes/Serpensortia/gtk-3.0/headerbar.css new file mode 100644 index 0000000..ac2d7d2 --- /dev/null +++ b/dotfiles/.themes/Serpensortia/gtk-3.0/headerbar.css @@ -0,0 +1,11 @@ +headerbar { + background-color: #131d13; + color: #c0c0c0; + border-bottom: 1px solid #0b110b; + box-shadow: none; + padding: 1px 2px; +} + +headerbar .title { + font-weight: bold; +} diff --git a/dotfiles/.themes/Serpensortia/gtk-3.0/menus.css b/dotfiles/.themes/Serpensortia/gtk-3.0/menus.css new file mode 100644 index 0000000..d0a1ecd --- /dev/null +++ b/dotfiles/.themes/Serpensortia/gtk-3.0/menus.css @@ -0,0 +1,53 @@ +list, +menu { + background-color: #131d13; + color: #c0c0c0; + border: 1px solid #0b110b; + border-radius: 8px; +} + +menubar { + background-color: #131d13; + color: #c0c0c0; + border-bottom: 1px solid #0b110b; + padding: 1px 2px; +} + +menubar > menuitem { + padding: 2px 4px; + min-height: 24px; + transition: all 0.2s ease; +} + +menuitem { + min-height: 24px; + padding: 2px 4px; +} + +menubar > menuitem:hover { + background-color: #1c7a44; + border-radius: 4px; +} + +list row:selected, +treeview.view:selected, +.view:selected, +iconview.view:selected, +cell:selected, +*:selected { + background-color: #0e2d1a; + color: #c0c0c0; + border: 1px solid #1c7a44; + border-radius: 8px; +} + +menuitem:hover { + background-color: #1c7a44; + color: #080c08; + border-radius: 4px; +} + +menuitem:disabled { + color: #424a42; + background-color: transparent; +} diff --git a/dotfiles/.themes/Serpensortia/gtk-3.0/notebook.css b/dotfiles/.themes/Serpensortia/gtk-3.0/notebook.css new file mode 100644 index 0000000..6495d8a --- /dev/null +++ b/dotfiles/.themes/Serpensortia/gtk-3.0/notebook.css @@ -0,0 +1,32 @@ +notebook { + background-color: #080c08; + border: 1px solid #0b110b; +} + +notebook header { + background-color: #131d13; +} + +notebook tab { + padding: 4px 8px; + border: 1px solid transparent; + border-radius: 8px 8px 0 0; + transition: all 0.2s ease; +} + +notebook tab:hover { + background-color: #424a42; +} + +notebook tab:checked { + background-color: #080c08; + border-color: #0b110b; + border-bottom-color: transparent; + border-bottom: 2px solid #1c7a44; + box-shadow: inset 0 -2px 0 #1c7a44; +} + +notebook tab label { + font-weight: bold; + color: #c0c0c0; +} diff --git a/dotfiles/.themes/Serpensortia/gtk-3.0/scrollbars.css b/dotfiles/.themes/Serpensortia/gtk-3.0/scrollbars.css new file mode 100644 index 0000000..475dc43 --- /dev/null +++ b/dotfiles/.themes/Serpensortia/gtk-3.0/scrollbars.css @@ -0,0 +1,24 @@ +scrollbar { + background-color: transparent; +} + +scrollbar trough { + background-color: #424a42; + border: 1px solid #0b110b; +} + +scrollbar slider { + background-color: #0b110b; + border: 2px solid transparent; + border-radius: 16px; + min-width: 8px; + min-height: 8px; +} + +scrollbar slider:hover { + background-color: #1c7a44; +} + +scrollbar button { + display: none; +} diff --git a/dotfiles/.themes/Serpensortia/gtk-3.0/widgets.css b/dotfiles/.themes/Serpensortia/gtk-3.0/widgets.css new file mode 100644 index 0000000..5699a05 --- /dev/null +++ b/dotfiles/.themes/Serpensortia/gtk-3.0/widgets.css @@ -0,0 +1,77 @@ +/* Selection */ +selection, +row:selected, +iconview:selected, +treeview.view:selected, +.view:selected, +iconview.view:selected, +cell:selected, +*:selected { + background-color: #0e2d1a; + color: #c0c0c0; + border: 1px solid #1c7a44; + border-radius: 8px; +} + +/* Sliders (Scales) */ +scale trough { + background-color: #424a42; + border: 1px solid #0b110b; + border-radius: 8px; + min-height: 4px; +} + +scale highlight { + background-color: #1c7a44; + border-radius: 8px; +} + +scale slider { + background-color: #131d13; + border: 1px solid #0b110b; + border-radius: 50%; + min-height: 16px; + min-width: 16px; + margin: -6px 0; +} + +scale slider:hover { + background-color: #1c7a44; + border-color: #1c7a44; +} + +/* Switches */ +switch { + background-color: #424a42; + border: 1px solid #0b110b; + border-radius: 8px; + color: transparent; +} + +switch:checked { + background-color: #1c7a44; + border-color: #1c7a44; +} + +switch slider { + background-color: #c0c0c0; + border: 1px solid #0b110b; + border-radius: 50%; + margin: 1px; + min-width: 18px; + min-height: 18px; +} + +scale:disabled trough, +scale:disabled highlight, +scale:disabled slider, +switch:disabled { + background-color: #080c08; + border-color: #424a42; + color: #424a42; +} + +switch:disabled slider { + background-color: #424a42; + border-color: #424a42; +} diff --git a/dotfiles/.themes/Serpensortia/gtk-4.0/base.css b/dotfiles/.themes/Serpensortia/gtk-4.0/base.css new file mode 100644 index 0000000..ba0369d --- /dev/null +++ b/dotfiles/.themes/Serpensortia/gtk-4.0/base.css @@ -0,0 +1,25 @@ +* { + -GtkHTML-cursor-color: #c0c0c0; + -GtkIMHtml-cursor-color: #c0c0c0; + -GtkTextView-error-underline-color: #dc143c; + -W3C-focus-color: #1c7a44; + outline-color: #124326; + background-clip: padding-box; + -gtk-secondary-caret-color: #1c7a44; +} + +.background { + background-color: #080c08; + color: #c0c0c0; +} + +:disabled { + color: #424a42; +} + +window, +.window-frame { + background-color: #080c08; + color: #c0c0c0; + border-radius: 16px; +} diff --git a/dotfiles/.themes/Serpensortia/gtk-4.0/buttons.css b/dotfiles/.themes/Serpensortia/gtk-4.0/buttons.css new file mode 100644 index 0000000..6cb7af6 --- /dev/null +++ b/dotfiles/.themes/Serpensortia/gtk-4.0/buttons.css @@ -0,0 +1,36 @@ +button { + background-color: #424a42; + color: #c0c0c0; + border: 1px solid #0b110b; + border-radius: 8px; + padding: 2px 4px; + transition: all 0.2s ease; +} + +button:hover { + background-color: #0b110b; +} + +button:active, +button:checked { + background-color: #1c7a44; + color: #080c08; +} + +button:disabled { + background-color: #080c08; + color: #424a42; + border-color: #424a42; +} + +button.suggested-action { + background-color: #1c7a44; + color: #080c08; + border-color: #1c7a44; +} + +button.destructive-action { + background-color: #dc143c; + color: #080c08; + border-color: #dc143c; +} diff --git a/dotfiles/.themes/Serpensortia/gtk-4.0/checks.css b/dotfiles/.themes/Serpensortia/gtk-4.0/checks.css new file mode 100644 index 0000000..7df2cdc --- /dev/null +++ b/dotfiles/.themes/Serpensortia/gtk-4.0/checks.css @@ -0,0 +1,49 @@ +check, radio { + margin: 0 2px; + min-height: 18px; + min-width: 18px; + border: 1px solid #0b110b; + border-radius: 8px; + background-color: #424a42; + color: transparent; + -gtk-icon-source: none; + transition: all 0.2s ease; +} + +radio { + border-radius: 50%; +} + +check:checked { + background-color: #424a42; + border-color: #1c7a44; + background-image: + linear-gradient(45deg, transparent 45%, #1c7a44 45%, #1c7a44 55%, transparent 55%), + linear-gradient(-45deg, transparent 45%, #1c7a44 45%, #1c7a44 55%, transparent 55%); + background-size: 70% 70%; + background-repeat: no-repeat; + background-position: center; +} + +radio:checked { + background-color: #424a42; + border-color: #1c7a44; + background-image: radial-gradient(circle, #1c7a44 35%, transparent 40%); +} + +check:indeterminate { + background-color: #424a42; + border-color: #1c7a44; + background-image: linear-gradient(to right, #1c7a44, #1c7a44); + background-size: 60% 2px; + background-repeat: no-repeat; + background-position: center; +} + +check:disabled, +radio:disabled { + background-color: #080c08; + border-color: #424a42; + color: transparent; + background-image: none; +} diff --git a/dotfiles/.themes/Serpensortia/gtk-4.0/entries.css b/dotfiles/.themes/Serpensortia/gtk-4.0/entries.css new file mode 100644 index 0000000..a4ad089 --- /dev/null +++ b/dotfiles/.themes/Serpensortia/gtk-4.0/entries.css @@ -0,0 +1,19 @@ +entry { + background-color: #131d13; + color: #c0c0c0; + border: 1px solid #0b110b; + border-radius: 8px; + padding: 1px 2px; + caret-color: #1c7a44; +} + +entry:focus { + border-color: #1c7a44; + box-shadow: inset 0 0 0 1px #1c7a44; +} + +entry:disabled { + background-color: #080c08; + color: #424a42; + border-color: #424a42; +} diff --git a/dotfiles/.themes/Serpensortia/gtk-4.0/gtk.css b/dotfiles/.themes/Serpensortia/gtk-4.0/gtk.css new file mode 100644 index 0000000..aabd418 --- /dev/null +++ b/dotfiles/.themes/Serpensortia/gtk-4.0/gtk.css @@ -0,0 +1,9 @@ +@import url("base.css"); +@import url("headerbar.css"); +@import url("buttons.css"); +@import url("entries.css"); +@import url("menus.css"); +@import url("widgets.css"); +@import url("checks.css"); +@import url("scrollbars.css"); +@import url("notebook.css"); diff --git a/dotfiles/.themes/Serpensortia/gtk-4.0/headerbar.css b/dotfiles/.themes/Serpensortia/gtk-4.0/headerbar.css new file mode 100644 index 0000000..ac2d7d2 --- /dev/null +++ b/dotfiles/.themes/Serpensortia/gtk-4.0/headerbar.css @@ -0,0 +1,11 @@ +headerbar { + background-color: #131d13; + color: #c0c0c0; + border-bottom: 1px solid #0b110b; + box-shadow: none; + padding: 1px 2px; +} + +headerbar .title { + font-weight: bold; +} diff --git a/dotfiles/.themes/Serpensortia/gtk-4.0/menus.css b/dotfiles/.themes/Serpensortia/gtk-4.0/menus.css new file mode 100644 index 0000000..d0a1ecd --- /dev/null +++ b/dotfiles/.themes/Serpensortia/gtk-4.0/menus.css @@ -0,0 +1,53 @@ +list, +menu { + background-color: #131d13; + color: #c0c0c0; + border: 1px solid #0b110b; + border-radius: 8px; +} + +menubar { + background-color: #131d13; + color: #c0c0c0; + border-bottom: 1px solid #0b110b; + padding: 1px 2px; +} + +menubar > menuitem { + padding: 2px 4px; + min-height: 24px; + transition: all 0.2s ease; +} + +menuitem { + min-height: 24px; + padding: 2px 4px; +} + +menubar > menuitem:hover { + background-color: #1c7a44; + border-radius: 4px; +} + +list row:selected, +treeview.view:selected, +.view:selected, +iconview.view:selected, +cell:selected, +*:selected { + background-color: #0e2d1a; + color: #c0c0c0; + border: 1px solid #1c7a44; + border-radius: 8px; +} + +menuitem:hover { + background-color: #1c7a44; + color: #080c08; + border-radius: 4px; +} + +menuitem:disabled { + color: #424a42; + background-color: transparent; +} diff --git a/dotfiles/.themes/Serpensortia/gtk-4.0/notebook.css b/dotfiles/.themes/Serpensortia/gtk-4.0/notebook.css new file mode 100644 index 0000000..6495d8a --- /dev/null +++ b/dotfiles/.themes/Serpensortia/gtk-4.0/notebook.css @@ -0,0 +1,32 @@ +notebook { + background-color: #080c08; + border: 1px solid #0b110b; +} + +notebook header { + background-color: #131d13; +} + +notebook tab { + padding: 4px 8px; + border: 1px solid transparent; + border-radius: 8px 8px 0 0; + transition: all 0.2s ease; +} + +notebook tab:hover { + background-color: #424a42; +} + +notebook tab:checked { + background-color: #080c08; + border-color: #0b110b; + border-bottom-color: transparent; + border-bottom: 2px solid #1c7a44; + box-shadow: inset 0 -2px 0 #1c7a44; +} + +notebook tab label { + font-weight: bold; + color: #c0c0c0; +} diff --git a/dotfiles/.themes/Serpensortia/gtk-4.0/scrollbars.css b/dotfiles/.themes/Serpensortia/gtk-4.0/scrollbars.css new file mode 100644 index 0000000..475dc43 --- /dev/null +++ b/dotfiles/.themes/Serpensortia/gtk-4.0/scrollbars.css @@ -0,0 +1,24 @@ +scrollbar { + background-color: transparent; +} + +scrollbar trough { + background-color: #424a42; + border: 1px solid #0b110b; +} + +scrollbar slider { + background-color: #0b110b; + border: 2px solid transparent; + border-radius: 16px; + min-width: 8px; + min-height: 8px; +} + +scrollbar slider:hover { + background-color: #1c7a44; +} + +scrollbar button { + display: none; +} diff --git a/dotfiles/.themes/Serpensortia/gtk-4.0/widgets.css b/dotfiles/.themes/Serpensortia/gtk-4.0/widgets.css new file mode 100644 index 0000000..5699a05 --- /dev/null +++ b/dotfiles/.themes/Serpensortia/gtk-4.0/widgets.css @@ -0,0 +1,77 @@ +/* Selection */ +selection, +row:selected, +iconview:selected, +treeview.view:selected, +.view:selected, +iconview.view:selected, +cell:selected, +*:selected { + background-color: #0e2d1a; + color: #c0c0c0; + border: 1px solid #1c7a44; + border-radius: 8px; +} + +/* Sliders (Scales) */ +scale trough { + background-color: #424a42; + border: 1px solid #0b110b; + border-radius: 8px; + min-height: 4px; +} + +scale highlight { + background-color: #1c7a44; + border-radius: 8px; +} + +scale slider { + background-color: #131d13; + border: 1px solid #0b110b; + border-radius: 50%; + min-height: 16px; + min-width: 16px; + margin: -6px 0; +} + +scale slider:hover { + background-color: #1c7a44; + border-color: #1c7a44; +} + +/* Switches */ +switch { + background-color: #424a42; + border: 1px solid #0b110b; + border-radius: 8px; + color: transparent; +} + +switch:checked { + background-color: #1c7a44; + border-color: #1c7a44; +} + +switch slider { + background-color: #c0c0c0; + border: 1px solid #0b110b; + border-radius: 50%; + margin: 1px; + min-width: 18px; + min-height: 18px; +} + +scale:disabled trough, +scale:disabled highlight, +scale:disabled slider, +switch:disabled { + background-color: #080c08; + border-color: #424a42; + color: #424a42; +} + +switch:disabled slider { + background-color: #424a42; + border-color: #424a42; +} diff --git a/dotfiles/.themes/Serpensortia/intellij/Serpensortia.jar b/dotfiles/.themes/Serpensortia/intellij/Serpensortia.jar new file mode 100644 index 0000000000000000000000000000000000000000..dab38fcbb1a4bab6f981280ef2cefa455ca0314d GIT binary patch literal 1290 zcmWIWW@Zs#U|`^2c)KnzMs_BX7Yh>u!xjz(25|-%hTznqg4Dd?{GyV~M7@%X)ZA3P ztm6E<&=5`r=Dk;^WP)&M1vdjD%L`@(1~73p)HnOFfxzD9;Vj>`>2%MP+V*Dc%b=(i zhn#q-r!Do=(aJs*k+*xwpYKy;j>}J)JmJ!zN#08;jjO7R>#Am-eLgWw)y4kVMXnc| zC9Nqc-TQWRBz(zGZp+HJ=HKHmdrd>^q1vT0#IF8X-fYScHk;|>(RH3#AIrC&4pa;+ z`+j!ao2sLnQ=^Q2rFHE(Bl}0`++>w=(tjizd+gr{gd6s+cXDYw?+_WT@$i1+EV-uA ztCLQW1 z?zWA~@7=R5Z_d1jsj`tOj8~4kuiDjis_Q9N%lTuwugE={=qax0Egsl>Ya5e(c5(ne z>uMh5$FdjF%GeveY5wRC-eqQWqq^ez*RKK_(zY5gSFv+cbxsy>?s2~~`J>8NvF);) zRn4h=-ZipbQHv&Ib3VG~@bYU)L{|JG$FOH7IJPhTf6>@#(Fg95TDI2mI@h}0{DwKw z!UkLReW;)O=d8(!%XucJB0U+Gf2#Wa`m@or=L#{;Bxl{IRZumR`Nt;x`0e3fwMmxS zEgxUu^%R_OXNS_BS<#$cH8J%&YyX`2Vt!|C*NT5P%K78lj^AV4tki4!!a|gL!mOK$ zm2H{J?^(OM>uq?LcY$d$e{K%HjnRaC-l;5$+XVOBX}lwHu3YTp^N8;1)#B4Wu6{fj0_A9fLIvWh=QEb^vpcH zirgH0hUErY`!gHz-21KVQzmqySaA8Ft_io+z7mkyUOIL9q!`!#ww|Xtos%~Iwf%E) zT1tSuoAulit3?}B7V{L%JuzGQ{0yaEGC_*EuB}psv)i*aJ0w)QwFi|fFkCmoh;{wE zADcyri`n;Za$d;X#C$rq=jwx{rJvoJeR}uioH`b^dYQ=#{?4RKzfXzV>twe-UdP1n zT66k?1zUIuoccY*O+HjM^Imjw36{3B;q&({SgYcEdt|~PjTs$wQa<=;W$^>uiWmQQxH`gsGSbN;xAuZwm{5g(S zp4u3ERId&H?9Df?vo7?bwBy=av&H29vITfEGRZL`0v0vHOMqhu7{&}s8bM5)*`F1X z{n4^M#Bf{@4>6p9L4e_{V<@nUK}rVrj6=8;H4z}Ybq2C=$Vmd1!K`c`?=b@*E6}&^ Jfn^s10|2k