commit e8c5c076b064c179327492c6cf8da9e1e4fdbac1 Author: timoxa0 Date: Fri Oct 25 16:48:49 2024 +0500 New pc rice diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..143b022 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "dot-config/tmux/tpm"] + path = dot-config/tmux/tpm + url = https://github.com/tmux-plugins/tpm diff --git a/dot-config/alacritty/alacritty.toml b/dot-config/alacritty/alacritty.toml new file mode 100644 index 0000000..b8134c7 --- /dev/null +++ b/dot-config/alacritty/alacritty.toml @@ -0,0 +1,20 @@ +import = [ + "~/.config/alacritty/catppuccin-mocha.toml" +] + +shell = { program = "tmux", args = ["new"] } + +live_config_reload = true + +[env] +TERM = "xterm-256color" + +[window] +padding = { x = 10, y = 10 } +dynamic_padding = true +decorations = "Full" +opacity = 0.85 + +[font] +normal = { family = "JetBrainsMono Nerd Font Mono", style = "Regular" } +size = 16 diff --git a/dot-config/alacritty/catppuccin-mocha.toml b/dot-config/alacritty/catppuccin-mocha.toml new file mode 100644 index 0000000..08a7e3a --- /dev/null +++ b/dot-config/alacritty/catppuccin-mocha.toml @@ -0,0 +1,75 @@ +[colors.primary] +background = "#1e1e2e" +foreground = "#cdd6f4" +dim_foreground = "#7f849c" +bright_foreground = "#cdd6f4" + +[colors.cursor] +text = "#1e1e2e" +cursor = "#f5e0dc" + +[colors.vi_mode_cursor] +text = "#1e1e2e" +cursor = "#b4befe" + +[colors.search.matches] +foreground = "#1e1e2e" +background = "#a6adc8" + +[colors.search.focused_match] +foreground = "#1e1e2e" +background = "#a6e3a1" + +[colors.footer_bar] +foreground = "#1e1e2e" +background = "#a6adc8" + +[colors.hints.start] +foreground = "#1e1e2e" +background = "#f9e2af" + +[colors.hints.end] +foreground = "#1e1e2e" +background = "#a6adc8" + +[colors.selection] +text = "#1e1e2e" +background = "#f5e0dc" + +[colors.normal] +black = "#45475a" +red = "#f38ba8" +green = "#a6e3a1" +yellow = "#f9e2af" +blue = "#89b4fa" +magenta = "#f5c2e7" +cyan = "#94e2d5" +white = "#bac2de" + +[colors.bright] +black = "#585b70" +red = "#f38ba8" +green = "#a6e3a1" +yellow = "#f9e2af" +blue = "#89b4fa" +magenta = "#f5c2e7" +cyan = "#94e2d5" +white = "#a6adc8" + +[colors.dim] +black = "#45475a" +red = "#f38ba8" +green = "#a6e3a1" +yellow = "#f9e2af" +blue = "#89b4fa" +magenta = "#f5c2e7" +cyan = "#94e2d5" +white = "#bac2de" + +[[colors.indexed_colors]] +index = 16 +color = "#fab387" + +[[colors.indexed_colors]] +index = 17 +color = "#f5e0dc" \ No newline at end of file diff --git a/dot-config/fish/completions/lon-tool.fish b/dot-config/fish/completions/lon-tool.fish new file mode 100644 index 0000000..868f810 --- /dev/null +++ b/dot-config/fish/completions/lon-tool.fish @@ -0,0 +1,235 @@ +# fish completion for lon-tool -*- shell-script -*- + +function __lon_tool_debug + set -l file "$BASH_COMP_DEBUG_FILE" + if test -n "$file" + echo "$argv" >> $file + end +end + +function __lon_tool_perform_completion + __lon_tool_debug "Starting __lon_tool_perform_completion" + + # Extract all args except the last one + set -l args (commandline -opc) + # Extract the last arg and escape it in case it is a space + set -l lastArg (string escape -- (commandline -ct)) + + __lon_tool_debug "args: $args" + __lon_tool_debug "last arg: $lastArg" + + # Disable ActiveHelp which is not supported for fish shell + set -l requestComp "LON_TOOL_ACTIVE_HELP=0 $args[1] __complete $args[2..-1] $lastArg" + + __lon_tool_debug "Calling $requestComp" + set -l results (eval $requestComp 2> /dev/null) + + # Some programs may output extra empty lines after the directive. + # Let's ignore them or else it will break completion. + # Ref: https://github.com/spf13/cobra/issues/1279 + for line in $results[-1..1] + if test (string trim -- $line) = "" + # Found an empty line, remove it + set results $results[1..-2] + else + # Found non-empty line, we have our proper output + break + end + end + + set -l comps $results[1..-2] + set -l directiveLine $results[-1] + + # For Fish, when completing a flag with an = (e.g., -n=) + # completions must be prefixed with the flag + set -l flagPrefix (string match -r -- '-.*=' "$lastArg") + + __lon_tool_debug "Comps: $comps" + __lon_tool_debug "DirectiveLine: $directiveLine" + __lon_tool_debug "flagPrefix: $flagPrefix" + + for comp in $comps + printf "%s%s\n" "$flagPrefix" "$comp" + end + + printf "%s\n" "$directiveLine" +end + +# this function limits calls to __lon_tool_perform_completion, by caching the result behind $__lon_tool_perform_completion_once_result +function __lon_tool_perform_completion_once + __lon_tool_debug "Starting __lon_tool_perform_completion_once" + + if test -n "$__lon_tool_perform_completion_once_result" + __lon_tool_debug "Seems like a valid result already exists, skipping __lon_tool_perform_completion" + return 0 + end + + set --global __lon_tool_perform_completion_once_result (__lon_tool_perform_completion) + if test -z "$__lon_tool_perform_completion_once_result" + __lon_tool_debug "No completions, probably due to a failure" + return 1 + end + + __lon_tool_debug "Performed completions and set __lon_tool_perform_completion_once_result" + return 0 +end + +# this function is used to clear the $__lon_tool_perform_completion_once_result variable after completions are run +function __lon_tool_clear_perform_completion_once_result + __lon_tool_debug "" + __lon_tool_debug "========= clearing previously set __lon_tool_perform_completion_once_result variable ==========" + set --erase __lon_tool_perform_completion_once_result + __lon_tool_debug "Successfully erased the variable __lon_tool_perform_completion_once_result" +end + +function __lon_tool_requires_order_preservation + __lon_tool_debug "" + __lon_tool_debug "========= checking if order preservation is required ==========" + + __lon_tool_perform_completion_once + if test -z "$__lon_tool_perform_completion_once_result" + __lon_tool_debug "Error determining if order preservation is required" + return 1 + end + + set -l directive (string sub --start 2 $__lon_tool_perform_completion_once_result[-1]) + __lon_tool_debug "Directive is: $directive" + + set -l shellCompDirectiveKeepOrder 32 + set -l keeporder (math (math --scale 0 $directive / $shellCompDirectiveKeepOrder) % 2) + __lon_tool_debug "Keeporder is: $keeporder" + + if test $keeporder -ne 0 + __lon_tool_debug "This does require order preservation" + return 0 + end + + __lon_tool_debug "This doesn't require order preservation" + return 1 +end + + +# This function does two things: +# - Obtain the completions and store them in the global __lon_tool_comp_results +# - Return false if file completion should be performed +function __lon_tool_prepare_completions + __lon_tool_debug "" + __lon_tool_debug "========= starting completion logic ==========" + + # Start fresh + set --erase __lon_tool_comp_results + + __lon_tool_perform_completion_once + __lon_tool_debug "Completion results: $__lon_tool_perform_completion_once_result" + + if test -z "$__lon_tool_perform_completion_once_result" + __lon_tool_debug "No completion, probably due to a failure" + # Might as well do file completion, in case it helps + return 1 + end + + set -l directive (string sub --start 2 $__lon_tool_perform_completion_once_result[-1]) + set --global __lon_tool_comp_results $__lon_tool_perform_completion_once_result[1..-2] + + __lon_tool_debug "Completions are: $__lon_tool_comp_results" + __lon_tool_debug "Directive is: $directive" + + set -l shellCompDirectiveError 1 + set -l shellCompDirectiveNoSpace 2 + set -l shellCompDirectiveNoFileComp 4 + set -l shellCompDirectiveFilterFileExt 8 + set -l shellCompDirectiveFilterDirs 16 + + if test -z "$directive" + set directive 0 + end + + set -l compErr (math (math --scale 0 $directive / $shellCompDirectiveError) % 2) + if test $compErr -eq 1 + __lon_tool_debug "Received error directive: aborting." + # Might as well do file completion, in case it helps + return 1 + end + + set -l filefilter (math (math --scale 0 $directive / $shellCompDirectiveFilterFileExt) % 2) + set -l dirfilter (math (math --scale 0 $directive / $shellCompDirectiveFilterDirs) % 2) + if test $filefilter -eq 1; or test $dirfilter -eq 1 + __lon_tool_debug "File extension filtering or directory filtering not supported" + # Do full file completion instead + return 1 + end + + set -l nospace (math (math --scale 0 $directive / $shellCompDirectiveNoSpace) % 2) + set -l nofiles (math (math --scale 0 $directive / $shellCompDirectiveNoFileComp) % 2) + + __lon_tool_debug "nospace: $nospace, nofiles: $nofiles" + + # If we want to prevent a space, or if file completion is NOT disabled, + # we need to count the number of valid completions. + # To do so, we will filter on prefix as the completions we have received + # may not already be filtered so as to allow fish to match on different + # criteria than the prefix. + if test $nospace -ne 0; or test $nofiles -eq 0 + set -l prefix (commandline -t | string escape --style=regex) + __lon_tool_debug "prefix: $prefix" + + set -l completions (string match -r -- "^$prefix.*" $__lon_tool_comp_results) + set --global __lon_tool_comp_results $completions + __lon_tool_debug "Filtered completions are: $__lon_tool_comp_results" + + # Important not to quote the variable for count to work + set -l numComps (count $__lon_tool_comp_results) + __lon_tool_debug "numComps: $numComps" + + if test $numComps -eq 1; and test $nospace -ne 0 + # We must first split on \t to get rid of the descriptions to be + # able to check what the actual completion will be. + # We don't need descriptions anyway since there is only a single + # real completion which the shell will expand immediately. + set -l split (string split --max 1 \t $__lon_tool_comp_results[1]) + + # Fish won't add a space if the completion ends with any + # of the following characters: @=/:., + set -l lastChar (string sub -s -1 -- $split) + if not string match -r -q "[@=/:.,]" -- "$lastChar" + # In other cases, to support the "nospace" directive we trick the shell + # by outputting an extra, longer completion. + __lon_tool_debug "Adding second completion to perform nospace directive" + set --global __lon_tool_comp_results $split[1] $split[1]. + __lon_tool_debug "Completions are now: $__lon_tool_comp_results" + end + end + + if test $numComps -eq 0; and test $nofiles -eq 0 + # To be consistent with bash and zsh, we only trigger file + # completion when there are no other completions + __lon_tool_debug "Requesting file completion" + return 1 + end + end + + return 0 +end + +# Since Fish completions are only loaded once the user triggers them, we trigger them ourselves +# so we can properly delete any completions provided by another script. +# Only do this if the program can be found, or else fish may print some errors; besides, +# the existing completions will only be loaded if the program can be found. +if type -q "lon-tool" + # The space after the program name is essential to trigger completion for the program + # and not completion of the program name itself. + # Also, we use '> /dev/null 2>&1' since '&>' is not supported in older versions of fish. + complete --do-complete "lon-tool " > /dev/null 2>&1 +end + +# Remove any pre-existing completions for the program since we will be handling all of them. +complete -c lon-tool -e + +# this will get called after the two calls below and clear the $__lon_tool_perform_completion_once_result global +complete -c lon-tool -n '__lon_tool_clear_perform_completion_once_result' +# The call to __lon_tool_prepare_completions will setup __lon_tool_comp_results +# which provides the program's completion choices. +# If this doesn't require order preservation, we don't use the -k flag +complete -c lon-tool -n 'not __lon_tool_requires_order_preservation && __lon_tool_prepare_completions' -f -a '$__lon_tool_comp_results' +# otherwise we use the -k flag +complete -k -c lon-tool -n '__lon_tool_requires_order_preservation && __lon_tool_prepare_completions' -f -a '$__lon_tool_comp_results' diff --git a/dot-config/fish/completions/poetry.fish b/dot-config/fish/completions/poetry.fish new file mode 100644 index 0000000..6f8a493 --- /dev/null +++ b/dot-config/fish/completions/poetry.fish @@ -0,0 +1,257 @@ +function __fish_poetry_9cf82bc144790825_complete_no_subcommand + for i in (commandline -opc) + if contains -- $i about add build cache check config debug env export help init install list lock new publish remove run search self shell show source update version + return 1 + end + end + return 0 +end + +# global options +complete -c poetry -n '__fish_poetry_9cf82bc144790825_complete_no_subcommand' -l ansi -d 'Force ANSI output.' +complete -c poetry -n '__fish_poetry_9cf82bc144790825_complete_no_subcommand' -l directory -d 'The working directory for the Poetry command (defaults to the current working directory).' +complete -c poetry -n '__fish_poetry_9cf82bc144790825_complete_no_subcommand' -l help -d 'Display help for the given command. When no command is given display help for the list command.' +complete -c poetry -n '__fish_poetry_9cf82bc144790825_complete_no_subcommand' -l no-ansi -d 'Disable ANSI output.' +complete -c poetry -n '__fish_poetry_9cf82bc144790825_complete_no_subcommand' -l no-cache -d 'Disables Poetry source caches.' +complete -c poetry -n '__fish_poetry_9cf82bc144790825_complete_no_subcommand' -l no-interaction -d 'Do not ask any interactive question.' +complete -c poetry -n '__fish_poetry_9cf82bc144790825_complete_no_subcommand' -l no-plugins -d 'Disables plugins.' +complete -c poetry -n '__fish_poetry_9cf82bc144790825_complete_no_subcommand' -l quiet -d 'Do not output any message.' +complete -c poetry -n '__fish_poetry_9cf82bc144790825_complete_no_subcommand' -l verbose -d 'Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug.' +complete -c poetry -n '__fish_poetry_9cf82bc144790825_complete_no_subcommand' -l version -d 'Display this application version.' + +# commands +complete -c poetry -f -n '__fish_poetry_9cf82bc144790825_complete_no_subcommand' -a about -d 'Shows information about Poetry.' +complete -c poetry -f -n '__fish_poetry_9cf82bc144790825_complete_no_subcommand' -a add -d 'Adds a new dependency to pyproject.toml and installs it.' +complete -c poetry -f -n '__fish_poetry_9cf82bc144790825_complete_no_subcommand' -a build -d 'Builds a package, as a tarball and a wheel by default.' +complete -c poetry -f -n '__fish_poetry_9cf82bc144790825_complete_no_subcommand' -a cache +complete -c poetry -f -n '__fish_seen_subcommand_from cache; and not __fish_seen_subcommand_from clear list' -a clear -d 'Clears a Poetry cache by name.' +complete -c poetry -f -n '__fish_seen_subcommand_from cache; and not __fish_seen_subcommand_from clear list' -a list -d 'List Poetry\'s caches.' +complete -c poetry -f -n '__fish_poetry_9cf82bc144790825_complete_no_subcommand' -a check -d 'Validates the content of the pyproject.toml file and its consistency with the poetry.lock file.' +complete -c poetry -f -n '__fish_poetry_9cf82bc144790825_complete_no_subcommand' -a config -d 'Manages configuration settings.' +complete -c poetry -f -n '__fish_poetry_9cf82bc144790825_complete_no_subcommand' -a debug +complete -c poetry -f -n '__fish_seen_subcommand_from debug; and not __fish_seen_subcommand_from info resolve' -a info -d 'Shows debug information.' +complete -c poetry -f -n '__fish_seen_subcommand_from debug; and not __fish_seen_subcommand_from info resolve' -a resolve -d 'Debugs dependency resolution.' +complete -c poetry -f -n '__fish_poetry_9cf82bc144790825_complete_no_subcommand' -a env +complete -c poetry -f -n '__fish_seen_subcommand_from env; and not __fish_seen_subcommand_from info list remove use' -a info -d 'Displays information about the current environment.' +complete -c poetry -f -n '__fish_seen_subcommand_from env; and not __fish_seen_subcommand_from info list remove use' -a list -d 'Lists all virtualenvs associated with the current project.' +complete -c poetry -f -n '__fish_seen_subcommand_from env; and not __fish_seen_subcommand_from info list remove use' -a remove -d 'Remove virtual environments associated with the project.' +complete -c poetry -f -n '__fish_seen_subcommand_from env; and not __fish_seen_subcommand_from info list remove use' -a use -d 'Activates or creates a new virtualenv for the current project.' +complete -c poetry -f -n '__fish_poetry_9cf82bc144790825_complete_no_subcommand' -a export -d 'Exports the lock file to alternative formats.' +complete -c poetry -f -n '__fish_poetry_9cf82bc144790825_complete_no_subcommand' -a help -d 'Displays help for a command.' +complete -c poetry -f -n '__fish_poetry_9cf82bc144790825_complete_no_subcommand' -a init -d 'Creates a basic pyproject.toml file in the current directory.' +complete -c poetry -f -n '__fish_poetry_9cf82bc144790825_complete_no_subcommand' -a install -d 'Installs the project dependencies.' +complete -c poetry -f -n '__fish_poetry_9cf82bc144790825_complete_no_subcommand' -a list -d 'Lists commands.' +complete -c poetry -f -n '__fish_poetry_9cf82bc144790825_complete_no_subcommand' -a lock -d 'Locks the project dependencies.' +complete -c poetry -f -n '__fish_poetry_9cf82bc144790825_complete_no_subcommand' -a new -d 'Creates a new Python project at .' +complete -c poetry -f -n '__fish_poetry_9cf82bc144790825_complete_no_subcommand' -a publish -d 'Publishes a package to a remote repository.' +complete -c poetry -f -n '__fish_poetry_9cf82bc144790825_complete_no_subcommand' -a remove -d 'Removes a package from the project dependencies.' +complete -c poetry -f -n '__fish_poetry_9cf82bc144790825_complete_no_subcommand' -a run -d 'Runs a command in the appropriate environment.' +complete -c poetry -f -n '__fish_poetry_9cf82bc144790825_complete_no_subcommand' -a search -d 'Searches for packages on remote repositories.' +complete -c poetry -f -n '__fish_poetry_9cf82bc144790825_complete_no_subcommand' -a self +complete -c poetry -f -n '__fish_seen_subcommand_from self; and not __fish_seen_subcommand_from add install lock remove update show' -a add -d 'Add additional packages to Poetry\'s runtime environment.' +complete -c poetry -f -n '__fish_seen_subcommand_from self; and not __fish_seen_subcommand_from add install lock remove update show' -a install -d 'Install locked packages (incl. addons) required by this Poetry installation.' +complete -c poetry -f -n '__fish_seen_subcommand_from self; and not __fish_seen_subcommand_from add install lock remove update show' -a lock -d 'Lock the Poetry installation\'s system requirements.' +complete -c poetry -f -n '__fish_seen_subcommand_from self; and not __fish_seen_subcommand_from add install lock remove update show' -a remove -d 'Remove additional packages from Poetry\'s runtime environment.' +complete -c poetry -f -n '__fish_seen_subcommand_from self; and not __fish_seen_subcommand_from add install lock remove update show' -a show -d 'Show packages from Poetry\'s runtime environment.' +complete -c poetry -f -n '__fish_seen_subcommand_from self; and not __fish_seen_subcommand_from add install lock remove update show' -a plugins -d 'Shows information about the currently installed plugins.' +complete -c poetry -f -n '__fish_seen_subcommand_from self; and not __fish_seen_subcommand_from add install lock remove update show' -a update -d 'Updates Poetry to the latest version.' +complete -c poetry -f -n '__fish_poetry_9cf82bc144790825_complete_no_subcommand' -a shell -d 'Spawns a shell within the virtual environment.' +complete -c poetry -f -n '__fish_poetry_9cf82bc144790825_complete_no_subcommand' -a show -d 'Shows information about packages.' +complete -c poetry -f -n '__fish_poetry_9cf82bc144790825_complete_no_subcommand' -a source +complete -c poetry -f -n '__fish_seen_subcommand_from source; and not __fish_seen_subcommand_from add remove show' -a add -d 'Add source configuration for project.' +complete -c poetry -f -n '__fish_seen_subcommand_from source; and not __fish_seen_subcommand_from add remove show' -a remove -d 'Remove source configured for the project.' +complete -c poetry -f -n '__fish_seen_subcommand_from source; and not __fish_seen_subcommand_from add remove show' -a show -d 'Show information about sources configured for the project.' +complete -c poetry -f -n '__fish_poetry_9cf82bc144790825_complete_no_subcommand' -a update -d 'Update the dependencies as according to the pyproject.toml file.' +complete -c poetry -f -n '__fish_poetry_9cf82bc144790825_complete_no_subcommand' -a version -d 'Shows the version of the project or bumps it when a valid bump rule is provided.' + +# command options + +# about + +# add +complete -c poetry -n '__fish_seen_subcommand_from add' -l allow-prereleases -d 'Accept prereleases.' +complete -c poetry -n '__fish_seen_subcommand_from add' -l dev -d 'Add as a development dependency. (Deprecated) Use --group=dev instead.' +complete -c poetry -n '__fish_seen_subcommand_from add' -l dry-run -d 'Output the operations but do not execute anything (implicitly enables --verbose).' +complete -c poetry -n '__fish_seen_subcommand_from add' -l editable -d 'Add vcs/path dependencies as editable.' +complete -c poetry -n '__fish_seen_subcommand_from add' -l extras -d 'Extras to activate for the dependency.' +complete -c poetry -n '__fish_seen_subcommand_from add' -l group -d 'The group to add the dependency to.' +complete -c poetry -n '__fish_seen_subcommand_from add' -l lock -d 'Do not perform operations (only update the lockfile).' +complete -c poetry -n '__fish_seen_subcommand_from add' -l optional -d 'Add as an optional dependency.' +complete -c poetry -n '__fish_seen_subcommand_from add' -l platform -d 'Platforms for which the dependency must be installed.' +complete -c poetry -n '__fish_seen_subcommand_from add' -l python -d 'Python version for which the dependency must be installed.' +complete -c poetry -n '__fish_seen_subcommand_from add' -l source -d 'Name of the source to use to install the package.' + +# build +complete -c poetry -n '__fish_seen_subcommand_from build' -l format -d 'Limit the format to either sdist or wheel.' +complete -c poetry -n '__fish_seen_subcommand_from build' -l output -d 'Set output directory for build artifacts. Default is `dist`.' + +# cache clear +complete -c poetry -n '__fish_seen_subcommand_from cache; and __fish_seen_subcommand_from clear' -l all -d 'Clear all entries in the cache.' + +# cache list + +# check +complete -c poetry -n '__fish_seen_subcommand_from check' -l lock -d 'Checks that poetry.lock exists for the current version of pyproject.toml.' + +# config +complete -c poetry -n '__fish_seen_subcommand_from config' -l list -d 'List configuration settings.' +complete -c poetry -n '__fish_seen_subcommand_from config' -l local -d 'Set/Get from the project\'s local configuration.' +complete -c poetry -n '__fish_seen_subcommand_from config' -l unset -d 'Unset configuration setting.' + +# debug info + +# debug resolve +complete -c poetry -n '__fish_seen_subcommand_from debug; and __fish_seen_subcommand_from resolve' -l extras -d 'Extras to activate for the dependency.' +complete -c poetry -n '__fish_seen_subcommand_from debug; and __fish_seen_subcommand_from resolve' -l install -d 'Show what would be installed for the current system.' +complete -c poetry -n '__fish_seen_subcommand_from debug; and __fish_seen_subcommand_from resolve' -l python -d 'Python version(s) to use for resolution.' +complete -c poetry -n '__fish_seen_subcommand_from debug; and __fish_seen_subcommand_from resolve' -l tree -d 'Display the dependency tree.' + +# env info +complete -c poetry -n '__fish_seen_subcommand_from env; and __fish_seen_subcommand_from info' -l executable -d 'Only display the environment\'s python executable path.' +complete -c poetry -n '__fish_seen_subcommand_from env; and __fish_seen_subcommand_from info' -l path -d 'Only display the environment\'s path.' + +# env list +complete -c poetry -n '__fish_seen_subcommand_from env; and __fish_seen_subcommand_from list' -l full-path -d 'Output the full paths of the virtualenvs.' + +# env remove +complete -c poetry -n '__fish_seen_subcommand_from env; and __fish_seen_subcommand_from remove' -l all -d 'Remove all managed virtual environments associated with the project.' + +# env use + +# export +complete -c poetry -n '__fish_seen_subcommand_from export' -l all-extras -d 'Include all sets of extra dependencies.' +complete -c poetry -n '__fish_seen_subcommand_from export' -l dev -d 'Include development dependencies. (Deprecated)' +complete -c poetry -n '__fish_seen_subcommand_from export' -l extras -d 'Extra sets of dependencies to include.' +complete -c poetry -n '__fish_seen_subcommand_from export' -l format -d 'Format to export to. Currently, only constraints.txt and requirements.txt are supported.' +complete -c poetry -n '__fish_seen_subcommand_from export' -l only -d 'The only dependency groups to include.' +complete -c poetry -n '__fish_seen_subcommand_from export' -l output -d 'The name of the output file.' +complete -c poetry -n '__fish_seen_subcommand_from export' -l with -d 'The optional dependency groups to include.' +complete -c poetry -n '__fish_seen_subcommand_from export' -l with-credentials -d 'Include credentials for extra indices.' +complete -c poetry -n '__fish_seen_subcommand_from export' -l without -d 'The dependency groups to ignore.' +complete -c poetry -n '__fish_seen_subcommand_from export' -l without-hashes -d 'Exclude hashes from the exported file.' +complete -c poetry -n '__fish_seen_subcommand_from export' -l without-urls -d 'Exclude source repository urls from the exported file.' + +# help + +# init +complete -c poetry -n '__fish_seen_subcommand_from init' -l author -d 'Author name of the package.' +complete -c poetry -n '__fish_seen_subcommand_from init' -l dependency -d 'Package to require, with an optional version constraint, e.g. requests:^2.10.0 or requests=2.11.1.' +complete -c poetry -n '__fish_seen_subcommand_from init' -l description -d 'Description of the package.' +complete -c poetry -n '__fish_seen_subcommand_from init' -l dev-dependency -d 'Package to require for development, with an optional version constraint, e.g. requests:^2.10.0 or requests=2.11.1.' +complete -c poetry -n '__fish_seen_subcommand_from init' -l license -d 'License of the package.' +complete -c poetry -n '__fish_seen_subcommand_from init' -l name -d 'Name of the package.' +complete -c poetry -n '__fish_seen_subcommand_from init' -l python -d 'Compatible Python versions.' + +# install +complete -c poetry -n '__fish_seen_subcommand_from install' -l all-extras -d 'Install all extra dependencies.' +complete -c poetry -n '__fish_seen_subcommand_from install' -l compile -d 'Compile Python source files to bytecode. (This option has no effect if modern-installation is disabled because the old installer always compiles.)' +complete -c poetry -n '__fish_seen_subcommand_from install' -l dry-run -d 'Output the operations but do not execute anything (implicitly enables --verbose).' +complete -c poetry -n '__fish_seen_subcommand_from install' -l extras -d 'Extra sets of dependencies to install.' +complete -c poetry -n '__fish_seen_subcommand_from install' -l no-dev -d 'Do not install the development dependencies. (Deprecated)' +complete -c poetry -n '__fish_seen_subcommand_from install' -l no-directory -d 'Do not install any directory path dependencies; useful to install dependencies without source code, e.g. for caching of Docker layers)' +complete -c poetry -n '__fish_seen_subcommand_from install' -l no-root -d 'Do not install the root package (the current project).' +complete -c poetry -n '__fish_seen_subcommand_from install' -l only -d 'The only dependency groups to include.' +complete -c poetry -n '__fish_seen_subcommand_from install' -l only-root -d 'Exclude all dependencies.' +complete -c poetry -n '__fish_seen_subcommand_from install' -l remove-untracked -d 'Removes packages not present in the lock file. (Deprecated)' +complete -c poetry -n '__fish_seen_subcommand_from install' -l sync -d 'Synchronize the environment with the locked packages and the specified groups.' +complete -c poetry -n '__fish_seen_subcommand_from install' -l with -d 'The optional dependency groups to include.' +complete -c poetry -n '__fish_seen_subcommand_from install' -l without -d 'The dependency groups to ignore.' + +# list + +# lock +complete -c poetry -n '__fish_seen_subcommand_from lock' -l check -d 'Check that the poetry.lock file corresponds to the current version of pyproject.toml. (Deprecated) Use poetry check --lock instead.' +complete -c poetry -n '__fish_seen_subcommand_from lock' -l no-update -d 'Do not update locked versions, only refresh lock file.' + +# new +complete -c poetry -n '__fish_seen_subcommand_from new' -l name -d 'Set the resulting package name.' +complete -c poetry -n '__fish_seen_subcommand_from new' -l readme -d 'Specify the readme file format. Default is md.' +complete -c poetry -n '__fish_seen_subcommand_from new' -l src -d 'Use the src layout for the project.' + +# publish +complete -c poetry -n '__fish_seen_subcommand_from publish' -l build -d 'Build the package before publishing.' +complete -c poetry -n '__fish_seen_subcommand_from publish' -l cert -d 'Certificate authority to access the repository.' +complete -c poetry -n '__fish_seen_subcommand_from publish' -l client-cert -d 'Client certificate to access the repository.' +complete -c poetry -n '__fish_seen_subcommand_from publish' -l dist-dir -d 'Dist directory where built artifact are stored. Default is `dist`.' +complete -c poetry -n '__fish_seen_subcommand_from publish' -l dry-run -d 'Perform all actions except upload the package.' +complete -c poetry -n '__fish_seen_subcommand_from publish' -l password -d 'The password to access the repository.' +complete -c poetry -n '__fish_seen_subcommand_from publish' -l repository -d 'The repository to publish the package to.' +complete -c poetry -n '__fish_seen_subcommand_from publish' -l skip-existing -d 'Ignore errors from files already existing in the repository.' +complete -c poetry -n '__fish_seen_subcommand_from publish' -l username -d 'The username to access the repository.' + +# remove +complete -c poetry -n '__fish_seen_subcommand_from remove' -l dev -d 'Remove a package from the development dependencies. (Deprecated) Use --group=dev instead.' +complete -c poetry -n '__fish_seen_subcommand_from remove' -l dry-run -d 'Output the operations but do not execute anything (implicitly enables --verbose).' +complete -c poetry -n '__fish_seen_subcommand_from remove' -l group -d 'The group to remove the dependency from.' +complete -c poetry -n '__fish_seen_subcommand_from remove' -l lock -d 'Do not perform operations (only update the lockfile).' + +# run + +# search + +# self add +complete -c poetry -n '__fish_seen_subcommand_from self; and __fish_seen_subcommand_from add' -l allow-prereleases -d 'Accept prereleases.' +complete -c poetry -n '__fish_seen_subcommand_from self; and __fish_seen_subcommand_from add' -l dry-run -d 'Output the operations but do not execute anything (implicitly enables --verbose).' +complete -c poetry -n '__fish_seen_subcommand_from self; and __fish_seen_subcommand_from add' -l editable -d 'Add vcs/path dependencies as editable.' +complete -c poetry -n '__fish_seen_subcommand_from self; and __fish_seen_subcommand_from add' -l extras -d 'Extras to activate for the dependency.' +complete -c poetry -n '__fish_seen_subcommand_from self; and __fish_seen_subcommand_from add' -l source -d 'Name of the source to use to install the package.' + +# self install +complete -c poetry -n '__fish_seen_subcommand_from self; and __fish_seen_subcommand_from install' -l dry-run -d 'Output the operations but do not execute anything (implicitly enables --verbose).' +complete -c poetry -n '__fish_seen_subcommand_from self; and __fish_seen_subcommand_from install' -l sync -d 'Synchronize the environment with the locked packages and the specified groups.' + +# self lock +complete -c poetry -n '__fish_seen_subcommand_from self; and __fish_seen_subcommand_from lock' -l check -d 'Check that the poetry.lock file corresponds to the current version of pyproject.toml. (Deprecated) Use poetry check --lock instead.' +complete -c poetry -n '__fish_seen_subcommand_from self; and __fish_seen_subcommand_from lock' -l no-update -d 'Do not update locked versions, only refresh lock file.' + +# self remove +complete -c poetry -n '__fish_seen_subcommand_from self; and __fish_seen_subcommand_from remove' -l dry-run -d 'Output the operations but do not execute anything (implicitly enables --verbose).' + +# self show +complete -c poetry -n '__fish_seen_subcommand_from self; and __fish_seen_subcommand_from show' -l addons -d 'List only add-on packages installed.' +complete -c poetry -n '__fish_seen_subcommand_from self; and __fish_seen_subcommand_from show' -l latest -d 'Show the latest version.' +complete -c poetry -n '__fish_seen_subcommand_from self; and __fish_seen_subcommand_from show' -l outdated -d 'Show the latest version but only for packages that are outdated.' +complete -c poetry -n '__fish_seen_subcommand_from self; and __fish_seen_subcommand_from show' -l tree -d 'List the dependencies as a tree.' + +# self show plugins + +# self update +complete -c poetry -n '__fish_seen_subcommand_from self; and __fish_seen_subcommand_from update' -l dry-run -d 'Output the operations but do not execute anything (implicitly enables --verbose).' +complete -c poetry -n '__fish_seen_subcommand_from self; and __fish_seen_subcommand_from update' -l preview -d 'Allow the installation of pre-release versions.' + +# shell + +# show +complete -c poetry -n '__fish_seen_subcommand_from show' -l all -d 'Show all packages (even those not compatible with current system).' +complete -c poetry -n '__fish_seen_subcommand_from show' -l latest -d 'Show the latest version.' +complete -c poetry -n '__fish_seen_subcommand_from show' -l no-dev -d 'Do not list the development dependencies. (Deprecated)' +complete -c poetry -n '__fish_seen_subcommand_from show' -l only -d 'The only dependency groups to include.' +complete -c poetry -n '__fish_seen_subcommand_from show' -l outdated -d 'Show the latest version but only for packages that are outdated.' +complete -c poetry -n '__fish_seen_subcommand_from show' -l top-level -d 'Show only top-level dependencies.' +complete -c poetry -n '__fish_seen_subcommand_from show' -l tree -d 'List the dependencies as a tree.' +complete -c poetry -n '__fish_seen_subcommand_from show' -l why -d 'When showing the full list, or a --tree for a single package, display whether they are a direct dependency or required by other packages' +complete -c poetry -n '__fish_seen_subcommand_from show' -l with -d 'The optional dependency groups to include.' +complete -c poetry -n '__fish_seen_subcommand_from show' -l without -d 'The dependency groups to ignore.' + +# source add +complete -c poetry -n '__fish_seen_subcommand_from source; and __fish_seen_subcommand_from add' -l default -d 'Set this source as the default (disable PyPI). A default source will also be the fallback source if you add other sources. (Deprecated, use --priority)' +complete -c poetry -n '__fish_seen_subcommand_from source; and __fish_seen_subcommand_from add' -l priority -d 'Set the priority of this source. One of: default, primary, secondary, supplemental, explicit. Defaults to primary.' +complete -c poetry -n '__fish_seen_subcommand_from source; and __fish_seen_subcommand_from add' -l secondary -d 'Set this source as secondary. (Deprecated, use --priority)' + +# source remove + +# source show + +# update +complete -c poetry -n '__fish_seen_subcommand_from update' -l dry-run -d 'Output the operations but do not execute anything (implicitly enables --verbose).' +complete -c poetry -n '__fish_seen_subcommand_from update' -l lock -d 'Do not perform operations (only update the lockfile).' +complete -c poetry -n '__fish_seen_subcommand_from update' -l no-dev -d 'Do not update the development dependencies. (Deprecated)' +complete -c poetry -n '__fish_seen_subcommand_from update' -l only -d 'The only dependency groups to include.' +complete -c poetry -n '__fish_seen_subcommand_from update' -l sync -d 'Synchronize the environment with the locked packages and the specified groups.' +complete -c poetry -n '__fish_seen_subcommand_from update' -l with -d 'The optional dependency groups to include.' +complete -c poetry -n '__fish_seen_subcommand_from update' -l without -d 'The dependency groups to ignore.' + +# version +complete -c poetry -n '__fish_seen_subcommand_from version' -l dry-run -d 'Do not update pyproject.toml file' +complete -c poetry -n '__fish_seen_subcommand_from version' -l next-phase -d 'Increment the phase of the current version' +complete -c poetry -n '__fish_seen_subcommand_from version' -l short -d 'Output the version number only' diff --git a/dot-config/fish/config.fish b/dot-config/fish/config.fish new file mode 100644 index 0000000..e1407e2 --- /dev/null +++ b/dot-config/fish/config.fish @@ -0,0 +1,77 @@ +set fish_greeting "" + +function filesize + for file in $argv + if [ -f "$file" ] + echo "$file: $(stat -c %s "$file" | numfmt --to=iec)" + else + echo "$file: not found" + end + end +end + +function _fetch + # if which pfetch > /dev/null 2>&1 && [ "$VSCODE_INJECTION" != "1" ] + # export PF_INFO="ascii title os host kernel uptime memory de" + # #export PF_ASCII="arch" + # pfetch + # end + if which ufetch > /dev/null 2>&1 && [ "$VSCODE_INJECTION" != "1" ] + ufetch + end +end + +if which pyenv > /dev/null 2>&1 + pyenv init - | source +end + +if [ "$TERM" = "foot" ] || [ "$TERM" = "xterm-kitty" ] + alias ssh="TERM=xterm-256color $(which ssh)" + alias gg="TERM=xterm-256color $(which gg)" +end + +if status is-interactive + bind \cl 'clear; _fetch; commandline -f repaint' + bind \cb btop + bind \cs 'source ~/.config/fish/config.fish' + + if which eza > /dev/null 2>&1 + alias ls="eza --icons=auto" + else if which exa > /dev/null 2>&1 + alias ls="exa --icons=auto" + end + + if which bat > /dev/null 2>&1 + alias cat="bat" + else if which batcat > /dev/null 2>&1 + alias cat="batcat" + end + + if which distrobox-enter > /dev/null 2>&1 + alias denter=distrobox-enter + end + + if which nvim > /dev/null 2>&1 + alias v="nvim" + alias edit="nvim" + alias e="nvim" + alias V="sudoedit" + export EDITOR=nvim + end + + alias cdt="cd (mktemp -d)" + alias ":q"=exit + + if which zoxide > /dev/null 2>&1 + zoxide init --cmd cd fish | source + end + + if [ "$reload" = "" ] + _fetch + end + + export VIRTUAL_ENV_DISABLE_PROMPT=0 + set reload "done" +end + +fish_add_path /home/timoxa0/.spicetify diff --git a/dot-config/fish/fish_variables b/dot-config/fish/fish_variables new file mode 100644 index 0000000..ab9e0af --- /dev/null +++ b/dot-config/fish/fish_variables @@ -0,0 +1,78 @@ +# This file contains fish universal variable definitions. +# VERSION: 3.0 +SETUVAR __fish_initialized:3400 +SETUVAR _fisher_upgraded_to_4_4:\x1d +SETUVAR fish_color_autosuggestion:brblack +SETUVAR fish_color_cancel:\x2dr +SETUVAR fish_color_command:blue +SETUVAR fish_color_comment:red +SETUVAR fish_color_cwd:green +SETUVAR fish_color_cwd_root:red +SETUVAR fish_color_end:green +SETUVAR fish_color_error:brred +SETUVAR fish_color_escape:brcyan +SETUVAR fish_color_history_current:\x2d\x2dbold +SETUVAR fish_color_host:normal +SETUVAR fish_color_host_remote:yellow +SETUVAR fish_color_normal:normal +SETUVAR fish_color_operator:brcyan +SETUVAR fish_color_param:cyan +SETUVAR fish_color_quote:yellow +SETUVAR fish_color_redirection:cyan\x1e\x2d\x2dbold +SETUVAR fish_color_search_match:bryellow\x1e\x2d\x2dbackground\x3dbrblack +SETUVAR fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrblack +SETUVAR fish_color_status:red +SETUVAR fish_color_user:brgreen +SETUVAR fish_color_valid_path:\x2d\x2dunderline +SETUVAR fish_key_bindings:fish_default_key_bindings +SETUVAR fish_pager_color_completion:normal +SETUVAR fish_pager_color_description:yellow\x1e\x2di +SETUVAR fish_pager_color_prefix:normal\x1e\x2d\x2dbold\x1e\x2d\x2dunderline +SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan +SETUVAR fish_pager_color_selected_background:\x2dr +SETUVAR fish_user_paths:/home/timoxa0/\x2espicetify\x1e/home/timoxa0/\x2econfig/hypr/bin\x1e/home/timoxa0/\x2elocal/bin +SETUVAR pure_begin_prompt_with_current_directory:true +SETUVAR pure_check_for_new_release:false +SETUVAR pure_color_at_sign:pure_color_mute +SETUVAR pure_color_command_duration:pure_color_warning +SETUVAR pure_color_current_directory:pure_color_primary +SETUVAR pure_color_danger:red +SETUVAR pure_color_dark:black +SETUVAR pure_color_git_branch:pure_color_mute +SETUVAR pure_color_git_dirty:pure_color_mute +SETUVAR pure_color_git_stash:pure_color_info +SETUVAR pure_color_git_unpulled_commits:pure_color_info +SETUVAR pure_color_git_unpushed_commits:pure_color_info +SETUVAR pure_color_hostname:pure_color_mute +SETUVAR pure_color_info:cyan +SETUVAR pure_color_jobs:pure_color_normal +SETUVAR pure_color_light:white +SETUVAR pure_color_mute:brblack +SETUVAR pure_color_normal:normal +SETUVAR pure_color_prefix_root_prompt:pure_color_danger +SETUVAR pure_color_primary:blue +SETUVAR pure_color_prompt_on_error:pure_color_danger +SETUVAR pure_color_prompt_on_success:pure_color_success +SETUVAR pure_color_success:magenta +SETUVAR pure_color_system_time:pure_color_mute +SETUVAR pure_color_username_normal:pure_color_mute +SETUVAR pure_color_username_root:pure_color_light +SETUVAR pure_color_virtualenv:pure_color_mute +SETUVAR pure_color_warning:yellow +SETUVAR pure_enable_git:true +SETUVAR pure_enable_single_line_prompt:false +SETUVAR pure_reverse_prompt_symbol_in_vimode:true +SETUVAR pure_separate_prompt_on_error:false +SETUVAR pure_show_jobs:false +SETUVAR pure_show_prefix_root_prompt:false +SETUVAR pure_show_subsecond_command_duration:false +SETUVAR pure_show_system_time:false +SETUVAR pure_symbol_git_dirty:\x2a +SETUVAR pure_symbol_git_stash:\u2261 +SETUVAR pure_symbol_git_unpulled_commits:\u21e3 +SETUVAR pure_symbol_git_unpushed_commits:\u21e1 +SETUVAR pure_symbol_prefix_root_prompt:\x23 +SETUVAR pure_symbol_prompt:\u276f +SETUVAR pure_symbol_reverse_prompt:\u276e +SETUVAR pure_symbol_title_bar_separator:\x2d +SETUVAR pure_threshold_command_duration:5 diff --git a/dot-config/fish/functions/fish_prompt.fish b/dot-config/fish/functions/fish_prompt.fish new file mode 100644 index 0000000..cf00f7c --- /dev/null +++ b/dot-config/fish/functions/fish_prompt.fish @@ -0,0 +1,34 @@ +# name: Default +# author: Lily Ballard + +function fish_prompt --description 'Write out the prompt' + set -l last_pipestatus $pipestatus + set -lx __fish_last_status $status # Export for __fish_print_pipestatus. + set -l normal (set_color normal) + set -q fish_color_status + or set -g fish_color_status red + + # Color the prompt differently when we're root + set -l color_cwd $fish_color_cwd + set -l suffix '>' + if functions -q fish_is_root_user; and fish_is_root_user + if set -q fish_color_cwd_root + set color_cwd $fish_color_cwd_root + end + set suffix '#' + end + + # Write pipestatus + # If the status was carried over (if no command is issued or if `set` leaves the status untouched), don't bold it. + set -l bold_flag --bold + set -q __fish_prompt_status_generation; or set -g __fish_prompt_status_generation $status_generation + if test $__fish_prompt_status_generation = $status_generation + set bold_flag + end + set __fish_prompt_status_generation $status_generation + set -l status_color (set_color $fish_color_status) + set -l statusb_color (set_color $bold_flag $fish_color_status) + set -l prompt_status (__fish_print_pipestatus "[" "]" "|" "$status_color" "$statusb_color" $last_pipestatus) + + echo -n -s (prompt_login)' ' (set_color $color_cwd) (prompt_pwd) $normal (fish_vcs_prompt) $normal " "$prompt_status $suffix " " +end diff --git a/dot-config/fish/functions/fish_right_prompt.fish b/dot-config/fish/functions/fish_right_prompt.fish new file mode 100644 index 0000000..398ca44 --- /dev/null +++ b/dot-config/fish/functions/fish_right_prompt.fish @@ -0,0 +1,6 @@ +function fish_right_prompt -d "Write out the right prompt" + if set -q CONTAINER_ID + set distrobox_prefix " $(string replace -r -a '\b([\w])' '\U$0' "$CONTAINER_ID") " + end + echo -n -s $distrobox_prefix +end diff --git a/dot-config/hypr/bin/autostart b/dot-config/hypr/bin/autostart new file mode 100755 index 0000000..425868d --- /dev/null +++ b/dot-config/hypr/bin/autostart @@ -0,0 +1,20 @@ +#!/usr/bin/env bash + +dbus-update-activation-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=Hyprland & +gsettings set org.gnome.desktop.wm.preferences button-layout ':' & +waybar -c ~/.config/waybar/waybar.jsonc -s ~/.config/waybar/waybar.css & +hyprpaper -c ~/.config/hypr/hyprpaper.conf & +hypridle -c ~/.config/hypr/hypridle.conf & +/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 & +mako -c ~/.config/mako/mako.conf & +/usr/lib/xdg-desktop-portal -r & +nm-applet & + +clash-verge & +bash -c "sleep 2; easyeffects --gapplication-service" & + +ping 1.1.1.1 -c 1 && { + sleep 3 + vesktop & + telegram-desktop -startintray & +} diff --git a/dot-config/hypr/bin/lockscreen b/dot-config/hypr/bin/lockscreen new file mode 100755 index 0000000..637aa06 --- /dev/null +++ b/dot-config/hypr/bin/lockscreen @@ -0,0 +1,4 @@ +#!/usr/bin/env fish +if not ps -e | grep hyprlock + hyprlock -c ~/.config/hypr/hyprlock.conf +end diff --git a/dot-config/hypr/bin/powermenu b/dot-config/hypr/bin/powermenu new file mode 100755 index 0000000..2f10456 --- /dev/null +++ b/dot-config/hypr/bin/powermenu @@ -0,0 +1,108 @@ +#!/usr/bin/env bash + +## Author : Aditya Shakya (adi1090x) +## Github : @adi1090x +# +## Rofi : Power Menu + +# CMDs +uptime="`uptime -p | sed -e 's/up //g'`" +host=`cat /etc/hostname` + +# Options +hibernate='󱖒' +shutdown='⏼' +reboot='' +lock='' +suspend='' +logout='' +yes='' +no='' + +# Rofi CMD +rofi_cmd() { + rofi -dmenu \ + -p "$USER@$host" \ + -mesg "Uptime: $uptime" \ + -theme ~/.config/rofi/powermenu.rasi +} + +# Confirmation CMD +confirm_cmd() { + rofi -theme-str 'window {location: center; anchor: center; fullscreen: false; width: 350px;}' \ + -theme-str 'mainbox {children: [ "message", "listview" ];}' \ + -theme-str 'listview {columns: 2; lines: 1;}' \ + -theme-str 'element-text {horizontal-align: 0.5;}' \ + -theme-str 'textbox {horizontal-align: 0.5;}' \ + -dmenu \ + -p 'Confirmation' \ + -mesg 'Are you Sure?' \ + -theme ~/.config/rofi/powermenu.rasi +} + +# Ask for confirmation +confirm_exit() { + echo -e "$yes\n$no" | confirm_cmd +} + +# Pass variables to rofi dmenu +run_rofi() { + echo -e "$lock\n$logout\n$reboot\n$shutdown" | rofi_cmd +} + +# Execute Command +run_cmd() { + selected="$(confirm_exit)" + if [[ "$selected" == "$yes" ]]; then + if [[ $1 == '--shutdown' ]]; then + systemctl poweroff + elif [[ $1 == '--reboot' ]]; then + systemctl reboot + elif [[ $1 == '--hibernate' ]]; then + systemctl hibernate + elif [[ $1 == '--suspend' ]]; then + systemctl suspend + elif [[ $1 == '--logout' ]]; then + if [[ "$DESKTOP_SESSION" == 'openbox' ]]; then + openbox --exit + elif [[ "$DESKTOP_SESSION" == 'bspwm' ]]; then + bspc quit + elif [[ "$DESKTOP_SESSION" == 'i3' ]]; then + i3-msg exit + elif [[ "$DESKTOP_SESSION" == 'plasma' ]]; then + qdbus org.kde.ksmserver /KSMServer logout 0 0 0 + elif [[ "$XDG_CURRENT_DESKTOP" == 'Hyprland' ]]; then + hyprctl dispatch exit + fi + fi + else + exit 0 + fi +} + +# Actions +chosen="$(run_rofi)" +case ${chosen} in + $shutdown) + run_cmd --shutdown + ;; + $reboot) + run_cmd --reboot + ;; + $hibernate) + run_cmd --hibernate + ;; + $lock) + if [[ -x '/usr/bin/betterlockscreen' ]]; then + betterlockscreen -l + elif [[ -x '/usr/bin/i3lock' ]]; then + i3lock + fi + ;; + $suspend) + run_cmd --suspend + ;; + $logout) + run_cmd --logout + ;; +esac diff --git a/dot-config/hypr/bin/runner b/dot-config/hypr/bin/runner new file mode 100755 index 0000000..6893988 --- /dev/null +++ b/dot-config/hypr/bin/runner @@ -0,0 +1 @@ +rofi -show drun -theme ~/.config/rofi/runner.rasi diff --git a/dot-config/hypr/bin/setwal b/dot-config/hypr/bin/setwal new file mode 100755 index 0000000..88b5e83 --- /dev/null +++ b/dot-config/hypr/bin/setwal @@ -0,0 +1,54 @@ +#!/usr/bin/env bash +printf "%s\n" "Currently disabled" + +{ [[ -z $1 ]] || [[ -z $2 ]]; } && { + printf "%s\n" "Usage: setwal /path/to/wallpaper mode" + exit 1 +} + +[ ! -f "$1" ] && { + printf "File not found: %s\n" "$1" + exit 2 +} + +yes | ffmpeg -i "$1" ~/.config/hypr/wallpaper.png >/dev/null 2>&1 || { + printf "Failed to copy wallpaper from %s\n" "$1" + exit 3 +} + +{ + hyprctl hyprpaper unload all >/dev/null + hyprctl hyprpaper preload ~/.config/hypr/wallpaper.png >/dev/null + hyprctl hyprpaper wallpaper ",~/.config/hypr/wallpaper.png" >/dev/null +} & + +update() { + makoctl reload +} + +dark() { + matugen image ~/.config/hypr/wallpaper.png -c ~/.config/hypr/matugen/config.toml -m dark + gsettings set org.gnome.desktop.interface gtk-theme "adw-gtk3-not-exist" >/dev/null + sleep 0.1 + gsettings set org.gnome.desktop.interface gtk-theme "adw-gtk3-dark" >/dev/null + gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark' + update +} + +light() { + matugen image ~/.config/hypr/wallpaper.png -c ~/.config/hypr/matugen/config.toml -m light + gsettings set org.gnome.desktop.interface gtk-theme "adw-gtk3-not-exist" >/dev/null + sleep 0.1 + gsettings set org.gnome.desktop.interface gtk-theme "adw-gtk3" >/dev/null + gsettings set org.gnome.desktop.interface color-scheme 'prefer-light' + update +} + +case "$2" in + "light") + light + ;; + *) + dark + ;; +esac diff --git a/dot-config/hypr/binds.conf b/dot-config/hypr/binds.conf new file mode 100644 index 0000000..994ef53 --- /dev/null +++ b/dot-config/hypr/binds.conf @@ -0,0 +1,61 @@ +#===========================================================================# +# | bind | dispatcher | args # +#===========================================================================# + +bind = SUPER, RETURN, exec, $terminal +bind = SUPER, E, exec, $fileManager +bind = SUPER, D, exec, $discord +bind = SUPER, T, exec, $telegram +bind = SUPER, B, exec, $browser + +bind = SUPER, Q, killactive, +bind = SUPER, M, exit, +bind = SUPER, C, togglefloating, +bind = SUPER, SPACE, exec, $menu +bind = SUPER, P, pseudo, # dwindle +bind = SUPER, X, togglesplit, # dwindle +bind = SUPER, Home, exec, $sshot region +bind = SUPER, Prior, exec, $sshot window +bind = SUPER, Next, exec, $sshot output +bind = SUPER Ctrl, Q, exec, $locker + +bind = , XF86AudioPlay, exec, $pctl play-pause +bind = , XF86AudioNext, exec, $pctl next +bind = , XF86AudioPrev, exec, $pctl previous +bind = , XF86AudioMute, exec, pamixer -t +bind = , XF86AudioRaiseVolume, exec, pamixer -i 2 +bind = , XF86AudioLowerVolume, exec, pamixer -d 2 + +bind = SUPER, left, movefocus, l +bind = SUPER, right, movefocus, r +bind = SUPER, up, movefocus, u +bind = SUPER, down, movefocus, d + +bind = SUPER, 1, workspace, 1 +bind = SUPER, 2, workspace, 2 +bind = SUPER, 3, workspace, 3 +bind = SUPER, 4, workspace, 4 +bind = SUPER, 5, workspace, 5 +bind = SUPER, 6, workspace, 6 +bind = SUPER, 7, workspace, 7 +bind = SUPER, 8, workspace, 8 +bind = SUPER, 9, workspace, 9 +bind = SUPER, 0, workspace, 10 +#bind = SUPER, TAB, overview:toggle + +bind = SUPER SHIFT, 1, movetoworkspace, 1 +bind = SUPER SHIFT, 2, movetoworkspace, 2 +bind = SUPER SHIFT, 3, movetoworkspace, 3 +bind = SUPER SHIFT, 4, movetoworkspace, 4 +bind = SUPER SHIFT, 5, movetoworkspace, 5 +bind = SUPER SHIFT, 6, movetoworkspace, 6 +bind = SUPER SHIFT, 7, movetoworkspace, 7 +bind = SUPER SHIFT, 8, movetoworkspace, 8 +bind = SUPER SHIFT, 9, movetoworkspace, 9 +bind = SUPER SHIFT, 0, movetoworkspace, 10 + +bind = SUPER, mouse_down, workspace, e+1 +bind = SUPER, mouse_up, workspace, e-1 + +bindm = SUPER, mouse:272, movewindow +bindm = SUPER, mouse:273, resizewindow diff --git a/dot-config/hypr/colors.conf b/dot-config/hypr/colors.conf new file mode 100644 index 0000000..35d553f --- /dev/null +++ b/dot-config/hypr/colors.conf @@ -0,0 +1,5 @@ +$primary = rgb(89b4fa) +$secondary = rgb(313244) +$bg = rgb(1e1e2e) +$fg = rgb(363a4f) + diff --git a/dot-config/hypr/decorations.conf b/dot-config/hypr/decorations.conf new file mode 100644 index 0000000..1e2edaf --- /dev/null +++ b/dot-config/hypr/decorations.conf @@ -0,0 +1,76 @@ +exec-once = gsettings set org.gnome.desktop.interface gtk-theme "catppuccin-mocha-blue-standard+default" +exec-once = gsettings set org.gnome.desktop.interface icon-theme Papirus-Dark +exec-once = gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark' +exec-once = gsettings set org.gnome.desktop.interface gtk-color-scheme 'prefer-dark' +exec-once = gsettings set org.gnome.desktop.interface cursor-theme 'Bibata-Modern-Classic' + +general { + col.active_border = $primary + col.inactive_border = $secondary + gaps_in = 5 + gaps_out = 10 + border_size = 3 + resize_on_border = false + allow_tearing = false + layout = dwindle +} + +decoration { + rounding = 10 + + active_opacity = 1.0 + inactive_opacity = 1.0 + + drop_shadow = false + shadow_range = 4 + shadow_render_power = 3 + col.shadow = $bg + + dim_inactive = false + dim_strength = 0.2 + + blur { + enabled = true + size = 3 + passes = 3 + + vibrancy = 0.1696 + } +} + +animations { + enabled = true + bezier = myBezier, 0.05, 0.9, 0.1, 1.05 + + animation = windows, 1, 7, myBezier + animation = windowsOut, 1, 7, myBezier, popin 80% + animation = border, 1, 10, myBezier + animation = borderangle, 1, 8, myBezier + animation = fade, 1, 7, myBezier + animation = workspaces, 1, 6, myBezier +} + +dwindle { + pseudotile = false + preserve_split = true + smart_split = false + smart_resizing = false +} + +misc { + force_default_wallpaper = -1 + disable_hyprland_logo = true +} + +input { + kb_layout = us, ru + kb_variant = + kb_model = + kb_options = grp:caps_toggle + kb_rules = + follow_mouse = 1 + sensitivity = 0 + touchpad { + natural_scroll = false + } +} diff --git a/dot-config/hypr/env.conf b/dot-config/hypr/env.conf new file mode 100644 index 0000000..ecc4546 --- /dev/null +++ b/dot-config/hypr/env.conf @@ -0,0 +1,12 @@ +env = XCURSOR_SIZE,24 +env = XCURSOR_THEME,Bibata-Modern-Classic +env = HYPRCURSOR_SIZE,24 +env = HYPRCURSOR_THEME,Bibata-Modern-Classic +env = XDG_CURRENT_DESKTOP,Hyprland +env = XDG_SESSION_TYPE,wayland +env = XDG_SESSION_DESKTOP,Hyprland +env = QT_AUTO_SCREEN_SCALE_FACTOR,1 +env = QT_QPA_PLATFORM,wayland +env = QT_QPA_PLATFORMTHEME,qt5ct +env = EDITOR,nvim + diff --git a/dot-config/hypr/hypridle.conf b/dot-config/hypr/hypridle.conf new file mode 100644 index 0000000..f1f5d5d --- /dev/null +++ b/dot-config/hypr/hypridle.conf @@ -0,0 +1,10 @@ +general { + lock_cmd = ~/.config/hypr/bin/lockscreen + ignore_dbus_inhibit = false + ignore_systemd_inhibit = false +} + +listener { + timeout = 3600 + on-timeout = ~/.config/hypr/bin/lockscreen +} diff --git a/dot-config/hypr/hyprland.conf b/dot-config/hypr/hyprland.conf new file mode 100644 index 0000000..a94c8c9 --- /dev/null +++ b/dot-config/hypr/hyprland.conf @@ -0,0 +1,21 @@ +source = colors.conf + +$terminal = alacritty +$fileManager = thunar +$menu = ~/.config/hypr/bin/runner +$browser = zen-browser +$discord = vesktop +$telegram = telegram-desktop +$pctl = playerctl +$sshot = hyprshot -o ~/Pictures/Screenshots/ -z -m +$locker = loginctl lock-session + +source = plugins.conf +exec-once = hyprpm reload -n + +source = monitors.conf +source = decorations.conf +source = env.conf +source = binds.conf +source = rules.conf +exec-once = ~/.config/hypr/bin/autostart diff --git a/dot-config/hypr/hyprlock.conf b/dot-config/hypr/hyprlock.conf new file mode 100644 index 0000000..b346f03 --- /dev/null +++ b/dot-config/hypr/hyprlock.conf @@ -0,0 +1,63 @@ +source = appearance.conf + +# BACKGROUND +background { + monitor = + path = ~/.config/hypr/wallpaper.png + blur_passes = 3 + contrast = 0.8916 + brightness = 0.8172 + vibrancy = 0.1696 + vibrancy_darkness = 0.0 +} + +# GENERAL +general { + no_fade_in = false + grace = 0 + disable_loading_bar = true +} + +# INPUT FIELD +input-field { + monitor = DP-1 + size = 200, 40 + outline_thickness = 2 + dots_size = 0.2 # Scale of input-field height, 0.2 - 0.8 + dots_spacing = 0.2 # Scale of dots' absolute size, 0.0 - 1.0 + dots_center = true + outer_color = rgba(0, 0, 0, 0) + inner_color = rgba(0, 0, 0, 0.5) + font_color = $fg + fade_on_empty = false + placeholder_text = + hide_input = false + position = 0, -650 #-120 + halign = center + valign = center +} + +# TIME +label { + monitor = DP-1 + text = cmd[update:1000] echo "$(date +"%H:%M")" + color = $fg + font_size = 240 + font_family = eurofurence + position = 0, -300 + halign = center + valign = top +} + +# USER +label { + monitor = DP-1 + text = Enter your password + color = $fg + font_size = 14 + font_family = eurofurence + position = 0, -690 # -40 + halign = center + valign = center + +} diff --git a/dot-config/hypr/hyprpaper.conf b/dot-config/hypr/hyprpaper.conf new file mode 100644 index 0000000..dd05c6c --- /dev/null +++ b/dot-config/hypr/hyprpaper.conf @@ -0,0 +1,5 @@ +preload = ~/.config/hypr/wallpaper.png + +wallpaper = ,~/.config/hypr/wallpaper.png + +splash = false diff --git a/dot-config/hypr/install.log b/dot-config/hypr/install.log new file mode 100644 index 0000000..d502675 --- /dev/null +++ b/dot-config/hypr/install.log @@ -0,0 +1,9 @@ +[21:25:32 2024-10-07] FETCHING Version 2.38.4 +[21:25:32 2024-10-07] CREATING /home/timoxa0/.spicetify +[21:25:32 2024-10-07] DOWNLOADING https://github.com/spicetify/cli/releases/download/v2.38.4/spicetify-2.38.4-linux-amd64.tar.gz +[21:25:33 2024-10-07] EXTRACTING /home/timoxa0/.spicetify/spicetify.tar.gz +[21:25:33 2024-10-07] SETTING EXECUTABLE PERMISSIONS TO /home/timoxa0/.spicetify/spicetify +[21:25:33 2024-10-07] REMOVING /home/timoxa0/.spicetify/spicetify.tar.gz +[21:25:33 2024-10-07] APPENDING /home/timoxa0/.spicetify to PATH in /home/timoxa0/.config/fish/config.fish +[21:25:33 2024-10-07] spicetify v2.38.4 was installed successfully to /home/timoxa0/.spicetify +[21:25:33 2024-10-07] Run 'spicetify --help' to get started diff --git a/dot-config/hypr/monitors.conf b/dot-config/hypr/monitors.conf new file mode 100644 index 0000000..c3c3404 --- /dev/null +++ b/dot-config/hypr/monitors.conf @@ -0,0 +1,7 @@ +#===========================================================================# +# Monitors # +#===========================================================================# + +monitor=DP-1, 3440x1440@100, 1920x0, 1 +monitor=HDMI-A-2, 1920x1200@60, 0x0, 1 +monitor=HDMI-A-1, 1920x1200@60, 2680x1440, 1 diff --git a/dot-config/hypr/plugins.conf b/dot-config/hypr/plugins.conf new file mode 100644 index 0000000..bdaaac7 --- /dev/null +++ b/dot-config/hypr/plugins.conf @@ -0,0 +1,2 @@ +#windowrulev2 = plugin:chromakey,fullscreen:0 +#chromakey_background = rgb(1e1e2e) diff --git a/dot-config/hypr/rules.conf b/dot-config/hypr/rules.conf new file mode 100644 index 0000000..006b121 --- /dev/null +++ b/dot-config/hypr/rules.conf @@ -0,0 +1,41 @@ +#===========================================================================# +# Windows and workspaces # +#===========================================================================# + +layerrule = blur, waybar +layerrule = ignorezero, waybar +layerrule = blur, notifications +layerrule = ignorezero, notifications + +layerrule = blur, rofi +layerrule = ignorezero, rofi + +windowrulev2 = suppressevent maximize, class:.* + +windowrule = float, ^(imv)$ +windowrule = float, ^(fetch)$ +windowrule = float, ^(AmneziaVPN)$ + +windowrule = float, ^(org.pulseaudio.pavucontrol)$ +windowrule = size 696 570, ^(org.pulseaudio.pavucontrol)$ +windowrule = move 1630 820, ^(org.pulseaudio.pavucontrol)$ +windowrule = monitor DP-1, ^(org.pulseaudio.pavucontrol)$ + +windowrule = monitor HDMI-A-2, ^(xfreerdp)$ +windowrule = fullscreen, ^(xfreerdp)$ + +windowrulev2 = opacity 0.0 override,class:^(xwaylandvideobridge)$ +windowrulev2 = noanim,class:^(xwaylandvideobridge)$ +windowrulev2 = noinitialfocus,class:^(xwaylandvideobridge)$ +windowrulev2 = maxsize 1 1,class:^(xwaylandvideobridge)$ +windowrulev2 = noblur,class:^(xwaylandvideobridge)$ + +windowrulev2 = opacity 0.9, class:^(vesktop)$ +windowrulev2 = opacity 0.9, class:^(org.telegram.desktop)$ +windowrulev2 = fullscreen,class:^(org.telegram.desktop)$,title:^(Media viewer)$ +windowrulev2 = float,class:^(org.telegram.desktop)$,title:^(Media viewer)$ +windowrulev2 = opaque,class:^(org.telegram.desktop)$,title:^(Media viewer)$ +windowrulev2 = opacity 0.9, class:^(Spotify)$ +windowrulev2 = opacity 0.9, class:^(org.gnome.Nautilus)$ +windowrulev2 = opacity 0.9, class:^(org.pulseaudio.pavucontrol)$ +windowrulev2=noblur,class:^()$,title:^()$ diff --git a/dot-config/hypr/wallpaper.png b/dot-config/hypr/wallpaper.png new file mode 100644 index 0000000..003cd00 Binary files /dev/null and b/dot-config/hypr/wallpaper.png differ diff --git a/dot-config/mako/mako.conf b/dot-config/mako/mako.conf new file mode 100644 index 0000000..761428d --- /dev/null +++ b/dot-config/mako/mako.conf @@ -0,0 +1,19 @@ +sort=-time +layer=overlay +output=DP-1 +anchor=top-right +background-color=#121318bb +width=300 +height=110 +border-size=3 +border-color=#b4c5ff +border-radius=5 +icons=0 +max-icon-size=64 +default-timeout=5000 +ignore-timeout=1 +font=JetBrainsMono Nerd Font Mono: 14 + +[urgency=high] +border-color=#ffb4ab +default-timeout=0 diff --git a/dot-config/nvim/.stylua.toml b/dot-config/nvim/.stylua.toml new file mode 100644 index 0000000..ecb6dca --- /dev/null +++ b/dot-config/nvim/.stylua.toml @@ -0,0 +1,6 @@ +column_width = 120 +line_endings = "Unix" +indent_type = "Spaces" +indent_width = 2 +quote_style = "AutoPreferDouble" +call_parentheses = "None" diff --git a/dot-config/nvim/LICENSE b/dot-config/nvim/LICENSE new file mode 100644 index 0000000..fdddb29 --- /dev/null +++ b/dot-config/nvim/LICENSE @@ -0,0 +1,24 @@ +This is free and unencumbered software released into the public domain. + +Anyone is free to copy, modify, publish, use, compile, sell, or +distribute this software, either in source code form or as a compiled +binary, for any purpose, commercial or non-commercial, and by any +means. + +In jurisdictions that recognize copyright laws, the author or authors +of this software dedicate any and all copyright interest in the +software to the public domain. We make this dedication for the benefit +of the public at large and to the detriment of our heirs and +successors. We intend this dedication to be an overt act of +relinquishment in perpetuity of all present and future rights to this +software under copyright law. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +For more information, please refer to diff --git a/dot-config/nvim/init.lua b/dot-config/nvim/init.lua new file mode 100644 index 0000000..1152335 --- /dev/null +++ b/dot-config/nvim/init.lua @@ -0,0 +1,39 @@ +vim.g.base46_cache = vim.fn.stdpath "data" .. "/nvchad/base46/" +vim.g.mapleader = " " + +-- bootstrap lazy and all plugins +local lazypath = vim.fn.stdpath "data" .. "/lazy/lazy.nvim" + +if not vim.loop.fs_stat(lazypath) then + local repo = "https://github.com/folke/lazy.nvim.git" + vim.fn.system { "git", "clone", "--filter=blob:none", repo, "--branch=stable", lazypath } +end + +vim.opt.rtp:prepend(lazypath) + +local lazy_config = require "configs.lazy" + +-- load plugins +require("lazy").setup({ + { + "NvChad/NvChad", + lazy = false, + branch = "v2.5", + import = "nvchad.plugins", + config = function() + require "options" + end, + }, + + { import = "plugins" }, +}, lazy_config) + +-- load theme +dofile(vim.g.base46_cache .. "defaults") +dofile(vim.g.base46_cache .. "statusline") + +require "nvchad.autocmds" + +vim.schedule(function() + require "mappings" +end) diff --git a/dot-config/nvim/lazy-lock.json b/dot-config/nvim/lazy-lock.json new file mode 100644 index 0000000..751ea5a --- /dev/null +++ b/dot-config/nvim/lazy-lock.json @@ -0,0 +1,30 @@ +{ + "LuaSnip": { "branch": "master", "commit": "e808bee352d1a6fcf902ca1a71cee76e60e24071" }, + "NvChad": { "branch": "v2.5", "commit": "8792679a08c6747ba3f5890a01561442abec6935" }, + "base46": { "branch": "v2.5", "commit": "fec9fa583025e69e0c4f902bd61990e8d13d1975" }, + "cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" }, + "cmp-nvim-lsp": { "branch": "main", "commit": "39e2eda76828d88b773cc27a3f61d2ad782c922d" }, + "cmp-nvim-lua": { "branch": "main", "commit": "f12408bdb54c39c23e67cab726264c10db33ada8" }, + "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" }, + "cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" }, + "conform.nvim": { "branch": "master", "commit": "f5bd8419f8a29451e20bdb1061a54fe13d5c8de3" }, + "friendly-snippets": { "branch": "main", "commit": "de8fce94985873666bd9712ea3e49ee17aadb1ed" }, + "gitsigns.nvim": { "branch": "main", "commit": "863903631e676b33e8be2acb17512fdc1b80b4fb" }, + "indent-blankline.nvim": { "branch": "master", "commit": "e7a4442e055ec953311e77791546238d1eaae507" }, + "lazy.nvim": { "branch": "main", "commit": "077102c5bfc578693f12377846d427f49bc50076" }, + "mason.nvim": { "branch": "main", "commit": "e2f7f9044ec30067bc11800a9e266664b88cda22" }, + "menu": { "branch": "main", "commit": "ee85b2e394fde354bd24e35ff7a688d10c9212fa" }, + "minty": { "branch": "main", "commit": "7c2a6452922313e10ff46aea49a4bb5e50e1ac68" }, + "nvim-autopairs": { "branch": "master", "commit": "ee297f215e95a60b01fde33275cc3c820eddeebe" }, + "nvim-cmp": { "branch": "main", "commit": "ae644feb7b67bf1ce4260c231d1d4300b19c6f30" }, + "nvim-lspconfig": { "branch": "master", "commit": "b55b9659de9ac17e05df4787bb023e4c7ef45329" }, + "nvim-tree.lua": { "branch": "master", "commit": "2a268f631da85e83b7a95291be589bcddfc785d8" }, + "nvim-treesitter": { "branch": "master", "commit": "68b2bdd99d889e9705f7e90ae64d990f3ff03cf3" }, + "nvim-web-devicons": { "branch": "master", "commit": "19d257cf889f79f4022163c3fbb5e08639077bd8" }, + "plenary.nvim": { "branch": "master", "commit": "2d9b06177a975543726ce5c73fca176cedbffe9d" }, + "telescope.nvim": { "branch": "master", "commit": "df534c3042572fb958586facd02841e10186707c" }, + "ui": { "branch": "v3.0", "commit": "87578bb7e2bc106127f013f9a1edd7a716f4f6c6" }, + "vim-tmux-navigator": { "branch": "master", "commit": "a9b52e7d36114d40350099f254b5f299a35df978" }, + "volt": { "branch": "main", "commit": "43f72b49037c191eb3cfe26ba7a5574b4bfce226" }, + "which-key.nvim": { "branch": "main", "commit": "8badb359f7ab8711e2575ef75dfe6fbbd87e4821" } +} diff --git a/dot-config/nvim/lua/chadrc.lua b/dot-config/nvim/lua/chadrc.lua new file mode 100644 index 0000000..6bb2cf7 --- /dev/null +++ b/dot-config/nvim/lua/chadrc.lua @@ -0,0 +1,16 @@ +-- This file needs to have same structure as nvconfig.lua +-- https://github.com/NvChad/ui/blob/v2.5/lua/nvconfig.lua + +---@type ChadrcConfig +local M = {} +M = { + base46 = { + theme = "catppuccin", + transparency = true + } + -- hl_override = { + -- Comment = { italic = true }, + -- ["@comment"] = { italic = true }, + -- }, +} +return M diff --git a/dot-config/nvim/lua/configs/conform.lua b/dot-config/nvim/lua/configs/conform.lua new file mode 100644 index 0000000..a000447 --- /dev/null +++ b/dot-config/nvim/lua/configs/conform.lua @@ -0,0 +1,15 @@ +local options = { + formatters_by_ft = { + lua = { "stylua" }, + -- css = { "prettier" }, + -- html = { "prettier" }, + }, + + -- format_on_save = { + -- -- These options will be passed to conform.format() + -- timeout_ms = 500, + -- lsp_fallback = true, + -- }, +} + +require("conform").setup(options) diff --git a/dot-config/nvim/lua/configs/lazy.lua b/dot-config/nvim/lua/configs/lazy.lua new file mode 100644 index 0000000..cd170bd --- /dev/null +++ b/dot-config/nvim/lua/configs/lazy.lua @@ -0,0 +1,47 @@ +return { + defaults = { lazy = true }, + install = { colorscheme = { "nvchad" } }, + + ui = { + icons = { + ft = "", + lazy = "󰂠 ", + loaded = "", + not_loaded = "", + }, + }, + + performance = { + rtp = { + disabled_plugins = { + "2html_plugin", + "tohtml", + "getscript", + "getscriptPlugin", + "gzip", + "logipat", + "netrw", + "netrwPlugin", + "netrwSettings", + "netrwFileHandlers", + "matchit", + "tar", + "tarPlugin", + "rrhelper", + "spellfile_plugin", + "vimball", + "vimballPlugin", + "zip", + "zipPlugin", + "tutor", + "rplugin", + "syntax", + "synmenu", + "optwin", + "compiler", + "bugreport", + "ftplugin", + }, + }, + }, +} diff --git a/dot-config/nvim/lua/configs/lspconfig.lua b/dot-config/nvim/lua/configs/lspconfig.lua new file mode 100644 index 0000000..7d3a64f --- /dev/null +++ b/dot-config/nvim/lua/configs/lspconfig.lua @@ -0,0 +1,29 @@ +-- EXAMPLE +local on_attach = require("nvchad.configs.lspconfig").on_attach +local on_init = require("nvchad.configs.lspconfig").on_init +local capabilities = require("nvchad.configs.lspconfig").capabilities + +local lspconfig = require "lspconfig" +local servers = { "html", "gopls" } + +-- lsps with default config +for _, lsp in ipairs(servers) do + lspconfig[lsp].setup { + on_attach = on_attach, + on_init = on_init, + capabilities = capabilities, + } +end + +-- typescript +lspconfig.ts_ls.setup { + on_attach = on_attach, + on_init = on_init, + capabilities = capabilities, +} + +lspconfig.pyright.setup({ + on_attach = on_attach, + capabilities = capabilities, + filetypes = {"python"}, +}) diff --git a/dot-config/nvim/lua/mappings.lua b/dot-config/nvim/lua/mappings.lua new file mode 100644 index 0000000..17728a0 --- /dev/null +++ b/dot-config/nvim/lua/mappings.lua @@ -0,0 +1,15 @@ +require "nvchad.mappings" + +-- add yours here + +local map = vim.keymap.set + +map("n", ";", ":", { desc = "CMD enter command mode" }) +map("i", "jk", "") +map("n", "", "TmuxNavigateLeft", {desc = "Move tmux windows focus left"}) +map("n", "", "TmuxNavigateRight", {desc = "Move tmux windows focus right"}) +map("n", "", "TmuxNavigateDown", {desc = "Move tmux windows focus down"}) +map("n", "", "TmuxNavigateUp", {desc = "Move tmux windows focus up"}) + + +-- map({ "n", "i", "v" }, "", " w ") diff --git a/dot-config/nvim/lua/options.lua b/dot-config/nvim/lua/options.lua new file mode 100644 index 0000000..73c3a7b --- /dev/null +++ b/dot-config/nvim/lua/options.lua @@ -0,0 +1,9 @@ +require "nvchad.options" +vim.o.tabstop = 4 -- A TAB character looks like 4 spaces +vim.o.expandtab = true -- Pressing the TAB key will insert spaces instead of a TAB character +vim.o.softtabstop = 4 -- Number of spaces inserted instead of a TAB character +vim.o.shiftwidth = 4 -- Number of spaces inserted when indenting +-- add yours here! + +-- local o = vim.o +-- o.cursorlineopt ='both' -- to enable cursorline! diff --git a/dot-config/nvim/lua/plugins/init.lua b/dot-config/nvim/lua/plugins/init.lua new file mode 100644 index 0000000..e72b215 --- /dev/null +++ b/dot-config/nvim/lua/plugins/init.lua @@ -0,0 +1,55 @@ +return { + { + "stevearc/conform.nvim", + -- event = 'BufWritePre', -- uncomment for format on save + config = function() + require "configs.conform" + end, + }, + { + "christoomey/vim-tmux-navigator", + lazy = false, + }, + { + "williamboman/mason.nvim", + opts = { + ensure_installed = { + "black", + "debugpy", + "mypy", + "ruff", + "pyright", + }, + }, + }, + + + -- These are some examples, uncomment them if you want to see them work! + { + "neovim/nvim-lspconfig", + config = function() + require("nvchad.configs.lspconfig").defaults() + require "configs.lspconfig" + end, + }, + -- + -- { + -- "williamboman/mason.nvim", + -- opts = { + -- ensure_installed = { + -- "lua-language-server", "stylua", + -- "html-lsp", "css-lsp" , "prettier" + -- }, + -- }, + -- }, + -- + { + "nvim-treesitter/nvim-treesitter", + opts = { + ensure_installed = { + "vim", "lua", "vimdoc", + "html", "css" + }, + }, + }, +} diff --git a/dot-config/qt5ct/colors/Catppuccin-Mocha.conf b/dot-config/qt5ct/colors/Catppuccin-Mocha.conf new file mode 100644 index 0000000..e566a63 --- /dev/null +++ b/dot-config/qt5ct/colors/Catppuccin-Mocha.conf @@ -0,0 +1,4 @@ +[ColorScheme] +active_colors=#ffcdd6f4, #ff1e1e2e, #ffa6adc8, #ff9399b2, #ff45475a, #ff6c7086, #ffcdd6f4, #ffcdd6f4, #ffcdd6f4, #ff1e1e2e, #ff181825, #ff7f849c, #ff89b4fa, #ff1e1e2e, #ff89b4fa, #fff38ba8, #ff1e1e2e, #ffcdd6f4, #ff11111b, #ffcdd6f4, #807f849c +disabled_colors=#ffa6adc8, #ff1e1e2e, #ffa6adc8, #ff9399b2, #ff45475a, #ff6c7086, #ffa6adc8, #ffa6adc8, #ffa6adc8, #ff1e1e2e, #ff11111b, #ff7f849c, #ff89b4fa, #ff45475a, #ff89b4fa, #fff38ba8, #ff1e1e2e, #ffcdd6f4, #ff11111b, #ffcdd6f4, #807f849c +inactive_colors=#ffcdd6f4, #ff1e1e2e, #ffa6adc8, #ff9399b2, #ff45475a, #ff6c7086, #ffcdd6f4, #ffcdd6f4, #ffcdd6f4, #ff1e1e2e, #ff181825, #ff7f849c, #ff89b4fa, #ffa6adc8, #ff89b4fa, #fff38ba8, #ff1e1e2e, #ffcdd6f4, #ff11111b, #ffcdd6f4, #807f849c diff --git a/dot-config/qt5ct/qt5ct.conf b/dot-config/qt5ct/qt5ct.conf new file mode 100644 index 0000000..4078526 --- /dev/null +++ b/dot-config/qt5ct/qt5ct.conf @@ -0,0 +1,31 @@ +[Appearance] +color_scheme_path=/home/timoxa0/.config/qt5ct/colors/Catppuccin-Mocha.conf +custom_palette=true +standard_dialogs=default +style=Fusion + +[Fonts] +fixed="DejaVu LGC Sans,12,-1,5,50,0,0,0,0,0" +general="DejaVu LGC Sans,12,-1,5,50,0,0,0,0,0" + +[Interface] +activate_item_on_single_click=1 +buttonbox_layout=0 +cursor_flash_time=1000 +dialog_buttons_have_icons=1 +double_click_interval=400 +gui_effects=@Invalid() +keyboard_scheme=2 +menus_have_icons=true +show_shortcuts_in_context_menus=true +stylesheets=@Invalid() +toolbutton_style=4 +underline_shortcut=1 +wheel_scroll_lines=3 + +[SettingsWindow] +geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\a\x80\0\0\0\0\0\0\xe\"\0\0\x5\\\0\0\a\x80\0\0\0\0\0\0\xe\x37\0\0\x5v\0\0\0\0\x2\0\0\0\rp\0\0\a\x80\0\0\0\0\0\0\xe\"\0\0\x5\\) + +[Troubleshooting] +force_raster_widgets=1 +ignored_applications=@Invalid() diff --git a/dot-config/rofi/colors.rasi b/dot-config/rofi/colors.rasi new file mode 100644 index 0000000..11a86a4 --- /dev/null +++ b/dot-config/rofi/colors.rasi @@ -0,0 +1,47 @@ +* { + primary: #b4c5ff; + primary-fixed: #dbe1ff; + primary-fixed-dim: #b4c5ff; + on-primary: #1a2d60; + on-primary-fixed: #00174b; + on-primary-fixed-variant: #334478; + primary-container: #334478; + on-primary-container: #dbe1ff; + secondary: #c1c5dd; + secondary-fixed: #dde1f9; + secondary-fixed-dim: #c1c5dd; + on-secondary: #2b3042; + on-secondary-fixed: #161b2c; + on-secondary-fixed-variant: #414659; + secondary-container: #414659; + on-secondary-container: #dde1f9; + tertiary: #e2bbdb; + tertiary-fixed: #ffd6f8; + tertiary-fixed-dim: #e2bbdb; + on-tertiary: #422741; + on-tertiary-fixed: #2b122b; + on-tertiary-fixed-variant: #5a3d58; + tertiary-container: #5a3d58; + on-tertiary-container: #ffd6f8; + error: #ffb4ab; + on-error: #690005; + error-container: #93000a; + on-error-container: #ffdad6; + surface: #121318; + on-surface: #e3e2e9; + on-surface-variant: #c5c6d0; + outline: #8f909a; + outline-variant: #45464f; + shadow: #000000; + scrim: #000000; + inverse-surface: #e3e2e9; + inverse-on-surface: #2f3036; + inverse-primary: #4b5c92; + surface-dim: #121318; + surface-bright: #38393f; + surface-container-lowest: #0d0e13; + surface-container-low: #1a1b21; + surface-container: #1e1f25; + surface-container-high: #292a2f; + surface-container-highest: #34343a; +} diff --git a/dot-config/rofi/config.rasi b/dot-config/rofi/config.rasi new file mode 100644 index 0000000..58a5e0d --- /dev/null +++ b/dot-config/rofi/config.rasi @@ -0,0 +1,181 @@ +/** + * + * Author : Aditya Shakya (adi1090x) + * Github : @adi1090x + * + * Configuration For Rofi Version: 1.7.3 + **/ + +configuration { + /*---------- General setting ----------*/ + modi: "drun,run,filebrowser,window"; + case-sensitive: false; + cycle: true; + filter: ""; + scroll-method: 0; + normalize-match: true; + show-icons: true; + icon-theme: "Papirus"; +/* cache-dir: ;*/ + steal-focus: false; +/* dpi: -1;*/ + + /*---------- Matching setting ----------*/ + matching: "normal"; + tokenize: true; + + /*---------- SSH settings ----------*/ + ssh-client: "ssh"; + ssh-command: "{terminal} -e {ssh-client} {host} [-p {port}]"; + parse-hosts: true; + parse-known-hosts: true; + + /*---------- Drun settings ----------*/ + drun-categories: ""; + drun-match-fields: "name,generic,exec,categories,keywords"; + drun-display-format: "{name} [({generic})]"; + drun-show-actions: false; + drun-url-launcher: "xdg-open"; + drun-use-desktop-cache: false; + drun-reload-desktop-cache: false; + drun { + /** Parse user desktop files. */ + parse-user: true; + /** Parse system desktop files. */ + parse-system: true; + } + + /*---------- Run settings ----------*/ + run-command: "{cmd}"; + run-list-command: ""; + run-shell-command: "{terminal} -e {cmd}"; + + /*---------- Fallback Icon ----------*/ + run,drun { + fallback-icon: "application-x-addon"; + } + + /*---------- Window switcher settings ----------*/ + window-match-fields: "title,class,role,name,desktop"; + window-command: "wmctrl -i -R {window}"; + window-format: "{w} - {c} - {t:0}"; + window-thumbnail: false; + + /*---------- Combi settings ----------*/ +/* combi-modi: "window,run";*/ +/* combi-hide-mode-prefix: false;*/ +/* combi-display-format: "{mode} {text}";*/ + + /*---------- History and Sorting ----------*/ + disable-history: false; + sorting-method: "normal"; + max-history-size: 25; + + /*---------- Display setting ----------*/ + display-window: "Windows"; + display-windowcd: "Window CD"; + display-run: "Run"; + display-ssh: "SSH"; + display-drun: "Apps"; + display-combi: "Combi"; + display-keys: "Keys"; + display-filebrowser: "Files"; + + /*---------- Misc setting ----------*/ + terminal: "rofi-sensible-terminal"; + font: "Mono 12"; + sort: false; + threads: 0; + click-to-exit: true; +/* ignored-prefixes: "";*/ +/* pid: "/run/user/1000/rofi.pid";*/ + + /*---------- File browser settings ----------*/ + filebrowser { +/* directory: "/home";*/ + directories-first: true; + sorting-method: "name"; + } + + /*---------- Other settings ----------*/ + timeout { + action: "kb-cancel"; + delay: 0; + } + + /*---------- Keybindings ----------*/ +/* + kb-primary-paste: "Control+V,Shift+Insert"; + kb-secondary-paste: "Control+v,Insert"; + kb-clear-line: "Control+w"; + kb-move-front: "Control+a"; + kb-move-end: "Control+e"; + kb-move-word-back: "Alt+b,Control+Left"; + kb-move-word-forward: "Alt+f,Control+Right"; + kb-move-char-back: "Left,Control+b"; + kb-move-char-forward: "Right,Control+f"; + kb-remove-word-back: "Control+Alt+h,Control+BackSpace"; + kb-remove-word-forward: "Control+Alt+d"; + kb-remove-char-forward: "Delete,Control+d"; + kb-remove-char-back: "BackSpace,Shift+BackSpace,Control+h"; + kb-remove-to-eol: "Control+k"; + kb-remove-to-sol: "Control+u"; + kb-accept-entry: "Control+j,Control+m,Return,KP_Enter"; + kb-accept-custom: "Control+Return"; + kb-accept-custom-alt: "Control+Shift+Return"; + kb-accept-alt: "Shift+Return"; + kb-delete-entry: "Shift+Delete"; + kb-mode-next: "Shift+Right,Control+Tab"; + kb-mode-previous: "Shift+Left,Control+ISO_Left_Tab"; + kb-mode-complete: "Control+l"; + kb-row-left: "Control+Page_Up"; + kb-row-right: "Control+Page_Down"; + kb-row-down: "Down,Control+n"; + kb-page-prev: "Page_Up"; + kb-page-next: "Page_Down"; + kb-row-first: "Home,KP_Home"; + kb-row-last: "End,KP_End"; + kb-row-select: "Control+space"; + kb-screenshot: "Alt+S"; + kb-ellipsize: "Alt+period"; + kb-toggle-case-sensitivity: "grave,dead_grave"; + kb-toggle-sort: "Alt+grave"; + kb-cancel: "Escape,Control+g,Control+bracketleft"; + kb-custom-1: "Alt+1"; + kb-custom-2: "Alt+2"; + kb-custom-3: "Alt+3"; + kb-custom-4: "Alt+4"; + kb-custom-5: "Alt+5"; + kb-custom-6: "Alt+6"; + kb-custom-7: "Alt+7"; + kb-custom-8: "Alt+8"; + kb-custom-9: "Alt+9"; + kb-custom-10: "Alt+0"; + kb-custom-11: "Alt+exclam"; + kb-custom-12: "Alt+at"; + kb-custom-13: "Alt+numbersign"; + kb-custom-14: "Alt+dollar"; + kb-custom-15: "Alt+percent"; + kb-custom-16: "Alt+dead_circumflex"; + kb-custom-17: "Alt+ampersand"; + kb-custom-18: "Alt+asterisk"; + kb-custom-19: "Alt+parenleft"; + kb-select-1: "Super+1"; + kb-select-2: "Super+2"; + kb-select-3: "Super+3"; + kb-select-4: "Super+4"; + kb-select-5: "Super+5"; + kb-select-6: "Super+6"; + kb-select-7: "Super+7"; + kb-select-8: "Super+8"; + kb-select-9: "Super+9"; + kb-select-10: "Super+0"; + ml-row-left: "ScrollLeft"; + ml-row-right: "ScrollRight"; + ml-row-up: "ScrollUp"; + ml-row-down: "ScrollDown"; + me-select-entry: "MousePrimary"; + me-accept-entry: "MouseDPrimary"; + me-accept-custom: "Control+MouseDPrimary"; +*/ +} diff --git a/dot-config/rofi/powermenu.rasi b/dot-config/rofi/powermenu.rasi new file mode 100644 index 0000000..6e2ab31 --- /dev/null +++ b/dot-config/rofi/powermenu.rasi @@ -0,0 +1,150 @@ +/** + * + * Author : Aditya Shakya (adi1090x) + * Github : @adi1090x + * + * Rofi Theme File + * Rofi Version: 1.7.3 + **/ + +@import "colors.rasi" + +/*****----- Configuration -----*****/ +configuration { + show-icons: false; +} + +/*****----- Global Properties -----*****/ +* { + font: "JetBrainsMono Nerd Font Mono 11"; + background: @on-primary-fixed; + background-alt: @on-primary-fixed-variant; + foreground: @primary-fixed; + selected: @primary-fixed-dim; + selected-fg: @on-primary-fixed; + active: @primary-fixed; + urgent: @error; +} + +/* +USE_BUTTONS=YES +*/ + +/*****----- Main Window -----*****/ +window { + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 550px; + x-offset: 0px; + y-offset: 0px; + + padding: 0px; + border: 0px solid; + border-radius: 20px; + border-color: @selected; + cursor: "default"; + background-color: @background; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 0px; + margin: 0px; + padding: 0px; + border: 0px solid; + border-radius: 0px; + border-color: @selected; + background-color: transparent; + children: [ "inputbar", "listview", "message" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 0px; + padding: 100px 80px; + background-color: transparent; + background-image: url("~/.config/hypr/wallpaper.png", width); + children: [ "textbox-prompt-colon", "dummy","prompt"]; +} + +dummy { + background-color: transparent; +} + +textbox-prompt-colon { + enabled: true; + expand: false; + str: " Power menu"; + padding: 12px; + border-radius: 100%; + background-color: @background; + text-color: @foreground; +} +prompt { + enabled: true; + padding: 12px; + border-radius: 100%; + background-color: @background; + text-color: @foreground; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 4; + lines: 1; + cycle: true; + dynamic: true; + scrollbar: false; + layout: vertical; + reverse: false; + fixed-height: true; + fixed-columns: true; + + spacing: 15px; + margin: 15px; + background-color: transparent; + cursor: "default"; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + padding: 28px 10px; + border-radius: 100%; + background-color: @background-alt; + text-color: @foreground; + cursor: pointer; +} +element-text { + font: "JetBrainsMono Nerd Font Mono 32"; + background-color: transparent; + text-color: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.5; +} +element selected.normal { + background-color: var(selected); + text-color: var(selected-fg); +} + +/*****----- Message -----*****/ +message { + enabled: true; + margin: 0px 15px 15px 15px; + padding: 15px; + border-radius: 100%; + background-color: @background-alt; + text-color: @foreground; +} +textbox { + background-color: inherit; + text-color: inherit; + vertical-align: 0.5; + horizontal-align: 0.5; +} diff --git a/dot-config/rofi/runner.rasi b/dot-config/rofi/runner.rasi new file mode 100644 index 0000000..db7a3d7 --- /dev/null +++ b/dot-config/rofi/runner.rasi @@ -0,0 +1,212 @@ +/** + * + * Author : Aditya Shakya (adi1090x) + * Github : @adi1090x + * + * Rofi Theme File + * Rofi Version: 1.7.3 + * Matugen colors + **/ + +@import "colors.rasi" + +/*****----- Configuration -----*****/ +configuration { + modi: "drun,filebrowser"; + show-icons: true; + display-drun: "Apps"; + display-filebrowser: "Files"; + drun-display-format: "{name}"; + window-format: "{w} · {c}"; +} + +/*****----- Global Properties -----*****/ +* { + font: "JetBrainsMono Nerd Font Mono 10"; + background: @on-primary-fixed; + background-alt: @on-primary-fixed-variant; + foreground: @primary-fixed; + selected: @primary-fixed-dim; + selected-fg: @on-primary-fixed; + active: @primary-fixed; + urgent: @error; +} + +/*****----- Main Window -----*****/ +window { + /* properties for window widget */ + transparency: "real"; + location: center; + anchor: center; + fullscreen: false; + width: 1000px; + x-offset: 0px; + y-offset: 0px; + + /* properties for all widgets */ + enabled: true; + border-radius: 15px; + cursor: "default"; + background-color: @background; +} + +/*****----- Main Box -----*****/ +mainbox { + enabled: true; + spacing: 0px; + background-color: transparent; + orientation: vertical; + children: [ "inputbar", "listbox" ]; +} + +listbox { + spacing: 20px; + padding: 20px; + background-color: transparent; + orientation: vertical; + children: [ "message", "listview" ]; +} + +/*****----- Inputbar -----*****/ +inputbar { + enabled: true; + spacing: 10px; + padding: 100px 60px; + background-color: transparent; + background-image: url("~/.config/hypr/wallpaper.png", width); + text-color: @foreground; + orientation: horizontal; + children: [ "textbox-prompt-colon", "entry", "dummy", "mode-switcher" ]; +} +textbox-prompt-colon { + enabled: true; + expand: false; + str: ""; + padding: 12px 15px; + border-radius: 100%; + background-color: @background-alt; + text-color: inherit; +} +entry { + enabled: true; + expand: false; + width: 300px; + padding: 12px 16px; + border-radius: 100%; + background-color: @background-alt; + text-color: inherit; + cursor: text; + placeholder: "Search"; + placeholder-color: inherit; +} +dummy { + expand: true; + background-color: transparent; +} + +/*****----- Mode Switcher -----*****/ +mode-switcher{ + enabled: true; + spacing: 10px; + background-color: transparent; + text-color: @foreground; +} +button { + width: 80px; + padding: 12px; + border-radius: 100%; + background-color: @background-alt; + text-color: inherit; + cursor: pointer; +} +button selected { + background-color: @selected; + text-color: @selected-fg; +} + +/*****----- Listview -----*****/ +listview { + enabled: true; + columns: 6; + lines: 3; + cycle: true; + dynamic: true; + scrollbar: false; + layout: vertical; + reverse: false; + fixed-height: true; + fixed-columns: true; + + spacing: 10px; + background-color: transparent; + text-color: @foreground; + cursor: "default"; +} + +/*****----- Elements -----*****/ +element { + enabled: true; + spacing: 10px; + padding: 10px; + border-radius: 15px; + background-color: transparent; + text-color: @foreground; + cursor: pointer; + orientation: vertical; +} +element normal.normal { + background-color: inherit; + text-color: inherit; +} +element normal.urgent { + background-color: @urgent; + text-color: @foreground; +} +element normal.active { + background-color: @active; + text-color: @foreground; +} +element selected.normal { + background-color: @selected; + text-color: @selected-fg; +} +element selected.urgent { + background-color: @urgent; + text-color: @selected-fg; +} +element selected.active { + background-color: @urgent; + text-color: @selected-fg; +} +element-icon { + background-color: transparent; + text-color: inherit; + size: 64px; + cursor: inherit; +} +element-text { + background-color: transparent; + text-color: inherit; + cursor: inherit; + vertical-align: 0.5; + horizontal-align: 0.5; +} + +/*****----- Message -----*****/ +message { + background-color: transparent; +} +textbox { + padding: 15px; + border-radius: 15px; + background-color: @background-alt; + text-color: @foreground; + vertical-align: 0.5; + horizontal-align: 0.0; +} +error-message { + padding: 15px; + border-radius: 15px; + background-color: @background; + text-color: @foreground; +} diff --git a/dot-config/spicetify/Backup/login.spa b/dot-config/spicetify/Backup/login.spa new file mode 100755 index 0000000..21693d6 Binary files /dev/null and b/dot-config/spicetify/Backup/login.spa differ diff --git a/dot-config/spicetify/Backup/xpui.spa b/dot-config/spicetify/Backup/xpui.spa new file mode 100755 index 0000000..45b4dda Binary files /dev/null and b/dot-config/spicetify/Backup/xpui.spa differ diff --git a/dot-config/spicetify/Themes/Blossom/LICENSE b/dot-config/spicetify/Themes/Blossom/LICENSE new file mode 100644 index 0000000..da8c5dd --- /dev/null +++ b/dot-config/spicetify/Themes/Blossom/LICENSE @@ -0,0 +1,5 @@ +Use it as you wish, have fun listening to music. + +Shoutout to Porter Robinson. + +-Robatortas \ No newline at end of file diff --git a/dot-config/spicetify/Themes/Blossom/README.md b/dot-config/spicetify/Themes/Blossom/README.md new file mode 100644 index 0000000..07695ba --- /dev/null +++ b/dot-config/spicetify/Themes/Blossom/README.md @@ -0,0 +1,10 @@ +# BLOSSOM + +A little theme for your Spotify client. + +![1](https://github.com/spicetify/spicetify-themes/assets/72624799/4e545661-a164-469a-a10c-c1fcba40ab72) +![2](https://github.com/spicetify/spicetify-themes/assets/72624799/263ebbd2-b383-47b4-8bcf-1a9c4d5152c1) + +Made for a dark theme look thats pleasing to the eye. + +By Robatortas diff --git a/dot-config/spicetify/Themes/Blossom/color.ini b/dot-config/spicetify/Themes/Blossom/color.ini new file mode 100644 index 0000000..efa6dfb --- /dev/null +++ b/dot-config/spicetify/Themes/Blossom/color.ini @@ -0,0 +1,12 @@ +[dark] +text = ffffff +subtext = aaaaaa +extratext = aaaaaa +background = 1e2226 +player = 282e33 +button = 4d5c78 +button-active = 6d80a3 +button-disabled = 282e33 +sidebar = 1e2226 +main = 1e2226 +card = 282e33 \ No newline at end of file diff --git a/dot-config/spicetify/Themes/Blossom/images/album.png b/dot-config/spicetify/Themes/Blossom/images/album.png new file mode 100644 index 0000000..2fe7d94 Binary files /dev/null and b/dot-config/spicetify/Themes/Blossom/images/album.png differ diff --git a/dot-config/spicetify/Themes/Blossom/images/home.png b/dot-config/spicetify/Themes/Blossom/images/home.png new file mode 100644 index 0000000..b6c4235 Binary files /dev/null and b/dot-config/spicetify/Themes/Blossom/images/home.png differ diff --git a/dot-config/spicetify/Themes/Blossom/user.css b/dot-config/spicetify/Themes/Blossom/user.css new file mode 100644 index 0000000..c44b057 --- /dev/null +++ b/dot-config/spicetify/Themes/Blossom/user.css @@ -0,0 +1,434 @@ +/* Blossom Theme */ + +#main { + overflow: hidden; + background-color: var(--spice-background); +} + +.spotify__container--is-desktop .Root__top-container { + padding-top: calc(24px + 8px * 2); + --panel-gap: 0; +} + +.LayoutResizer__inline-end { + inset-inline-end: 8px; +} + +.LayoutResizer__inline-start { + inset-inline-start: 8px; +} + +.LayoutResizer__resize-bar { + width: 8px; +} + +/* SEARCH */ +.main-yourEpisodes-episodeCard { + background-color: red; + transform: translateX(100px); +} + +.x-searchInput-searchInputSearchIcon, +.x-searchInput-searchInputClearButton { + color: var(--spice-button) !important; +} + +/* header colored backgrounds */ +.main-actionBarBackground-background, +.main-entityHeader-overlay, +.main-entityHeader-backgroundColor { + background: unset !important; + background-image: unset; +} + +.EvQHNTBhaU3rGCRRlAWj { + background: unset !important; + backdrop-filter: blur(5px); + mask: linear-gradient(to bottom, #212121, 60%, transparent); + transition: all 1s; +} + +.QplCuuGSoV4updqTSLq9 { + background: unset !important; + backdrop-filter: blur(5px); + mask: linear-gradient(to bottom, #212121, 60%, transparent); + transition: all 1s; +} + +.main-trackList-trackListHeaderStuck { + background: unset !important; + backdrop-filter: blur(5px); + mask: linear-gradient(to bottom, #212121, 60%, transparent); + transition: all 1s; +} + +/* Home Header, when on home tab */ +.main-home-homeHeader { + opacity: 40%; + background: radial-gradient(ellipse at top, var(--spice-button), 10%, var(--spice-main), 100%, transparent); + background-color: unset !important; +} + +.cover-art { + background: var(--spice-background); + border-radius: 7.5%; +} +.cover-art-image { + border-radius: 7.5%; + transition: all 0.5s; + cursor: pointer; +} + +/* Album or song art */ +.main-entityHeader-image { + border-radius: 10%; + opacity: 100; + animation: both; + cursor: pointer; +} + +.main-editImageButton-overlay { + border-radius: 10%; + background: unset; + backdrop-filter: blur(4px); + color: var(--spice-button); + transition: all 1s; +} + +.main-entityHeader-imagePlaceholder { + background-color: var(--spice-player); +} + +.main-entityHeader-shadow { + box-shadow: 0 0px 50px rgba(0, 0, 0, 0.2); +} + +/* TRACKLIST */ +.main-trackList-playingIcon { + filter: hue-rotate(100deg); +} + +.main-trackList-trackListRow { + margin-left: 0px; + transition: all 0.5s; +} +.main-trackList-trackListRow:hover { + background-color: var(--spice-player); + margin-left: 10px; + transition: all 0.5s; +} + +/* Playback bar and controls */ +.main-nowPlayingBar-nowPlayingBar { + background-color: unset !important; + background-image: linear-gradient(0deg, var(--spice-player), 80%, transparent); + transition: all 0.5s; +} + +.main-playPauseButton-button { + background: var(--spice-button-active); + color: var(--spice-text); +} + +/* TopBar, where the profile button and back and ford buttons are */ +.main-topBar-background { + opacity: 10%; + background: linear-gradient(180deg, #171717, 60%, transparent) !important; + backdrop-filter: blur(5px); + mask: linear-gradient(to bottom, #212121, 60%, transparent); + transition: all 1s; +} + +.main-topBar-overlay { + background: unset !important; + background-color: unset !important; + background-image: unset !important; + /* backdrop-filter: blur(10px); */ +} + +.main-navBar-navBarLinkActive, +.main-navBar-navBarLinkActive:focus, +.logo { + background-color: var(--spice-player) !important; +} + +/* move the progress bar to the top */ +.main-nowPlayingBar-nowPlayingBar { + position: relative; + padding-inline-end: 16px !important; +} + +.playback-bar__progress-time-elapsed, +.main-playbackBarRemainingTime-container { + min-width: 0; + width: 0 !important; + opacity: 0; + transition: all 0.5s; +} + +.playback-bar:hover .playback-bar__progress-time-elapsed, .playback-bar:hover +.main-playbackBarRemainingTime-container { + min-width: 40px; + width: auto; + opacity: 1; +} + +.playback-bar { + width: 100%; + left: 0; + bottom: 65px; + position: absolute; + cursor: pointer; + overflow: hidden; +} + +.progress-bar { + --fg-color: var(--spice-button-active); +} + +.os-theme-spotify.os-host-transition > .os-scrollbar-vertical > .os-scrollbar-track > .os-scrollbar-handle { + border-radius: 4px; + background-color: var(--spice-text); + opacity: 30%; +} + +.player-controls__buttons { + margin-bottom: 0; +} + +.main-playPauseButton-button { + cursor: pointer; + border-radius: 10px; + --button-size: 50px !important; +} + +.player-controls__buttons { + align-items: center; +} + +/* LEFT BAR STUFF */ + +/* Playlists text color */ +.main-rootlist-rootlistDivider, +.main-rootlist-rootlistDividerGradient { + visibility: hidden; +} + +/* remove playlist item hover effect */ +li > div > div::after { + background-color: transparent !important; +} +li > div::after { + background-color: transparent !important; +} + +/* give background to active playlist */ +.BoxComponent-group-tinted-listRow-isInteractive-hasLeadingOrMedia-paddingBlockStart_8px-paddingBlockEnd_8px-minBlockSize_56px-padding_8px, +.BoxComponent-group-tinted-listRow-isInteractive-hasFocus-hasLeadingOrMedia-paddingBlockStart_8px-paddingBlockEnd_8px-minBlockSize_56px-padding_8px { + background-color: var(--spice-player); + transition: all 1s; +} + +/* expanded sidebar buttons */ +.search-searchCategory-carouselButton { + background-color: transparent; +} +.search-searchCategory-carouselButton:hover { + background-color: var(--spice-player); +} +.main-yourLibraryX-iconOnly:hover { + background-color: var(--spice-player); + color: var(--spice-text); +} +.main-yourLibraryX-filterArea > div > div:first-child button { + background-color: var(--spice-player) !important; +} +.main-yourLibraryX-filterArea > div > div:first-child button > span { + background-color: var(--spice-player) !important; + color: var(--spice-text) !important; +} +.main-yourLibraryX-libraryFilter .x-sortBox-sortDropdown, +.main-yourLibraryX-libraryFilter .x-filterBox-expandButton, +.main-yourLibraryX-libraryFilter .x-filterBox-searchIconContainer, +.main-yourLibraryX-libraryFilter .x-filterBox-filterInput, +.main-yourLibraryX-libraryFilter .x-filterBox-clearButton { + color: var(--spice-text); +} +/* give active nav tab a background */ +.main-navBar-mainNav li:has(> .active) { + background-color: var(--spice-player); + border-radius: 0 4px 4px 0; + position: relative; + transform: translate(-12px, 0); + transition: all 1s; +} + +/* remove built in scrolllist shadow */ +.main-yourLibraryX-isScrolled { + box-shadow: none !important; +} + +.main-rootlist-rootlist { + background-color: var(--spice-player); + top: 10px; +} +.main-rootlist-rootlistItem { + cursor: pointer; + margin: 0px; + transition: all 0.5s; +} +.main-rootlist-rootlistItem:hover { + background: var(--spice-background) !important; + margin: 5px; + padding: 5px; + transition: all 0.5s; +} +.main-rootlist-rootlistItemLinkActive { + background: var(--spice-background) !important; + margin-left: -22px; + margin-right: -10px; + padding-left: 30px; + transition: all 0.5s; +} + +.x-categoryCard-CategoryCard { + transition: all 0.5s; +} +.x-categoryCard-CategoryCard:hover { + margin-top: -2%; + transition: all 0.5s; +} + +.main-navBar-navBarItem { + cursor: pointer; + margin: 0px; + transition: all 0.5s; +} +.main-navBar-navBarItem:hover { + background-color: var(--spice-player) !important; + transition: all 0.5s; +} +.main-navBar-navBarLinkActive { + background: var(--spice-player) !important; + margin-left: -22px; + margin-right: -10px; + padding-left: 30px; + transition: all 0.5s; +} + +/* CARDS */ + +/* Little filter for the cards */ +.main-card-card { + opacity: 100%; + background-color: unset !important; + background: linear-gradient(180deg, var(--spice-player), 65%, transparent); + transition: all 1s; +} +.main-card-card:hover { + background-color: unset !important; + background: var(--spice-player) !important; +} + +.collection-collectionEntityHeroCard-likedSongs { + background-color: unset !important; + background: linear-gradient(180deg, var(--spice-player), 65%, transparent); + transition: all 1s; +} +.collection-collectionEntityHeroCard-likedSongs:hover { + background-color: unset !important; + background: var(--spice-player) !important; +} + +/* Shortcuts */ +.view-homeShortcutsGrid-shortcut { + background-color: unset !important; + background: linear-gradient(180deg, var(--spice-player), 65%, transparent); + transition: all 1s; +} +.view-homeShortcutsGrid-shortcut:hover { + background-color: unset !important; + background: var(--spice-player) !important; +} + +/* Cursor things */ +.main-playPauseButton-button, +.main-repeatButton-button, +.main-skipForwardButton-button, +.main-skipBackButton-button, +.main-shuffleButton-button { + cursor: pointer !important; +} + +/* Search */ +input { + background-color: unset !important; + border-bottom: solid 1px var(--spice-button-active) !important; + color: var(--spice-text) !important; + border-radius: 0px !important; +} + +.x-833-searchInput-searchInputSearchIcon { + color: var(--spice-text) !important; +} + +/* ANIMATIONS */ + +.view-homeShortcutsGrid-shortcut .main-heroCard-card, +.main-buttonIcon-buttonIcon, +.main-trackList-column, +.main-rootlist-rootlistItem, +.main-card-card, +.main-entityHeader-smallHeader, +.main-entityHeader-headerText, +.main-entityHeader-image { + animation-name: up-fade-anim; + animation-duration: 1s; +} +.main-shelf-seeAll, +.main-cardImage-image, +.main-trackList-trackList, +.main-trackList-number { + animation-name: left-fade-anim; + animation-duration: 1s; +} +.main-shelf-title { + animation-name: right-fade-anim; + animation-duration: 1s; +} + +@keyframes up-fade-anim { + from { + opacity: 0%; + transform: translateY(10px); + } + to { + opacity: 100; + transform: translateY(0px); + } +} +@keyframes left-fade-anim { + from { + opacity: 0%; + transform: translateX(10px); + } + to { + opacity: 100; + transform: translateX(0px); + } +} +@keyframes right-fade-anim { + from { + opacity: 0%; + transform: translateX(-10px); + } + to { + opacity: 100; + transform: translateX(0px); + } +} + +.queue-tabBar-active { + background-color: var(--spice-player) !important; + transition: all 0.5s; +} diff --git a/dot-config/spicetify/Themes/BurntSienna/README.md b/dot-config/spicetify/Themes/BurntSienna/README.md new file mode 100644 index 0000000..a2aba8b --- /dev/null +++ b/dot-config/spicetify/Themes/BurntSienna/README.md @@ -0,0 +1,9 @@ +# BurntSienna + +## Screenshots +![BurntSienna](./screenshot.png) + +## More +Montserrat Font is necessary, it is available on Google Fonts: +https://fonts.google.com/specimen/Montserrat
+Author: https://github.com/pjaspinski \ No newline at end of file diff --git a/dot-config/spicetify/Themes/BurntSienna/color.ini b/dot-config/spicetify/Themes/BurntSienna/color.ini new file mode 100644 index 0000000..99f7b7b --- /dev/null +++ b/dot-config/spicetify/Themes/BurntSienna/color.ini @@ -0,0 +1,6 @@ +[Base] +button = ef8450 +sidebar = 242629 +player = 242629 +main = 303336 +button-active = ef8450 \ No newline at end of file diff --git a/dot-config/spicetify/Themes/BurntSienna/screenshot.png b/dot-config/spicetify/Themes/BurntSienna/screenshot.png new file mode 100644 index 0000000..7634317 Binary files /dev/null and b/dot-config/spicetify/Themes/BurntSienna/screenshot.png differ diff --git a/dot-config/spicetify/Themes/BurntSienna/user.css b/dot-config/spicetify/Themes/BurntSienna/user.css new file mode 100644 index 0000000..15a08fd --- /dev/null +++ b/dot-config/spicetify/Themes/BurntSienna/user.css @@ -0,0 +1,228 @@ +@import url('https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap'); +* { + font-family: Montserrat; +} + +/* Page titles */ +h1 { + font-weight: 700 !important; +} + +/* Song name in player */ +.main-nowPlayingWidget-nowPlaying .main-trackInfo-name { + overflow: unset; + font-size: 20px !important; +} + +/* Artist name in player */ +.main-nowPlayingWidget-nowPlaying .main-trackInfo-artists { + overflow: unset; + font-size: 15px; +} + +.main-type-finale { + line-height: 17px; +} + +/* Icons */ +.main-trackList-rowPlayPauseIcon { + transform: scale(1.3); +} + +.x-downloadButton-button svg { + height: 32px; + width: 32px; +} + +/* Progress and remaining time */ +.main-playbackBarRemainingTime-container, +.playback-bar__progress-time-elapsed, +.playback-bar__progress-time { + font-size: 15px; + margin-left: 5px; + margin-right: 5px; +} + +/* Player play button */ +.main-playPauseButton-button { + background-color: unset; + color: var(--spice-subtext); +} + +.main-playPauseButton-button svg { + height: 28px; + width: 28px; +} + +/* Progress bar */ +.progress-bar { + --fg-color: var(--spice-button); +} + +.progress-bar__bg, +.progress-bar__fg, +.progress-bar__fg_wrapper { + height: 5px; +} + +.progress-bar-wrapper { + margin-left: 5px; + margin-right: 5px; +} + +/* Extra controls */ +.control-button::before { + font-size: 20px; +} + +.ExtraControls svg { + height: 20px; + width: 20px; +} + +/* Removing gradients */ +.main-entityHeader-backgroundColor, +.main-actionBarBackground-background { + background-color: unset !important; + background-image: none; +} + +/* Cover shadow */ +.main-entityHeader-shadow { + -webkit-box-shadow: 0 4px 20px rgba(var(--spice-rgb-shadow), 0.5); + box-shadow: 0 4px 20px rgba(var(--spice-rgb-shadow), 0.5); +} + +/* Top bar */ +.main-topBar-background { + background-color: #3a3d42 !important; +} + +/* Playing icon */ +.main-trackList-playingIcon { + filter: saturate(0%); +} + +/* Playlist like button */ +.main-actionBar-ActionBarRow .main-addButton-button .Svg-ulyrgf-0 { + height: unset; + width: unset; +} + +/* Order button */ +.x-sortBox-sortDropdown { + margin-top: 3px; +} + +/* Sidebar playlists menu */ +.main-rootlist-rootlistDividerGradient { + background: unset; +} + +.main-rootlist-rootlistDivider { + background-color: var(--spice-button); +} + +/* Search box */ +.x-searchInput-searchInputInput { + font-size: 18px; +} + +/* Aritsts names */ +.main-type-mesto { + font-size: 16px; + line-height: 20px; +} + +/* Songs names */ +.main-type-ballad { + font-size: 18px; +} + +/* Cards descriptions */ +.main-cardSubHeader-root { + overflow: hidden !important; +} + +/* Ad title */ +.desktoproutes-homepage-takeover-ad-hptoNativeOriginal-header { + font-weight: 700 !important; +} + +/* Friends names */ +.main-buddyFeed-username a { + color: var(--spice-text) !important; + font-size: 17px; + font-weight: 500; +} + +/* Friends songs and artists */ +.main-buddyFeed-artistAndTrackName a, +.main-buddyFeed-playbackContextLink span { + font-size: 13px; +} + +/* Cover height */ +.main-coverSlotExpanded-container { + height: var(--nav-bar-width) + 8px; +} + +/* Scrollbars */ +.os-scrollbar-handle { + background: var(--spice-button) !important; + border-radius: 8px; +} + +/* Making index column wider so that lighter background that +highlights selected song contains multi-digit song numbers */ +/* It looks good up to 4 digits, I figured that no one has playlists with more music than that ;) */ +.main-trackList-trackList.main-trackList-indexable .main-trackList-trackListRowGrid { + grid-template-columns: [index] 48px [first] 6fr [var1] 4fr [var2] 3fr [last] minmax(120px, 1fr) !important; +} + +/* Text boxes in settings */ +.main-dropDown-dropDown { + background-color: var(--spice-button-disabled); +} + +/* Facebook button */ +.x-settings-facebookButton { + background-color: unset !important; +} + +/* Playlist play button color */ +.encore-dark-theme .encore-bright-accent-set, +.encore-dark-theme .encore-bright-accent-set:hover { + --background-base: var(--spice-button-active); + --background-highlight: var(--spice-player); + --background-press: var(--spice-player); +} + +/* Volume bar margins */ +.volume-bar .progress-bar { + margin: 0 0.4rem; +} + +.volume-bar .playback-progressbar { + width: 70%; +} + + +.volume-bar { + flex: 0 150px; +} + +/* Menu hidden under the button with account name - font size and family unification */ +.ellipsis-one-line { + font-family: Montserrat; +} + +.ellipsis-one-line.main-type-mesto { + font-size: 14px; +} + +/* Removal of empty space above playlist cover and title on narrow viewports */ +.main-entityHeader-container.main-entityHeader-nonWrapped { + min-height: 325px; + height: 15vh; +} diff --git a/dot-config/spicetify/Themes/CODE_OF_CONDUCT.md b/dot-config/spicetify/Themes/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..35b5167 --- /dev/null +++ b/dot-config/spicetify/Themes/CODE_OF_CONDUCT.md @@ -0,0 +1,132 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +We as members, contributors, and leaders pledge to make participation in our +community a harassment-free experience for everyone, regardless of age, body +size, visible or invisible disability, ethnicity, sex characteristics, gender +identity and expression, level of experience, education, socio-economic status, +nationality, personal appearance, race, caste, color, religion, or sexual +identity and orientation. + +We pledge to act and interact in ways that contribute to an open, welcoming, +diverse, inclusive, and healthy community. + +## Our Standards + +Examples of behavior that contributes to a positive environment for our +community include: + +* Demonstrating empathy and kindness toward other people +* Being respectful of differing opinions, viewpoints, and experiences +* Giving and gracefully accepting constructive feedback +* Accepting responsibility and apologizing to those affected by our mistakes, + and learning from the experience +* Focusing on what is best not just for us as individuals, but for the overall + community + +Examples of unacceptable behavior include: + +* The use of sexualized language or imagery, and sexual attention or advances of + any kind +* Trolling, insulting or derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or email address, + without their explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Enforcement Responsibilities + +Community leaders are responsible for clarifying and enforcing our standards of +acceptable behavior and will take appropriate and fair corrective action in +response to any behavior that they deem inappropriate, threatening, offensive, +or harmful. + +Community leaders have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions that are +not aligned to this Code of Conduct, and will communicate reasons for moderation +decisions when appropriate. + +## Scope + +This Code of Conduct applies within all community spaces, and also applies when +an individual is officially representing the community in public spaces. +Examples of representing our community include using an official e-mail address, +posting via an official social media account, or acting as an appointed +representative at an online or offline event. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported to the community leaders responsible for enforcement at +[INSERT CONTACT METHOD]. +All complaints will be reviewed and investigated promptly and fairly. + +All community leaders are obligated to respect the privacy and security of the +reporter of any incident. + +## Enforcement Guidelines + +Community leaders will follow these Community Impact Guidelines in determining +the consequences for any action they deem in violation of this Code of Conduct: + +### 1. Correction + +**Community Impact**: Use of inappropriate language or other behavior deemed +unprofessional or unwelcome in the community. + +**Consequence**: A private, written warning from community leaders, providing +clarity around the nature of the violation and an explanation of why the +behavior was inappropriate. A public apology may be requested. + +### 2. Warning + +**Community Impact**: A violation through a single incident or series of +actions. + +**Consequence**: A warning with consequences for continued behavior. No +interaction with the people involved, including unsolicited interaction with +those enforcing the Code of Conduct, for a specified period of time. This +includes avoiding interactions in community spaces as well as external channels +like social media. Violating these terms may lead to a temporary or permanent +ban. + +### 3. Temporary Ban + +**Community Impact**: A serious violation of community standards, including +sustained inappropriate behavior. + +**Consequence**: A temporary ban from any sort of interaction or public +communication with the community for a specified period of time. No public or +private interaction with the people involved, including unsolicited interaction +with those enforcing the Code of Conduct, is allowed during this period. +Violating these terms may lead to a permanent ban. + +### 4. Permanent Ban + +**Community Impact**: Demonstrating a pattern of violation of community +standards, including sustained inappropriate behavior, harassment of an +individual, or aggression toward or disparagement of classes of individuals. + +**Consequence**: A permanent ban from any sort of public interaction within the +community. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], +version 2.1, available at +[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. + +Community Impact Guidelines were inspired by +[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. + +For answers to common questions about this code of conduct, see the FAQ at +[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at +[https://www.contributor-covenant.org/translations][translations]. + +[homepage]: https://www.contributor-covenant.org +[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html +[Mozilla CoC]: https://github.com/mozilla/diversity +[FAQ]: https://www.contributor-covenant.org/faq +[translations]: https://www.contributor-covenant.org/translations diff --git a/dot-config/spicetify/Themes/CONTRIBUTING.md b/dot-config/spicetify/Themes/CONTRIBUTING.md new file mode 100644 index 0000000..b3972a7 --- /dev/null +++ b/dot-config/spicetify/Themes/CONTRIBUTING.md @@ -0,0 +1,119 @@ +# Contributing guidelines + +Here are the guidelines for contributing to this repository. + +## Before contributing + +For avoiding having too many similar themes with small changes, themes are merged only if they bring **sensitive** changes to default Spotify UI and are different from existing themes. + +A theme name (as well as color scheme name) should consist of one word starting with an uppercase letter and shouldn't contain `spicetify` or any whitespace in it; if a "-" is present in the name it must be followed by an uppercase letter. + +## How to contribute + +If you want to add your theme: + +* Fork this repository +* Create another folder named after your theme name +* Create `color.ini` and `user.css` files +* Create a `README.md` in it with the following structure + + ```markdown + # THEME_NAME + + ## Screenshots + + [Put at least one image per color scheme here] + + ## More + + [Specify any needed font; (optionally) author name and/or any other info about the theme] + ``` +* Add the theme preview to [THEMES.md](./THEMES.md) (themes are in alphabetical order) following this structure if it has only one color scheme + + ```markdown + + ## THEME_NAME + + [A single image of the theme] + ``` + + If, instead, more than one color scheme is present + + ```markdown + ## THEME_NAME + + #### COLOR_SCHEME1_NAME + + [A single image of the theme using the color scheme] + + #### COLOR_SCHEME2_NAME + + [A single image of the theme using the color scheme] + + ... + ``` +* Commit only once, more details in the **Commit Message** +* Open a Pull Request and mention the most important changes you've made to the UI (ignoring the color scheme) + +**Thanks to all the contributors.** + +## Commit Message + +**NOTE: commit only once when you add a new theme or scheme (you can also commit again later, if you need to).** + +### Format + + (): + + [optional] + +**Any line of the commit message cannot be longer than 100 characters!** + +* **type:** feat | fix | docs | chore + * **feat:** A new theme | A new scheme | A new feature + * **fix:** A bug fix + * **docs:** Change the `README.md` of the theme | Change the `THEMES.md` + * **chore:** Add more screenshots | Change the screentshots | Other things +* **scope:** THEMES | `` + * THEMES is a fixed format: `docs(THEMES)` + * In other cases, use the theme name +* **subject:** What changes you have done + * Use the imperative, present tense: "change" not "changed" nor "changes" + * Don't capitalize first letter + * No dot (.) at the end +* **body**: More details of your changes, you can mention the most important changes here + +### Example (Turntable theme) + +* feat + + ``` + feat(Turntable): add Turntable theme + ``` + + + ``` + feat(Turntable): control the rotation of the turntable + + Rotate the turntable by playing state. + ``` +* fix + + ``` + fix(Turntable): show the cursor outside the context menu + ``` +* docs + + ``` + docs(Turntable): update README.md + ``` + + ``` + docs(THEMES): add preview for the Turntable + ``` +* chore + + ``` + chore(Turntable): add screenshots of the Turntable + ``` +If you want to learn more, view the [Angular - Git Commit Guidelines](https://github.com/angular/angular.js/blob/master/DEVELOPERS.md#-git-commit-guidelines). diff --git a/dot-config/spicetify/Themes/Default/README.md b/dot-config/spicetify/Themes/Default/README.md new file mode 100644 index 0000000..f79e058 --- /dev/null +++ b/dot-config/spicetify/Themes/Default/README.md @@ -0,0 +1,13 @@ +# Default + +Default look of Spotify with different color schemes. + +## Screenshot + +![screenshot](./ocean.png) + +## Info + +### Ocean + +Part of material ocean themes, [checkout here](https://github.com/material-ocean) for the same theme for different applications. By @Blacksuan19 diff --git a/dot-config/spicetify/Themes/Default/color.ini b/dot-config/spicetify/Themes/Default/color.ini new file mode 100644 index 0000000..4d58be9 --- /dev/null +++ b/dot-config/spicetify/Themes/Default/color.ini @@ -0,0 +1,16 @@ +[Ocean] +text = FFFFFF +subtext = F1F1F1 +main = 0F111A +sidebar = 0F111A +player = 0F111A +card = 00010A +shadow = 0F111A +selected-row = F1F1F1 +button = FF4151 +button-active = F1F1F1 +button-disabled = 434C5E +tab-active = FF4151 +notification = 00010A +notification-error = FF4151 +misc = 00010A diff --git a/dot-config/spicetify/Themes/Default/ocean.png b/dot-config/spicetify/Themes/Default/ocean.png new file mode 100644 index 0000000..937ed3f Binary files /dev/null and b/dot-config/spicetify/Themes/Default/ocean.png differ diff --git a/dot-config/spicetify/Themes/Dreary/README.md b/dot-config/spicetify/Themes/Dreary/README.md new file mode 100644 index 0000000..0c4b504 --- /dev/null +++ b/dot-config/spicetify/Themes/Dreary/README.md @@ -0,0 +1,36 @@ +# Dreary + +## Screenshots + +### BIB +![BIB Screenshot](bib.png) + +### Psycho +![Psycho Screenshot](psycho.png) + +### Deeper +![Deeper Screenshot](deeper.png) + +### Mono +![Mono Screenshot](mono.png) + +### Golden +![Golden Screenshot](golden.png) + +### Graytone-Blue +![Graytone-Blue Screenshot](graytone-blue.png) + + +## Important +Certain aspects of the theme, such as the borders around playlist names, require Sidebar Config to be enabled. It is not required but recommended. + +You can enable it by running `spicetify config sidebar_config 1`. + +## More + +A chill theme that keeps things bordered in and organized + +BIB color scheme based on original [BIB-Green](https://github.com/spicetify/spicetify-themes/tree/master/BIB-Green) + +Theme based on Sleek theme: https://github.com/spicetify/spicetify-themes/tree/v2/Sleek + diff --git a/dot-config/spicetify/Themes/Dreary/bib.png b/dot-config/spicetify/Themes/Dreary/bib.png new file mode 100644 index 0000000..80b3ac6 Binary files /dev/null and b/dot-config/spicetify/Themes/Dreary/bib.png differ diff --git a/dot-config/spicetify/Themes/Dreary/color.ini b/dot-config/spicetify/Themes/Dreary/color.ini new file mode 100644 index 0000000..f7b4094 --- /dev/null +++ b/dot-config/spicetify/Themes/Dreary/color.ini @@ -0,0 +1,154 @@ +[Psycho] +; Red on dark grey background +text = e00000 +subtext = ffffff +button-text = ffffff +main = 101010 +sidebar = 171717 +player = 171717 +subbutton-text = 101010 +card = 171717 +shadow = 6d1414 +selected-row = 330d0d +sub-button = a20606 +button = e00000 +button-active = e00000 +button-disabled = 404040 +tab-active = 171717 +notification = 5e0000 +notification-error = 5e0000 +playback-bar = ff4700 +misc = adadad + +[Deeper] +; Light blue on Dark Background +text = 4f9a87 +subtext = 406560 +button-text = 4f9a87 +main = 040614 +sidebar = 0F111A +player = 0F111A +subbutton-text = 040614 +card = 0f1118 +shadow = 406560 +selected-row = 040614 +sub-button = 4f9a87 +button = 0d3a2e +button-active = 106165 +button-disabled = 0C1C19 +tab-active = 0a1527 +notification = 051024 +notification-error = 051024 +playback-bar = 4f9a87 +misc = 406560 + +[BIB] +; Green on dark grey background +text = 8bc34a +subtext = b4b4b4 +button-text = 202020 +main = 202020 +sidebar = 202020 +player = 242424 +subbutton-text = 202020 +card = 242424 +shadow = 000000 +selected-row = 2a3c17 +sub-button = 6a913d +button = 537b25 +button-active = 98da4b +button-disabled = 353535 +tab-active = 303030 +notification = 242424 +notification-error = 242424 +playback-bar = 8bc34a +misc = 8bc34a + +[Mono] +;Grays, Blacks, Whites, You get the gist. +text = FFFFFF +subtext = d3d3d3 +button-text = FFFFFF +main = 000000 +sidebar = 5d5e60 +subbutton-text = d3d3d3 +player = 181818 +card = 5d5e60 +selected-row = 2D2A32 +shadow = FFFFFF +sub-button = d3d3d3 +button = d3d3d3 +button-active = d3d3d3 +button-disabled = 181818 +tab-active = d3d3d3 +notification = 181818 +notification-error = b5cbb7 +playback-bar = d3d3d3 +misc = d3d3d3 + +[Golden] +;Gold +text = FFE002 +subtext = B28228 +button-text = FFE002 +main = 1C1C1C +sidebar = 3B3B3B +subbutton-text = 3B3B3B +player = 1C1C1C +card = 3B3B3B +selected-row = 1c1c1c +shadow = FFE002 +sub-button = B28228 +button = B28228 +button-active = B28228 +button-disabled = FFB606 +tab-active = B28228 +notification = FFB606 +notification-error = b5cbb7 +playback-bar = B28228 +misc = B28228 + + +[Graytone-Blue] +; Gray colors with blue highlights +text = 4f9a87 +subtext = 406560 +button-text = 4f9a87 +main = 111115 +sidebar = 1e2027 +subbutton-text = 040614 +player = 1a1b1d +card = 0f1118 +selected-row = 040614 +shadow = 406560 +sub-button = 4f9a87 +button = 0d3a2e +button-active = 106165 +button-disabled = 0C1C19 +tab-active = 0a1527 +notification = 051024 +notification-error = 051024 +playback-bar = 4f9a87 +misc = 406560 + +; Description + +; text = main text, playlist names in main field, name of playlist selected in sidebar, headings +; subtext = text in main buttons in sidebar, playlist names in sidebar, artist names, and mini infos +; button-text = text in main buttons in sidebar when active +; main = main field or main bg +; sidebar = sidebar bg +; subbutton-text = text of buttons that use the text color or subtext color as a background +; player = player bg +; card = card bg +; shadow = bg of buttons like account, pop-up lyrics, full app display in main field +; selected-row = color of the song selected +; sub-button = caption and details of playlist, download and options button +; button = playlist buttons bg in sidebar, drop-down menus, now playing song, like button +; button-active = hover on song selected +; button-disabled = seekbar bg, volume bar bg, scrollbar +; tab-active = button bg in main field (playlists, podcasts, artists, albums) +; notification = notification ('Added to liked songs' etc.) +; notification-error = error +; playback-bar = seekbar fg, main play/pause button bg +; misc = miscellaneous diff --git a/dot-config/spicetify/Themes/Dreary/deeper.png b/dot-config/spicetify/Themes/Dreary/deeper.png new file mode 100644 index 0000000..1f7fda7 Binary files /dev/null and b/dot-config/spicetify/Themes/Dreary/deeper.png differ diff --git a/dot-config/spicetify/Themes/Dreary/golden.png b/dot-config/spicetify/Themes/Dreary/golden.png new file mode 100644 index 0000000..763c98c Binary files /dev/null and b/dot-config/spicetify/Themes/Dreary/golden.png differ diff --git a/dot-config/spicetify/Themes/Dreary/graytone-blue.png b/dot-config/spicetify/Themes/Dreary/graytone-blue.png new file mode 100644 index 0000000..8bcfea2 Binary files /dev/null and b/dot-config/spicetify/Themes/Dreary/graytone-blue.png differ diff --git a/dot-config/spicetify/Themes/Dreary/mono.png b/dot-config/spicetify/Themes/Dreary/mono.png new file mode 100644 index 0000000..3fcf697 Binary files /dev/null and b/dot-config/spicetify/Themes/Dreary/mono.png differ diff --git a/dot-config/spicetify/Themes/Dreary/psycho.png b/dot-config/spicetify/Themes/Dreary/psycho.png new file mode 100644 index 0000000..a645f5d Binary files /dev/null and b/dot-config/spicetify/Themes/Dreary/psycho.png differ diff --git a/dot-config/spicetify/Themes/Dreary/user.css b/dot-config/spicetify/Themes/Dreary/user.css new file mode 100644 index 0000000..b2113fe --- /dev/null +++ b/dot-config/spicetify/Themes/Dreary/user.css @@ -0,0 +1,609 @@ +/* Dreary Theme*/ + +.main-rootlist-rootlistDividerGradient { + display: none; + visibility: hidden !important; +} + +.main-rootlist-rootlistDivider { + background-color: var(--spice-text) !important; +} + +input { + background-color: unset !important; + border-bottom: solid 1px var(--spice-text) !important; + border-radius: 0 !important; + padding: 6px 10px 6px 48px; + color: var(--spice-text) !important; +} + +.x-833-searchInput-searchInputSearchIcon { + color: var(--spice-text) !important; +} + +.main-home-homeHeader, +.x-441-entityHeader-overlay, +.main-actionBarBackground-background, +.main-entityHeader-overlay, +.main-entityHeader-backgroundColor { + background-color: unset !important; + background-image: unset !important; +} + +.main-playlistEditDetailsModal-textElement:focus { + border: 0; +} + +.connect-title, +.connect-header { + display: none; +} + +/* Topbar visibility bug */ + +.main-topBar-topbarContent:not(.main-topBar-topbarContentFadeIn) > * { + opacity: unset !important; +} + +.main-entityHeader-topbarContent:not(.main-entityHeader-topbarContentFadeIn) + > * { + opacity: 0 !important; +} + +/* Remove Topbar background colour */ + +.main-topBar-background { + background-color: unset !important; +} + +.main-topBar-overlay { + background-color: var(--spice-main); +} + +.main-entityHeader-shadow { + box-shadow: 0 04px 20px #21212130; +} + +.main-trackList-playingIcon { + -webkit-mask-image: url("data:image/svg+xml,%3Csvg id='playing-icon' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 24'%3E%3Cdefs%3E%3Cstyle%3E %23playing-icon %7B fill: %2320BC54; %7D @keyframes play %7B 0%25 %7Btransform: scaleY(1);%7D 3.3%25 %7Btransform: scaleY(0.9583);%7D 6.6%25 %7Btransform: scaleY(0.9166);%7D 9.9%25 %7Btransform: scaleY(0.8333);%7D 13.3%25 %7Btransform: scaleY(0.7083);%7D 16.6%25 %7Btransform: scaleY(0.5416);%7D 19.9%25 %7Btransform: scaleY(0.4166);%7D 23.3%25 %7Btransform: scaleY(0.25);%7D 26.6%25 %7Btransform: scaleY(0.1666);%7D 29.9%25 %7Btransform: scaleY(0.125);%7D 33.3%25 %7Btransform: scaleY(0.125);%7D 36.6%25 %7Btransform: scaleY(0.1666);%7D 39.9%25 %7Btransform: scaleY(0.1666);%7D 43.3%25 %7Btransform: scaleY(0.2083);%7D 46.6%25 %7Btransform: scaleY(0.2916);%7D 49.9%25 %7Btransform: scaleY(0.375);%7D 53.3%25 %7Btransform: scaleY(0.5);%7D 56.6%25 %7Btransform: scaleY(0.5833);%7D 59.9%25 %7Btransform: scaleY(0.625);%7D 63.3%25 %7Btransform: scaleY(0.6666);%7D 66.6%25 %7Btransform: scaleY(0.6666);%7D 69.9%25 %7Btransform: scaleY(0.6666);%7D 73.3%25 %7Btransform: scaleY(0.6666);%7D 76.6%25 %7Btransform: scaleY(0.7083);%7D 79.9%25 %7Btransform: scaleY(0.75);%7D 83.3%25 %7Btransform: scaleY(0.8333);%7D 86.6%25 %7Btransform: scaleY(0.875);%7D 89.9%25 %7Btransform: scaleY(0.9166);%7D 93.3%25 %7Btransform: scaleY(0.9583);%7D 96.6%25 %7Btransform: scaleY(1);%7D %7D %23bar1 %7B transform-origin: bottom; animation: play 0.9s -0.51s infinite; %7D %23bar2 %7B transform-origin: bottom; animation: play 0.9s infinite; %7D %23bar3 %7B transform-origin: bottom; animation: play 0.9s -0.15s infinite; %7D %23bar4 %7B transform-origin: bottom; animation: play 0.9s -0.75s infinite; %7D %3C/style%3E%3C/defs%3E%3Ctitle%3Eplaying-icon%3C/title%3E%3Crect id='bar1' class='cls-1' width='4' height='24'/%3E%3Crect id='bar2' class='cls-1' x='6' width='4' height='24'/%3E%3Crect id='bar3' class='cls-1' x='12' width='4' height='24'/%3E%3Crect id='bar4' class='cls-1' x='18' width='4' height='24'/%3E%3C/svg%3E"); + background: var(--spice-text); + content-visibility: hidden; +} + +span.artist-artistVerifiedBadge-badge svg:nth-child(1) { + fill: black; +} + +/* Hide Banner Ads */ + +.main-leaderboardComponent-container { + display: none; +} + +.desktoproutes-homepage-takeover-ad-hptoComponent-parentContainer, +.desktoproutes-homepage-takeover-ad-hptoComponent-container { + display: none !important; +} + +/* Hide Upgrade Button */ + +.main-topBar-UpgradeButton { + display: none; +} + +[aria-label="Playing"] { + color: var(--spice-text); +} + +/* Fix design fault */ + +@media (min-width: 1024px) { + .main-trackList-trackListHeader { + border-bottom: solid 1px; + margin: 10px; + } +} + +.main-trackList-trackListHeaderStuck.main-trackList-trackListHeader { + background: var(--spice-main); + border: 0; +} + +.main-trackList-trackListHeaderStuck .main-trackList-trackListHeaderRow { + border-bottom: 1px solid rgba(var(--spice-rgb-button-disabled), 0.8); +} + +/* Changing Playback Bar Location */ + +.progress-bar__bg, +.progress-bar__fg_wrapper { + border-radius: 0; + z-index: 1; +} + +.playback-bar__progress-time { + display: none; +} + +.playback-bar { + width: 100%; + bottom: 83px; + position: absolute; + left: -1px; + z-index: 1; +} + +.main-playbackBarRemainingTime-container { + position: absolute; + left: 49.68%; + top: 60%; + border: solid 1px; + border-radius: 20px; + z-index: 5; + color: var(--spice-subtext) !important; + padding-left: 5px; +} + +.player-controls__buttons { + transform: translateY(6px); +} + +.main-playPauseButton-button { + background-color: var(--spice-main); + box-shadow: var(--spice-shadow) 0 5px 9px 0px; + --button-size: 50px !important; + color: var(--spice-text); + background-color: var(--spice-player) !important; + cursor: pointer; +} + +.player-controls__buttons { + align-items: center; + position: relative; + left: 2.3%; +} + +.main-entityTitle-subtitle.main-entityTitle-small.main-entityTitle-uppercase.main-entityTitle-bold { + border: 2px var(--spice-text) solid; + border-radius: 4px; + width: fit-content; + display: inline; + text-align: center; + padding: 0 5px; +} + +.os-theme-spotify.os-host-transition + > .os-scrollbar-vertical + > .os-scrollbar-track + > .os-scrollbar-handle { + border-radius: 4px; + background-color: var(--spice-text); +} + +/* Hide Profile Options in Nav Bar */ + +.main-userWidget-notificationIndicator { + display: none; +} + +.main-avatar-userIcon { + color: white; +} + +.main-userWidget-box { + background-color: var(--spice-sidebar); + text-decoration-line: underline; +} + +/* Improve Sidebar Buttons */ + +.main-likedSongsButton-likedSongsIcon { + background: var(--spice-text); +} + +.main-likedSongsButton-likedSongsIcon { + color: var(--spice-sidebar); +} + +.main-trackList-trackListHeaderRow { + border-bottom: 1px solid rgba(var(--spice-rgb-button-disabled), 0.8); +} + +.main-trackList-trackListHeaderStuck .main-trackList-trackListHeaderRow { + border-bottom: 1px solid rgba(var(--spice-rgb-button-disabled), 0.8); +} + +.main-trackList-trackListRow.main-trackList-selected, +.main-trackList-trackListRow.main-trackList-selected:hover { + background-color: rgba(var(--spice-rgb-selected-row), 0.8) !important; +} + +.main-trackList-trackListRow:focus-within, +.main-trackList-trackListRow:hover { + background-color: rgba(var(--spice-rgb-selected-row), 0.4); +} + +.main-duplicateTracksDialog-container { + background-color: var(--spice-card); + color: var(--spice-subtext); +} + +.main-duplicateTracksDialog-secondaryButton { + color: var(--spice-text); +} + +._9eb5acf729a98d62135ca21777fef244-scss { + color: var(--spice-card); +} + +.x-sortBox-sortDropdown, +.x-filterBox-expandButton { + color: var(--spice-text) !important; +} + +/* Main Play Button Change */ + +.main-playButton-PlayButton.main-playButton-primary { + color: var(--spice-main); + background-color: var(--spice-playback-bar); + cursor: pointer !important; +} + +.main-entityHeader-metaDataText.main-type-mesto:nth-child(2) { + display: none; +} + +.main-entityHeader-image { + border-radius: 10%; +} + +.x-downloadButton-button { + background: var(--spice-player); + border-radius: 50%; +} + +/* Link playback-bar color */ + +.playback-bar .progress-bar__fg { + background-color: var(--spice-playback-bar); +} + +:not(.no-focus-outline) .progress-bar:focus-within .progress-bar__fg { + background-color: var(--spice-playback-bar); +} + +.main-navBar-navBarLinkActive { + background-color: var(--spice-main); +} + +.main-navBar-navBarLinkActive, +.main-navBar-navBarLinkActive:focus, +.main-navBar-navBarLinkActive:hover, +.logo { + color: var(--spice-text) !important; + background-color: var(--spice-selected-row); +} + +.progress-bar__slider { + opacity: 1 !important; + background-color: var(--spice-sidebar) !important; + height: 16px !important; + border: solid 2px var(--spice-subtext) !important; + width: 16px !important; + display: unset !important; +} + +a.x-categoryCard-CategoryCard, +a.x-heroCategoryCard-HeroCategoryCard { + color: var(--spice-subtext); +} + +.main-heroCard-card a, +.collection-collectionEntityHeroCard-descriptionContainer { + color: var(--spice-subtext) !important; +} + +.main-buddyFeed-activityMetadata .main-buddyFeed-artistAndTrackName a, +.main-buddyFeed-activityMetadata .main-buddyFeed-username a, +.main-buddyFeed-activityMetadata .main-buddyFeed-playbackContextLink, +p.main-buddyFeed-timestamp.main-type-finale, +.main-buddyFeed-findFriendsButton .main-buddyFeed-findFriendsIcon { + color: var(--spice-subtext); +} + +/* Recolor sub-buttons */ + +.main-moreButton-button { + color: var(--spice-sub-button); +} + +.x-downloadButton-button { + color: var(--spice-sub-button) !important; +} + +.x-downloadButton-button:hover { + color: var(--spice-text) !important; +} + +.main-addButton-button { + color: var(--spice-sub-button); +} + +.main-entityHeader-metaDataText { + color: var(--spice-sub-button); +} + +.main-duration-container { + color: var(--spice-sub-button); +} + +.main-tag-container { + background-color: var(--spice-sub-button); +} + +.x-sortBox-sortDropdown { + background-color: var(--spice-selected-row) !important; +} + +.x-filterBox-searchIconContainer { + color: var(--spice-sub-button) !important; +} + +.x-filterBox-expandButton:focus, +.x-filterBox-expandButton:hover { + background-color: var(--spice-selected-row) !important; +} + +.main-contextMenu-menuItemButton:not(.main-contextMenu-disabled):focus, +.main-contextMenu-menuItemButton:not(.main-contextMenu-disabled):hover { + background-color: var(--spice-selected-row) !important; +} + +.view-homeShortcutsGrid-shortcut { + background-color: rgba(var(--spice-rgb-selected-row), 0.6) !important; +} + +.view-homeShortcutsGrid-shortcut:focus-within, +.view-homeShortcutsGrid-shortcut:hover, +.view-homeShortcutsGrid-shortcut[data-context-menu-open="true"] { + background-color: var(--spice-selected-row) !important; +} + +.main-rootlist-textWrapper.main-type-viola { + cursor: pointer !important; +} + +.main-navBar-navBar { + border-right: 2px solid var(--spice-misc); +} + +.cMigZB * { + color: var(--spice-misc) !important; +} + +.main-trackInfo-name a { + color: var(--spice-misc) !important; +} + +.main-trackInfo-artists a:link { + color: var(--spice-misc) !important; +} + +[class*=" spoticon-"]:before { + color: var(--spice-misc) !important; +} + +.main-connectToFacebook-headerTitle { + color: var(--spice-misc) !important; +} + +.main-repeatButton-button, +.main-skipForwardButton-button, +.main-skipBackButton-button, +.main-shuffleButton-button { + cursor: pointer !important; +} + +#spicetify-playlist-list { + display: inline; + height: 10%; + align-items: center; + box-sizing: border-box; + position: relative; + overflow: hidden; + overflow-y: scroll; +} + +#spicetify-playlist-list > div > div:nth-child(2) > li { + margin: 4px 3.2vw; + width: 84%; + flex-shrink: 0; + padding-top: 10%; + padding-bottom: 10%; + box-sizing: border-box; + position: relative; + margin-bottom: -1px; + border-radius: 10px; + border: 2px solid var(--spice-text); + display: flex; + text-align: center; + flex-direction: column; + transition: all 500ms; +} + +#spicetify-playlist-list > div > div:nth-child(2) > li:hover { + border-color: var(--spice-button); +} + +.main-connectToFacebook-text, +.main-connectToFacebook-disclaimer { + color: unset !important; +} + +.main-type-mesto { + color: var(--spice-button); +} + +.main-rootlist-rootlistItemLink.main-rootlist-rootlistItemLinkActive, +.main-rootlist-rootlistItemLink { + transition: 500ms; +} + +.main-rootlist-rootlistItemLink.main-rootlist-rootlistItemLinkActive, +.main-rootlist-rootlistItemLink:focus { + color: var(--spice-text); +} + +.view-homeShortcutsGrid-shortcut { + background-color: rgba(var(--spice-rgb-selected-row), 0.6) !important; + border: solid 3px var(--spice-text); + border-radius: 10px; + padding-bottom: 80.7px; + transition: 500ms; +} + +.main-card-card .main-card-cardLink { + border: solid 3px; + transition: 500ms; + border-radius: 27px; +} + +.main-card-card { + border-radius: 27px !important; +} + +.view-homeShortcutsGrid-shortcut:hover, +.main-card-card .main-card-cardLink:hover { + border-color: var(--spice-button); +} + +.main-createPlaylistButton-button, +.main-collectionLinkButton-collectionLinkButton { + padding-left: 16px !important; + padding-top: 8px; +} + +.main-trackCreditsModal-closeBtn { + color: var(--spice-button-disabled) !important; +} + +.main-contextMenu-menu { + max-height: 400px; + opacity: 0.9676; +} +.main-trackList-trackList { + border-radius: 30px; + background-color: var(--spice-player); + border: 1px solid; +} +.main-buddyFeed-friendsFeedContainer { + border-left: solid 2px var(--spice-text); +} +.main-yourEpisodesButton-yourEpisodesIcon { + background: var(--spice-text); +} +.main-yourEpisodesButton-yourEpisodesIcon path { + fill: var(--spice-player); + opacity: 0.7; +} +.main-navBar-entryPoints > div:first-of-type { + margin-top: 20px; +} +.cMigZB { + cursor: pointer; +} +.control-button { + color: var(--spice-misc); +} +.main-buddyFeed-buddyFeed { + -webkit-box-shadow: none; + box-shadow: none; +} +.main-buddyFeed-friendActivity { + border-bottom: solid 1px; +} +.collection-collectionEntityHeroCard-likedSongs { + background: linear-gradient( + 149.46deg, + var(--spice-sidebar), + var(--spice-main) 99.16% + ) !important; +} + +.main-repeatButton-button[disabled] { + color: var(--spice-button); +} +.main-shuffleButton-button[disabled] { + color: var(--spice-button); +} +.progress-bar_bg { + z-index: 20; +} +.main-deletePlaylistDialog-secondaryButton { + color: var(--spice-subbutton-text); +} +.main-connectToFacebook-facebookButton { + color: var(--spice-subbutton-text); +} +.div.GlueDropTarget.personal-library > *.active { + background: var(--spice-selected-row); +} +.main-connectBar-connectBar { + overflow: visible !important; + --triangle-position: 147px !important; + align-items: unset !important; + height: 0px !important; + position: absolute !important; + left: 80% !important; + display: flex !important; + bottom: 2% !important; + padding: unset !important; +} +#spicetify-playlist-list > div { + scroll-behavior: smooth; + overflow-y: scroll; + overflow: hidden; + contain: unset !important; + height: fit-content !important; + padding-bottom: 10px; +} +div.main-cardImage-imageWrapper.main-cardImage-roundedCorners + > div + > div + > svg + > path { + color: blue; + background-color: blue; + fill: var(--spice-sidebar); + opacity: 0.7; +} +div.main-cardImage-imageWrapper.main-cardImage-roundedCorners + > div + > div + > svg + > path { + color: blue; + background-color: blue; + fill: var(--spice-sidebar); + opacity: 0.7; +} +.main-yourEpisodes-coverContainer { + background-color: var(--spice-text); +} +.playback-bar__progress-time-elapsed { + visibility: hidden; + width: 0px; + height: 0px; + padding: 0px; + margin: 0px; + position: absolute; +} +.Root__nav-bar { + min-width: 281px !important; +} +.playback-bar__progress-time-elapsed { + display: none !important; +} +#spicetify-playlist-list > div { + height: 100% !important; +} diff --git a/dot-config/spicetify/Themes/Dribbblish/README.md b/dot-config/spicetify/Themes/Dribbblish/README.md new file mode 100644 index 0000000..287e1cd --- /dev/null +++ b/dot-config/spicetify/Themes/Dribbblish/README.md @@ -0,0 +1,110 @@ +# Dribbblish + +### Base +![base](base.png) +### White +![white](white.png) +### Dark +![dark](dark.png) +### Nord-Light +![nord-light](nord-light.png) +### Nord-Dark +![nord-dark](nord-dark.png) +### Beach-Sunset +![beach-sunset](beach-sunset.png) +### Purple +![purple](purple.png) +### Samurai +![samurai](samurai.png) +### Gruvbox +![gruvbox](gruvbox.png) +### Gruvbox Material Dark +![gruvbox-material-dark](gruvbox-material-dark.png) +### Rosé Pine +![rosepine](rosepine.png) +### Lunar +![lunar](lunar.png) +### Catppuccin Latte +![catppuccin-latte](catppuccin-latte.png) +### Catppuccin Frappe +![catppuccin-frappe](catppuccin-frappe.png) +### Catppuccin Macchiato +![catppuccin-macchiato](catppuccin-macchiato.png) +### Catppuccin Mocha +![catppuccin-mocha](catppuccin-mocha.png) + +## Features +### Resizable sidebar + +img + +### Customizable sidebar +Rearrange icons positions, stick icons to header or hide unnecessary to save space. +Turn on "Sidebar config" mode in Profile menu and hover on icon to show control buttons. +After you finish customizing, turn off Config mode in Profile menu to save. + +img + +### Playlist Folder image +Right click at folder and choose images for your playlist folder. Every image formats supported by Chrome can be used, but do keep image size small and in compressed format. + +img + +### Left/Right expanded cover +In profile menu, toggle option "Right expanded cover" to change expaned current track cover image to left or right side, whereever you prefer. + +## Auto-install +Make sure you are using spicetify >= v2.5.0 and Spotify >= v1.1.56. +### Windows +```powershell +Invoke-WebRequest -UseBasicParsing "https://raw.githubusercontent.com/spicetify/spicetify-themes/master/Dribbblish/install.ps1" | Invoke-Expression +``` + +## Manual Install +Run these commands: + +### Linux and MacOS: +In **Bash**: +```bash +cd "$(dirname "$(spicetify -c)")/Themes/Dribbblish" +spicetify config current_theme Dribbblish color_scheme base +spicetify config inject_css 1 replace_colors 1 overwrite_assets 1 inject_theme_js 1 +spicetify apply +``` + +### Windows +In **Powershell**: +```powershell +cd "$(spicetify -c | Split-Path)\Themes\Dribbblish" +spicetify config current_theme Dribbblish color_scheme base +spicetify config inject_css 1 replace_colors 1 overwrite_assets 1 inject_theme_js 1 +spicetify apply +``` + +From Spotify > v1.1.62, in sidebar, they use an adaptive render mechanic to actively show and hide items on scroll. It helps reducing number of items to render, hence there is significant performance boost if you have a large playlists collection. But the drawbacks is that item height is hard-coded, it messes up user interaction when we explicity change, in CSS, playlist item height bigger than original value. So you need to add these 2 lines in Patch section in config file: +```ini +[Patch] +xpui.js_find_8008 = ,(\w+=)32, +xpui.js_repl_8008 = ,${1}56, +``` + +## Change Color Schemes +There are 9 color schemes you can choose: `base`, `white`, `dark`, `dracula`, `nord-dark`, `nord-light`, `beach-sunset`, `samurai`, `purple`, `gruvbox`, `gruvbox-material-dark`, `catppuccin-latte`, `catppuccin-frappe`, `catppuccin-macchiato`, and `catppuccin-mocha`. Change scheme with commands: +``` +spicetify config color_scheme +spicetify apply +``` + +## Auto-uninstall +### Windows +```powershell +Invoke-WebRequest -UseBasicParsing "https://raw.githubusercontent.com/spicetify/spicetify-themes/v2/Dribbblish/uninstall.ps1" | Invoke-Expression +``` + +## Manual uninstall +Remove the dribbblish theme with the following commands + +``` +spicetify config current_theme " " color_scheme " " +spicetify apply +``` diff --git a/dot-config/spicetify/Themes/Dribbblish/assets/glue-resources/fonts/GoogleSansDisplayMedium.woff2 b/dot-config/spicetify/Themes/Dribbblish/assets/glue-resources/fonts/GoogleSansDisplayMedium.woff2 new file mode 100644 index 0000000..2430944 Binary files /dev/null and b/dot-config/spicetify/Themes/Dribbblish/assets/glue-resources/fonts/GoogleSansDisplayMedium.woff2 differ diff --git a/dot-config/spicetify/Themes/Dribbblish/assets/glue-resources/fonts/GoogleSansDisplayRegular.woff2 b/dot-config/spicetify/Themes/Dribbblish/assets/glue-resources/fonts/GoogleSansDisplayRegular.woff2 new file mode 100644 index 0000000..911e5f8 Binary files /dev/null and b/dot-config/spicetify/Themes/Dribbblish/assets/glue-resources/fonts/GoogleSansDisplayRegular.woff2 differ diff --git a/dot-config/spicetify/Themes/Dribbblish/assets/glue-resources/fonts/Roboto.woff2 b/dot-config/spicetify/Themes/Dribbblish/assets/glue-resources/fonts/Roboto.woff2 new file mode 100644 index 0000000..9a0064e Binary files /dev/null and b/dot-config/spicetify/Themes/Dribbblish/assets/glue-resources/fonts/Roboto.woff2 differ diff --git a/dot-config/spicetify/Themes/Dribbblish/assets/glue-resources/fonts/RobotoMedium.woff2 b/dot-config/spicetify/Themes/Dribbblish/assets/glue-resources/fonts/RobotoMedium.woff2 new file mode 100644 index 0000000..6a88805 Binary files /dev/null and b/dot-config/spicetify/Themes/Dribbblish/assets/glue-resources/fonts/RobotoMedium.woff2 differ diff --git a/dot-config/spicetify/Themes/Dribbblish/base.png b/dot-config/spicetify/Themes/Dribbblish/base.png new file mode 100644 index 0000000..ce56373 Binary files /dev/null and b/dot-config/spicetify/Themes/Dribbblish/base.png differ diff --git a/dot-config/spicetify/Themes/Dribbblish/beach-sunset.png b/dot-config/spicetify/Themes/Dribbblish/beach-sunset.png new file mode 100644 index 0000000..3cf9f78 Binary files /dev/null and b/dot-config/spicetify/Themes/Dribbblish/beach-sunset.png differ diff --git a/dot-config/spicetify/Themes/Dribbblish/catppuccin-frappe.png b/dot-config/spicetify/Themes/Dribbblish/catppuccin-frappe.png new file mode 100644 index 0000000..b411d1b Binary files /dev/null and b/dot-config/spicetify/Themes/Dribbblish/catppuccin-frappe.png differ diff --git a/dot-config/spicetify/Themes/Dribbblish/catppuccin-latte.png b/dot-config/spicetify/Themes/Dribbblish/catppuccin-latte.png new file mode 100644 index 0000000..1f69c47 Binary files /dev/null and b/dot-config/spicetify/Themes/Dribbblish/catppuccin-latte.png differ diff --git a/dot-config/spicetify/Themes/Dribbblish/catppuccin-macchiato.png b/dot-config/spicetify/Themes/Dribbblish/catppuccin-macchiato.png new file mode 100644 index 0000000..3861ca1 Binary files /dev/null and b/dot-config/spicetify/Themes/Dribbblish/catppuccin-macchiato.png differ diff --git a/dot-config/spicetify/Themes/Dribbblish/catppuccin-mocha.png b/dot-config/spicetify/Themes/Dribbblish/catppuccin-mocha.png new file mode 100644 index 0000000..08392c9 Binary files /dev/null and b/dot-config/spicetify/Themes/Dribbblish/catppuccin-mocha.png differ diff --git a/dot-config/spicetify/Themes/Dribbblish/color.ini b/dot-config/spicetify/Themes/Dribbblish/color.ini new file mode 100644 index 0000000..919bd3e --- /dev/null +++ b/dot-config/spicetify/Themes/Dribbblish/color.ini @@ -0,0 +1,308 @@ +[base] +text = FFFFFF +subtext = F0F0F0 +sidebar-text = FFFFFF +main = 000000 +sidebar = 24b558 +player = 000000 +card = 000000 +shadow = 202020 +selected-row = 797979 +button = 24b558 +button-active = 24b558 +button-disabled = 535353 +tab-active = 166632 +notification = 1db954 +notification-error = e22134 +misc = BFBFBF + + +[white] +text = 363636 +subtext = 3D3D3D +sidebar-text = FFF9F4 +main = FFF9F4 +sidebar = FFA789 +player = FFF9F4 +card = FFF9F4 +shadow = d3d3d3 +selected-row = 6D6D6D +button = ff8367 +button-active = ff8367 +button-disabled = 535353 +tab-active = ffdace +notification = FFA789 +notification-error = e22134 +misc = BFBFBF + +[dark] +text = F0F0F0 +subtext = F0F0F0 +sidebar-text = 0a0e14 +main = 0a0e14 +sidebar = C2D935 +player = 0a0e14 +card = 0a0e14 +shadow = 202020 +selected-row = DEDEDE +button = C2D935 +button-active = C2D935 +button-disabled = 535353 +tab-active = 727d2b +notification = C2D935 +notification-error = e22134 +misc = BFBFBF + +[dracula] +text = f8f8f2 +subtext = f8f8f2 +sidebar-text = F0F0F0 +main = 44475a +sidebar = 6272a4 +player = 44475a +card = 6272a4 +shadow = 000000 +selected-row = bd93f9 +button = ffb86c +button-active = 8be9fd +button-disabled = 535353 +tab-active = 6272a4 +notification = bd93f9 +notification-error = e22134 +misc = BFBFBF + +[nord-light] +text = 2e3440 +subtext = 3b4252 +sidebar-text = ECEFF4 +main = ECEFF4 +sidebar = 5E81AC +player = ECEFF4 +card = ebcb8b +shadow = eceff4 +selected-row = 4c566a +button = 81a1c1 +button-active = 81a1c1 +button-disabled = c0c0c0 +tab-active = ebcb8b +notification = a3be8c +notification-error = bf616a +misc = BFBFBF + +[nord-dark] +text = ECEFF4 +subtext = E5E9F0 +sidebar-text = 434c5e +main = 2e3440 +sidebar = 88C0D0 +player = 2e3440 +card = 2e3440 +shadow = 2E3440 +selected-row = D8DEE9 +button = 81A1C1 +button-active = 81A1C1 +button-disabled = 434C5E +tab-active = 434C5E +notification = A3BE8C +notification-error = BF616A +misc = BFBFBF + +[purple] +text = f1eaff +subtext = f1eaff +sidebar-text = e0d0ff +main = 0A0E14 +sidebar = 6F3C89 +player = 0A0E14 +card = 0A0E14 +shadow = 3a2645 +selected-row = 645275 +button = c76af6 +button-active = 6F3C89 +button-disabled = 535353 +tab-active = 58306D +notification = ff9e00 +notification-error = f61379 +misc = DEDEDE + +[samurai] +text = ebdbb2 +subtext = ebdbb2 +sidebar-text = 461217 +main = 461217 +sidebar = ebdbb2 +player = 461217 +card = 461217 +shadow = 000000 +selected-row = 909090 +button = e7a52d +button-active = e7a52d +button-disabled = 535353 +tab-active = e7a52d +notification = e7a52d +notification-error = e22134 +misc = BFBFBF + +[beach-sunset] +text = FFFFFF +subtext = F0F0F0 +sidebar-text = F0F0F0 +main = 262626 +sidebar = bd3e3e +player = 262626 +card = 262626 +shadow = 000000 +selected-row = d1d6e2 +button = f1a84f +button-active = c98430 +button-disabled = 535353 +tab-active = f1a84f +notification = c98430 +notification-error = e22134 +misc = BFBFBF + +[gruvbox] +text = fbf1c7 +subtext = d5c4a1 +sidebar-text = ebe1b7 +main = 292828 +sidebar = 689d6a +player = 292828 +card = 3c3836 +shadow = 202020 +selected-row = d5c4a1 +button = fb4934 +button-active = cc241d +button-disabled = bdae93 +tab-active = fb4934 +notification = 8ec07c +notification-error = d79921 +misc = BFBFBF + +[gruvbox-material-dark] +text = fbf1c7 +subtext = d5c4a1 +sidebar-text = 716e5f +main = 292828 +sidebar = 1d2021 +player = 292828 +card = 3c3836 +shadow = 202020 +selected-row = d5c4a1 +button = a9b665 +button-active = a9b665 +button-disabled = bdae93 +tab-active = a9b665 +notification = 8ec07c +notification-error = d79921 +misc = BFBFBF + +[rosepine] +text = ebbcba +subtext = F0F0F0 +sidebar-text = e0def4 +main = 191724 +sidebar = 2a2837 +player = 191724 +card = 191724 +shadow = 1f1d2e +selected-row = 797979 +button = 31748f +button-active = 31748f +button-disabled = 555169 +tab-active = 31748f +notification = 1db954 +notification-error = eb6f92 +misc = 6e6a86 + +[lunar] +text = f3f3f3 +subtext = cecece +sidebar-text = f3f3f3 +main = 161616 +sidebar = 202020 +player = 161616 +card = 161616 +shadow = 252525 +selected-row = 202020 +button = 3281ea +button-active = 0284e8 +button-disabled = 303030 +tab-active = ebbcba +notification = 3281ea +notification-error = b10c0c +misc = 252525 + +; Comments below correspond to the labeling of the colors on the Catppuccin GitHub page. + +[catppuccin-latte] +text = 4c4f69 ; Text +subtext = 5c5f77 ; Subtext1 +sidebar-text = 4c4f69 ; Text +main = eff1f5 ; Base +sidebar = e6e9ef ; Mantle +player = eff1f5 ; Base +card = eff1f5 ; Base +shadow = e6e9ef ; Mantle +selected-row = 7c7f93 ; Overlay2 +button = 8c8fa1 ; Overlay1 +button-active = 7c7f93 ; Overlay2 +button-disabled = 9ca0b0 ; Overlay0 +tab-active = ccd0da ; Surface0 +notification = ccd0da ; Surface0 +notification-error = d20f39 ; Red +misc = bcc0cc ; Surface1 + +[catppuccin-frappe] +text = c6d0f5 ; Text +subtext = b5bfe2 ; Subtext1 +sidebar-text = c6d0f5 ; Text +main = 303446 ; Base +sidebar = 292c3c ; Mantle +player = 303446 ; Base +card = 303446 ; Base +shadow = 292c3c ; Mantle +selected-row = 949cbb ; Overlay2 +button = 838ba7 ; Overlay1 +button-active = 949cbb ; Overlay2 +button-disabled = 737994 ; Overlay0 +tab-active = 414559 ; Surface0 +notification = 414559 ; Surface0 +notification-error = e78284 ; Red +misc = 51576d ; Surface1 + +[catppuccin-macchiato] +text = cad3f5 ; Text +subtext = b8c0e0 ; Subtext1 +sidebar-text = cad3f5 ; Text +main = 24273a ; Base +sidebar = 1e2030 ; Mantle +player = 24273a ; Base +card = 24273a ; Base +shadow = 1e2030 ; Mantle +selected-row = 939ab7 ; Overlay2 +button = 8087a2 ; Overlay1 +button-active = 939ab7 ; Overlay2 +button-disabled = 6e738d ; Overlay0 +tab-active = 363a4f ; Surface0 +notification = 363a4f ; Surface0 +notification-error = ed8796 ; Red +misc = 494d64 ; Surface1 + +[catppuccin-mocha] +text = cdd6f4 ; Text +subtext = bac2de ; Subtext1 +sidebar-text = cdd6f4 ; Text +main = 1e1e2e ; Base +sidebar = 181825 ; Mantle +player = 1e1e2e ; Base +card = 1e1e2e ; Base +shadow = 181825 ; Mantle +selected-row = 9399b2 ; Overlay2 +button = 7f849c ; Overlay1 +button-active = 9399b2 ; Overlay2 +button-disabled = 6c7086 ; Overlay0 +tab-active = 313244 ; Surface0 +notification = 313244 ; Surface0 +notification-error = f38ba8 ; Red +misc = 45475a ; Surface1 diff --git a/dot-config/spicetify/Themes/Dribbblish/dark.png b/dot-config/spicetify/Themes/Dribbblish/dark.png new file mode 100644 index 0000000..00dbb78 Binary files /dev/null and b/dot-config/spicetify/Themes/Dribbblish/dark.png differ diff --git a/dot-config/spicetify/Themes/Dribbblish/gruvbox-material-dark.png b/dot-config/spicetify/Themes/Dribbblish/gruvbox-material-dark.png new file mode 100644 index 0000000..ceb1a9f Binary files /dev/null and b/dot-config/spicetify/Themes/Dribbblish/gruvbox-material-dark.png differ diff --git a/dot-config/spicetify/Themes/Dribbblish/gruvbox.png b/dot-config/spicetify/Themes/Dribbblish/gruvbox.png new file mode 100644 index 0000000..f94bbe4 Binary files /dev/null and b/dot-config/spicetify/Themes/Dribbblish/gruvbox.png differ diff --git a/dot-config/spicetify/Themes/Dribbblish/images/tracklist-row-song-fallback.svg b/dot-config/spicetify/Themes/Dribbblish/images/tracklist-row-song-fallback.svg new file mode 100644 index 0000000..40980a7 --- /dev/null +++ b/dot-config/spicetify/Themes/Dribbblish/images/tracklist-row-song-fallback.svg @@ -0,0 +1 @@ +Playlist Icon \ No newline at end of file diff --git a/dot-config/spicetify/Themes/Dribbblish/install.ps1 b/dot-config/spicetify/Themes/Dribbblish/install.ps1 new file mode 100644 index 0000000..2d8a626 --- /dev/null +++ b/dot-config/spicetify/Themes/Dribbblish/install.ps1 @@ -0,0 +1,55 @@ +$checkSpice = Get-Command spicetify -ErrorAction Silent +if ($null -eq $checkSpice) { + Write-Host -ForegroundColor Red "Spicetify not found" + Write-Host "Follow instruction on:", "https://spicetify.app/docs/getting-started/simple-installation#windows" + return +} + +Write-Host "Downloading themes package:" -ForegroundColor Green +$zipFile = "$env:TEMP\spicetify-themes.zip" +Invoke-WebRequest "https://github.com/spicetify/spicetify-themes/archive/refs/heads/master.zip" -OutFile $zipFile + +Write-Host "Extracting themes package:" -ForegroundColor Green +$extractPath = "$env:TEMP\spicetify-themes-master" +if (Test-Path $extractPath) { + Remove-Item $extractPath -Recurse -Force +} +Expand-Archive $zipFile -DestinationPath $env:TEMP + +# Copy to personal Themes folder +$spicePath = spicetify -c | Split-Path +$dribPath = "$extractPath\Dribbblish" + +$destPath = "$spicePath\Themes\Dribbblish" +if (Test-Path $destPath) { + Remove-Item $destPath -Recurse -Force +} +Copy-Item $dribPath $destPath -Recurse + +Write-Host "Configuring:" -ForegroundColor Green +spicetify +spicetify config inject_css 1 replace_colors 1 overwrite_assets 1 inject_theme_js 1 current_theme Dribbblish + +# Add patch +$configFile = Get-Content "$spicePath\config-xpui.ini" +if (-not ($configFile -match "xpui.js_find_8008")) { + $rep = @" +[Patch] +xpui.js_find_8008=,(\w+=)32, +xpui.js_repl_8008=,`${1}56, +"@ + # In case missing Patch section + if (-not ($configFile -match "\[Patch\]")) { + $configFile += "`n[Patch]`n" + } + $configFile = $configFile -replace "\[Patch\]",$rep + Set-Content "$spicePath\config-xpui.ini" $configFile +} + +$backupVer = $configFile -match "^version" +$version = ConvertFrom-StringData $backupVer[0] +if ($version.version.Length -gt 0) { + spicetify apply +} else { + spicetify backup apply +} diff --git a/dot-config/spicetify/Themes/Dribbblish/lunar.png b/dot-config/spicetify/Themes/Dribbblish/lunar.png new file mode 100644 index 0000000..655d871 Binary files /dev/null and b/dot-config/spicetify/Themes/Dribbblish/lunar.png differ diff --git a/dot-config/spicetify/Themes/Dribbblish/nord-dark.png b/dot-config/spicetify/Themes/Dribbblish/nord-dark.png new file mode 100644 index 0000000..3f01074 Binary files /dev/null and b/dot-config/spicetify/Themes/Dribbblish/nord-dark.png differ diff --git a/dot-config/spicetify/Themes/Dribbblish/nord-light.png b/dot-config/spicetify/Themes/Dribbblish/nord-light.png new file mode 100644 index 0000000..26aceb6 Binary files /dev/null and b/dot-config/spicetify/Themes/Dribbblish/nord-light.png differ diff --git a/dot-config/spicetify/Themes/Dribbblish/purple.png b/dot-config/spicetify/Themes/Dribbblish/purple.png new file mode 100644 index 0000000..230311f Binary files /dev/null and b/dot-config/spicetify/Themes/Dribbblish/purple.png differ diff --git a/dot-config/spicetify/Themes/Dribbblish/rosepine.png b/dot-config/spicetify/Themes/Dribbblish/rosepine.png new file mode 100644 index 0000000..9c7e4e3 Binary files /dev/null and b/dot-config/spicetify/Themes/Dribbblish/rosepine.png differ diff --git a/dot-config/spicetify/Themes/Dribbblish/samurai.png b/dot-config/spicetify/Themes/Dribbblish/samurai.png new file mode 100644 index 0000000..fa9505c Binary files /dev/null and b/dot-config/spicetify/Themes/Dribbblish/samurai.png differ diff --git a/dot-config/spicetify/Themes/Dribbblish/theme.js b/dot-config/spicetify/Themes/Dribbblish/theme.js new file mode 100644 index 0000000..7cac9c0 --- /dev/null +++ b/dot-config/spicetify/Themes/Dribbblish/theme.js @@ -0,0 +1,242 @@ +function waitForElement(els, func, timeout = 100) { + const queries = els.map(el => document.querySelector(el)); + if (queries.every(a => a)) { + func(queries); + } else if (timeout > 0) { + setTimeout(waitForElement, 300, els, func, --timeout); + } +} + +let DribbblishShared = {}; + +// back shadow +waitForElement([".Root__top-container"], ([topContainer]) => { + const shadow = document.createElement("div"); + shadow.id = "dribbblish-back-shadow"; + topContainer.prepend(shadow); +}); + +// Spicetify.Platform.ConnectAPI.state.connectionStatus; + +// add fade effect on playlist/folder list +waitForElement([".main-navBar-mainNav .os-viewport.os-viewport-native-scrollbars-invisible"], ([scrollNode]) => { + scrollNode.setAttribute("fade", "bottom"); + scrollNode.addEventListener("scroll", () => { + if (scrollNode.scrollTop == 0) { + scrollNode.setAttribute("fade", "bottom"); + } else if (scrollNode.scrollHeight - scrollNode.clientHeight - scrollNode.scrollTop == 0) { + scrollNode.setAttribute("fade", "top"); + } else { + scrollNode.setAttribute("fade", "full"); + } + }); +}); + +let version; +let ylx; + +(function Dribbblish() { + // dynamic playback time tooltip + const progBar = document.querySelector(".playback-bar"); + const root = document.querySelector(".Root"); + + if (!Spicetify.Player.origin || !progBar || !root) { + setTimeout(Dribbblish, 300); + return; + } + + version = Spicetify.Platform.PlatformData.event_sender_context_information.client_version_int; + + if (version < 121200000) { + document.documentElement.classList.add("legacy"); + legacy(); + } else if (version >= 121200000 && version < 121400000) { + document.documentElement.classList.add("legacy-gridChange"); + legacy(); + } else if (version >= 121400000) { + document.documentElement.classList.add("ylx"); + ylx = true; + } + + const tooltip = document.createElement("div"); + tooltip.className = "prog-tooltip"; + progBar.append(tooltip); + + function updateProgTime({ data: e }) { + const maxWidth = progBar.offsetWidth; + const curWidth = Spicetify.Player.getProgressPercent() * maxWidth; + const ttWidth = tooltip.offsetWidth / 2; + if (curWidth < ttWidth + 12) { + tooltip.style.left = "12px"; + } else if (curWidth > maxWidth - ttWidth - 12) { + tooltip.style.left = String(maxWidth - ttWidth * 2 - 12) + "px"; + } else { + tooltip.style.left = String(curWidth - ttWidth) + "px"; + } + tooltip.innerText = Spicetify.Player.formatTime(e) + " / " + Spicetify.Player.formatTime(Spicetify.Player.getDuration()); + } + Spicetify.Player.addEventListener("onprogress", updateProgTime); + updateProgTime({ data: Spicetify.Player.getProgress() }); + + // filepicker for custom folder images + const filePickerForm = document.createElement("form"); + filePickerForm.setAttribute("aria-hidden", true); + filePickerForm.innerHTML = ''; + /** @type {HTMLInputElement} */ + const filePickerInput = filePickerForm.childNodes[0]; + filePickerInput.accept = ["image/jpeg", "image/apng", "image/avif", "image/gif", "image/png", "image/svg+xml", "image/webp"].join(","); + + filePickerInput.onchange = () => { + if (!filePickerInput.files.length) return; + + const file = filePickerInput.files[0]; + const reader = new FileReader(); + reader.onload = event => { + const result = event.target.result; + const id = Spicetify.URI.from(filePickerInput.uri).id; + try { + localStorage.setItem("dribbblish:folder-image:" + id, result); + } catch { + Spicetify.showNotification("File too large"); + } + DribbblishShared.loadPlaylistImage?.call(); + }; + reader.readAsDataURL(file); + }; + + // context menu items for custom folder images + new Spicetify.ContextMenu.Item( + "Remove folder image", + ([uri]) => { + const id = Spicetify.URI.from(uri).id; + localStorage.removeItem("dribbblish:folder-image:" + id); + DribbblishShared.loadPlaylistImage?.call(); + }, + ([uri]) => Spicetify.URI.isFolder(uri) && !ylx, + "x" + ).register(); + new Spicetify.ContextMenu.Item( + "Choose folder image", + ([uri]) => { + filePickerInput.uri = uri; + filePickerForm.reset(); + filePickerInput.click(); + }, + ([uri]) => Spicetify.URI.isFolder(uri) && !ylx, + "edit" + ).register(); +})(); + +// LEGACY NAVBAR ONLY +function legacy() { + if (!Spicetify.Platform) { + setTimeout(legacy, 300); + return; + } + + // allow resizing of the navbar + waitForElement([".Root__nav-bar .LayoutResizer__input"], ([resizer]) => { + const observer = new MutationObserver(updateVariable); + observer.observe(resizer, { attributes: true, attributeFilter: ["value"] }); + function updateVariable() { + let value = resizer.value; + if (value < 121) { + value = 72; + document.documentElement.classList.add("left-sidebar-collapsed"); + } else { + document.documentElement.classList.remove("left-sidebar-collapsed"); + } + document.documentElement.style.setProperty("--nav-bar-width", value + "px"); + } + updateVariable(); + }); + + // allow resizing of the buddy feed + waitForElement([".Root__right-sidebar .LayoutResizer__input"], ([resizer]) => { + const observer = new MutationObserver(updateVariable); + observer.observe(resizer, { attributes: true, attributeFilter: ["value"] }); + function updateVariable() { + let value = resizer.value; + let min_value = version < 121200000 ? 321 : 281; + if (value < min_value) { + value = 72; + document.documentElement.classList.add("buddyFeed-hide-text"); + } else { + document.documentElement.classList.remove("buddyFeed-hide-text"); + } + } + updateVariable(); + }); + + waitForElement([".main-nowPlayingBar-container"], ([nowPlayingBar]) => { + const observer = new MutationObserver(updateVariable); + observer.observe(nowPlayingBar, { childList: true }); + function updateVariable() { + if (nowPlayingBar.childElementCount === 2) { + document.documentElement.classList.add("connected"); + } else { + document.documentElement.classList.remove("connected"); + } + } + updateVariable(); + }); + + // add fade effect on playlist/folder list + waitForElement([".main-navBar-navBar .os-viewport.os-viewport-native-scrollbars-invisible"], ([scrollNode]) => { + scrollNode.setAttribute("fade", "bottom"); + scrollNode.addEventListener("scroll", () => { + if (scrollNode.scrollTop == 0) { + scrollNode.setAttribute("fade", "bottom"); + } else if (scrollNode.scrollHeight - scrollNode.clientHeight - scrollNode.scrollTop == 0) { + scrollNode.setAttribute("fade", "top"); + } else { + scrollNode.setAttribute("fade", "full"); + } + }); + }); + + waitForElement([`ul[tabindex="0"]`, `ul[tabindex="0"] .GlueDropTarget--playlists.GlueDropTarget--folders`], ([root, firstItem]) => { + const listElem = firstItem.parentElement; + root.classList.add("dribs-playlist-list"); + + /** Replace Playlist name with their pictures */ + function loadPlaylistImage() { + for (const item of listElem.children) { + let link = item.querySelector("a"); + if (!link) continue; + + let [_, app, uid] = link.pathname.split("/"); + let uri; + if (app === "playlist") { + uri = `spotify:playlist:${uid}`; + } else if (app === "folder") { + const base64 = localStorage.getItem("dribbblish:folder-image:" + uid); + let img = link.querySelector("img"); + if (!img) { + img = document.createElement("img"); + img.classList.add("playlist-picture"); + link.prepend(img); + } + img.src = base64 || "https://cdn.jsdelivr.net/gh/spicetify/spicetify-themes@master/Dribbblish/images/tracklist-row-song-fallback.svg"; + continue; + } + + Spicetify.CosmosAsync.get(`sp://core-playlist/v1/playlist/${uri}/metadata`, { policy: { picture: true } }).then(res => { + const meta = res.metadata; + let img = link.querySelector("img"); + if (!img) { + img = document.createElement("img"); + img.classList.add("playlist-picture"); + link.prepend(img); + } + img.src = meta.picture || "https://cdn.jsdelivr.net/gh/spicetify/spicetify-themes@master/Dribbblish/images/tracklist-row-song-fallback.svg"; + }); + } + } + + DribbblishShared.loadPlaylistImage = loadPlaylistImage; + loadPlaylistImage(); + + new MutationObserver(loadPlaylistImage).observe(listElem, { childList: true }); + }); +} diff --git a/dot-config/spicetify/Themes/Dribbblish/uninstall.ps1 b/dot-config/spicetify/Themes/Dribbblish/uninstall.ps1 new file mode 100644 index 0000000..df48c8c --- /dev/null +++ b/dot-config/spicetify/Themes/Dribbblish/uninstall.ps1 @@ -0,0 +1,15 @@ +spicetify config current_theme " " + +$configPath = spicetify -c +$configFile = Get-Content $configPath +$find = $configFile -match "xpui.js_find_8008" +if ($find) { + $configFile = $configFile -replace [regex]::escape($find),"" +} +$repl = $configFile -match "xpui.js_repl_8008" +if ($repl) { + $configFile = $configFile -replace [regex]::escape($repl),"" +} +Set-Content $configPath $configFile + +spicetify apply diff --git a/dot-config/spicetify/Themes/Dribbblish/user.css b/dot-config/spicetify/Themes/Dribbblish/user.css new file mode 100644 index 0000000..5fb9ab9 --- /dev/null +++ b/dot-config/spicetify/Themes/Dribbblish/user.css @@ -0,0 +1,925 @@ +:root { + --corner-radius: 10px; + --bar-cover-art-size: 40px; + --scrollbar-vertical-size: 10px; + --scrollbar-horizontal-size: 10px; + --bar-height: 90px; + --main-gap: 10px; +} + +@font-face { + font-family: "Google Sans Display"; + src: url("glue-resources/fonts/GoogleSansDisplayRegular.woff2") format("woff2"); + font-style: normal; + font-weight: 400; +} + +@font-face { + font-family: "Google Sans Display"; + src: url("glue-resources/fonts/GoogleSansDisplayMedium.woff2") format("woff2"); + font-style: normal; + font-weight: 500; +} + +@font-face { + font-family: "Roboto"; + src: url("glue-resources/fonts/Roboto.woff2") format("woff2"); + font-style: normal; + font-weight: 400; +} + +@font-face { + font-family: "Roboto"; + src: url("glue-resources/fonts/RobotoMedium.woff2") format("woff2"); + font-style: normal; + font-weight: 500; +} + +body { + --glue-font-family: "Google Sans Display", "Roboto", spotify-circular, spotify-circular-cyrillic, spotify-circular-arabic, spotify-circular-hebrew, + Helvetica Neue, helvetica, arial, Hiragino Kaku Gothic Pro, Meiryo, MS Gothic, sans-serif; + --info-font-family: "Roboto", spotify-circular, spotify-circular-cyrillic, spotify-circular-arabic, spotify-circular-hebrew, Helvetica Neue, helvetica, + arial, Hiragino Kaku Gothic Pro, Meiryo, MS Gothic, sans-serif; + font-family: var(--glue-font-family); + letter-spacing: normal; +} + +.global-nav .Root__top-container { + grid-template-areas: "global-nav global-nav global-nav" + "left-sidebar main-view right-sidebar" + "left-sidebar now-playing-bar now-playing-bar" !important; +} + +.Root__top-container { + grid-template-areas: + "left-sidebar main-view right-sidebar" + "left-sidebar now-playing-bar right-sidebar" !important; + gap: 0; + padding-left: 0 !important; +} + +.global-nav #Desktop_PanelContainer_Id { + border-radius: 0 !important; +} + +.Root__now-playing-bar { + background-color: var(--spice-player); + border-radius: 0 0 var(--corner-radius) var(--corner-radius) !important; + grid-area: now-playing-bar !important; +} + +.Root__globalNav { + background-color: var(--spice-main) !important; + border-radius: var(--corner-radius) var(--corner-radius) 0 0 !important; + margin-left: calc(var(--left-sidebar-width) * 1px); +} + +.Root__globalNav .main-globalNav-historyButtonsContainer, +.Root__globalNav .main-globalNav-searchSection, +.Root__globalNav .main-topBar-topbarContentRight { + -webkit-transform: scale(0.75); + transform: scale(0.75); +} + +.main-home-filterChipsSection { + background-color: var(--spice-main) !important; +} + +.global-nav .Root__main-view { + border-radius: 0 !important; +} + +.Root__main-view { + border-radius: var(--corner-radius) var(--corner-radius) 0 0 !important; + grid-area: main-view !important; +} + +.legacy .Root__top-container:not(:has(> .Root__right-sidebar)) { + padding-right: var(--main-gap); +} + +.ylx .Root__top-container:not(:has(> .Root__right-sidebar > aside)) { + padding-right: var(--main-gap); +} + +.Root__right-sidebar:not(:has(> aside)) { + padding-left: 0; +} + +.Root__nav-bar { + grid-area: left-sidebar !important; +} + +/* move the progress bar to the top */ +.playback-bar { + position: absolute; + left: 0; + top: -5px; +} + +.main-nowPlayingBar-nowPlayingBar { + position: relative; + padding-inline-end: 16px !important; +} + +.progress-bar { + --progress-bar-height: 2px; + --progress-bar-radius: 0; + --fg-color: var(--spice-button); + --bg-color: rgba(var(--spice-rgb-text), 0.2); +} + +/* add gradient to player bar */ +.main-nowPlayingBar-container { + background-color: unset; + background: radial-gradient(ellipse at right 50% bottom -80px, rgba(var(--spice-rgb-sidebar), 0.55), var(--spice-main) 60%) !important; + border-radius: 0 0 var(--corner-radius) var(--corner-radius) !important; + border-top: 0; + min-width: 518px; +} + +/* rearrange player bar */ +.main-nowPlayingBar-left { + order: 1; + flex: 1; + width: auto; + min-width: 0 !important; +} + +.main-nowPlayingBar-center { + order: 0; + flex: 1; + width: auto; + min-width: unset !important; +} + +.main-nowPlayingBar-right { + order: 2; + flex: 1; + width: auto; + min-width: unset !important; +} + +/* hide time elapsed */ +.main-playbackBarRemainingTime-container, +.playback-bar__progress-time-elapsed { + display: none; +} + +/* custom dynamic prog tooltip */ +.playback-bar .prog-tooltip { + position: absolute; + min-width: 100px; + width: unset; + height: 25px; + top: -35px; + padding: 0 5px; + border-radius: 4px; + text-align: center; + color: var(--spice-text); + background-color: var(--spice-button); + opacity: 0; + transition: opacity 0.2s linear, left 0.2s linear; +} + +.playback-bar:hover .prog-tooltip { + opacity: 1; +} + +/* customise player controls buttons */ +.player-controls__buttons { + position: relative; + margin-bottom: 0; +} + +.main-shuffleButton-button { + position: absolute; + left: 200px; +} + +.main-skipForwardButton-button, +.main-repeatButton-button, +.main-skipBackButton-button, +.main-shuffleButton-button { + color: var(--spice-text); +} + +.player-controls__left, +.player-controls__right { + gap: 16px; + flex: 0; +} + +.player-controls__right svg, +.player-controls__left svg { + width: 14px; + height: 14px; +} + +/* customise play button */ +.main-playPauseButton-button { + background-color: transparent !important; +} + +.main-playPauseButton-button svg { + width: 32px !important; + height: 32px !important; + color: var(--spice-button); +} + +/* customise right side player buttons */ +.control-button { + color: var(--spice-text); +} + +.main-genericButton-button { + color: var(--spice-text); +} + +/* customise cards hover play button */ +.main-card-PlayButtonContainer .ButtonInner-medium-iconOnly { + background-color: var(--background-base); + color: var(--spice-text); +} + +/* top welcome box viz. good morning */ +.view-homeShortcutsGrid-PlayButtonContainer .ButtonInner-small-iconOnly, +.view-homeShortcutsGrid-PlayButtonContainer .ButtonInner-medium-iconOnly, +.view-homeShortcutsGrid-PlayButtonContainer .ButtonInner-large-iconOnly { + background-color: var(--background-base); + color: var(--spice-text); +} + +/* top bar sponsored ads */ +.Button-medium-buttonPrimary-useBrowserDefaultFocusStyle .ButtonInner-medium { + background-color: var(--background-base); + color: var(--spice-text); +} + + +/* customise player cover art */ +.main-nowPlayingWidget-coverArt .cover-art { + width: var(--bar-cover-art-size) !important; + height: var(--bar-cover-art-size) !important; + background-color: transparent; +} + +.main-nowPlayingWidget-nowPlaying { + justify-content: center; +} + +/* style navbar */ +.main-navBar-mainNav { + gap: 0 !important; +} + +.main-navBar-mainNav>div { + background-color: var(--spice-sidebar); +} + +.main-yourLibraryX-navLink { + height: 48px; +} + +/* change tab colours */ +.main-navBar-mainNav .link-subtle, +.main-navBar-mainNav .link-subtle svg { + color: var(--spice-sidebar-text) !important; +} + +/* give active nav tab a background */ +.main-navBar-mainNav li:has(> .active) { + background-color: var(--spice-tab-active); + border-radius: 4px; +} + +/* align library button with other nav items */ +.main-yourLibraryX-header { + padding-top: 4px !important; +} + +.main-yourLibraryX-navItems { + padding-bottom: 0 !important; + padding: 8px; +} + +.main-yourLibraryX-navItems li { + padding-left: 16px; +} + +/* remove built in scrolllist shadow */ +.main-yourLibraryX-isScrolled { + box-shadow: none !important; +} + +/* round playlist images */ +.x-entityImage-imageContainer { + border-radius: 50% !important; + background-color: transparent; + width: 40px !important; + height: 40px !important; + align-self: center; + box-shadow: none !important; +} + +li div:has(> .x-entityImage-imageContainer), +li div:has(> .main-yourLibraryX-rowCover) { + justify-content: center; + width: 48px; +} + +/* folder items */ +.x-entityImage-imagePlaceholder { + background-color: transparent; + color: var(--spice-sidebar-text); +} + +/* local files item */ +.main-yourLibraryX-rowCover { + width: 40px; + height: 40px; +} + +.fRZRXRIV2YBCFLYgwDAr { + border-radius: 50% !important; +} + +.fRZRXRIV2YBCFLYgwDAr>svg { + width: 15px; + height: 15px; +} + +/* remove hover effect */ +li>div>div::after { + background-color: transparent !important; +} + +li>div::after { + background-color: transparent !important; +} + +/* give background to active playlist */ +.BoxComponent-group-tinted-listRow-isInteractive-hasLeadingOrMedia-paddingBlockStart_8px-paddingBlockEnd_8px-minBlockSize_56px-padding_8px, +.BoxComponent-group-tinted-listRow-isInteractive-hasFocus-hasLeadingOrMedia-paddingBlockStart_8px-paddingBlockEnd_8px-minBlockSize_56px-padding_8px { + background-color: var(--spice-tab-active); +} + +/* fix scrolllist item colours */ +.main-navBar-mainNav li p { + color: var(--spice-sidebar-text) !important; +} + +.main-navBar-mainNav li p svg { + fill: var(--spice-sidebar-text) !important; +} + +.main-yourLibraryX-listRowIconWrapper { + fill: var(--spice-sidebar-text) !important; +} + +/* reduce spacing between playlist name and subtitle */ +.main-yourLibraryX-listRowSubtitle { + margin-top: -8px; +} + +.main-yourLibraryX-collapseButton>button { + gap: 8px; + color: var(--spice-sidebar-text) !important; +} + +/* expanded sidebar buttons */ +.search-searchCategory-carouselButton { + background-color: transparent; +} + +.search-searchCategory-carouselButton:hover { + background-color: var(--spice-tab-active); +} + +.search-searchCategory-carouselButton svg { + fill: var(--spice-sidebar-text) !important; +} + +.main-yourLibraryX-iconOnly { + color: var(--spice-sidebar-text) !important; +} + +.main-yourLibraryX-iconOnly:hover { + background-color: var(--spice-tab-active); +} + +.main-yourLibraryX-filterArea>div>div:first-child button { + background-color: var(--spice-tab-active) !important; +} + +.main-yourLibraryX-filterArea>div>div:first-child button>span { + background-color: var(--spice-tab-active) !important; + color: var(--spice-text) !important; +} + +.main-yourLibraryX-libraryFilter .x-sortBox-sortDropdown, +.main-yourLibraryX-libraryFilter .x-filterBox-expandButton, +.main-yourLibraryX-libraryFilter .x-filterBox-searchIconContainer, +.main-yourLibraryX-libraryFilter .x-filterBox-filterInput, +.main-yourLibraryX-libraryFilter .x-filterBox-clearButton { + color: var(--spice-sidebar-text); +} + +/* hide main view backgound gradient */ +.main-entityHeader-backgroundColor, +.main-actionBarBackground-background, +.main-topBar-background, +.main-home-homeHeader { + background-color: var(--spice-main) !important; + background-image: none !important; +} + +.main-topBar-background { + border-radius: var(--corner-radius); +} + +.main-topBar-overlay, +.main-trackList-trackListHeader { + background-color: var(--spice-main) !important; +} + +/* fix play button icon colour */ +.main-playButton-PlayButton svg { + color: var(--spice-text); +} + +/* fix playlist action bar buttons colour */ +.main-actionBar-ActionBarRow button, +.main-actionBar-ActionBarRow svg:not(.main-playButton-PlayButton svg) { + color: rgba(var(--spice-rgb-text), 0.7); +} + +.main-actionBar-ActionBarRow button:hover, +.main-actionBar-ActionBarRow button:hover svg:not(.main-playButton-PlayButton svg) { + color: var(--spice-text); +} + +/* change playing icon from gif to svg */ +.main-trackList-playingIcon { + -webkit-mask-image: url("data:image/svg+xml,%3Csvg id='playing-icon' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 24'%3E%3Cdefs%3E%3Cstyle%3E %23playing-icon %7B fill: %2320BC54; %7D @keyframes play %7B 0%25 %7Btransform: scaleY(1);%7D 3.3%25 %7Btransform: scaleY(0.9583);%7D 6.6%25 %7Btransform: scaleY(0.9166);%7D 9.9%25 %7Btransform: scaleY(0.8333);%7D 13.3%25 %7Btransform: scaleY(0.7083);%7D 16.6%25 %7Btransform: scaleY(0.5416);%7D 19.9%25 %7Btransform: scaleY(0.4166);%7D 23.3%25 %7Btransform: scaleY(0.25);%7D 26.6%25 %7Btransform: scaleY(0.1666);%7D 29.9%25 %7Btransform: scaleY(0.125);%7D 33.3%25 %7Btransform: scaleY(0.125);%7D 36.6%25 %7Btransform: scaleY(0.1666);%7D 39.9%25 %7Btransform: scaleY(0.1666);%7D 43.3%25 %7Btransform: scaleY(0.2083);%7D 46.6%25 %7Btransform: scaleY(0.2916);%7D 49.9%25 %7Btransform: scaleY(0.375);%7D 53.3%25 %7Btransform: scaleY(0.5);%7D 56.6%25 %7Btransform: scaleY(0.5833);%7D 59.9%25 %7Btransform: scaleY(0.625);%7D 63.3%25 %7Btransform: scaleY(0.6666);%7D 66.6%25 %7Btransform: scaleY(0.6666);%7D 69.9%25 %7Btransform: scaleY(0.6666);%7D 73.3%25 %7Btransform: scaleY(0.6666);%7D 76.6%25 %7Btransform: scaleY(0.7083);%7D 79.9%25 %7Btransform: scaleY(0.75);%7D 83.3%25 %7Btransform: scaleY(0.8333);%7D 86.6%25 %7Btransform: scaleY(0.875);%7D 89.9%25 %7Btransform: scaleY(0.9166);%7D 93.3%25 %7Btransform: scaleY(0.9583);%7D 96.6%25 %7Btransform: scaleY(1);%7D %7D %23bar1 %7B transform-origin: bottom; animation: play 0.9s -0.51s infinite; %7D %23bar2 %7B transform-origin: bottom; animation: play 0.9s infinite; %7D %23bar3 %7B transform-origin: bottom; animation: play 0.9s -0.15s infinite; %7D %23bar4 %7B transform-origin: bottom; animation: play 0.9s -0.75s infinite; %7D %3C/style%3E%3C/defs%3E%3Ctitle%3Eplaying-icon%3C/title%3E%3Crect id='bar1' class='cls-1' width='4' height='24'/%3E%3Crect id='bar2' class='cls-1' x='6' width='4' height='24'/%3E%3Crect id='bar3' class='cls-1' x='12' width='4' height='24'/%3E%3Crect id='bar4' class='cls-1' x='18' width='4' height='24'/%3E%3C/svg%3E"); + background: var(--spice-button); + content-visibility: hidden; + -webkit-mask-repeat: no-repeat; +} + +/* full screen artists background */ +.main-entityHeader-container.main-entityHeader-withBackgroundImage, +.main-entityHeader-background, +.main-entityHeader-background.main-entityHeader-overlay:after { + height: 100vh; +} + +.artist-artistOverview-overview .main-entityHeader-withBackgroundImage h1 { + font-size: 120px !important; + line-height: 120px !important; +} + +.contentSpacing, +.artist-artistDiscography-headerContainer { + padding-left: 64px; + padding-right: 64px; +} + +.artist-artistOverview-overview .main-entityHeader-headerText { + justify-content: center; +} + +/* progress bar moves smoothly */ +.x-progressBar-fillColor { + transition: transform 1s linear; +} + +.progress-bar__slider { + transition: left 1s linear; +} + +.playback-progressbar-isInteractive .DuvrswZugGajIFNXObAr .x-progressBar-fillColor, +.playback-progressbar-isInteractive .DuvrswZugGajIFNXObAr .progress-bar__slider { + transition: none; +} + +/* right sidebar text */ +.Root__right-sidebar { + --text-base: var(--spice-sidebar-text); + --background-tinted-base: var(--spice-tab-active); +} + +.Root__right-sidebar a, +.Root__right-sidebar .main-trackInfo-artists a, +.artist-artistOnTour-timeAndVenue.artist-artistOnTour-condensed, +.Root__right-sidebar .main-nowPlayingView-creditsSource, +.Root__right-sidebar .main-nowPlayingView-playNextButton, +.Root__right-sidebar .main-nowPlayingView-playNext { + color: var(--spice-sidebar-text); +} + +.main-nowPlayingView-content { + --text-subdued: var(--spice-sidebar-text); +} + +/* add main backshadow */ +#dribbblish-back-shadow { + z-index: 5; + grid-area: main-view / main-view / now-playing-bar / main-view; + box-shadow: 0 0 10px 3px #0000003b; + border-radius: var(--corner-radius); + pointer-events: none; +} + +/* add fade effect to playlist scrolllist */ +.os-viewport.os-viewport-native-scrollbars-invisible[fade="full"] { + -webkit-mask-image: linear-gradient(transparent 0%, black 10%, black 90%, transparent 100%); + mask-image: linear-gradient(transparent 0%, black 10%, black 90%, transparent 100%); +} + +.os-viewport.os-viewport-native-scrollbars-invisible[fade="top"] { + -webkit-mask-image: linear-gradient(transparent 0%, black 10%); + mask-image: linear-gradient(transparent 0%, black 10%); +} + +.os-viewport.os-viewport-native-scrollbars-invisible[fade="bottom"] { + -webkit-mask-image: linear-gradient(black 90%, transparent 100%); + mask-image: linear-gradient(black 90%, transparent 100%); +} + +/* style input els */ +input { + background-color: unset !important; + border-bottom: solid 1px var(--spice-text) !important; + border-radius: 0 !important; + padding: 6px 10px 6px 48px; + color: var(--spice-text) !important; +} + +.Root__nav-bar input { + border-bottom: solid 1px var(--spice-sidebar-text) !important; + color: var(--spice-sidebar-text) !important; +} + +.Root__nav-bar input::placeholder { + color: rgba(var(--spice-rgb-sidebar-text), 0.5) !important; +} + +/* fix connect bar styles */ +.main-connectBar-connectBar { + color: var(--spice-main) !important; + border-radius: 0 0 var(--corner-radius) var(--corner-radius); +} + +/* topbar play button */ +.main-topBar-topbarContent .main-playButton-PlayButton>button>span { + inline-size: 32px; + block-size: 32px; + min-block-size: auto; +} + +.main-topBar-topbarContent .main-playButton-PlayButton svg { + width: 18px; + height: 18px; +} + +.main-topBar-topbarContent .main-playButton-PlayButton>button>span>span { + position: initial; + height: 18px; +} + +/* disable dynamic lyrics background */ +.lyrics-lyrics-container { + --lyrics-color-inactive: rgba(var(--spice-rgb-text), 0.3) !important; +} + +.lyrics-lyrics-background { + background-color: var(--spice-main); +} + +/* v1.2.14 */ +.main-yourLibraryX-libraryContainer.main-yourLibraryX-libraryIsExpanded.main-yourLibraryX-libraryIsCollapsed, +.main-yourLibraryX-libraryRootlist.main-yourLibraryX-libraryIsExpanded:not(.main-yourLibraryX-libraryIsCollapsed) { + padding-bottom: 0; +} + +[dir="ltr"] .main-nowPlayingWidget-coverExpanded { + transform: none; +} + +.ylx .main-coverSlotExpanded-container { + bottom: calc(var(--main-gap) + 70px + 10px); + left: calc(var(--nav-bar-width) + 10px); +} + +.ylx.connected .main-coverSlotExpanded-container { + bottom: calc(var(--main-gap) + 70px + 24px + 10px); +} + +/* v1.2.12 -> 1.2.13 */ +.main-buddyFeed-container { + background-color: inherit; + box-shadow: none; + overflow: initial; +} + +.legacy-gridChange .main-coverSlotExpanded-container { + left: calc(var(--nav-bar-width) + 10px); +} + +/* v1.2.0 --> 1.2.11 */ +.legacy .Root__top-container { + grid-template-areas: + "left-sidebar top-bar right-sidebar" + "left-sidebar main-view right-sidebar" + "left-sidebar now-playing-bar right-sidebar" !important; +} + +.Root__top-container { + padding: 10px 0; + background-color: var(--spice-sidebar); +} + +.Root__right-sidebar { + background-color: var(--spice-sidebar); +} + +.Root__main-view { + background-color: var(--spice-main); +} + +.main-rootlist-rootlistDivider { + background-color: transparent; +} + +.main-buddyFeed-activityMetadata .main-buddyFeed-username a, +.main-buddyFeed-activityMetadata .main-buddyFeed-artistAndTrackName a, +.main-buddyFeed-activityMetadata .main-buddyFeed-usernameAndTimestamp, +.main-buddyFeed-activityMetadata .main-buddyFeed-playbackContextLink { + color: var(--spice-sidebar-text) !important; +} + +.main-buddyFeed-activityMetadata .main-buddyFeed-artistAndTrackName { + color: var(--spice-sidebar-text); +} + +.collection-icon, +.premiumSpotifyIcon, +.search-icon { + color: var(--spice-sidebar-text) !important; +} + +.main-confirmDialog-container { + background-color: var(--spice-card); +} + +.main-confirmDialog-container .TypeElement-canon-textBase { + color: var(--spice-text); +} + +.main-confirmDialog-buttonContainer button span { + color: var(--spice-card); +} + +.main-coverSlotExpanded-container { + position: fixed; + z-index: 2; + width: 250px; + height: 250px; + bottom: calc(var(--main-gap) + var(--bar-height) + 10px); + left: calc(var(--nav-bar-width) + 20px); +} + +.connected .main-coverSlotExpanded-container { + bottom: calc(var(--main-gap) + var(--bar-height) + 24px + 10px); +} + +.left-sidebar-collapsed .main-coverSlotExpanded-container { + left: 82px; +} + +.main-coverSlotExpanded-container img { + border-radius: 4px; +} + +.cover-art { + border-radius: 4px; +} + +.left-sidebar-collapsed .Root__nav-bar { + width: 72px; +} + +.left-sidebar-collapsed .main-rootlist-statusIcons { + display: none; +} + +.main-navBar-navBarLinkActive { + background-color: var(--spice-tab-active); +} + +.Root__nav-bar .main-rootlist-rootlist .os-scrollbar-handle { + display: none; +} + +.Root__top-container:has(> .Root__top-container--right-sidebar-hidden) { + padding-right: 10px; +} + +/* buddy feed w/ hidden text*/ +.buddyFeed-hide-text .Root__top-container:not(:has(> .Root__top-container--right-sidebar-hidden)) .Root__right-sidebar { + width: 72px !important; +} + +.buddyFeed-hide-text .NdQkQZhcYIEcJnRdAYcQ, +.buddyFeed-hide-text .main-buddyFeed-header { + display: none; +} + +.buddyFeed-hide-text .main-buddyFeed-friendActivity { + padding: 0 0 0 4px; +} + +.buddyFeed-hide-text .main-buddyFeed-activityMetadata { + visibility: hidden; +} + +.buddyFeed-hide-text .main-avatar-avatar>div>div>div { + display: flex; + justify-content: center; + padding-top: 7px; +} + +.buddyFeed-hide-text .main-avatar-avatar, +.buddyFeed-hide-text .main-avatar-avatar div, +.buddyFeed-hide-text .main-buddyFeed-overlay { + width: 32px !important; + height: 32px !important; +} + +.main-rootlist-rootlistDividerGradient { + background: none; +} + +.main-collectionLinkButton-collectionLinkButton .main-collectionLinkButton-icon, +.main-collectionLinkButton-collectionLinkButton .main-collectionLinkButton-collectionLinkText { + opacity: 1; +} + +.main-collectionLinkButton-collectionLinkButton, +.main-createPlaylistButton-button { + color: var(--spice-sidebar-text); + opacity: 1; +} + +.main-likedSongsButton-likedSongsIcon { + background: none; +} + +.main-likedSongsButton-likedSongsIcon>svg { + height: 20px !important; + width: 20px !important; +} + +/* style added sidebar images */ +.main-rootlist-rootlistItem a { + align-items: center; + border-radius: 4px; + display: flex; + height: 56px; + gap: 12px; +} + +img.playlist-picture { + width: 32px; + height: 32px; + flex: 0 0 32px; + background-size: cover; + background-position: center; + border-radius: 50%; +} + +img.playlist-picture[src$=".svg"] { + width: 24px; + height: 24px; + border-radius: 0; +} + +.legacy .Root__nav-bar .main-rootlist-wrapper, +.legacy-gridChange .Root__nav-bar .main-rootlist-wrapper { + height: fit-content !important; + contain: none !important; +} + +.main-navBar-mainNav li:has(> div > .active) { + background-color: var(--spice-tab-active); +} + +.main-collectionLinkButton-selected.active { + background-color: var(--spice-tab-active) !important; +} + +.legacy .main-navBar-mainNav li, +.legacy-gridChange .main-navBar-mainNav li { + background-color: transparent !important; +} + +/* a.active { + background-color: var(--spice-tab-active) !important; +} */ +.main-rootlist-rootlistItem:has(> .main-rootlist-rootlistItemLinkActive) { + background-color: var(--spice-tab-active) !important; +} + +.main-rootlist-rootlistItemLink { + padding-left: 12px; +} + +.main-rootlist-rootlistItem { + margin-left: 8px; + margin-right: 8px; + padding-left: 0 !important; + padding-right: 8px !important; + border-radius: 4px; +} + +.dribs-playlist-list { + overflow: hidden; +} + +.left-sidebar-collapsed .main-rootlist-expandArrow { + display: none; +} + +.main-navBar-navBarLink, +.main-collectionLinkButton-collectionLinkButton, +.main-createPlaylistButton-button { + height: 56px !important; +} + +.Button-md-buttonSecondary-useBrowserDefaultFocusStyle { + border: 1px solid var(--spice-text); +} + +.Button-md-buttonPrimary-useBrowserDefaultFocusStyle .ButtonInner-md { + color: var(--spice-text); +} + +/* sidebar speaker icon */ +.CCeu9OfWSwIAJqA49n84 { + color: var(--spice-sidebar-text); +} + +.legacy .Root__right-sidebar .os-content { + overflow-x: hidden; +} + +.Root__right-sidebar .os-scrollbar-horizontal { + display: none; +} + +.UyzJidwrGk3awngSGIwv, +.poz9gZKE7xqFwgk231J4, +.xWm_uA0Co4SXVxaO7wlB { + color: var(--spice-text); +} + +.main-navBar-navBarLink { + color: var(--spice-sidebar-text); +} + +.main-navBar-navBarLink:focus, +.main-navBar-navBarLink:hover { + color: var(--spice-sidebar-text); +} + +.main-createPlaylistButton-createPlaylistIcon { + background-color: var(--spice-sidebar-text); +} + +.main-rootlist-rootlistItemLink:link, +.main-rootlist-rootlistItemLink:visited { + color: var(--spice-sidebar-text) !important; +} + +.main-rootlist-expandArrow { + color: var(--spice-sidebar-text); +} + +.main-buddyFeed-actions button, +.main-buddyFeed-titleContainer { + color: var(--spice-sidebar-text) !important; +} + +.main-tag-container { + background-color: var(--spice-subtext); +} + +.main-buddyFeed-content { + height: 100%; +} + +/* bottom scroll-bar popup fix */ +.Root__main-view-overlay { + width: 100%; +} \ No newline at end of file diff --git a/dot-config/spicetify/Themes/Dribbblish/white.png b/dot-config/spicetify/Themes/Dribbblish/white.png new file mode 100644 index 0000000..07d6db6 Binary files /dev/null and b/dot-config/spicetify/Themes/Dribbblish/white.png differ diff --git a/dot-config/spicetify/Themes/Dribbblish/windows-shortcut-instruction.png b/dot-config/spicetify/Themes/Dribbblish/windows-shortcut-instruction.png new file mode 100644 index 0000000..cb1d39d Binary files /dev/null and b/dot-config/spicetify/Themes/Dribbblish/windows-shortcut-instruction.png differ diff --git a/dot-config/spicetify/Themes/Flow/LICENSE b/dot-config/spicetify/Themes/Flow/LICENSE new file mode 100644 index 0000000..fc56020 --- /dev/null +++ b/dot-config/spicetify/Themes/Flow/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2022 @Ruixi-Zhang, @yslDevelop, @ian-Liaozy, @alexcasieri30 + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/dot-config/spicetify/Themes/Flow/README.md b/dot-config/spicetify/Themes/Flow/README.md new file mode 100644 index 0000000..284d791 --- /dev/null +++ b/dot-config/spicetify/Themes/Flow/README.md @@ -0,0 +1,25 @@ +# Flow + +## Screenshots + +### Ocean +img + + +### Pink +img + + +### Silver +img + + +### Violet +img + +## Author +Made by: +* https://github.com/Ruixi-Zhang +* https://github.com/yslDevelop +* https://github.com/ian-Liaozy +* https://github.com/alexcasieri30 diff --git a/dot-config/spicetify/Themes/Flow/color.ini b/dot-config/spicetify/Themes/Flow/color.ini new file mode 100644 index 0000000..74c0994 --- /dev/null +++ b/dot-config/spicetify/Themes/Flow/color.ini @@ -0,0 +1,80 @@ +[Pink] +text = 8f7878 +gradientTop = ebaf98 +gradientBottom = f5d4b7 +main = ffe8d9 +subtext = 8f7878 +button-active = 8f7878 +button = ebaf98 +sidebar = f5d4b7 +player = ebaf98 +card-background = e6cfd7 +shadow = d9a28d +notification = f5d4b7 +notification-error = f5d4b7 +card-hover = ffece4 + +[Green] +text = 516847 +gradientTop = 9bb78e +gradientBottom = b7cfac +main = e8f2e4 +subtext = 797a78 +button-active = 516847 +button = 7d9971 +sidebar = b7cfac +player = 9bb78e +card-background = e8ede6 +shadow = 7d9971 +notification = b7cfac +notification-error = b7cfac +card-hover = ecf8e8 + +[Silver] +text = 4c4d4f +gradientTop = b7bbbd +gradientBottom = d3d8db +main = d3d8db +subtext = 8d9092 +button-active = a8acad +button = 8d9092 +sidebar = ffffff +player = b7bbbd +card-background = e8ede6 +shadow = b7bbbd +notification = ffffff +notification-error = ffffff +card-hover = e0e4e4 + + +[Violet] +text = 78658b +gradientTop = b9adc4 +gradientBottom = d4cade +main = e5dfeb +subtext = 8e7c9a +button-active = a090b0 +button = 516847 +sidebar = e8ede6 +player = b9adc4 +card-background = e8ede6 +shadow = 847096 +notification = b9adc4 +notification-error = b9adc4 +card-hover = f0e4ec + +[Ocean] +text = 62828a +gradientTop = 9cb9ba +gradientBottom = c1d5d6 +main = cadbdb +subtext = 7aa1a2 +button-active = 9cb9ba +button = c1d5d6 +sidebar = c1d5d6 +player = 9cb9ba +card-background = e1ebeb +shadow = 6f9599 +notification = cadbdb +notification-error = c1d5d6 +card-hover = d8e4e4 diff --git a/dot-config/spicetify/Themes/Flow/screenshots/ocean.png b/dot-config/spicetify/Themes/Flow/screenshots/ocean.png new file mode 100644 index 0000000..1e78dd1 Binary files /dev/null and b/dot-config/spicetify/Themes/Flow/screenshots/ocean.png differ diff --git a/dot-config/spicetify/Themes/Flow/screenshots/pink.png b/dot-config/spicetify/Themes/Flow/screenshots/pink.png new file mode 100644 index 0000000..c7d2a11 Binary files /dev/null and b/dot-config/spicetify/Themes/Flow/screenshots/pink.png differ diff --git a/dot-config/spicetify/Themes/Flow/screenshots/silver.png b/dot-config/spicetify/Themes/Flow/screenshots/silver.png new file mode 100644 index 0000000..de0f889 Binary files /dev/null and b/dot-config/spicetify/Themes/Flow/screenshots/silver.png differ diff --git a/dot-config/spicetify/Themes/Flow/screenshots/violet.png b/dot-config/spicetify/Themes/Flow/screenshots/violet.png new file mode 100644 index 0000000..af1c42b Binary files /dev/null and b/dot-config/spicetify/Themes/Flow/screenshots/violet.png differ diff --git a/dot-config/spicetify/Themes/Flow/user.css b/dot-config/spicetify/Themes/Flow/user.css new file mode 100644 index 0000000..60aea46 --- /dev/null +++ b/dot-config/spicetify/Themes/Flow/user.css @@ -0,0 +1,260 @@ +:root { + --gradient-colors: var(--spice-gradienttop), var(--spice-gradientbottom); +} + +.main-rootlist-rootlistItem:hover { + background-color: var(--spice-card-background); +} + +.main-navBar-navBar { + background-image: linear-gradient(var(--gradient-colors)); +} + +/* buttons */ +.main-navBar-navBarLink { + border-radius: var(--border-radius-2); + color: var(--spice-text); +} +.main-addButton-active, +.main-addButton-active:focus, +.main-addButton-active:hover { + color: var(--spice-player); +} +/* menus */ +.main-card-card { + background-image: linear-gradient(var(--gradient-colors)); + border-radius: 10px; +} + +.main-card-card:hover { + background-color: var(--spice-card-hover); + border-radius: 10px; +} + +.main-contextMenu-menuItemButton, +.main-userWidget-dropDownMenuItemButton { + /*border-radius: var(--border-radius-2);*/ + color: var(--spice-text); + height: 32px; + padding-left: 8px; +} +.main-trackList-trackListHeaderStuck.main-trackList-trackListHeader { + background: transparent; + -webkit-box-shadow: 0 -1px 0 0 var(--spice-player); + box-shadow: 0 -1px 0 0 var(--spice-player); +} +.main-trackList-trackListHeaderStuck .main-trackList-trackListHeaderRow { + border-bottom: 1px solid transparent; + background: var(--spice-main); +} +.Root__now-playing-bar { + grid-area: now-playing-bar; + width: 200px; + z-index: 4; +} +#spicetify-home-config button:disabled, +#spicetify-sidebar-config button:disabled { + /*background-color: var(--spice-button-disabled) !important;*/ + color: var(--spice-text) !important; +} + +/* remove gradients */ +.main-home-homeHeader, +.main-actionBarBackground-background { + background-image: none; +} +.main-actionBarBackground-background, +.main-home-homeHeader, +.main-topBar-background, +.main-topBar-overlay, +.x-entityHeader-overlay, +.x-actionBarBackground-background, +._UFTK833WfTNGb4agRTd, +.Ic3iDUCnC09k55peZBfC { + background-color: var(--spice-main) !important; +} +.x-actionBarBackground-background, +.x-entityHeader-overlay, +.Ic3iDUCnC09k55peZBfC, +._UFTK833WfTNGb4agRTd { + background-image: none !important; +} +.main-entityHeader-backgroundColor { + background: var(--spice-main); +} +.player-controls__buttons--new-icons { + gap: 16px; + margin-bottom: 8px; + display: flex; + flex-direction: column; + flex: 1; + justify-content: center; + align-items: center; +} +.Root__top-container { + display: grid; + grid-template-areas: "left-sidebar main-view right-sidebar now-playing-bar"; + grid-template-columns: auto 1fr; + grid-template-rows: 1fr auto; + height: 100%; + min-height: 100%; + position: relative; + width: 100%; + background-color: var(--spice-main); +} +.main-nowPlayingBar-container { + display: flex; + flex-direction: column; + height: 100%; + min-width: 0px; + -webkit-user-select: none; + user-select: none; +} + +.player-controls__left, +.player-controls__right { + flex-direction: column; +} + +.playback-bar { + flex-direction: column; + position: relative; +} + +.playback-bar__progress-time-elapsed { + position: absolute; + left: 16px; + top: 20px; +} +.playback-bar__progress-time-elapsed::after { + content: "/"; + margin-left: 6px; +} +.main-playbackBarRemainingTime-container { + margin-left: 56px; +} + +.main-nowPlayingBar-center { + flex: 1; + display: flex; + justify-content: center; + align-items: center; +} + +.main-nowPlayingBar-nowPlayingBar { + align-items: center; + border-radius: 8px; + display: flex; + flex-direction: column; + justify-content: space-between; + align-items: center; + padding: 25px 0; + height: 100%; + background-image: linear-gradient(var(--gradient-colors)); +} + +.Root__right-sidebar > aside { + background-image: linear-gradient(var(--gradient-colors)); +} + +/*button*/ +.encore-dark-theme .encore-bright-accent-set { + --background-base: var(--spice-button-active); + --background-highlight: var(--spice-player); + --background-press: var(--spice-player); + --decorative-subdued: var(--spice-player); +} + +/*tracklist*/ +.main-trackList-trackListRow { + border-radius: var(--border-radius-2); +} +.main-trackList-trackListRow:hover { + background-color: var(--spice-card-background); +} +.prog-tooltip { + display: none; +} + +.main-rootlist-rootlistDividerContainer { + position: relative; + /*color: var(--spice-gradientTop)*/ + display: none; +} + +.progress-bar { + width: 150px; +} + +.playback-progressbar { + width: 100px; +} + +.volume-bar { + flex: 0; +} + +.main-nowPlayingWidget-nowPlaying { + flex-direction: column; + gap: 16px; +} + +.main-coverSlotCollapsed-container { + transform: none !important; +} + +.main-nowPlayingWidget-nowPlaying > button { + color: var(--spice-text); +} +.main-nowPlayingBar-extraControls { + flex-direction: column; +} +.main-yourLibraryX-entryPoints:nth-child(2) { + background-image: linear-gradient(var(--gradient-colors)); +} +.main-yourLibraryX-entryPoints:nth-child(1) { + background-color: var(--spice-gradienttop); +} +/* remove hover effect */ +li > div > div::after { + background-color: var(--spice-card-background) !important; +} +li > div::after { + background-color: transparent !important; +} +/* give background to active playlist */ +.BoxComponent-group-tinted-listRow-isInteractive-hasLeadingOrMedia-paddingBlockStart_8px-paddingBlockEnd_8px-minBlockSize_56px-padding_8px, +.BoxComponent-group-tinted-listRow-isInteractive-hasFocus-hasLeadingOrMedia-paddingBlockStart_8px-paddingBlockEnd_8px-minBlockSize_56px-padding_8px { + background-color: var(--spice-card-background); +} +/* expanded sidebar buttons */ +.search-searchCategory-carouselButton { + background-color: transparent; +} +.search-searchCategory-carouselButton:hover { + background-color: var(--spicecard-background); +} +.main-yourLibraryX-iconOnly:hover { + background-color: var(--spice-card-background); + color: var(--spice-text); +} +.Root__nav-bar { + background-color: var(--spice-main); +} +/* give active nav tab a background */ +.main-navBar-mainNav li:has(> .active) { + background-color: var(--spice-card-background); + border-radius: 4px; +} +.view-homeShortcutsGrid-shortcut { + background-image: linear-gradient(var(--gradient-colors)); +} +.main-actionBar-ActionBarRow > * { + color: var(--spice-text); +} +.main-actionBar-ActionBarRow svg:not(.main-playButton-PlayButton svg) { + color: var(--spice-text); +} +.x-sortBox-sortDropdown { + color: inherit; +} diff --git a/dot-config/spicetify/Themes/LICENSE b/dot-config/spicetify/Themes/LICENSE new file mode 100644 index 0000000..fc21e66 --- /dev/null +++ b/dot-config/spicetify/Themes/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2019 morpheusthewhite + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/dot-config/spicetify/Themes/Matte/README.md b/dot-config/spicetify/Themes/Matte/README.md new file mode 100644 index 0000000..fd9ea8f --- /dev/null +++ b/dot-config/spicetify/Themes/Matte/README.md @@ -0,0 +1,81 @@ +# Matte + +## Screenshots + +### Matte + +![Matte](screenshots/ylx-matte.png) + +### Periwinkle + +![Periwinkle](screenshots/ylx-periwinkle.png) + +### Periwinkle-Dark + +![Periwkinle Dark](screenshots/ylx-periwinkle-dark.png) + +### Porcelain + +![Porcelain](screenshots/ylx-porcelain.png) + +### Gray-Dark1 + +![Gray Dark 1](screenshots/ylx-gray-dark1.png) + +### Gray-Dark2 + +![Gray Dark 2](screenshots/ylx-gray-dark2.png) + +### Gray-Dark3 + +![Gray Dark 3](screenshots/ylx-gray-dark3.png) + +### Gray + +![Gray](screenshots/ylx-gray.png) + +### Gray-Light + +![Gray Light](screenshots/ylx-gray-light.png) + +## More + +### Description + +a Spicetify theme which features a distinct top bar, quick-to-edit CSS variables, and color schemes from Windows visual styles by KDr3w + +### Credits + +- Based on [Matte by KDr3w](https://www.deviantart.com/kdr3w/art/Matte-758699852) and their [other themes](https://www.deviantart.com/kdr3w/gallery/68078309/windows-10-themes) + +- Created by [darkthemer](https://github.com/darkthemer) + +### Notes + +- Check the very top of `user.css` for quick configs + + - If you use the Marketplace, go to `Marketplace > Snippets > + Add CSS` and then paste the quick configs found in `user.css`. Edit these as you wish. + +![Window Controls](screenshots/quickcfg.png) + +- For Windows users, here's how to make the window controls' background match with the topbar background + + - Put this snippet into your `user.css` (or through the Marketplace's custom CSS feature) + +```css +/* transparent window controls background */ +.spotify__container--is-desktop:not(.fullscreen) body::after { + content: ""; + position: absolute; + right: 0; + z-index: 999; + backdrop-filter: brightness(2.12); + /* page zoom [ctrl][+] or [ctrl][-] + edit width and height accordingly + */ + width: 135px; + height: 48px; +} +``` + +![Window Controls](screenshots/winctrl.png) diff --git a/dot-config/spicetify/Themes/Matte/color.ini b/dot-config/spicetify/Themes/Matte/color.ini new file mode 100644 index 0000000..19e9e12 --- /dev/null +++ b/dot-config/spicetify/Themes/Matte/color.ini @@ -0,0 +1,575 @@ +; COLORS' KEY DESCRIPTIONS + +; topbar = background +; topbar-text = title, enabled history button +; topbar-subtext = unselected tabs, disabled history button +; tab-active = selected tab item, search bar background +; tab-active-text = selected tab item, search bar text +; tab-hover = hovered tab item, hovered search bar +; topbar-border = bottom border + +; sidebar = background +; sidebar-text = primary text (home, search, library, playlists, etc) +; link-hover-text = hovered link item text +; link-active = selected link item background +; link-active-text = selected link item text +; sidebar-border = left or right border + +; main = background +; text = primary text (heading, title, some name, song count, button text, etc) +; subtext = secondary text (description, some name, duration, tracklist album, play count, etc) +; selected-row = some details, border, button (heart, download, options in playlist or album) + +; player = background +; player-text = song title, hovered text +; player-subtext = artist name, time duration +; player-selected-row = progress bar (background, duration, volume), button (playback, extra) +; player-border = top border + +; button = button (lyrics, queue in player bar, on toggle in settings) +; button-active = button (play-pause button, current song title in queue, active heart, hovered button and toggle) +; button-disabled = button (off toggle and dropdown menu in settings) +; scrollbar = default +; scrollbar-hover = hovered +; context-menu = background +; context-menu-text = primary text +; context-menu-hover = hovered item backgrond +; card = hovered card, tracks in queue or playlist, etc +; shadow = context menu shadow, popup background dim, popup button background (close, carousel), toast shadow +; notification = toast background, private session indicator +; notification-error = error toast background +; misc = idk + +; main-elevated = ylx carousel buttons, etc +; highlight-elevated = ylx hovered carousel buttons, etc +; highlight = ylx hovered playlist link, etc + +[matte] +; topbar +topbar = 232b32 +topbar-text = d0d2d9 +topbar-subtext = 4a5460 +tab-active = 1c2228 +tab-active-text = d0d2d9 +tab-hover = 131b20 +topbar-border = 232b32 + +; sidebars +sidebar = 181e23 +sidebar-text = 7e8596 +link-active-text = 181e23 +sidebar-border = 181e23 + +; main view +main = 1c2228 +text = b9bcc6 +subtext = 7e8596 +selected-row = 5b6b79 + +; player bar +player = 141b1f +player-text = 969aa9 +player-subtext = 6d8392 +player-selected-row = 6d8392 +player-border = 141b1f + +; accent colors +link-hover-text = 009587 +link-active = 009587 +button = 01bfa5 +button-active = 01bfa5 +scrollbar-hover = 009688 + +; others +button-disabled = 2c353e +scrollbar = 39454f +context-menu = 232b32 +context-menu-text = d0d2d9 +context-menu-hover = 343e47 +card = 232d35 +shadow = 101418 +notification = 1c2228 +notification-error = b73434 +misc = 39454f + +; ylx +main-elevated = 1c2228 +highlight-elevated = 232d35 +highlight = 20272d + +[periwinkle] +; topbar +topbar-text = ffffff +topbar-subtext = aaa5e4 +tab-active-text = d0ccff +tab-hover = ffffff + +; sidebars +sidebar = ffffff +sidebar-text = 010101 +link-active-text = ffffff +sidebar-border = ffffff + +; main view +main = ffffff +text = 010101 +subtext = 6d6d6d +selected-row = 6d6d6d + +; player bar +player = ffffff +player-text = 010101 +player-subtext = 6d6d6d +player-selected-row = 6d6d6d +player-border = d9d9d9 + +; accent colors +topbar = 7269d2 +tab-active = 7269d2 +topbar-border = 7269d2 +link-hover-text = 8c84da +link-active = 7269d2 +button = 7269d2 +button-active = 8c84da +scrollbar-hover = 8a82e0 +context-menu-hover = 7269d2 + +; others +button-disabled = ebebeb +scrollbar = d9d9d9 +context-menu = ffffff +context-menu-text = 010101 +card = ebebeb +shadow = 363163 +notification = ffffff +notification-error = ff4264 +misc = 6d6d6d + +; ylx +main-elevated = ffffff +highlight-elevated = ebebeb +highlight = ebebeb + +[periwinkle-dark] +; topbar +topbar-text = f6f6f6 +topbar-subtext = aaa5e4 +tab-active-text = d0ccff +tab-hover = 383838 + +; sidebars +sidebar = 383838 +sidebar-text = d0d0d0 +link-hover-text = 8c84da +link-active-text = f6f6f6 +sidebar-border = 383838 + +; main view +main = 383838 +text = f6f6f6 +subtext = d0d0d0 +selected-row = d0d0d0 + +; player bar +player = 343434 +player-text = f6f6f6 +player-subtext = d0d0d0 +player-selected-row = d0d0d0 +player-border = 2e2e2e + +; accent colors +topbar = 7269d2 +tab-active = 7269d2 +topbar-border = 7269d2 +link-active = 7269d2 +button = 7269d2 +button-active = 8c84da +scrollbar-hover = 8a82e0 +context-menu-hover = 7269d2 + +; others +button-disabled = 444444 +scrollbar = 494949 +context-menu = 343434 +context-menu-text = f6f6f6 +card = 444444 +shadow = 2e2e2e +notification = 343434 +notification-error = ff4264 +misc = d0d0d0 + +; ylx +main-elevated = 383838 +highlight-elevated = 444444 +highlight = 444444 + +[porcelain] +; topbar +topbar = e8eaf0 +topbar-text = 242b31 +topbar-subtext = 899099 +tab-active = e8eaf0 +tab-active-text = 242b31 +tab-hover = ffffff +topbar-border = e8eaf0 + +; sidebars +sidebar = dfe1e8 +sidebar-text = 3f4b56 +link-hover-text = 6a7495 +link-active-text = dfe1e8 +sidebar-border = dfe1e8 + +; main view +main = f9f9fb +text = 3f4b56 +subtext = 70828f +selected-row = 70828f + +; player bar +player = d5d8df +player-text = 364049 +player-subtext = 4e5a67 +player-selected-row = 4e5a67 +player-border = cdd0d8 + +; accent colors +link-active = 43a8ff +button = 43a8ff +button-active = 038aff +scrollbar-hover = 43a8ff + +; others +button-disabled = c0c5ce +scrollbar = d6dbdf +context-menu = e8eaf0 +context-menu-text = 2f353c +context-menu-hover = ced2db +card = e3e6ea +shadow = 6d6e71 +notification = f9f9fb +notification-error = e6395f +misc = 4e5a67 + +; ylx +main-elevated = f9f9fb +highlight-elevated = e3e6ea +highlight = ced1db + +[rose-pine-moon] +; topbar +topbar = 141428 +topbar-text = e0def4 +topbar-subtext = 7a7a7a +tab-active = 1f1f1f +tab-active-text = d4d4d4 +tab-hover = 272727 +topbar-border = 191919 + +; sidebars +sidebar = 232136 +sidebar-text = e0def4 +link-hover-text = 6d6d6d +link-active = 423d67 +link-active-text = e8e8e8 +sidebar-border = 191919 + +; main view +main = 232136 +text = e0def4 +subtext = 908caa +selected-row = ebbcba + +; player bar +player = 232136 +player-text = e0def4 +player-subtext = e0def4 +player-selected-row = ebbcba +player-border = 191919 + +; accent colors +button-active = ebbcba + +; others +button = ebbcba +button-disabled = 2a273f +scrollbar = 2a273f +scrollbar-hover = dddbf1 +context-menu = 141428 +context-menu-text = e0def4 +context-menu-hover = 3b385c +card = 393552 +shadow = 393552 +notification = 393552 +notification-error = eb6f92 +misc = 232136 + +; ylx +main-elevated = 202020 +highlight-elevated = 2d2d2d +highlight = 2d2d2d + +[gray-dark1] +; topbar +topbar = 191919 +topbar-text = d4d4d4 +topbar-subtext = 7a7a7a +tab-active = 1f1f1f +tab-active-text = d4d4d4 +tab-hover = 272727 +topbar-border = 191919 + +; sidebars +sidebar = 202020 +sidebar-text = d4d4d4 +link-hover-text = 6d6d6d +link-active = 2d2d2d +link-active-text = e8e8e8 +sidebar-border = 191919 + +; main view +main = 202020 +text = d4d4d4 +subtext = 959595 +selected-row = 6d6d6d + +; player bar +player = 202020 +player-text = d4d4d4 +player-subtext = 959595 +player-selected-row = 959595 +player-border = 191919 + +; accent colors +button-active = 2080df + +; others +button = 404040 +button-disabled = 252525 +scrollbar = 353535 +scrollbar-hover = 999999 +context-menu = 202020 +context-menu-text = d4d4d4 +context-menu-hover = 2d2d2d +card = 2d2d2d +shadow = 0c0c0c +notification = 202020 +notification-error = d32635 +misc = 959595 + +; ylx +main-elevated = 202020 +highlight-elevated = 2d2d2d +highlight = 2d2d2d + +[gray-dark2] +; topbar +topbar = 191919 +topbar-text = d4d4d4 +topbar-subtext = 535353 +tab-active = 191919 +tab-active-text = d4d4d4 +tab-hover = 1f1f1f +topbar-border = 191919 + +; sidebars +sidebar = 161616 +sidebar-text = d4d4d4 +link-hover-text = 6c6c6c +link-active = 1c1c1c +link-active-text = d4d4d4 +sidebar-border = 161616 + +; main view +main = 202020 +text = d4d4d4 +subtext = 959595 +selected-row = 6d6d6d + +; player bar +player = 1a1a1a +player-text = d4d4d4 +player-subtext = 959595 +player-selected-row = 959595 +player-border = 1a1a1a + +; accent colors +button-active = 2080df + +; others +button = 404040 +button-disabled = 252525 +scrollbar = 353535 +scrollbar-hover = 999999 +context-menu = 202020 +context-menu-text = d4d4d4 +context-menu-hover = 2d2d2d +card = 2d2d2d +shadow = 0c0c0c +notification = 202020 +notification-error = d32635 +misc = 959595 + +; ylx +main-elevated = 202020 +highlight-elevated = 2d2d2d +highlight = 2d2d2d + +[gray-dark3] +; topbar +topbar = 191919 +topbar-text = d4d4d4 +topbar-subtext = 7a7a7a +tab-active = 191919 +tab-active-text = d4d4d4 +tab-hover = 1f1f1f +topbar-border = 191919 + +; sidebars +sidebar = 131313 +sidebar-text = d4d4d4 +link-hover-text = 6c6c6c +link-active = 1e1e1e +link-active-text = d4d4d4 +sidebar-border = 131313 + +; main view +main = 161616 +text = d4d4d4 +subtext = 959595 +selected-row = 6d6d6d + +; player bar +player = 101010 +player-text = d4d4d4 +player-subtext = 959595 +player-selected-row = 959595 +player-border = 101010 + +; accent colors +button-active = 2080df + +; others +button = 404040 +button-disabled = 252525 +scrollbar = 353535 +scrollbar-hover = 999999 +context-menu = 202020 +context-menu-text = d4d4d4 +context-menu-hover = 2d2d2d +card = 2d2d2d +shadow = 0c0c0c +notification = 202020 +notification-error = d32635 +misc = 959595 + +; ylx +main-elevated = 161616 +highlight-elevated = 2d2d2d +highlight = 2d2d2d + +[gray] +; topbar +topbar = 404040 +topbar-text = e9e9e9 +topbar-subtext = 646464 +tab-active = 333333 +tab-active-text = e9e9e9 +tab-hover = 303030 +topbar-border = 404040 + +; sidebars +sidebar = 383838 +sidebar-text = d4d4d4 +link-hover-text = e9e9e9 +link-active = 4c4c4c +link-active-text = e9e9e9 +sidebar-border = 2f2f2f + +; main view +main = 383838 +text = e9e9e9 +subtext = aaaaaa +selected-row = 6d6d6d + +; player bar +player = 343434 +player-text = d4d4d4 +player-subtext = 7f7f7f +player-selected-row = 7f7f7f +player-border = 2e2e2e + +; accent colors +button-active = 2888d7 + +; others +button = 898989 +button-disabled = 404040 +scrollbar = 494949 +scrollbar-hover = a3a3a3 +context-menu = 383838 +context-menu-text = d4d4d4 +context-menu-hover = 4c4c4c +card = 4c4c4c +shadow = 1e1e1e +notification = 383838 +notification-error = e35b5b +misc = 959595 + +; ylx +main-elevated = 383838 +highlight-elevated = 4c4c4c +highlight = 444444 + +[gray-light] +; topbar +topbar = 404040 +topbar-text = e9e9e9 +topbar-subtext = 646464 +tab-active = 333333 +tab-active-text = e9e9e9 +tab-hover = 303030 +topbar-border = 404040 + +; sidebars +sidebar = ffffff +sidebar-text = 010101 +link-hover-text = 010101 +link-active = e1e1e1 +link-active-text = 010101 +sidebar-border = e9e9e9 + +; main view +main = ffffff +text = 010101 +subtext = 6d6d6d +selected-row = 6d6d6d + +; player bar +player = ffffff +player-text = 010101 +player-subtext = 6d6d6d +player-selected-row = 6d6d6d +player-border = e9e9e9 + +; accent colors +button = 2888d7 +button-active = 2888d7 + +; others +button-disabled = dfdfdf +scrollbar = d9d9d9 +scrollbar-hover = 4d4d4d +context-menu = ffffff +context-menu-text = 010101 +context-menu-hover = ebebeb +card = ebebeb +shadow = 1e1e1e +notification = ffffff +notification-error = e35b5b +misc = 6d6d6d + +; ylx +main-elevated = ffffff +highlight-elevated = ebebeb +highlight = ebebeb diff --git a/dot-config/spicetify/Themes/Matte/screenshots/quickcfg.png b/dot-config/spicetify/Themes/Matte/screenshots/quickcfg.png new file mode 100644 index 0000000..ab46e9d Binary files /dev/null and b/dot-config/spicetify/Themes/Matte/screenshots/quickcfg.png differ diff --git a/dot-config/spicetify/Themes/Matte/screenshots/winctrl.png b/dot-config/spicetify/Themes/Matte/screenshots/winctrl.png new file mode 100644 index 0000000..991c6f9 Binary files /dev/null and b/dot-config/spicetify/Themes/Matte/screenshots/winctrl.png differ diff --git a/dot-config/spicetify/Themes/Matte/screenshots/ylx-gray-dark1.png b/dot-config/spicetify/Themes/Matte/screenshots/ylx-gray-dark1.png new file mode 100644 index 0000000..dfd2a05 Binary files /dev/null and b/dot-config/spicetify/Themes/Matte/screenshots/ylx-gray-dark1.png differ diff --git a/dot-config/spicetify/Themes/Matte/screenshots/ylx-gray-dark2.png b/dot-config/spicetify/Themes/Matte/screenshots/ylx-gray-dark2.png new file mode 100644 index 0000000..8389342 Binary files /dev/null and b/dot-config/spicetify/Themes/Matte/screenshots/ylx-gray-dark2.png differ diff --git a/dot-config/spicetify/Themes/Matte/screenshots/ylx-gray-dark3.png b/dot-config/spicetify/Themes/Matte/screenshots/ylx-gray-dark3.png new file mode 100644 index 0000000..e39d8a0 Binary files /dev/null and b/dot-config/spicetify/Themes/Matte/screenshots/ylx-gray-dark3.png differ diff --git a/dot-config/spicetify/Themes/Matte/screenshots/ylx-gray-light.png b/dot-config/spicetify/Themes/Matte/screenshots/ylx-gray-light.png new file mode 100644 index 0000000..6f98a19 Binary files /dev/null and b/dot-config/spicetify/Themes/Matte/screenshots/ylx-gray-light.png differ diff --git a/dot-config/spicetify/Themes/Matte/screenshots/ylx-gray.png b/dot-config/spicetify/Themes/Matte/screenshots/ylx-gray.png new file mode 100644 index 0000000..dfdcd87 Binary files /dev/null and b/dot-config/spicetify/Themes/Matte/screenshots/ylx-gray.png differ diff --git a/dot-config/spicetify/Themes/Matte/screenshots/ylx-matte.png b/dot-config/spicetify/Themes/Matte/screenshots/ylx-matte.png new file mode 100644 index 0000000..be5b718 Binary files /dev/null and b/dot-config/spicetify/Themes/Matte/screenshots/ylx-matte.png differ diff --git a/dot-config/spicetify/Themes/Matte/screenshots/ylx-periwinkle-dark.png b/dot-config/spicetify/Themes/Matte/screenshots/ylx-periwinkle-dark.png new file mode 100644 index 0000000..55f3569 Binary files /dev/null and b/dot-config/spicetify/Themes/Matte/screenshots/ylx-periwinkle-dark.png differ diff --git a/dot-config/spicetify/Themes/Matte/screenshots/ylx-periwinkle.png b/dot-config/spicetify/Themes/Matte/screenshots/ylx-periwinkle.png new file mode 100644 index 0000000..0cb02ba Binary files /dev/null and b/dot-config/spicetify/Themes/Matte/screenshots/ylx-periwinkle.png differ diff --git a/dot-config/spicetify/Themes/Matte/screenshots/ylx-porcelain.png b/dot-config/spicetify/Themes/Matte/screenshots/ylx-porcelain.png new file mode 100644 index 0000000..a4cb82f Binary files /dev/null and b/dot-config/spicetify/Themes/Matte/screenshots/ylx-porcelain.png differ diff --git a/dot-config/spicetify/Themes/Matte/user.css b/dot-config/spicetify/Themes/Matte/user.css new file mode 100644 index 0000000..9cf28e4 --- /dev/null +++ b/dot-config/spicetify/Themes/Matte/user.css @@ -0,0 +1,606 @@ +/* ================================ + USER-EDITABLE VARIABLES + ================================ */ + +:root { + /* top bar vars */ + --top-bar-padding-top: 45px; + --top-bar-padding-right: 20px; + --top-bar-padding-bottom: 5px; + --top-bar-padding-left: 20px; + --tab-border-radius: 6px; + --top-bar-border-width: 2px; + + /* sidebar vars */ + --sidebar-button-border-radius: 4px; + --sidebar-border-width: 2px; + + /* player vars */ + --player-height: 90px; + --player-padding: 0 20px; + --player-border-width: 2px; + + /* scrollbar vars */ + --scrollbar-border-radius: 4px; + --scrollbar-width: 6px; + --scrollbar-width-hover: 6px; +} + +/* ================================ + TOPBAR + ================================ */ + +.spotify__container--is-desktop:not(.fullscreen) .main-topBar-container, +.spotify__container--is-desktop:not(.fullscreen) .main-topBar-background { + -webkit-app-region: drag !important; +} +.Root__top-container { + /* rearrange grid layout */ + grid-template-areas: + ". . ." + "left-sidebar main-view right-sidebar" + "now-playing-bar now-playing-bar now-playing-bar"; + grid-template-rows: + calc(var(--top-bar-padding-top) + 40px + var(--top-bar-padding-bottom)) + 1fr auto; + overflow: hidden !important; +} +.Root__nav-bar { + grid-area: left-sidebar !important; +} +.Root__right-sidebar { + grid-area: right-sidebar !important; +} +.Root__now-playing-bar { + grid-area: now-playing-bar !important; +} +.body-drag-top { + /* make whole top bar draggable */ + height: calc( + var(--top-bar-padding-top) + 40px + var(--top-bar-padding-bottom) + ) !important; +} +.main-topBar-container, +.main-topBar-container:empty { + /* customize top bar */ + position: fixed; + top: 0; + left: 0; + padding-top: var(--top-bar-padding-top); + padding-right: var(--top-bar-padding-right); + padding-bottom: var(--top-bar-padding-bottom); + padding-left: var(--top-bar-padding-left); + height: calc( + var(--top-bar-padding-top) + 40px + var(--top-bar-padding-bottom) + ); + width: 100%; + border-bottom: var(--top-bar-border-width) solid var(--spice-topbar-border); +} +.main-topBar-container .contentSpacing { + max-width: unset; + padding: 0; +} +.main-topBar-background { + /* remove background upon scrolling */ + opacity: 0 !important; +} +.queue-tabBar-active { + /* customize active tab */ + border-radius: var(--tab-border-radius); +} +[dir="ltr"] .collection-collection-tabBar, +.queue-tabBar-nav { + /* remove tab bar left padding */ + padding-left: 0; + padding-inline-start: 0; +} +.main-topBar-topbarContent { + /* add bigger gap between play button and name */ + gap: 16px; +} +.x-searchInput-searchInputInput { + height: 41px; +} +.x-searchInput-searchInputInput:hover, +.x-searchInput-searchInputInput:focus, +.x-entityImage-imageContainer { + box-shadow: none; +} +.x-searchInput-searchInputInput, +.x-filterBox-filterInput { + border-radius: var(--tab-border-radius); +} + +/* ================================ + NAVBAR / LEFT SIDEBAR + ================================ */ + +.Root__nav-bar { + /* add border */ + border-right: var(--sidebar-border-width) solid var(--spice-sidebar-border); +} +.LayoutResizer__resize-bar--resizing, +.LayoutResizer__resize-bar:focus-within, +.LayoutResizer__resize-bar:hover { + /* remove border on hovering layout resizer */ + opacity: 0; +} +.LayoutResizer__resize-bar { + /* replace cursor on layout resize */ + cursor: w-resize; + width: 2px; +} +.LayoutResizer__inline-end { + inset-inline-end: 0; +} +.main-yourLibraryX-entryPoints, +.Root__main-view { + border-radius: 0; +} +.main-yourLibraryX-navItems { + padding-bottom: 0; +} +.main-yourLibraryX-navItem, +.main-yourLibraryX-headerContent { + padding: 4px 0; +} +.main-yourLibraryX-header { + padding-top: 0; +} +.main-yourLibraryX-navItem { + padding: 4px 0; +} +.main-yourLibraryX-navLink { + padding: 12px; + text-decoration: none !important; +} +.main-yourLibraryX-navLink, +.main-yourLibraryX-header .main-yourLibraryX-collapseButtonWrapper { + gap: 20px; +} +.Wrapper-md-leading { + margin-inline-end: 0; +} + +/* ================================ + MAIN VIEW + ================================ */ + +.main-view-container__scroll-node-child-spacer { + /* remove main view padding */ + display: none; +} +.marketplace-header, +.main-home-filterChipsContainer, +.main-trackList-trackListHeader, +.search-searchCategory-SearchCategory, +.artist-artistDiscography-topBar { + /* fix home filter, track list header, search category, artist discography */ + top: -1px !important; + height: auto; +} +.LVMjmN2CaPruPAo62RAY { + height: unset !important; +} +.marketplace-header, +.main-home-filterChipsContainer, +.search-searchCategory-SearchCategory { + /* home filter, fix search category */ + border-bottom: 1px solid rgba(var(--spice-rgb-selected-row), 0.1); + padding: 16px 0; +} +.search-searchCategory-catergoryGrid button { + margin-bottom: 0 !important; +} +.search-searchCategory-catergoryGrid button[aria-checked="true"] span { + /* customize active search category */ + border-radius: var(--tab-border-radius); +} +.main-trackList-trackListHeader, +.artist-artistDiscography-topBar { + /* fix track list header & artist discography */ + padding: 16px 32px 0 32px; +} +.main-trackList-trackListHeaderStuck.main-trackList-trackListHeader, +.artist-artistDiscography-topBar.artist-artistDiscography-topBarScrolled { + /* fix tracklist header & artist discography */ + box-shadow: none; + border-bottom: 1px solid rgba(var(--spice-rgb-selected-row), 0.1); +} +.search-recentSearches-searchPageGrid + .main-trackList-trackListHeader.main-trackList-trackListHeaderStuck { + /* fix tracklist header in search */ + top: 64px !important; +} +.main-home-homeHeader, +.x-entityHeader-overlay, +.x-actionBarBackground-background, +.main-actionBarBackground-background, +.main-entityHeader-overlay, +.main-entityHeader-backgroundColor { + /* remove background gradient */ + background-color: unset !important; + background-image: unset !important; +} + +/* full window artist background */ +.main-entityHeader-background.main-entityHeader-gradient { + opacity: 0.3 !important; +} +.main-entityHeader-container.main-entityHeader-withBackgroundImage, +.main-entityHeader-background, +.main-entityHeader-background.main-entityHeader-overlay:after { + height: 100vh; +} +.main-entityHeader-withBackgroundImage .main-entityHeader-headerText { + justify-content: center; +} +.main-entityHeader-container.main-entityHeader-nonWrapped.main-entityHeader-withBackgroundImage { + padding-left: 9%; +} +.main-entityHeader-background.main-entityHeader-overlay:after { + background-image: linear-gradient(transparent, transparent), + linear-gradient(var(--spice-main), var(--spice-main)); +} +.artist-artistOverview-overview .main-entityHeader-withBackgroundImage h1 { + font-size: 20vh !important; + line-height: 20vh !important; +} +/* cards */ +.main-cardImage-imageWrapper { + background-color: transparent; +} +.main-card-card { + background: none; +} +.main-cardImage-image { + border-radius: 12px; +} +.main-cardImage-imageWrapper, +.main-entityHeader-shadow { + /* remove drop shadows from images */ + -webkit-box-shadow: none; + box-shadow: none; +} +/* popup modal */ +.main-trackCreditsModal-container { + background-color: var(--spice-main); +} +.main-trackCreditsModal-closeBtn svg path { + fill: var(--spice-subtext); +} +/* lyrics */ +.lyrics-lyrics-background { + background-color: var(--spice-main); +} +.lyrics-lyrics-container.lyrics-lyrics-coverTopBar { + --lyrics-color-active: var(--spice-text) !important; + --lyrics-color-inactive: var(--spice-subtext) !important; + --lyrics-color-passed: var(--spice-subtext) !important; + --lyrics-color-messaging: var(--spice-subtext) !important; +} +.lyrics-lyricsContent-lyric { + opacity: 0.3; +} +.lyrics-lyricsContent-lyric.lyrics-lyricsContent-highlight { + opacity: 0.7; +} +.lyrics-lyricsContent-lyric.lyrics-lyricsContent-isInteractive.lyrics-lyricsContent-active { + text-shadow: 0 0 10px var(--lyrics-color-background), + -2px 1px 0 var(--spice-main), -3px 2px 0 var(--lyrics-color-background), + 2px -1px 0 var(--spice-main), 3px -2px 0 var(--lyrics-color-background); + opacity: 1; +} + +/* ================================ + FRIEND ACTIVITY BAR / RIGHT SIDEBAR + ================================ */ + +.Root__nav-right-sidebar { + border-left: var(--sidebar-border-width) solid var(--spice-sidebar-border); +} +.spotify__os--is-windows .main-buddyFeed-content { + margin-top: 0; +} + +/* ================================ + NOW PLAYING BAR + ================================ */ + +.Root__now-playing-bar { + border-top: var(--player-border-width) solid var(--spice-player-border); +} +.main-nowPlayingBar-nowPlayingBar { + /* customize now playing bar */ + height: var(--player-height); + padding: var(--player-padding); +} +.main-nowPlayingBar-container { + /* customize now playing bar*/ + border-top: none; +} +[dir="ltr"] .main-nowPlayingWidget-coverExpanded { + transform: translateX(-76px); +} +.x-progressBar-fillColor { + /* fluid progress bars */ + transition: transform, 0s, ease, 0.25s; +} +.progress-bar__slider { + /* fluid progress bars */ + transition: left, 0s, ease, 0.25s; +} + +/* ================================ + MISC & FIXES + ================================ */ + +/* font style + -------------------------------- */ +* { + /* heading font weight */ + font-weight: normal !important; + --font-family: CircularSp, CircularSp-Arab, CircularSp-Hebr, CircularSp-Cyrl, + CircularSp-Grek, CircularSp-Deva, var(--fallback-fonts, sans-serif), + sans-serif; +} + +/* root + -------------------------------- */ +.Root { + --panel-gap: 0 !important; +} +.spotify__container--is-desktop .Root__top-container { + padding-top: 0 !important; +} + +/* scrollbar + -------------------------------- */ +.os-scrollbar-handle { + /* customize scrollbar */ + border-radius: var(--scrollbar-border-radius) !important; + width: var(--scrollbar-width) !important; +} +.os-scrollbar-handle:hover { + /* customize hovered scrollbar */ + border-radius: var(--scrollbar-border-radius) !important; + width: var(--scrollbar-width-hover) !important; +} +.os-scrollbar-vertical { + /* fix scrollbar positioning */ + top: 5px !important; + right: 5px !important; +} +.os-scrollbar-handle { + /* increase size from right to left */ + position: absolute; + top: 0; + right: 0; +} + +/* tooltip + -------------------------------- */ +.main-contextMenu-tippy { + /* position below the element */ + transform: translate(0, 65px); +} + +/* placeholder + -------------------------------- */ +.T7WHRub8pynnWPXERh8e, +.rOgsguaurlHVlgCTY0P7, +.eC25_w41L83mXDCqdm_A { + /* playlists loading placeholder */ + opacity: 0.05; + filter: contrast(0.1); +} + + +/* color reassignment + -------------------------------- */ +.encore-dark-theme, +.encore-dark-theme .encore-base-set { + /* song duration & queue button & folder arrow & settings desc text */ + --text-subdued: var(--spice-subtext) !important; + --essential-subdued: var(--spice-button) !important; +} + +/* ====topbar==== */ +.main-topBar-container, +.main-topBar-container:empty { + background-color: var(--spice-topbar); +} +.main-topBar-historyButtons .main-topBar-button { + background-color: transparent; + color: var(--spice-topbar-text); +} +.main-topBar-historyButtons .main-topBar-button:disabled { + color: var(--spice-topbar-subtext); + opacity: 1; +} +.main-entityHeader-topbarTitle { + color: var(--spice-topbar-text) !important; +} +.queue-tabBar-active { + background-color: var(--spice-tab-active) !important; + color: var(--spice-tab-active-text) !important; +} +.queue-tabBar-headerItemLink { + color: var(--spice-topbar-subtext); +} +.queue-tabBar-headerItemLink:hover { + background-color: rgba(var(--spice-rgb-tab-hover), 0.3); +} +.x-searchInput-searchInputSearchIcon, +.x-searchInput-searchInputClearButton, +.x-searchInput-searchInputInput { + color: var(--spice-tab-active-text) !important; +} +.x-searchInput-searchInputInput { + background-color: var(--spice-tab-active); + color: var(--spice-tab-active-text) !important; +} +.x-searchInput-searchInputInput:hover { + background-color: var(--spice-tab-hover); +} +.x-filterBox-filterInput { + background-color: rgba(var(--spice-rgb-subtext), 0.1); +} +::placeholder { + color: var(--spice-topbar-subtext); +} + +/* ====left sidebar==== */ +.main-yourLibraryX-entryPoints { + background-color: var(--spice-sidebar); +} +.main-yourLibraryX-navLinkActive, +.main-yourLibraryX-navLinkActive .home-active-icon, +.main-yourLibraryX-navLinkActive .search-active-icon { + color: var(--spice-link-active-text) !important; + background-color: var(--spice-link-active); + border-radius: var(--tab-border-radius); +} +.link-subtle { + transition-property: none; + color: var(--spice-sidebar-text); +} +.link-subtle:focus, +.link-subtle:hover { + color: var(--spice-link-hover-text); +} +.Button-md-24-buttonTertiary-iconLeading-condensed-useBrowserDefaultFocusStyle, +.Button-md-24-buttonTertiary-iconLeading-condensed-isUsingKeyboard-useBrowserDefaultFocusStyle { + color: var(--spice-sidebar-text); +} + +/* ====main view==== */ +.main-trackList-trackListRow.main-trackList-selected, +.main-trackList-trackListRow.main-trackList-selected:hover, +.main-trackList-trackListRow:focus-within, +.main-trackList-trackListRow:hover { + background-color: var(--spice-card); +} +.main-trackList-trackListHeaderStuck.main-trackList-trackListHeader, +.artist-artistDiscography-topBar.artist-artistDiscography-topBarScrolled { + background: var(--spice-main) !important; +} +.main-trackList-placeholder { + /* recolor loading tracklist */ + opacity: 0.05; + filter: contrast(0.1); +} +.view-homeShortcutsGrid-equaliser, +.main-trackList-playingIcon, +.main-devicePicker-nowPlayingActiveIcon { + /* change playing icon color to theme color */ + filter: grayscale(1) opacity(0.2) + drop-shadow(0 0 0 var(--spice-button-active)) + drop-shadow(0 0 0 var(--spice-button-active)) + drop-shadow(0 0 0 var(--spice-button-active)); +} +.main-home-filterChipsSection, +.main-home-filterChipsSection:after { + background-color: var(--spice-main) !important; +} +.search-searchCategory-catergoryGrid button[aria-checked="true"] span { + color: var(--spice-main); + background-color: var(--spice-button-active) !important; +} +.search-searchCategory-catergoryGrid span { + border-radius: var(--tab-border-radius); + color: var(--spice-subtext); +} +.artist-artistAbout-container.artist-artistAbout-backgroundImage + .artist-artistAbout-content + > div { + /* change about artist text color */ + color: #fff; +} +.main-dropDown-dropDown, +.x-settings-input { + background-color: var(--spice-button-disabled); + color: var(--spice-text); +} + +/* ====right sidebar==== */ +.TypeElement-balladBold-textBase-type, +.main-buddyFeed-activityMetadata .main-buddyFeed-artistAndTrackName { + color: var(--spice-sidebar-text); +} + +/* ====now playing bar==== */ +.main-nowPlayingBar-container { + background-color: var(--spice-player); +} +.main-trackInfo-name, +.main-trackInfo-artists a:active, +.main-trackInfo-artists a:focus, +.main-trackInfo-artists a:hover { + color: var(--spice-player-text) !important; +} +.main-trackInfo-artists a:link, +.main-trackInfo-artists a:visited { + color: var(--spice-player-subtext); +} +.main-playPauseButton-button { + color: var(--spice-player); + background-color: var(--spice-button-active); +} +.control-button-heart[aria-checked="false"], +.player-controls__left button, +.player-controls__right button, +.main-nowPlayingBar-extraControls button { + color: rgba(var(--spice-rgb-player-selected-row), 0.7); +} +.Button-textBrightAccent-small-small-buttonTertiary-iconOnly-useBrowserDefaultFocusStyle, +.Button-textBrightAccent-small-small-buttonTertiary-iconOnly-isUsingKeyboard-useBrowserDefaultFocusStyle { + color: var(--spice-button) !important; +} +.progress-bar { + --bg-color: rgba(var(--spice-rgb-player-selected-row), 0.3); + --fg-color: var(--spice-player-selected-row); +} + +/* ====misc==== */ + +/* ----scrollbar---- */ +.os-scrollbar-handle { + background-color: var(--spice-scrollbar) !important; +} +.os-scrollbar-handle:hover, +.os-scrollbar-handle:active { + background-color: var(--spice-scrollbar-hover) !important; +} + +/* ----context menu---- */ +.main-contextMenu-menu { + background-color: var(--spice-context-menu); +} +.main-contextMenu-menuHeading, +.main-contextMenu-menuItemButton, +.main-contextMenu-menuItemButton:not(.main-contextMenu-disabled):focus, +.main-contextMenu-menuItemButton:not(.main-contextMenu-disabled):hover { + color: var(--spice-context-menu-text); +} +.main-contextMenu-menuItemButton:not(.main-contextMenu-disabled):focus, +.main-contextMenu-menuItemButton:not(.main-contextMenu-disabled):hover { + background-color: var(--spice-context-menu-hover); +} + +/* ----button---- */ +#_R_G *:not([fill="none"]) { + /* fix heart color on click */ + fill: var(--spice-button-active) !important; +} +#_R_G *:not([stroke="none"]) { + stroke: var(--spice-button-active); +} +.ButtonInner-md-iconOnly { + /* base play/pause icon color on player instead of sidebar */ + color: var(--spice-player); +} +.Button-sm-16-buttonTertiary-iconOnly-condensedAll-useBrowserDefaultFocusStyle { + /* base play/pause icon color on sidebar text instead of subtext */ + color: var(--spice-sidebar-text); +} diff --git a/dot-config/spicetify/Themes/Nightlight/README.md b/dot-config/spicetify/Themes/Nightlight/README.md new file mode 100644 index 0000000..2692936 --- /dev/null +++ b/dot-config/spicetify/Themes/Nightlight/README.md @@ -0,0 +1,9 @@ +# Nightlight + +## Screenshots + +img + +## Author +Made by: +* https://github.com/iTenerai diff --git a/dot-config/spicetify/Themes/Nightlight/color.ini b/dot-config/spicetify/Themes/Nightlight/color.ini new file mode 100644 index 0000000..c7a854a --- /dev/null +++ b/dot-config/spicetify/Themes/Nightlight/color.ini @@ -0,0 +1,16 @@ +[Nightlight Colors] +text = FFFFFF +subtext = F1F1F1 +main = 1c1622 +sidebar = 241c2c +player = 241c2c +card = 241c2c +shadow = 241c2c +selected-row = F1F1F1 +button = ae1adb +button-active = ae1adb +button-disabled = 241c2c +tab-active = 241c2c +notification = ae1adb +notification-error = FF4151 +misc = ae1adb diff --git a/dot-config/spicetify/Themes/Nightlight/screenshots/nightlight.png b/dot-config/spicetify/Themes/Nightlight/screenshots/nightlight.png new file mode 100644 index 0000000..b4b62e6 Binary files /dev/null and b/dot-config/spicetify/Themes/Nightlight/screenshots/nightlight.png differ diff --git a/dot-config/spicetify/Themes/Nightlight/user.css b/dot-config/spicetify/Themes/Nightlight/user.css new file mode 100644 index 0000000..ce254ee --- /dev/null +++ b/dot-config/spicetify/Themes/Nightlight/user.css @@ -0,0 +1,49 @@ +@import url('https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap'); + +* { + font-family: Arial, Helvetica, sans-serif; +} + +h1 { + font-weight: 700 !important; +} + +.main-nowPlayingWidget-nowPlaying .main-trackInfo-name { + color: white; + overflow: unset; + font-size: 20px !important; + background: -webkit-linear-gradient(right, #d7007d, #7a00ef); + font-weight: bold; + border-radius: 15px; + padding-left: 3px; +} + +.main-nowPlayingWidget-nowPlaying .main-trackInfo-artists { + padding-left: 3px; +} + +.main-home-homeHeader, +.main-entityHeader-backgroundColor, +.main-actionBarBackground-background { + display: none; +} + +.main-topBar-overlay, +.main-view-container, +.Root__nav-bar { + background-color: var(--spice-main); +} + +.main-topBar-background { + opacity: 1 !important; +} + +* { + box-shadow: none !important; +} + +.cover-art-image { + border: dotted; + border-radius: 50%; + border-color: #ae1adb; +} \ No newline at end of file diff --git a/dot-config/spicetify/Themes/Onepunch/.gitignore b/dot-config/spicetify/Themes/Onepunch/.gitignore new file mode 100644 index 0000000..b7ff13a --- /dev/null +++ b/dot-config/spicetify/Themes/Onepunch/.gitignore @@ -0,0 +1 @@ +.DS_STORE \ No newline at end of file diff --git a/dot-config/spicetify/Themes/Onepunch/LICENSE b/dot-config/spicetify/Themes/Onepunch/LICENSE new file mode 100644 index 0000000..c3c2c50 --- /dev/null +++ b/dot-config/spicetify/Themes/Onepunch/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2021 okarin001 + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/dot-config/spicetify/Themes/Onepunch/README.md b/dot-config/spicetify/Themes/Onepunch/README.md new file mode 100644 index 0000000..4f5ef59 --- /dev/null +++ b/dot-config/spicetify/Themes/Onepunch/README.md @@ -0,0 +1,55 @@ +# Onepunch + +## Screenshots + +#### Dark + +| ![dark_home](./screenshots/dark_home.png) | ![dark_album](./screenshots/dark_album.png) | ![dark_playlist](./screenshots/dark_playlist.png) | +| :-------------------------------------------: | :---------------------------------------------: | :-----------------------------------------------: | +| home | album | playlist | +| ![dark_podcast](screenshots/dark_podcast.png) | ![dark_profile](./screenshots/dark_profile.png) | ![dark_ylx](./screenshots/dark_ylx.png) | +| podcast | profile | search (YLX UI) | + +#### Light + +| ![light_home](./screenshots/light_home.png) | ![light_album](./screenshots/light_album.png) | ![light_playlist](./screenshots/light_playlist.png) | +| :---------------------------------------------: | :-----------------------------------------------: | :-------------------------------------------------: | +| home | album | playlist | +| ![light_podcast](screenshots/light_podcast.png) | ![light_profile](./screenshots/light_profile.png) | ![dark_ylx](./screenshots/light_ylx.png) | +| podcast | profile | settings (YLX UI) | + +#### Legacy + +| ![legacy_ylx](./screenshots/legacy_ylx.png) | +| :---------------------------------------------: | +| home (YLX UI) | + +### Custom Icons +![icons](screenshots/icons.png) + +## More + +### About + +A simple gruvified spotify theme. + +### Information + +* To apply this theme: + + ```shell + # for dark theme + spicetify config current_theme Onepunch color_scheme dark + spicetify apply + + #for light theme + spicetify config current_theme Onepunch color_scheme light + spicetify apply + + ``` + +* Tested on macOS only and pretty much everything worked. ヘ(・\_| + +### Contact + +Go **[here](https://github.com/okarin001/Onepunch/issues)** and *check/create* an issue in case you face any problem. diff --git a/dot-config/spicetify/Themes/Onepunch/color.ini b/dot-config/spicetify/Themes/Onepunch/color.ini new file mode 100644 index 0000000..120da98 --- /dev/null +++ b/dot-config/spicetify/Themes/Onepunch/color.ini @@ -0,0 +1,74 @@ +[dark] +; onepunch dark mode + +text = d5c4a1 +subtext = b8bb26 +extratext = fabd2f +main = 1d2021 +main-elevated = 1d2021 +highlight-elevated = 32302f +highlight = 32302f +sidebar = 1d2021 +player = 1d2021 +sec-player = 32302f +card = 32302f +sec-card = fb4934 +shadow = 1d2021 +selected-row = d3869b +button = 8ec07c +button-active = 8ec07c +button-disabled = 665c54 +tab-active = fb4934 +notification = fb4934 +notification-error = cc2418 +misc = 83a598 + +[light] +; onepunch light mode + +text = 504945 +subtext = 79740e +extratext = b57614 +main = f9f5d7 +main-elevated = f9f5d7 +highlight-elevated = f2e5bc +highlight = f2e5bc +sidebar = f9f5d7 +player = f9f5d7 +sec-player = f2e5bc +card = f2e5bc +sec-card = 9d0006 +shadow = f9f5d7 +selected-row = b16286 +button = 427b58 +button-active = 427b58 +button-disabled = bdae93 +tab-active = 9d0006 +notification = 9d0006 +notification-error = cc2418 +misc = 076678 + +[legacy] +; onepunch legacy colors + +text = b8bb26 +subtext = d5c4a1 +extratext = fabd2f +main = 16191a +main-elevated = 16191a +highlight-elevated = 32302f +highlight = 32302f +sidebar = 16191a +player = 16191a +sec-player = 16191a +card = 32302f +sec-card = fb4934 +shadow = 16191a +selected-row = d5c4a1 +button = 8ec07c +button-active = 8ec07c +button-disabled = 665c54 +tab-active = fb4934 +notification = 32302f +notification-error = cc2418 +misc = 83a598 \ No newline at end of file diff --git a/dot-config/spicetify/Themes/Onepunch/screenshots/dark_album.png b/dot-config/spicetify/Themes/Onepunch/screenshots/dark_album.png new file mode 100644 index 0000000..06c9c11 Binary files /dev/null and b/dot-config/spicetify/Themes/Onepunch/screenshots/dark_album.png differ diff --git a/dot-config/spicetify/Themes/Onepunch/screenshots/dark_home.png b/dot-config/spicetify/Themes/Onepunch/screenshots/dark_home.png new file mode 100644 index 0000000..30c09f3 Binary files /dev/null and b/dot-config/spicetify/Themes/Onepunch/screenshots/dark_home.png differ diff --git a/dot-config/spicetify/Themes/Onepunch/screenshots/dark_playlist.png b/dot-config/spicetify/Themes/Onepunch/screenshots/dark_playlist.png new file mode 100644 index 0000000..69652cd Binary files /dev/null and b/dot-config/spicetify/Themes/Onepunch/screenshots/dark_playlist.png differ diff --git a/dot-config/spicetify/Themes/Onepunch/screenshots/dark_podcast.png b/dot-config/spicetify/Themes/Onepunch/screenshots/dark_podcast.png new file mode 100644 index 0000000..35051d9 Binary files /dev/null and b/dot-config/spicetify/Themes/Onepunch/screenshots/dark_podcast.png differ diff --git a/dot-config/spicetify/Themes/Onepunch/screenshots/dark_profile.png b/dot-config/spicetify/Themes/Onepunch/screenshots/dark_profile.png new file mode 100644 index 0000000..eadfb55 Binary files /dev/null and b/dot-config/spicetify/Themes/Onepunch/screenshots/dark_profile.png differ diff --git a/dot-config/spicetify/Themes/Onepunch/screenshots/dark_ylx.png b/dot-config/spicetify/Themes/Onepunch/screenshots/dark_ylx.png new file mode 100644 index 0000000..9f620ee Binary files /dev/null and b/dot-config/spicetify/Themes/Onepunch/screenshots/dark_ylx.png differ diff --git a/dot-config/spicetify/Themes/Onepunch/screenshots/display.gif b/dot-config/spicetify/Themes/Onepunch/screenshots/display.gif new file mode 100644 index 0000000..09adc07 Binary files /dev/null and b/dot-config/spicetify/Themes/Onepunch/screenshots/display.gif differ diff --git a/dot-config/spicetify/Themes/Onepunch/screenshots/icons.png b/dot-config/spicetify/Themes/Onepunch/screenshots/icons.png new file mode 100644 index 0000000..d4c4435 Binary files /dev/null and b/dot-config/spicetify/Themes/Onepunch/screenshots/icons.png differ diff --git a/dot-config/spicetify/Themes/Onepunch/screenshots/legacy_ylx.png b/dot-config/spicetify/Themes/Onepunch/screenshots/legacy_ylx.png new file mode 100644 index 0000000..a51b809 Binary files /dev/null and b/dot-config/spicetify/Themes/Onepunch/screenshots/legacy_ylx.png differ diff --git a/dot-config/spicetify/Themes/Onepunch/screenshots/light_album.png b/dot-config/spicetify/Themes/Onepunch/screenshots/light_album.png new file mode 100644 index 0000000..92c1696 Binary files /dev/null and b/dot-config/spicetify/Themes/Onepunch/screenshots/light_album.png differ diff --git a/dot-config/spicetify/Themes/Onepunch/screenshots/light_home.png b/dot-config/spicetify/Themes/Onepunch/screenshots/light_home.png new file mode 100644 index 0000000..0bb8548 Binary files /dev/null and b/dot-config/spicetify/Themes/Onepunch/screenshots/light_home.png differ diff --git a/dot-config/spicetify/Themes/Onepunch/screenshots/light_playlist.png b/dot-config/spicetify/Themes/Onepunch/screenshots/light_playlist.png new file mode 100644 index 0000000..71a829e Binary files /dev/null and b/dot-config/spicetify/Themes/Onepunch/screenshots/light_playlist.png differ diff --git a/dot-config/spicetify/Themes/Onepunch/screenshots/light_podcast.png b/dot-config/spicetify/Themes/Onepunch/screenshots/light_podcast.png new file mode 100644 index 0000000..4f27f55 Binary files /dev/null and b/dot-config/spicetify/Themes/Onepunch/screenshots/light_podcast.png differ diff --git a/dot-config/spicetify/Themes/Onepunch/screenshots/light_profile.png b/dot-config/spicetify/Themes/Onepunch/screenshots/light_profile.png new file mode 100644 index 0000000..8ec5644 Binary files /dev/null and b/dot-config/spicetify/Themes/Onepunch/screenshots/light_profile.png differ diff --git a/dot-config/spicetify/Themes/Onepunch/screenshots/light_ylx.png b/dot-config/spicetify/Themes/Onepunch/screenshots/light_ylx.png new file mode 100644 index 0000000..39c0d60 Binary files /dev/null and b/dot-config/spicetify/Themes/Onepunch/screenshots/light_ylx.png differ diff --git a/dot-config/spicetify/Themes/Onepunch/user.css b/dot-config/spicetify/Themes/Onepunch/user.css new file mode 100644 index 0000000..1201aa4 --- /dev/null +++ b/dot-config/spicetify/Themes/Onepunch/user.css @@ -0,0 +1,625 @@ +/* sidebar edits */ +.main-navBar-navBarLinkActive, +.main-navBar-navBarLinkActive:focus, +.logo { + background-color: var(--spice-sec-card) !important; + color: var(--spice-main) !important; +} + +.main-likedSongsButton-likedSongsIcon, +.main-createPlaylistButton-createPlaylistIcon, +.main-yourEpisodesButton-yourEpisodesIcon { + background: var(--spice-text) !important; + border-radius: unset !important; + color: var(--spice-main) !important; +} + +.main-collectionLinkButton-collectionLinkButton { + color: var(--spice-main) !important; +} + +.main-collectionLinkButton-collectionLinkButton + .main-collectionLinkButton-collectionLinkText, +.main-createPlaylistButton-button, +.main-rootlist-rootlistItemLink, +.main-rootlist-rootlistItemLink:visited { + color: var(--spice-text) !important; +} + +.main-rootlist-rootlistItemLinkActive, +.main-rootlist-rootlistItemLink:hover, +.main-rootlist-textWrapper:hover { + color: var(--spice-subtext) !important; +} + +.main-collectionLinkButton-collectionLinkButton + .main-collectionLinkButton-selected + .main-collectionLinkButton-icon { + opacity: 0.7 !important; +} + +.main-rootlist-rootlistDividerGradient { + background: linear-gradient(180deg, var(--spice-main), transparent); +} + +.main-rootlist-rootlistDivider { + background-color: unset !important; +} + +/* top queue */ +.queue-tabBar-active { + background-color: var(--spice-card) !important; +} + +.queue-tabBar-headerItemLink { + color: var(--spice-text) !important; +} + +/* header colored backgrounds */ +.main-home-homeHeader, +.x-441-entityHeader-overlay, +.main-actionBarBackground-background, +.main-entityHeader-overlay, +.main-entityHeader-backgroundColor, +.x-914-entityHeader-overlay, +.x-entityHeader-overlay, +.x-914-actionBarBackground-background, +.x-actionBarBackground-background { + background-color: unset !important; + background-image: unset !important; +} + +/* play button in main page */ +.main-playButton-PlayButton.main-playButton-primary { + color: var(--spice-main); + background-color: var(--spice-button); +} + +.connect-title, +.connect-header { + display: none; +} + +/* Topbar visibility bug */ +.main-topBar-topbarContent:not(.main-topBar-topbarContentFadeIn) > * { + opacity: unset !important; +} + +.main-entityHeader-topbarContent:not(.main-entityHeader-topbarContentFadeIn) + > * { + opacity: 0 !important; +} + +.main-topBar-overlay, +.x-441-actionBarBackground-background { + background-color: var(--spice-main) !important; +} + +.main-entityHeader-shadow { + box-shadow: 0 0 4px 0 rgba(var(--spice-rgb-shadow), 0.5); +} + +.main-trackList-playingIcon { + filter: hue-rotate(270deg); +} + +span.artist-artistVerifiedBadge-badge svg:nth-child(1) { + fill: black; +} + +/* details metadata */ +.main-entityTitle-subtitle.main-entityTitle-gray, +.main-entityHeader-metaDataText { + color: var(--spice-text) !important; +} + +.main-duration-container { + color: var(--spice-subtext); +} + +/* artist page edits*/ + +.artist-artistOverview-artistOverviewContent { + box-shadow: 0 -2px 5px 0 rgba(var(--spice-rgb-shadow), 0.7); +} + +.main-entityHeader-background.main-entityHeader-gradient { + opacity: 0.4; +} + +.main-entityHeader-background.main-entityHeader-overlay:after { + background-image: linear-gradient(transparent, transparent), + linear-gradient(var(--spice-main), var(--spice-main)); +} + +.artist-artistPick-pickComment { + background: var(--spice-sec-player) !important; + border-radius: 25px !important; + border-bottom: solid 2px var(--spice-sec-player) !important; + color: var(--spice-text) !important; +} + +.artist-artistSavedTracks-imageContainer .artist-artistSavedTracks-heartIcon { + color: var(--spice-card); +} + +/* home screen edits */ + +.view-homeShortcutsGrid-name { + color: var(--spice-text); +} + +.main-shelf-title { + color: var(--spice-subtext); +} + +.view-homeShortcutsGrid-shortcut, +.view-homeShortcutsGrid-shortcut .view-homeShortcutsGrid-imageWrapper, +.main-cardImage-imageWrapper, +.main-cardImage-imagePlaceholder, +.main-cardImage-image { + border-radius: 10px !important; +} + +.view-homeShortcutsGrid-shortcut .view-homeShortcutsGrid-image { + border-radius: 10px 0 0 10px !important; +} + +.main-cardImage-circular, +.main-entityHeader-circle { + border-radius: 50% !important; +} + +.main-entityHeader-image { + border-radius: 10px; +} + +/* inside a page edits */ + +.main-trackList-trackListRow.main-trackList-active .main-trackList-rowMarker, +.main-trackList-trackListRow.main-trackList-active .main-trackList-rowTitle { + color: var(--spice-subtext) !important; +} + +.main-trackList-rowTitle { + color: var(--spice-text) !important; +} + +/* friend activity */ +.main-buddyFeed-activityMetadata .main-buddyFeed-artistAndTrackName a, +.main-buddyFeed-activityMetadata .main-buddyFeed-playbackContext a, +.main-buddyFeed-activityMetadata .main-buddyFeed-usernameAndTimestamp a { + color: var(--spice-text) !important; +} + +.main-buddyFeed-activityMetadata .main-buddyFeed-username a { + color: var(--spice-subtext) !important; +} + +.main-avatar-avatar.main-avatar-withBadge:after { + background: var(--spice-extratext); +} + +/* setting page */ + +.x-settings-container { + margin: 16px 180px !important; +} + +.x-settings-title { + color: var(--spice-subtext) !important; +} + +.main-dropDown-dropDown { + border: 0; + border-radius: 10px; +} + +.main-dropDown-dropDown { + background-color: var(--spice-button-disabled) !important; + color: var(--spice-text) !important; +} + +.x-toggle-indicator { + background: var(--spice-button) !important; + box-shadow: 0 2px 4px 0 rgba(var(--spice-rgb-shadow), 0.5); +} + +input:checked ~ .x-toggle-indicatorWrapper .x-toggle-indicator { + background-color: var(--spice-button) !important; + box-shadow: 0 2px 4px 0 rgba(var(--spice-rgb-shadow), 0.5); +} + +input:hover:not([disabled]):not(:active) ~ .x-toggle-indicatorWrapper { + background-color: rgba(var(--spice-rgb-button-disabled), 0.7) !important; +} + +input:checked ~ .x-toggle-indicatorWrapper { + background-color: rgba(var(--spice-rgb-button), 0.6) !important; +} + +input:checked:hover:not([disabled]):not(:active) ~ .x-toggle-indicatorWrapper { + background-color: rgba(var(--spice-rgb-button), 0.4) !important; +} + +/* queue, album, recent, playlist, page edits */ +.queue-queue-container, +.queue-playHistory-container { + margin: 40px 60px !important; +} + +.main-actionBar-ActionBar, +.x-actionBar-ActionBar { + margin: 0 40px !important; +} + +.queue-queuePage-queuePage h2 { + color: var(--spice-extratext); +} + +/* podcast edits */ +.x-hTMLDescription-HTMLDescription, +.x-expandableDescription-paragraph { + color: var(--spice-text) !important; +} + +.x-seeMore-button, +.x-expandableDescription-button { + color: var(--spice-button) !important; +} + +.main-type-minuetBold { + color: var(--spice-extratext) !important; +} + +.main-entityTitle-subtitle, +.main-entityTitle-subtitle.main-entityTitle-large, +.main-entityTitle-subtitle.main-entityTitle-bold { + color: var(--spice-subtext) !important; +} + +/* search page edits */ + +input { + background-color: unset !important; + border-bottom: solid 2px var(--spice-text) !important; + border-radius: 0 !important; + color: var(--spice-text) !important; +} + +.x-833-searchInput-searchInputSearchIcon { + color: var(--spice-text) !important; +} + +.x-833-heroCategoryCard-heroTitle, +.x-833-categoryCard-title { + color: var(--spice-main) !important; +} + +/* menu and dropdown menus including the user menu */ +.main-type-mesto, +.x-533-dropDown-dropDown { + color: var(--spice-text) !important; +} + +.main-userWidget-box { + background-color: var(--spice-card) !important; + border: unset !important; + color: var(--spice-subtext) !important; +} + +/* card edits */ + +.main-card-card div:first-child { + color: var(--spice-extratext); +} + +.main-card-card:hover, +.main-card-card[data-context-menu-open="true"] { + background-color: rgba(var(--spice-rgb-sec-card), 0.3) !important; +} + +.main-contextMenu-menu, +.main-card-card:focus-within, +.main-deletePlaylistDialog-container, +.main-aboutRecsModal-container { + background-color: var(--spice-card) !important; +} + +.main-deletePlaylistDialog-secondaryButton { + color: var(--spice-text) !important; +} + +.main-button-primary { + background-color: var(--spice-sec-card) !important; + color: var(--spice-card) !important; +} + +.main-deletePlaylistDialog-title { + color: var(--spice-subtext) !important; +} + +.main-keyboardShortcutsHelpModal-container, +.main-trackCreditsModal-container { + background-color: var(--spice-card) !important; + color: var(--spice-text) !important; +} + +.main-keyboardShortcutsHelpModal-header, +.main-trackCreditsModal-header { + color: var(--spice-subtext) !important; +} + +.main-type-canon { + color: var(--spice-extratext) !important; +} + +/* profile page edits */ +.main-cardImage-imageWrapper { + background-color: var(--spice-card) !important; +} + +/* now playing bar edits */ + +.Root__now-playing-bar { + background-color: var(--spice-sec-player) !important; + box-shadow: 0 -2px 5px 0 rgba(var(--spice-rgb-shadow), 0.5) !important; + border-radius: 15px 15px 0 0 !important; +} + +.main-nowPlayingBar-container { + background-color: var(--spice-sec-player) !important; + border-radius: 15px 15px 0 0 !important; +} + +.main-connectBar-connectBar.main-connectBar-FullscreenModeButtonEnabled.main-type-mesto { + color: var(--spice-sidebar) !important; +} + +.progress-bar { + --progress-bar-height: 5px !important; +} + +.progress-bar__bg { + background-color: rgba(var(--spice-rgb-button-disabled), 0.7) !important; +} + +.progress-bar--is-active .progress-bar__fg, +:not(.no-focus-outline) .progress-bar:focus-within .progress-bar__fg { + background-color: var(--fg-color); +} + +.main-shuffleButton-button.main-shuffleButton-on, +.main-repeatButton-button.main-repeatButton-on { + color: var(--spice-button) !important; +} + +.cover-art--with-auto-height { + border: solid var(--spice-sec-player) 5px !important; +} + +.cover-art, +.cover-art .cover-art-image { + border-radius: 10px !important; + background-color: var(--spice-sec-player) !important; +} + +.main-nowPlayingBar-extraControls { + gap: 5px; +} + +.main-addButton-button, +.main-nowPlayingBar-extraControls button { + color: rgba(var(--spice-rgb-selected-row), 0.7); +} + +/* replace icons */ +.main-navBar-mainNav a[href="/"] path { + d: path( + "M4.5 14.0L13.2 6.9Q13.4 6.8 13.5 6.8Q13.7 6.8 13.9 6.9L13.9 6.9L22.5 14.0L22.5 21.7Q22.5 22.1 22.3 22.3Q22.1 22.5 21.8 22.5L21.8 22.5L16.5 22.5Q16.2 22.5 16.0 22.2Q15.8 22.0 15.8 21.7L15.8 21.7L15.8 17.2Q15.8 17.0 15.7 16.9Q15.6 16.7 15.4 16.6Q15.2 16.5 15.0 16.5L15.0 16.5L12.0 16.5Q11.7 16.5 11.5 16.7Q11.3 16.9 11.3 17.2L11.3 17.2L11.3 21.7Q11.3 22.0 11.1 22.2Q10.9 22.5 10.5 22.5L10.5 22.5L5.3 22.5Q5.0 22.5 4.8 22.3Q4.5 22.1 4.5 21.7L4.5 21.7L4.5 14.0ZM22.9 8.6L26.9 11.7Q27.0 11.9 27.0 12.2L27.0 12.2Q27.0 12.4 26.9 12.5L26.9 12.5L25.7 14.0Q25.5 14.2 25.3 14.2L25.3 14.2Q25.1 14.2 24.9 14.1L24.9 14.1L13.9 5.0Q13.7 4.9 13.6 4.9Q13.4 4.9 13.2 5.0L13.2 5.0L2.2 14.1Q2.0 14.2 1.8 14.2L1.8 14.2Q1.5 14.2 1.4 14.0L1.4 14.0L0.2 12.5Q0.0 12.4 0.0 12.2L0.0 12.2Q0.0 11.9 0.2 11.7L0.2 11.7L12.1 2.0Q12.8 1.5 13.5 1.5Q14.3 1.5 15.0 2.0L15.0 2.0L19.2 5.5L19.2 2.0Q19.2 1.8 19.3 1.6Q19.5 1.5 19.7 1.5L19.7 1.5L22.4 1.5Q22.6 1.5 22.8 1.6Q22.9 1.8 22.9 2.0L22.9 2.0L22.9 8.6Z" + ) !important; + transform: scaleX(0.9); +} +.main-navBar-mainNav a[href="/search"] path { + d: path( + "M19.0 16.1L23.7 20.7Q24 21.1 24 21.5Q24 22.0 23.7 22.3L23.7 22.3L22.4 23.6Q22.0 24.0 21.6 24.0Q21.1 24.0 20.8 23.6L20.8 23.6L16.1 19.0Q15.8 18.6 15.8 18.2L15.8 18.2L15.8 17.4Q13.1 19.5 9.8 19.5L9.8 19.5Q5.7 19.5 2.9 16.6Q0 13.8 0 9.7Q0 5.7 2.9 2.8Q5.7-0.0 9.8-0.0Q13.8-0.0 16.6 2.8Q19.5 5.7 19.5 9.7L19.5 9.7Q19.5 13.1 17.4 15.7L17.4 15.7L18.2 15.7Q18.7 15.7 19.0 16.1L19.0 16.1ZM5.5 13.9L5.5 13.9Q7.3 15.7 9.7 15.7Q12.2 15.7 14.0 14.0Q15.8 12.2 15.8 9.7Q15.8 7.2 14.0 5.5Q12.2 3.7 9.8 3.7Q7.3 3.7 5.5 5.5Q3.8 7.2 3.8 9.7Q3.8 12.2 5.5 13.9Z" + ) !important; +} +.main-navBar-mainNav a[href="/collection"] path, +.main-yourLibraryX-header .main-yourLibraryX-collapseButtonWrapper path { + d: path( + "M23.3 4.9L23.3 4.9L23.3 6.0L0.8 6.0L0.8 4.9Q0.8 4.4 1.1 4.1Q1.5 3.7 1.9 3.7L1.9 3.7L22.2 3.7Q22.7 3.7 23.0 4.1Q23.3 4.4 23.3 4.9ZM22.5 1.1L22.5 1.1L22.5 2.2L1.5 2.2L1.5 1.1Q1.5 0.6 1.9 0.3Q2.2-0.0 2.7-0.0L2.7-0.0L21.4-0.0Q21.9-0.0 22.2 0.3Q22.5 0.6 22.5 1.1ZM11.1 15.5L11.1 15.5Q11.5 15.3 12.1 15.3Q12.6 15.3 13.0 15.6Q13.5 15.9 13.5 16.3Q13.5 16.7 13.0 17.0Q12.6 17.3 12.0 17.3Q11.5 17.3 11.1 17.0Q10.6 16.7 10.6 16.3Q10.6 15.9 11.1 15.5ZM1.5 7.5L22.5 7.5Q23.2 7.5 23.6 7.9Q24.0 8.4 24.0 9.0L24.0 9.0Q24.0 9.0 24.0 9.1L24.0 9.1L22.8 22.6Q22.8 23.2 22.3 23.6Q21.9 24.0 21.3 24.0L21.3 24.0L2.8 24.0Q2.2 24.0 1.8 23.6Q1.3 23.2 1.3 22.6L1.3 22.6L0.0 9.1Q0.0 9.0 0.0 9.0L0.0 9.0Q0.0 8.4 0.5 7.9Q0.9 7.5 1.5 7.5L1.5 7.5ZM12.0 22.1L12.0 22.1Q13.7 22.1 15.2 21.7Q16.7 21.2 17.8 20.4Q18.9 19.7 19.6 18.6Q20.3 17.5 20.4 16.3L20.4 16.3Q20.6 13.6 18.2 11.7Q15.7 9.8 12.0 9.8Q8.4 9.8 5.9 11.7Q3.5 13.6 3.7 16.3L3.7 16.3Q3.8 17.9 4.9 19.2Q6.1 20.6 8.0 21.4Q9.8 22.1 12.0 22.1Z" + ) !important; +} +.main-navBar-mainNav a[href="/lyrics-plus"] path { + d: path( + "M160 95.8L168 95.8Q171.5 95.8 173.8 98Q176 100.3 176 103.8L176 103.8L176 127.8Q176 160.8 154.3 185.6Q132.5 210.4 100.1 214.8L100.1 214.8L100.1 231.8L128 231.8Q131.5 231.8 133.8 234Q136 236.3 136 239.8L136 239.8L136 247.8Q136 251.3 133.8 253.5Q131.5 255.8 128 255.8L128 255.8L48 255.8Q44.5 255.8 42.3 253.6Q40 251.4 40 247.8L40 247.8L40 239.8Q40 236.3 42.3 234Q44.5 231.8 48 231.8L48 231.8L76.1 231.8L76.1 214.8Q43.6 210.3 21.8 184Q0 157.8 0 123.8L0 123.8L0 103.8Q0 100.3 2.3 98Q4.5 95.8 8 95.8L8 95.8L16 95.8Q19.5 95.8 21.8 98Q24 100.3 24 103.8L24 103.8L24 124.8Q24 150.3 40.5 169.8Q57 189.3 81.5 191.3L81.5 191.3Q110 194.3 131 175Q152 155.8 152 127.8L152 127.8L152 103.8Q152 100.3 154.3 98Q156.5 95.8 160 95.8L160 95.8ZM122 161.9L122 161.9Q108 175.9 88.1 175.8Q68.1 175.8 54.1 161.8Q40 147.8 40 127.8L40 127.8L40 47.8Q40 27.6 54.1 13.7Q68.1-0.3 88.1-0.3Q108.1-0.3 122.1 13.8Q136 27.8 136 47.8L136 47.8L93.5 47.8Q88 47.8 88 51.8L88 51.8L88 59.8Q88 63.9 93.5 63.8L93.5 63.8L136 63.8L136 79.8L93.5 79.8Q88 79.8 88 83.8L88 83.8L88 91.8Q88 95.9 93.5 95.8L93.5 95.8L136 95.8L136 111.8L93.5 111.8Q88 111.8 88 115.8L88 115.8L88 123.8Q88 127.9 93.5 127.8L93.5 127.8L136 127.8Q136 147.8 122 161.9Z" + ) !important; + transform: translate(35px, 0) !important; +} +.main-navBar-mainNav a[href="/marketplace"] path { + d: path( + "M0 20.2L0 20.2L0 12.0L27 12.0L27 20.2Q27 21.2 26.3 21.8Q25.7 22.5 24.8 22.5L24.8 22.5L2.3 22.5Q1.3 22.5 0.7 21.8Q0 21.2 0 20.2ZM9 17.0L9 17.0L9 18.9Q9 19.5 9.6 19.5L9.6 19.5L15.9 19.5Q16.5 19.5 16.5 18.9L16.5 18.9L16.5 17.0Q16.5 16.5 15.9 16.5L15.9 16.5L9.6 16.5Q9 16.5 9 17.0ZM3 17.0L3 17.0L3 18.9Q3 19.5 3.6 19.5L3.6 19.5L6.9 19.5Q7.5 19.5 7.5 18.9L7.5 18.9L7.5 17.0Q7.5 16.5 6.9 16.5L6.9 16.5L3.6 16.5Q3 16.5 3 17.0ZM27 3.7L27 3.7L27 6.0L0 6.0L0 3.7Q0 2.8 0.7 2.1Q1.3 1.5 2.3 1.5L2.3 1.5L24.8 1.5Q25.7 1.5 26.3 2.1Q27 2.8 27 3.7Z" + ) !important; + transform: translate(0) scale(2.8) !important; +} +.main-navBar-mainNav a[href="/new-releases"] path { + d: path( + "M134.5 246.3L134.5 246.3Q125 255.8 112 255.8Q99 255.8 89.5 246.3Q80 236.8 80 223.8L80 223.8L144 223.8Q144 236.8 134.5 246.3ZM219.5 180.8L219.5 180.8Q224 185.4 224 191.8L224 191.8Q224 198.3 219.5 203Q215 207.8 208 207.8L208 207.8L16 207.8Q9 207.8 4.5 203Q0 198.3 0 191.8Q0 185.4 4.5 180.8L4.5 180.8Q5 180.3 6 178.9L6 178.9Q13.5 171.4 17.8 165.3Q22 159.3 27 142.5Q32 125.8 32 103.8L32 103.8Q32 74.8 50.1 53.3Q68.1 31.8 96 26.4L96 26.4L96 15.8Q96 9.3 100.8 4.5Q105.5-0.3 112-0.3Q118.5-0.3 123.3 4.6Q128 9.4 128 15.8L128 15.8L128 26.4Q146.5 29.8 161 40.8Q175.5 51.8 183.8 68.3Q192 84.8 192 103.8L192 103.8Q192 125.8 197 142.5Q202 159.3 206.3 165.3Q210.5 171.4 218 178.9L218 178.9Q219 180.3 219.5 180.8ZM101 170.9L101 170.9Q105.6 175.9 112.1 175.8Q118.5 175.8 123.3 171Q128 166.3 128 159.8Q128 153.4 123.3 148.6Q118.5 143.8 112 143.8Q105.5 143.8 100.8 148.6Q96 153.4 96 159.8Q96 166.3 101 170.9ZM124.5 120.9L124.5 120.9L131 72.9Q131 72.4 131 71.8L131 71.8Q131 68.3 128.8 66Q126.5 63.8 123 63.8L123 63.8L101 63.8Q97.6 63.8 95.3 66Q93 68.3 93 71.8L93 71.8Q93 72.3 93 72.9L93 72.9L99.5 120.9Q99.5 123.8 102 125.8Q104.5 127.8 107 127.8L107 127.8L117 127.8Q118.5 127.8 120.3 126.8Q122 125.8 123.3 124.3Q124.5 122.9 124.5 120.9Z" + ) !important; + transform: translate(20px, 0); +} +.main-navBar-mainNav a[href="/reddit"] path { + d: path( + "M 89.998 45.604 c -0.201 -5.442 -4.77 -9.691 -10.229 -9.506 c -2.419 0.084 -4.719 1.075 -6.466 2.737 c -7.693 -5.24 -16.729 -8.113 -26.017 -8.314 L 51.67 9.442 l 14.461 3.041 c 0.402 3.712 3.728 6.4 7.44 5.996 c 3.712 -0.402 6.4 -3.728 5.996 -7.44 c -0.404 -3.712 -3.728 -6.4 -7.44 -5.996 c -2.134 0.218 -4.048 1.461 -5.105 3.309 L 50.461 5.043 c -1.125 -0.252 -2.251 0.453 -2.503 1.596 c 0 0.017 0 0.017 0 0.033 L 42.97 30.119 c -9.406 0.152 -18.559 3.041 -26.352 8.314 c -3.964 -3.728 -10.212 -3.544 -13.94 0.437 c -3.728 3.964 -3.544 10.212 0.437 13.94 c 0.773 0.722 1.662 1.344 2.653 1.781 c -0.068 0.991 -0.068 1.982 0 2.973 c 0 15.133 17.636 27.444 39.386 27.444 c 21.75 0 39.386 -12.295 39.386 -27.444 c 0.068 -0.991 0.068 -1.982 0 -2.973 C 87.932 52.894 90.066 49.4 89.998 45.604 z" + ) !important; +} +.main-useDropTarget-folder .x-entityImage-imageContainer path, +.main-useDropTarget-folder .main-entityHeader-imagePlaceholder path { + d: path( + "M12.8 6.0L21.8 6.0Q22.7 6.0 23.3 6.6Q24 7.3 24 8.2L24 8.2L24 18.7Q24 19.7 23.3 20.3Q22.7 21.0 21.8 21.0L21.8 21.0L2.3 21.0Q1.3 21.0 0.7 20.3Q0 19.7 0 18.7L0 18.7L0 5.2Q0 4.3 0.7 3.6Q1.3 3.0 2.3 3.0L2.3 3.0L9.8 3.0L12.8 6.0Z" + ) !important; +} +.main-rootlist-expandArrow path, +.main-yourLibraryX-listItemGroup .main-yourLibraryX-isFlattened path { + d: path( + "M13.5 2.5L13.5 2.5Q15.8 4.8 15.8 8.0Q15.8 11.2 13.5 13.5Q11.2 15.7 8 15.7Q4.8 15.7 2.5 13.5Q0.3 11.2 0.3 8.0Q0.3 4.8 2.5 2.5Q4.8 0.2 8 0.2Q11.2 0.2 13.5 2.5ZM8.5 11.6L8.5 11.6L12.8 7.3Q13 7.1 13 6.8Q13 6.5 12.8 6.2L12.8 6.2L12.3 5.7Q12 5.5 11.7 5.5Q11.4 5.5 11.2 5.7L11.2 5.7L8 8.9L4.8 5.7Q4.6 5.5 4.3 5.5Q4.0 5.5 3.8 5.7L3.8 5.7L3.3 6.2Q3 6.5 3 6.8Q3 7.1 3.3 7.3L3.3 7.3L7.5 11.6Q7.7 11.8 8 11.8Q8.3 11.8 8.5 11.6Z" + ) !important; +} +.main-topBar-button[aria-label="Go back"] path { + d: path( + "M13.5 13.5L13.5 13.5Q11.2 15.7 8 15.7Q4.8 15.7 2.5 13.5Q0.3 11.2 0.3 8.0Q0.3 4.8 2.5 2.5Q4.8 0.2 8 0.2Q11.2 0.2 13.5 2.5Q15.8 4.8 15.8 8.0Q15.8 11.2 13.5 13.5ZM4.4 8.5L4.4 8.5L8.7 12.7Q8.9 13.0 9.2 13.0Q9.5 13.0 9.8 12.7L9.8 12.7L10.3 12.2Q10.5 12.0 10.5 11.7Q10.5 11.4 10.3 11.2L10.3 11.2L7.1 8.0L10.3 4.8Q10.5 4.6 10.5 4.3Q10.5 4.0 10.3 3.7L10.3 3.7L9.8 3.2Q9.5 3.0 9.2 3.0Q8.9 3.0 8.7 3.2L8.7 3.2L4.4 7.5Q4.2 7.7 4.2 8.0Q4.2 8.3 4.4 8.5Z" + ) !important; +} +.main-topBar-button[aria-label="Go forward"] path { + d: path( + "M2.5 2.5L2.5 2.5Q4.8 0.2 8.0 0.2Q11.2 0.2 13.5 2.5Q15.8 4.8 15.8 8.0Q15.8 11.2 13.5 13.5Q11.2 15.7 8 15.7Q4.8 15.7 2.5 13.5Q0.3 11.2 0.3 8.0Q0.3 4.8 2.5 2.5ZM11.6 7.5L11.6 7.5L7.3 3.2Q7.1 3.0 6.8 3.0Q6.5 3.0 6.3 3.2L6.3 3.2L5.8 3.7Q5.5 4.0 5.5 4.3Q5.5 4.6 5.8 4.8L5.8 4.8L8.9 8.0L5.8 11.2Q5.5 11.4 5.5 11.7Q5.5 12.0 5.8 12.2L5.8 12.2L6.3 12.7Q6.5 13.0 6.8 13.0Q7.1 13.0 7.3 12.7L7.3 12.7L11.6 8.5Q11.8 8.3 11.8 8.0Q11.8 7.7 11.6 7.5Z" + ) !important; +} +.main-topBar-container button[aria-label="Friend Activity"] path { + d: path( + "M4.4 6.4L4.4 6.4Q3.8 7.0 3 7.0Q2.2 7.0 1.6 6.4Q1 5.8 1 5.0Q1 4.2 1.6 3.6Q2.2 3.0 3 3.0Q3.8 3.0 4.4 3.6Q5 4.2 5 5.0Q5 5.8 4.4 6.4ZM18.4 6.4L18.4 6.4Q17.8 7.0 17 7.0Q16.2 7.0 15.6 6.4Q15 5.8 15 5.0Q15 4.2 15.6 3.6Q16.2 3.0 17 3.0Q17.8 3.0 18.4 3.6Q19 4.2 19 5.0Q19 5.8 18.4 6.4ZM16 8.0L18 8.0Q18.8 8.0 19.4 8.6Q20 9.2 20 10.0L20 10.0L20 11.0Q20 11.4 19.7 11.7Q19.4 12.0 19 12.0L19 12.0L16.9 12.0Q16.8 11.3 16.5 10.6Q16.2 10.0 15.7 9.4Q15.2 8.9 14.6 8.6L14.6 8.6Q15.2 8.0 16 8.0L16 8.0ZM12.5 7.0L12.5 7.0Q11.4 8.0 10 8.0Q8.6 8.0 7.5 7.0Q6.5 5.9 6.5 4.5Q6.5 3.1 7.5 2.0Q8.6 1.0 10 1.0Q11.4 1.0 12.5 2.0Q13.5 3.1 13.5 4.5Q13.5 5.9 12.5 7.0ZM12.1 9.0L12.4 9.0Q13.9 9.0 15.0 10.0Q16 11.1 16 12.6L16 12.6L16 13.5Q16 14.1 15.6 14.5Q15.1 15.0 14.5 15.0L14.5 15.0L5.5 15.0Q4.9 15.0 4.4 14.6Q4 14.1 4 13.5L4 13.5L4 12.6Q4 11.1 5.0 10.0Q6.1 9.0 7.6 9.0L7.6 9.0L7.9 9.0Q8.9 9.5 10 9.5Q11.1 9.5 12.1 9.0L12.1 9.0ZM5.4 8.6L5.4 8.6Q4.5 9.1 3.8 10.0Q3.2 10.9 3.1 12.0L3.1 12.0L1 12.0Q0.6 12.0 0.3 11.7Q0 11.4 0 11.0L0 11.0L0 10.0Q0 9.2 0.6 8.6Q1.2 8.0 2 8.0L2 8.0L4 8.0Q4.8 8.0 5.4 8.6Z" + ) !important; + transform: scale(0.8); +} +.main-userWidget-box path { + d: path( + "M13.5 2.5L13.5 2.5Q15.8 4.8 15.8 8.0Q15.8 11.2 13.5 13.5Q11.2 15.7 8 15.7Q4.8 15.7 2.5 13.5Q0.3 11.2 0.3 8.0Q0.3 4.8 2.5 2.5Q4.8 0.2 8 0.2Q11.2 0.2 13.5 2.5ZM8.5 11.6L8.5 11.6L12.8 7.3Q13 7.1 13 6.8Q13 6.5 12.8 6.2L12.8 6.2L12.3 5.7Q12 5.5 11.7 5.5Q11.4 5.5 11.2 5.7L11.2 5.7L8 8.9L4.8 5.7Q4.6 5.5 4.3 5.5Q4.0 5.5 3.8 5.7L3.8 5.7L3.3 6.2Q3 6.5 3 6.8Q3 7.1 3.3 7.3L3.3 7.3L7.5 11.6Q7.7 11.8 8 11.8Q8.3 11.8 8.5 11.6Z" + ) !important; +} +.main-userWidget-box[data-context-menu-open="true"] path { + d: path( + "M2.5 13.5L2.5 13.5Q0.3 11.2 0.3 8.0Q0.3 4.8 2.5 2.5Q4.8 0.2 8 0.2Q11.2 0.2 13.5 2.5Q15.8 4.8 15.8 8.0Q15.8 11.2 13.5 13.5Q11.2 15.7 8.0 15.7Q4.8 15.7 2.5 13.5ZM7.5 4.4L7.5 4.4L3.3 8.7Q3 8.9 3 9.2Q3 9.5 3.3 9.7L3.3 9.7L3.8 10.2Q4 10.5 4.3 10.5Q4.6 10.5 4.8 10.2L4.8 10.2L8 7.1L11.2 10.2Q11.4 10.5 11.7 10.5Q12.0 10.5 12.3 10.2L12.3 10.2L12.8 9.7Q13 9.5 13 9.2Q13 8.9 12.8 8.7L12.8 8.7L8.5 4.4Q8.3 4.2 8 4.2Q7.7 4.2 7.5 4.4Z" + ) !important; +} +.player-controls__left, +.player-controls__right { + height: 30px; + align-self: flex-end; +} +.main-shuffleButton-button path:nth-child(1) { + d: path( + "M13.3 8.7L15.8 11.2Q16 11.4 16 11.7Q16 12.1 15.8 12.3L15.8 12.3L13.3 14.8Q12.9 15.1 12.5 14.9Q12 14.7 12 14.2L12 14.2L12 13.0L10.2 13.0Q10 13.0 9.9 12.9L9.9 12.9L7.7 10.5L9.3 8.7L11 10.5L12 10.5L12 9.2Q12 8.7 12.5 8.5Q12.9 8.4 13.3 8.7L13.3 8.7ZM3 5.5L0.4 5.5Q0 5.5 0 5.1L0 5.1L0 3.4Q0 3.0 0.4 3.0L0.4 3.0L3.8 3.0Q4 3.0 4.1 3.1L4.1 3.1L6.3 5.5L4.7 7.3L3 5.5ZM12 6.7L12 5.5L11 5.5L4.1 12.9Q4 13.0 3.8 13.0L3.8 13.0L0.4 13.0Q0 13.0 0 12.6L0 12.6L0 10.9Q0 10.5 0.4 10.5L0.4 10.5L3 10.5L9.9 3.1Q10 3.0 10.2 3.0L10.2 3.0L12 3.0L12 1.7Q12 1.2 12.5 1.0Q12.9 0.9 13.3 1.2L13.3 1.2L15.8 3.7Q16 3.9 16 4.2Q16 4.6 15.8 4.8L15.8 4.8L13.3 7.3Q12.9 7.6 12.5 7.4Q12 7.2 12 6.7L12 6.7Z" + ) !important; +} +.main-shuffleButton-button path:nth-child(2) { + display: none; +} +.main-skipBackButton-button path { + d: path( + "M7 7.5L7 7.5L11.3 3.2Q11.5 3.0 11.8 3.0Q12.1 3.0 12.3 3.2L12.3 3.2L13 3.9Q13.2 4.1 13.2 4.5Q13.2 4.8 13 5.0L13 5.0L10 8.0L13 11.0Q13.2 11.1 13.2 11.3Q13.3 11.5 13.2 11.7Q13.2 11.9 13 12.1L13 12.1L12.3 12.8Q12.1 13.0 11.8 13.0Q11.5 13.0 11.3 12.8L11.3 12.8L7 8.5Q6.8 8.3 6.8 8.0Q6.8 7.7 7 7.5ZM5.3 12.8L1 8.5Q0.8 8.3 0.8 8.0Q0.8 7.7 1 7.5L1 7.5L5.3 3.2Q5.5 3.0 5.8 3.0Q6.1 3.0 6.3 3.2L6.3 3.2L7 3.9Q7.2 4.1 7.2 4.5Q7.2 4.8 7 5.0L7 5.0L4 8.0L7 11.0Q7.2 11.2 7.2 11.5Q7.2 11.8 7 12.1L7 12.1L6.3 12.8Q6.1 13.0 5.8 13.0Q5.5 13.0 5.3 12.8L5.3 12.8Z" + ) !important; +} +.main-skipForwardButton-button path { + d: path( + "M7 8.5L7 8.5L2.8 12.8Q2.5 13.0 2.2 13.0Q1.9 13.0 1.7 12.8L1.7 12.8L1 12.1Q0.8 11.8 0.8 11.5Q0.8 11.2 1 11.0L1 11.0L4 8.0L1 5.0Q0.8 4.8 0.8 4.5Q0.8 4.1 1 3.9L1 3.9L1.7 3.2Q1.9 3.0 2.2 3.0Q2.5 3.0 2.8 3.2L2.8 3.2L7 7.5Q7.2 7.7 7.2 8.0Q7.2 8.3 7 8.5ZM8.8 3.2L13 7.5Q13.2 7.7 13.2 8.0Q13.2 8.3 13 8.5L13 8.5L8.8 12.8Q8.5 13.0 8.2 13.0Q7.9 13.0 7.7 12.8L7.7 12.8L7 12.1Q6.8 11.8 6.8 11.5Q6.8 11.2 7 11.0L7 11.0L10 8.0L7 5.0Q6.8 4.8 6.8 4.5Q6.8 4.1 7 3.9L7 3.9L7.7 3.2Q7.8 3.1 7.9 3.1Q8.1 3.0 8.2 3.0Q8.4 3.0 8.5 3.1Q8.7 3.1 8.8 3.2L8.8 3.2Z" + ) !important; +} +.main-repeatButton-button path { + d: path( + "M16 8.0L16 8.0Q16 10.0 14.5 11.5Q13.1 13.0 11 13.0L11 13.0L5.3 13.0L6.4 14.0Q6.6 14.2 6.6 14.5Q6.6 14.9 6.4 15.1L6.4 15.1L6.1 15.4Q5.8 15.6 5.5 15.6Q5.2 15.6 5 15.4L5 15.4L2.1 12.5Q1.9 12.3 1.9 12.0Q1.9 11.7 2.1 11.5L2.1 11.5L5 8.6Q5.2 8.3 5.5 8.3Q5.8 8.3 6.1 8.6L6.1 8.6L6.4 8.9Q6.6 9.1 6.6 9.4Q6.6 9.8 6.4 10.0L6.4 10.0L5.3 11.0L11 11.0Q12.3 11.0 13.1 10.1Q14 9.2 14 8.0L14 8.0Q14 7.3 13.8 6.8L13.8 6.8Q13.5 6.3 13.9 5.9L13.9 5.9L14.3 5.6Q14.5 5.3 14.9 5.3Q15.3 5.4 15.5 5.7L15.5 5.7Q16 6.8 16 8.0ZM2.3 9.2L2.3 9.2Q2.5 9.7 2.1 10.1L2.1 10.1L1.7 10.4Q1.5 10.7 1.1 10.6Q0.7 10.6 0.5 10.2L0.5 10.2Q0 9.2 0 8.0L0 8.0Q0 5.9 1.5 4.5Q2.9 3.0 5 3.0L5 3.0L10.7 3.0L9.6 2.0Q9.4 1.8 9.4 1.4Q9.4 1.1 9.6 0.9L9.6 0.9L9.9 0.6Q10.2 0.3 10.5 0.3Q10.8 0.3 11 0.6L11 0.6L13.9 3.5Q14.1 3.7 14.1 4.0Q14.1 4.3 13.9 4.5L13.9 4.5L11 7.4Q10.8 7.6 10.5 7.6Q10.2 7.6 9.9 7.4L9.9 7.4L9.6 7.1Q9.4 6.9 9.4 6.5Q9.4 6.2 9.6 6.0L9.6 6.0L10.7 5.0L5 5.0Q3.8 5.0 2.9 5.9Q2 6.7 2 8.0L2 8.0Q2 8.6 2.3 9.2Z" + ) !important; +} +.main-repeatButton-button[aria-checked="mixed"] path { + d: path( + "M16 8.0L16 8.0Q16 10.0 14.5 11.5Q13.1 13.0 11 13.0L11 13.0L5.3 13.0L6.4 14.0Q6.6 14.2 6.6 14.5Q6.6 14.9 6.4 15.1L6.4 15.1L6.1 15.4Q5.8 15.6 5.5 15.6Q5.2 15.6 5 15.4L5 15.4L2.1 12.5Q1.9 12.3 1.9 12.0Q1.9 11.7 2.1 11.5L2.1 11.5L4.6 9.0Q4.8 8.7 5.2 8.7Q5.5 8.7 5.7 9.0L5.7 9.0L6.0 9.3Q6.3 9.5 6.3 9.8Q6.3 10.1 6 10.4L6 10.4L5.3 11.0L11 11.0Q12.3 11.0 13.1 10.1Q14 9.2 14 8.0L14 8.0Q14 7.3 13.8 6.8L13.8 6.8Q13.5 6.3 13.9 5.9L13.9 5.9L14.3 5.6Q14.5 5.3 14.9 5.3Q15.3 5.4 15.5 5.7L15.5 5.7Q16 6.8 16 8.0ZM2.3 9.2L2.3 9.2Q2.5 9.7 2.1 10.1L2.1 10.1L1.7 10.4Q1.5 10.7 1.1 10.6Q0.7 10.6 0.5 10.2L0.5 10.2Q0 9.2 0 8.0L0 8.0Q0 5.9 1.5 4.5Q2.9 3.0 5 3.0L5 3.0L10.7 3.0L9.6 2.0Q9.4 1.8 9.4 1.4Q9.4 1.1 9.6 0.9L9.6 0.9L9.9 0.6Q10.2 0.3 10.5 0.3Q10.8 0.3 11 0.6L11 0.6L13.9 3.5Q14.1 3.7 14.1 4.0Q14.1 4.3 13.9 4.5L13.9 4.5L11.4 7.0Q11.2 7.2 10.8 7.2Q10.5 7.2 10.3 7.0L10.3 7.0L10.0 6.7Q9.8 6.5 9.8 6.1Q9.8 5.8 10 5.6L10 5.6L10.7 5.0L5 5.0Q3.8 5.0 2.9 5.9Q2 6.7 2 8.0L2 8.0Q2 8.6 2.3 9.2ZM7.1 9.6L7.1 9.4Q7.1 9.0 7.5 9.0L7.5 9.0L7.9 9.0L7.9 7.7L8.0 7.4L7.9 7.4Q7.9 7.5 7.8 7.5L7.8 7.5Q7.6 7.8 7.4 7.5L7.4 7.5L7.2 7.3Q6.9 7.1 7.2 6.8L7.2 6.8L7.9 6.2Q8.1 6.0 8.3 6.0L8.3 6.0L8.7 6.0Q9.1 6.0 9.1 6.4L9.1 6.4L9.1 9.0L9.6 9.0Q9.9 9.0 9.9 9.4L9.9 9.4L9.9 9.6Q9.9 10.0 9.6 10.0L9.6 10.0L7.5 10.0Q7.1 10.0 7.1 9.6L7.1 9.6Z" + ) !important; +} +.main-nowPlayingBar-lyricsButton path { + d: path( + "M6.2 1.3L6.2 1.3Q7.3 0.7 8.5 0.7Q9.7 0.7 10.8 1.3Q11.8 1.9 12.4 2.9Q13 3.9 13 5.2L13 5.2Q13 6.0 12.7 6.8Q12.4 7.6 11.8 8.2Q11.3 8.7 10.6 9.1Q9.8 9.5 9.0 9.6L9.0 9.6L4.8 14.6Q4.4 15.0 3.8 15.0L3.8 15.0Q3.4 15.0 3.1 14.8L3.1 14.8L2.5 14.5Q2.1 14.2 1.9 13.8Q1.8 13.3 2.0 12.8L2.0 12.8L4.5 7.2Q4 6.2 4 5.2L4 5.2Q4 3.9 4.6 2.9Q5.2 1.9 6.2 1.3ZM4.0 13.9L4.0 13.9L7.7 9.6Q6.2 9.3 5.2 8.1L5.2 8.1L2.9 13.2Q2.9 13.3 2.9 13.4Q2.9 13.6 3.0 13.6L3.0 13.6L3.6 14.0Q3.7 14.0 3.8 14.0Q4.0 14.0 4.0 13.9ZM6.0 7.6L6.0 7.6Q7.1 8.7 8.5 8.7Q9.9 8.7 11.0 7.6Q12 6.6 12 5.2Q12 3.7 11.0 2.7Q9.9 1.7 8.5 1.7Q7.1 1.7 6.0 2.7Q5 3.7 5 5.2Q5 6.6 6.0 7.6Z" + ) !important; +} +.main-nowPlayingBar-extraControls button[aria-label="Queue"] path { + d: path( + "M8.5 8.0L0.5 8.0Q0.3 8.0 0.1 7.8Q0 7.7 0 7.5L0 7.5L0 6.5Q0 6.3 0.1 6.1Q0.3 6.0 0.5 6.0L0.5 6.0L8.5 6.0Q8.7 6.0 8.9 6.1Q9 6.3 9 6.5L9 6.5L9 7.5Q9 7.7 8.9 7.8Q8.7 8.0 8.5 8.0L8.5 8.0ZM8.5 4.0L0.5 4.0Q0.3 4.0 0.1 3.8Q0 3.7 0 3.5L0 3.5L0 2.5Q0 2.3 0.1 2.1Q0.3 2.0 0.5 2.0L0.5 2.0L8.5 2.0Q8.7 2.0 8.9 2.1Q9 2.3 9 2.5L9 2.5L9 3.5Q9 3.7 8.9 3.8Q8.7 4.0 8.5 4.0L8.5 4.0ZM0.5 10.0L4.5 10.0Q4.7 10.0 4.9 10.1Q5 10.3 5 10.5L5 10.5L5 11.5Q5 11.7 4.9 11.8Q4.7 12.0 4.5 12.0L4.5 12.0L0.5 12.0Q0.3 12.0 0.1 11.8Q0 11.7 0 11.5L0 11.5L0 10.5Q0 10.3 0.1 10.1Q0.3 10.0 0.5 10.0L0.5 10.0ZM11.7 0.9L14.7 0.0Q14.8-0.0 15-0.0L15-0.0Q15.4-0.0 15.7 0.3Q16 0.6 16 1.0L16 1.0L16 3.0Q16 3.3 15.8 3.6Q15.6 3.9 15.3 4.0L15.3 4.0L13 4.6L13 13.5Q13 14.5 12.0 15.3Q10.9 16.0 9.5 16.0Q8.1 16.0 7.0 15.3Q6 14.5 6 13.5Q6 12.5 7.0 11.7Q8.1 11.0 9.5 11.0L9.5 11.0Q10.3 11.0 11 11.2L11 11.2L11 1.9Q11 1.6 11.2 1.3Q11.4 1.0 11.7 0.9L11.7 0.9Z" + ) !important; +} +.main-devicePicker-controlButton path { + d: path( + "M4 13.0L9 13.0L9 13.5Q9 14.3 9.5 15.0L9.5 15.0L4 15.0Q3.6 15.0 3.3 14.7Q3 14.4 3 14.0Q3 13.6 3.3 13.3Q3.6 13.0 4 13.0L4 13.0ZM0 10.5L0 2.5Q0 1.9 0.4 1.4Q0.9 1.0 1.5 1.0L1.5 1.0L9.5 1.0Q9 1.6 9 2.5L9 2.5L9 3.0L2 3.0L2 10.0L9 10.0L9 12.0L1.5 12.0Q0.9 12.0 0.4 11.6Q0 11.1 0 10.5L0 10.5ZM11.5 1.0L18.5 1.0Q19.1 1.0 19.6 1.4Q20 1.9 20 2.5L20 2.5L20 13.5Q20 14.1 19.6 14.5Q19.1 15.0 18.5 15.0L18.5 15.0L11.5 15.0Q10.9 15.0 10.4 14.6Q10 14.1 10 13.5L10 13.5L10 2.5Q10 1.9 10.4 1.4Q10.9 1.0 11.5 1.0L11.5 1.0ZM15.7 3.3L15.7 3.3Q15.4 3.0 15.0 3.0Q14.6 3.0 14.3 3.3Q14 3.6 14 4.0Q14 4.4 14.3 4.7Q14.6 5.0 15 5.0Q15.4 5.0 15.7 4.7Q16 4.4 16 4.0Q16 3.6 15.7 3.3ZM12.9 12.1L12.9 12.1Q13.8 13.0 15.0 13.0Q16.3 13.0 17.1 12.1Q18 11.2 18 10.0Q18 8.7 17.1 7.9Q16.3 7.0 15.0 7.0Q13.8 7.0 12.9 7.9Q12 8.7 12 10.0Q12 11.2 12.9 12.1ZM13.6 8.6L13.6 8.6Q14.2 8.0 15 8.0Q15.8 8.0 16.4 8.6Q17 9.2 17 10.0Q17 10.8 16.4 11.4Q15.8 12.0 15 12.0Q14.2 12.0 13.6 11.4Q13 10.8 13 10.0Q13 9.2 13.6 8.6Z" + ) !important; + transform: scaleX(0.8); +} +.main-nowPlayingBar-extraControls svg[aria-label="Volume off"] path { + d: path( + "M3.9 5.0L6.7 2.2Q7.1 1.9 7.5 2.0Q8 2.2 8 2.7L8 2.7L8 13.2Q8 13.7 7.5 13.9Q7.1 14.1 6.7 13.8L6.7 13.8L3.9 11.0L0.8 11.0Q0.4 11.0 0.2 10.8Q0 10.6 0 10.2L0 10.2L0 5.7Q0 5.4 0.2 5.2Q0.4 5.0 0.8 5.0L0.8 5.0L3.9 5.0ZM15.8 6.6L14.4 8.0L15.8 9.4Q16.2 9.8 15.8 10.1L15.8 10.1L15.1 10.8Q14.8 11.2 14.4 10.8L14.4 10.8L13 9.4L11.6 10.8Q11.2 11.2 10.9 10.8L10.9 10.8L10.2 10.1Q9.8 9.8 10.2 9.4L10.2 9.4L11.6 8.0L10.2 6.6Q9.8 6.2 10.2 5.9L10.2 5.9L10.9 5.1Q11.2 4.8 11.6 5.1L11.6 5.1L13 6.6L14.4 5.1Q14.8 4.8 15.1 5.1L15.1 5.1L15.8 5.9Q16.2 6.2 15.8 6.6L15.8 6.6Z" + ) !important; +} +.main-nowPlayingBar-extraControls svg[aria-label="Volume low"] path { + d: path( + "M3.9 5.0L6.7 2.2Q7.1 1.9 7.5 2.1Q8 2.3 8 2.8L8 2.8L8 13.3Q8 13.8 7.5 14.0Q7.1 14.1 6.7 13.8L6.7 13.8L3.9 11.0L0.8 11.0Q0.4 11.0 0.2 10.8Q0 10.6 0 10.3L0 10.3L0 5.8Q0 5.5 0.2 5.2Q0.4 5.0 0.8 5.0L0.8 5.0L3.9 5.0ZM10.6 5.6L10.6 5.6Q11.2 6.0 11.6 6.6Q12 7.3 12 8.0Q12 8.8 11.6 9.4Q11.2 10.1 10.6 10.4L10.6 10.4Q10.3 10.6 10.0 10.5Q9.7 10.4 9.5 10.1Q9.4 9.9 9.5 9.6Q9.6 9.3 9.8 9.1L9.8 9.1Q10.5 8.7 10.5 8.0Q10.5 7.3 9.8 6.9L9.8 6.9Q9.6 6.8 9.5 6.5Q9.4 6.2 9.5 5.9Q9.7 5.6 10.0 5.6Q10.3 5.5 10.6 5.6Z" + ) !important; +} +.main-nowPlayingBar-extraControls svg[aria-label="Volume medium"] path { + d: path( + "M3.9 5.0L6.7 2.2Q7.1 1.9 7.5 2.0Q8 2.2 8 2.7L8 2.7L8 13.2Q8 13.7 7.5 13.9Q7.1 14.1 6.7 13.8L6.7 13.8L3.9 11.0L0.8 11.0Q0.4 11.0 0.2 10.8Q0 10.6 0 10.2L0 10.2L0 5.7Q0 5.4 0.2 5.2Q0.4 5.0 0.8 5.0L0.8 5.0L3.9 5.0ZM14.3 5.2L14.3 5.2Q15 6.5 15 8.0Q15 9.5 14.3 10.8Q13.6 12.1 12.3 12.9L12.3 12.9Q12.0 13.0 11.7 13.0Q11.4 12.9 11.3 12.6L11.3 12.6Q11.1 12.4 11.2 12.1Q11.3 11.8 11.5 11.6L11.5 11.6Q12.1 11.2 12.6 10.6Q13.0 10.1 13.3 9.4Q13.5 8.7 13.5 8.0Q13.5 7.3 13.3 6.6Q13.0 5.9 12.6 5.3Q12.1 4.8 11.5 4.4L11.5 4.4Q11.3 4.2 11.2 3.9Q11.1 3.6 11.3 3.4Q11.4 3.1 11.8 3.0Q12.1 2.9 12.3 3.1L12.3 3.1Q13.6 3.9 14.3 5.2ZM10.6 5.6L10.6 5.6Q11.2 6.0 11.6 6.6Q12 7.2 12 8.0Q12 8.7 11.6 9.4Q11.2 10.0 10.6 10.4L10.6 10.4Q10.3 10.5 10.0 10.5Q9.7 10.4 9.5 10.1Q9.4 9.8 9.5 9.5Q9.6 9.2 9.8 9.1L9.8 9.1Q10.5 8.7 10.5 8.0Q10.5 7.3 9.8 6.9L9.8 6.9Q9.6 6.7 9.5 6.4Q9.4 6.1 9.5 5.9Q9.7 5.6 10.0 5.5Q10.3 5.4 10.6 5.6Z" + ) !important; +} +.main-nowPlayingBar-extraControls svg[aria-label="Volume high"] path { + d: path( + "M3.9 5.0L6.7 2.2Q7.1 1.9 7.5 2.0Q8 2.2 8 2.7L8 2.7L8 13.2Q8 13.7 7.5 13.9Q7.1 14.1 6.7 13.8L6.7 13.8L3.9 11.0L0.8 11.0Q0.4 11.0 0.2 10.8Q0 10.6 0 10.2L0 10.2L0 5.7Q0 5.4 0.2 5.2Q0.4 5.0 0.8 5.0L0.8 5.0L3.9 5.0ZM14.3 5.2L14.3 5.2Q15 6.5 15 8.0Q15 9.5 14.3 10.8Q13.6 12.1 12.3 12.9L12.3 12.9Q12.0 13.0 11.7 13.0Q11.4 12.9 11.3 12.6L11.3 12.6Q11.1 12.4 11.2 12.1Q11.3 11.8 11.5 11.6L11.5 11.6Q12.1 11.2 12.6 10.6Q13.0 10.1 13.3 9.4Q13.5 8.7 13.5 8.0Q13.5 7.3 13.3 6.6Q13.0 5.9 12.6 5.3Q12.1 4.8 11.5 4.4L11.5 4.4Q11.3 4.2 11.2 3.9Q11.1 3.6 11.3 3.4Q11.4 3.1 11.8 3.0Q12.1 2.9 12.3 3.1L12.3 3.1Q13.6 3.9 14.3 5.2ZM10.6 5.6L10.6 5.6Q11.2 6.0 11.6 6.6Q12 7.2 12 8.0Q12 8.7 11.6 9.4Q11.2 10.0 10.6 10.4L10.6 10.4Q10.3 10.5 10.0 10.5Q9.7 10.4 9.5 10.1Q9.4 9.8 9.5 9.5Q9.6 9.2 9.8 9.1L9.8 9.1Q10.5 8.7 10.5 8.0Q10.5 7.3 9.8 6.9L9.8 6.9Q9.6 6.7 9.5 6.4Q9.4 6.1 9.5 5.9Q9.7 5.6 10.0 5.5Q10.3 5.4 10.6 5.6Z" + ) !important; +} +.main-nowPlayingBar-extraControls button[aria-label="Full screen"] path { + d: path( + "M15.5 0.7L15.5 0.7Q15.5 0.7 15.5 0.7Q15.5 0.8 15.5 0.8L15.5 0.8Q15.5 0.8 15.5 0.9L15.5 0.9L15.5 3.9Q15.5 4.1 15.4 4.2Q15.2 4.4 15 4.4Q14.8 4.4 14.6 4.2Q14.5 4.1 14.5 3.9L14.5 3.9L14.5 2.1L11.9 4.7Q11.7 4.9 11.5 4.9Q11.3 4.9 11.1 4.7L11.1 4.7Q11 4.6 11 4.4Q11 4.2 11.1 4.0L11.1 4.0L13.8 1.4L12 1.4Q11.8 1.4 11.6 1.2Q11.5 1.1 11.5 0.9Q11.5 0.7 11.6 0.5Q11.8 0.4 12 0.4L12 0.4L15 0.4Q15.1 0.4 15.1 0.4L15.1 0.4Q15.1 0.4 15.1 0.4Q15.1 0.4 15.1 0.4L15.1 0.4Q15.2 0.4 15.2 0.4L15.2 0.4L15.2 0.4Q15.2 0.4 15.3 0.4Q15.3 0.5 15.3 0.5L15.3 0.5Q15.4 0.5 15.4 0.6L15.4 0.6Q15.4 0.6 15.4 0.6Q15.4 0.6 15.4 0.6L15.4 0.6Q15.5 0.7 15.5 0.7L15.5 0.7Q15.5 0.7 15.5 0.7ZM1.5 13.7L4.1 11.0Q4.3 10.9 4.5 10.9Q4.7 10.9 4.9 11.0L4.9 11.0Q5 11.2 5 11.4Q5 11.6 4.9 11.7L4.9 11.7L2.2 14.4L4 14.4Q4.2 14.4 4.4 14.5Q4.5 14.7 4.5 14.9Q4.5 15.1 4.4 15.2Q4.2 15.4 4 15.4L4 15.4L1 15.4Q0.9 15.4 0.9 15.4L0.9 15.4Q0.9 15.4 0.9 15.3Q0.9 15.3 0.9 15.3L0.9 15.3Q0.8 15.3 0.8 15.3L0.8 15.3L0.8 15.3Q0.8 15.3 0.7 15.3Q0.7 15.3 0.7 15.3L0.7 15.3Q0.6 15.2 0.6 15.1L0.6 15.1Q0.6 15.1 0.6 15.1Q0.6 15.1 0.6 15.1L0.6 15.1L0.5 15.1Q0.5 15.0 0.5 15.0L0.5 15.0Q0.5 15 0.5 15.0Q0.5 15.0 0.5 15.0L0.5 15.0Q0.5 14.9 0.5 14.9L0.5 14.9L0.5 11.9Q0.5 11.7 0.6 11.5Q0.8 11.4 1 11.4Q1.2 11.4 1.4 11.5Q1.5 11.7 1.5 11.9L1.5 11.9L1.5 13.7Z" + ) !important; +} + +/* ylx */ +.Root { + --panel-gap: 0 !important; + overflow: hidden; +} +.spotify__container--is-desktop .Root__top-container { + padding-top: 32px !important; +} +.main-nowPlayingBar-nowPlayingBar { + height: 90px; + padding: 0 16px !important; +} +[dir="ltr"] .main-coverSlotCollapsed-navAltContainer { + transform: none; +} +.main-yourLibraryX-navItem:has(.main-yourLibraryX-navLinkActive) { + padding: 0; +} +.main-yourLibraryX-navLinkActive { + color: var(--spice-sidebar) !important; + background-color: var(--spice-sec-card); + border-radius: 10px; + padding: 24px 12px; +} +.main-yourLibraryX-navLinkActive .home-active-icon, +.main-yourLibraryX-navLinkActive .search-active-icon { + color: var(--spice-sidebar) !important; +} +.link-subtle { + transition: none; +} +.spotify__container--is-desktop .Root__top-container { + padding-top: calc(24px + var(--panel-gap)-3); + background-color: var(--spice-main); +} +.main-yourLibraryX-navItems { + background-color: var(--spice-sidebar); +} +.main-yourLibraryX-libraryRootlist { + background-color: var(--spice-sidebar); +} +.main-yourLibraryX-header { + background-color: var(--spice-sidebar); +} +.main-yourLibraryX-filterArea { + background-color: var(--spice-sidebar); +} +.LayoutResizer__inline-end { + inset-inline-end: 8px; +} +.LayoutResizer__inline-start { + inset-inline-start: 8px; +} +.LayoutResizer__resize-bar { + width: 8px; +} \ No newline at end of file diff --git a/dot-config/spicetify/Themes/README.md b/dot-config/spicetify/Themes/README.md new file mode 100644 index 0000000..5b78f21 --- /dev/null +++ b/dot-config/spicetify/Themes/README.md @@ -0,0 +1,76 @@ +# spicetify community themes + +This is a collection of themes for [spicetify](https://github.com/spicetify/spicetify-cli), a command-line tool to customize Spotify. + +You can add your own theme simply by opening a Pull Request (more info in [CONTRIBUTING.md](./CONTRIBUTING.md)). + +### **You can find a preview of all the themes in [THEMES.md](./THEMES.md).** + +## Notes: + +* **These themes require that you have the latest version of Spotify and Spicetify.** +* **To install Dribbblish and Turntable themes, follow the instructions in their READMEs**. +* **Spotify ad-blocked version is not supported.** + +## Installation and usage + +(If you use Arch Linux you can find this project on the [AUR](https://aur.archlinux.org/packages/spicetify-themes-git/)) + +1. Clone this repository. Make sure [git](https://git-scm.com/) is installed and run: + ```bash + git clone --depth=1 https://github.com/spicetify/spicetify-themes.git + ``` + +2. Copy the files into the [Spicetify Themes folder](https://spicetify.app/docs/development/themes). Run: + + **Linux** + + ```bash + cd spicetify-themes + cp -r * ~/.config/spicetify/Themes + ``` + + **MacOS** + + ```bash + cd spicetify-themes + cp -r * ~/.config/spicetify/Themes + ``` + + **Windows** + + ```powershell + cd spicetify-themes + cp * "$(spicetify -c | Split-Path)\Themes\" -Recurse + ``` + +3. Choose which theme to apply just by running: + ```bash + spicetify config current_theme THEME_NAME + ``` + Some themes have 2 or more different color schemes. After selecting the theme you can switch between them with: + ```bash + spicetify config color_scheme SCHEME_NAME + ``` + +### Extra + +The `_Extra` folder contains additional resources for tweaking the look of +Spotify. More info in its [README](./\_Extra/README.md). + +## Contributions + +We've set up a separate document for our [contribution guidelines](./CONTRIBUTING.md). + +## Troubleshooting + +Do not open issues for general support questions as we want to keep GitHub issues for bug reports and feature requests. If you find problems when using or installing these themes, or you need help in modifying a theme then ask for suggestions on the [subreddit](https://www.reddit.com/r/spicetify/) or on the [Discord Server](https://discord.com/invite/VnevqPp2Rr). + +Use GitHub issues ONLY for bugs and requesting new features. + +If you are unsure about which channel to use, go for Reddit or Discord. + +## Useful resources + +* [Spicetify theme without free version UI elements (e.g. "Upgrade" button)](https://github.com/Daksh777/SpotifyNoPremium) +* [DribbblishDynamic theme for v2](https://github.com/JulienMaille/dribbblish-dynamic-theme) diff --git a/dot-config/spicetify/Themes/SharkBlue/README.md b/dot-config/spicetify/Themes/SharkBlue/README.md new file mode 100644 index 0000000..496e18a --- /dev/null +++ b/dot-config/spicetify/Themes/SharkBlue/README.md @@ -0,0 +1,8 @@ +# SharkBlue + +## Screenshots +![SharkBlue](./screenshot.png) + +## More +Author: https://github.com/MrBiscuit921 +Inspiration: BurntSienna, https://github.com/pjaspinski \ No newline at end of file diff --git a/dot-config/spicetify/Themes/SharkBlue/color.ini b/dot-config/spicetify/Themes/SharkBlue/color.ini new file mode 100644 index 0000000..b4288a0 --- /dev/null +++ b/dot-config/spicetify/Themes/SharkBlue/color.ini @@ -0,0 +1,6 @@ +[Base] +button = 0573ff +sidebar = 242629 +player = 242629 +main = 303336 +button-active = 0573ff \ No newline at end of file diff --git a/dot-config/spicetify/Themes/SharkBlue/screenshot.png b/dot-config/spicetify/Themes/SharkBlue/screenshot.png new file mode 100644 index 0000000..c9b2034 Binary files /dev/null and b/dot-config/spicetify/Themes/SharkBlue/screenshot.png differ diff --git a/dot-config/spicetify/Themes/SharkBlue/user.css b/dot-config/spicetify/Themes/SharkBlue/user.css new file mode 100644 index 0000000..bfbe5c5 --- /dev/null +++ b/dot-config/spicetify/Themes/SharkBlue/user.css @@ -0,0 +1,342 @@ +/* Round Now Playing Bar */ +:root { + --border-radius-1: 8px; + /* Play Bar */ + --margin-bottom-now-playing-bar: 0.5rem; + --now-playing-bar-height: 5.625rem; + --padding-now-playing-bar: 0.25rem; + --border-radius-now-playing-bar: 0.5rem; +} +.Root__now-playing-bar, +.Root__now-playing-bar footer { + border-radius: var(--border-radius-1) !important; +} +#main::after { + content: ""; /* Empty content */ + position: fixed; /* Fix element to viewport */ + top: 0; + right: 0; + z-index: 999; /* Position above all other content */ + -webkit-backdrop-filter: brightness( + 2.12 + ); /* Apply brightness filter to background */ + backdrop-filter: brightness(2.12); /* Cross-browser brightness filter */ + /* Page zoom control */ + /* Adjust width and height based on zoom level */ + width: 135px; + height: 40px; +} + +/* Page titles */ +h1 { + font-weight: 700 !important; +} + +/* Song name in player */ +.main-nowPlayingWidget-nowPlaying .main-trackInfo-name { + overflow: unset; + font-size: 20px !important; +} + +/* Artist name in player */ +.main-nowPlayingWidget-nowPlaying .main-trackInfo-artists { + overflow: unset; + font-size: 15px; +} + +.main-type-finale { + line-height: 17px; +} + +/* Icons */ +.main-trackList-rowPlayPauseIcon { + transform: scale(1.3); +} + +.x-downloadButton-button svg { + height: 32px; + width: 32px; +} + +/* Progress and remaining time */ +.main-playbackBarRemainingTime-container, +.playback-bar__progress-time-elapsed, +.playback-bar__progress-time { + font-size: 15px; + margin-left: 5px; + margin-right: 5px; +} + +/* Player play button */ +.main-playPauseButton-button { + background-color: unset; + color: var(--spice-subtext); +} + +.main-playPauseButton-button svg { + height: 28px; + width: 28px; +} + +/* Progress bar */ +.progress-bar { + --fg-color: var(--spice-button); +} + +.progress-bar__bg, +.progress-bar__fg, +.progress-bar__fg_wrapper { + height: 5px; +} + +.progress-bar-wrapper { + margin-left: 5px; + margin-right: 5px; +} + +/* Extra controls */ +.control-button::before { + font-size: 20px; +} + +.ExtraControls svg { + height: 20px; + width: 20px; +} + +/* Removing gradients */ +.main-entityHeader-backgroundColor, +.main-actionBarBackground-background { + background-color: unset !important; + background-image: none; +} + +/* Cover shadow */ +.main-entityHeader-shadow { + -webkit-box-shadow: 0 4px 20px rgba(var(--spice-rgb-shadow), 0.5); + box-shadow: 0 4px 20px rgba(var(--spice-rgb-shadow), 0.5); +} + +/* Top bar */ +.main-topBar-background { + background-color: #3a3d42 !important; +} + +/* Playing icon */ +.main-trackList-playingIcon { + filter: saturate(0%); +} + +/* Playlist like button */ +.main-actionBar-ActionBarRow .main-addButton-button .Svg-ulyrgf-0 { + height: unset; + width: unset; +} + +/* Order button */ +.x-sortBox-sortDropdown { + margin-top: 3px; +} + +/* Sidebar playlists menu */ +.main-rootlist-rootlistDividerGradient { + background: unset; +} + +.main-rootlist-rootlistDivider { + background-color: var(--spice-button); +} + +/* Search box */ +.x-searchInput-searchInputInput { + font-size: 18px; +} + +/* Aritsts names */ +.main-type-mesto { + font-size: 16px; + line-height: 20px; +} + +/* Songs names */ +.main-type-ballad { + font-size: 18px; +} + +/* Cards descriptions */ +.main-cardSubHeader-root { + overflow: hidden !important; +} + +/* Ad title */ +.desktoproutes-homepage-takeover-ad-hptoNativeOriginal-header { + font-weight: 700 !important; +} + +/* Friends names */ +.main-buddyFeed-username a { + color: var(--spice-text) !important; + font-size: 17px; + font-weight: 500; +} + +/* Friends songs and artists */ +.main-buddyFeed-artistAndTrackName a, +.main-buddyFeed-playbackContextLink span { + font-size: 13px; +} + +/* Cover height */ +.main-coverSlotExpanded-container { + height: var(--nav-bar-width) + 8px; +} + +/* Scrollbars */ +.os-scrollbar-handle { + background: var(--spice-button) !important; + border-radius: 8px; +} + +/* Make Scrollbar look better */ + +.os-theme-spotify.os-host-transition + > .os-scrollbar-vertical + > .os-scrollbar-track + > .os-scrollbar-handle { + border-radius: 8px; + width: 4px; + background-color: var(--spice-button-disabled); +} +.os-theme-spotify.os-host-transition + > .os-scrollbar-vertical + > .os-scrollbar-track { + width: 4px; +} + +/* Making index column wider so that lighter background that +highlights selected song contains multi-digit song numbers */ +/* It looks good up to 4 digits, I figured that no one has playlists with more music than that ;) */ +.main-trackList-trackList.main-trackList-indexable + .main-trackList-trackListRowGrid { + grid-template-columns: [index] 48px [first] 6fr [var1] 4fr [var2] 3fr [last] minmax( + 120px, + 1fr + ) !important; +} + +/* Text boxes in settings */ +.main-dropDown-dropDown { + background-color: var(--spice-button-disabled); +} + +/* Facebook button */ +.x-settings-facebookButton { + background-color: unset !important; +} + +/* Playlist play button color */ +.encore-dark-theme .encore-bright-accent-set, +.encore-dark-theme .encore-bright-accent-set:hover { + --background-base: var(--spice-button-active); + --background-highlight: var(--spice-play-hover); + --background-press: var(--spice-play-hover); +} + +/* Player bar */ + +.main-nowPlayingBar-container { + justify-content: center; + height: var(--now-playing-bar-height); + width: 100%; + border-radius: var(--border-radius-now-playing-bar); + padding: var(--padding-now-playing-bar); + bottom: var(--margin-bottom-now-playing-bar); + border: var(--default-border-thickness) solid var(--shadow-rgb); + background-color: rgba(var(--spice-rgb-main)); + backdrop-filter: blur(var(--blur-radius)) saturate(0.5) brightness(100%); +} + +.main-nowPlayingBar-container .GlueDropTarget, +.main-coverSlotCollapsed-container { + max-height: 56px; + max-width: 56px; +} + +/**** ROUND IMAGES ****/ + +/* Expanded Cover Art Image (+ position fix) */ +.main-navBar-navBar > :nth-child(3) { + margin: 0 0 0 1px; + border-radius: 6px; +} + +/* Collapsed Cover Art Image */ +.cover-art-image, +.artist-artistOverview-sideBlock + > div + > section + > div:nth-child(3) + > section:nth-child(2) + > div + > img, +.view-homeShortcutsGrid-image { + border-radius: 4px; +} + +/* + Playlist Header + Search Category Card Image + List Cards + Local Files Card + Placeholder Profile Card + Artist Overview Side Block + */ +.main-entityHeader-shadow, +.x-categoryCard-image, +.x-entityImage-circle, +.main-cardImage-image, +.main-cardImage-imageWrapper, +.main-entityHeader-imagePlaceholder > div, +.artist-artistOverview-sideBlock > div > section { + border-radius: 6px; +} + +/* Circled Artist + Profile Cards (force) */ +.main-cardImage-circular, +.main-entityHeader-imagePlaceholder, +.main-entityHeader-circle { + border-radius: 50% !important; +} + +/* Track List Image */ +.main-trackList-rowImage { + border-radius: 3px; +} + +/* Home gradient */ +.main-home-homeHeader { + background-color: rgba(var(--spice-rgb-button)) !important; +} + +/* Volume bar margins */ +.volume-bar .progress-bar { + margin: 0 0.4rem; +} + +.volume-bar .playback-progressbar { + width: 70%; +} + +.volume-bar { + flex: 0 150px; +} + +.ellipsis-one-line.main-type-mesto { + font-size: 14px; +} + +/* Removal of empty space above playlist cover and title on narrow viewports */ +.main-entityHeader-container.main-entityHeader-nonWrapped { + min-height: 325px; + height: 15vh; +} diff --git a/dot-config/spicetify/Themes/Sleek/README.md b/dot-config/spicetify/Themes/Sleek/README.md new file mode 100644 index 0000000..a86d442 --- /dev/null +++ b/dot-config/spicetify/Themes/Sleek/README.md @@ -0,0 +1,75 @@ +# Sleek + +### BladeRunner + +![BladeRunner](bladerunner.png) + +### Cherry + +![Cherry](cherry.png) + +### Coral + +![Coral](coral.png) + +### Deep + +![Deep](deep.png) + +### Deeper + +![Deeper](deeper.png) + +### Greener +![Greener](greener.png) + +### Elementary + +![Elementary](elementary.png) + +### Futura + +![Futura](futura.png) + +### Nord + +![Nord](nord.png) + +### Psycho + +![Psycho](psycho.png) + +### UltraBlack + +![UltraBlack](ultrablack.png) + +### Wealthy + +![Wealthy](wealthy.png) + +### Dracula + +![Dracula](dracula.png) + +### VantaBlack + +![VantaBlack](vantablack.png) + +### RosePine + +![RosePine](rosepine.png) + +## Info + +A simple, 'sleek' theme that builds upon the basic Spotify UI to create a more stylised experience. Also removes all annoyances from free version, including banner advertisements and upgrade buttons. + +Created by [@harbassan](https://github.com/harbassan) + +### Changing Color Schemes + +Change the scheme with these commands: + +``` +spicetify config color_scheme +spicetify apply +``` diff --git a/dot-config/spicetify/Themes/Sleek/bladerunner.png b/dot-config/spicetify/Themes/Sleek/bladerunner.png new file mode 100644 index 0000000..620dbf9 Binary files /dev/null and b/dot-config/spicetify/Themes/Sleek/bladerunner.png differ diff --git a/dot-config/spicetify/Themes/Sleek/catppuccin.png b/dot-config/spicetify/Themes/Sleek/catppuccin.png new file mode 100644 index 0000000..84b562d Binary files /dev/null and b/dot-config/spicetify/Themes/Sleek/catppuccin.png differ diff --git a/dot-config/spicetify/Themes/Sleek/cherry.png b/dot-config/spicetify/Themes/Sleek/cherry.png new file mode 100644 index 0000000..9ccc70e Binary files /dev/null and b/dot-config/spicetify/Themes/Sleek/cherry.png differ diff --git a/dot-config/spicetify/Themes/Sleek/color.ini b/dot-config/spicetify/Themes/Sleek/color.ini new file mode 100644 index 0000000..c02ed6f --- /dev/null +++ b/dot-config/spicetify/Themes/Sleek/color.ini @@ -0,0 +1,413 @@ +[Wealthy] +; Green on dark grey background +text = 8bc34a +subtext = b4b4b4 +nav-active-text = 202020 +main = 202020 +sidebar = 202020 +player = 242424 +card = 242424 +shadow = 000000 +main-secondary = 171717 +button = 8bc34a +button-secondary = 6a913d +button-active = 98da4b +button-disabled = 353535 +nav-active = 8bc34a +play-button = 8bc34a +tab-active = 171717 +notification = 242424 +notification-error = 242424 +playback-bar = 8bc34a +misc = FFFFFF + +[Cherry] +; Pink on dark blue background +text = d98ba1 +subtext = d7d7d7 +nav-active-text = 131c26 +main = 131c26 +sidebar = 131c26 +player = 131c26 +card = 131c26 +shadow = 0e0e13 +main-secondary = 09111b +button = d98ba1 +button-secondary = d98ba1 +button-active = ff84ac +button-disabled = 192531 +nav-active = ff84ac +play-button = d98ba1 +tab-active = 09111b +notification = 192531 +notification-error = 192531 +playback-bar = d98ba1 +misc = FFFFFF + +[Coral] +; Salmon on dark blue background +text = f88379 +subtext = d7d7d7 +nav-active-text = 131c26 +main = 131c26 +sidebar = 131c26 +player = 131c26 +card = 131c26 +shadow = 0e0e13 +main-secondary = 09111b +button = f88379 +button-secondary = f88379 +button-active = fb958b +button-disabled = 192531 +nav-active = fb958b +play-button = f88379 +tab-active = 09111b +notification = 192531 +notification-error = 192531 +playback-bar = f88379 +misc = FFFFFF + +[Deep] +; White on dark blue background +text = ffffff +subtext = ffffff +nav-active-text = ffffff +main = 020816 +sidebar = 051024 +player = 030b1e +card = 0a1527 +shadow = 000000 +main-secondary = 06142d +button = 1464b5 +button-secondary = ffffff +button-active = 4a99e9 +button-disabled = 21282f +nav-active = 37b778 +play-button = 37b778 +tab-active = 0a1527 +notification = 051024 +notification-error = 051024 +playback-bar = 37b778 +misc = FFFFFF + +[Greener] +; White on dark and green background +text = ffffff +subtext = ffffff +nav-active-text = ffffff +main = 020816 +sidebar = 020816 +player = 020816 +card = 020816 +shadow = 000000 +main-secondary = 216d48 +button = 37b778 +button-secondary = ffffff +button-active = 37b778 +button-disabled = 21282f +nav-active = 37b778 +play-button = 37b778 +tab-active = 2c9260 +notification = 051024 +notification-error = 051024 +playback-bar = 37b778 +misc = FFFFFF + +[Deeper] +; Light blue on dark background +text = 4f9a87 +subtext = 4f9a87 +nav-active-text = 4f9a87 +main = 040614 +sidebar = 0F111A +player = 0F111A +card = 0C1C19 +shadow = 000000 +main-secondary = 131520 +button = 4f9a87 +button-secondary = 4f9a87 +button-active = 4a99e9 +button-disabled = 0C1C19 +nav-active = 040614 +play-button = 4f9a87 +tab-active = 0a1527 +notification = 051024 +notification-error = 051024 +playback-bar = 4f9a87 +misc = FFFFFF + +[Psycho] +; Red on dark grey background +text = c20000 +subtext = ffffff +nav-active-text = 101010 +main = 101010 +sidebar = 171717 +player = 171717 +card = 171717 +shadow = 000000 +main-secondary = 1f1f1f +button = c20000 +button-secondary = a20606 +button-active = c20000 +button-disabled = 404040 +nav-active = 9f0909 +play-button = c20000 +tab-active = 171717 +notification = 5e0000 +notification-error = 5e0000 +playback-bar = c20000 +misc = FFFFFF + +[UltraBlack] +; White on black background +text = FFFFFF +subtext = DEDEDE +nav-active-text = 000000 +main = 000000 +sidebar = 000000 +player = 000000 +card = 000000 +shadow = 000000 +main-secondary = 292929 +button = 1DB954 +button-secondary = DEDEDE +button-active = 1DB954 +button-disabled = 2f2f2f +nav-active = DEDEDE +play-button = DEDEDE +tab-active = 292929 +notification = 292929 +notification-error = 292929 +playback-bar = DEDEDE +misc = FFFFFF + +[Nord] +; Light grey on blue background +text = D8DEE9 +subtext = E5E9F0 +nav-active-text = D8DEE9 +main = 2E3440 +sidebar = 2E3440 +player = 2E3440 +card = 2E3440 +shadow = 1d2128 +main-secondary = 434c5e +button = 5E81AC +button-secondary = D8DEE9 +button-active = 81A1C1 +button-disabled = 434C5E +nav-active = 4c566a +play-button = 5E81AC +tab-active = 3b4252 +notification = 3b4252 +notification-error = 3b4252 +playback-bar = DEDEDE +misc = FFFFFF + +[Futura] +; Cyan on dark background +text = 34ad7e +subtext = DEDEDE +nav-active-text = 2E2837 +main = 2E2837 +sidebar = 2E2837 +player = 2E2837 +card = 2E2837 +shadow = 000000 +main-secondary = 51485b +button = 34ad7e +button-secondary = 34ad7e +button-active = 00bf76 +button-disabled = 3f3c45 +nav-active = 34ad7e +play-button = 34ad7e +tab-active = 51485b +notification = 51485b +notification-error = 51485b +playback-bar = 34ad7e +misc = FFFFFF + +[Elementary] +; Purple and pink on dark background +text = c59dff +subtext = dedede +nav-active-text = 1d1821 +main = 1f1f29 +sidebar = 1d1821 +player = 1d1821 +card = 2E2837 +shadow = 000000 +main-secondary = 1d1821 +button = d4516f +button-secondary = c59dff +button-active = f16d8c +button-disabled = 2E303E +nav-active = d4516f +play-button = d4516f +tab-active = 1d1821 +notification = 2E2837 +notification-error = 2E2837 +playback-bar = c59dff +misc = FFFFFF + +[BladeRunner] +; Yellow, pink and blue on dark background +text = dcd88c +subtext = 9fbfb7 +nav-active-text = 1d1821 +main = 181b1e +sidebar = 181b1e +player = 181b1e +card = 17191d +shadow = 000000 +main-secondary = 0b0d0e +button = f6867c +button-secondary = dcd88c +button-active = f6867c +button-disabled = 242a2e +nav-active = f6867c +play-button = f6867c +tab-active = 131417 +notification = 131417 +notification-error = 131417 +playback-bar = dcd88c +misc = FFFFFF + +[Dracula] +; https://draculatheme.com/contribute +text = 50fa7b +subtext = bd93f9 +nav-active-text = 282a36 +main = 282a36 +sidebar = 282a36 +player = 282a36 +card = 282a36 +shadow = 000000 +main-secondary = 1c1e26 +button = 50fa7b +button-secondary = ff79c6 +button-active = 00bf76 +button-disabled = 3f3c45 +nav-active = 50fa7b +play-button = 50fa7b +tab-active = 1c1e26 +notification = 1c1e26 +notification-error = 1c1e26 +playback-bar = 50fa7b +misc = FFFFFF + +[VantaBlack] +; Gray on black background +text = 666666 +subtext = 666666 +nav-active-text = 666666 +main = 000000 +sidebar = 000000 +player = 000000 +card = 000000 +shadow = 333333 +main-secondary = 000000 +button = 000000 +button-secondary = 000000 +button-active = 333333 +button-disabled = 000000 +nav-active = 333333 +play-button = 000000 +tab-active = 333333 +notification = 000000 +notification-error = 000000 +playback-bar = 000000 +misc = 000000 + +[RosePine] +; https://rosepinetheme.com/palette +text = e0def4 +subtext = 908caa +nav-active-text = ebbcba +main = 191724 +sidebar = 191724 +player = 191724 +card = 1f1d2e +shadow = 191724 +main-secondary = 1f1d2e +button = ebbcba +button-secondary = 6e6a86 +button-active = ebbcba +button-disabled = 26233a +nav-active = 1f1d2e +play-button = ebbcba +tab-active = 1f1d2e +notification = 26233a +notification-error = eb6f92 +playback-bar = 6e6a86 +misc = FFFFFF + +[Eldritch] +; https://github.com/eldritch-theme/eldritch +text = 37f499 +subtext = 04d1f9 +nav-active-text = 323449 +main = 212337 +sidebar = 212337 +player = 212337 +card = 212337 +shadow = 212337 +main-secondary = 323449 +button = 37f499 +button-secondary = 04d1f9 +button-active = 37f499 +button-disabled = 323449 +nav-active = 37f499 +play-button = 37f499 +tab-active = a48cf2 +notification = 212337 +notification-error = 212337 +playback-bar = 37f499 +misc = ebfafa + +[Catppuccin] +; https://catppuccin.com/palette +text = cba6f7 +subtext = 7c7f93 +nav-active-text = fab387 +main = 11111b +sidebar = 11111b +player = 11111b +card = 1e1e2e +shadow = 11111b +main-secondary = 1e1e2e +button = a6e3a1 +button-secondary = 74c7ec +button-active = f9e2af +button-disabled = 181825 +nav-active = 11111b +play-button = ca9ee6 +tab-active = 45475a +notification = 11111b +notification-error = 11111b +playback-bar = dc8a78 +misc = f4dbd6 + + +; Description + +; text = main text, playlist names in main field, name of playlist selected in sidebar, headings +; subtext = text in main buttons in sidebar, playlist names in sidebar, artist names, and mini infos +; nav-active-text = text in main buttons in sidebar when active +; main = main bg +; main-secondary = bg color of selected song rows, bg color of artist/track cards +; sidebar = sidebar bg +; player = player bg +; card = popup-card bg +; shadow = all shadows +; button = playlist buttons bg in sidebar, drop-down menus, now playing song, like button +; button-secondary = download and options button +; button-active = hover on song selected +; button-disabled = seekbar bg, volume bar bg, scrollbar +; nav-active = sidebar buttons bg +; play-button = color of main play button in main field +; tab-active = button bg in main field (playlists, podcasts, artists, albums) +; notification = notification ('Added to liked songs' etc.) +; playback-bar = seekbar fg, volume bar fg, main play/pause button +; misc = miscellaneous diff --git a/dot-config/spicetify/Themes/Sleek/coral.png b/dot-config/spicetify/Themes/Sleek/coral.png new file mode 100644 index 0000000..01744aa Binary files /dev/null and b/dot-config/spicetify/Themes/Sleek/coral.png differ diff --git a/dot-config/spicetify/Themes/Sleek/deep.png b/dot-config/spicetify/Themes/Sleek/deep.png new file mode 100644 index 0000000..f89a44e Binary files /dev/null and b/dot-config/spicetify/Themes/Sleek/deep.png differ diff --git a/dot-config/spicetify/Themes/Sleek/deeper.png b/dot-config/spicetify/Themes/Sleek/deeper.png new file mode 100644 index 0000000..bc26ac6 Binary files /dev/null and b/dot-config/spicetify/Themes/Sleek/deeper.png differ diff --git a/dot-config/spicetify/Themes/Sleek/dracula.png b/dot-config/spicetify/Themes/Sleek/dracula.png new file mode 100644 index 0000000..9689ec0 Binary files /dev/null and b/dot-config/spicetify/Themes/Sleek/dracula.png differ diff --git a/dot-config/spicetify/Themes/Sleek/eldritch.png b/dot-config/spicetify/Themes/Sleek/eldritch.png new file mode 100644 index 0000000..9f4d813 Binary files /dev/null and b/dot-config/spicetify/Themes/Sleek/eldritch.png differ diff --git a/dot-config/spicetify/Themes/Sleek/elementary.png b/dot-config/spicetify/Themes/Sleek/elementary.png new file mode 100644 index 0000000..8ce3a77 Binary files /dev/null and b/dot-config/spicetify/Themes/Sleek/elementary.png differ diff --git a/dot-config/spicetify/Themes/Sleek/futura.png b/dot-config/spicetify/Themes/Sleek/futura.png new file mode 100644 index 0000000..3fa706e Binary files /dev/null and b/dot-config/spicetify/Themes/Sleek/futura.png differ diff --git a/dot-config/spicetify/Themes/Sleek/greener.png b/dot-config/spicetify/Themes/Sleek/greener.png new file mode 100644 index 0000000..d7abcff Binary files /dev/null and b/dot-config/spicetify/Themes/Sleek/greener.png differ diff --git a/dot-config/spicetify/Themes/Sleek/nord.png b/dot-config/spicetify/Themes/Sleek/nord.png new file mode 100644 index 0000000..2cb0806 Binary files /dev/null and b/dot-config/spicetify/Themes/Sleek/nord.png differ diff --git a/dot-config/spicetify/Themes/Sleek/psycho.png b/dot-config/spicetify/Themes/Sleek/psycho.png new file mode 100644 index 0000000..1ac5429 Binary files /dev/null and b/dot-config/spicetify/Themes/Sleek/psycho.png differ diff --git a/dot-config/spicetify/Themes/Sleek/rosepine.png b/dot-config/spicetify/Themes/Sleek/rosepine.png new file mode 100644 index 0000000..d590a5b Binary files /dev/null and b/dot-config/spicetify/Themes/Sleek/rosepine.png differ diff --git a/dot-config/spicetify/Themes/Sleek/ultrablack.png b/dot-config/spicetify/Themes/Sleek/ultrablack.png new file mode 100644 index 0000000..7e0dee7 Binary files /dev/null and b/dot-config/spicetify/Themes/Sleek/ultrablack.png differ diff --git a/dot-config/spicetify/Themes/Sleek/user.css b/dot-config/spicetify/Themes/Sleek/user.css new file mode 100644 index 0000000..13c2376 --- /dev/null +++ b/dot-config/spicetify/Themes/Sleek/user.css @@ -0,0 +1,725 @@ +:root { + --spice-main-elevated: var(--spice-main); + --spice-highlight: var(--spice-main-secondary); + --spice-highlight-elevated: var(--spice-main-secondary); +} +/* +------------- +TOPBAR +------------- +*/ +/* unset colors of history buttons */ +.main-topBar-historyButtons .main-topBar-button { + background-color: unset; +} + +/* change appearance of icons on search tab input */ +.x-searchInput-searchInputSearchIcon svg { + color: var(--spice-text); + height: 17px; +} + +.x-searchInput-searchInputClearButton svg { + color: var(--spice-text); + height: 17px; +} + +/* topbar navigation items*/ +.main-topBar-topbarContentWrapper a { + transition-duration: 0.3s; + border-radius: 8px; +} + +/* smooth topbar background colour */ +.main-topBar-background { + background-image: linear-gradient(var(--spice-main) 5%, 75%, transparent); + background-color: unset !important; +} +.main-topBar-overlay { + background-color: var(--spice-main); +} + +/* simplify profile menu */ +.main-userWidget-displayName, +.main-userWidget-notificationIndicator { + display: none; +} + +.main-avatar-userIcon { + color: white; +} + +.main-userWidget-box { + color: var(--spice-subtext); + background-color: transparent !important; +} + +.main-userWidget-chevron { + display: none; +} +/* +------------- +NAVBAR +------------- +*/ +/* remove divider gradient */ +.main-rootlist-rootlistDividerGradient { + display: none; +} + +/* change color of divider */ +.main-rootlist-rootlistDivider { + background-color: var(--spice-sidebar); +} + +/* add gradient to navbar */ +.Root__nav-bar { + background-image: linear-gradient(to bottom left, var(--spice-sidebar) 0%, var(--spice-player) 100%) !important; +} + +/* change color of navbar playing icon */ +[aria-label="Playing"] { + color: var(--spice-text); +} + +.main-navBar-entryPoints [data-id="/add"] { + margin-top: 20px; +} + +.main-createPlaylistButton-button { + color: var(--spice-text); +} + +.main-createPlaylistButton-createPlaylistIcon { + background-color: var(--spice-text); +} + +/* change color of navbar icons */ +.main-likedSongsButton-likedSongsIcon { + background: var(--spice-text); + color: var(--spice-sidebar); +} + +.main-yourEpisodesButton-yourEpisodesIcon { + background: var(--spice-text); +} + +.main-yourEpisodesButton-yourEpisodesIcon path { + fill: var(--spice-sidebar); +} + +/* remove opacity of navbar buttons */ +.main-collectionLinkButton-collectionLinkButton .main-collectionLinkButton-icon, +.main-collectionLinkButton-collectionLinkButton .main-collectionLinkButton-collectionLinkText, +.main-createPlaylistButton-button { + opacity: unset; +} + +.main-collectionLinkButton-collectionLinkButton { + color: var(--spice-subtext); +} + +/* change colors of active tab */ +.main-yourLibraryX-navLink { + border-radius: 8px; + margin: 6px 0; + padding: 0 10px; +} + +.main-yourLibraryX-navItem { + padding: 0; +} + +.main-navBar-navBarLinkActive, +.main-navBar-navBarLinkActive:focus, +.main-navBar-navBarLinkActive:hover, +.main-collectionLinkButton-selected, +.main-collectionLinkButton-selected svg, +.main-yourLibraryX-navLinkActive, +.main-yourLibraryX-navLinkActive .home-active-icon, +.main-yourLibraryX-navLinkActive .search-active-icon { + color: var(--spice-nav-active-text) !important; + background-color: var(--spice-nav-active); +} + +/* color of navbar icons */ +.collection-icon, +.premiumSpotifyIcon, +.search-icon { + color: var(--spice-subtext); +} + +.main-navBar-navBarLink { + transition: none; +} + +.main-navBar-navBarLink:not(.main-navBar-navBarLinkActive):hover svg { + color: var(--spice-text); +} + +.main-yourLibraryX-entryPoints { + background-color: var(--spice-sidebar); +} + +.main-yourLibraryX-isScrolled { + -webkit-box-shadow: 0 20px 10px -10px var(--spice-sidebar); + box-shadow: 0 20px 10px -10px var(--spice-sidebar); +} + +/* traclists and playlists loading placeholder */ +.main-trackList-placeholder, +.Pns6F5g4OEwEpdmOWTLg, +.eldivguzYznZgQoShJbe { + background-color: var(--background-base); + background-blend-mode: color-dodge; +} + +/* +--------------- +PLAYBACK BAR +--------------- +*/ +/* playback progress bar moves smoothly */ +.x-progressBar-fillColor { + transition: transform 1s linear; +} + +.progress-bar__slider { + transition: left 1s linear; +} + +.progress-bar--isDragging .x-progressBar-fillColor, .progress-bar--isDragging .progress-bar__slider { + transition: none; +} + +/* round cover art when collapsed */ +.main-coverSlotCollapsed-container .cover-art-image { + border-radius: 8px; + transition-duration: 0.15s; +} + +.main-coverSlotExpandedCollapseButton-collapseButton { + right: 10px !important; + top: 10px !important; +} + +/* hide and move progress time location */ +.playback-bar__progress-time-elapsed { + opacity: 0; + position: absolute; + bottom: 13px; + left: 0; + transition-duration: 0.3s; + background-color: rgba(var(--spice-rgb-sidebar),.5); + box-shadow: 0 0 20px 20px rgba(var(--spice-rgb-sidebar),.5); + border-radius: 8px; + z-index: -1; +} + +.main-playbackBarRemainingTime-container { + opacity: 0; + position: absolute; + bottom: 13px; + right: 0; + transition-duration: 0.3s; + background-color: rgba(var(--spice-rgb-sidebar),.5); + box-shadow: 0 0 20px 20px rgba(var(--spice-rgb-sidebar),.5); + border-radius: 8px; + z-index: -1; +} + +/* show time on hover & better visibility */ +.playback-bar:hover .playback-bar__progress-time-elapsed, +.playback-bar:hover .main-playbackBarRemainingTime-container { + opacity: 1; +} + +/* move progress bar */ +html:not(.fullscreen) .playback-bar { + width: 100%; + bottom: 83px; + position: absolute; + left: 0px; +} + +.main-nowPlayingBar-nowPlayingBar:nth-last-child(2) .playback-bar { + bottom: 107px; +} + +.player-controls__buttons { + transform: translateY(3px); + align-items: center; +} + +/* change progress bar color */ +.playback-bar .x-progressBar-fillColor { + background-color: var(--spice-playback-bar); +} + +/* change appearance of play-button */ +.main-playPauseButton-button { + background-color: inherit; + color: var(--spice-play-button); + transition-duration: 0.3s !important; +} + +.main-playPauseButton-button svg { + height: 19px; + width: 19px; +} + +html.fullscreen .main-playPauseButton-button svg { + height: 32px; + width: 32px; +} + +.main-playPauseButton-button:focus, +.main-playPauseButton-button:hover { + transform: none !important; +} + +/* change progress bar slider color */ +.progress-bar__slider { + background-color: var(--spice-subtext); +} + +.x-progressBar-progressBarBg { + background-color: var(--spice-button-disabled); + border-radius: 0px; +} + +/* matching button colors */ +.main-nowPlayingBar-extraControls button { + color: rgba(var(--spice-rgb-selected-row),.7); +} +/* +--------------- +BUDDY FEED +--------------- +*/ +/* change text color */ +.main-buddyFeed-activityMetadata .main-buddyFeed-artistAndTrackName a, +.main-buddyFeed-activityMetadata .main-buddyFeed-username a, +.main-buddyFeed-activityMetadata .main-buddyFeed-playbackContextLink, +p.main-buddyFeed-timestamp.main-type-finale, +.main-buddyFeed-findFriendsButton .main-buddyFeed-findFriendsIcon { + color: var(--spice-subtext); +} + +.spotify__os--is-windows .main-buddyFeed-header { + padding-left: 0; + padding-right: 5px; +} + +/* add gradient */ +.main-buddyFeed-friendsFeedContainer { + background-image: linear-gradient(to bottom left, var(--spice-sidebar) 0%, var(--spice-player) 100%) !important; +} + +/* hide buddyfeed scrollbar */ +.main-buddyFeed-scrollableArea > .os-scrollbar { + display: none; +} + +.main-avatar-avatar.BzunmwrVMyWGpopPJRt2:after { + background: var(--spice-button); +} +/* +--------------- +MAIN VIEW +--------------- +*/ +/* hide banner ads */ +.main-leaderboardComponent-container { + display: none; +} + +.WiPggcPDzbwGxoxwLWFf.contentSpacing { + display: none; +} + +.desktoproutes-homepage-takeover-ad-hptoComponent-parentContainer, +.desktoproutes-homepage-takeover-ad-hptoComponent-container { + display: none !important; +} + +/* hide upgrade button */ +.main-topBar-UpgradeButton { + display: none; +} + +/* change input box appearance */ +input { + background-color: var(--spice-main-secondary) !important; + border-radius: 8px !important; + padding: 6px 10px 6px 48px; + color: var(--spice-text) !important; +} +::placeholder { + color: var(--spice-subtext) !important; +} + +/* remove background color from main headers */ +.main-home-homeHeader, +.x-441-entityHeader-overlay, +.main-actionBarBackground-background, +.main-entityHeader-overlay, +.main-entityHeader-backgroundColor { + background-color: unset !important; + background-image: unset !important; +} + +/* change playlist image shadow */ +.main-entityHeader-shadow { + box-shadow: 0 5px 10px rgba(var(--spice-rgb-shadow), 0.5) !important; +} + +/* change playlist image border-radius */ +.main-entityHeader-image { + border-radius: 8px; +} + +/* change playing icon from gif to svg */ +.main-trackList-playingIcon { + -webkit-mask-image: url("data:image/svg+xml,%3Csvg id='playing-icon' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 24'%3E%3Cdefs%3E%3Cstyle%3E %23playing-icon %7B fill: %2320BC54; %7D @keyframes play %7B 0%25 %7Btransform: scaleY(1);%7D 3.3%25 %7Btransform: scaleY(0.9583);%7D 6.6%25 %7Btransform: scaleY(0.9166);%7D 9.9%25 %7Btransform: scaleY(0.8333);%7D 13.3%25 %7Btransform: scaleY(0.7083);%7D 16.6%25 %7Btransform: scaleY(0.5416);%7D 19.9%25 %7Btransform: scaleY(0.4166);%7D 23.3%25 %7Btransform: scaleY(0.25);%7D 26.6%25 %7Btransform: scaleY(0.1666);%7D 29.9%25 %7Btransform: scaleY(0.125);%7D 33.3%25 %7Btransform: scaleY(0.125);%7D 36.6%25 %7Btransform: scaleY(0.1666);%7D 39.9%25 %7Btransform: scaleY(0.1666);%7D 43.3%25 %7Btransform: scaleY(0.2083);%7D 46.6%25 %7Btransform: scaleY(0.2916);%7D 49.9%25 %7Btransform: scaleY(0.375);%7D 53.3%25 %7Btransform: scaleY(0.5);%7D 56.6%25 %7Btransform: scaleY(0.5833);%7D 59.9%25 %7Btransform: scaleY(0.625);%7D 63.3%25 %7Btransform: scaleY(0.6666);%7D 66.6%25 %7Btransform: scaleY(0.6666);%7D 69.9%25 %7Btransform: scaleY(0.6666);%7D 73.3%25 %7Btransform: scaleY(0.6666);%7D 76.6%25 %7Btransform: scaleY(0.7083);%7D 79.9%25 %7Btransform: scaleY(0.75);%7D 83.3%25 %7Btransform: scaleY(0.8333);%7D 86.6%25 %7Btransform: scaleY(0.875);%7D 89.9%25 %7Btransform: scaleY(0.9166);%7D 93.3%25 %7Btransform: scaleY(0.9583);%7D 96.6%25 %7Btransform: scaleY(1);%7D %7D %23bar1 %7B transform-origin: bottom; animation: play 0.9s -0.51s infinite; %7D %23bar2 %7B transform-origin: bottom; animation: play 0.9s infinite; %7D %23bar3 %7B transform-origin: bottom; animation: play 0.9s -0.15s infinite; %7D %23bar4 %7B transform-origin: bottom; animation: play 0.9s -0.75s infinite; %7D %3C/style%3E%3C/defs%3E%3Ctitle%3Eplaying-icon%3C/title%3E%3Crect id='bar1' class='cls-1' width='4' height='24'/%3E%3Crect id='bar2' class='cls-1' x='6' width='4' height='24'/%3E%3Crect id='bar3' class='cls-1' x='12' width='4' height='24'/%3E%3Crect id='bar4' class='cls-1' x='18' width='4' height='24'/%3E%3C/svg%3E"); + background: var(--spice-button); + content-visibility: hidden; + -webkit-mask-repeat: no-repeat; +} + +/* recolor animated liked or heart button on click */ +#_R_G *:not([fill="none"]) { + fill: var(--spice-button-active) !important; +} +#_R_G *:not([stroke="none"]) { + stroke: var(--spice-button-active); +} + +/* change appearance of 'playlist' tag */ +.main-entityHeader-subtitle.main-entityHeader-small.main-entityHeader-uppercase.main-entityHeader-bold { + border: 2px var(--spice-text) solid; + border-radius: 8px; + width: fit-content; + display: inline; + text-align: center; + padding: 3px 7px; +} + +/* change appearance of 'follow' button */ +.artist-artistOverview-overview .main-actionBar-ActionBarRow > button:first-of-type { + border-radius: 8px; + border: 2px solid var(--spice-button); +} + +/* change scrollbar appearance */ +.os-theme-spotify.os-host-transition > .os-scrollbar-vertical > .os-scrollbar-track > .os-scrollbar-handle { + border-radius: 4px; + width: 6px; + background-color: var(--spice-button-disabled); +} + +.os-theme-spotify.os-host-transition > .os-scrollbar-vertical > .os-scrollbar-track { + width: 6px; +} + +/* add smooth shadow under headers */ +.main-trackList-trackListHeaderStuck.main-trackList-trackListHeader, +.artist-artistDiscography-topBar.artist-artistDiscography-topBarScrolled { + background-color: var(--spice-main); + border-bottom: none; + -webkit-box-shadow: 0 0 50px 50px var(--spice-main); + box-shadow: 0 0 50px 50px var(--spice-main); + transition: box-shadow 0.2s; +} +.search-searchCategory-SearchCategory { + -webkit-box-shadow: 0 0 20px 20px var(--spice-main); + box-shadow: 0 0 20px 20px var(--spice-main); + z-index: 3; +} + +/* play button */ +.main-home-home .main-playButton-PlayButton > button > span { + inline-size: 42px; + block-size: 42px; + min-block-size: auto; +} + +.main-home-home .main-playButton-PlayButton svg { + width: 24px; + height: 24px; +} + +.main-home-home .main-playButton-PlayButton > button > span > span { + position: initial; + height: 24px; +} + +.main-actionBar-ActionBar .main-playButton-PlayButton svg { + width: 30px; + height: 30px; +} + +.main-actionBar-ActionBar .main-playButton-PlayButton > button > span > span { + position: initial; + height: 30px; +} + +/* change text color on category cards in 'search' tab */ +a.x-categoryCard-CategoryCard, +a.x-heroCategoryCard-HeroCategoryCard { + color: var(--spice-subtext); +} + +/* recolor sub-buttons */ +.main-moreButton-button { + color: var(--spice-button-secondary); +} + +.x-downloadButton-button, +.x-contributorButton-button svg, +.main-actionBar-ActionBarRow .main-addButton-button { + color: var(--spice-button-secondary) !important; +} + +.main-entityHeader-metaDataText, +.x-filterBox-searchIconContainer { + color: var(--spice-button-secondary); +} + +.main-entityHeader-metaDataText span { + color: var(--spice-button-secondary); +} + +.x-sortBox-sortDropdown { + background-color: var(--spice-main-secondary) !important; + border-radius: 8px; +} + +[dir="ltr"] .main-actionBar-ActionBarRow > :first-child { + margin-right: 40px; +} + +.x-filterBox-expandButton:focus, +.x-filterBox-expandButton:hover { + background-color: var(--spice-main-secondary) !important; + border-radius: 8px; +} + +.x-sortBox-sortDropdown, +.x-filterBox-expandButton { + color: var(--spice-text) !important; +} + +/* change background color of 'home' tab shortcut items */ +.view-homeShortcutsGrid-shortcut { + background-color: rgba(var(--spice-rgb-main-secondary), 0.5) !important; +} + +.view-homeShortcutsGrid-shortcut:focus-within, +.view-homeShortcutsGrid-shortcut:hover, +.view-homeShortcutsGrid-shortcut[data-context-menu-open="true"] { + background-color: var(--spice-main-secondary) !important; +} + +.main-card-card { + background-color: rgba(var(--spice-rgb-main-secondary), 0.5) !important; +} + +.main-card-card:focus-within, +.main-card-card:hover { + background-color: var(--spice-main-secondary) !important; +} + +/* card background color for editing playlist details */ +.main-playlistEditDetailsModal-descriptionTextarea { + background: var(--spice-main-secondary); +} + +.main-playlistEditDetailsModal-textElementLabel { + display: none; +} + +/* change color of search icon for new playlists */ +.playlist-inlineSearchBox-searchIcon { + fill: var(--spice-text) !important; +} + +/* change appearance of verified artist badge */ +.main-entityHeader-headerText > span:first-child { + border: 0.25em solid var(--spice-text); + border-radius: 0.5em; + width: fit-content; + gap: 0px; + text-align: center; + padding: 0.25em 0.75em; + --font-family: CircularSp,CircularSp-Arab,CircularSp-Hebr,CircularSp-Cyrl,CircularSp-Grek,CircularSp-Deva,var(--fallback-fonts,sans-serif),sans-serif; +} + +.main-entityHeader-headerText > span:first-child > span { + font-weight: bold; + text-transform: uppercase; + font-size: 0.75rem; +} + +.main-entityHeader-headerText > span:first-child svg, +.main-entityHeader-headerText > span:first-child div { + display: none; +} + +/* change text color of hero card on 'library' tab */ +.main-heroCard-card, +.collection-collectionEntityHeroCard-descriptionContainer { + color: var(--spice-subtext) !important; +} +/* +-------------- +CONTEXT MENU +-------------- +*/ +/* change hover color when selecting in context menu */ +.main-contextMenu-menuItemButton:not(.main-contextMenu-disabled):focus, +.main-contextMenu-menuItemButton:not(.main-contextMenu-disabled):hover { + background-color: rgba(0, 0, 0, 0.2) !important; +} + +.main-contextMenu-menuItemButton[aria-expanded="true"] { + background-color: rgba(0, 0, 0, 0.2) !important; +} + +/* disabled options */ +.main-contextMenu-disabled > span { + color: rgba(var(--spice-button-disabled), 0.5); +} + +/* dividers between option subgroups */ +.main-contextMenu-menuItem:not(:first-child) > .main-contextMenu-dividerBefore:before { + border-bottom: 1px solid var(--spice-button-disabled); +} +/* +------------- +TRACKS GRID +------------- +*/ +/* change color of track titles */ +.main-trackList-rowTitle { + color: var(--spice-subtext); +} +/* change color of 'explicit' badge */ +.main-tag-container { + background-color: var(--spice-subtext); +} + +/* change background color of selected row */ +.main-trackList-trackListRow.main-trackList-selected, +.main-trackList-trackListRow.main-trackList-selected:hover { + background-color: var(--spice-main-secondary) !important; +} + +.main-trackList-trackListRow:focus-within, +.main-trackList-trackListRow:hover { + background-color: rgba(var(--spice-rgb-main-secondary), 0.5); +} + +/* When song is currently playing */ +.main-trackList-active .main-type-mesto, +.main-trackList-active .main-trackList-rowSubTitle, +.main-trackList-active .main-trackList-rowSubTitle a, +.main-trackList-active .main-trackList-rowMarker, +.main-trackList-active .main-trackList-rowSectionVariable, +.main-trackList-active .main-trackList-rowSectionVariable a, +.main-trackList-active .main-trackList-rowSectionVariable span, +.main-trackList-active .main-trackList-rowMarker, +.main-trackList-active .main-trackList-rowDuration { + color: var(--spice-button) !important; +} + +.main-trackList-active .main-tag-container { + background-color: var(--spice-button); +} + +/* When song is hovered/selected */ +.main-trackList-trackListRow.main-trackList-selected:not(.main-trackList-active) .main-tag-container, +.main-trackList-trackListRow:hover:not(.main-trackList-disabled):not(.main-trackList-active) .main-tag-container { + background-color: var(--spice-text); +} + +.main-trackList-trackListRow:hover:not(.main-trackList-disabled) .main-addButton-button, +.main-trackList-trackListRow:focus-within:not(.main-trackList-disabled) .main-addButton-button { + color: var(--spice-text); +} + +.main-trackList-trackListRow.main-trackList-selected:not(.main-trackList-active) .main-trackList-rowTitle, +.main-trackList-trackListRow:hover:not(.main-trackList-disabled):not(.main-trackList-active) .main-trackList-rowTitle { + color: var(--spice-text); +} + +.main-trackList-trackListRow.main-trackList-selected:not(.main-trackList-active) .main-trackList-rowSubTitle, +.main-trackList-trackListRow:hover:not(.main-trackList-disabled):not(.main-trackList-active) .main-trackList-rowSubTitle { + color: var(--spice-text) !important; +} + +/* color of selected row infos */ +.main-trackList-rowSectionVariable span, +.main-trackList-rowSectionEnd div { + color: inherit; +} +/* +--------------- +NEW HOME LAYOUT +--------------- +*/ +.main-topBar-navLinks a { + border-radius: 8px; + color: var(--spice-text); + background-color: var(--spice-main-secondary); +} + +.main-topBar-navLinks a:hover { + color: var(--spice-button-active); + background-color: var(--spice-main-secondary); +} + +.main-topBar-navLinks a.main-topBar-buttonActive { + background-color: var(--spice-button-active); + color: var(--spice-main); +} +.nav-alt .x-searchInput-searchInputInput:focus { + box-shadow: none; +} +/* +------- +TOGGLE +------- +*/ +.x-toggle-indicatorWrapper { + background-color: transparent; + height: 20px !important; + width: 40px !important; + box-shadow: 0 0 0 1px var(--spice-subtext); +} + +input:hover:not([disabled], :active) ~ .x-toggle-indicatorWrapper { + background-color: var(--spice-main-secondary); +} + +input:checked ~ .x-toggle-indicatorWrapper { + background-color: var(--spice-button); + box-shadow: none; +} + +.x-toggle-indicator { + background-color: var(--spice-subtext); + height: 12px; + width: 12px; + top: 4px; + left: 3px; +} + +input:not([disabled]) ~ .x-toggle-indicatorWrapper:hover .x-toggle-indicator { + transform: scale(1.2); +} + +input:checked ~ .x-toggle-indicatorWrapper .x-toggle-indicator { + background-color: var(--spice-main); + right: 4px; +} diff --git a/dot-config/spicetify/Themes/Sleek/vantablack.png b/dot-config/spicetify/Themes/Sleek/vantablack.png new file mode 100644 index 0000000..65fcfd9 Binary files /dev/null and b/dot-config/spicetify/Themes/Sleek/vantablack.png differ diff --git a/dot-config/spicetify/Themes/Sleek/wealthy.png b/dot-config/spicetify/Themes/Sleek/wealthy.png new file mode 100644 index 0000000..f06c454 Binary files /dev/null and b/dot-config/spicetify/Themes/Sleek/wealthy.png differ diff --git a/dot-config/spicetify/Themes/StarryNight/README.md b/dot-config/spicetify/Themes/StarryNight/README.md new file mode 100644 index 0000000..b4bed15 --- /dev/null +++ b/dot-config/spicetify/Themes/StarryNight/README.md @@ -0,0 +1,38 @@ +# StarryNight + +## Screenshots + +### Base +![Base](images/base.png) +### Cotton Candy +![Cotton-candy](images/cotton-candy.png) +### Forest +![Forest](images/forest.png) +### Galaxy +![Galaxy](images/galaxy.png) +### Orange +![Orange](images/orange.png) +### Sky +![Sky](images/sky.png) +### Sunrise +![Sunrise](images/sunrise.png) + +## More + +> Playbar panel is resizable using the resize bar from Now Playing View and Queue card. + +### Created by + +- https://github.com/b-chen00 + +### Credits + +- Shooting stars created by [Delroy Prithvi](https://codepen.io/delroyprithvi/pen/LYyJROR) with copyright/permission notice: + +> Pure CSS Shooting Star Animation Effect Copyright (c) 2021 by Delroy Prithvi (https://codepen.io/delroyprithvi/pen/LYyJROR) + +> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/dot-config/spicetify/Themes/StarryNight/color.ini b/dot-config/spicetify/Themes/StarryNight/color.ini new file mode 100644 index 0000000..cd112fa --- /dev/null +++ b/dot-config/spicetify/Themes/StarryNight/color.ini @@ -0,0 +1,216 @@ +[Base] +star = FFFFFF +star-glow = FFFFFF +shooting-star = FFFFFF +shooting-star-glow = FFFFFF + +main = 000000 ; becomes 100% transparent via javascript +main-elevated = 152238 +card = 152238 + +sidebar = 142b44 ; bottom part of sky +sidebar-alt = 000000 ; top part of sky + +text = FFFFFF +subtext = ADB5BD + +button-active = FFF3C4 +button = FFF3C4 +button-disabled = 000000 + +highlight = 191919 +highlight-elevated = 152238 + +shadow = 000000 +selected-row = FFFFFF +misc = 7F7F7F +notification-error = E22134 +notification = 4687d6 +tab-active = 333333 +player = 181818 + +[Cotton-candy] +star = FFFFFF +star-glow = FFFFFF +shooting-star = FFFFFF +shooting-star-glow = FFFFFF + +main = 000000 +main-elevated = 9f45b0 +card = 9f45b0 + +sidebar = 509be1 +sidebar-alt = ff71b2 + +text = FFFFFF +subtext = fff4f4 + +button-active = d3e9ff +button = d3e9ff +button-disabled = FFFFFF + +highlight = a763b6 +highlight-elevated = 7f78be + +shadow = 000000 +selected-row = ffa0ad +misc = 7F7F7F +notification-error = E22134 +notification = 4687d6 +tab-active = 333333 +player = 181818 + +[Forest] +star = FFFFFF +star-glow = FFFFFF +shooting-star = FFFFFF +shooting-star-glow = FFFFFF + +main = 000000 ; becomes 100% transparent via javascript +main-elevated = 011502 +card = 011502 + +sidebar = 14442b ; bottom part of sky +sidebar-alt = 000000 ; top part of sky + +text = FFFFFF +subtext = ADB5BD + +button-active = 9893DA +button = c4c6ff +button-disabled = 000000 + +highlight = 191919 +highlight-elevated = 011502 + +shadow = 000000 +selected-row = FFFFFF +misc = DBF9F4 +notification-error = E22134 +notification = 77be80 +tab-active = 333333 +player = 181818 + +[Galaxy] +star = FFFFFF +star-glow = FFFFFF +shooting-star = FFFFFF +shooting-star-glow = FFFFFF + +main = 000000 +main-elevated = 9f45b0 +card = 9f45b0 + +sidebar = b133c9 +sidebar-alt = 00076f + +text = ffe4f2 +subtext = FFFFFF + +button-active = FFF3C4 +button = FFF3C4 +button-disabled = 939bb6 + +highlight = 9f45b0 +highlight-elevated = 9f45b0 + +shadow = 000000 +selected-row = FFFFFF +misc = 7F7F7F +notification-error = E22134 +notification = 4687d6 +tab-active = 333333 +player = 181818 + +[Orange] +star = ffe234 +star-glow = fff3ad +shooting-star = fff099 +shooting-star-glow = fffcea + +main = 000000 ; becomes 100% transparent via javascript +main-elevated = e69138 +card = c37728 + +sidebar = e69138 ; bottom part of sky +sidebar-alt = 000000 ; top part of sky + +text = FFFFFF +subtext = FFFFFF + +button-active = e06666 +button = fbe39b +button-disabled = 000000 + +highlight = 191919 +highlight-elevated = e69138 + +shadow = 000000 +selected-row = FFFFFF +misc = f9f7db +notification-error = E22134 +notification = e69138 +tab-active = 333333 +player = 181818 + +[Sky] +star = FFFFFF +star-glow = FFFFFF +shooting-star = FFFFFF +shooting-star-glow = FFFFFF + +main = 000000 +main-elevated = 6b94f5 +card = 6b94f5 + +sidebar = 62cff4 +sidebar-alt = 1e48a9 + +text = FFFFFF +subtext = 040a18 + +button-active = FFF3C4 +button = FFF3C4 +button-disabled = 000000 + +highlight = 95b3f8 +highlight-elevated = aac2f9 + +shadow = 000000 +selected-row = FFFFFF +misc = 7F7F7F +notification-error = E22134 +notification = 4687d6 +tab-active = 333333 +player = 181818 + +[Sunrise] +star = FFFFFF +star-glow = FFFFFF +shooting-star = FFFFFF +shooting-star-glow = FFFFFF + +main = 000000 +main-elevated = C49C48 +card = C49C48 + +sidebar = F83D41 +sidebar-alt = FFAE41 + +text = FFFFFF +subtext = E0E0E0 + +button-active = FFF3C4 +button = FFF3C4 +button-disabled = 000000 + +highlight = 191919 +highlight-elevated = C49C48 + +shadow = 000000 +selected-row = 000000 +misc = 7F7F7F +notification-error = E22134 +notification = 4687d6 +tab-active = 333333 +player = 181818 \ No newline at end of file diff --git a/dot-config/spicetify/Themes/StarryNight/images/base.png b/dot-config/spicetify/Themes/StarryNight/images/base.png new file mode 100644 index 0000000..d9dac62 Binary files /dev/null and b/dot-config/spicetify/Themes/StarryNight/images/base.png differ diff --git a/dot-config/spicetify/Themes/StarryNight/images/cotton-candy.png b/dot-config/spicetify/Themes/StarryNight/images/cotton-candy.png new file mode 100644 index 0000000..84ad368 Binary files /dev/null and b/dot-config/spicetify/Themes/StarryNight/images/cotton-candy.png differ diff --git a/dot-config/spicetify/Themes/StarryNight/images/forest.png b/dot-config/spicetify/Themes/StarryNight/images/forest.png new file mode 100644 index 0000000..43e0d14 Binary files /dev/null and b/dot-config/spicetify/Themes/StarryNight/images/forest.png differ diff --git a/dot-config/spicetify/Themes/StarryNight/images/galaxy.png b/dot-config/spicetify/Themes/StarryNight/images/galaxy.png new file mode 100644 index 0000000..9ebf48b Binary files /dev/null and b/dot-config/spicetify/Themes/StarryNight/images/galaxy.png differ diff --git a/dot-config/spicetify/Themes/StarryNight/images/orange.png b/dot-config/spicetify/Themes/StarryNight/images/orange.png new file mode 100644 index 0000000..7df1098 Binary files /dev/null and b/dot-config/spicetify/Themes/StarryNight/images/orange.png differ diff --git a/dot-config/spicetify/Themes/StarryNight/images/sky.png b/dot-config/spicetify/Themes/StarryNight/images/sky.png new file mode 100644 index 0000000..b00d74b Binary files /dev/null and b/dot-config/spicetify/Themes/StarryNight/images/sky.png differ diff --git a/dot-config/spicetify/Themes/StarryNight/images/sunrise.png b/dot-config/spicetify/Themes/StarryNight/images/sunrise.png new file mode 100644 index 0000000..2facc80 Binary files /dev/null and b/dot-config/spicetify/Themes/StarryNight/images/sunrise.png differ diff --git a/dot-config/spicetify/Themes/StarryNight/theme.js b/dot-config/spicetify/Themes/StarryNight/theme.js new file mode 100644 index 0000000..af4ee98 --- /dev/null +++ b/dot-config/spicetify/Themes/StarryNight/theme.js @@ -0,0 +1,142 @@ +function waitForElement(els, func, timeout = 100) { + const queries = els.map((el) => document.querySelector(el)); + if (queries.every((a) => a)) { + func(queries); + } else if (timeout > 0) { + setTimeout(waitForElement, 300, els, func, --timeout); + } +} + +function random(min, max) { + // min inclusive max exclusive + return Math.random() * (max - min) + min; +} + +waitForElement(['.Root__top-container'], ([topContainer]) => { + const r = document.documentElement; + const rs = window.getComputedStyle(r); + + const backgroundContainer = document.createElement('div'); + backgroundContainer.className = 'starrynight-bg-container'; + topContainer.appendChild(backgroundContainer); + + // to position stars and shooting stars between the background and everything else + const rootElement = document.querySelector('.Root__top-container'); + rootElement.style.zIndex = '0'; + + // create the stars + const canvasSize = + backgroundContainer.clientWidth * backgroundContainer.clientHeight; + const starsFraction = canvasSize / 4000; + for (let i = 0; i < starsFraction; i++) { + const size = Math.random() < 0.5 ? 1 : 2; + + const star = document.createElement('div'); + star.style.position = 'absolute'; + star.style.left = `${random(0, 99)}%`; + star.style.top = `${random(0, 99)}%`; + star.style.opacity = random(0.5, 1); + star.style.width = `${size}px`; + star.style.height = `${size}px`; + star.style.backgroundColor = rs.getPropertyValue('--spice-star'); + star.style.zIndex = '-1'; + star.style.borderRadius = '50%'; + + if (Math.random() < 1 / 5) { + star.style.animation = `twinkle${ + Math.floor(Math.random() * 4) + 1 + } 5s infinite`; + } + + backgroundContainer.appendChild(star); + } + + // handles resizing of playbar panel to match right sidebar below it + const playbar = document.querySelector('.Root__now-playing-bar'); + const rightbar = document.querySelector('.Root__right-sidebar'); + + const resizeObserver = new ResizeObserver((entries) => { + for (const entry of entries) { + if (entry.target === rightbar) { + let newWidth = entry.contentRect.width; + if (newWidth === 0) { + const localStorageWidth = localStorage.getItem( + '223ni6f2epqcidhx5etjafeai:panel-width-saved' + ); + if (localStorageWidth) { + newWidth = localStorageWidth; + } else { + newWidth = 420; + } + } + playbar.style.width = `${newWidth}px`; + break; + } + } + }); + + resizeObserver.observe(rightbar); + + // start or stop spinning animation based on whether something is playing + const targetElement = document.querySelector('[data-encore-id="buttonPrimary"]'); + + const playObserver = new MutationObserver((mutationsList, observer) => { + for (const mutation of mutationsList) { + if ( + mutation.type === 'attributes' && + mutation.attributeName === 'aria-label' + ) { + handleLabelChange(); + } + } + }); + + const playConfig = { attributes: true, attributeFilter: ['aria-label'] }; + + playObserver.observe(targetElement, playConfig); + + function handleLabelChange() { + const img = document.querySelector( + '.main-nowPlayingWidget-coverArt .cover-art img' + ); + // checks the state of the play button on the playbar + if (document.querySelector('[data-encore-id="buttonPrimary"]').getAttribute('aria-label') == 'Pause'){ + img.classList.add('running-animation'); + } else { + img.classList.remove('running-animation'); + } + } + + /* + Pure CSS Shooting Star Animation Effect Copyright (c) 2021 by Delroy Prithvi (https://codepen.io/delroyprithvi/pen/LYyJROR) + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + for (let i = 0; i < 4; i++) { + const shootingstar = document.createElement('span'); + shootingstar.className = 'shootingstar'; + if (Math.random() < 0.75) { + shootingstar.style.top = '-4px'; // hidden off screen when animation is delayed + shootingstar.style.right = `${random(0, 90)}%`; + } else { + shootingstar.style.top = `${random(0, 50)}%`; + shootingstar.style.right = '-4px'; // hidden when animation is delayed + } + + const shootingStarGlowColor = `rgba(${rs.getPropertyValue( + '--spice-rgb-shooting-star-glow' + )},${0.1})`; + shootingstar.style.boxShadow = `0 0 0 4px ${shootingStarGlowColor}, 0 0 0 8px ${shootingStarGlowColor}, 0 0 20px ${shootingStarGlowColor}`; + + shootingstar.style.animationDuration = `${ + Math.floor(Math.random() * 3) + 3 + }s`; + shootingstar.style.animationDelay = `${Math.floor(Math.random() * 7)}s`; + + backgroundContainer.appendChild(shootingstar); + } +}); diff --git a/dot-config/spicetify/Themes/StarryNight/user.css b/dot-config/spicetify/Themes/StarryNight/user.css new file mode 100644 index 0000000..819bec4 --- /dev/null +++ b/dot-config/spicetify/Themes/StarryNight/user.css @@ -0,0 +1,391 @@ +.button-module__button___hf2qg_marketplace { + color: var(--spice-subtext) +} + +.main-entityHeader-backgroundColor { + background-color: #00000000 !important; +} + +.main-actionBarBackground-background { + background-color: #00000000 !important; +} + +.main-home-homeHeader { + background-color: #00000000 !important; +} + +.Root__top-container { + background: linear-gradient(180deg, var(--spice-sidebar-alt) 0%, var(--spice-sidebar) 100%); + overflow: hidden; + grid-template-areas: + "left-sidebar main-view now-playing-bar" + "left-sidebar main-view right-sidebar"; +} + +.global-nav .Root__top-container { + grid-template-areas: + "global-nav global-nav global-nav" + "left-sidebar main-view now-playing-bar" + "left-sidebar main-view right-sidebar" !important; + grid-template-rows: auto 1fr 1fr; +} + +.Root__right-sidebar { + width: min-content; +} + +.Root__now-playing-bar { + width: var(--panel-width); +} + +.main-topBar-background { + background-color: var(--spice-highlight) !important; +} + +.Root__nav-bar { + background-color: #00000000 !important; +} + +.main-trackList-trackListRow:hover { + background-color: var(--spice-highlight); +} + +.main-playPauseButton-button { + background-color: var(--spice-button); +} + +.rX_OmqCngvY5ZCoYBZgb { + background-color: #00000000 !important; +} + +.main-yourLibraryX-entryPoints { + background-color: #00000000 !important; +} + +.marketplace-header { + background-color: #00000000 !important; +} + +.EmeHQXR87mUskYK6xEde { + background-color: #00000000 !important; +} + +.lyrics-lyrics-background { + background-color: #00000000 !important; +} + +.main-actionBarBackground-background { + background-image: linear-gradient(rgba(var(--spice-rgb-shadow), .6) 0, #000000 100%), #00000000 !important; + animation: none !important; + -webkit-animation: none !important; +} + +.main-entityHeader-background.main-entityHeader-overlay { + background-image: none !important; + animation: none !important; + -webkit-animation: none !important; +} + +.main-entityHeader-background.main-entityHeader-overlay:after { + background-image: none !important; + animation: none !important; + -webkit-animation: none !important; +} + +.pUNc2aOeOQANHrhYa1GU .RDZ61ETnag1ilfZTkVxe { + color: #000000 !important; +} + +.playlist-playlist-playlistContent { + background: #00000000 !important; +} + +.main-nowPlayingBar-nowPlayingBar { + min-height: 400px; +} + +.main-nowPlayingBar-container { + flex-direction: column; + min-width: 280px; + max-width: 420px; +} + +.main-nowPlayingBar-nowPlayingBar { + flex-direction: column; +} + +[data-right-sidebar-hidden] .Root__main-view { + grid-area: main-view/main-view/main-view/span 1; +} + +.Root__main-view { + background-color: #00000000 !important; +} + +.main-home-homeHeader { + background-image: linear-gradient(rgba(var(--spice-rgb-shadow), .6) 0, #00000000 100%), var(--background-noise); +} + +.main-nowPlayingBar-center { + width: 100%; +} + +.main-nowPlayingBar-left { + width: 100%; +} + +.HD9s7U5E1RLSWKpXmrqx { + background-color: #00000000; + margin: auto; + width: 100%; +} + +.main-nowPlayingWidget-coverArt .cover-art { + height: 220px !important; + width: 220px !important; + margin: auto; + background-color: #00000000; + box-shadow: 0 0 0px var(--spice-rgb-shadow); +} + +.main-nowPlayingWidget-coverArt .cover-art img { + border-radius: 50%; + animation: spin 25s linear infinite; + animation-play-state: paused; + background-color: #00000000; + box-shadow: 0 0 5px 5px var(--spice-text); +} + +.running-animation { + animation-play-state: running !important; +} + +.main-coverSlotCollapsed-container { + width: 100%; + height: 100%; +} + +.main-coverSlotCollapsed-container> :first-child { + width: 100%; + height: 100%; +} + +.main-coverSlotCollapsed-container> :first-child> :first-child { + width: 100%; + height: 100%; + background-color: #00000000; +} + +.main-nowPlayingWidget-coverArt { + width: 100%; + height: 100%; + padding-top: 5px; + padding-bottom: 5px; + background-color: #00000000; +} + +.main-nowPlayingWidget-nowPlaying { + width: 100%; + flex-direction: row; + flex-wrap: wrap; + justify-content: center; +} + +.main-coverSlotCollapsed-expandButton { + right: 25%; +} + +.player-controls__buttons.player-controls__buttons--new-icons { + order: 2; +} + +.playback-bar { + order: 1; +} + +.main-nowPlayingBar-right { + width: 100%; +} + +.main-nowPlayingBar-extraControls { + justify-content: space-evenly; +} + +.main-tag-container { + color: var(--spice-sidebar); +} + +.starrynight-bg-container { + position: fixed; + z-index: 0; + pointer-events: none; + height: 100%; + width: 100%; + top: 0; + left: 0; + background-color: transparent; +} + +.ffFwfKcPDbmAPLXzxzKq { + background-color: #00000000 !important; +} + +@keyframes twinkle1 { + 0% { + box-shadow: 0px 0px 8px 2px var(--spice-star-glow); + } + + 20% { + box-shadow: 0px 0px -8px 2px var(--spice-star-glow); + } + + 40% { + box-shadow: 0px 0px -8px 2px var(--spice-star-glow); + } + + 60% { + box-shadow: 0px 0px -8px 2px var(--spice-star-glow); + } + + 80% { + box-shadow: 0px 0px 8px 2px var(--spice-star-glow); + } + + 100% { + box-shadow: 0px 0px 8px 2px var(--spice-star-glow); + } +} + +@keyframes twinkle2 { + 0% { + box-shadow: 0px 0px 8px 2px var(--spice-star-glow); + } + + 20% { + box-shadow: 0px 0px 8px 2px var(--spice-star-glow); + } + + 40% { + box-shadow: 0px 0px -8px 2px var(--spice-star-glow); + } + + 60% { + box-shadow: 0px 0px -8px 2px var(--spice-star-glow); + } + + 80% { + box-shadow: 0px 0px -8px 2px var(--spice-star-glow); + } + + 100% { + box-shadow: 0px 0px 8px 2px var(--spice-star-glow); + } +} + +@keyframes twinkle3 { + 0% { + box-shadow: 0px 0px -8px 2px var(--spice-star-glow); + } + + 20% { + box-shadow: 0px 0px 8px 2px var(--spice-star-glow); + } + + 40% { + box-shadow: 0px 0px 8px 2px var(--spice-star-glow); + } + + 60% { + box-shadow: 0px 0px 8px 2px var(--spice-star-glow); + } + + 80% { + box-shadow: 0px 0px -8px 2px var(--spice-star-glow); + } + + 100% { + box-shadow: 0px 0px -8px 2px var(--spice-star-glow); + } +} + +@keyframes twinkle4 { + 0% { + box-shadow: 0px 0px -8px 2px var(--spice-star-glow); + } + + 20% { + box-shadow: 0px 0px -8px 2px var(--spice-star-glow); + } + + 40% { + box-shadow: 0px 0px 8px 2px var(--spice-star-glow); + } + + 60% { + box-shadow: 0px 0px 8px 2px var(--spice-star-glow); + } + + 80% { + box-shadow: 0px 0px 8px 2px var(--spice-star-glow); + } + + 100% { + box-shadow: 0px 0px -8px 2px var(--spice-star-glow); + } +} + +@keyframes spin { + from { + transform: rotate(0deg); + } + + to { + transform: rotate(360deg); + } +} + +/* +Pure CSS Shooting Star Animation Effect Copyright (c) 2021 by Delroy Prithvi (https://codepen.io/delroyprithvi/pen/LYyJROR) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ +.shootingstar { + position: absolute; + width: 4px; + height: 4px; + background: var(--spice-shooting-star); + border-radius: 50%; + animation: animate 3s linear infinite; + left: initial; + z-index: -1; +} + +.shootingstar::before { + content: ''; + position: absolute; + top: 50%; + transform: translateY(-50%); + width: 300px; + height: 1px; + background: linear-gradient(90deg, var(--spice-shooting-star), transparent); +} + +@keyframes animate { + 0% { + transform: rotate(315deg) translateX(0); + opacity: 1; + } + + 70% { + opacity: 1; + } + + 100% { + transform: rotate(315deg) translateX(-1500px); + opacity: 0; + } +} \ No newline at end of file diff --git a/dot-config/spicetify/Themes/THEMES.md b/dot-config/spicetify/Themes/THEMES.md new file mode 100644 index 0000000..2b72142 --- /dev/null +++ b/dot-config/spicetify/Themes/THEMES.md @@ -0,0 +1,322 @@ +# Themes preview + +Here you can find a preview of all the themes. Some of them may have different colour schemes (in that case you'll find different entries in the same theme, each one named after the colour scheme). + +## SharkBlue +![SharkBlue Screenshot](SharkBlue/screenshot.png) + +## BurntSienna + +![BurntSienna Screenshot](BurntSienna/screenshot.png) + +## Default + +![Ocean Screenshot](Default/ocean.png) + +## Dreary + +#### BIB + +![BIB Screenshot](Dreary/bib.png) + +#### Psycho + +![Psycho Screenshot](Dreary/psycho.png) + +#### Deeper + +![Deeper Screenshot](Dreary/deeper.png) + +#### Mono + +![Mono Screenshot](Dreary/mono.png) + +#### Golden + +![Golden Screenshot](Dreary/golden.png) + +#### Graytone-Blue + +![Graytone-blue Sreenshot](Dreary/graytone-blue.png) + +## Dribbblish + +#### Base + +![base](Dribbblish/base.png) + +#### White + +![white](Dribbblish/white.png) + +#### Dark + +![dark](Dribbblish/dark.png) + +#### Nord-Light + +![nord-light](Dribbblish/nord-light.png) + +#### Nord-Dark + +![nord-dark](Dribbblish/nord-dark.png) + +#### Beach-Sunset + +![beach-sunset](Dribbblish/beach-sunset.png) + +#### Purple + +![purple](Dribbblish/purple.png) + +#### Samurai + +![samurai](Dribbblish/samurai.png) + +#### Gruvbox + +![gruvbox](Dribbblish/gruvbox.png) + +#### Gruvbox Material Dark +![gruvbox-material-dark](Dribbblish/gruvbox-material-dark.png) + +#### Rosé Pine + +![rosepine](Dribbblish/rosepine.png) + +#### Lunar + +![lunar](Dribbblish/lunar.png) + +#### Catppuccin Latte + +![catppuccin-latte](Dribbblish/catppuccin-latte.png) + +#### Catppuccin Frappe + +![catppuccin-frappe](Dribbblish/catppuccin-frappe.png) + +#### Catppuccin Macchiato + +![catppuccin-macchiato](Dribbblish/catppuccin-macchiato.png) + +#### Catppuccin Mocha + +![catppuccin-mocha](Dribbblish/catppuccin-mocha.png) + +## Matte + +#### Matte +![Matte](Matte/screenshots/ylx-matte.png) + +#### Periwinkle + +| ![Periwinkle](Matte/screenshots/ylx-periwinkle.png) | ![Periwkinle-Dark](Matte/screenshots/ylx-periwinkle-dark.png) | +| :-------------------------------------------------: | :-----------------------------------------------------------: | +| Light | Dark | + +#### Porcelain +![Porcelain](Matte/screenshots/ylx-porcelain.png) + +#### Gray +![Gray](Matte/screenshots/ylx-gray.png) +| ![Gray-Light](Matte/screenshots/ylx-gray-light.png) | ![Gray-Dark1](Matte/screenshots/ylx-gray-dark1.png) | +| :-------------------------------------------------: | :-------------------------------------------------: | +| Light | Dark | + +## Nightlight + +![Nightlight](Nightlight/screenshots/nightlight.png) + +## Onepunch + +#### Dark + +![dark_ylx](Onepunch/screenshots/dark_ylx.png) + +#### Light + +![light_ylx](Onepunch/screenshots/light_ylx.png) + +#### Legacy + +![legacy_ylx](Onepunch/screenshots/legacy_ylx.png) + +## Sleek + +| | | +| :-----------------------------------: | :---------------------------------: | +| ![BladeRunner](Sleek/bladerunner.png) | ![Cherry](Sleek/cherry.png) | +| BladeRunner | Cherry | +| ![Coral](Sleek/coral.png) | ![Deep](Sleek/deep.png) | +| Coral | Deep | +| ![Deeper](Sleek/deeper.png) | ![Elementary](Sleek/elementary.png) | +| Deeper | Elementary | +| ![Futura](Sleek/futura.png) | ![Nord](Sleek/nord.png) | +| Futura | Nord | +| ![Psycho](Sleek/psycho.png) | ![UltraBlack](Sleek/ultrablack.png) | +| Psycho | UltraBlack | +| ![Wealthy](Sleek/wealthy.png) | ![Dracula](Sleek/dracula.png) | +| Wealthy | Dracula | +| ![VantaBlack](Sleek/vantablack.png) | ![RosePine](Sleek/rosepine.png) | +| VantaBlack | RosePine | +| ![Eldritch](Sleek/eldritch.png) | | +| Eldritch | | + +## StarryNight + +#### Base +![Base](StarryNight/images/base.png) + +#### Cotton Candy +![Cotton-candy](StarryNight/images/cotton-candy.png) + +#### Forest +![Forest](StarryNight/images/forest.png) + +#### Galaxy +![Galaxy](StarryNight/images/galaxy.png) + +#### Orange +![Orange](StarryNight/images/orange.png) + +#### Sky +![Sky](StarryNight/images/sky.png) + +#### Sunrise +![Sunrise](StarryNight/images/sunrise.png) + +## text + +### Spotify + +![Spotify](text/screenshots/Spotify.png) + +### Spicetify + +![Spicetify](text/screenshots/Spicetify.png) + +### Catppuccin + +| | | +| :------------------------------------------------------: | :--------------------------------------------------------------: | +| ![CatppuccinMocha](text/screenshots/CatppuccinMocha.png) | ![CatppuccinMacchiato](text/screenshots/CatppuccinMacchiato.png) | +| Catppuccin Mocha | Catppuccin Macchiato | +| ![CatppuccinLatte](text/screenshots/CatppuccinLatte.png) | | +| Catppuccin Latte | | + +#### Dracula + +![Dracula](text/screenshots/Dracula.png) + +#### ForestGreen + +![ForestGreen](text/screenshots/ForestGreen.png) + +#### Gruvbox + +![Gruvbox](text/screenshots/Gruvbox.png) + +#### Kanagawa + +![Kanagawa](text/screenshots/Kanagawa.png) + +#### Nord + +![Nord](text/screenshots/Nord.png) + +#### Rigel + +![CatppuccinMaRigelcchiato](text/screenshots/Rigel.png) + +#### RosePine + +| ![RosePine](text/screenshots/RosePine.png) | ![RosePineMoon](text/screenshots/RosePineMoon.png) | ![RosePineDawn](text/screenshots/RosePineDawn.png) | +| :----------------------------------------: | :------------------------------------------------: | :------------------------------------------------: | +| Rose Pine | Rose Pine Moon | Rose Pine Dawn | + +#### Solarized + +![Solarized](text/screenshots/Solarized.png) + +#### TokyoNight + +| ![TokyoNight](text/screenshots/TokyoNight.png) | ![TokyoNightStorm](text/screenshots/TokyoNightStorm.png) | +| :--------------------------------------------: | :------------------------------------------------------: | +| Tokyo Night | Tokyo Night Storm | + + +## Turntable + +![Turntable](Turntable/screenshots/fad.png) + +## Ziro + +#### Blue + +| ![Album](https://raw.githubusercontent.com/schnensch0/ziro/main/preview/album-blue-dark.png) | ![Artist](https://raw.githubusercontent.com/schnensch0/ziro/main/preview/artist-blue-light.png) | +| :------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------: | +| Dark | Light | + +#### Gray + +| ![Cards](https://raw.githubusercontent.com/schnensch0/ziro/main/preview/cards-gray-dark.png) | ![Search](https://raw.githubusercontent.com/schnensch0/ziro/main/preview/search-gray-light.png) | +| :------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------: | +| Dark | Light | + +#### Green + +| ![Podcast](https://raw.githubusercontent.com/schnensch0/ziro/main/preview/podcast-green-dark.png) | ![Podcast](https://raw.githubusercontent.com/schnensch0/ziro/main/preview/podcast-green-light.png) | +| :-----------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------: | +| Dark | Light | + +#### Orange + +| ![Search](https://raw.githubusercontent.com/schnensch0/ziro/main/preview/search-orange-dark.png) | ![Library](https://raw.githubusercontent.com/schnensch0/ziro/main/preview/library-orange-light.png) | +| :----------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------: | +| Dark | Light | + +#### Purple + +| ![Single](https://raw.githubusercontent.com/schnensch0/ziro/main/preview/single-purple-dark.png) | ![Playlist](https://raw.githubusercontent.com/schnensch0/ziro/main/preview/playlist-purple-light.png) | +| :----------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------: | +| Dark | Light | + +#### Red + +| ![Profile](https://raw.githubusercontent.com/schnensch0/ziro/main/preview/profile-red-dark.png) | ![Queue](https://raw.githubusercontent.com/schnensch0/ziro/main/preview/queue-red-light.png) | +| :---------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------: | +| Dark | Light | + +#### Rosé Pine + + + +| ![Playlists](Ziro/screenshots/rose-pine-moon.jpg) | ![Playlists](Ziro/screenshots/rose-pine-dawn.jpg) | +| :-----------------------------------------------: | :-----------------------------------------------: | +| Moon | Dawn | + +| ![Playlists](Ziro/screenshots/rose-pine.jpg) | +| :------------------------------------------: | +| Rose-Pine | + +## Flow + +#### Ocean +img + + +#### Pink +img + + +#### Silver +img + + +#### Violet +img + + +### Blossom +img diff --git a/dot-config/spicetify/Themes/Turntable/LICENSE b/dot-config/spicetify/Themes/Turntable/LICENSE new file mode 100644 index 0000000..52ab52a --- /dev/null +++ b/dot-config/spicetify/Themes/Turntable/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2021 Grason Chan + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/dot-config/spicetify/Themes/Turntable/README.md b/dot-config/spicetify/Themes/Turntable/README.md new file mode 100644 index 0000000..3023bc2 --- /dev/null +++ b/dot-config/spicetify/Themes/Turntable/README.md @@ -0,0 +1,85 @@ +# Turntable + +Based on Spotify original theme. + +**Note:** Require Spicetify **v2.2.0** or higher! Otherwise, performance problems will happen when the turntable rotate! + +View the **CHANGELOG** [here](https://github.com/grasonchan/spotify-spice/blob/master/CHANGELOG.md). + +## Screenshots + +
+ turntable +
+
+ full app display +
+
+ full app display - vertical mode +
+ +## More + +### About Turntable + +Use CSS to achieve, not picture. This means it can be scaled to any size, but make sure the album cover is not blurry. + +Actually, the rotation of the turntable was created at spicetify v1, but in some cases, animation is affected by other factors. I think "fullAppDisplay.js high GPU usage" is the reason. Fortunately, it's normal now! + +### Info + +Designed and developed by [Grason Chan](https://github.com/grasonchan). + +The turntable inspired by [Netease Music](https://music.163.com) and [Smartisan OS build-in Music Player](https://www.smartisan.com/os/#/beauty) (not include code). + +Develop and test on macOS. If there's any problem, please open issue or PR. + +### Installation + +1. add extension - [Full App Display](https://spicetify.app/docs/getting-started/extensions#full-app-display) + +```shell +spicetify config extensions fullAppDisplay.js +spicetify apply +``` + +2. put **Turntable** into the **.config/spicetify** + +```shell +cd spicetify-themes +cp -r Turntable ~/.config/spicetify/Themes +``` + +3. select the theme, then apply + +```shell +spicetify config current_theme Turntable +spicetify config inject_theme_js 1 +spicetify apply +``` + +### How to Uninstall + +1. remove **Turntable** and **rotateTurntable.js** + +```shell +rm -r ~/.config/spicetify/Themes/Turntable +``` + +2. config to spicetify default theme + +```shell +spicetify config current_theme SpicetifyDefault +``` + +3. remove extension - Full App Display + +```shell +spicetify config extensions fullAppDisplay.js- +``` + +4. apply + +```shell +spicetify apply +``` diff --git a/dot-config/spicetify/Themes/Turntable/color.ini b/dot-config/spicetify/Themes/Turntable/color.ini new file mode 100644 index 0000000..ea4a617 --- /dev/null +++ b/dot-config/spicetify/Themes/Turntable/color.ini @@ -0,0 +1,3 @@ +; empty config to fix `spicetify apply` error ouput + +[turntable] diff --git a/dot-config/spicetify/Themes/Turntable/screenshots/blur_fad.png b/dot-config/spicetify/Themes/Turntable/screenshots/blur_fad.png new file mode 100644 index 0000000..1b0a439 Binary files /dev/null and b/dot-config/spicetify/Themes/Turntable/screenshots/blur_fad.png differ diff --git a/dot-config/spicetify/Themes/Turntable/screenshots/blur_fad_vertical.png b/dot-config/spicetify/Themes/Turntable/screenshots/blur_fad_vertical.png new file mode 100644 index 0000000..0f0eae5 Binary files /dev/null and b/dot-config/spicetify/Themes/Turntable/screenshots/blur_fad_vertical.png differ diff --git a/dot-config/spicetify/Themes/Turntable/screenshots/fad.png b/dot-config/spicetify/Themes/Turntable/screenshots/fad.png new file mode 100644 index 0000000..012ff77 Binary files /dev/null and b/dot-config/spicetify/Themes/Turntable/screenshots/fad.png differ diff --git a/dot-config/spicetify/Themes/Turntable/screenshots/fad_vertical.png b/dot-config/spicetify/Themes/Turntable/screenshots/fad_vertical.png new file mode 100644 index 0000000..19be1bc Binary files /dev/null and b/dot-config/spicetify/Themes/Turntable/screenshots/fad_vertical.png differ diff --git a/dot-config/spicetify/Themes/Turntable/screenshots/turntable.png b/dot-config/spicetify/Themes/Turntable/screenshots/turntable.png new file mode 100644 index 0000000..638f8e7 Binary files /dev/null and b/dot-config/spicetify/Themes/Turntable/screenshots/turntable.png differ diff --git a/dot-config/spicetify/Themes/Turntable/theme.js b/dot-config/spicetify/Themes/Turntable/theme.js new file mode 100644 index 0000000..a5e4996 --- /dev/null +++ b/dot-config/spicetify/Themes/Turntable/theme.js @@ -0,0 +1,331 @@ +window.addEventListener("load", rotateTurntable = () => { + const SpicetifyOrigin = Spicetify.Player.origin; + fadBtn = document.querySelector(".main-topBar-button[title='Full App Display']"); + if (!fadBtn){ + const possibleFadBtn = document.querySelectorAll(".main-topBar-button") + for (const btn of possibleFadBtn) { + if (btn._tippy !== undefined && btn._tippy.props.content === "Full App Display") { + fadBtn = btn; + break; + } + } + } + + if (!SpicetifyOrigin?._state || !fadBtn) { + setTimeout(rotateTurntable, 250); + return; + } + + const adModalStyle = document.createElement("style"); + const STYLE_FOR_AD_MODAL = ` +.ReactModalPortal { + display: none +} +`; + adModalStyle.innerHTML = STYLE_FOR_AD_MODAL; + + const fadHeartContainer = document.createElement("div"); + const fadHeart = document.createElement("button"); + const fadHeartSvg = document.createElementNS("http://www.w3.org/2000/svg", "svg"); + fadHeartContainer.classList.add("fad-heart-container"); + fadHeart.classList.add("fad-heart"); + fadHeartSvg.setAttribute("width", "16"); + fadHeartSvg.setAttribute("height", "16"); + fadHeartSvg.setAttribute("viewBox", "0 0 16 16"); + fadHeart.appendChild(fadHeartSvg); + fadHeartContainer.appendChild(fadHeart); + + const songPreviewContainer = document.createElement("div"); + const previousSong = document.createElement("button"); + const nextSong = document.createElement("button"); + songPreviewContainer.classList.add("song-preview"); + songPreviewContainer.append(previousSong, nextSong); + + const fadArtistSvg = document.createElementNS("http://www.w3.org/2000/svg", "svg"); + fadArtistSvg.setAttribute("width", "16"); + fadArtistSvg.setAttribute("height", "16"); + fadArtistSvg.setAttribute("viewBox", "0 0 16 16"); + fadArtistSvg.setAttribute("fill", "currentColor"); + fadArtistSvg.innerHTML = Spicetify.SVGIcons.artist; + const fadAlbumSvg = document.createElementNS("http://www.w3.org/2000/svg", "svg"); + fadAlbumSvg.setAttribute("width", "16"); + fadAlbumSvg.setAttribute("height", "16"); + fadAlbumSvg.setAttribute("viewBox", "0 0 16 16"); + fadAlbumSvg.setAttribute("fill", "currentColor"); + fadAlbumSvg.innerHTML = Spicetify.SVGIcons.album; + + let isPlaying, clickedFadBtn; + + function handleRotate(eventType) { + if (eventType === "load" && !SpicetifyOrigin._state.item) return; + + const coverArt = document.querySelector(".main-nowPlayingWidget-coverArt > .cover-art"); + const fadArt = document.querySelector("#fad-art"); + + if ( + eventType === "load" && !SpicetifyOrigin._state.isPaused + || + eventType === "playpause" && !isPlaying + || + !eventType && isPlaying + ) { + coverArt?.style.setProperty("animation-play-state", "running"); + fadArt?.style.setProperty("animation-play-state", "running"); + if (eventType) isPlaying = true; + } else { + coverArt?.style.setProperty("animation-play-state", "paused"); + fadArt?.style.setProperty("animation-play-state", "paused"); + if (eventType) isPlaying = false; + } + } + + function handleFadBtn(event) { + event.stopPropagation(); + } + + function handleFadControl() { + const fadControlsBtns = document.querySelectorAll("#fad-controls button"); + + for (const fadControl of fadControlsBtns) { + fadControl.addEventListener("dblclick", handleFadBtn); + } + } + + function handleFadHeart() { + const isFadHeartContainer = document.querySelector(".fad-heart-container"); + + const stateItem = SpicetifyOrigin._state.item; + + if (stateItem.isLocal || stateItem.type === "ad") { + isFadHeartContainer?.remove(); + return; + } + + if (!isFadHeartContainer) document.querySelector("#fad-foreground")?.appendChild(fadHeartContainer); + + if (Spicetify.Player.getHeart()) { + fadHeartSvg.innerHTML = Spicetify.SVGIcons["heart-active"]; + fadHeart.classList.add("checked"); + } else { + fadHeartSvg.innerHTML = Spicetify.SVGIcons.heart; + fadHeart.classList.remove("checked"); + } + } + + function handleTracksNamePreview() { + const prevTracks = Spicetify.Queue.prevTracks; + const currentTrack = Spicetify.Queue.track; + const nextTracks = Spicetify.Queue.nextTracks; + + trackCondition = element => !element.contextTrack.metadata.hidden && element.provider !== "ad"; + + const prevTrack = prevTracks.slice().reverse().find(trackCondition); + const nextTrack = nextTracks.find(trackCondition); + + const prevTrackTitle = prevTrack.contextTrack.metadata.title; + const currentTrackTitle = currentTrack.contextTrack.metadata.title; + const nextTrackTitle = nextTrack.contextTrack.metadata.title; + + if (currentTrackTitle === prevTrackTitle && currentTrackTitle === nextTrackTitle) { + previousSong.innerHTML = ""; + nextSong.innerHTML = ""; + } else { + previousSong.innerHTML = `< ${prevTrackTitle}`; + nextSong.innerHTML = `${nextTrackTitle} >`; + } + } + + function handleConfigSwitch() { + const fullAppDisplay = document.querySelector("#full-app-display"); + const fadFg = document.querySelector("#fad-foreground"); + const genericModal = document.querySelector("generic-modal"); + + const stateItem = SpicetifyOrigin._state.item; + + if (!stateItem.isLocal && stateItem.type !== "ad") fadFg.appendChild(fadHeartContainer); + fullAppDisplay.appendChild(songPreviewContainer); + + genericModal.remove(); + + handleIcons(); + handleRotate(); + handleFadControl(); + } + + function handleBackdrop(fullAppDisplay, setBlurBackdropBtn) { + if (!+localStorage.getItem("enableBlurFad")) { + fullAppDisplay.dataset.isBlurFad = "true"; + setBlurBackdropBtn.classList.remove("disabled"); + + localStorage.setItem("enableBlurFad", "1"); + } else { + fullAppDisplay.dataset.isBlurFad = "false"; + setBlurBackdropBtn.classList.add("disabled"); + + localStorage.setItem("enableBlurFad", "0"); + } + } + + function handleIcons() { + const iconsConfig = JSON.parse(localStorage.getItem("full-app-display-config")).icons; + + if (!iconsConfig) return; + + const isFadArtistSvg = document.querySelector("#fad-artist svg"); + const isFadAlbumSvg = document.querySelector("#fad-album svg"); + + if (SpicetifyOrigin._state.item.type === "ad") { + isFadArtistSvg?.remove(); + isFadAlbumSvg?.remove(); + + return; + } + + if (!isFadArtistSvg) { + const fadArtist = document.querySelector("#fad-artist"); + const fadArtistTitle = document.querySelector("#fad-artist span"); + + fadArtist?.insertBefore(fadArtistSvg, fadArtistTitle); + } + + if (!isFadAlbumSvg) { + const fadAlbum = document.querySelector("#fad-album"); + const fadAlbumTitle = document.querySelector("#fad-album span"); + + fadAlbum?.insertBefore(fadAlbumSvg, fadAlbumTitle); + } + } + + function handleContextMenu(fullAppDisplay) { + const configContainer = document.querySelector("#popup-config-container"); + const settingRowReferenceNode = document.querySelectorAll("#popup-config-container > div")[0]; + + const settingRowContainer = document.createElement("div"); + const settingRow = ` +
+ +
+ +
+
+`; + settingRowContainer.innerHTML = settingRow; + configContainer.insertBefore(settingRowContainer, settingRowReferenceNode); + + const configSwitchBtns = document.querySelectorAll("#popup-config-container button.switch"); + const setBlurBackdropBtn = document.querySelector("[data-blur-fad]"); + + for (const configSwitch of configSwitchBtns) { + configSwitch.addEventListener("click", handleConfigSwitch); + } + + setBlurBackdropBtn.addEventListener("click", () => handleBackdrop(fullAppDisplay, setBlurBackdropBtn)); + } + + // Todo + function handleToggleFad(isActive) { + if (isActive) { + document.body.append(adModalStyle); + return; + } + + const billboard = document.querySelector("#view-billboard-ad"); + + billboard?.closest(".ReactModalPortal").remove(); + adModalStyle.remove(); + } + + handleRotate("load"); + + const nowPlayingBarLeft = document.querySelector(".main-nowPlayingBar-left"); + const heartHiddenObserver = new MutationObserver(mutationsList => { + mutationsLoop: + for (const mutation of mutationsList) { + for (const addedNode of mutation.addedNodes) { + if ( + addedNode.matches('svg[class]') + || + addedNode.matches('button[class^="main-addButton-button"]') + ) { + handleFadHeart(); + + break mutationsLoop; + } + } + + for (const removedNode of mutation.removedNodes) { + if ( + removedNode.matches('button[class^="main-addButton-button"]') + ) { + handleFadHeart(); + + break mutationsLoop; + } + } + } + }); + heartHiddenObserver.observe(nowPlayingBarLeft, { + childList: true, + subtree: true, + }); + + const shuffleBtn = document.querySelector(".main-shuffleButton-button"); + const shuffleObserver = new MutationObserver(() => { + setTimeout(handleTracksNamePreview, 500); + }); + shuffleObserver.observe(shuffleBtn, { + attributes: true, + }); + + Spicetify.Player.addEventListener("onplaypause", () => handleRotate("playpause")); + Spicetify.Player.addEventListener("songchange", () => { + setTimeout(() => { + handleIcons(); + handleRotate(); + handleTracksNamePreview(); + }, 500); + }); + + fadHeart.addEventListener("click", Spicetify.Player.toggleHeart); + previousSong.addEventListener("click", () => SpicetifyOrigin.skipToPrevious()); + nextSong.addEventListener("click", () => SpicetifyOrigin.skipToNext()); + + fadHeart.addEventListener("dblclick", handleFadBtn); + previousSong.addEventListener("dblclick", handleFadBtn); + nextSong.addEventListener("dblclick", handleFadBtn); + + function fadBtnClick(){ + const fullAppDisplay = document.querySelector("#full-app-display"); + if (!fullAppDisplay){ + setTimeout(fadBtnClick, 100); + return; + } + + fullAppDisplay.appendChild(songPreviewContainer); + + if (!clickedFadBtn) { + if (+localStorage.getItem("enableBlurFad")) fullAppDisplay.dataset.isBlurFad = "true"; + + handleFadControl(); + + fullAppDisplay.addEventListener("contextmenu", () => handleContextMenu(fullAppDisplay), { once: true }); + + // fullAppDisplay.addEventListener("dblclick", () => handleToggleFad()); + + clickedFadBtn = true; + } + + // handleToggleFad(true); + handleIcons(); + handleFadHeart(); + handleTracksNamePreview(); + handleRotate(); + } + + fadBtn.addEventListener("click", () => fadBtnClick()); + +}); diff --git a/dot-config/spicetify/Themes/Turntable/user.css b/dot-config/spicetify/Themes/Turntable/user.css new file mode 100644 index 0000000..9ad094c --- /dev/null +++ b/dot-config/spicetify/Themes/Turntable/user.css @@ -0,0 +1,430 @@ +:root { + --spotify-main-color: #1db954; + --round-value: 50%; + --main-blur-backdrop: blur(20px) saturate(180%); + --shine: conic-gradient( + from 15deg, + transparent, + #222 45deg, + transparent 90deg 180deg, + #222 225deg, + transparent 270deg 360deg + ) +} + + +/* Remove Upgrade Button, User Name */ +.main-topBar-UpgradeButton, +.main-userWidget-displayName { + display: none +} + + +/* Notification Dot */ +.main-userWidget-notificationDot { + color: #f00 +} + + +/* Navbar */ +.Root__nav-bar { + background-color: #0f0f0f +} + +.main-rootlist-rootlistDividerGradient { + display: none +} + + +/* Search Input */ +.x-searchInput-searchInputInput { + background-color: #2a2a2a +} + +.x-searchInput-searchInputInput, +.x-searchInput-searchInputSearchIcon, +.x-searchInput-searchInputClearButton { + color: #c0c0c0 !important +} + +.x-searchInput-searchInputInput::placeholder { + color: #888 +} + + +/* Playlist */ +.main-entityHeader-backgroundColor, +.main-actionBarBackground-background, +.main-topBar-overlay { + background-color: unset !important +} + +.main-entityHeader-overlay { + background: unset +} + +.main-actionBarBackground-background { + background-image: unset +} + +.main-entityHeader-shadow { + box-shadow: unset +} + +.main-topBar-background { + background-color: #181818 !important +} + +.main-rootlist-wrapper [role="row"]:nth-child(odd) { + background: linear-gradient(to right, #121212, #191919, #121212) +} + + +/* Cover Image */ +.main-nowPlayingWidget-coverExpanded { + transform: translateX(-78px) !important; +} + +.main-coverSlotCollapsed-container { + margin-right: 5px +} + +.main-nowPlayingWidget-coverArt .cover-art.shadow, +.main-nowPlayingWidget-coverArt .cover-art-image { + border-radius: var(--round-value) +} + +.main-nowPlayingWidget-coverArt > .cover-art { + clip-path: circle(50% at 50% 50%); +} + +.main-nowPlayingWidget-coverArt .cover-art.shadow { + width: 62px !important; + height: 62px !important; + box-shadow: unset +} + +.main-nowPlayingWidget-coverArt .cover-art-image { + border: 2px solid #aaa; + box-shadow: 0 0 5px rgba(200, 200, 200, .4) +} + +/* Expand & Collapse Button */ +.main-coverSlotCollapsed-expandButton { + top: 50%; + left: 50%; + transform: translate(-50%, -50%) !important +} + +.main-coverSlotCollapsed-expandButton, +.main-coverSlotExpandedCollapseButton-collapseButton { + backdrop-filter: var(--main-blur-backdrop); + background: unset; + background-color: rgba(9, 9, 9, .2); + transition: background-color .5s, opacity .5s; + border-radius: var(--round-value) +} + +.main-coverSlotCollapsed-expandButton:hover, +.main-coverSlotExpandedCollapseButton-collapseButton:hover { + background: unset; + background-color: rgba(9, 9, 9, .3); + transform: unset +} + +.main-coverSlotCollapsed-chevron, +.main-coverSlotExpandedCollapseButton-chevron { + padding: 5px; + fill: #fff; + transition: fill .5s +} + +.main-coverSlotCollapsed-expandButton:hover .main-coverSlotCollapsed-chevron, +.main-coverSlotExpandedCollapseButton-collapseButton:hover .main-coverSlotExpandedCollapseButton-chevron { + fill: #ddd +} + + +/* Progress Bar */ +.Root__now-playing-bar { + position: relative +} + +.playback-bar { + width: 100%; + position: absolute; + top: 0; + left: 0 +} + +.playback-progressbar { + height: 4px +} + +.x-progressBar-progressBarBg > div > div { + background-color: var(--spotify-main-color) +} + +.playback-bar__progress-time-elapsed, +.main-playbackBarRemainingTime-container { + position: absolute; + top: 12px; + left: 50% +} + +.playback-bar__progress-time-elapsed { + transform: translateX(calc(-100% - 10px)) +} + +.playback-bar__progress-time-elapsed::after { + position: absolute; + left: calc(100% + 10px); + font-weight: bold; + color: var(--spotify-main-color); + content: "/"; + transform: translateX(-50%) +} + +.main-playbackBarRemainingTime-container { + transform: translateX(10px) +} + +.player-controls { + margin-top: 38px +} + + +/* Full App Display */ +#full-app-display { + background: radial-gradient(#242424, #1f1f1f) +} + +#fad-background { + display: none +} + +#fad-art, +#fad-art-image, +#fad-art-inner { + border-radius: var(--round-value) !important +} + +#fad-art { + width: 268px !important; + margin: 80px 100px; + position: relative +} + +#fad-art-image { + box-shadow: 0 0 10px rgba(3, 3, 3, .5) inset +} + +#fad-art-inner { + display: none +} + +#fad-art::before, #fad-art::after { + width: 100%; + height: 100%; + position: absolute; + top: 0; + left: 0; + border-radius: 50%; + content: '' +} + +#fad-art::before { + background: + var(--shine), + radial-gradient(#333, #000); + box-shadow: + 0 0 5px #0a0a0a inset, + 0 0 5px #000; + transform: scale(1.5) +} + +#fad-art::after { + background-color: rgba(60, 60, 60, .1); + transform: scale(1.65); + z-index: -1 +} + +#fad-details { + max-width: 520px !important +} + +#fad-details #fad-title { + font-size: 32px +} + +#fad-details #fad-artist { + margin-top: 10px; + font-size: 24px +} + +#fad-details #fad-album { + margin-top: 6px; + font-size: 16px +} + +#fad-details #fad-artist > *, +#fad-details #fad-album > *, +#fad-details #fad-status > #fad-controls > * > svg { + vertical-align: middle +} + +#fad-details #fad-artist > svg { + width: 24px; + height: 24px +} + +#fad-details #fad-album > svg { + width: 16px; + height: 16px; + margin-left: 4px; + margin-right: 9px +} + +#fad-play > svg { + width: 24px; + height: 24px +} + +#fad-controls > button > svg { + fill: #ccc +} + +#fad-controls > button:hover > svg { + fill: #fff +} + +#fad-progress-container { + font-size: 12px +} + +#fad-elapsed, +#fad-duration { + min-width: 32px !important +} + +#fad-progress { + height: 2px !important; + background-color: rgba(100, 100, 100, .5) !important +} + +#fad-progress-inner { + background-color: var(--spotify-main-color) !important; + box-shadow: unset !important +} + + +/* Blur the Full App Display */ +[data-is-blur-fad = "true"] #fad-background { + display: unset +} + +[data-is-blur-fad = "true"] #fad-art::before { + background: + var(--shine), + radial-gradient(#242424, #000) +} + +[data-is-blur-fad = "true"] #fad-art::after { + background-color: rgba(100, 100, 100, .1); + border: 1px solid rgba(100, 100, 100, .1); + box-shadow: + 0 0 1px rgba(40, 40, 40, .2) inset, + 0 0 1px rgba(200, 200, 200, .2) +} + +[data-is-blur-fad = "true"] #fad-progress { + background-color: rgba(200, 200, 200, .3) !important +} + + +/* Full App Display - heart */ +.fad-heart-container { + width: 40px; + height: 40px; + display: flex; + justify-content: center; + align-items: center +} + +.fad-heart { + width: 16px; + height: 16px; + padding: unset !important; + background-color: unset; + border: unset +} + +.fad-heart svg { + fill: #ccc +} + +.fad-heart svg:hover, +.fad-heart.checked svg { + fill: var(--spotify-main-color) +} + + +/* Full App Display - song preview */ +.song-preview { + width: 100%; + padding: 0 10%; + position: absolute; + bottom: 20px; + display: flex; + justify-content: space-between; +} + +.song-preview > button { + font-size: 14px; + color: #ccc !important; + background-color: unset; + border: unset +} + +.song-preview > button:hover { + color: #fff !important +} + + +/* Responsive */ +@media (max-width: 908px) { + #fad-foreground { + flex-wrap: wrap; + align-content: center + } + + #fad-details { + padding-top: 50px + } +} + +@media (min-width: 1460px) and (min-height: 960px) { + #fad-foreground, + .main-trackCreditsModal-container { + transform: scale(1.2) !important + } + + .song-preview > button { + font-size: 16px + } +} + +/* Rotate turntable */ +.main-nowPlayingWidget-coverArt > .cover-art, +#fad-art { + animation: rotate-cover_img 24s linear infinite +} + +@keyframes rotate-cover_img { + from { + transform: rotate(0) + } + to { + transform: rotate(360deg) + } +} diff --git a/dot-config/spicetify/Themes/Ziro/LICENSE b/dot-config/spicetify/Themes/Ziro/LICENSE new file mode 100644 index 0000000..8342111 --- /dev/null +++ b/dot-config/spicetify/Themes/Ziro/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2021-2022 schnensch + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/dot-config/spicetify/Themes/Ziro/README.md b/dot-config/spicetify/Themes/Ziro/README.md new file mode 100644 index 0000000..3c12129 --- /dev/null +++ b/dot-config/spicetify/Themes/Ziro/README.md @@ -0,0 +1,37 @@ +# Ziro +## Screenshots +### Blue Dark +![Album](https://raw.githubusercontent.com/schnensch0/ziro/main/preview/album-blue-dark.png) +### Blue Light +![Artist](https://raw.githubusercontent.com/schnensch0/ziro/main/preview/artist-blue-light.png) +### Gray Dark +![Cards](https://raw.githubusercontent.com/schnensch0/ziro/main/preview/cards-gray-dark.png) +### Gray Light +![Search](https://raw.githubusercontent.com/schnensch0/ziro/main/preview/search-gray-light.png) +### Green Dark +![Podcast](https://raw.githubusercontent.com/schnensch0/ziro/main/preview/podcast-green-dark.png) +### Green Light +![Podcast](https://raw.githubusercontent.com/schnensch0/ziro/main/preview/podcast-green-light.png) +### Orange Dark +![Search](https://raw.githubusercontent.com/schnensch0/ziro/main/preview/search-orange-dark.png) +### Orange Light +![Library](https://raw.githubusercontent.com/schnensch0/ziro/main/preview/library-orange-light.png) +### Purple Dark +![Single](https://raw.githubusercontent.com/schnensch0/ziro/main/preview/single-purple-dark.png) +### Purple Light +![Playlist](https://raw.githubusercontent.com/schnensch0/ziro/main/preview/playlist-purple-light.png) +### Red Dark +![Profile](https://raw.githubusercontent.com/schnensch0/ziro/main/preview/profile-red-dark.png) +### Red Light +![Queue](https://raw.githubusercontent.com/schnensch0/ziro/main/preview/queue-red-light.png) +### Rose Pine +![Playlists](screenshots/rose-pine.jpg) +### Rose Pine Moon +![Playlists](screenshots/rose-pine-moon.jpg) +### Rose Pine Dawn +![Playlists](screenshots/rose-pine-dawn.jpg) + +## More +Inspired by the [Zorin GTK theme](https://github.com/ZorinOS/zorin-desktop-themes) and [spot](https://github.com/xou816/spot) + + diff --git a/dot-config/spicetify/Themes/Ziro/color.ini b/dot-config/spicetify/Themes/Ziro/color.ini new file mode 100644 index 0000000..d8aab2a --- /dev/null +++ b/dot-config/spicetify/Themes/Ziro/color.ini @@ -0,0 +1,280 @@ +; COLOR EXPLANATION +; main, sidebar, player = background +; card = cards, tracklist, dropdowns, input fields +; shadow = text on button, tab active & selected row +; selected row = selected song & tab +; button-active = play button, outline on focused input +; button = all other buttons +; button-disabled = volume & seekbar background, scrollbar handle, borders, hover + +[blue-dark] +text = bde6fb +subtext = 6d8692 +main = 1e2529 +sidebar = 1e2529 +player = 1e2529 +card = 171d20 +shadow = 171d20 +selected-row = bde6fb +button = bde6fb +button-active = bde6fb +button-disabled = 2a3439 +tab-active = bde6fb +notification = 171d20 +notification-error = fb7c7c +misc = 1e2529 + +[blue-light] +text = 123354 +subtext = 8495a7 +main = f5f7fa +sidebar = f5f7fa +player = f5f7fa +card = ffffff +shadow = ffffff +selected-row = 22c5fd +button = 22c5fd +button-active = 22c5fd +button-disabled = c8d0d9 +tab-active = 22c5fd +notification = ffffff +notification-error = fb7c7c +misc = f5f7fa + +[gray-dark] +text = ffffff +subtext = 909090 +main = 202020 +sidebar = 202020 +player = 202020 +card = 191919 +shadow = 191919 +selected-row = ffffff +button = ffffff +button-active = ffffff +button-disabled = 313131 +tab-active = ffffff +notification = 191919 +notification-error = fb7c7c +misc = 202020 + +[gray-light] +text = 29292a +subtext = 909091 +main = f7f7f7 +sidebar = f7f7f7 +player = f7f7f7 +card = ffffff +shadow = ffffff +selected-row = 61717c +button = 61717c +button-active = 61717c +button-disabled = cecece +tab-active = 61717c +notification = ffffff +notification-error = fb7c7c +misc = f7f7f7 + +[green-dark] +text = bbf1dd +subtext = 6b8a7f +main = 1b2421 +sidebar = 1b2421 +player = 1b2421 +card = 151c19 +shadow = 151c19 +selected-row = bbf1dd +button = bbf1dd +button-active = bbf1dd +button-disabled = 27332f +tab-active = bbf1dd +notification = 151c19 +notification-error = fb7c7c +misc = 1b2421 + +[green-light] +text = 19483e +subtext = 88a19c +main = f6f9f9 +sidebar = f6f9f9 +player = f6f9f9 +card = e5eceb +shadow = ffffff +selected-row = 2ae18e +button = 2ae18e +button-active = 2ae18e +button-disabled = cad6d4 +tab-active = 2ae18e +notification = e5eceb +notification-error = fb7c7c +misc = f6f9f9 + +[orange-dark] +text = fcc8b4 +subtext = 927367 +main = 271e1b +sidebar = 271e1b +player = 271e1b +card = 1e1715 +shadow = 1e1715 +selected-row = fcc8b4 +button = fcc8b4 +button-active = fcc8b4 +button-disabled = 372b26 +tab-active = fcc8b4 +notification = 1e1715 +notification-error = fb7c7c +misc = 271e1b + +[orange-light] +text = 563b25 +subtext = a89a8e +main = faf8f7 +sidebar = faf8f7 +player = faf8f7 +card = ffffff +shadow = ffffff +selected-row = ff8265 +button = ff8265 +button-active = ff8265 +button-disabled = d9d2cd +tab-active = ff8265 +notification = ffffff +notification-error = fb7c7c +misc = faf8f7 + +[purple-dark] +text = d8c4f1 +subtext = 7d718c +main = 221f26 +sidebar = 221f26 +player = 221f26 +card = 1a181e +shadow = 1a181e +selected-row = d8c4f1 +button = d8c4f1 +button-active = d8c4f1 +button-disabled = 302b36 +tab-active = d8c4f1 +notification = 1a181e +notification-error = fb7c7c +misc = 221f26 + +[purple-light] +text = 402b4d +subtext = 9d91a3 +main = f9f7f9 +sidebar = f9f7f9 +player = f9f7f9 +card = ffffff +shadow = ffffff +selected-row = 9f74e7 +button = 9f74e7 +button-active = 9f74e7 +button-disabled = d4ced7 +tab-active = 9f74e7 +notification = ffffff +notification-error = fb7c7c +misc = f9f7f9 + +[red-dark] +text = fdb4b4 +subtext = 6d8692 +main = 271b1b +sidebar = 271b1b +player = 271b1b +card = 1e1515 +shadow = 1e1515 +selected-row = fdb4b4 +button = fdb4b4 +button-active = fdb4b4 +button-disabled = 372626 +tab-active = fdb4b4 +notification = 1e1515 +notification-error = fb7c7c +misc = 271b1b + +[red-light] +text = 572920 +subtext = a9908b +main = faf7f6 +sidebar = faf7f6 +player = faf7f6 +card = ffffff +shadow = ffffff +selected-row = ff5966 +button = ff5966 +button-active = ff5966 +button-disabled = d9cecb +tab-active = ff5966 +notification = ffffff +notification-error = fb7c7c +misc = faf7f6 + +[rose-pine] +text = e0def4 +subtext = 908caa +main = 191724 +sidebar = 191724 +player = 191724 +card = 26233a +shadow = 26233a +selected-row = ebbcba +button = ebbcba +button-active = ebbcba +button-disabled = 1f1d2e +tab-active = ebbcba +notification = 26233a +notification-error = eb6f92 +misc = 191724 + +[rose-pine-moon] +text = e0def4 +subtext = 908caa +main = 232136 +sidebar = 232136 +player = 232136 +card = 393552 +shadow = 393552 +selected-row = ebbcba +button = ebbcba +button-active = ebbcba +button-disabled = 2a273f +tab-active = ebbcba +notification = 393552 +notification-error = eb6f92 +misc = 232136 + +[rose-pine-dawn] +text = 575279 +subtext = 797593 +main = f2e9e1 +sidebar = f2e9e1 +player = f2e9e1 +card = faf4ed +shadow = faf4ed +selected-row = d7827e +button = d7827e +button-active = d7827e +button-disabled = faf4ed +tab-active = d7827e +notification = faf4ed +notification-error = b4637a +misc = f2e9e1 + +[tokyo-night] +text = B5B9D6 +subtext = 747F8D +main = 242638 +sidebar = 242638 +player = 242638 +card = 1C1D2B +shadow = 1C1D2B +selected-row = B5B9D6 +button = B5B9D6 +button-active = B5B9D6 +button-disabled = 747F8D +tab-active = B5B9D6 +notification = B5B9D6 +notification-error = 747F8D +misc = 1E2529 diff --git a/dot-config/spicetify/Themes/Ziro/screenshots/rose-pine-dawn.jpg b/dot-config/spicetify/Themes/Ziro/screenshots/rose-pine-dawn.jpg new file mode 100644 index 0000000..bd0b8c7 Binary files /dev/null and b/dot-config/spicetify/Themes/Ziro/screenshots/rose-pine-dawn.jpg differ diff --git a/dot-config/spicetify/Themes/Ziro/screenshots/rose-pine-moon.jpg b/dot-config/spicetify/Themes/Ziro/screenshots/rose-pine-moon.jpg new file mode 100644 index 0000000..3c7e7ee Binary files /dev/null and b/dot-config/spicetify/Themes/Ziro/screenshots/rose-pine-moon.jpg differ diff --git a/dot-config/spicetify/Themes/Ziro/screenshots/rose-pine.jpg b/dot-config/spicetify/Themes/Ziro/screenshots/rose-pine.jpg new file mode 100644 index 0000000..494236f Binary files /dev/null and b/dot-config/spicetify/Themes/Ziro/screenshots/rose-pine.jpg differ diff --git a/dot-config/spicetify/Themes/Ziro/user.css b/dot-config/spicetify/Themes/Ziro/user.css new file mode 100644 index 0000000..4758304 --- /dev/null +++ b/dot-config/spicetify/Themes/Ziro/user.css @@ -0,0 +1,586 @@ +:root { + --br-1: 10px; + --br-2: 8px; + --scrollbar: unset; + + --spice-main-elevated: var(--spice-main); + --spice-highlight: var(--spice-button-disabled); + --spice-highlight-elevated: var(--spice-card); +} +.encore-dark-theme, .encore-dark-theme .encore-base-set { + --text-subdued: var(--spice-subtext); +} +/* background */ +.main-home-homeHeader, +.main-entityHeader-backgroundColor, +.main-actionBarBackground-background { + display: none; +} +.main-topBar-overlay, .main-view-container, .Root__nav-bar{ + background-color: var(--spice-main); +} +.main-topBar-background { + opacity: 1 !important; + background-color: var(--spice-main) !important; +} +* { + box-shadow: none !important; +} +/* dividers */ +.Y_WW1akjiQKXSzCBalCD { + display: none; +} +/* navbar */ +.main-rootlist-rootlist { + --left-sidebar-padding-left: 24px !important; + --left-sidebar-padding-right: 24px !important; +} +.main-rootlist-rootlistDividerContainer { + display: none; +} +.main-navBar-navBarLinkActive, +.main-collectionLinkButton-selected, +.main-rootlist-rootlistItemLinkActive { + color: var(--spice-shadow) !important; + background: var(--spice-selected-row) !important; +} +.main-navBar-navBarLink, +.main-collectionLinkButton-collectionLinkButton, +.main-rootlist-rootlistItemLink, +.main-createPlaylistButton-button { + border-radius: var(--br-1) !important; +} +.main-navBar-navBarLink:hover, +.main-collectionLinkButton-collectionLinkButton:hover, +.main-rootlist-rootlistItemLink:hover, +.main-createPlaylistButton-button:hover { + background: var(--spice-button-disabled); +} +.main-rootlist-rootlistItem { + padding: 0 8px 0 calc(8px + var(--indentation) * 8px); +} +.main-rootlist-rootlistItemLink { + padding: 0 16px; +} +.main-rootlist-statusIcons, +.main-rootlist-expandArrow { + position: absolute; + right: 24px; +} +.main-rootlist-expandArrow { + top: 8px; + color: var(--spice-subtext); +} +.main-rootlist-rootlistItemLinkActive + .main-rootlist-statusIcons .main-rootlist-playButton, +.main-rootlist-rootlistItemLinkActive + .main-rootlist-expandArrow { + color: var(--spice-shadow) !important; +} +.main-navBar-navBarLink { + color: var(--spice-text); +} +.main-collectionLinkButton-collectionLinkButton > *, +.main-createPlaylistButton-button { + opacity: 1 !important; +} +.main-rootlist-rootlist .os-scrollbar { + padding: 0 0 0 8px; +} +.main-rootlist-rootlistItemLinkActive .main-rootlist-expandArrow:focus, +.main-rootlist-rootlistItemLinkActive .main-rootlist-textWrapper:focus, +.main-rootlist-rootlistItemLinkActive .main-rootlist-textWrapper:hover { + color: var(--spice-main); +} +/* player */ +.main-nowPlayingBar-center .playback-progressbar { + position: absolute; + left: 0; + bottom: 82px; +} +.main-nowPlayingBar-nowPlayingBar:not(:only-child) .playback-progressbar:not(.volume-bar__slider-container > .playback-progressbar) { + bottom: 108px; +} +.playback-bar { + --bar: var(--spice-button); +} +.volume-bar { + --bar: var(--spice-subtext); + margin-right: 8px; +} +.playback-bar .progress-bar { + --progress-bar-radius: 0; +} +.playback-bar:hover .progress-bar, +.playback-bar .DuvrswZugGajIFNXObAr { + --progress-bar-height: 8px; +} +.x-progressBar-progressBarBg { + background-color: var(--spice-button-disabled); +} +.DuvrswZugGajIFNXObAr .progress-bar__slider, +.epWhU7hHGktzlO_dop6z { + background-color: var(--bar) !important; +} +.progress-bar__slider { + display: block; + background-color: var(--spice-shadow); + border: 2px solid var(--bar); + height: 16px; + width: 16px; +} +.playback-bar .progress-bar__slider { + height: 20px; + width: 20px; +} +.playback-bar__progress-time-elapsed, +.main-playbackBarRemainingTime-container { + color: var(--spice-text); + position: absolute; + margin-bottom: 33px; + right: 0; +} +.playback-bar__progress-time-elapsed { + right: 43px; +} +.playback-bar__progress-time-elapsed::after { + content: ' /'; +} +.main-nowPlayingBar-extraControls { + margin-right: 75px; +} +.player-controls__buttons { + margin: 0; +} +.player-controls__buttons button:not(.main-playPauseButton-button) { + color: var(--spice-button) !important; +} +.main-genericButton-button { + color: var(--spice-button) !important; +} +.connect-device-list-content { + border-radius: var(--br-1); + border: 1px solid var(--spice-button-disabled); + padding: 12px; +} +.connect-device-list-item:hover { + background-color: var(--spice-button-disabled); + border-radius: var(--br-2); +} +.cover-art-image { + border-radius: calc(var(--br-2) / 2); +} +.main-coverSlotCollapsed-container[aria-hidden='true'] .cover-art-image { + border-radius: var(--br-1); +} +/* friends */ +.main-buddyFeed-addFriendsContainer { + background-color: var(--spice-sidebar); +} +.main-buddyFeed-friendActivity { + padding: 8px; + margin: 8px; + background: var(--spice-card); + border-radius: var(--br-1); +} +.HdRGC, +.eEsqRZ, +.main-buddyFeed-usernameAndTimestamp a { + color: var(--spice-text) !important; +} +.main-buddyFeed-activityMetadata > :not(:first-child) a, +.main-buddyFeed-timestamp { + color: var(--spice-subtext) !important; +} +.main-avatar-avatar.vreGJrlRqoFkzlSQwvsJ:after { + background: var(--spice-text); + box-shadow: none; +} +/* cards */ +.main-card-card, +.Z35BWOA10YGn5uc9YgAp, +.main-heroCard-card, +.a2ruVaZt_DdrdHz3GqgU, +.x-categoryCard-CategoryCard { + background-color: var(--spice-card); + border-radius: var(--br-1); +} +.Z35BWOA10YGn5uc9YgAp:hover { + background: var(--spice-button-disabled); +} +.main-cardImage-imageWrapper:not(.main-cardImage-circular) { + border-radius: var(--br-2); +} +.Z35BWOA10YGn5uc9YgAp .main-image-image { + border-radius: var(--br-2) 0 0 var(--br-2); +} +.zXwER4Lsqq_e7fVVaPkZ { + background-color: transparent !important; +} +.cSeieV { + background-color: var(--spice-button-active); +} + +/* menus */ +.main-contextMenu-menu { + border: 1px solid var(--spice-button-disabled); + border-radius: var(--br-1); + padding: 8px; +} +.main-contextMenu-menuItemButton:hover { + background-color: var(--spice-button-disabled); +} +.main-contextMenu-menuItemButton { + border-radius: var(--br-2); +} +.main-contextMenu-menuItemButton::before, +.main-contextMenu-menuItemButton::after { + display: none; +} +.main-contextMenu-menuItemButton { + color: var(--spice-text) !important; +} +/* input */ +.x-searchInput-searchInputInput, +.x-proxySettings-proxyInput, +.main-dropDown-dropDown, +.QZhV0hWVKlExlKr266jo, +.amTaUy6eMlbKh0wzrOnb { + background: var(--spice-card); + border-radius: var(--br-2); +} +.x-searchInput-searchInputSearchIcon, +.x-searchInput-searchInputInput, +.x-searchInput-searchInputClearButton { + color: var(--spice-text) !important; +} +/* buttons */ +.wCl7pMTEE68v1xuZeZiB:hover, +.w6j_vX6SF5IxSXrrkYw5:hover, +.w6j_vX6SF5IxSXrrkYw5[data-context-menu-open='true'], +.fLS8v3_EfBadEerbGVoR:hover, +.aAr9nYtPsG7P2LRzciXc { + background: var(--spice-button-disabled); + border-radius: var(--br-2); +} +.w6j_vX6SF5IxSXrrkYw5 { + background-color: transparent; +} +.main-actionBar-ActionBarRow button:not(.bqeOGM), +.QhF9ZR7YOiJeFiEnfkOr button, +.CpQBQL6M4D3bquNOpKd9, +.player-controls__buttons button, +.DbMYFmOEEz9PH1h1zK9n button, +.main-moreButton-button, +.w6j_vX6SF5IxSXrrkYw5, +.gIobRDHAxkAvUaF4_OOL button { + color: var(--spice-button); +} +.bqeOGM:hover .ButtonInner-sc-14ud5tc-0, +.dkGAhA:hover .ButtonInner-sc-14ud5tc-0, +.jEaMNl:hover .ButtonInner-sc-14ud5tc-0, +.fBTYgGyvIbHizHIj7AAX, +.main-playPauseButton-button { + background-color: var(--spice-button); +} +.kxBVag { + color: var(--spice-subtext); +} +.main-button-primary, +.fBTYgGyvIbHizHIj7AAX, +.main-playPauseButton-button { + color: var(--spice-shadow) !important; +} +.aAr9nYtPsG7P2LRzciXc { + border: none; +} +.main-button-outlined { + border-color: var(--spice-button); +} +.rEx3EYgBzS8SoY7dmC6x rect { + fill: var(--spice-button); +} +/* scrollbar */ +.os-scrollbar { + display: var(--scrollbar); +} +.os-scrollbar-handle { + border-radius: var(--br-2); + background: var(--spice-button-disabled) !important; +} +/* tab bar */ +.oaNVBli46GtVjaQKB15g, +.marketplace-tabBar-active, +.lyrics-tabBar-active, +.queue-tabBar-active { + color: var(--spice-shadow) !important; + background: var(--spice-tab-active) !important; +} +.JdlKTdpMquftpMwwegZo, +.marketplace-tabBar-headerItemLink, +.lyrics-tabBar-headerItemLink { + border-radius: var(--br-2); +} +.JdlKTdpMquftpMwwegZo:hover, +.marketplace-tabBar-headerItemLink:hover { + background: var(--spice-button-disabled); +} +/* marketplace */ +.main-navBar-navBarItem[data-id='/spicetify-marketplace'] svg { + vertical-align: middle; +} +.main-type-mestoBold { + font-weight: 700; + font-size: 0.875rem; +} +.marketplace-card-desc { + font-size: 0.875rem; + line-height: 1rem; +} +.main-cardHeader-text { + font-weight: 700; +} +.marketplace-settings-button { + padding: 12px 12px 8px; + border-radius: var(--br-2); +} +.marketplace-settings-button:hover { + background-color: var(--spice-button-disabled); +} +.GenericModal .encore-light-theme, +.GenericModal .encore-dark-theme { + --text-base: var(--spice-text); + --text-subdued: var(--spice-subtext); + --background-base: var(--spice-main); +} +.GenericModal, +.GenericModal > * { + border-radius: var(--br-1); +} +.main-playButton-PlayButton { + color: var(--spice-shadow) !important; +} +.marketplace-card--installed { + border: none; +} +/* headers */ +.CmkY1Ag0tJDfnFXbGgju:not(.hNTPwmaxPotdJ14dx2W9 *) { + border-radius: var(--br-1); +} +.main-entityHeader-gray, +.main-entityHeader-metaData, +.UyzJidwrGk3awngSGIwv, +.main-entityHeader-divider { + color: var(--spice-text) !important; +} +.main-entityHeader-background { + transform: none !important; + margin-top: 64px; + border-radius: var(--br-1); +} +.main-entityHeader-overlay { + background: none; +} +.main-entityHeader-withBackgroundImage, +.main-entityHeader-withBackgroundImage + div { + transform: translateY(64px); +} +.main-entityHeader-container.main-entityHeader-withBackgroundImage { + background-image: linear-gradient(50deg, rgba(var(--spice-rgb-card), 1) 30%, rgba(var(--spice-rgb-card), 0.7) 60%, transparent 90%); + border-radius: var(--br-1); +} +/* tracklist */ +.main-trackList-trackList .main-rootlist-wrapper { + background: var(--spice-card); + border-radius: 10px 10px 0px 0px; + padding: 8px; +} +.main-trackList-trackListHeaderRow { + border: none; +} +.main-trackList-trackListRow:hover, +.jtZMR8Hj94od6BQce98P:hover { + background-color: var(--spice-button-disabled); +} +.main-trackList-trackListRow.main-trackList-selected, +.jtZMR8Hj94od6BQce98P:active { + background-color: var(--spice-tab-active) !important; +} +.main-trackList-selected * { + color: var(--spice-shadow) !important; +} +.main-trackList-selected .main-trackList-playingIcon, +.main-trackList-selected .main-tag-container { + background-color: var(--spice-shadow); + color: var(--spice-text) !important; +} +.main-trackList-trackListRow, +.jtZMR8Hj94od6BQce98P { + border-radius: var(--br-2); +} +.main-trackList-trackList { + border-radius: var(--br-1); + border-bottom: 16px solid var(--spice-card); +} +.fcehhQ { + color: var(--spice-subtext); +} +.main-tag-container { + background-color: var(--spice-subtext); +} +.main-trackList-playingIcon { + -webkit-mask-image: url("data:image/svg+xml,%3Csvg id='playing-icon' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cdefs%3E%3Cstyle%3E %23playing-icon %7B fill: %2320BC54; %7D @keyframes play %7B 0%25 %7Btransform: scaleY(1);%7D 3.3%25 %7Btransform: scaleY(0.9583);%7D 6.6%25 %7Btransform: scaleY(0.9166);%7D 9.9%25 %7Btransform: scaleY(0.8333);%7D 13.3%25 %7Btransform: scaleY(0.7083);%7D 16.6%25 %7Btransform: scaleY(0.5416);%7D 19.9%25 %7Btransform: scaleY(0.4166);%7D 23.3%25 %7Btransform: scaleY(0.25);%7D 26.6%25 %7Btransform: scaleY(0.1666);%7D 29.9%25 %7Btransform: scaleY(0.125);%7D 33.3%25 %7Btransform: scaleY(0.125);%7D 36.6%25 %7Btransform: scaleY(0.1666);%7D 39.9%25 %7Btransform: scaleY(0.1666);%7D 43.3%25 %7Btransform: scaleY(0.2083);%7D 46.6%25 %7Btransform: scaleY(0.2916);%7D 49.9%25 %7Btransform: scaleY(0.375);%7D 53.3%25 %7Btransform: scaleY(0.5);%7D 56.6%25 %7Btransform: scaleY(0.5833);%7D 59.9%25 %7Btransform: scaleY(0.625);%7D 63.3%25 %7Btransform: scaleY(0.6666);%7D 66.6%25 %7Btransform: scaleY(0.6666);%7D 69.9%25 %7Btransform: scaleY(0.6666);%7D 73.3%25 %7Btransform: scaleY(0.6666);%7D 76.6%25 %7Btransform: scaleY(0.7083);%7D 79.9%25 %7Btransform: scaleY(0.75);%7D 83.3%25 %7Btransform: scaleY(0.8333);%7D 86.6%25 %7Btransform: scaleY(0.875);%7D 89.9%25 %7Btransform: scaleY(0.9166);%7D 93.3%25 %7Btransform: scaleY(0.9583);%7D 96.6%25 %7Btransform: scaleY(1);%7D %7D %23bar1 %7B transform-origin: bottom; animation: play 0.9s -0.51s infinite; %7D %23bar2 %7B transform-origin: bottom; animation: play 0.9s infinite; %7D %23bar3 %7B transform-origin: bottom; animation: play 0.9s -0.15s infinite; %7D %23bar4 %7B transform-origin: bottom; animation: play 0.9s -0.75s infinite; %7D %3C/style%3E%3C/defs%3E%3Ctitle%3Eplaying-icon%3C/title%3E%3Crect id='bar1' class='cls-1' width='4' height='24'/%3E%3Crect id='bar2' class='cls-1' x='6' width='4' height='24'/%3E%3Crect id='bar3' class='cls-1' x='12' width='4' height='24'/%3E%3Crect id='bar4' class='cls-1' x='18' width='4' height='24'/%3E%3C/svg%3E"); + background: var(--spice-text); + content-visibility: hidden; +} +.main-trackList-filterHighlight { + background-color: var(--spice-button); + color: var(--spice-shadow); +} +/* podcasts */ +.main-yourEpisodes-coverContainer, +.SpVoh9vvBN0kIwzfCiBh, +.ltjunXlP2FwPEVF992n9 { + border-radius: var(--br-1); +} +.TT1tIewS2iI8Uz8kLuQB { + border-radius: var(--br-2); + margin: 0 8px; +} +.TT1tIewS2iI8Uz8kLuQB:hover { + background-color: var(--spice-button-disabled); +} +.Ng3dPPA2_1CFYkzPukjM { + background: var(--spice-text); +} +.Q3wDjXPNY4lACLUxARrd + div { + background-color: var(--spice-card); + padding: 8px 0; + border-radius: var(--br-1); +} +.knWBkA { + color: var(--spice-subtext); +} +.qfYkuLpETFW3axnfMntO, +.poz9gZKE7xqFwgk231J4, +.UyzJidwrGk3awngSGIwv, +.xWm_uA0Co4SXVxaO7wlB { + color: var(--spice-text) !important; +} +path[fill='#1ed760'] { + fill: var(--spice-button) !important; +} +.E4I5I7G2CfW32hLWZaqE, +.SpVoh9vvBN0kIwzfCiBh { + background-color: var(--spice-card); +} +.rFwxt8s8DYY8p1O7tYZW { + background: none; +} +/* settings */ +.x-toggle-indicator { + height: 18px; + width: 18px; + top: 3px; + left: 3px; + background: var(--spice-shadow) !important; +} +input:checked ~ .x-toggle-indicatorWrapper .x-toggle-indicator { + right: 3px; +} +.cOFYck { + color: var(--spice-subtext); +} +.main-playlistEditDetailsModal-textElement { + border-radius: var(--br-1); +} +.main-playlistEditDetailsModal-textElement:focus { + background: rgba(var(--spice-rgb-selected-row),.1) !important; +} +/* fullscreen */ +.npv-main-container .npv-cross-fade-image { + border-radius: calc(var(--br-1) * 3); +} +.npv-main-container .playback-bar__progress-time-elapsed, +.npv-main-container .main-playbackBarRemainingTime-container { + margin-bottom: -125px; + margin-right: -86px; +} +.npv-up-next { + background: var(--spice-card) !important; + border: none !important; + border-radius: var(--br-1); +} +.npv-up-next__image { + border-radius: var(--br-2); +} +.npv-header__metadata { + color: var(--spice-text); +} +/* misc */ +.lyrics-lyrics-container.lyrics-lyrics-coverTopBar { + --lyrics-color-active: var(--spice-text) !important; + --lyrics-color-inactive: var(--spice-subtext) !important; + --lyrics-color-passed: var(--spice-subtext) !important; + --lyrics-color-messaging: var(--spice-text) !important; +} +.lyrics-lyricsContainer-LyricsBackground { + background-image: none; +} +.lyrics-lyrics-background { + background-color: var(--spice-main); +} +.jixVGx, +.euRuBv { + color: var(--spice-text); +} +.XmR5VFpqXOcxRvhuf6OB { + border-radius: var(--br-1); +} +.main-rootlist-rootlistDividerContainer { + display: none; +} +.main-home-homeHeader { + display: none; +} +.main-rootlist-rootlistItemOverlay { + display: none; +} +.main-rootlist-rootlist { + --left-sidebar-padding-left: 8px; + --left-sidebar-padding-right: 8px; +} +label.Type__TypeElement-goli3j-0.gCwing.main-playlistEditDetailsModal-textElementLabel { + padding-bottom: 12px; +} +/*navbar icon*/ +.collection-active-icon, .collection-icon, .home-active-icon, .home-icon, .premiumSpotifyIcon, .search-active-icon, .search-icon { + color: var(--spice-text); +} +/*navbar active icon*/ +.main-navBar-navBarItem .collection-active-icon, .main-navBar-navBarItem .home-active-icon, .main-navBar-navBarItem .make-music-active-icon, .main-navBar-navBarItem .main-navBar-navBarLinkActive .collection-icon, .main-navBar-navBarItem .main-navBar-navBarLinkActive .home-icon, .main-navBar-navBarItem .main-navBar-navBarLinkActive .make-music-icon, .main-navBar-navBarItem .main-navBar-navBarLinkActive .search-icon, .main-navBar-navBarItem .search-active-icon { + color: var(--spice-main); +} +/*playing status icon - Playlist*/ +.CCeu9OfWSwIAJqA49n84.ZcKzjCkYGeMizcSAP8UX { + color: var(--spice-subtext); + top: 10px; +} +.main-rootlist-rootlistItemLinkActive + .main-rootlist-statusIcons .CCeu9OfWSwIAJqA49n84.ZcKzjCkYGeMizcSAP8UX { + color: var(--spice-main); + top: 10px; +} +/* download icon - Playlist */ +.hcxPtZcvjM07S6ydT685 { + top: 10px; + position: relative; +} +/*playing status icon - Liked Songs*/ +.CCeu9OfWSwIAJqA49n84.Frn4juLXf6zInWBEFFzr { + color: var(--spice-text); +} +.main-collectionLinkButton-selected .main-rootlist-statusIcons .CCeu9OfWSwIAJqA49n84.Frn4juLXf6zInWBEFFzr { + color: var(--spice-main); +} +/*about artist card text*/ +.artist-artistAbout-container.artist-artistAbout-backgroundImage .artist-artistAbout-content > div { + color: #fff; +} diff --git a/dot-config/spicetify/Themes/manifest.json b/dot-config/spicetify/Themes/manifest.json new file mode 100644 index 0000000..c9a1ad6 --- /dev/null +++ b/dot-config/spicetify/Themes/manifest.json @@ -0,0 +1,269 @@ +[ + { + "name": "SharkBlue", + "description": "SharkBlue", + "preview": "SharkBlue/screenshot.png", + "readme": "SharkBlue/README.md", + "usercss": "SharkBlue/user.css", + "schemes": "SharkBlue/color.ini", + "authors": [ + { + "name": "Mr Biscuit", + "url": "https://github.com/MrBiscuit921" + } + ], + "tags": [ + "latest" + ] + }, + { + "name": "BurntSienna", + "description": "BurntSienna", + "preview": "BurntSienna/screenshot.png", + "readme": "BurntSienna/README.md", + "usercss": "BurntSienna/user.css", + "schemes": "BurntSienna/color.ini", + "authors": [ + { + "name": "pjaspinski", + "url": "https://github.com/pjaspinski" + } + ], + "tags": [ + "latest" + ] + }, + { + "name": "Default", + "description": "Default", + "preview": "Default/ocean.png", + "readme": "Default/README.md", + "usercss": "Default/user.css", + "schemes": "Default/color.ini", + "authors": [ + { + "name": "Blacksuan19", + "url": "https://github.com/Blacksuan19" + } + ], + "tags": [ + "latest" + ] + }, + { + "name": "Dreary", + "description": "Dreary", + "preview": "Dreary/deeper.png", + "readme": "Dreary/README.md", + "usercss": "Dreary/user.css", + "schemes": "Dreary/color.ini", + "authors": [ + { + "name": "CharlieS1103", + "url": "https://github.com/CharlieS1103" + } + ], + "tags": [ + "outdated", + "v1.2.13" + ] + }, + { + "name": "Dribbblish", + "description": "Dribbblish", + "preview": "Dribbblish/base.png", + "readme": "Dribbblish/README.md", + "usercss": "Dribbblish/user.css", + "schemes": "Dribbblish/color.ini", + "include": [ + "https://raw.githubusercontent.com/spicetify/spicetify-themes/master/Dribbblish/theme.js" + ], + "authors": [ + { + "name": "khanhas", + "url": "https://github.com/khanhas" + }, + { + "name": "harbassan", + "url": "https://github.com/harbassan" + } + ], + "tags": [ + "latest" + ] + }, + { + "name": "Matte", + "description": "Has a neat color pallete and a much cleaner interface", + "preview": "Matte/screenshots/ylx-matte.png", + "readme": "Matte/README.md", + "usercss": "Matte/user.css", + "schemes": "Matte/color.ini", + "authors": [ + { + "name": "darkthemer", + "url": "https://github.com/darkthemer" + } + ], + "tags": [ + "latest" + ] + }, + { + "name": "Onepunch", + "description": "Onepunch", + "preview": "Onepunch/screenshots/dark_home.png", + "readme": "Onepunch/README.md", + "usercss": "Onepunch/user.css", + "schemes": "Onepunch/color.ini", + "authors": [ + { + "name": "okarin001", + "url": "https://github.com/okarin001" + } + ], + "tags": [ + "latest" + ] + }, + { + "name": "Sleek", + "description": "Sleek", + "preview": "Sleek/coral.png", + "readme": "Sleek/README.md", + "usercss": "Sleek/user.css", + "schemes": "Sleek/color.ini", + "authors": [ + { + "name": "harbassan", + "url": "https://github.com/harbassan" + } + ], + "tags": [ + "latest" + ] + }, + { + "name": "text", + "description": "a spicetify theme that mimics the look of spotify-tui", + "preview": "text/screenshots/Gruvbox.png", + "readme": "text/README.md", + "usercss": "text/user.css", + "schemes": "text/color.ini", + "authors": [ + { + "name": "darkthemer", + "url": "https://github.com/darkthemer" + } + ], + "tags": [ + "latest" + ] + }, + { + "name": "Turntable", + "description": "Turntable", + "preview": "Turntable/screenshots/turntable.png", + "readme": "Turntable/README.md", + "usercss": "Turntable/user.css", + "schemes": "Turntable/color.ini", + "include": [ + "https://raw.githubusercontent.com/spicetify/spicetify-themes/master/Turntable/theme.js" + ], + "authors": [ + { + "name": "Grason Chan", + "url": "https://github.com/grasonchan" + } + ], + "tags": [ + "latest" + ] + }, + { + "name": "Ziro", + "description": "a smooth theme inspired by zorin os", + "preview": "https://raw.githubusercontent.com/schnensch0/ziro/main/preview/mockup.png", + "readme": "Ziro/README.md", + "usercss": "Ziro/user.css", + "schemes": "Ziro/color.ini", + "authors": [ + { + "name": "schnensch0", + "url": "https://github.com/schnensch0" + } + ], + "tags": [ + "latest" + ] + }, + { + "name": "Flow", + "description": "Spicetify theme that has linear gradient effect and vertical playbar", + "preview": "https://raw.githubusercontent.com/spicetify/spicetify-themes/master/Flow/screenshots/pink.png", + "readme": "Flow/README.md", + "usercss": "Flow/user.css", + "schemes": "Flow/color.ini", + "authors": [ + { + "name": "Ian Liao", + "url": "https://github.com/ian-Liaozy" + }, + { + "name": "Victoria Zhang", + "url": "https://github.com/Ruixi-Zhang" + }, + { + "name": "Yu Sung Lee", + "url": "https://github.com/yslDevelop" + }, + { + "name": "Alex Casieri", + "url": "https://github.com/alexcasieri30" + } + ], + "tags": [ + "latest" + ] + }, + { + "name": "Blossom", + "description": "Blossom Theme, a simple theme.", + "preview": "https://user-images.githubusercontent.com/72624799/203471073-4a5e6cf0-a5dc-4ecc-9a12-56d5fc716ac4.png", + "readme": "Blossom/README.md", + "usercss": "Blossom/user.css", + "schemes": "Blossom/color.ini", + "authors": [ + { + "name": "Robatortas", "url": "https://github.com/Robatortas" + } + ], + "tags": [ + "latest" + ] + }, + { + "name": "StarryNight", + "description": "Starry Night", + "preview": "StarryNight/images/base.png", + "readme": "StarryNight/README.md", + "usercss": "StarryNight/user.css", + "schemes": "StarryNight/color.ini", + "include": [ + "https://raw.githubusercontent.com/spicetify/spicetify-themes/master/StarryNight/theme.js" + ], + "authors": [ + { + "name": "Brandon Chen", + "url": "https://github.com/b-chen00" + }, + { + "name": "Julissa Laignelet", + "url": "https://github.com/laignelet16" + } + ], + "tags": [ + "latest" + ] + } +] diff --git a/dot-config/spicetify/Themes/text/README.md b/dot-config/spicetify/Themes/text/README.md new file mode 100644 index 0000000..dde77b3 --- /dev/null +++ b/dot-config/spicetify/Themes/text/README.md @@ -0,0 +1,186 @@ +# text + +## Screenshots + +#### Display Images + +##### with images + +![withimg](screenshots/withimg.png) + +##### without images + +![withoutimg](screenshots/withoutimg.png) + +### Spotify + +![Spotify](screenshots/Spotify.png) + +### Spicetify + +![Spicetify](screenshots/Spicetify.png) + +### CatppuccinMocha + +![CatppuccinMocha](screenshots/CatppuccinMocha.png) + +### CatppuccinMacchiato + +![CatppuccinMacchiato](screenshots/CatppuccinMacchiato.png) + +### CatppuccinLatte + +![CatppuccinLatte](screenshots/CatppuccinLatte.png) + +### Dracula + +![Dracula](screenshots/Dracula.png) + +### Gruvbox + +![Gruvbox](screenshots/Gruvbox.png) + +### Kanagawa + +![Kanagawa](screenshots/Kanagawa.png) + +### Nord + +![Nord](screenshots/Nord.png) + +### Rigel + +![CatppuccinMaRigelcchiato](screenshots/Rigel.png) + +### RosePine + +![RosePine](screenshots/RosePine.png) + +### RosePineMoon + +![RosePineMoon](screenshots/RosePineMoon.png) + +### RosePineDawn + +![RosePineDawn](screenshots/RosePineDawn.png) + +### Solarized + +![Solarized](screenshots/Solarized.png) + +### TokyoNight + +![TokyoNight](screenshots/TokyoNight.png) + +### TokyoNightStorm + +![TokyoNightStorm](screenshots/TokyoNightStorm.png) + +### ForestGreen + +![ForestGreen](screenshots/ForestGreen.png) + +## More + +### Description + +a spicetify theme that mimics the look of [spotify-tui](https://github.com/Rigellute/spotify-tui) + +### Credits + +created by [darkthemer](https://github.com/darkthemer/) + +### Notes + +- **IMPORTANT:** Add the following to your `config-xpui.ini` file. Details as to why are explained [here](https://github.com/JulienMaille/spicetify-dynamic-theme#important). Run `spicetify apply` after adding these lines. + +```ini +[Patch] +xpui.js_find_8008 = ,(\w+=)56, +xpui.js_repl_8008 = ,${1}32, +``` + +- **SUGGESTION:** Feel free to edit `color.ini` to swap the accent color (it's green for most of them) into your preferred color based from the color pallete. + + - https://github.com/catppuccin/catppuccin + - https://github.com/dracula/dracula-theme + - https://github.com/morhetz/gruvbox + - https://github.com/rebelot/kanagawa.nvim + - https://github.com/nordtheme/nord + - https://github.com/Rigellute/rigel + - https://github.com/rose-pine/rose-pine-theme + - https://github.com/altercation/solarized + - https://github.com/enkia/tokyo-night-vscode-theme + +- **SUGGESTION:** Check the very top of `user.css` for user settings + + - If you use the Marketplace, go to `Marketplace > Snippets > + Add CSS` and then paste the variables found in `user.css` (also below). Edit these as you wish. If you're following this method, don't forget to add `!important` at the end of each property. + +```css +/* user settings */ +:root { + --font-family: "DM Mono", monospace; + /* + --font-family: 'Anonymous Pro', monospace; + --font-family: 'Courier Prime', monospace; + --font-family: 'Cousine', monospace; + --font-family: 'Cutive Mono', monospace; + --font-family: 'DM Mono', monospace; + --font-family: 'Fira Mono', monospace; + --font-family: 'IBM Plex Mono', monospace; + --font-family: 'Inconsolata', monospace; + --font-family: 'Nanum Gothic Coding', monospace; + --font-family: 'PT Mono', monospace; + --font-family: 'Roboto Mono', monospace; + --font-family: 'Share Tech Mono', monospace; + --font-family: 'Source Code Pro', monospace; + --font-family: 'Space Mono', monospace; + --font-family: 'Ubuntu Mono', monospace; + --font-family: 'VT323', monospace; + */ + --font-size: 14px; + --font-weight: 400; /* 200 : 900 */ + --line-height: 1.2; + + --font-size-lyrics: 14px; /* 1.5em (default) */ + + --font-family-header: "asciid"; + --font-size-multiplier-header: 4; + + --display-card-image: block; /* none | block */ + --display-coverart-image: none; /* none | block */ + --display-header-image: none; /* none | block */ + --display-library-image: block; /* none | block */ + --display-tracklist-image: none; /* none | block */ + --display-spicetify-banner-ascii: block; /* none | block */ + --display-music-banner-ascii: none; /* none | block */ + + --border-radius: 0px; + --border-width: 1px; + --border-style: solid; /* dotted | dashed | solid | double | groove | ridge | inset | outset */ +} +``` + +- **SUGGESTION:** For Windows users, here's how to make the window controls' background match with the topbar background + + - Put this snippet into your `user.css` (or through the Marketplace's `+ Add CSS` feature) + +```css +/* transparent window controls background */ +.spotify__container--is-desktop:not(.fullscreen) body::after { + content: ""; + position: absolute; + right: 0; + z-index: 999; + backdrop-filter: brightness(2.12); + /* page zoom [ctrl][+] or [ctrl][-] + edit width and height accordingly */ + width: 135px; + /* depending on what global status bar + style is enabled height need to be + changed accordingly. */ + height: 64px; +} +``` + +![winctrl](screenshots/winctrl.png) diff --git a/dot-config/spicetify/Themes/text/color.ini b/dot-config/spicetify/Themes/text/color.ini new file mode 100644 index 0000000..8e27a47 --- /dev/null +++ b/dot-config/spicetify/Themes/text/color.ini @@ -0,0 +1,270 @@ +; note: most of the accent colors are set to the green of that color scheme, feel free to change it to your preferred color + +[Spotify] +accent = 1db954 +accent-active = 1ed760 +accent-inactive = 121212 +banner = 1ed760 +border-active = 1ed760 +border-inactive = 535353 +header = 535353 +highlight = 1a1a1a +main = 121212 +notification = 4687d6 +notification-error = e22134 +subtext = b3b3b3 +text = FFFFFF + +[Spicetify] +accent = 00e089 +accent-active = 00e089 +accent-inactive = 2E2837 +banner = 00e089 +border-active = 00e089 +border-inactive = 483b5b +header = 483b5b +highlight = 483b5b +main = 2E2837 +notification = 00e089 +notification-error = e22134 +subtext = DEDEDE +text = FFFFFF + +[CatppuccinMocha] +;https://github.com/catppuccin/catppuccin +accent = a6e3a1 +accent-active = a6e3a1 +accent-inactive = 1e1e2e +banner = a6e3a1 +border-active = a6e3a1 +border-inactive = 313244 +header = 585b70 +highlight = 585b70 +main = 1e1e2e +notification = 89b4fa +notification-error = f38ba8 +subtext = a6adc8 +text = cdd6f4 + +[CatppuccinMacchiato] +;https://github.com/catppuccin/catppuccin +accent = a6da95 +accent-active = a6da95 +accent-inactive = 24273a +banner = a6da95 +border-active = a6da95 +border-inactive = 363a4f +header = 5b6078 +highlight = 5b6078 +main = 24273a +notification = 8aadf4 +notification-error = ed8796 +subtext = a5adcb +text = cad3f5 + +[CatppuccinLatte] +;https://github.com/catppuccin/catppuccin +accent = a6d189 +accent-active = a6d189 +accent-inactive = 303446 +banner = a6d189 +border-active = a6d189 +border-inactive = 414559 +header = 626880 +highlight = 626880 +main = 303446 +notification = 8caaee +notification-error = e78284 +subtext = a5adce +text = c6d0f5 + +[Dracula] +;https://github.com/dracula/dracula-theme +accent = 50fa7b +accent-active = 50fa7b +accent-inactive = 282a36 +banner = 50fa7b +border-active = 50fa7b +border-inactive = 44475a +header = 44475a +highlight = 44475a +main = 282a36 +notification = 8be9fd +notification-error = ff5555 +subtext = 6272a4 +text = f8f8f2 + +[Gruvbox] +;https://github.com/morhetz/gruvbox/ +accent = 98971a +accent-active = b8bb26 +accent-inactive = 282828 +banner = b8bb26 +border-active = b8bb26 +border-inactive = 3c3836 +header = 665c54 +highlight = 7c6f64 +main = 282828 +notification = 458588 +notification-error = cc241d +subtext = bdae93 +text = fbf1c7 + +[Kanagawa] +;https://github.com/rebelot/kanagawa.nvim +accent = 76946A +accent-active = 98BB6C +accent-inactive = 1F1F28 +banner = 98BB6C +border-active = 98BB6C +border-inactive = 2A2A37 +header = 54546D +highlight = 363646 +main = 1F1F28 +notification = 7E9CD8 +notification-error = E82424 +subtext = C8C093 +text = DCD7BA + +[Nord] +;https://github.com/nordtheme/nord +accent = 88c0d0 +accent-active = 8fbcbb +accent-inactive = 2e3440 +banner = 8fbcbb +border-active = 8fbcbb +border-inactive = 3b4252 +header = 4c566a +highlight = 4c566a +main = 2e3440 +notification = 5e81ac +notification-error = bf616a +subtext = d8dee9 +text = eceff4 + +[Rigel] +;https://github.com/Rigellute/rigel/ +accent = 00cccc +accent-active = 00ffff +accent-inactive = 00384d +banner = 00ffff +border-active = 00cccc +border-inactive = 517f8d +header = 517f8d +highlight = 00384d +main = 002635 +notification = 7eb2dd +notification-error = ff5a67 +subtext = 77929e +text = b7cff9 + +[RosePine] +;https://github.com/rose-pine/rose-pine-theme +accent = ebbcba +accent-active = ebbcba +accent-inactive = 1f1d2e +banner = ebbcba +border-active = ebbcba +border-inactive = 26233a +header = 6e6a86 +highlight = 403d52 +main = 191724 +notification = 31748f +notification-error = eb6f92 +subtext = 908caa +text = e0def4 + +[RosePineMoon] +;https://github.com/rose-pine/rose-pine-theme +accent = ea9a97 +accent-active = ea9a97 +accent-inactive = 2a273f +banner = ea9a97 +border-active = ea9a97 +border-inactive = 393552 +header = 6e6a86 +highlight = 44415a +main = 232136 +notification = 3e8fb0 +notification-error = eb6f92 +subtext = 908caa +text = e0def4 + +[RosePineDawn] +;https://github.com/rose-pine/rose-pine-theme +accent = d7827e +accent-active = d7827e +accent-inactive = fffaf3 +banner = d7827e +border-active = d7827e +border-inactive = f2e9e1 +header = 9893a5 +highlight = dfdad9 +main = faf4ed +notification = 286983 +notification-error = b4637a +subtext = 797593 +text = 575279 + +[Solarized] +;https://github.com/altercation/solarized +accent = 859900 +accent-active = 859900 +accent-inactive = 073642 +banner = 859900 +border-active = 859900 +border-inactive = 073642 +header = 586e75 +highlight = 073642 +main = 002b36 +notification = 268bd2 +notification-error = dc322f +subtext = 586e75 +text = 839496 + +[TokyoNight] +;https://github.com/enkia/tokyo-night-vscode-theme +accent = 9ece6a +accent-active = 9ece6a +accent-inactive = 1a1b26 +banner = 9ece6a +border-active = 9ece6a +border-inactive = 24283b +header = 565f89 +highlight = 24283b +main = 1a1b26 +notification = 7aa2f7 +notification-error = f7768e +subtext = 565f89 +text = a9b1d6 + +[TokyoNightStorm] +;https://github.com/enkia/tokyo-night-vscode-theme +accent = 9ece6a +accent-active = 9ece6a +accent-inactive = 24283b +banner = 9ece6a +border-active = 9ece6a +border-inactive = 414868 +header = 9aa5ce +highlight = 414868 +main = 24283b +notification = 7aa2f7 +notification-error = f7768e +subtext = 9aa5ce +text = c0caf5 + +[ForestGreen] +accent = 939393 +accent-active = 939393 +accent-inactive = 3e3e29 +banner = 939393 +border-active = 939393 +border-inactive = 515235 +header = 656641 +highlight = 656641 +main = 3e3e29 +notification = 8c8e59 +notification-error = 787a4d +subtext = 838383 +text = a3a3a3 diff --git a/dot-config/spicetify/Themes/text/screenshots/CatppuccinLatte.png b/dot-config/spicetify/Themes/text/screenshots/CatppuccinLatte.png new file mode 100644 index 0000000..907f1b5 Binary files /dev/null and b/dot-config/spicetify/Themes/text/screenshots/CatppuccinLatte.png differ diff --git a/dot-config/spicetify/Themes/text/screenshots/CatppuccinMacchiato.png b/dot-config/spicetify/Themes/text/screenshots/CatppuccinMacchiato.png new file mode 100644 index 0000000..05be26a Binary files /dev/null and b/dot-config/spicetify/Themes/text/screenshots/CatppuccinMacchiato.png differ diff --git a/dot-config/spicetify/Themes/text/screenshots/CatppuccinMocha.png b/dot-config/spicetify/Themes/text/screenshots/CatppuccinMocha.png new file mode 100644 index 0000000..62a5299 Binary files /dev/null and b/dot-config/spicetify/Themes/text/screenshots/CatppuccinMocha.png differ diff --git a/dot-config/spicetify/Themes/text/screenshots/Dracula.png b/dot-config/spicetify/Themes/text/screenshots/Dracula.png new file mode 100644 index 0000000..5758fc1 Binary files /dev/null and b/dot-config/spicetify/Themes/text/screenshots/Dracula.png differ diff --git a/dot-config/spicetify/Themes/text/screenshots/ForestGreen.png b/dot-config/spicetify/Themes/text/screenshots/ForestGreen.png new file mode 100644 index 0000000..e19f259 Binary files /dev/null and b/dot-config/spicetify/Themes/text/screenshots/ForestGreen.png differ diff --git a/dot-config/spicetify/Themes/text/screenshots/Gruvbox.png b/dot-config/spicetify/Themes/text/screenshots/Gruvbox.png new file mode 100644 index 0000000..a69d9a7 Binary files /dev/null and b/dot-config/spicetify/Themes/text/screenshots/Gruvbox.png differ diff --git a/dot-config/spicetify/Themes/text/screenshots/Kanagawa.png b/dot-config/spicetify/Themes/text/screenshots/Kanagawa.png new file mode 100644 index 0000000..729a6bf Binary files /dev/null and b/dot-config/spicetify/Themes/text/screenshots/Kanagawa.png differ diff --git a/dot-config/spicetify/Themes/text/screenshots/Nord.png b/dot-config/spicetify/Themes/text/screenshots/Nord.png new file mode 100644 index 0000000..5ab76a2 Binary files /dev/null and b/dot-config/spicetify/Themes/text/screenshots/Nord.png differ diff --git a/dot-config/spicetify/Themes/text/screenshots/Rigel.png b/dot-config/spicetify/Themes/text/screenshots/Rigel.png new file mode 100644 index 0000000..b6c9108 Binary files /dev/null and b/dot-config/spicetify/Themes/text/screenshots/Rigel.png differ diff --git a/dot-config/spicetify/Themes/text/screenshots/RosePine.png b/dot-config/spicetify/Themes/text/screenshots/RosePine.png new file mode 100644 index 0000000..b4c8e78 Binary files /dev/null and b/dot-config/spicetify/Themes/text/screenshots/RosePine.png differ diff --git a/dot-config/spicetify/Themes/text/screenshots/RosePineDawn.png b/dot-config/spicetify/Themes/text/screenshots/RosePineDawn.png new file mode 100644 index 0000000..4318ca8 Binary files /dev/null and b/dot-config/spicetify/Themes/text/screenshots/RosePineDawn.png differ diff --git a/dot-config/spicetify/Themes/text/screenshots/RosePineMoon.png b/dot-config/spicetify/Themes/text/screenshots/RosePineMoon.png new file mode 100644 index 0000000..d54b63b Binary files /dev/null and b/dot-config/spicetify/Themes/text/screenshots/RosePineMoon.png differ diff --git a/dot-config/spicetify/Themes/text/screenshots/Solarized.png b/dot-config/spicetify/Themes/text/screenshots/Solarized.png new file mode 100644 index 0000000..5df5d30 Binary files /dev/null and b/dot-config/spicetify/Themes/text/screenshots/Solarized.png differ diff --git a/dot-config/spicetify/Themes/text/screenshots/Spicetify.png b/dot-config/spicetify/Themes/text/screenshots/Spicetify.png new file mode 100644 index 0000000..db5d8a4 Binary files /dev/null and b/dot-config/spicetify/Themes/text/screenshots/Spicetify.png differ diff --git a/dot-config/spicetify/Themes/text/screenshots/Spotify.png b/dot-config/spicetify/Themes/text/screenshots/Spotify.png new file mode 100644 index 0000000..0110f02 Binary files /dev/null and b/dot-config/spicetify/Themes/text/screenshots/Spotify.png differ diff --git a/dot-config/spicetify/Themes/text/screenshots/TokyoNight.png b/dot-config/spicetify/Themes/text/screenshots/TokyoNight.png new file mode 100644 index 0000000..3c2596c Binary files /dev/null and b/dot-config/spicetify/Themes/text/screenshots/TokyoNight.png differ diff --git a/dot-config/spicetify/Themes/text/screenshots/TokyoNightStorm.png b/dot-config/spicetify/Themes/text/screenshots/TokyoNightStorm.png new file mode 100644 index 0000000..c42374f Binary files /dev/null and b/dot-config/spicetify/Themes/text/screenshots/TokyoNightStorm.png differ diff --git a/dot-config/spicetify/Themes/text/screenshots/winctrl.png b/dot-config/spicetify/Themes/text/screenshots/winctrl.png new file mode 100644 index 0000000..4838110 Binary files /dev/null and b/dot-config/spicetify/Themes/text/screenshots/winctrl.png differ diff --git a/dot-config/spicetify/Themes/text/screenshots/withimg.png b/dot-config/spicetify/Themes/text/screenshots/withimg.png new file mode 100644 index 0000000..b0c184a Binary files /dev/null and b/dot-config/spicetify/Themes/text/screenshots/withimg.png differ diff --git a/dot-config/spicetify/Themes/text/screenshots/withoutimg.png b/dot-config/spicetify/Themes/text/screenshots/withoutimg.png new file mode 100644 index 0000000..0110f02 Binary files /dev/null and b/dot-config/spicetify/Themes/text/screenshots/withoutimg.png differ diff --git a/dot-config/spicetify/Themes/text/user.css b/dot-config/spicetify/Themes/text/user.css new file mode 100644 index 0000000..63e039d --- /dev/null +++ b/dot-config/spicetify/Themes/text/user.css @@ -0,0 +1,713 @@ +/* ================================ + ROOT + ================================ */ + +/* import */ +/* find more in https://fonts.google.com/?category=Monospace&sort=popularity */ +@import url("https://fonts.googleapis.com/css2?family=Anonymous+Pro:wght@400;700&family=Courier+Prime:wght@400;700&family=Cousine:wght@400;700&family=Cutive+Mono&family=DM+Mono:wght@300;400;500&family=Fira+Mono:wght@400;500;700&family=IBM+Plex+Mono:wght@100;200;300;400;500;600;700&family=Inconsolata:wght@200;300;400;500;600;700;800;900&family=Nanum+Gothic+Coding:wght@400;700&family=PT+Mono&family=Roboto+Mono:wght@100;200;300;400;500;600;700&family=Share+Tech+Mono&family=Source+Code+Pro:wght@200;300;400;500;600;700;800;900&family=Space+Mono:wght@400;700&family=Ubuntu+Mono:wght@400;700&family=VT323&display=swap"); +@import url("https://fonts.cdnfonts.com/css/asciid"); + +/* user settings */ +:root { + --font-family: "DM Mono", monospace; + /* + --font-family: 'Anonymous Pro', monospace; + --font-family: 'Courier Prime', monospace; + --font-family: 'Cousine', monospace; + --font-family: 'Cutive Mono', monospace; + --font-family: 'DM Mono', monospace; + --font-family: 'Fira Mono', monospace; + --font-family: 'IBM Plex Mono', monospace; + --font-family: 'Inconsolata', monospace; + --font-family: 'Nanum Gothic Coding', monospace; + --font-family: 'PT Mono', monospace; + --font-family: 'Roboto Mono', monospace; + --font-family: 'Share Tech Mono', monospace; + --font-family: 'Source Code Pro', monospace; + --font-family: 'Space Mono', monospace; + --font-family: 'Ubuntu Mono', monospace; + --font-family: 'VT323', monospace; + */ + --font-size: 14px; + --font-weight: 400; /* 200 : 900 */ + --line-height: 1.2; + + --font-size-lyrics: 14px; /* 1.5em (default) */ + + --font-family-header: "asciid"; + --font-size-multiplier-header: 4; + + --display-card-image: block; /* none | block */ + --display-coverart-image: none; /* none | block */ + --display-header-image: none; /* none | block */ + --display-library-image: block; /* none | block */ + --display-tracklist-image: none; /* none | block */ + --display-spicetify-banner-ascii: block; /* none | block */ + --display-music-banner-ascii: none; /* none | block */ + + --border-radius: 0px; + --border-width: 1px; + --border-style: solid; /* dotted | dashed | solid | double | groove | ridge | inset | outset */ + --border-transition: 0.2s ease; /* 'none' to disable */ +} + +/* font */ +*:not([style*="lyric" i] *, [class*="lyric" i], .main-entityHeader-title) { + font-family: var(--font-family) !important; + font-size: var(--font-size) !important; + font-weight: var(--font-weight) !important; + line-height: var(--line-height) !important; +} +.lyrics-lyrics-container *, +.main-nowPlayingView-lyricsContent * { + font-family: var(--font-family); + font-size: var(--font-size-lyrics); + font-weight: var(--font-weight); + line-height: var(--line-height); +} +.main-entityHeader-title h1 { + font-family: var(--font-family-header) !important; + font-size: calc( + var(--font-size) * var(--font-size-multiplier-header) + ) !important; + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 2; +} + +/* images */ +.main-card-imageContainer img, +.view-homeShortcutsGrid-imageContainer img { + display: var(--display-card-image) !important; +} +.main-coverSlotCollapsed-container { + display: var(--display-coverart-image); +} +.main-entityHeader-imageContainer, +.under-main-view, +.main-entityHeader-creatorWrapper .main-avatar-avatar, +.main-entityHeader-imageContainer, +.playlist-playlist-playlistImageContainer, +.profile-userOverview-imageContainer { + display: var(--display-header-image); +} +.x-entityImage-imageContainer img, +.main-avatar-image { + display: var(--display-library-image); +} +.main-trackList-rowImage { + display: var(--display-tracklist-image); +} + +/* fix */ +:root { + --content-max-width: 100% !important; +} +.Root__top-container { + --panel-gap: 16px !important; +} +.Root__top-bar { + border: var(--border-width) solid transparent; +} +.Root__nav-bar, +.Root__now-playing-bar { + overflow: visible; +} +.main-view-container { + overflow: hidden; +} +.main-entityHeader-container.main-entityHeader-withBackgroundImage, +.main-entityHeader-container.main-entityHeader-nonWrapped { + height: 250px; + min-height: unset; +} +.main-entityHeader-imageContainerNew { + height: 128px; + width: 128px; +} +.main-topBar-background, +.main-topBar-overlay, +.main-home-homeHeader, +.main-home-filterChipsSection, +.main-home-filterChipsSection::after { + background-color: var(--spice-main) !important; + background-image: none; +} +.LayoutResizer__resize-bar { + cursor: w-resize; +} +.LayoutResizer__inline-end:after, +.LayoutResizer__inline-start:after { + background-color: var(--spice-border-inactive); +} +.LayoutResizer__resize-bar--resizing.LayoutResizer__inline-start:after, +.LayoutResizer__resize-bar--resizing.LayoutResizer__inline-end:after { + background-color: var(--spice-border-active); +} + +/* fullscreen */ +.spotifyinternal-artistnpv .npv-what-is-playing .npv-cover-art, +.spotifyinternal-artistnpv .npv-what-is-playing .npv-track { + bottom: 18em; +} +.spotifyinternal-artistnpv .npv-what-is-playing .npv-cover-art { + -webkit-transform: scale(0.34375); + transform: scale(0.34375); +} +.spotifyinternal-artistnpv .npv-what-is-playing .npv-track { + -webkit-transform: none; + transform: none; +} +.npv-main-container .playback-bar { + position: unset; + width: auto; +} +.npv-nowPlayingBar-controls { + height: auto; +} + +/* recolor */ +:root { + --spice-main-elevated: var(--spice-main); + --spice-highlight-elevated: var(--spice-highlight); + --spice-sidebar: var(--spice-main); + --spice-player: var(--spice-main); + --spice-card: var(--spice-main); + --spice-shadow: var(--spice-main); + --spice-selected-row: var(--spice-subtext); + --spice-button: var(--spice-accent); + --spice-button-active: var(--spice-accent-active); + --spice-button-disabled: var(--spice-accent-inactive); + --spice-tab-active: var(--spice-main); + --spice-rgb-main-elevated: var(--spice-rgb-main); + --spice-rgb-highlight-elevated: var(--spice-rgb-highlight); + --spice-rgb-sidebar: var(--spice-rgb-main); + --spice-rgb-player: var(--spice-rgb-main); + --spice-rgb-card: var(--spice-rgb-main); + --spice-rgb-shadow: var(--spice-rgb-main); + --spice-rgb-selected-row: var(--spice-rgb-subtext); + --spice-rgb-button: var(--spice-rgb-accent); + --spice-rgb-button-active: var(--spice-rgb-accent-active); + --spice-rgb-button-disabled: var(--spice-rgb-accent-inactive); + --spice-rgb-tab-active: var(--spice-rgb-main); +} +.Root__top-container, +.Root__nav-bar { + background-color: var(--spice-main); +} +.main-playPauseButton-button { + background-color: transparent; + color: var(--spice-subtext); +} +.main-playPauseButton-button:focus, +.main-playPauseButton-button:hover { + transform: none; + color: var(--spice-text); +} +#_R_G *:not([fill="none"]) { + fill: var(--spice-button-active) !important; +} +#_R_G *:not([stroke="none"]) { + stroke: var(--spice-button-active); +} +.view-homeShortcutsGrid-equaliser, +.main-devicePicker-nowPlayingActiveIcon, +.main-trackList-playingIcon { + filter: grayscale(1) opacity(0.2) + drop-shadow(0 0 0 var(--spice-button-active)) + drop-shadow(0 0 0 var(--spice-button-active)) + drop-shadow(0 0 0 var(--spice-button-active)); +} +::placeholder { + color: var(--spice-subtext); +} +.main-entityHeader-background, +.main-entityHeader-backgroundColor, +.main-entityHeader-overlay, +.main-actionBarBackground-background, +.main-buddyFeed-container, +.main-nowPlayingView-content.main-nowPlayingView-gradient { + background-color: transparent !important; + background-image: none; +} +.progress-bar { + --fg-color: var(--spice-button-active); + --bg-color: var(--spice-button-disabled); +} +.playback-bar__progress-time-elapsed, +.main-playbackBarRemainingTime-container { + mix-blend-mode: difference; + color: var(--spice-button-active); +} +.main-trackList-placeholder { + background-color: var(--background-base); + background-blend-mode: color-dodge; +} +.main-trackList-trackListHeaderStuck.main-trackList-trackListHeader { + background: var(--spice-main); +} +.main-trackList-trackListRow:focus-within, +.main-trackList-trackListRow:hover, +.main-contextMenu-menuItemButton:hover, +.main-contextMenu-menuItemButton:not([aria-checked="true"]):focus, +.main-card-card:hover, +.main-card-card[data-context-menu-open="true"] { + background-color: rgba(var(--spice-rgb-highlight), 0.5); +} +.main-trackList-trackListRow.main-trackList-selected, +.main-trackList-trackListRow.main-trackList-selected:hover { + background-color: var(--spice-highlight); +} +.x-entityImage-imageContainer, +.main-card-imageContainer > div:first-child { + background-color: var(--card-color, var(--spice-border-inactive)); +} +.main-avatar-avatar { + background-color: var(--spice-border-inactive) !important; +} +.main-entityHeader-title h1 { + color: var(--spice-banner); +} + +/* pane borders */ +.main-yourLibraryX-entryPoints, +.Root__main-view, +.Root__now-playing-bar, +.Root__right-sidebar:has(aside:not(:empty)) { + border: var(--border-width) var(--border-style); + border-color: var(--spice-border-inactive); + border-radius: var(--border-radius); + background-color: var(--spice-main); + transition: border-color var(--border-transition); +} +.main-yourLibraryX-entryPoints:hover, +.Root__main-view:hover, +.Root__now-playing-bar:hover, +.Root__right-sidebar:has(aside:not(:empty)):hover { + border: var(--border-width) var(--border-style); + border-color: var(--spice-border-active); +} + +/* pane headers */ +.Root__nav-bar .main-yourLibraryX-entryPoints { + overflow-x: visible !important; +} +.Root__nav-bar .main-yourLibraryX-entryPoints:nth-child(1)::before, +.Root__nav-bar .main-yourLibraryX-entryPoints:nth-child(2)::before, +.Root__main-view::before, +.Root__now-playing-bar::before, +.Root__right-sidebar:has(aside:not(:empty))::before { + color: var(--spice-header); + position: absolute; + margin: -10px 4px; + background: var(--spice-main); + padding: 0 3px; + z-index: 9; + transition: color var(--border-transition); +} +.Root__nav-bar .main-yourLibraryX-entryPoints:nth-child(1)::before { + content: "Pages"; +} +.Root__nav-bar .main-yourLibraryX-entryPoints:nth-child(2)::before { + content: "Library"; +} +.Root__main-view::before { + content: "Main"; + position: fixed; +} +.Root__now-playing-bar::before { + content: "Playing"; +} +.Root__right-sidebar:has(aside:not(:empty))::before { + content: "Sidebar"; +} +.Root__nav-bar .main-yourLibraryX-entryPoints:hover::before, +.Root__main-view:hover::before, +.Root__now-playing-bar:hover::before, +.Root__right-sidebar:has(aside:not(:empty)):hover::before { + color: var(--spice-border-active); +} + +/* scrollbars */ +.os-scrollbar-handle { + border-radius: var(--border-radius) !important; + width: 2px !important; + position: absolute; + top: 0; + right: 0; +} +.os-scrollbar-handle:hover { + border-radius: var(--border-radius) !important; + width: 6px !important; +} +.os-scrollbar-vertical { + top: 5px !important; + right: 5px !important; +} + +/* context menus + tippy boxes */ +.main-contextMenu-menu, +.tippy-box { + border: var(--border-width) var(--border-style) var(--spice-border-active); + border-radius: var(--border-radius) !important; +} + +/* modals */ +.GenericModal { + border: var(--border-width) var(--border-style) var(--spice-border-active); + border-radius: var(--border-radius); + outline: 14px solid var(--spice-main) !important; + overflow: visible; +} +.GenericModal::before { + content: "Modal"; + color: var(--spice-border-active); + position: absolute; + margin: -10px 4px; + background: var(--spice-main); + padding: 0 3px; + z-index: 9; +} + +/* ================================ + LEFT SIDEBAR + ================================ */ + +/* pages pane */ +.main-yourLibraryX-navLink { + height: 24px; + gap: 8px; + text-decoration: none !important; +} +.main-yourLibraryX-navLink > svg, +.main-yourLibraryX-header .main-yourLibraryX-collapseButtonWrapper > span { + transform: scale(0.6); +} + +/* library pane */ +.x-entityImage-imageContainer { + transform: scale(0.7); +} +.main-yourLibraryX-filterArea { + padding: 0 8px; +} +.main-yourLibraryX-libraryRootlist { + padding: 0 16px 8px; +} + +/* sidebar config */ +.main-yourLibraryX-entryPoints:first-child:has( + .main-yourLibraryX-navItems:empty + ) { + display: none; +} + +/* ================================ + MAIN VIEW + ================================ */ + +/* check out a cool project: https://github.com/Rigellute/spotify-tui + + _________ ____ / /_(_) __/_ __ / /___ __(_)\A + / ___/ __ \\/ __ \\/ __/ / /_/ / / /_____/ __/ / / / /\A + (__ ) /_/ / /_/ / /_/ / __/ /_/ /_____/ /_/ /_/ / /\A + /____/ .___/\\____/\\__/_/_/ \\__, / \\__/\\__,_/_/\A + /_/ /____/ + +*/ +.view-homeShortcutsGrid-shortcuts::before { + content: " _________ ____ / /_(_) __/_ __ / /___ __(_)\A / ___/ __ \\/ __ \\/ __/ / /_/ / / /_____/ __/ / / / /\A (__ ) /_/ / /_/ / /_/ / __/ /_/ /_____/ /_/ /_/ / /\A /____/ .___/\\____/\\__/_/_/ \\__, / \\__/\\__,_/_/\A /_/ /____/ "; + white-space: pre-wrap; + padding: 32px 0; + color: var(--spice-banner); + line-height: 1.2; + display: var(--display-spicetify-banner-ascii); +} +.main-entityHeader-headerText::before { + content: "────█▀█▄▄▄▄─────██▄\A────█▀▄▄▄▄█─────█▀▀█\A─▄▄▄█─────█──▄▄▄█\A██▀▄█─▄██▀█─███▀█\A─▀▀▀──▀█▄█▀─▀█▄█▀\A"; + white-space: pre-wrap; + padding-bottom: 32px; + color: var(--spice-banner); + line-height: 1.2; + display: var(--display-music-banner-ascii); +} + +/* top bar */ +.queue-tabBar-active, +.marketplace-tabBar-active { + text-decoration: underline !important; +} +.main-topBar-historyButtons .main-topBar-button { + background-color: transparent; +} +.main-topBar-historyButtons > .main-topBar-button:first-child::before { + content: "<"; +} +.main-topBar-button.main-topBar-responsiveForward::before { + content: ">"; +} +.main-topBar-historyButtons > .main-topBar-button:first-child > svg, +.main-topBar-button.main-topBar-responsiveForward > svg { + display: none; +} +.main-topBar-topbarContent { + gap: 24px; +} +.x-searchInput-searchInputInput { + border-radius: var(--border-radius); + background-color: transparent; +} +.x-searchInput-searchInputInput:hover, +.x-searchInput-searchInputInput:focus { + box-shadow: none; + border: 1px solid var(--spice-button-active); + background-color: transparent; +} +.search-searchCategory-catergoryGrid *, +.main-shelf-subHeader * { + border-radius: var(--border-radius); +} + +/* headers */ +.main-entityHeader-container.main-entityHeader-withBackgroundImage { + background-image: radial-gradient( + circle, + rgba(var(--spice-rgb-main), 0.7) 0%, + rgba(var(--spice-rgb-main), 0.9) 50%, + rgba(var(--spice-rgb-main), 1) 100% + ); +} + +/* compact tracklists */ +.main-trackList-trackListRow { + height: 32px; +} +.main-trackList-rowMainContent { + grid-template: "title badges subtitle" / auto 1fr; +} +.main-trackList-rowImage { + height: 24px; + width: 24px; +} +.main-trackList-rowTitle::after { + content: " |"; + color: var(--spice-highlight); +} +.main-trackList-number, +.main-trackList-icon { + top: unset; +} + +/* lyrics page & sidebar */ +.lyrics-lyrics-background { + background-color: var(--spice-main); +} +.main-nowPlayingView-sectionHeaderSpacing.main-nowPlayingView-lyricsGradient { + background-color: var(--background-tinted-base); +} +.lyrics-lyrics-contentContainer { + justify-content: start; +} +.lyrics-lyrics-container, +.main-nowPlayingView-section { + --lyrics-color-active: var(--spice-text) !important; + --lyrics-color-inactive: var(--spice-subtext) !important; + --lyrics-color-passed: var(--spice-subtext) !important; + --lyrics-color-messaging: var(--spice-subtext) !important; +} +.lyrics-lyricsContent-lyric { + opacity: 0.3; + display: flex; + flex-direction: row; +} +.lyrics-lyricsContent-lyric.lyrics-lyricsContent-highlight { + opacity: 0.7; + transition: none; +} +.lyrics-lyricsContent-lyric.lyrics-lyricsContent-active:not(:empty) { + background-color: var(--lyrics-color-background); + color: var(--spice-main); + opacity: 1; + transition: none; +} +.lyrics-lyricsContent-lyric:not(:empty)::before { + content: ">> "; + opacity: 0; + white-space: break-spaces; +} +.lyrics-lyricsContent-lyric.lyrics-lyricsContent-active:not(:empty)::before { + content: ">> "; + opacity: 1; + white-space: break-spaces; +} + +/* lyrics cinema */ +.Root__lyrics-cinema { + border: var(--border-width) var(--border-style) transparent; + overflow: hidden; +} +.main-nowPlayingView-lyricsContent { + -webkit-mask-image: none !important; + mask-image: none !important; +} + +/* ================================ + PLAYBACK BAR + ================================ */ + +/* playback bar itself */ +.main-nowPlayingBar-nowPlayingBar { + padding: 8px 8px 32px 8px; + height: 96px; +} +.playback-bar { + position: absolute; + left: calc(var(--panel-gap) + 8px); + bottom: calc(var(--panel-gap) + 8px); + width: calc(100vw - var(--panel-gap) * 2 - 16px); + justify-content: center; +} + +/* playback time indicators */ +.playback-bar__progress-time-elapsed { + pointer-events: none; +} +.playback-bar__progress-time-elapsed::after { + content: " /"; +} +.playback-bar__progress-time-elapsed, +.main-playbackBarRemainingTime-container { + z-index: 9; + padding-top: 2px; +} + +/* playback seek bar */ +.playback-progressbar-container { + position: absolute; + width: 100%; +} +.progress-bar { + --progress-bar-height: 16px; + --progress-bar-radius: var(--border-radius); +} +.progress-bar__slider { + box-shadow: none; + height: 100%; + border-radius: 0; +} + +/* cover art */ +.main-nowPlayingWidget-coverArt .cover-art { + height: 32px !important; + width: 32px !important; +} + +/* left nowplaying text */ +.main-nowPlayingBar-left { + padding-inline-start: 0; +} +.main-nowPlayingWidget-trackInfo { + margin: 0; +} + +/* volume bar */ +.volume-bar__slider-container .x-progressBar-fillColor, +.volume-bar__slider-container + .playback-progressbar-isInteractive + .progress-bar--isDragging + .x-progressBar-fillColor, +.volume-bar__slider-container + .playback-progressbar-isInteractive + .progress-bar:focus + .x-progressBar-fillColor, +.volume-bar__slider-container + .playback-progressbar-isInteractive + .progress-bar:hover + .x-progressBar-fillColor, +.volume-bar__slider-container + .playback-progressbar-isInteractive:focus-within + .x-progressBar-fillColor { + height: 9px; + background-color: transparent; + border-bottom: 2px dashed var(--fg-color); +} +.volume-bar__slider-container .x-progressBar-progressBarBg { + background-color: transparent; +} + +/* player controls */ +.player-controls__buttons { + margin-bottom: 0; +} +.player-controls__buttons, +.main-nowPlayingBar-extraControls { + opacity: 0.25; + transition: opacity var(--border-transition); +} +.player-controls__buttons:hover, +.main-nowPlayingBar-extraControls:hover { + opacity: 1; +} +.main-shuffleButton-button::before, +.ecHWOS + button:has( + path[d="M13.151.922a.75.75 0 1 0-1.06 1.06L13.109 3H11.16a3.75 3.75 0 0 0-2.873 1.34l-6.173 7.356A2.25 2.25 0 0 1 .39 12.5H0V14h.391a3.75 3.75 0 0 0 2.873-1.34l6.173-7.356a2.25 2.25 0 0 1 1.724-.804h1.947l-1.017 1.018a.75.75 0 0 0 1.06 1.06L15.98 3.75 13.15.922zM.391 3.5H0V2h.391c1.109 0 2.16.49 2.873 1.34L4.89 5.277l-.979 1.167-1.796-2.14A2.25 2.25 0 0 0 .39 3.5z"] + )::before { + content: "\21C4"; +} +.ecHWOS + button:has( + path[d="M12.09.922a.75.75 0 0 1 1.061 0L15.98 3.75l-2.83 2.828a.75.75 0 1 1-1.06-1.06L13.109 4.5H11.16a2.25 2.25 0 0 0-1.724.804L3.264 12.66A3.75 3.75 0 0 1 .391 14H0v-1.5h.391a2.25 2.25 0 0 0 1.724-.804L8.288 4.34A3.75 3.75 0 0 1 11.16 3h1.947L12.09 1.982a.75.75 0 0 1 0-1.06zM.88 3.319C2.255 2.874 2.976 1.787 3.297.874c.036-.102.37-.102.406 0 .321.913 1.042 2 2.417 2.445.103.033.103.329 0 .362-1.375.445-2.096 1.532-2.417 2.445-.036.102-.37.102-.406 0-.321-.913-1.042-2-2.417-2.445-.103-.033-.103-.329 0-.362z"] + )::before { + content: "\21C4\2726"; +} +.main-skipBackButton-button::before { + content: "\25C1"; +} +.main-playPauseButton-button[aria-label="Play"]::before, +.main-playPauseButton-button:has( + path[d="M3 1.713a.7.7 0 0 1 1.05-.607l10.89 6.288a.7.7 0 0 1 0 1.212L4.05 14.894A.7.7 0 0 1 3 14.288V1.713z"] + )::before { + content: "\25B6"; +} +.main-playPauseButton-button[aria-label="Pause"]::before, +.main-playPauseButton-button:has( + path[d="M2.7 1a.7.7 0 0 0-.7.7v12.6a.7.7 0 0 0 .7.7h2.6a.7.7 0 0 0 .7-.7V1.7a.7.7 0 0 0-.7-.7H2.7zm8 0a.7.7 0 0 0-.7.7v12.6a.7.7 0 0 0 .7.7h2.6a.7.7 0 0 0 .7-.7V1.7a.7.7 0 0 0-.7-.7h-2.6z"] + )::before { + content: "\275A\275A"; +} +.main-skipForwardButton-button::before { + content: "\25B7"; +} +.main-repeatButton-button::before { + content: "\21BB"; +} +.main-repeatButton-button[aria-checked="mixed"]::before { + content: "\21BB\2474"; +} +.main-shuffleButton-button > svg, +.player-controls__left .ecHWOS svg, +.main-skipBackButton-button > svg, +.main-playPauseButton-button > svg, +.main-skipForwardButton-button > svg, +.main-repeatButton-button > svg { + display: none; +} + +/* connect bar */ +.main-connectBar-connectBar { + position: absolute; + background-color: transparent !important; + mix-blend-mode: difference; + pointer-events: none; + right: var(--panel-gap); + bottom: var(--panel-gap); + opacity: 0.25; + padding: 0 10px 10px; +} +.main-connectBar-connectBar span { + color: var(--spice-accent-active); +} +.main-connectBar-connectBar svg { + fill: var(--spice-accent-active); +} diff --git a/dot-config/spicetify/config-xpui.ini b/dot-config/spicetify/config-xpui.ini new file mode 100644 index 0000000..7df73e0 --- /dev/null +++ b/dot-config/spicetify/config-xpui.ini @@ -0,0 +1,34 @@ +[AdditionalOptions] +extensions = +custom_apps = +sidebar_config = 0 +home_config = 0 +experimental_features = 0 + +[Patch] +;xpui.js_find_8008 = ,(\w+=)56, +;xpui.js_repl_8008 = ,${1}32, + +[Setting] +color_scheme = catppuccin-mocha +spotify_launch_flags = +always_enable_devtools = 0 +check_spicetify_update = 1 +spotify_path = /opt/spotify/ +prefs_path = /home/timoxa0/.config/spotify/prefs +current_theme = Dribbblish +inject_theme_js = 1 +inject_css = 1 +replace_colors = 1 +overwrite_assets = 0 + +[Preprocesses] +expose_apis = 1 +disable_sentry = 1 +disable_ui_logging = 1 +remove_rtl_rule = 1 + +; DO NOT CHANGE! +[Backup] +version = 1.2.48.405.gf2c48e6f +with = 2.38.4 diff --git a/dot-config/tmux/tmux.conf b/dot-config/tmux/tmux.conf new file mode 100644 index 0000000..9a7eed6 --- /dev/null +++ b/dot-config/tmux/tmux.conf @@ -0,0 +1,48 @@ +set -g mouse on + +set -sa terminal-overrides ",xterm*:Tc" +set-option -g destroy-unattached on + +unbind C-b +set -g prefix C-Space +bind C-Space send-prefix + +set -g base-index 1 +set -g pane-base-index 1 +set-window-option -g pane-base-index 1 +set-option -g renumber-windows on + +bind -n M-H previous-window +bind -n M-: next-window + +# List of plugins +set -g @plugin 'tmux-plugins/tmux-sensible' +set -g @plugin 'catppuccin/tmux#sgoudham-patch-1' +set -g @plugin 'christoomey/vim-tmux-navigator' +set -g @plugin 'tmux-plugins/tmux-yank' +set -g @plugin 'tmux-plugins/tpm' + +set -g @catppuccin_flavour 'mocha' +set -g @catppuccin_window_status_style "rounded" +set -g status-right-length 100 +set -g status-left-length 100 +set -g status-left "" +set -g status-right "#{E:@catppuccin_status_application}" +set -agF status-right "#{E:@catppuccin_status_cpu}" +set -ag status-right "#{E:@catppuccin_status_session}" +set -ag status-right "#{E:@catppuccin_status_uptime}" + +set-window-option -g mode-keys vi + +bind-key -T copy-mode-vi v send-keys -X begin-selection +bind-key -T copy-mode-vi C-v send-keys -X rectangle-selection +bind-key -T copy-mode-vi y send-keys -X copy-selection-and-cancel + +unbind % +unbind '"' +bind '\' split-window -v -c "#{pane_current_path}" +bind ']' split-window -h -c "#{pane_current_path}" + +bind C-l send-keys 'C-l' + +run '~/.config/tmux/tpm/tpm' diff --git a/dot-config/tmux/tpm b/dot-config/tmux/tpm new file mode 160000 index 0000000..99469c4 --- /dev/null +++ b/dot-config/tmux/tpm @@ -0,0 +1 @@ +Subproject commit 99469c4a9b1ccf77fade25842dc7bafbc8ce9946 diff --git a/dot-config/vesktop/settings.json b/dot-config/vesktop/settings.json new file mode 100644 index 0000000..d407d78 --- /dev/null +++ b/dot-config/vesktop/settings.json @@ -0,0 +1,7 @@ +{ + "discordBranch": "stable", + "minimizeToTray": true, + "arRPC": true, + "splashColor": "rgb(205, 214, 244)", + "splashBackground": "rgb(30, 30, 46)" +} \ No newline at end of file diff --git a/dot-config/vesktop/settings/quickCss.css b/dot-config/vesktop/settings/quickCss.css new file mode 100644 index 0000000..e69de29 diff --git a/dot-config/vesktop/settings/settings.json b/dot-config/vesktop/settings/settings.json new file mode 100644 index 0000000..df2e40c --- /dev/null +++ b/dot-config/vesktop/settings/settings.json @@ -0,0 +1,610 @@ +{ + "autoUpdate": true, + "autoUpdateNotification": true, + "useQuickCss": true, + "themeLinks": [ + "https://catppuccin.github.io/discord/dist/catppuccin-mocha-blue.theme.css" + ], + "enabledThemes": [], + "enableReactDevtools": false, + "frameless": false, + "transparent": false, + "winCtrlQ": false, + "disableMinSize": false, + "winNativeTitleBar": false, + "plugins": { + "ChatInputButtonAPI": { + "enabled": true + }, + "CommandsAPI": { + "enabled": true + }, + "MemberListDecoratorsAPI": { + "enabled": false + }, + "MessageAccessoriesAPI": { + "enabled": true + }, + "MessageDecorationsAPI": { + "enabled": false + }, + "MessageEventsAPI": { + "enabled": true + }, + "MessagePopoverAPI": { + "enabled": false + }, + "MessageUpdaterAPI": { + "enabled": false + }, + "ServerListAPI": { + "enabled": true + }, + "UserSettingsAPI": { + "enabled": true + }, + "CopyFileContents": { + "enabled": false + }, + "AlwaysAnimate": { + "enabled": false + }, + "AlwaysExpandRoles": { + "enabled": false + }, + "AlwaysTrust": { + "enabled": false + }, + "AnonymiseFileNames": { + "enabled": false + }, + "AppleMusicRichPresence": { + "enabled": false + }, + "WebRichPresence (arRPC)": { + "enabled": false + }, + "BANger": { + "enabled": false + }, + "BetterFolders": { + "enabled": false + }, + "BetterGifAltText": { + "enabled": false + }, + "BetterGifPicker": { + "enabled": false + }, + "BetterNotesBox": { + "enabled": false + }, + "BetterRoleContext": { + "enabled": false + }, + "BetterRoleDot": { + "enabled": false + }, + "BetterSessions": { + "enabled": false, + "backgroundCheck": false + }, + "BetterSettings": { + "enabled": false + }, + "BetterUploadButton": { + "enabled": false + }, + "BiggerStreamPreview": { + "enabled": false + }, + "BlurNSFW": { + "enabled": false + }, + "CallTimer": { + "enabled": false + }, + "ClearURLs": { + "enabled": false + }, + "ClientTheme": { + "enabled": false, + "color": "313338" + }, + "ColorSighted": { + "enabled": false + }, + "ConsoleJanitor": { + "enabled": true, + "disableLoggers": false, + "disableSpotifyLogger": true, + "whitelistedLoggers": "GatewaySocket; Routing/Utils" + }, + "ConsoleShortcuts": { + "enabled": false + }, + "CopyEmojiMarkdown": { + "enabled": false + }, + "CopyUserURLs": { + "enabled": false + }, + "CrashHandler": { + "enabled": true + }, + "CtrlEnterSend": { + "enabled": false, + "submitRule": "ctrl+enter", + "sendMessageInTheMiddleOfACodeBlock": true + }, + "CustomRPC": { + "enabled": false + }, + "CustomIdle": { + "enabled": false + }, + "Dearrow": { + "enabled": false + }, + "Decor": { + "enabled": false + }, + "DisableCallIdle": { + "enabled": false + }, + "DontRoundMyTimestamps": { + "enabled": false + }, + "EmoteCloner": { + "enabled": false + }, + "Experiments": { + "enabled": true, + "toolbarDevMenu": false + }, + "F8Break": { + "enabled": true + }, + "FakeNitro": { + "enabled": true, + "enableStickerBypass": true, + "enableStreamQualityBypass": true, + "enableEmojiBypass": true, + "transformEmojis": true, + "transformStickers": true, + "transformCompoundSentence": false + }, + "FakeProfileThemes": { + "enabled": false + }, + "FavoriteEmojiFirst": { + "enabled": false + }, + "FavoriteGifSearch": { + "enabled": false + }, + "FixCodeblockGap": { + "enabled": false + }, + "FixSpotifyEmbeds": { + "enabled": true + }, + "FixYoutubeEmbeds": { + "enabled": true + }, + "ForceOwnerCrown": { + "enabled": true + }, + "FriendInvites": { + "enabled": false + }, + "FriendsSince": { + "enabled": false + }, + "GameActivityToggle": { + "enabled": false + }, + "GifPaste": { + "enabled": false + }, + "GreetStickerPicker": { + "enabled": false + }, + "HideAttachments": { + "enabled": false + }, + "iLoveSpam": { + "enabled": false + }, + "IgnoreActivities": { + "enabled": false + }, + "ImageLink": { + "enabled": true + }, + "ImageZoom": { + "enabled": true + }, + "ImplicitRelationships": { + "enabled": false + }, + "InvisibleChat": { + "enabled": false + }, + "KeepCurrentChannel": { + "enabled": false + }, + "LastFMRichPresence": { + "enabled": false + }, + "LoadingQuotes": { + "enabled": false + }, + "MemberCount": { + "enabled": false + }, + "MentionAvatars": { + "enabled": false + }, + "MessageClickActions": { + "enabled": false + }, + "MessageLatency": { + "enabled": false + }, + "MessageLinkEmbeds": { + "enabled": false + }, + "MessageLogger": { + "enabled": false + }, + "MessageTags": { + "enabled": false + }, + "MoreCommands": { + "enabled": false + }, + "MoreKaomoji": { + "enabled": false + }, + "MoreUserTags": { + "enabled": false + }, + "Moyai": { + "enabled": false, + "volume": 0.5, + "quality": "Normal", + "triggerWhenUnfocused": true, + "ignoreBots": true, + "ignoreBlocked": true + }, + "MutualGroupDMs": { + "enabled": false + }, + "NewGuildSettings": { + "enabled": false + }, + "NoBlockedMessages": { + "enabled": false + }, + "NoDefaultHangStatus": { + "enabled": false + }, + "NoDevtoolsWarning": { + "enabled": true + }, + "NoF1": { + "enabled": true + }, + "NoMaskedUrlPaste": { + "enabled": false + }, + "NoMosaic": { + "enabled": false + }, + "NoOnboardingDelay": { + "enabled": false + }, + "NoPendingCount": { + "enabled": false + }, + "NoProfileThemes": { + "enabled": false + }, + "NoReplyMention": { + "enabled": false + }, + "NoScreensharePreview": { + "enabled": false + }, + "NoServerEmojis": { + "enabled": false + }, + "NoTypingAnimation": { + "enabled": false + }, + "NoUnblockToJump": { + "enabled": false + }, + "NormalizeMessageLinks": { + "enabled": false + }, + "NotificationVolume": { + "enabled": false + }, + "NSFWGateBypass": { + "enabled": false + }, + "OnePingPerDM": { + "enabled": false + }, + "oneko": { + "enabled": false + }, + "OpenInApp": { + "enabled": false + }, + "OverrideForumDefaults": { + "enabled": false + }, + "PartyMode": { + "enabled": false + }, + "PauseInvitesForever": { + "enabled": false + }, + "PermissionFreeWill": { + "enabled": false + }, + "PermissionsViewer": { + "enabled": false + }, + "petpet": { + "enabled": false + }, + "PictureInPicture": { + "enabled": false + }, + "PinDMs": { + "enabled": false + }, + "PlainFolderIcon": { + "enabled": true + }, + "PlatformIndicators": { + "enabled": false + }, + "PreviewMessage": { + "enabled": false + }, + "QuickMention": { + "enabled": false + }, + "QuickReply": { + "enabled": false + }, + "ReactErrorDecoder": { + "enabled": false + }, + "ReadAllNotificationsButton": { + "enabled": false + }, + "RelationshipNotifier": { + "enabled": false + }, + "ReplaceGoogleSearch": { + "enabled": false + }, + "ReplyTimestamp": { + "enabled": false + }, + "RevealAllSpoilers": { + "enabled": false + }, + "ReverseImageSearch": { + "enabled": false + }, + "ReviewDB": { + "enabled": false + }, + "RoleColorEverywhere": { + "enabled": false + }, + "SecretRingToneEnabler": { + "enabled": false + }, + "Summaries": { + "enabled": false + }, + "SendTimestamps": { + "enabled": false + }, + "ServerInfo": { + "enabled": true + }, + "ServerListIndicators": { + "enabled": false + }, + "ShikiCodeblocks": { + "enabled": false + }, + "ShowAllMessageButtons": { + "enabled": false + }, + "ShowConnections": { + "enabled": false + }, + "ShowHiddenChannels": { + "enabled": false + }, + "ShowHiddenThings": { + "enabled": false + }, + "ShowMeYourName": { + "enabled": false + }, + "ShowTimeoutDuration": { + "enabled": false + }, + "SilentMessageToggle": { + "enabled": false + }, + "SilentTyping": { + "enabled": false, + "showIcon": false, + "contextMenu": true, + "isEnabled": true + }, + "SortFriendRequests": { + "enabled": false + }, + "SpotifyControls": { + "enabled": false + }, + "SpotifyCrack": { + "enabled": true, + "noSpotifyAutoPause": true, + "keepSpotifyActivityOnIdle": false + }, + "SpotifyShareCommands": { + "enabled": false + }, + "StartupTimings": { + "enabled": false + }, + "StickerPaste": { + "enabled": false + }, + "StreamerModeOnStream": { + "enabled": false + }, + "SuperReactionTweaks": { + "enabled": false + }, + "TextReplace": { + "enabled": false + }, + "ThemeAttributes": { + "enabled": false + }, + "TimeBarAllActivities": { + "enabled": false + }, + "Translate": { + "enabled": false + }, + "TypingIndicator": { + "enabled": false + }, + "TypingTweaks": { + "enabled": false + }, + "Unindent": { + "enabled": false + }, + "UnlockedAvatarZoom": { + "enabled": false + }, + "UnsuppressEmbeds": { + "enabled": false + }, + "UserVoiceShow": { + "enabled": false + }, + "USRBG": { + "enabled": false + }, + "ValidReply": { + "enabled": true + }, + "ValidUser": { + "enabled": false + }, + "VoiceChatDoubleClick": { + "enabled": false + }, + "VcNarrator": { + "enabled": false + }, + "VencordToolbox": { + "enabled": false + }, + "ViewIcons": { + "enabled": false + }, + "ViewRaw": { + "enabled": false + }, + "VoiceDownload": { + "enabled": false + }, + "VoiceMessages": { + "enabled": false + }, + "VolumeBooster": { + "enabled": false + }, + "WebKeybinds": { + "enabled": true + }, + "WebScreenShareFixes": { + "enabled": true + }, + "WhoReacted": { + "enabled": false + }, + "XSOverlay": { + "enabled": false + }, + "YoutubeAdblock": { + "enabled": false + }, + "NoTrack": { + "enabled": true, + "disableAnalytics": true + }, + "WebContextMenus": { + "enabled": true, + "addBack": true + }, + "Settings": { + "enabled": true, + "settingsLocation": "aboveNitro" + }, + "FullSearchContext": { + "enabled": true + }, + "AccountPanelServerProfile": { + "enabled": false + }, + "SupportHelper": { + "enabled": true + }, + "UserMessagesPronouns": { + "enabled": false, + "pronounsFormat": "LOWERCASE", + "pronounSource": 0, + "showSelf": true, + "showInMessages": true, + "showInProfile": true + }, + "DynamicImageModalAPI": { + "enabled": true + }, + "FixImagesQuality": { + "enabled": false + } + }, + "notifications": { + "timeout": 5000, + "position": "bottom-right", + "useNative": "not-focused", + "logLimit": 50 + }, + "cloud": { + "authenticated": true, + "url": "https://api.vencord.dev/", + "settingsSync": true, + "settingsSyncVersion": 1729847132463 + } +} \ No newline at end of file diff --git a/dot-config/vesktop/themes/catppuccin-mocha.theme.css b/dot-config/vesktop/themes/catppuccin-mocha.theme.css new file mode 100644 index 0000000..0ff1938 --- /dev/null +++ b/dot-config/vesktop/themes/catppuccin-mocha.theme.css @@ -0,0 +1,84 @@ +/** + * @name system24 (catppuccin mocha) + * @description A tui-style discord theme. Based on the catppuccin mocha color palette. + * @author refact0r + * @version 1.0.0 + * @invite nz87hXyvcy + * @website https://github.com/refact0r/system24 + * @source https://github.com/refact0r/system24/blob/master/flavors/catppuccin-mocha.theme.css + * @authorId 508863359777505290 + * @authorLink https://www.refact0r.dev +*/ + +/* import theme modules */ +@import url('https://refact0r.github.io/system24/src/main.css'); /* main theme css. DO NOT REMOVE */ +@import url('https://refact0r.github.io/system24/src/unrounding.css'); /* gets rid of all rounded corners. remove if you want rounded corners. */ + +/* customize things here */ +:root { + --font: 'JetBrainsMono Nerd Font Mono'; /* UI font name. it must be installed on your system. */ + letter-spacing: -0.05ch; /* decreases letter spacing for better readability. */ + font-weight: 300; /* UI font weight. */ + --label-font-weight: 500; /* font weight for panel labels. */ + --corner-text: 'catppuccin24'; /* custom text to display in the corner. only works on windows. */ + --pad: 16px; /* padding between panels. */ + --txt-pad: 10px; /* padding inside panels to prevent labels from clipping */ + --panel-roundness: 0px; /* corner roundness of panels. ONLY WORKS IF unrounding.css IS REMOVED (see above). */ + + /* background colors */ + --bg-0: #1e1e2e; /* main background color. */ + --bg-1: #181825; /* background color for secondary elements like code blocks, embeds, etc. */ + --bg-2: #313244; /* color of neutral buttons. */ + --bg-3: #45475a; /* color of neutral buttons when hovered. */ + + /* state modifiers */ + --hover: color-mix(in oklch, var(--txt-3), transparent 80%); /* color of hovered elements. */ + --active: color-mix(in oklch, var(--txt-3), transparent 60%); /* color of elements when clicked. */ + --selected: var(--active); /* color of selected elements. */ + + /* text colors */ + --txt-dark: var(--bg-0); /* color of dark text on colored backgrounds. */ + --txt-link: var(--cyan); /* color of links. */ + --txt-0: #eaeefa; /* color of bright/white text. */ + --txt-1: #cdd6f4; /* main text color. */ + --txt-2: #9399b2; /* color of secondary text like channel list. */ + --txt-3: #585b70; /* color of muted text. */ + + /* accent colors */ + --acc-0: var(--purple); /* main accent color. */ + --acc-1: var(--purple-1); /* color of accent buttons when hovered. */ + --acc-2: var(--purple-2); /* color of accent buttons when clicked. */ + + /* borders */ + --border-width: 2px; /* panel border thickness. */ + --border-color: var(--bg-2); /* panel border color. */ + --border-hover-color: var(--acc-0); /* panel border color when hovered. */ + --border-transition: 0.2s ease; /* panel border transition. */ + + /* status dot colors */ + --online-dot: var(--green); /* color of online dot. */ + --dnd-dot: var(--pink); /* color of do not disturb dot. */ + --idle-dot: var(--yellow); /* color of idle dot. */ + --streaming-dot: var(--purple); /* color of streaming dot. */ + + /* mention/ping and message colors */ + --mention-txt: var(--acc-0); /* color of mention text. */ + --mention-bg: color-mix(in oklch, var(--acc-0), transparent 90%); /* background highlight of mention text. */ + --mention-overlay: color-mix(in oklch, var(--acc-0), transparent 90%); /* overlay color of messages that mention you. */ + --mention-hover-overlay: color-mix(in oklch, var(--acc-0), transparent 95%); /* overlay color of messages that mention you when hovered. */ + --reply-overlay: var(--active); /* overlay color of message you are replying to. */ + --reply-hover-overlay: var(--hover); /* overlay color of message you are replying to when hovered. */ + + /* color shades */ + --pink: #f38ba8; + --pink-1: #d16c89; + --pink-2: #af4e6c; + --purple: #cba6f7; + --purple-1: #ab87d6; + --purple-2: #8d69b5; + --cyan: #74c7ec; + --yellow: #f9e2af; + --green: #a6e3a1; + --green-1: #87c282; + --green-2: #68a364; +} diff --git a/dot-config/vesktop/themes/matugen.theme.css b/dot-config/vesktop/themes/matugen.theme.css new file mode 100644 index 0000000..65d2ddf --- /dev/null +++ b/dot-config/vesktop/themes/matugen.theme.css @@ -0,0 +1,99 @@ +/** + * @name midnight + * @description A dark, rounded discord theme. + * @author refact0r + * @version 1.6.2 + * @invite nz87hXyvcy + * @website https://github.com/refact0r/midnight-discord + * @source https://github.com/refact0r/midnight-discord/blob/master/midnight.theme.css + * @authorId 508863359777505290 + * @authorLink https://www.refact0r.dev +*/ + +/* IMPORTANT: make sure to enable dark mode in discord settings for the theme to apply properly!!! */ + +@import url('https://refact0r.github.io/midnight-discord/midnight.css'); + +/* customize things here */ +:root { + /* font, change to 'gg sans' for default discord font*/ + --font: 'figtree'; + + /* top left corner text */ + --corner-text: 'Midnight'; + + /* color of status indicators and window controls */ + --online-indicator: #4b5c92; /* change to #23a55a for default green */ + --dnd-indicator: #ffb4ab; /* change to #f13f43 for default red */ + --idle-indicator: #5a3d58; /* change to #f0b232 for default yellow */ + --streaming-indicator: #1a2d60; /* change to #593695 for default purple */ + + /* accent colors */ + --accent-1: #e2bbdb; /* links */ + --accent-2: #b4c5ff; /* general unread/mention elements, some icons when active */ + --accent-3: #b4c5ff; /* accent buttons */ + --accent-4: #38393f; /* accent buttons when hovered */ + --accent-5: #b4c5ff; /* accent buttons when clicked */ + --mention: #121318; /* mentions & mention messages */ + --mention-hover: #38393f; /* mentions & mention messages when hovered */ + + /* text colors */ + --text-0: #121318; /* text on colored elements */ + --text-1: #e3e2e9; /* other normally white text */ + --text-2: #e3e2e9; /* headings and important text */ + --text-3: #c5c6d0; /* normal text */ + --text-4: #c5c6d0; /* icon buttons and channels */ + --text-5: #8f909a; /* muted channels/chats and timestamps */ + + /* background and dark colors */ + --bg-1: #b4c5ff; /* dark buttons when clicked */ + --bg-2: #292a2f; /* dark buttons */ + --bg-3: #1a1b21; /* spacing, secondary elements */ + --bg-4: #121318; /* main background color */ + --hover: #38393f; /* channels and buttons when hovered */ + --active: #38393f; /* channels and buttons when clicked or selected */ + --message-hover: #38393f; /* messages when hovered */ + + /* amount of spacing and padding */ + --spacing: 12px; + + /* animations */ + /* ALL ANIMATIONS CAN BE DISABLED WITH REDUCED MOTION IN DISCORD SETTINGS */ + --list-item-transition: 0.2s ease; /* channels/members/settings hover transition */ + --unread-bar-transition: 0.2s ease; /* unread bar moving into view transition */ + --moon-spin-transition: 0.4s ease; /* moon icon spin */ + --icon-spin-transition: 1s ease; /* round icon button spin (settings, emoji, etc.) */ + + /* corner roundness (border-radius) */ + --roundness-xl: 22px; /* roundness of big panel outer corners */ + --roundness-l: 20px; /* popout panels */ + --roundness-m: 16px; /* smaller panels, images, embeds */ + --roundness-s: 12px; /* members, settings inputs */ + --roundness-xs: 10px; /* channels, buttons */ + --roundness-xxs: 8px; /* searchbar, small elements */ + + /* direct messages moon icon */ + /* change to block to show, none to hide */ + --discord-icon: none; /* discord icon */ + --moon-icon: block; /* moon icon */ + --moon-icon-url: url('https://upload.wikimedia.org/wikipedia/commons/c/c4/Font_Awesome_5_solid_moon.svg'); /* custom icon url */ + --moon-icon-size: auto; + + /* filter uncolorable elements to fit theme */ + /* (just set to none, they're too much work to configure) */ + --login-bg-filter: saturate(0.3) hue-rotate(-15deg) brightness(0.4); /* login background artwork */ + --green-to-accent-3-filter: hue-rotate(56deg) saturate(1.43); /* add friend page explore icon */ + --blurple-to-accent-3-filter: hue-rotate(304deg) saturate(0.84) brightness(1.2); /* add friend page school icon */ +} + +/* Selected chat/friend text */ +.selected_f5eb4b, +.selected_f6f816 .link_d8bfb3 { + color: var(--text-0) !important; + background: var(--accent-3) !important; +} + +.selected_f6f816 .link_d8bfb3 * { + color: var(--text-0) !important; + fill: var(--text-0) !important; +} diff --git a/dot-config/vesktop/themes/monochrome.theme.css b/dot-config/vesktop/themes/monochrome.theme.css new file mode 100644 index 0000000..151a5e9 --- /dev/null +++ b/dot-config/vesktop/themes/monochrome.theme.css @@ -0,0 +1,86 @@ +/** + * @name system24 (monochrome) + * @description A tui-style discord theme. Has less colors and more neutral greys and whites. + * @author refact0r, DeadGrip + * @version 1.0.0 + * @invite nz87hXyvcy + * @website https://github.com/refact0r/system24 + * @authorId 508863359777505290 + * @authorLink https://refact0r.dev/ +*/ + +/* import theme modules */ +@import url('https://refact0r.github.io/system24/src/main.css'); /* main theme css. DO NOT REMOVE */ +@import url('https://refact0r.github.io/system24/src/unrounding.css'); /* gets rid of all rounded corners. remove if you want rounded corners. */ + +/* customize things here */ +:root { + --font: 'JetBrainsMono Nerd Font Mono'; /* UI font name. it must be installed on your system. */ + letter-spacing: -0.05ch; /* decreases letter spacing for better readability. */ + font-weight: 300; /* UI font weight. */ + --label-font-weight: 500; /* font weight for panel labels. */ + --corner-text: 'monochrome'; /* custom text to display in the corner. only works on windows. */ + --pad: 16px; /* padding between panels. */ + --txt-pad: 10px; /* padding inside panels to prevent labels from clipping */ + --panel-roundness: 0px; /* corner roundness of panels. ONLY WORKS IF unrounding.css IS REMOVED (see above). */ + + /* background colors */ + --bg-0: oklch(19% 0 0); /* main background color. */ + --bg-1: oklch(23% 0 0); /* background color for secondary elements like code blocks, embeds, etc. */ + --bg-2: oklch(27% 0 0); /* color of neutral buttons. */ + --bg-3: oklch(31% 0 0); /* color of neutral buttons when hovered. */ + + /* state modifiers */ + --hover: oklch(54% 0 0 / 0.1); /* color of hovered elements. */ + --active: oklch(54% 0 0 / 0.2); /* color of elements when clicked. */ + --selected: var(--active); /* color of selected elements. */ + + /* text colors */ + --txt-dark: var(--bg-0); /* color of dark text on colored backgrounds. */ + --txt-link: var(--shade-0); /* color of links. */ + --txt-0: oklch(90% 0 0); /* color of bright/white text. */ + --txt-1: oklch(80% 0 0); /* main text color. */ + --txt-2: oklch(60% 0 0); /* color of secondary text like channel list. */ + --txt-3: oklch(40% 0 0); /* color of muted text. */ + + /* accent colors */ + --acc-0: var(--shade-0); /* main accent color. */ + --acc-1: var(--shade-1); /* color of accent buttons when hovered. */ + --acc-2: var(--shade-2); /* color of accent buttons when clicked. */ + + /* borders */ + --border-width: 2px; /* panel border thickness. */ + --border-color: var(--bg-3); /* panel border color. */ + --border-hover-color: var(--acc-1); /* panel border color when hovered. */ + --border-transition: 0.2s ease; /* panel border transition. */ + + /* status dot colors */ + --online-dot: var(--shade-0); /* color of online dot. */ + --dnd-dot: oklch(80% 0.08 0); /* color of do not disturb dot. */ + --idle-dot: oklch(80% 0.08 100); /* color of idle dot. */ + --streaming-dot: oklch(80% 0.08 300); /* color of streaming dot. */ + + /* mention/ping and message colors */ + --mention-txt: var(--acc-0); /* color of mention text. */ + --mention-bg: color-mix(in oklch, var(--acc-0), transparent 90%); /* background highlight of mention text. */ + --mention-overlay: color-mix(in oklch, var(--acc-0), transparent 90%); /* overlay color of messages that mention you. */ + --mention-hover-overlay: color-mix(in oklch, var(--acc-0), transparent 95%); /* overlay color of messages that mention you when hovered. */ + --reply-overlay: var(--active); /* overlay color of message you are replying to. */ + --reply-hover-overlay: var(--hover); /* overlay color of message you are replying to when hovered. */ + + /* color shades */ + --pink: oklch(90% 0 0); + --pink-1: oklch(70% 0 0); + --pink-2: oklch(50% 0 0); + --purple: oklch(90% 0 0); + --purple-1: oklch(70% 0 0); + --purple-2: oklch(50% 0 0); + --cyan: oklch(90% 0 0); + --yellow: oklch(90% 0 0); + --green: oklch(90% 0 0); + --green-1: oklch(70% 0 0); + --green-2: oklch(50% 0 0); + --shade-0: oklch(90% 0 0); + --shade-1: oklch(70% 0 0); + --shade-2: oklch(50% 0 0); +} diff --git a/dot-config/waybar/colors.css b/dot-config/waybar/colors.css new file mode 100644 index 0000000..9afe5ac --- /dev/null +++ b/dot-config/waybar/colors.css @@ -0,0 +1,103 @@ +/* +* Css Colors +* Generated with Matugen +*/ + + @define-color background #121318; + + @define-color error #ffb4ab; + + @define-color error_container #93000a; + + @define-color inverse_on_surface #2f3036; + + @define-color inverse_primary #4b5c92; + + @define-color inverse_surface #e3e2e9; + + @define-color on_background #e3e2e9; + + @define-color on_error #690005; + + @define-color on_error_container #ffdad6; + + @define-color on_primary #1a2d60; + + @define-color on_primary_container #dbe1ff; + + @define-color on_primary_fixed #00174b; + + @define-color on_primary_fixed_variant #334478; + + @define-color on_secondary #2b3042; + + @define-color on_secondary_container #dde1f9; + + @define-color on_secondary_fixed #161b2c; + + @define-color on_secondary_fixed_variant #414659; + + @define-color on_surface #e3e2e9; + + @define-color on_surface_variant #c5c6d0; + + @define-color on_tertiary #422741; + + @define-color on_tertiary_container #ffd6f8; + + @define-color on_tertiary_fixed #2b122b; + + @define-color on_tertiary_fixed_variant #5a3d58; + + @define-color outline #8f909a; + + @define-color outline_variant #45464f; + + @define-color primary #b4c5ff; + + @define-color primary_container #334478; + + @define-color primary_fixed #dbe1ff; + + @define-color primary_fixed_dim #b4c5ff; + + @define-color scrim #000000; + + @define-color secondary #c1c5dd; + + @define-color secondary_container #414659; + + @define-color secondary_fixed #dde1f9; + + @define-color secondary_fixed_dim #c1c5dd; + + @define-color shadow #000000; + + @define-color source_color #5773c5; + + @define-color surface #121318; + + @define-color surface_bright #38393f; + + @define-color surface_container #1e1f25; + + @define-color surface_container_high #292a2f; + + @define-color surface_container_highest #34343a; + + @define-color surface_container_low #1a1b21; + + @define-color surface_container_lowest #0d0e13; + + @define-color surface_dim #121318; + + @define-color surface_variant #45464f; + + @define-color tertiary #e2bbdb; + + @define-color tertiary_container #5a3d58; + + @define-color tertiary_fixed #ffd6f8; + + @define-color tertiary_fixed_dim #e2bbdb; + diff --git a/dot-config/waybar/mocha.css b/dot-config/waybar/mocha.css new file mode 100644 index 0000000..75cfb9d --- /dev/null +++ b/dot-config/waybar/mocha.css @@ -0,0 +1,26 @@ +@define-color rosewater #f5e0dc; +@define-color flamingo #f2cdcd; +@define-color pink #f5c2e7; +@define-color mauve #cba6f7; +@define-color red #f38ba8; +@define-color maroon #eba0ac; +@define-color peach #fab387; +@define-color yellow #f9e2af; +@define-color green #a6e3a1; +@define-color teal #94e2d5; +@define-color sky #89dceb; +@define-color sapphire #74c7ec; +@define-color blue #89b4fa; +@define-color lavender #b4befe; +@define-color text #cdd6f4; +@define-color subtext1 #bac2de; +@define-color subtext0 #a6adc8; +@define-color overlay2 #9399b2; +@define-color overlay1 #7f849c; +@define-color overlay0 #6c7086; +@define-color surface2 #585b70; +@define-color surface1 #45475a; +@define-color surface0 #313244; +@define-color base #1e1e2e; +@define-color mantle #181825; +@define-color crust #11111b; diff --git a/dot-config/waybar/waybar.css b/dot-config/waybar/waybar.css new file mode 100644 index 0000000..f8dd1bf --- /dev/null +++ b/dot-config/waybar/waybar.css @@ -0,0 +1,85 @@ +@import "mocha.css"; + +* { + font-family: JetBrainsMono, "Font Awesome 6 Free", SymbolsNerdFont; + font-weight: bold; + font-size: 14px; + min-height: 0px; +} + +window#waybar { + background-color: transparent; +/* background: @mantle; */ + transition-property: background-color; + transition-duration: .5s; + border-radius: 15px; +} + +#workspaces { + background-color: @base; + margin: 3px 5px 3px 5px; + padding: 3px; + border-radius: 12px; +} +#workspaces button, +#workspaces button:hover, +#workspaces button.active { + padding: 0px 3px; + margin: 2px; + border-radius: 10px; +} +#workspaces button { + background-color: @base; + color: @text; +} +#workspaces button:hover { + background-color: @lavender; + color: @mantle; +} +#workspaces button.active { + background-color: @blue; + color: @mantle +} +#workspaces button.active:hover { + background-color: @blue; + color: @mantle; +} + +#custom-power, #custom-runner, +#wireplumber, #wireplumber.muted, +#tray, #language, #clock { + background: @base; + border-radius: 12px; + color: @text; + margin: 3px 2.5px 3px 2.5px; +} + +#custom-power { + margin: 3px 2.5px 3px 2.5px; + padding: 0px 9px; +} + +#custom-runner { + padding: 0px 10px; +} + +#tray { + padding: 0px 10px; +} + +#wireplumber, #wireplumber.muted { + padding: 0px 10px; + min-width: 55px; +} +#wireplumber.muted { + color: @error; +} + +#language { + padding: 0px 7px 0px 7px; +} + +#clock { + padding: 0px 10px; + margin: 3px 5px 3px 2.5px; +} diff --git a/dot-config/waybar/waybar.jsonc b/dot-config/waybar/waybar.jsonc new file mode 100644 index 0000000..d18aaa4 --- /dev/null +++ b/dot-config/waybar/waybar.jsonc @@ -0,0 +1,57 @@ +{ + "position": "bottom", + "height": 31, + "width": 900, + "spacing": 0, + "margin-bottom": 5, + "layer": "top", + "modules-left": ["custom/power", "custom/runner"], + "modules-center": ["hyprland/workspaces"], + "modules-right": ["tray", "wireplumber", "hyprland/language", "clock"], + + "custom/power": { + "format": "", + "on-click": "~/.config/hypr/bin/powermenu" + }, + + "custom/runner": { + "format": "", + "on-click": "~/.config/hypr/bin/runner" + }, + + "hyprland/workspaces": { + "format": "{name}", + "on-click": "activate", + "tooltip": false, + "persistent_workspaces": { + "*": 1 + } + }, + + "tray": { + "icon-size": 14, + "spacing": 15 + }, + + "wireplumber": { + "scroll-step": 2, + "format": "{icon} {volume}%", + "format-icons":["", "", ""], + "format-muted": " mute", + "on-click": "pavucontrol", + "max-volume": 100 + }, + + "hyprland/language": { + "format": "{}", + "format-en": "Eng", + "format-ru": "Rus" + }, + + "clock": { + "tooltip-format": "{:%Y %B}\n{calendar}", + "format-alt": " {:%Y-%m-%d}", + "format": "{:%H:%M}", + "timezone": "Asia/Yekaterinburg" + } +} diff --git a/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/X_cursor.hlc b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/X_cursor.hlc new file mode 100644 index 0000000..43516cd Binary files /dev/null and b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/X_cursor.hlc differ diff --git a/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/bd_double_arrow.hlc b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/bd_double_arrow.hlc new file mode 100644 index 0000000..c6bd6e3 Binary files /dev/null and b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/bd_double_arrow.hlc differ diff --git a/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/bottom_left_corner.hlc b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/bottom_left_corner.hlc new file mode 100644 index 0000000..52831e7 Binary files /dev/null and b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/bottom_left_corner.hlc differ diff --git a/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/bottom_right_corner.hlc b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/bottom_right_corner.hlc new file mode 100644 index 0000000..f352704 Binary files /dev/null and b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/bottom_right_corner.hlc differ diff --git a/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/bottom_side.hlc b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/bottom_side.hlc new file mode 100644 index 0000000..6642899 Binary files /dev/null and b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/bottom_side.hlc differ diff --git a/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/bottom_tee.hlc b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/bottom_tee.hlc new file mode 100644 index 0000000..17dc22c Binary files /dev/null and b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/bottom_tee.hlc differ diff --git a/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/center_ptr.hlc b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/center_ptr.hlc new file mode 100644 index 0000000..4e02def Binary files /dev/null and b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/center_ptr.hlc differ diff --git a/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/circle.hlc b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/circle.hlc new file mode 100644 index 0000000..a9ad48b Binary files /dev/null and b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/circle.hlc differ diff --git a/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/context-menu.hlc b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/context-menu.hlc new file mode 100644 index 0000000..0c78cff Binary files /dev/null and b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/context-menu.hlc differ diff --git a/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/copy.hlc b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/copy.hlc new file mode 100644 index 0000000..9216c3f Binary files /dev/null and b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/copy.hlc differ diff --git a/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/cross.hlc b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/cross.hlc new file mode 100644 index 0000000..2569841 Binary files /dev/null and b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/cross.hlc differ diff --git a/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/crossed_circle.hlc b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/crossed_circle.hlc new file mode 100644 index 0000000..cc92c44 Binary files /dev/null and b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/crossed_circle.hlc differ diff --git a/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/crosshair.hlc b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/crosshair.hlc new file mode 100644 index 0000000..a005306 Binary files /dev/null and b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/crosshair.hlc differ diff --git a/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/dnd-ask.hlc b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/dnd-ask.hlc new file mode 100644 index 0000000..109a638 Binary files /dev/null and b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/dnd-ask.hlc differ diff --git a/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/dnd-copy.hlc b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/dnd-copy.hlc new file mode 100644 index 0000000..1ea8256 Binary files /dev/null and b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/dnd-copy.hlc differ diff --git a/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/dnd-link.hlc b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/dnd-link.hlc new file mode 100644 index 0000000..af01cef Binary files /dev/null and b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/dnd-link.hlc differ diff --git a/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/dnd_no_drop.hlc b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/dnd_no_drop.hlc new file mode 100644 index 0000000..6dd3c10 Binary files /dev/null and b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/dnd_no_drop.hlc differ diff --git a/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/dotbox.hlc b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/dotbox.hlc new file mode 100644 index 0000000..b1e3494 Binary files /dev/null and b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/dotbox.hlc differ diff --git a/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/fd_double_arrow.hlc b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/fd_double_arrow.hlc new file mode 100644 index 0000000..0c70246 Binary files /dev/null and b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/fd_double_arrow.hlc differ diff --git a/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/grabbing.hlc b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/grabbing.hlc new file mode 100644 index 0000000..bdaa465 Binary files /dev/null and b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/grabbing.hlc differ diff --git a/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/hand1.hlc b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/hand1.hlc new file mode 100644 index 0000000..6335ef8 Binary files /dev/null and b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/hand1.hlc differ diff --git a/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/hand2.hlc b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/hand2.hlc new file mode 100644 index 0000000..5582b8f Binary files /dev/null and b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/hand2.hlc differ diff --git a/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/left_ptr.hlc b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/left_ptr.hlc new file mode 100644 index 0000000..8d27297 Binary files /dev/null and b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/left_ptr.hlc differ diff --git a/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/left_ptr_watch.hlc b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/left_ptr_watch.hlc new file mode 100644 index 0000000..8b1fd3f Binary files /dev/null and b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/left_ptr_watch.hlc differ diff --git a/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/left_side.hlc b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/left_side.hlc new file mode 100644 index 0000000..e9c81cc Binary files /dev/null and b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/left_side.hlc differ diff --git a/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/left_tee.hlc b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/left_tee.hlc new file mode 100644 index 0000000..887bd17 Binary files /dev/null and b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/left_tee.hlc differ diff --git a/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/link.hlc b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/link.hlc new file mode 100644 index 0000000..3b3f3c2 Binary files /dev/null and b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/link.hlc differ diff --git a/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/ll_angle.hlc b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/ll_angle.hlc new file mode 100644 index 0000000..b1d800e Binary files /dev/null and b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/ll_angle.hlc differ diff --git a/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/lr_angle.hlc b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/lr_angle.hlc new file mode 100644 index 0000000..b15db6f Binary files /dev/null and b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/lr_angle.hlc differ diff --git a/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/move.hlc b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/move.hlc new file mode 100644 index 0000000..d7949f0 Binary files /dev/null and b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/move.hlc differ diff --git a/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/pencil.hlc b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/pencil.hlc new file mode 100644 index 0000000..df9dad6 Binary files /dev/null and b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/pencil.hlc differ diff --git a/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/plus.hlc b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/plus.hlc new file mode 100644 index 0000000..4e6a8e8 Binary files /dev/null and b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/plus.hlc differ diff --git a/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/pointer-move.hlc b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/pointer-move.hlc new file mode 100644 index 0000000..a870674 Binary files /dev/null and b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/pointer-move.hlc differ diff --git a/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/question_arrow.hlc b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/question_arrow.hlc new file mode 100644 index 0000000..c200996 Binary files /dev/null and b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/question_arrow.hlc differ diff --git a/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/right_ptr.hlc b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/right_ptr.hlc new file mode 100644 index 0000000..a080d70 Binary files /dev/null and b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/right_ptr.hlc differ diff --git a/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/right_side.hlc b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/right_side.hlc new file mode 100644 index 0000000..ee8d14e Binary files /dev/null and b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/right_side.hlc differ diff --git a/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/right_tee.hlc b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/right_tee.hlc new file mode 100644 index 0000000..4deda45 Binary files /dev/null and b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/right_tee.hlc differ diff --git a/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/sb_down_arrow.hlc b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/sb_down_arrow.hlc new file mode 100644 index 0000000..4ce84f6 Binary files /dev/null and b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/sb_down_arrow.hlc differ diff --git a/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/sb_h_double_arrow.hlc b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/sb_h_double_arrow.hlc new file mode 100644 index 0000000..d52e807 Binary files /dev/null and b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/sb_h_double_arrow.hlc differ diff --git a/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/sb_left_arrow.hlc b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/sb_left_arrow.hlc new file mode 100644 index 0000000..986f44d Binary files /dev/null and b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/sb_left_arrow.hlc differ diff --git a/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/sb_right_arrow.hlc b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/sb_right_arrow.hlc new file mode 100644 index 0000000..549efba Binary files /dev/null and b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/sb_right_arrow.hlc differ diff --git a/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/sb_up_arrow.hlc b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/sb_up_arrow.hlc new file mode 100644 index 0000000..69e3ab5 Binary files /dev/null and b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/sb_up_arrow.hlc differ diff --git a/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/sb_v_double_arrow.hlc b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/sb_v_double_arrow.hlc new file mode 100644 index 0000000..d0bf34b Binary files /dev/null and b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/sb_v_double_arrow.hlc differ diff --git a/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/tcross.hlc b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/tcross.hlc new file mode 100644 index 0000000..c537d31 Binary files /dev/null and b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/tcross.hlc differ diff --git a/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/top_left_corner.hlc b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/top_left_corner.hlc new file mode 100644 index 0000000..434f90a Binary files /dev/null and b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/top_left_corner.hlc differ diff --git a/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/top_right_corner.hlc b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/top_right_corner.hlc new file mode 100644 index 0000000..2f9f275 Binary files /dev/null and b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/top_right_corner.hlc differ diff --git a/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/top_side.hlc b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/top_side.hlc new file mode 100644 index 0000000..260c75a Binary files /dev/null and b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/top_side.hlc differ diff --git a/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/top_tee.hlc b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/top_tee.hlc new file mode 100644 index 0000000..2f2d06d Binary files /dev/null and b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/top_tee.hlc differ diff --git a/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/ul_angle.hlc b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/ul_angle.hlc new file mode 100644 index 0000000..274c3dc Binary files /dev/null and b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/ul_angle.hlc differ diff --git a/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/ur_angle.hlc b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/ur_angle.hlc new file mode 100644 index 0000000..7075ed0 Binary files /dev/null and b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/ur_angle.hlc differ diff --git a/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/vertical-text.hlc b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/vertical-text.hlc new file mode 100644 index 0000000..2c4bdb6 Binary files /dev/null and b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/vertical-text.hlc differ diff --git a/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/wait.hlc b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/wait.hlc new file mode 100644 index 0000000..0485d8b Binary files /dev/null and b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/wait.hlc differ diff --git a/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/wayland-cursor.hlc b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/wayland-cursor.hlc new file mode 100644 index 0000000..16ad36a Binary files /dev/null and b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/wayland-cursor.hlc differ diff --git a/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/xterm.hlc b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/xterm.hlc new file mode 100644 index 0000000..5f854df Binary files /dev/null and b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/xterm.hlc differ diff --git a/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/zoom-in.hlc b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/zoom-in.hlc new file mode 100644 index 0000000..174ff92 Binary files /dev/null and b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/zoom-in.hlc differ diff --git a/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/zoom-out.hlc b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/zoom-out.hlc new file mode 100644 index 0000000..d655021 Binary files /dev/null and b/dot-local/share/icons/Bibata-Modern-Classic/hyprcursors/zoom-out.hlc differ diff --git a/dot-local/share/icons/Bibata-Modern-Classic/manifest.hl b/dot-local/share/icons/Bibata-Modern-Classic/manifest.hl new file mode 100644 index 0000000..3123281 --- /dev/null +++ b/dot-local/share/icons/Bibata-Modern-Classic/manifest.hl @@ -0,0 +1,4 @@ +name = Bibata-Modern-Classic +description = Generated Bibata repository +version = 0.1 +cursors_directory = hyprcursors diff --git a/makelinks b/makelinks new file mode 100755 index 0000000..e3831eb --- /dev/null +++ b/makelinks @@ -0,0 +1,3 @@ +#!/usr/bin/env bash + +stow -d . -t "$HOME" . --dotfiles