New pc rice
3
.gitmodules
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
[submodule "dot-config/tmux/tpm"]
|
||||
path = dot-config/tmux/tpm
|
||||
url = https://github.com/tmux-plugins/tpm
|
20
dot-config/alacritty/alacritty.toml
Normal file
|
@ -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
|
75
dot-config/alacritty/catppuccin-mocha.toml
Normal file
|
@ -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"
|
235
dot-config/fish/completions/lon-tool.fish
Normal file
|
@ -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., <program> -n=<TAB>)
|
||||
# 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'
|
257
dot-config/fish/completions/poetry.fish
Normal file
|
@ -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 <path>.'
|
||||
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'
|
77
dot-config/fish/config.fish
Normal file
|
@ -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
|
78
dot-config/fish/fish_variables
Normal file
|
@ -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
|
34
dot-config/fish/functions/fish_prompt.fish
Normal file
|
@ -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
|
6
dot-config/fish/functions/fish_right_prompt.fish
Normal file
|
@ -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
|
20
dot-config/hypr/bin/autostart
Executable file
|
@ -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 &
|
||||
}
|
4
dot-config/hypr/bin/lockscreen
Executable file
|
@ -0,0 +1,4 @@
|
|||
#!/usr/bin/env fish
|
||||
if not ps -e | grep hyprlock
|
||||
hyprlock -c ~/.config/hypr/hyprlock.conf
|
||||
end
|
108
dot-config/hypr/bin/powermenu
Executable file
|
@ -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
|
1
dot-config/hypr/bin/runner
Executable file
|
@ -0,0 +1 @@
|
|||
rofi -show drun -theme ~/.config/rofi/runner.rasi
|
54
dot-config/hypr/bin/setwal
Executable file
|
@ -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
|
61
dot-config/hypr/binds.conf
Normal file
|
@ -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
|
5
dot-config/hypr/colors.conf
Normal file
|
@ -0,0 +1,5 @@
|
|||
$primary = rgb(89b4fa)
|
||||
$secondary = rgb(313244)
|
||||
$bg = rgb(1e1e2e)
|
||||
$fg = rgb(363a4f)
|
||||
|
76
dot-config/hypr/decorations.conf
Normal file
|
@ -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
|
||||
}
|
||||
}
|
12
dot-config/hypr/env.conf
Normal file
|
@ -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
|
||||
|
10
dot-config/hypr/hypridle.conf
Normal file
|
@ -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
|
||||
}
|
21
dot-config/hypr/hyprland.conf
Normal file
|
@ -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
|
63
dot-config/hypr/hyprlock.conf
Normal file
|
@ -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
|
||||
|
||||
}
|
5
dot-config/hypr/hyprpaper.conf
Normal file
|
@ -0,0 +1,5 @@
|
|||
preload = ~/.config/hypr/wallpaper.png
|
||||
|
||||
wallpaper = ,~/.config/hypr/wallpaper.png
|
||||
|
||||
splash = false
|
9
dot-config/hypr/install.log
Normal file
|
@ -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
|
7
dot-config/hypr/monitors.conf
Normal file
|
@ -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
|
2
dot-config/hypr/plugins.conf
Normal file
|
@ -0,0 +1,2 @@
|
|||
#windowrulev2 = plugin:chromakey,fullscreen:0
|
||||
#chromakey_background = rgb(1e1e2e)
|
41
dot-config/hypr/rules.conf
Normal file
|
@ -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:^()$
|
BIN
dot-config/hypr/wallpaper.png
Normal file
After Width: | Height: | Size: 11 MiB |
19
dot-config/mako/mako.conf
Normal file
|
@ -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
|
6
dot-config/nvim/.stylua.toml
Normal file
|
@ -0,0 +1,6 @@
|
|||
column_width = 120
|
||||
line_endings = "Unix"
|
||||
indent_type = "Spaces"
|
||||
indent_width = 2
|
||||
quote_style = "AutoPreferDouble"
|
||||
call_parentheses = "None"
|
24
dot-config/nvim/LICENSE
Normal file
|
@ -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 <https://unlicense.org>
|
39
dot-config/nvim/init.lua
Normal file
|
@ -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)
|
30
dot-config/nvim/lazy-lock.json
Normal file
|
@ -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" }
|
||||
}
|
16
dot-config/nvim/lua/chadrc.lua
Normal file
|
@ -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
|
15
dot-config/nvim/lua/configs/conform.lua
Normal file
|
@ -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)
|
47
dot-config/nvim/lua/configs/lazy.lua
Normal file
|
@ -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",
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
29
dot-config/nvim/lua/configs/lspconfig.lua
Normal file
|
@ -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"},
|
||||
})
|
15
dot-config/nvim/lua/mappings.lua
Normal file
|
@ -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", "<ESC>")
|
||||
map("n", "<C-h>", "<cmd>TmuxNavigateLeft<CR>", {desc = "Move tmux windows focus left"})
|
||||
map("n", "<C-l>", "<cmd>TmuxNavigateRight<CR>", {desc = "Move tmux windows focus right"})
|
||||
map("n", "<C-j>", "<cmd>TmuxNavigateDown<CR>", {desc = "Move tmux windows focus down"})
|
||||
map("n", "<C-k>", "<cmd>TmuxNavigateUp<CR>", {desc = "Move tmux windows focus up"})
|
||||
|
||||
|
||||
-- map({ "n", "i", "v" }, "<C-s>", "<cmd> w <cr>")
|
9
dot-config/nvim/lua/options.lua
Normal file
|
@ -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!
|
55
dot-config/nvim/lua/plugins/init.lua
Normal file
|
@ -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"
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
4
dot-config/qt5ct/colors/Catppuccin-Mocha.conf
Normal file
|
@ -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
|
31
dot-config/qt5ct/qt5ct.conf
Normal file
|
@ -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()
|
47
dot-config/rofi/colors.rasi
Normal file
|
@ -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;
|
||||
}
|
181
dot-config/rofi/config.rasi
Normal file
|
@ -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} [<span weight='light' size='small'><i>({generic})</i></span>]";
|
||||
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";
|
||||
*/
|
||||
}
|
150
dot-config/rofi/powermenu.rasi
Normal file
|
@ -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;
|
||||
}
|
212
dot-config/rofi/runner.rasi
Normal file
|
@ -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;
|
||||
}
|
BIN
dot-config/spicetify/Backup/login.spa
Executable file
BIN
dot-config/spicetify/Backup/xpui.spa
Executable file
5
dot-config/spicetify/Themes/Blossom/LICENSE
Normal file
|
@ -0,0 +1,5 @@
|
|||
Use it as you wish, have fun listening to music.
|
||||
|
||||
Shoutout to Porter Robinson.
|
||||
|
||||
-Robatortas
|
10
dot-config/spicetify/Themes/Blossom/README.md
Normal file
|
@ -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
|
12
dot-config/spicetify/Themes/Blossom/color.ini
Normal file
|
@ -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
|
BIN
dot-config/spicetify/Themes/Blossom/images/album.png
Normal file
After Width: | Height: | Size: 254 KiB |
BIN
dot-config/spicetify/Themes/Blossom/images/home.png
Normal file
After Width: | Height: | Size: 592 KiB |
434
dot-config/spicetify/Themes/Blossom/user.css
Normal file
|
@ -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;
|
||||
}
|
9
dot-config/spicetify/Themes/BurntSienna/README.md
Normal file
|
@ -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<br>
|
||||
Author: https://github.com/pjaspinski
|
6
dot-config/spicetify/Themes/BurntSienna/color.ini
Normal file
|
@ -0,0 +1,6 @@
|
|||
[Base]
|
||||
button = ef8450
|
||||
sidebar = 242629
|
||||
player = 242629
|
||||
main = 303336
|
||||
button-active = ef8450
|
BIN
dot-config/spicetify/Themes/BurntSienna/screenshot.png
Normal file
After Width: | Height: | Size: 275 KiB |
228
dot-config/spicetify/Themes/BurntSienna/user.css
Normal file
|
@ -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;
|
||||
}
|
132
dot-config/spicetify/Themes/CODE_OF_CONDUCT.md
Normal file
|
@ -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
|
119
dot-config/spicetify/Themes/CONTRIBUTING.md
Normal file
|
@ -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
|
||||
|
||||
<type>(<scope>): <subject>
|
||||
<BLANK LINE>
|
||||
<body>[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 | `<ThemeName>`
|
||||
* 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).
|
13
dot-config/spicetify/Themes/Default/README.md
Normal file
|
@ -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
|
16
dot-config/spicetify/Themes/Default/color.ini
Normal file
|
@ -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
|
BIN
dot-config/spicetify/Themes/Default/ocean.png
Normal file
After Width: | Height: | Size: 226 KiB |
36
dot-config/spicetify/Themes/Dreary/README.md
Normal file
|
@ -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
|
||||
|
BIN
dot-config/spicetify/Themes/Dreary/bib.png
Normal file
After Width: | Height: | Size: 892 KiB |
154
dot-config/spicetify/Themes/Dreary/color.ini
Normal file
|
@ -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
|
BIN
dot-config/spicetify/Themes/Dreary/deeper.png
Normal file
After Width: | Height: | Size: 984 KiB |
BIN
dot-config/spicetify/Themes/Dreary/golden.png
Normal file
After Width: | Height: | Size: 847 KiB |
BIN
dot-config/spicetify/Themes/Dreary/graytone-blue.png
Normal file
After Width: | Height: | Size: 583 KiB |
BIN
dot-config/spicetify/Themes/Dreary/mono.png
Normal file
After Width: | Height: | Size: 950 KiB |
BIN
dot-config/spicetify/Themes/Dreary/psycho.png
Normal file
After Width: | Height: | Size: 850 KiB |
609
dot-config/spicetify/Themes/Dreary/user.css
Normal file
|
@ -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;
|
||||
}
|
110
dot-config/spicetify/Themes/Dribbblish/README.md
Normal file
|
@ -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 src="https://i.imgur.com/1zomkmd.png" alt="img" align="center" width="500px">
|
||||
|
||||
### 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 src="https://i.imgur.com/86gqPe8.png" alt="img" align="center" width="500px">
|
||||
|
||||
### 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 src="https://i.imgur.com/WGQ7Bev.gif" alt="img" align="center" width="500px">
|
||||
|
||||
### 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 <scheme name>
|
||||
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
|
||||
```
|
BIN
dot-config/spicetify/Themes/Dribbblish/base.png
Normal file
After Width: | Height: | Size: 772 KiB |
BIN
dot-config/spicetify/Themes/Dribbblish/beach-sunset.png
Normal file
After Width: | Height: | Size: 532 KiB |
BIN
dot-config/spicetify/Themes/Dribbblish/catppuccin-frappe.png
Normal file
After Width: | Height: | Size: 2 MiB |
BIN
dot-config/spicetify/Themes/Dribbblish/catppuccin-latte.png
Normal file
After Width: | Height: | Size: 1.6 MiB |
BIN
dot-config/spicetify/Themes/Dribbblish/catppuccin-macchiato.png
Normal file
After Width: | Height: | Size: 1.2 MiB |
BIN
dot-config/spicetify/Themes/Dribbblish/catppuccin-mocha.png
Normal file
After Width: | Height: | Size: 1.4 MiB |
308
dot-config/spicetify/Themes/Dribbblish/color.ini
Normal file
|
@ -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
|
BIN
dot-config/spicetify/Themes/Dribbblish/dark.png
Normal file
After Width: | Height: | Size: 260 KiB |
BIN
dot-config/spicetify/Themes/Dribbblish/gruvbox-material-dark.png
Normal file
After Width: | Height: | Size: 2 MiB |
BIN
dot-config/spicetify/Themes/Dribbblish/gruvbox.png
Normal file
After Width: | Height: | Size: 425 KiB |
|
@ -0,0 +1 @@
|
|||
<svg width="80" height="81" viewBox="0 0 80 81" xmlns="http://www.w3.org/2000/svg"><title>Playlist Icon</title><path d="M25.6 11.565v45.38c-2.643-3.27-6.68-5.37-11.2-5.37-7.94 0-14.4 6.46-14.4 14.4s6.46 14.4 14.4 14.4 14.4-6.46 14.4-14.4v-51.82l48-10.205V47.2c-2.642-3.27-6.678-5.37-11.2-5.37-7.94 0-14.4 6.46-14.4 14.4s6.46 14.4 14.4 14.4S80 64.17 80 56.23V0L25.6 11.565zm-11.2 65.61c-6.176 0-11.2-5.025-11.2-11.2 0-6.177 5.024-11.2 11.2-11.2 6.176 0 11.2 5.023 11.2 11.2 0 6.174-5.026 11.2-11.2 11.2zm51.2-9.745c-6.176 0-11.2-5.024-11.2-11.2 0-6.174 5.024-11.2 11.2-11.2 6.176 0 11.2 5.026 11.2 11.2 0 6.178-5.026 11.2-11.2 11.2z" fill="currentColor" fill-rule="evenodd"></path></svg>
|
After Width: | Height: | Size: 686 B |
55
dot-config/spicetify/Themes/Dribbblish/install.ps1
Normal file
|
@ -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
|
||||
}
|
BIN
dot-config/spicetify/Themes/Dribbblish/lunar.png
Normal file
After Width: | Height: | Size: 726 KiB |
BIN
dot-config/spicetify/Themes/Dribbblish/nord-dark.png
Normal file
After Width: | Height: | Size: 919 KiB |
BIN
dot-config/spicetify/Themes/Dribbblish/nord-light.png
Normal file
After Width: | Height: | Size: 222 KiB |
BIN
dot-config/spicetify/Themes/Dribbblish/purple.png
Normal file
After Width: | Height: | Size: 656 KiB |
BIN
dot-config/spicetify/Themes/Dribbblish/rosepine.png
Normal file
After Width: | Height: | Size: 3.3 MiB |
BIN
dot-config/spicetify/Themes/Dribbblish/samurai.png
Normal file
After Width: | Height: | Size: 169 KiB |
242
dot-config/spicetify/Themes/Dribbblish/theme.js
Normal file
|
@ -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 = '<input type="file" class="hidden-visually" />';
|
||||
/** @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 });
|
||||
});
|
||||
}
|
15
dot-config/spicetify/Themes/Dribbblish/uninstall.ps1
Normal file
|
@ -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
|
925
dot-config/spicetify/Themes/Dribbblish/user.css
Normal file
|
@ -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%;
|
||||
}
|
BIN
dot-config/spicetify/Themes/Dribbblish/white.png
Normal file
After Width: | Height: | Size: 136 KiB |
After Width: | Height: | Size: 10 KiB |
21
dot-config/spicetify/Themes/Flow/LICENSE
Normal file
|
@ -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.
|