Compare commits
105 Commits
main
...
ad02049329
| Author | SHA1 | Date | |
|---|---|---|---|
| ad02049329 | |||
| dcb30d0bea | |||
| 945536a29c | |||
| 76dadcf5d9 | |||
| 25adad8c1c | |||
| 07a9418459 | |||
| 84778882e8 | |||
| c98c6eb1ec | |||
| d14e4c3cd9 | |||
| ffd9a441fd | |||
| f7916cb9db | |||
| 96d02aae9e | |||
| 7e14d394f7 | |||
| 54fbef9b9e | |||
| 2584c9384e | |||
| 4731b849ee | |||
| 11bd26b123 | |||
| 0b7fff402a | |||
| 286357aa72 | |||
| 547ff80288 | |||
| 57b8fd050f | |||
| 8672c1710a | |||
| d89afea793 | |||
| f36f089d83 | |||
| 5a0b23c862 | |||
| 12124fd9aa | |||
| 2d779645f5 | |||
| 9d68e5b149 | |||
| d4c61e5fbc | |||
| e14e17e340 | |||
| 5c1a53fc17 | |||
| 6388ef5e14 | |||
| b954326d72 | |||
| 6bab7c7dc8 | |||
| 41cc28dc03 | |||
| 932ce683af | |||
| 9e766b53af | |||
| b7ed739b2f | |||
| cd8e5fd322 | |||
| d22940e0db | |||
| d1283e2e0a | |||
| 2ff35a55ef | |||
| 0553463958 | |||
| 39a83a3398 | |||
| da521004c0 | |||
| 19e0dab102 | |||
| e3040bde7b | |||
| 21814db5b3 | |||
| b2720b485e | |||
| 57785b6bab | |||
| d6cc49e142 | |||
| c5ddc45f58 | |||
| ad29f488c9 | |||
| 22aa216945 | |||
| 4160333b7d | |||
| 67d6dc8b14 | |||
| a4cd6d8f47 | |||
| 9f076891a5 | |||
| caef66b501 | |||
| e8f7f5fb37 | |||
| 5304603970 | |||
| b37fe4cded | |||
| cf34e15de2 | |||
| 30aa878adf | |||
| 369cd2cd49 | |||
| 8ef17d634d | |||
| 84b9538547 | |||
| 85123cc3cd | |||
| 147a26986a | |||
| 7ee6cb61ae | |||
| 5a3dedb5eb | |||
| 27f3e12eb2 | |||
| 5b9dd92c6f | |||
| a68e286e1c | |||
| 24753d9d0c | |||
| b990c56e44 | |||
| 680b94d2eb | |||
| 5283050311 | |||
| d51ce2986f | |||
| 1bd89db726 | |||
| 9b51e31f1a | |||
| aefe0e6dce | |||
| 28877b9e9e | |||
| b34c71a440 | |||
| 4178678640 | |||
| 1192fff9c6 | |||
| 0a18c01d69 | |||
| 84fad656ab | |||
| 5fed9922fb | |||
| 8023ecebe9 | |||
| 6ad8382023 | |||
| cb80d0f1d8 | |||
| c9e06bfc28 | |||
| 3a84c55afc | |||
| 4041a9bd39 | |||
| 6ecd64652f | |||
| 05e375dd5b | |||
| e8855a231d | |||
| 3e9446dc89 | |||
|
e52d797f42
|
|||
|
e124e07715
|
|||
|
2e82fc5ff4
|
|||
|
f8c8caa447
|
|||
|
ba471b2ee5
|
|||
|
f79789fd27
|
@@ -6,11 +6,11 @@
|
||||
#
|
||||
|
||||
# https://specifications.freedesktop.org/basedir-spec/latest/
|
||||
export XDG_CONFIG_HOME="$HOME/.config" # configuration files are stored (default: ~/.config)
|
||||
export XDG_DATA_HOME="$HOME/.local/share" # data files are stored (default: ~/.local/share)
|
||||
export XDG_BIN_HOME="$HOME/.local/bin" # binary executable files, not within the specification, but added for consistency
|
||||
export XDG_STATE_HOME="$HOME/.var/lib" # state data that should persist between (application) restarts, but not important enough to be stored in XDG_DATA_HOME (default: ~/.local/state)
|
||||
export XDG_CACHE_HOME="$HOME/.var/cache" # user-specific non-essential (cached) data.
|
||||
export XDG_CONFIG_HOME="$HOME/etc" # configuration files are stored (default: ~/.config)
|
||||
export XDG_DATA_HOME="$HOME/usr/share" # data files are stored (default: ~/.local/share)
|
||||
export XDG_BIN_HOME="$HOME/usr/bin" # binary executable files, not within the specification, but added for consistency
|
||||
export XDG_STATE_HOME="$HOME/var/lib" # state data that should persist between (application) restarts, but not important enough to be stored in XDG_DATA_HOME (default: ~/.local/state)
|
||||
export XDG_CACHE_HOME="$HOME/var/cache" # user-specific non-essential (cached) data.
|
||||
export PATH="$XDG_BIN_HOME:$PATH" # add our bin in front of PATH, making it take precedence
|
||||
|
||||
if command -v nvim >/dev/null; then
|
||||
|
||||
27
.bashrc
27
.bashrc
@@ -12,26 +12,25 @@ esac
|
||||
[ -z "${PS1-}" ] && return
|
||||
|
||||
# lazy loading of ssh agents
|
||||
__lazy_ssh_agent() {
|
||||
_lazy_ssh() {
|
||||
if [ -z "$SSH_AUTH_SOCK" ]; then
|
||||
eval "$(ssh-agent -s)" >/dev/null
|
||||
ssh-add "$HOME/.ssh/github" >/dev/null 2>&1
|
||||
ssh-add "$HOME/.ssh/gitea" >/dev/null 2>&1
|
||||
ssh-add "$HOME/.ssh/admin@homeserver" >/dev/null 2>&1
|
||||
ssh-add "$HOME/.ssh/github" >/dev/null
|
||||
ssh-add "$HOME/.ssh/gitea" >/dev/null
|
||||
ssh-add "$HOME/.ssh/admin@homeserver" >/dev/null
|
||||
fi
|
||||
}
|
||||
# aliases so the function is called beforehand
|
||||
alias ssh='__lazy_ssh_agent; ssh'
|
||||
alias sudo='__lazy_ssh_agent; sudo'
|
||||
alias ssh='_lazy_ssh; ssh'
|
||||
alias sudo='_lazy_ssh; sudo'
|
||||
|
||||
# colourises make output, so when it prints via
|
||||
# $(warning) or $(error), it is formatted properly
|
||||
__colour_make() {
|
||||
# alias to colourise make output
|
||||
_make() {
|
||||
make "$@" 2> >(sed -E \
|
||||
-e "s/^([Mm]akefile:[0-9]+:.*)/\x1b[33m\1\x1b[0m/" \
|
||||
-e "s/^.*error.*$/\x1b[31m&\x1b[0m/I" >&2)
|
||||
}
|
||||
alias make='__colour_make'
|
||||
alias make='_make'
|
||||
|
||||
# lazily loads the git utilities, to prevent slowdowns
|
||||
__lazy_git_ps1() {
|
||||
@@ -51,13 +50,11 @@ __regenprompt() {
|
||||
local err=$? # acquire the error code of the last executed command
|
||||
local git=$(__lazy_git_ps1)
|
||||
|
||||
# Format the error code to be in the last column of the terminal
|
||||
# this shall be printed as non-printable characters, so won't effect text wrapping.
|
||||
if [ $err -ne 0 ]; then
|
||||
err="\033[$((COLUMNS - 4))G\033[01;31m${err}\033[0G"
|
||||
err="\[\033[$((COLUMNS - 4))G\033[01;31m\]${err}\[\033[0G\]"
|
||||
else unset err; fi
|
||||
|
||||
PS1="\[$err\]" # error code
|
||||
PS1="$err" # error code
|
||||
PS1="$PS1\[\033[?25h\]" # show cursor
|
||||
PS1="$PS1\[\033[01;35m\]\u@\h" # user@host
|
||||
PS1="$PS1\[\033[00m\]:" # separator
|
||||
@@ -75,7 +72,7 @@ HISTIGNORE='exit*:clear*:\:*:echo*'
|
||||
shopt -s checkwinsize # check the window size after each command (and if necessary, the values of LINES and COLUMNS)
|
||||
shopt -s globstar # enable globstar (**/*)
|
||||
|
||||
[ -f "$HOME/.bash_aliases" ] && . "$HOME/.bash_aliases"
|
||||
[ -f "$HOME/.bash_aliases" ] && . .bash_aliases
|
||||
|
||||
# cute lil hyfetch :3
|
||||
[ "$TERM" == "xterm-kitty" ] && fastfetch
|
||||
|
||||
@@ -16,7 +16,6 @@ Checks:
|
||||
- '-bugprone-easily-swappable-parameters'
|
||||
- '-clang-analyzer-security.insecureAPI.*'
|
||||
- '-misc-include-cleaner'
|
||||
- '-bugprone-reserved-identifier'
|
||||
WarningsAsErrors: ''
|
||||
HeaderFileExtensions:
|
||||
- ''
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
# define modifier keys
|
||||
set $mod mod4
|
||||
set $alt mod1
|
||||
|
||||
# define workspaces
|
||||
set $ws1 "1"
|
||||
set $ws2 "2"
|
||||
set $ws3 "3"
|
||||
set $ws4 "4"
|
||||
set $ws5 "5"
|
||||
set $ws6 "6"
|
||||
set $ws7 "7"
|
||||
set $ws8 "8"
|
||||
set $ws9 "9"
|
||||
set $ws10 "10"
|
||||
set $ws11 "11"
|
||||
set $ws12 "12"
|
||||
|
||||
# include different modules (may not include definitions shared across multiple units)
|
||||
include $XDG_CONFIG_HOME/i3/config.d/*.conf
|
||||
exec --no-startup-id i3-msg 'workspace $ws1'
|
||||
@@ -1,29 +0,0 @@
|
||||
# assign custom classes to specific workspaces
|
||||
# to more easily assign apps to specific workspaces temporarily
|
||||
assign [class="app-ws1"] $ws1
|
||||
assign [class="app-ws2"] $ws2
|
||||
assign [class="app-ws3"] $ws3
|
||||
assign [class="app-ws4"] $ws4
|
||||
assign [class="app-ws5"] $ws5
|
||||
assign [class="app-ws6"] $ws6
|
||||
assign [class="app-ws7"] $ws7
|
||||
assign [class="app-ws8"] $ws8
|
||||
assign [class="app-ws9"] $ws9
|
||||
assign [class="app-ws10"] $ws10
|
||||
assign [class="app-ws11"] $ws11
|
||||
assign [class="app-ws12"] $ws12
|
||||
|
||||
# assign applications to specific workspaces
|
||||
# TODO: I'd prefer to switch to the designated workspace when it's launched in another workspace.
|
||||
# assign [class="Spotify"] $ws8
|
||||
assign [class="vesktop"] $ws9
|
||||
|
||||
# autostart applications on a specific workspace
|
||||
exec --no-startup-id i3-msg 'workspace $ws3; exec thunderbird'
|
||||
exec --no-startup-id i3-msg 'workspace $ws2; exec firefox --new-window'
|
||||
exec --no-startup-id i3-msg 'workspace $ws1; exec kitty --single-instance'
|
||||
|
||||
# autostart applications in general (usually always assigned to a workspace)
|
||||
exec --no-startup-id flatpak run dev.vencord.Vesktop
|
||||
# exec --no-startup-id spotify
|
||||
exec --no-startup-id blueman-applet
|
||||
@@ -1,36 +0,0 @@
|
||||
# set the font
|
||||
font pango:JetBrainsMonoNLNerdFont-Regular 10
|
||||
|
||||
# launch polybar
|
||||
exec_always --no-startup-id $XDG_CONFIG_HOME/polybar/launch.sh
|
||||
|
||||
# set the border width (and remove title bars)
|
||||
default_orientation vertical
|
||||
for_window [class=".*"] border pixel 1
|
||||
# for_window [floating] border pixel 5
|
||||
for_window [class=".*"] split toggle
|
||||
|
||||
set $scr1 "eDP-1"
|
||||
set $scr2 "HDMI-1"
|
||||
|
||||
# set xrandr settings
|
||||
exec_always xrandr --auto \
|
||||
--output $scr1 --dpi 96 --primary \
|
||||
--output $scr2 --dpi 96 --above $scr1
|
||||
|
||||
# attach each workspace to a specific screen
|
||||
workspace $ws1 output $scr1
|
||||
workspace $ws2 output $scr1
|
||||
workspace $ws3 output $scr1
|
||||
workspace $ws4 output $scr1
|
||||
workspace $ws5 output $scr1
|
||||
workspace $ws6 output $scr1
|
||||
workspace $ws7 output $scr1
|
||||
workspace $ws8 output $scr1
|
||||
workspace $ws9 output $scr1
|
||||
workspace $ws10 output $scr2
|
||||
workspace $ws11 output $scr2
|
||||
workspace $ws12 output $scr2
|
||||
|
||||
# update the satellite render
|
||||
exec_always satallite-wp-update
|
||||
@@ -1,79 +0,0 @@
|
||||
#
|
||||
# OS-shortcuts
|
||||
#
|
||||
# workspace navigation
|
||||
bindsym $mod+ctrl+h workspace prev
|
||||
# TODO: multi-monitor setup using J/K?
|
||||
bindsym $mod+ctrl+l workspace next
|
||||
|
||||
# window navigation
|
||||
bindsym $mod+h focus left
|
||||
bindsym $mod+j focus down
|
||||
bindsym $mod+k focus up
|
||||
bindsym $mod+l focus right
|
||||
|
||||
# move windows
|
||||
bindsym $mod+shift+h move left
|
||||
bindsym $mod+shift+j move down
|
||||
bindsym $mod+shift+k move up
|
||||
bindsym $mod+shift+l move right
|
||||
|
||||
# closing windows (kill uses WM_DELETE, if available) (split is toggled for quasi alternating layout)
|
||||
bindsym $mod+q split toggle kill
|
||||
bindsym $alt+F4 split toggle kill
|
||||
|
||||
# toggle between the different possible splits
|
||||
bindsym $mod+F10 fullscreen toggle
|
||||
bindsym $mod+e layout toggle split
|
||||
|
||||
# system commands
|
||||
bindsym $mod+shift+c reload
|
||||
bindsym $mod+shift+r restart
|
||||
bindsym $mod+shift+e exit
|
||||
bindsym $mod+shift+f floating toggle
|
||||
bindsym $mod+o exec --no-startup-id xlock -mode petri -delay 20000 -size 2 -ncolors 16 -saturation 0.4 -echokeys -echokey '*' -usefirst
|
||||
|
||||
#
|
||||
# XF86 key actions
|
||||
#
|
||||
# volume control
|
||||
bindsym XF86AudioRaiseVolume exec --no-startup-id x-volume up
|
||||
bindsym XF86AudioLowerVolume exec --no-startup-id x-volume down
|
||||
bindsym XF86AudioMute exec --no-startup-id x-volume mute
|
||||
bindsym XF86AudioMicMute exec --no-startup-id x-mic-mute
|
||||
|
||||
# brightness control
|
||||
bindsym XF86MonBrightnessUp exec --no-startup-id x-brightness up
|
||||
bindsym XF86MonBrightnessDown exec --no-startup-id x-brightness down
|
||||
|
||||
# media controls
|
||||
bindsym XF86AudioPlay exec playerctl play-pause
|
||||
bindsym XF86AudioPause exec playerctl play-pause
|
||||
bindsym XF86AudioNext exec playerctl next
|
||||
bindsym XF86AudioPrev exec playerctl previous
|
||||
|
||||
# app launchers and such
|
||||
bindsym XF86Calculator exec --no-startup-id kitty -e 'calc'
|
||||
|
||||
#
|
||||
# apps
|
||||
#
|
||||
# pickers
|
||||
bindsym $mod+F5 exec --no-startup-id rofi -show window
|
||||
bindsym $mod+space exec --no-startup-id rofi -show drun
|
||||
bindsym $mod+period exec --no-startup-id rofi -show emoji -config emoji
|
||||
|
||||
# terminal
|
||||
bindsym $mod+Return exec --no-startup-id kitty --single-instance
|
||||
bindsym $mod+t exec --no-startup-id kitty --single-instance
|
||||
bindsym $mod+backslash exec --no-startup-id kitty --single-instance
|
||||
|
||||
# internet browser
|
||||
bindsym $mod+b exec --no-startup-id firefox --new-window
|
||||
bindsym $mod+shift+b exec --no-startup-id firefox --new-window --private-window
|
||||
|
||||
# screenshot
|
||||
bindsym $mod+shift+s exec --no-startup-id maim -f png -s | xclip -selection clipboard -t image/png
|
||||
bindsym Print exec --no-startup-id maim -f png | xclip -selection clipboard -t image/png
|
||||
bindsym $mod+ctrl+shift+s exec --no-startup-id maim -f png -s > $(xdg-user-dir PICTURES)/screenshot.png
|
||||
bindsym $mod+Print+s exec --no-startup-id maim -f png > $(xdg-user-dir PICTURES)/screenshot.png
|
||||
@@ -1,27 +0,0 @@
|
||||
# workspace switch keybinds
|
||||
bindsym $mod+1 workspace $ws1
|
||||
bindsym $mod+2 workspace $ws2
|
||||
bindsym $mod+3 workspace $ws3
|
||||
bindsym $mod+4 workspace $ws4
|
||||
bindsym $mod+5 workspace $ws5
|
||||
bindsym $mod+6 workspace $ws6
|
||||
bindsym $mod+7 workspace $ws7
|
||||
bindsym $mod+8 workspace $ws8
|
||||
bindsym $mod+9 workspace $ws9
|
||||
bindsym $mod+0 workspace $ws10
|
||||
bindsym $mod+minus workspace $ws11
|
||||
bindsym $mod+equal workspace $ws12
|
||||
|
||||
# move containers to workspaces
|
||||
bindsym $mod+shift+1 move container to workspace $ws1
|
||||
bindsym $mod+shift+2 move container to workspace $ws2
|
||||
bindsym $mod+shift+3 move container to workspace $ws3
|
||||
bindsym $mod+shift+4 move container to workspace $ws4
|
||||
bindsym $mod+shift+5 move container to workspace $ws5
|
||||
bindsym $mod+shift+6 move container to workspace $ws6
|
||||
bindsym $mod+shift+7 move container to workspace $ws7
|
||||
bindsym $mod+shift+8 move container to workspace $ws8
|
||||
bindsym $mod+shift+9 move container to workspace $ws9
|
||||
bindsym $mod+shift+0 move container to workspace $ws10
|
||||
bindsym $mod+shift+minus move container to workspace $ws11
|
||||
bindsym $mod+shift+equal move container to workspace $ws12
|
||||
@@ -1,11 +0,0 @@
|
||||
[*]
|
||||
charset = UTF-8
|
||||
end_of_line = LF
|
||||
insert_final_newline = true
|
||||
trim_trailing_whitespace = true
|
||||
indent_style = tab
|
||||
indent_size = tab
|
||||
|
||||
[*.lua]
|
||||
indent_style = tab
|
||||
indent_size = tab
|
||||
5
.config/nvim/.gitignore
vendored
5
.config/nvim/.gitignore
vendored
@@ -1,5 +0,0 @@
|
||||
.luarc.json
|
||||
nvim
|
||||
|
||||
*.vim
|
||||
lazy-lock.json
|
||||
@@ -1,13 +0,0 @@
|
||||
# Quinn's NeoVim configuration
|
||||
### Required/Recommended tools:
|
||||
- cURL
|
||||
- git
|
||||
- C compiler
|
||||
- Rust toolchain
|
||||
- lf
|
||||
- fd
|
||||
- clang-format
|
||||
- rustfmt
|
||||
- shfmt
|
||||
- yq
|
||||
- lua5.1
|
||||
@@ -1,10 +0,0 @@
|
||||
# TODO
|
||||
- [X] keybind to edit multiple lines at once (have multiple cursors)
|
||||
- [ ] keybind to rename symbol
|
||||
- [ ] have TAB in insert mode automatically bring me up to the right indentation.
|
||||
- [X] debugger
|
||||
- [X] launch on f5
|
||||
- [x] breakpoints
|
||||
- [X] can set breakpoints
|
||||
- [X] breakpoints look nice
|
||||
- [ ] plugin for markdown to make taking notes like these easier?
|
||||
@@ -1,12 +0,0 @@
|
||||
vim.g.mapleader = ' '
|
||||
vim.g.maplocalleader = ' '
|
||||
|
||||
Autocmd = vim.api.nvim_create_autocmd
|
||||
Map = vim.keymap.set
|
||||
|
||||
---@module 'gruvbox'
|
||||
---@class userdata
|
||||
---@field palette GruvboxPalette
|
||||
_G.userdat = {}
|
||||
|
||||
require('config')
|
||||
@@ -1,73 +0,0 @@
|
||||
-- highlight when yanking text
|
||||
Autocmd('TextYankPost', {
|
||||
desc = 'highlight when yanking text',
|
||||
group = vim.api.nvim_create_augroup('kickstart-highlight-yank', { clear = true }),
|
||||
callback = function()
|
||||
vim.highlight.on_yank()
|
||||
end,
|
||||
})
|
||||
|
||||
-- disable new line comment
|
||||
Autocmd("BufEnter", {
|
||||
desc = "disable bew line comment",
|
||||
callback = function()
|
||||
vim.opt.formatoptions:remove({ "c", "r", "o" })
|
||||
end,
|
||||
})
|
||||
|
||||
-- go to last location when opening a buffer
|
||||
Autocmd("BufReadPost", {
|
||||
desc = "go to last location when opening a buffer",
|
||||
callback = function()
|
||||
local mark = vim.api.nvim_buf_get_mark(0, '"')
|
||||
local lcount = vim.api.nvim_buf_line_count(0)
|
||||
if mark[1] > 0 and mark[1] <= lcount then
|
||||
pcall(vim.api.nvim_win_set_cursor, 0, mark)
|
||||
end
|
||||
end,
|
||||
})
|
||||
|
||||
-- close certain windows with q
|
||||
Autocmd('FileType', {
|
||||
desc = 'close certain windows with q',
|
||||
pattern = { 'help', 'man', 'qf', 'query', 'messages', 'netrw' },
|
||||
callback = function(evt)
|
||||
vim.bo[evt.buf].buflisted = false
|
||||
Map('n', 'q', '<cmd>close<cr>')
|
||||
end
|
||||
})
|
||||
|
||||
-- disable spellcheck in terminal
|
||||
Autocmd('TermOpen', {
|
||||
callback = function()
|
||||
vim.opt.spell = false
|
||||
end,
|
||||
})
|
||||
|
||||
-- closes the first buffer if it is empty
|
||||
Autocmd('BufEnter', {
|
||||
pattern = '*',
|
||||
callback = function()
|
||||
local bufs = vim.api.nvim_list_bufs()
|
||||
|
||||
-- check if the first buffer is an empty one
|
||||
if #bufs == 0 and vim.api.nvim_get_option_value('buftype', { buf = bufs[1] }) and vim.api.nvim_buf_get_name(bufs[1]) then
|
||||
vim.api.nvim_buf_delete(bufs[1], {})
|
||||
end
|
||||
end,
|
||||
})
|
||||
|
||||
---@type table<string, string>
|
||||
local filemap = {
|
||||
['*.h'] = 'c',
|
||||
['*/i3/**.conf'] = 'i3config'
|
||||
}
|
||||
|
||||
for pat, file in pairs(filemap) do
|
||||
Autocmd('BufRead', {
|
||||
pattern = pat,
|
||||
callback = function()
|
||||
vim.bo.filetype = file
|
||||
end
|
||||
})
|
||||
end
|
||||
@@ -1,4 +0,0 @@
|
||||
require('config.opts')
|
||||
require('config.maps')
|
||||
require('config.autocmds')
|
||||
require('config.lazy')
|
||||
@@ -1,24 +0,0 @@
|
||||
-- bootstrap lazy
|
||||
local lazypath = vim.fn.stdpath 'data' .. '/lazy/lazy.nvim'
|
||||
if not (vim.uv or vim.loop).fs_stat(lazypath) then
|
||||
local lazyrepo = 'https://github.com/folke/lazy.nvim.git'
|
||||
local out = vim.fn.system { 'git', 'clone', '--filter=blob:none', '--branch=stable', lazyrepo, lazypath }
|
||||
if vim.v.shell_error ~= 0 then
|
||||
vim.api.nvim_echo({
|
||||
{ 'Failed to clone lazy.nvim:\n', 'ErrorMsg' },
|
||||
{ out, 'WarningMsg' },
|
||||
}, true, {})
|
||||
return 1
|
||||
end
|
||||
end
|
||||
vim.opt.rtp:prepend(lazypath)
|
||||
|
||||
require('lazy').setup({
|
||||
change_detection = { enabled = false },
|
||||
defaults = {
|
||||
lazy = true,
|
||||
},
|
||||
spec = { { import = 'plugin' } },
|
||||
})
|
||||
|
||||
Map('n', '<leader>L', '<cmd>Lazy<cr>', { desc = 'open Lazy' })
|
||||
@@ -1,51 +0,0 @@
|
||||
-- unmap arrow keys in non-insert modes
|
||||
Map({ 'n', 'v' }, '<up>', '<nop>')
|
||||
Map({ 'n', 'v' }, '<down>', '<nop>')
|
||||
Map({ 'n', 'v' }, '<left>', '<nop>')
|
||||
Map({ 'n', 'v' }, '<right>', '<nop>')
|
||||
|
||||
-- tab management / navigation
|
||||
Map('n', '<c-t>', '<cmd>enew<cr>', { desc = 'create a new buffer' })
|
||||
Map('n', '<tab>', '<cmd>bnext<cr>', { desc = 'move to next buffer' })
|
||||
Map('n', '<s-tab>', '<cmd>bprevious<cr>', { desc = 'move to previous buffer' })
|
||||
Map('n', '<c-w>', '<cmd>bd<cr>', { desc = 'close buffer' })
|
||||
Map('n', '<c-f4>', '<cmd>bd<cr>', { desc = 'close buffer' })
|
||||
|
||||
-- for help exiting certain modes
|
||||
Map({ 'n', 'i' }, '<esc>', '<cmd>nohlsearch<cr><esc>', { desc = 'cancel search highlighting and escape' })
|
||||
Map('t', '<c-esc>', '<c-\\><c-n>', { desc = 'exit terminal mode' })
|
||||
|
||||
-- window management
|
||||
Map('n', '<m-s>', '<cmd>wincmd s<cr>', { desc = 'horizontal split' })
|
||||
Map('n', '<m-v>', '<cmd>wincmd v<cr>', { desc = 'vertical split' })
|
||||
Map('n', '<c-h>', '<cmd>wincmd h<cr>', { desc = 'move focus to the left window' })
|
||||
Map('n', '<c-l>', '<cmd>wincmd l<cr>', { desc = 'move focus to the right window' })
|
||||
Map('n', '<c-j>', '<cmd>wincmd j<cr>', { desc = 'move focus to the lower window' })
|
||||
Map('n', '<c-k>', '<cmd>wincmd k<cr>', { desc = 'move focus to the upper window' })
|
||||
Map('n', '<m-H>', '<cmd>wincmd H<cr>', { desc = 'move window to left' })
|
||||
Map('n', '<m-L>', '<cmd>wincmd L<cr>', { desc = 'move window to right' })
|
||||
Map('n', '<m-K>', '<cmd>wincmd K<cr>', { desc = 'move window to top' })
|
||||
Map('n', '<m-J>', '<cmd>wincmd J<cr>', { desc = 'move window to bottom' })
|
||||
|
||||
-- diagnostic / lsp key bindings
|
||||
Map('n', 'K', vim.lsp.buf.hover, { desc = 'symbol hover' })
|
||||
Map('n', '<F2>', vim.lsp.buf.rename, { desc = 'rename symbol' })
|
||||
Map('n', '<leader>lm', vim.diagnostic.open_float, { desc = 'view line\'s diagnostic messages' })
|
||||
Map('n', '<leader>q', vim.lsp.buf.code_action, { desc = 'view quickfix list' })
|
||||
Map('n', 'gd', vim.lsp.buf.definition, { desc = "Go to the definition" })
|
||||
Map('n', 'gr', vim.lsp.buf.references, { desc = "Go to the reference" })
|
||||
|
||||
-- smart tabulation
|
||||
Map('i', '<tab>', function()
|
||||
local _, col = unpack(vim.api.nvim_win_get_cursor(0)) -- get cursor position
|
||||
local isindent = vim.api.nvim_get_current_line():sub(1, col):match('^%s*$')
|
||||
local tabexpnd = vim.bo.expandtab
|
||||
local tabwidth = vim.bo.shiftwidth > 0 and vim.bo.shiftwidth or vim.bo.tabstop
|
||||
|
||||
if not tabexpnd and isindent then
|
||||
return '\t'
|
||||
else
|
||||
local spaces = tabwidth - col % tabwidth
|
||||
return string.rep(' ', spaces == 0 and tabwidth or spaces)
|
||||
end
|
||||
end, { expr = true, desc = "smart tabulation" })
|
||||
@@ -1,45 +0,0 @@
|
||||
local o = vim.opt
|
||||
|
||||
-- set options
|
||||
o.clipboard = "unnamedplus" -- keep the clipboard in sync with the one provided by the OS
|
||||
o.cursorline = true -- highlight the current line
|
||||
o.ignorecase = true -- whether case should be ignored whilst searching
|
||||
o.list = true -- shows invisible characters
|
||||
o.listchars = { -- whitespace characters
|
||||
eol = nil,
|
||||
trail = '~',
|
||||
extends = nil,
|
||||
precedes = '<',
|
||||
tab = '•-',
|
||||
space = '·',
|
||||
nbsp = '␣',
|
||||
}
|
||||
o.number = true -- show line numbers
|
||||
o.relativenumber = true -- whether line numbers are relative to the cursor
|
||||
o.sessionoptions = 'buffers,curdir,folds,help,localoptions,tabpages,terminal'
|
||||
o.shiftwidth = 8 -- spaces for auto-indent
|
||||
o.showmode = false -- don't show mode as this is already in the status line
|
||||
o.signcolumn = 'yes' -- always show the signcolumn, otherwise it shifts text all the time
|
||||
o.smartcase = true -- overrides the above option if contains capital letters
|
||||
o.smartindent = true -- behave a bit more nuanced with when to indent
|
||||
o.spell = true -- whether spell checking is enabled
|
||||
o.spellfile = vim.fn.stdpath('config') .. '/spell/user.utf-8.add'
|
||||
o.spelllang = 'en_gb,nl' -- set the spell languages
|
||||
o.termguicolors = true -- allows for colour in the terminal
|
||||
o.timeoutlen = 300 -- number of MS to wait for a mapped sequence to complete
|
||||
o.ttimeoutlen = 0 -- number of MS to wait for a key sequence to complete
|
||||
o.undodir = vim.fn.stdpath('cache') .. '/undo' -- directory for undo files
|
||||
o.undofile = true -- for saving the undo history
|
||||
o.undolevels = 1024 -- the amount of changes that can be undone
|
||||
o.updatetime = 250 -- number of MS of nothing typed to write a swap file to disk.
|
||||
o.wrap = false -- whether to wrap text to a new line when it goes off-screen
|
||||
|
||||
vim.diagnostic.config({
|
||||
underline = true, -- use underline for diagnostics
|
||||
virtual_text = true, -- shows diagnostics at the end of the line
|
||||
virtual_lines = false, -- shows one diagnostic per line
|
||||
severity_sort = true, -- sort diagnostics by severity
|
||||
update_in_insert = true, -- update diagnostics whilst in insert mode
|
||||
float = true, -- options for floating windows
|
||||
signs = true,
|
||||
})
|
||||
@@ -1,44 +0,0 @@
|
||||
---@type LazySpec
|
||||
return {
|
||||
"rmagatti/auto-session",
|
||||
lazy = false,
|
||||
priority = 100,
|
||||
---@module "auto-session"
|
||||
---@type AutoSession.Config
|
||||
opts = {
|
||||
enabled = true,
|
||||
auto_save = true,
|
||||
auto_create = true,
|
||||
auto_restore = true,
|
||||
auto_restore_last_session = false,
|
||||
cwd_change_handling = true,
|
||||
single_session_mode = false,
|
||||
close_unsupported_windows = true,
|
||||
suppressed_dirs = { '~/', '~/software/', '~/downloads/', '~/desktop/', '/etc/' },
|
||||
close_filetypes_on_save = { 'checkhealth', 'man', 'oil' },
|
||||
bypass_save_filetypes = { 'netrw', 'oil' },
|
||||
|
||||
auto_delete_empty_sessions = true,
|
||||
purge_after_minutes = 14 * 24 * 60,
|
||||
|
||||
lazy_support = true,
|
||||
legacy_cmds = false,
|
||||
args_allow_single_directory = true,
|
||||
args_allow_files_auto_save = false,
|
||||
|
||||
-- log_level = 'debug',
|
||||
show_auto_restore_notif = true,
|
||||
},
|
||||
init = function()
|
||||
local path = vim.fn.argv(0)
|
||||
if not path or type(path) ~= 'string' then return end
|
||||
|
||||
local realpath = vim.uv.fs_realpath(path)
|
||||
if not realpath then return end
|
||||
|
||||
if vim.fn.isdirectory(realpath) ~= 1 then return end
|
||||
vim.fn.chdir(realpath)
|
||||
|
||||
vim.notify("loaded directory: '" .. realpath .. "'", vim.log.levels.INFO)
|
||||
end,
|
||||
}
|
||||
@@ -1,69 +0,0 @@
|
||||
---@module 'lazy'
|
||||
---@type LazySpec
|
||||
return { {
|
||||
'saghen/blink.cmp',
|
||||
event = 'InsertEnter',
|
||||
version = '*',
|
||||
build = 'cargo build --release',
|
||||
dependencies = {
|
||||
'saghen/blink.compat',
|
||||
},
|
||||
---@module 'blink.cmp'
|
||||
---@type blink.cmp.Config
|
||||
opts = {
|
||||
keymap = {
|
||||
preset = 'none',
|
||||
['<tab>'] = { 'accept', 'fallback' }, -- accept the snippet
|
||||
['<c-space>'] = { 'show', 'show_documentation', 'hide_documentation' }, -- toggle auto-cmp manually
|
||||
['<c-k>'] = { 'show_signature', 'hide_signature', 'fallback' }, -- toggle signature
|
||||
['<c-n>'] = { 'select_next', 'fallback' }, -- next item
|
||||
['<c-p>'] = { 'select_prev', 'fallback' }, -- previous item
|
||||
['<c-f>'] = { 'scroll_documentation_down', 'fallback' }, -- forwards into the docs
|
||||
['<c-b>'] = { 'scroll_documentation_up', 'fallback' }, -- backwards into the docs
|
||||
['<c-e>'] = { 'cancel', 'fallback' }, -- keybind for cancelling completion
|
||||
},
|
||||
snippets = { preset = 'luasnip' },
|
||||
sources = {
|
||||
default = { 'lsp', 'path', 'snippets' },
|
||||
},
|
||||
completion = {
|
||||
menu = {
|
||||
auto_show = true, -- whether to automatically show the window when new completion items are available
|
||||
border = 'rounded',
|
||||
draw = {
|
||||
columns = { { "kind_icon" }, { "label", "label_description", gap = 1 }, { 'kind' } },
|
||||
treesitter = { 'lsp', 'snippets' },
|
||||
},
|
||||
},
|
||||
documentation = {
|
||||
auto_show = true, -- whether documentation is automatically shown when selecting a completion item
|
||||
auto_show_delay_ms = 250,
|
||||
treesitter_highlighting = true,
|
||||
window = { border = "rounded" },
|
||||
},
|
||||
list = { selection = { preselect = true, auto_insert = true } },
|
||||
trigger = {
|
||||
show_on_insert_on_trigger_character = true,
|
||||
show_on_accept_on_trigger_character = true,
|
||||
show_in_snippet = false,
|
||||
},
|
||||
ghost_text = {
|
||||
enabled = true,
|
||||
show_with_selection = false, -- whether the ghost text is shown when an item is selected
|
||||
show_without_selection = true, -- whether the ghost text is shown when no item is selected
|
||||
show_with_menu = true, -- show ghost text when the menu is open
|
||||
show_without_menu = true, -- show ghost text when the menu is closed
|
||||
}
|
||||
},
|
||||
fuzzy = {
|
||||
use_proximity = true,
|
||||
frecency = { enabled = true, },
|
||||
prebuilt_binaries = {
|
||||
download = false, -- we are building from source
|
||||
}
|
||||
}
|
||||
},
|
||||
config = function(_, opts)
|
||||
require("blink.cmp").setup(opts)
|
||||
end
|
||||
} }
|
||||
@@ -1,38 +0,0 @@
|
||||
---@module 'lazy'
|
||||
---@type LazySpec
|
||||
return { {
|
||||
'stevearc/conform.nvim', -- allows you to format a buffer
|
||||
event = { 'BufWritePre' },
|
||||
cmd = { 'ConformInfo' },
|
||||
keys = {
|
||||
{
|
||||
'<leader>f',
|
||||
function()
|
||||
require('conform').format { async = true, lsp_format = 'fallback' } -- execute the formatter
|
||||
-- vim.cmd [[keepjumps keeppatterns %s/\s\+$//e]] -- removes trailing whitespace
|
||||
end,
|
||||
mode = 'n',
|
||||
desc = '[f]ormat buffer',
|
||||
},
|
||||
},
|
||||
---@type conform.setupOpts
|
||||
opts = {
|
||||
notify_on_error = true,
|
||||
formatters_by_ft = {
|
||||
c = { 'clang-format' },
|
||||
h = { 'clang-format' },
|
||||
cpp = { 'clang-format' },
|
||||
hpp = { 'clang-format' },
|
||||
glsl = { 'clang-format', lsp_format = "first" },
|
||||
typescript = { 'clang-format', lsp_format = "first" },
|
||||
css = { 'clang-format' },
|
||||
rust = { 'rustfmt' },
|
||||
sh = { 'shfmt' },
|
||||
python = { 'isort' },
|
||||
-- json = { 'jq' },
|
||||
-- yaml = { 'yq' },
|
||||
toml = { 'yq' },
|
||||
xml = { 'yq' },
|
||||
},
|
||||
}
|
||||
} }
|
||||
@@ -1,32 +0,0 @@
|
||||
---@module 'lazy'
|
||||
---@type LazySpec
|
||||
return { {
|
||||
'ellisonleao/gruvbox.nvim',
|
||||
lazy = false,
|
||||
priority = 1000,
|
||||
---@module 'gruvbox'
|
||||
---@type GruvboxConfig
|
||||
opts = {
|
||||
styles = {
|
||||
comments = { italic = true }
|
||||
}
|
||||
},
|
||||
config = function(_, opts)
|
||||
local colour = require('gruvbox')
|
||||
colour.setup(opts)
|
||||
vim.cmd.colorscheme('gruvbox')
|
||||
_G.userdat.palette = colour.palette
|
||||
|
||||
-- non-essential configuration should be put in here
|
||||
Autocmd('VimEnter', {
|
||||
callback =
|
||||
function()
|
||||
-- spell highlight must be grey
|
||||
for _, spell in pairs { 'SpellBad', 'SpellCap', 'SpellRare', 'SpellLocal' } do
|
||||
vim.api.nvim_set_hl(0, spell,
|
||||
{ fg = nil, bg = nil, sp = _G.userdat.palette.gray, undercurl = true })
|
||||
end
|
||||
end
|
||||
})
|
||||
end
|
||||
} }
|
||||
@@ -1,12 +0,0 @@
|
||||
---@module 'lazy'
|
||||
---@type LazySpec
|
||||
return { {
|
||||
'folke/lazydev.nvim', -- provides the lua LSP for the neovim config.
|
||||
event = 'VeryLazy',
|
||||
ft = 'lua',
|
||||
opts = {
|
||||
library = {
|
||||
{ path = '${3rd}/luv/library', words = { 'vim%.uv' } }, -- load luvit types when the `vim.uv` word is found
|
||||
},
|
||||
},
|
||||
}, }
|
||||
@@ -1,5 +0,0 @@
|
||||
---@type LazySpec
|
||||
return { {
|
||||
'ray-x/lsp_signature.nvim',
|
||||
opts = { always_trigger = false }
|
||||
} }
|
||||
@@ -1,51 +0,0 @@
|
||||
---@module 'lazy'
|
||||
---@type LazySpec
|
||||
return { {
|
||||
'neovim/nvim-lspconfig',
|
||||
event = { "BufReadPre", "BufNewFile" },
|
||||
dependencies = { 'saghen/blink.cmp' },
|
||||
---@type table<string, boolean|vim.lsp.Config>
|
||||
opts = {
|
||||
['clangd'] = true,
|
||||
['ccls'] = false,
|
||||
['glsl_analyzer'] = true,
|
||||
['rust_analyzer'] = true,
|
||||
['omnisharp'] = false,
|
||||
['lua_ls'] = true,
|
||||
|
||||
['html'] = true,
|
||||
['cssls'] = true,
|
||||
['ts_ls'] = true,
|
||||
|
||||
['jsonls'] = true,
|
||||
['yamlls'] = {
|
||||
settings = {
|
||||
yaml = {
|
||||
schemas = {
|
||||
["https://json.schemastore.org/github-workflow.json"] =
|
||||
"/.github/workflows/*",
|
||||
["https://json.schemastore.org/clang-format"] = ".clang-format",
|
||||
["https://json.schemastore.org/clang-tidy"] = ".clang-tidy",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
---@param opts table<string,boolean|vim.lsp.Config>
|
||||
config = function(_, opts)
|
||||
-- store the default capabilities
|
||||
local capabilities = require('blink.cmp').get_lsp_capabilities()
|
||||
|
||||
-- enable the LSP
|
||||
for server, config in pairs(opts) do
|
||||
if type(config) == 'boolean' then
|
||||
vim.lsp.enable(server, config)
|
||||
else
|
||||
vim.lsp.enable(server, true)
|
||||
vim.lsp.config[server] = vim.tbl_deep_extend('force', {}, vim.lsp.config[server],
|
||||
config or {})
|
||||
end
|
||||
vim.lsp.config[server].capabilities = capabilities
|
||||
end
|
||||
end
|
||||
} }
|
||||
@@ -1,5 +0,0 @@
|
||||
return { {
|
||||
'L3MON4D3/LuaSnip',
|
||||
build = 'make install_jsregexp',
|
||||
version = "v2.*",
|
||||
} }
|
||||
@@ -1,150 +0,0 @@
|
||||
-- Clone 'mini.nvim' manually in a way that it gets managed by 'mini.deps'
|
||||
local path_package = vim.fn.stdpath('data') .. '/site/'
|
||||
local mini_path = path_package .. 'pack/deps/start/mini.nvim'
|
||||
if not (vim.uv or vim.loop).fs_stat(mini_path) then
|
||||
vim.cmd('echo "Installing [`mini.nvim`](../doc/mini-nvim.qmd#mini.nvim)" | redraw')
|
||||
local clone_cmd = {
|
||||
'git', 'clone', '--filter=blob:none',
|
||||
'https://github.com/nvim-mini/mini.nvim', mini_path
|
||||
}
|
||||
vim.fn.system(clone_cmd)
|
||||
vim.cmd('packadd mini.nvim | helptags ALL')
|
||||
vim.cmd('echo "Installed [`mini.nvim`](../doc/mini-nvim.qmd#mini.nvim)" | redraw')
|
||||
end
|
||||
require('mini.deps').setup({ path = { package = path_package } })
|
||||
|
||||
require('mini.ai').setup() -- enhances the use of a/i textobjects
|
||||
require('mini.align').setup() -- utility to align text in various ways
|
||||
require('mini.comment').setup() -- for toggling comments inline
|
||||
require('mini.move').setup() -- moving lines
|
||||
require('mini.operators').setup() -- duplicating lines and evaluating equations inline
|
||||
require('mini.pairs').setup() -- automatic closing pairs
|
||||
require('mini.surround').setup() -- surround stuff
|
||||
require('mini.clue').setup({ -- shows available keybinds when performing keybind actions
|
||||
window = { delay = 50 },
|
||||
triggers = {
|
||||
-- Leader triggers
|
||||
{ mode = 'n', keys = '<Leader>' },
|
||||
{ mode = 'x', keys = '<Leader>' },
|
||||
|
||||
-- Built-in completion
|
||||
{ mode = 'i', keys = '<C-x>' },
|
||||
|
||||
-- `g` key
|
||||
{ mode = 'n', keys = 'g' },
|
||||
{ mode = 'x', keys = 'g' },
|
||||
|
||||
-- Marks
|
||||
{ mode = 'n', keys = "'" },
|
||||
{ mode = 'n', keys = '`' },
|
||||
{ mode = 'x', keys = "'" },
|
||||
{ mode = 'x', keys = '`' },
|
||||
|
||||
-- Registers
|
||||
{ mode = 'n', keys = '"' },
|
||||
{ mode = 'x', keys = '"' },
|
||||
{ mode = 'i', keys = '<C-r>' },
|
||||
{ mode = 'c', keys = '<C-r>' },
|
||||
|
||||
-- Window commands
|
||||
{ mode = 'n', keys = '<C-w>' },
|
||||
|
||||
-- `z` key
|
||||
{ mode = 'n', keys = 'z' },
|
||||
{ mode = 'x', keys = 'z' },
|
||||
},
|
||||
|
||||
clues = {
|
||||
-- Enhance this by adding descriptions for <Leader> mapping groups
|
||||
require('mini.clue').gen_clues.builtin_completion(),
|
||||
require('mini.clue').gen_clues.g(),
|
||||
require('mini.clue').gen_clues.marks(),
|
||||
require('mini.clue').gen_clues.registers(),
|
||||
require('mini.clue').gen_clues.windows(),
|
||||
require('mini.clue').gen_clues.z(),
|
||||
},
|
||||
})
|
||||
require('mini.diff').setup({ -- shows git diffs in the file
|
||||
view = {
|
||||
style = 'sign',
|
||||
}
|
||||
})
|
||||
require('mini.files').setup() -- file browser
|
||||
Map('n', '<leader>o', MiniFiles.open, { desc = "Open mini file browser" })
|
||||
require('mini.jump').setup() -- extends f,F,t,T to work across multiple lines
|
||||
require('mini.cursorword').setup() -- highlight words beneath the cursor
|
||||
require('mini.icons').setup()
|
||||
require('mini.indentscope').setup({
|
||||
draw = {
|
||||
delay = 50, -- delay in MS before writing the indicator
|
||||
animation = require('mini.indentscope').gen_animation.none(),
|
||||
},
|
||||
})
|
||||
MiniDeps.later(function()
|
||||
vim.api.nvim_set_hl(0, 'MiniIndentscopeSymbol', { link = 'Whitespace' })
|
||||
end)
|
||||
-- TODO: show history
|
||||
require('mini.notify').setup() -- has more noticeable / utilitarian / aesthetically pleasing notifications
|
||||
|
||||
-- Custom `^V` and `^S` symbols to make this file appropriate for copy-paste
|
||||
-- (otherwise those symbols are not displayed).
|
||||
local CTRL_S = vim.api.nvim_replace_termcodes('<C-S>', true, true, true)
|
||||
local CTRL_V = vim.api.nvim_replace_termcodes('<C-V>', true, true, true)
|
||||
local modes = setmetatable({
|
||||
['n'] = { long = 'NORMAL', short = 'N', hl = 'MiniStatuslineModeNormal' },
|
||||
['v'] = { long = 'VISUAL', short = 'V', hl = 'MiniStatuslineModeVisual' },
|
||||
['V'] = { long = 'V-LINE', short = 'V-L', hl = 'MiniStatuslineModeVisual' },
|
||||
[CTRL_V] = { long = 'V-BLOCK', short = 'V-B', hl = 'MiniStatuslineModeVisual' },
|
||||
['s'] = { long = 'SELECT', short = 'S', hl = 'MiniStatuslineModeVisual' },
|
||||
['S'] = { long = 'S-LINE', short = 'S-L', hl = 'MiniStatuslineModeVisual' },
|
||||
[CTRL_S] = { long = 'S-BLOCK', short = 'S-B', hl = 'MiniStatuslineModeVisual' },
|
||||
['i'] = { long = 'INSERT', short = 'I', hl = 'MiniStatuslineModeInsert' },
|
||||
['R'] = { long = 'REPLACE', short = 'R', hl = 'MiniStatuslineModeReplace' },
|
||||
['c'] = { long = 'COMMAND', short = 'C', hl = 'MiniStatuslineModeCommand' },
|
||||
['r'] = { long = 'PROMPT', short = 'P', hl = 'MiniStatuslineModeOther' },
|
||||
['!'] = { long = 'SHELL', short = 'Sh', hl = 'MiniStatuslineModeOther' },
|
||||
['t'] = { long = 'TERMINAL', short = 'T', hl = 'MiniStatuslineModeOther' },
|
||||
}, {
|
||||
-- By default return 'Unknown' but this shouldn't be needed
|
||||
__index = function()
|
||||
return { long = 'Unknown', short = 'U', hl = '%#MiniStatuslineModeOther#' }
|
||||
end,
|
||||
})
|
||||
require('mini.statusline').setup({
|
||||
content = {
|
||||
active = function()
|
||||
local mode_info = modes[vim.fn.mode()]
|
||||
local mode = MiniStatusline.is_truncated(120) and mode_info.short or mode_info.long
|
||||
local mode_hl = mode_info.hl
|
||||
local git = MiniStatusline.section_git({ trunc_width = 40 })
|
||||
local diff = MiniStatusline.section_diff({ trunc_width = 75 })
|
||||
local diagnostics = MiniStatusline.section_diagnostics({ trunc_width = 75 })
|
||||
local lsp = MiniStatusline.section_lsp({ trunc_width = 75 })
|
||||
local filename = MiniStatusline.section_filename({ trunc_width = 140 })
|
||||
local fileinfo = MiniStatusline.section_fileinfo({ trunc_width = 120 })
|
||||
|
||||
return MiniStatusline.combine_groups({
|
||||
{ hl = mode_hl, strings = { mode } },
|
||||
{ hl = 'MiniStatuslineDevinfo', strings = { git, diff, diagnostics, lsp } },
|
||||
'%<', -- general truncation point
|
||||
{ hl = 'MiniStatuslineFilename', strings = { filename } },
|
||||
'%=', -- align right
|
||||
{ hl = 'MiniStatuslineFileInfo', strings = { fileinfo } },
|
||||
{ hl = mode_hl, strings = { '%3l:%-3c' } }
|
||||
})
|
||||
end,
|
||||
inactive = function()
|
||||
return MiniStatusline.combine_groups({
|
||||
{},
|
||||
})
|
||||
end
|
||||
},
|
||||
use_icons = true,
|
||||
set_vim_settings = true,
|
||||
})
|
||||
require('mini.tabline').setup() -- shows buffers that are open
|
||||
require('mini.trailspace').setup() -- trailing space indication and removal.
|
||||
|
||||
---@module 'lazy'
|
||||
---@type LazySpec
|
||||
return {}
|
||||
@@ -1,59 +0,0 @@
|
||||
---@module 'lazy'
|
||||
---@type LazySpec
|
||||
return { {
|
||||
'mfussenegger/nvim-lint',
|
||||
event = { 'BufWritePost', 'BufReadPost', 'TextChanged' },
|
||||
---@module 'lint'
|
||||
opts = {
|
||||
---@type table<string, string[]>
|
||||
linters_by_ft = {
|
||||
c = { 'clangtidy' },
|
||||
cpp = { 'clangtidy' },
|
||||
sh = { 'shellcheck' },
|
||||
glsl = { 'glslang' },
|
||||
},
|
||||
linters = {
|
||||
glslang = {
|
||||
cmd = 'glslangValidator',
|
||||
stdin = false,
|
||||
args = { '-C' },
|
||||
ignore_exitcode = true,
|
||||
parser = function(output)
|
||||
local diags = {}
|
||||
for _, line in ipairs(vim.split(output, '\n')) do
|
||||
local f, lnum, sev, msg = line:match(
|
||||
'^([^:]+):(%d+):%s+([^:]+):%s+(.+)$') -- file:line: severity: message
|
||||
if not f then sev, f, lnum, msg = line:match(
|
||||
'^(%w+):%s+([^:]+):(%d+):%s+(.+)$') end -- severity: file:line: message
|
||||
|
||||
if lnum then
|
||||
local s = sev:lower() == 'error'
|
||||
and vim.diagnostic.severity.ERROR
|
||||
or vim.diagnostic.severity.WARN
|
||||
table.insert(diags, {
|
||||
lnum = tonumber(lnum) - 1,
|
||||
col = 0,
|
||||
message = msg,
|
||||
source = 'glslang',
|
||||
severity = s
|
||||
})
|
||||
end
|
||||
end
|
||||
return diags
|
||||
end
|
||||
}
|
||||
}
|
||||
},
|
||||
config = function(_, opts)
|
||||
local lint = require('lint')
|
||||
lint.linters_by_ft = opts.linters_by_ft
|
||||
|
||||
for name, linter in pairs(opts.linters) do
|
||||
lint.linters[name] = linter
|
||||
end
|
||||
|
||||
-- autocommand for linting
|
||||
Autocmd({ 'BufWritePost', 'BufWinEnter', 'TextChanged' },
|
||||
{ callback = function() lint.try_lint() end });
|
||||
end
|
||||
} }
|
||||
@@ -1,74 +0,0 @@
|
||||
---@module 'lazy'
|
||||
---@type LazySpec
|
||||
return { {
|
||||
'nvim-treesitter/nvim-treesitter', -- highlight, edit, and navigate code
|
||||
event = 'BufReadPre',
|
||||
build = ':TSUpdate',
|
||||
main = 'nvim-treesitter.configs', -- set main module to use for opts
|
||||
opts = {
|
||||
ensure_installed = {
|
||||
'bash', 'c', 'make', 'rust', 'diff',
|
||||
'markdown', 'markdown_inline', 'latex',
|
||||
'vim', 'vimdoc', 'lua', 'luadoc', 'regex',
|
||||
},
|
||||
auto_install = true, -- auto-install languages that are not installed
|
||||
highlight = {
|
||||
enable = true,
|
||||
additional_vim_regex_highlighting = { 'ruby' }, -- some languages depend on vim's regex highlighting system for indent rules
|
||||
},
|
||||
indent = { enable = true, disable = { 'ruby' } },
|
||||
},
|
||||
config = function(_, opts)
|
||||
require('nvim-treesitter.configs').setup(opts)
|
||||
|
||||
-- set the keybind for appending in front of a comment, rather than behind.
|
||||
Map('n', 'A', function()
|
||||
local ts = vim.treesitter -- get reference to treesitter
|
||||
local buf = vim.api.nvim_get_current_buf() -- get the current buffer id
|
||||
local row, col = unpack(vim.api.nvim_win_get_cursor(0)) -- get cursor position
|
||||
|
||||
-- ensure the parser exists
|
||||
local res = nil
|
||||
repeat
|
||||
-- get the parser
|
||||
if not ts.language.get_lang(vim.bo[buf].filetype) then break end
|
||||
local parser = ts.get_parser(buf, nil, { error = false })
|
||||
if not parser then break end
|
||||
|
||||
-- query the buffer using the parser
|
||||
local root = parser:parse()[1]:root()
|
||||
local ok, dat = pcall(ts.query.parse, parser:lang(), [[(comment) @comment]])
|
||||
if not ok or not dat then break end
|
||||
|
||||
-- set the result
|
||||
res = { query = dat, root = root }
|
||||
until true
|
||||
|
||||
-- check if we successfully made a query
|
||||
if res then
|
||||
-- loop through the captures from the query
|
||||
for _, node in res.query:iter_captures(res.root, buf, row - 1, row) do
|
||||
-- ensure the comment is on the same row as the cursor and after the cursor's column
|
||||
local srow, scol, _, _ = node:range() -- extract the starting row and starting column
|
||||
if srow ~= row - 1 or col >= scol then goto continue end
|
||||
|
||||
-- get the line text and remove trailing whitespace
|
||||
local txt = vim.api.nvim_buf_get_lines(buf, srow, srow + 1, true)[1]:sub(0, scol)
|
||||
txt = txt:gsub("%s*$", "")
|
||||
local len = txt:len()
|
||||
|
||||
-- check if we found a match
|
||||
if len > 0 then
|
||||
vim.api.nvim_win_set_cursor(0, { row, len })
|
||||
vim.cmd [[startinsert]]
|
||||
return
|
||||
end
|
||||
::continue:: -- lua is stupid
|
||||
end
|
||||
end
|
||||
|
||||
-- no comment start was found, behave like normal (moves cursor to the end of the line)
|
||||
vim.cmd [[startinsert!]]
|
||||
end, { desc = 'append end of line' })
|
||||
end,
|
||||
} }
|
||||
@@ -1,72 +0,0 @@
|
||||
---@module 'lazy'
|
||||
---@type LazySpec
|
||||
return { {
|
||||
'nvim-telescope/telescope.nvim', -- fuzzy finder (files, lsp, etc)
|
||||
event = 'VeryLazy',
|
||||
branch = '0.1.x',
|
||||
dependencies = {
|
||||
{ 'nvim-lua/plenary.nvim' }, -- contains lua functions for neovim, apparently
|
||||
{ 'nvim-telescope/telescope-ui-select.nvim' }, -- allows neovim core stuff to enter the telescope picker
|
||||
{ 'nvim-tree/nvim-web-devicons' },
|
||||
{
|
||||
'nvim-telescope/telescope-fzf-native.nvim',
|
||||
build = 'make', -- used for when the plugin is installed/updated
|
||||
cond = function() return vim.fn.executable 'make' == 1 end, -- condition for whether the plugin should be loaded / installed
|
||||
},
|
||||
},
|
||||
opts = {
|
||||
pickers = {
|
||||
find_files = {
|
||||
find_command = { 'fd', '-t', 'f', '-HE', '/.git', '--strip-cwd-prefix' },
|
||||
},
|
||||
},
|
||||
extensions = {
|
||||
file_browser = {
|
||||
hijack_netrw = true,
|
||||
},
|
||||
},
|
||||
},
|
||||
config = function(_, opts)
|
||||
local tel = require('telescope')
|
||||
local std = require("telescope.builtin")
|
||||
local ext = tel.extensions
|
||||
require('telescope').setup(opts)
|
||||
|
||||
-- load telescope extensions, if they are installed
|
||||
pcall(tel.load_extension, 'fzf')
|
||||
pcall(tel.load_extension, 'ui-select')
|
||||
|
||||
-- set the telescope keymaps
|
||||
Map({ 'n' }, '<C-g>', std.live_grep, { desc = 'Search by Grep' })
|
||||
Map({ 'n' }, '<C-s>', std.resume, { desc = 'Search Resume' })
|
||||
Map({ 'n', 'i' }, '<C-p>', std.find_files, { desc = 'Search Project' })
|
||||
Map({ 'n' }, '<leader>p', std.find_files, { desc = 'Search Project' })
|
||||
Map({ 'n' }, '<leader>gf', std.git_status, { desc = 'Search through Git status Files' })
|
||||
Map({ 'n' }, '<leader>sq', std.quickfix, { desc = 'Search Quickfix' })
|
||||
Map({ 'n' }, '<leader>sh', std.help_tags, { desc = 'Search Help' })
|
||||
Map({ 'n' }, '<leader>sk', std.keymaps, { desc = 'Search Keymaps' })
|
||||
Map({ 'n' }, '<leader>sf', std.find_files, { desc = 'Search Files' })
|
||||
Map({ 'n' }, '<leader>ss', std.builtin, { desc = 'Sarch Select telescope' })
|
||||
Map({ 'n' }, '<leader>sw', std.grep_string, { desc = 'Search current Word' })
|
||||
Map({ 'n' }, '<leader>sg', std.live_grep, { desc = 'Search by Grep' })
|
||||
Map({ 'n' }, '<leader>sd', std.diagnostics, { desc = 'Search Diagnostics' })
|
||||
Map({ 'n' }, '<leader>sr', std.resume, { desc = 'Search Resume' })
|
||||
Map({ 'n' }, '<leader>s.', std.oldfiles, { desc = 'Search recent Files ("." for repeat)' })
|
||||
Map({ 'n' }, '<leader><leader>', std.buffers, { desc = 'find existing buffers' })
|
||||
|
||||
-- for fuzzily searching in the current buffer
|
||||
Map('n', '<leader>/', function()
|
||||
std.current_buffer_fuzzy_find(require('telescope.themes').get_dropdown { winblend = 10, previewer = false })
|
||||
end, { desc = 'fuzzily search in current buffer' })
|
||||
|
||||
-- for executing grep
|
||||
Map('n', '<leader>s/', function()
|
||||
std.live_grep { grep_open_files = true, prompt_title = 'Live Grep in Open Files' }
|
||||
end, { desc = 'Search in open files' })
|
||||
|
||||
-- shortcut for searching neovim config files
|
||||
Map('n', '<leader>sn', function()
|
||||
std.find_files { cwd = vim.fn.stdpath 'config' }
|
||||
end, { desc = 'Search Neovim files' })
|
||||
end,
|
||||
} }
|
||||
@@ -1,22 +0,0 @@
|
||||
---@module 'lazy'
|
||||
---@type LazySpec
|
||||
return { {
|
||||
'folke/todo-comments.nvim', -- for highlighting TODO and stuff comments
|
||||
event = 'VeryLazy',
|
||||
dependencies = { 'nvim-lua/plenary.nvim' },
|
||||
---@module 'todo-comments'
|
||||
---@type TodoOptions
|
||||
opts = {
|
||||
signs = false,
|
||||
colors = {
|
||||
hint = { "Comment" }
|
||||
},
|
||||
},
|
||||
config = function(_, opts)
|
||||
local todo = require 'todo-comments'
|
||||
todo.setup(opts)
|
||||
|
||||
Map('n', '<leader>st', '<cmd>TodoTelescope keywords=TODO,FIX,BUG,WARN<cr>',
|
||||
{ desc = '[S]earch [T]odos]' })
|
||||
end,
|
||||
} }
|
||||
@@ -1,53 +0,0 @@
|
||||
---@module 'lazy'
|
||||
---@type LazySpec
|
||||
return { {
|
||||
'akinsho/toggleterm.nvim', -- allows to toggle the terminal rather than open one in a separate window
|
||||
event = 'VeryLazy',
|
||||
---@type ToggleTermConfig
|
||||
---@diagnostic disable-next-line: missing-fields
|
||||
opts = { open_mapping = [[<C-\>]] },
|
||||
config = function(_, opts)
|
||||
local tt = require('toggleterm')
|
||||
local term = require('toggleterm.terminal')
|
||||
tt.setup(opts)
|
||||
|
||||
local term_lazygit = term.Terminal:new({ cmd = "lazygit", hidden = true, direction = 'float' })
|
||||
|
||||
-- Set mappings to toggle the above
|
||||
Map({ 'n' }, '<leader>gg', function() term_lazygit:toggle() end)
|
||||
|
||||
-- Add a keymap for executing makefiles, or launch scripts
|
||||
Map({ 'n', 't', 'v' }, '<c-b>', function()
|
||||
local cwd = vim.fn.getcwd()
|
||||
local cmd = nil
|
||||
local launchcfg = cwd .. '/.launch.sh'
|
||||
|
||||
-- If the path is readable, the attached command is executed and no more is checked.
|
||||
for _, obj in ipairs({
|
||||
{ launchcfg, launchcfg },
|
||||
{ cwd .. '/Makefile', 'make -C ' .. cwd },
|
||||
{ cwd .. '/makefile', 'make -C ' .. cwd },
|
||||
}) do
|
||||
local pat = obj[1]
|
||||
local exec = obj[2]
|
||||
if (vim.fn.filereadable(pat) == 1) then
|
||||
cmd = '\r' .. exec -- use \r to override text if it's present
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
-- If cmd still hasn't been set; edit the file
|
||||
if (not cmd) then
|
||||
local buf = vim.api.nvim_create_buf(true, false) -- listed, not scratch
|
||||
vim.api.nvim_set_current_buf(buf)
|
||||
vim.api.nvim_buf_set_name(buf, launchcfg)
|
||||
vim.api.nvim_buf_set_text(0, 0, 0, 0, 0, { '#!/usr/bin/env sh', 'exec ' })
|
||||
vim.bo.ft = 'sh'
|
||||
return
|
||||
end
|
||||
|
||||
-- Execute the command in terminal 1
|
||||
tt.exec(cmd, 1, nil, nil, nil, nil, false, true)
|
||||
end, { desc = 'compile the program using .buildcofig placed in PWD' })
|
||||
end
|
||||
} }
|
||||
Binary file not shown.
Binary file not shown.
@@ -1,56 +0,0 @@
|
||||
binary-formatted
|
||||
calc
|
||||
config
|
||||
const
|
||||
double-precision
|
||||
editorconfig
|
||||
entry-point
|
||||
github
|
||||
gitignore
|
||||
gitlab
|
||||
half-precision
|
||||
if
|
||||
init
|
||||
inputted
|
||||
JSON
|
||||
keymap
|
||||
LLM
|
||||
lsp
|
||||
malloc'd
|
||||
neovim
|
||||
non-zero
|
||||
null-terminated
|
||||
numlock
|
||||
nvidia
|
||||
nvidia-settings
|
||||
nvim-cmp
|
||||
OR'd
|
||||
overworld
|
||||
parsable
|
||||
Quinn
|
||||
re-enable
|
||||
regex
|
||||
res
|
||||
SDL
|
||||
shader
|
||||
shaders
|
||||
single-precision
|
||||
startup
|
||||
stderr
|
||||
stdout
|
||||
system-wide
|
||||
TODO
|
||||
undefine
|
||||
whitespace
|
||||
ˣ
|
||||
xorg
|
||||
zero-initialise
|
||||
zero-out
|
||||
θ
|
||||
π
|
||||
τ
|
||||
φ
|
||||
ψ
|
||||
timestamp
|
||||
tetromino
|
||||
μs
|
||||
Binary file not shown.
5
.inputrc
5
.inputrc
@@ -1,6 +1,5 @@
|
||||
# for backward searching the history
|
||||
"\e[A": history-search-backward
|
||||
"\e[B": history-search-forward
|
||||
|
||||
set completion-ignore-case on # ignore completion case
|
||||
set colored-completion-prefix on # colour in what it has been able to complete
|
||||
set completion-ignore-case on
|
||||
set colored-completion-prefix on
|
||||
|
||||
BIN
.local/bin/ovo
BIN
.local/bin/ovo
Binary file not shown.
BIN
.local/bin/owo
BIN
.local/bin/owo
Binary file not shown.
BIN
.local/bin/uwu
BIN
.local/bin/uwu
Binary file not shown.
@@ -1,27 +0,0 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
[ -z "$AMOUNT" ] && AMOUNT=5
|
||||
|
||||
notify() {
|
||||
notify-send "$@" -h string:x-dunst-stack-tag:'brightnessctl' -a 'brightnessctl'
|
||||
}
|
||||
|
||||
max=$(brightnessctl max)
|
||||
br=$(brightnessctl get)
|
||||
brp=$((100 * br / max))
|
||||
|
||||
case "$1" in
|
||||
up) brp=$((brp + AMOUNT)) ;;
|
||||
down) brp=$((brp - AMOUNT)) ;;
|
||||
*)
|
||||
echo 'E: could not decide what brightness action to perform!' >&2
|
||||
notify 'could not decide what audio action to perform!' -u critical -t 5000
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
brp=$((brp - (brp % AMOUNT)))
|
||||
[ $brp -gt 100 ] && brp=100
|
||||
|
||||
brightnessctl set $brp%
|
||||
ico=display-brightness-symbolic
|
||||
notify -u low -i "$ico" -h "int:value:$brp" "brightness: $brp%"
|
||||
4
.xprofile
Normal file
4
.xprofile
Normal file
@@ -0,0 +1,4 @@
|
||||
#!/bin/bash
|
||||
# shellcheck disable=1091
|
||||
|
||||
[[ -f $HOME/.bash_profile ]] && source "$HOME/.bash_profile"
|
||||
@@ -20,4 +20,3 @@ Diagnostics:
|
||||
- bugprone-implicit-widening-of-multiplication-result
|
||||
- bugprone-switch-missing-default-case
|
||||
- bugprone-easily-swappable-parameters
|
||||
- bugprone-reserved-identifier
|
||||
@@ -13,12 +13,7 @@ git:
|
||||
pagers:
|
||||
- colorArg: always
|
||||
pager: diff-so-fancy
|
||||
useConfig: false
|
||||
overrideGpg: true
|
||||
update:
|
||||
method: never
|
||||
customCommands:
|
||||
- key: 'P'
|
||||
command: "git push {{.SelectedRemote.Name}} {{.SelectedLocalCommit.Sha}}:{{.SelectedLocalBranch.Name}}"
|
||||
context: "commits"
|
||||
loadingText: "Pushing commit..."
|
||||
description: "Push a specific commit (and any preceding)"
|
||||
12
etc/rofi/qpurple.rasi
Normal file
12
etc/rofi/qpurple.rasi
Normal file
@@ -0,0 +1,12 @@
|
||||
@theme "/usr/share/rofi/themes/purple.rasi"
|
||||
|
||||
configuration {
|
||||
drun-display-format: "{icon} {name}";
|
||||
modi: "window,run,drun";
|
||||
show-icons: true;
|
||||
}
|
||||
|
||||
element-icon {
|
||||
size: 25;
|
||||
padding: 0 5 0 0;
|
||||
}
|
||||
@@ -1,5 +1,7 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2021 okarin001
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
74
etc/spicetify/Themes/Onepunch/color.ini
Normal file
74
etc/spicetify/Themes/Onepunch/color.ini
Normal file
@@ -0,0 +1,74 @@
|
||||
[dark]
|
||||
; onepunch dark mode
|
||||
|
||||
text = d5c4a1
|
||||
subtext = b8bb26
|
||||
extratext = fabd2f
|
||||
main = 1d2021
|
||||
main-elevated = 1d2021
|
||||
highlight-elevated = 32302f
|
||||
highlight = 32302f
|
||||
sidebar = 1d2021
|
||||
player = 1d2021
|
||||
sec-player = 32302f
|
||||
card = 32302f
|
||||
sec-card = fb4934
|
||||
shadow = 1d2021
|
||||
selected-row = d3869b
|
||||
button = 8ec07c
|
||||
button-active = 8ec07c
|
||||
button-disabled = 665c54
|
||||
tab-active = fb4934
|
||||
notification = fb4934
|
||||
notification-error = cc2418
|
||||
misc = 83a598
|
||||
|
||||
[light]
|
||||
; onepunch light mode
|
||||
|
||||
text = 504945
|
||||
subtext = 79740e
|
||||
extratext = b57614
|
||||
main = f9f5d7
|
||||
main-elevated = f9f5d7
|
||||
highlight-elevated = f2e5bc
|
||||
highlight = f2e5bc
|
||||
sidebar = f9f5d7
|
||||
player = f9f5d7
|
||||
sec-player = f2e5bc
|
||||
card = f2e5bc
|
||||
sec-card = 9d0006
|
||||
shadow = f9f5d7
|
||||
selected-row = b16286
|
||||
button = 427b58
|
||||
button-active = 427b58
|
||||
button-disabled = bdae93
|
||||
tab-active = 9d0006
|
||||
notification = 9d0006
|
||||
notification-error = cc2418
|
||||
misc = 076678
|
||||
|
||||
[legacy]
|
||||
; onepunch legacy colors
|
||||
|
||||
text = b8bb26
|
||||
subtext = d5c4a1
|
||||
extratext = fabd2f
|
||||
main = 16191a
|
||||
main-elevated = 16191a
|
||||
highlight-elevated = 32302f
|
||||
highlight = 32302f
|
||||
sidebar = 16191a
|
||||
player = 16191a
|
||||
sec-player = 16191a
|
||||
card = 32302f
|
||||
sec-card = fb4934
|
||||
shadow = 16191a
|
||||
selected-row = d5c4a1
|
||||
button = 8ec07c
|
||||
button-active = 8ec07c
|
||||
button-disabled = 665c54
|
||||
tab-active = fb4934
|
||||
notification = 32302f
|
||||
notification-error = cc2418
|
||||
misc = 83a598
|
||||
625
etc/spicetify/Themes/Onepunch/user.css
Normal file
625
etc/spicetify/Themes/Onepunch/user.css
Normal file
@@ -0,0 +1,625 @@
|
||||
/* sidebar edits */
|
||||
.main-navBar-navBarLinkActive,
|
||||
.main-navBar-navBarLinkActive:focus,
|
||||
.logo {
|
||||
background-color: var(--spice-sec-card) !important;
|
||||
color: var(--spice-main) !important;
|
||||
}
|
||||
|
||||
.main-likedSongsButton-likedSongsIcon,
|
||||
.main-createPlaylistButton-createPlaylistIcon,
|
||||
.main-yourEpisodesButton-yourEpisodesIcon {
|
||||
background: var(--spice-text) !important;
|
||||
border-radius: unset !important;
|
||||
color: var(--spice-main) !important;
|
||||
}
|
||||
|
||||
.main-collectionLinkButton-collectionLinkButton {
|
||||
color: var(--spice-main) !important;
|
||||
}
|
||||
|
||||
.main-collectionLinkButton-collectionLinkButton
|
||||
.main-collectionLinkButton-collectionLinkText,
|
||||
.main-createPlaylistButton-button,
|
||||
.main-rootlist-rootlistItemLink,
|
||||
.main-rootlist-rootlistItemLink:visited {
|
||||
color: var(--spice-text) !important;
|
||||
}
|
||||
|
||||
.main-rootlist-rootlistItemLinkActive,
|
||||
.main-rootlist-rootlistItemLink:hover,
|
||||
.main-rootlist-textWrapper:hover {
|
||||
color: var(--spice-subtext) !important;
|
||||
}
|
||||
|
||||
.main-collectionLinkButton-collectionLinkButton
|
||||
.main-collectionLinkButton-selected
|
||||
.main-collectionLinkButton-icon {
|
||||
opacity: 0.7 !important;
|
||||
}
|
||||
|
||||
.main-rootlist-rootlistDividerGradient {
|
||||
background: linear-gradient(180deg, var(--spice-main), transparent);
|
||||
}
|
||||
|
||||
.main-rootlist-rootlistDivider {
|
||||
background-color: unset !important;
|
||||
}
|
||||
|
||||
/* top queue */
|
||||
.queue-tabBar-active {
|
||||
background-color: var(--spice-card) !important;
|
||||
}
|
||||
|
||||
.queue-tabBar-headerItemLink {
|
||||
color: var(--spice-text) !important;
|
||||
}
|
||||
|
||||
/* header colored backgrounds */
|
||||
.main-home-homeHeader,
|
||||
.x-441-entityHeader-overlay,
|
||||
.main-actionBarBackground-background,
|
||||
.main-entityHeader-overlay,
|
||||
.main-entityHeader-backgroundColor,
|
||||
.x-914-entityHeader-overlay,
|
||||
.x-entityHeader-overlay,
|
||||
.x-914-actionBarBackground-background,
|
||||
.x-actionBarBackground-background {
|
||||
background-color: unset !important;
|
||||
background-image: unset !important;
|
||||
}
|
||||
|
||||
/* play button in main page */
|
||||
.main-playButton-PlayButton.main-playButton-primary {
|
||||
color: var(--spice-main);
|
||||
background-color: var(--spice-button);
|
||||
}
|
||||
|
||||
.connect-title,
|
||||
.connect-header {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* Topbar visibility bug */
|
||||
.main-topBar-topbarContent:not(.main-topBar-topbarContentFadeIn) > * {
|
||||
opacity: unset !important;
|
||||
}
|
||||
|
||||
.main-entityHeader-topbarContent:not(.main-entityHeader-topbarContentFadeIn)
|
||||
> * {
|
||||
opacity: 0 !important;
|
||||
}
|
||||
|
||||
.main-topBar-overlay,
|
||||
.x-441-actionBarBackground-background {
|
||||
background-color: var(--spice-main) !important;
|
||||
}
|
||||
|
||||
.main-entityHeader-shadow {
|
||||
box-shadow: 0 0 4px 0 rgba(var(--spice-rgb-shadow), 0.5);
|
||||
}
|
||||
|
||||
.main-trackList-playingIcon {
|
||||
filter: hue-rotate(270deg);
|
||||
}
|
||||
|
||||
span.artist-artistVerifiedBadge-badge svg:nth-child(1) {
|
||||
fill: black;
|
||||
}
|
||||
|
||||
/* details metadata */
|
||||
.main-entityTitle-subtitle.main-entityTitle-gray,
|
||||
.main-entityHeader-metaDataText {
|
||||
color: var(--spice-text) !important;
|
||||
}
|
||||
|
||||
.main-duration-container {
|
||||
color: var(--spice-subtext);
|
||||
}
|
||||
|
||||
/* artist page edits*/
|
||||
|
||||
.artist-artistOverview-artistOverviewContent {
|
||||
box-shadow: 0 -2px 5px 0 rgba(var(--spice-rgb-shadow), 0.7);
|
||||
}
|
||||
|
||||
.main-entityHeader-background.main-entityHeader-gradient {
|
||||
opacity: 0.4;
|
||||
}
|
||||
|
||||
.main-entityHeader-background.main-entityHeader-overlay:after {
|
||||
background-image: linear-gradient(transparent, transparent),
|
||||
linear-gradient(var(--spice-main), var(--spice-main));
|
||||
}
|
||||
|
||||
.artist-artistPick-pickComment {
|
||||
background: var(--spice-sec-player) !important;
|
||||
border-radius: 25px !important;
|
||||
border-bottom: solid 2px var(--spice-sec-player) !important;
|
||||
color: var(--spice-text) !important;
|
||||
}
|
||||
|
||||
.artist-artistSavedTracks-imageContainer .artist-artistSavedTracks-heartIcon {
|
||||
color: var(--spice-card);
|
||||
}
|
||||
|
||||
/* home screen edits */
|
||||
|
||||
.view-homeShortcutsGrid-name {
|
||||
color: var(--spice-text);
|
||||
}
|
||||
|
||||
.main-shelf-title {
|
||||
color: var(--spice-subtext);
|
||||
}
|
||||
|
||||
.view-homeShortcutsGrid-shortcut,
|
||||
.view-homeShortcutsGrid-shortcut .view-homeShortcutsGrid-imageWrapper,
|
||||
.main-cardImage-imageWrapper,
|
||||
.main-cardImage-imagePlaceholder,
|
||||
.main-cardImage-image {
|
||||
border-radius: 10px !important;
|
||||
}
|
||||
|
||||
.view-homeShortcutsGrid-shortcut .view-homeShortcutsGrid-image {
|
||||
border-radius: 10px 0 0 10px !important;
|
||||
}
|
||||
|
||||
.main-cardImage-circular,
|
||||
.main-entityHeader-circle {
|
||||
border-radius: 50% !important;
|
||||
}
|
||||
|
||||
.main-entityHeader-image {
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
/* inside a page edits */
|
||||
|
||||
.main-trackList-trackListRow.main-trackList-active .main-trackList-rowMarker,
|
||||
.main-trackList-trackListRow.main-trackList-active .main-trackList-rowTitle {
|
||||
color: var(--spice-subtext) !important;
|
||||
}
|
||||
|
||||
.main-trackList-rowTitle {
|
||||
color: var(--spice-text) !important;
|
||||
}
|
||||
|
||||
/* friend activity */
|
||||
.main-buddyFeed-activityMetadata .main-buddyFeed-artistAndTrackName a,
|
||||
.main-buddyFeed-activityMetadata .main-buddyFeed-playbackContext a,
|
||||
.main-buddyFeed-activityMetadata .main-buddyFeed-usernameAndTimestamp a {
|
||||
color: var(--spice-text) !important;
|
||||
}
|
||||
|
||||
.main-buddyFeed-activityMetadata .main-buddyFeed-username a {
|
||||
color: var(--spice-subtext) !important;
|
||||
}
|
||||
|
||||
.main-avatar-avatar.main-avatar-withBadge:after {
|
||||
background: var(--spice-extratext);
|
||||
}
|
||||
|
||||
/* setting page */
|
||||
|
||||
.x-settings-container {
|
||||
margin: 16px 180px !important;
|
||||
}
|
||||
|
||||
.x-settings-title {
|
||||
color: var(--spice-subtext) !important;
|
||||
}
|
||||
|
||||
.main-dropDown-dropDown {
|
||||
border: 0;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
.main-dropDown-dropDown {
|
||||
background-color: var(--spice-button-disabled) !important;
|
||||
color: var(--spice-text) !important;
|
||||
}
|
||||
|
||||
.x-toggle-indicator {
|
||||
background: var(--spice-button) !important;
|
||||
box-shadow: 0 2px 4px 0 rgba(var(--spice-rgb-shadow), 0.5);
|
||||
}
|
||||
|
||||
input:checked ~ .x-toggle-indicatorWrapper .x-toggle-indicator {
|
||||
background-color: var(--spice-button) !important;
|
||||
box-shadow: 0 2px 4px 0 rgba(var(--spice-rgb-shadow), 0.5);
|
||||
}
|
||||
|
||||
input:hover:not([disabled]):not(:active) ~ .x-toggle-indicatorWrapper {
|
||||
background-color: rgba(var(--spice-rgb-button-disabled), 0.7) !important;
|
||||
}
|
||||
|
||||
input:checked ~ .x-toggle-indicatorWrapper {
|
||||
background-color: rgba(var(--spice-rgb-button), 0.6) !important;
|
||||
}
|
||||
|
||||
input:checked:hover:not([disabled]):not(:active) ~ .x-toggle-indicatorWrapper {
|
||||
background-color: rgba(var(--spice-rgb-button), 0.4) !important;
|
||||
}
|
||||
|
||||
/* queue, album, recent, playlist, page edits */
|
||||
.queue-queue-container,
|
||||
.queue-playHistory-container {
|
||||
margin: 40px 60px !important;
|
||||
}
|
||||
|
||||
.main-actionBar-ActionBar,
|
||||
.x-actionBar-ActionBar {
|
||||
margin: 0 40px !important;
|
||||
}
|
||||
|
||||
.queue-queuePage-queuePage h2 {
|
||||
color: var(--spice-extratext);
|
||||
}
|
||||
|
||||
/* podcast edits */
|
||||
.x-hTMLDescription-HTMLDescription,
|
||||
.x-expandableDescription-paragraph {
|
||||
color: var(--spice-text) !important;
|
||||
}
|
||||
|
||||
.x-seeMore-button,
|
||||
.x-expandableDescription-button {
|
||||
color: var(--spice-button) !important;
|
||||
}
|
||||
|
||||
.main-type-minuetBold {
|
||||
color: var(--spice-extratext) !important;
|
||||
}
|
||||
|
||||
.main-entityTitle-subtitle,
|
||||
.main-entityTitle-subtitle.main-entityTitle-large,
|
||||
.main-entityTitle-subtitle.main-entityTitle-bold {
|
||||
color: var(--spice-subtext) !important;
|
||||
}
|
||||
|
||||
/* search page edits */
|
||||
|
||||
input {
|
||||
background-color: unset !important;
|
||||
border-bottom: solid 2px var(--spice-text) !important;
|
||||
border-radius: 0 !important;
|
||||
color: var(--spice-text) !important;
|
||||
}
|
||||
|
||||
.x-833-searchInput-searchInputSearchIcon {
|
||||
color: var(--spice-text) !important;
|
||||
}
|
||||
|
||||
.x-833-heroCategoryCard-heroTitle,
|
||||
.x-833-categoryCard-title {
|
||||
color: var(--spice-main) !important;
|
||||
}
|
||||
|
||||
/* menu and dropdown menus including the user menu */
|
||||
.main-type-mesto,
|
||||
.x-533-dropDown-dropDown {
|
||||
color: var(--spice-text) !important;
|
||||
}
|
||||
|
||||
.main-userWidget-box {
|
||||
background-color: var(--spice-card) !important;
|
||||
border: unset !important;
|
||||
color: var(--spice-subtext) !important;
|
||||
}
|
||||
|
||||
/* card edits */
|
||||
|
||||
.main-card-card div:first-child {
|
||||
color: var(--spice-extratext);
|
||||
}
|
||||
|
||||
.main-card-card:hover,
|
||||
.main-card-card[data-context-menu-open="true"] {
|
||||
background-color: rgba(var(--spice-rgb-sec-card), 0.3) !important;
|
||||
}
|
||||
|
||||
.main-contextMenu-menu,
|
||||
.main-card-card:focus-within,
|
||||
.main-deletePlaylistDialog-container,
|
||||
.main-aboutRecsModal-container {
|
||||
background-color: var(--spice-card) !important;
|
||||
}
|
||||
|
||||
.main-deletePlaylistDialog-secondaryButton {
|
||||
color: var(--spice-text) !important;
|
||||
}
|
||||
|
||||
.main-button-primary {
|
||||
background-color: var(--spice-sec-card) !important;
|
||||
color: var(--spice-card) !important;
|
||||
}
|
||||
|
||||
.main-deletePlaylistDialog-title {
|
||||
color: var(--spice-subtext) !important;
|
||||
}
|
||||
|
||||
.main-keyboardShortcutsHelpModal-container,
|
||||
.main-trackCreditsModal-container {
|
||||
background-color: var(--spice-card) !important;
|
||||
color: var(--spice-text) !important;
|
||||
}
|
||||
|
||||
.main-keyboardShortcutsHelpModal-header,
|
||||
.main-trackCreditsModal-header {
|
||||
color: var(--spice-subtext) !important;
|
||||
}
|
||||
|
||||
.main-type-canon {
|
||||
color: var(--spice-extratext) !important;
|
||||
}
|
||||
|
||||
/* profile page edits */
|
||||
.main-cardImage-imageWrapper {
|
||||
background-color: var(--spice-card) !important;
|
||||
}
|
||||
|
||||
/* now playing bar edits */
|
||||
|
||||
.Root__now-playing-bar {
|
||||
background-color: var(--spice-sec-player) !important;
|
||||
box-shadow: 0 -2px 5px 0 rgba(var(--spice-rgb-shadow), 0.5) !important;
|
||||
border-radius: 15px 15px 0 0 !important;
|
||||
}
|
||||
|
||||
.main-nowPlayingBar-container {
|
||||
background-color: var(--spice-sec-player) !important;
|
||||
border-radius: 15px 15px 0 0 !important;
|
||||
}
|
||||
|
||||
.main-connectBar-connectBar.main-connectBar-FullscreenModeButtonEnabled.main-type-mesto {
|
||||
color: var(--spice-sidebar) !important;
|
||||
}
|
||||
|
||||
.progress-bar {
|
||||
--progress-bar-height: 5px !important;
|
||||
}
|
||||
|
||||
.progress-bar__bg {
|
||||
background-color: rgba(var(--spice-rgb-button-disabled), 0.7) !important;
|
||||
}
|
||||
|
||||
.progress-bar--is-active .progress-bar__fg,
|
||||
:not(.no-focus-outline) .progress-bar:focus-within .progress-bar__fg {
|
||||
background-color: var(--fg-color);
|
||||
}
|
||||
|
||||
.main-shuffleButton-button.main-shuffleButton-on,
|
||||
.main-repeatButton-button.main-repeatButton-on {
|
||||
color: var(--spice-button) !important;
|
||||
}
|
||||
|
||||
.cover-art--with-auto-height {
|
||||
border: solid var(--spice-sec-player) 5px !important;
|
||||
}
|
||||
|
||||
.cover-art,
|
||||
.cover-art .cover-art-image {
|
||||
border-radius: 10px !important;
|
||||
background-color: var(--spice-sec-player) !important;
|
||||
}
|
||||
|
||||
.main-nowPlayingBar-extraControls {
|
||||
gap: 5px;
|
||||
}
|
||||
|
||||
.main-addButton-button,
|
||||
.main-nowPlayingBar-extraControls button {
|
||||
color: rgba(var(--spice-rgb-selected-row), 0.7);
|
||||
}
|
||||
|
||||
/* replace icons */
|
||||
.main-navBar-mainNav a[href="/"] path {
|
||||
d: path(
|
||||
"M4.5 14.0L13.2 6.9Q13.4 6.8 13.5 6.8Q13.7 6.8 13.9 6.9L13.9 6.9L22.5 14.0L22.5 21.7Q22.5 22.1 22.3 22.3Q22.1 22.5 21.8 22.5L21.8 22.5L16.5 22.5Q16.2 22.5 16.0 22.2Q15.8 22.0 15.8 21.7L15.8 21.7L15.8 17.2Q15.8 17.0 15.7 16.9Q15.6 16.7 15.4 16.6Q15.2 16.5 15.0 16.5L15.0 16.5L12.0 16.5Q11.7 16.5 11.5 16.7Q11.3 16.9 11.3 17.2L11.3 17.2L11.3 21.7Q11.3 22.0 11.1 22.2Q10.9 22.5 10.5 22.5L10.5 22.5L5.3 22.5Q5.0 22.5 4.8 22.3Q4.5 22.1 4.5 21.7L4.5 21.7L4.5 14.0ZM22.9 8.6L26.9 11.7Q27.0 11.9 27.0 12.2L27.0 12.2Q27.0 12.4 26.9 12.5L26.9 12.5L25.7 14.0Q25.5 14.2 25.3 14.2L25.3 14.2Q25.1 14.2 24.9 14.1L24.9 14.1L13.9 5.0Q13.7 4.9 13.6 4.9Q13.4 4.9 13.2 5.0L13.2 5.0L2.2 14.1Q2.0 14.2 1.8 14.2L1.8 14.2Q1.5 14.2 1.4 14.0L1.4 14.0L0.2 12.5Q0.0 12.4 0.0 12.2L0.0 12.2Q0.0 11.9 0.2 11.7L0.2 11.7L12.1 2.0Q12.8 1.5 13.5 1.5Q14.3 1.5 15.0 2.0L15.0 2.0L19.2 5.5L19.2 2.0Q19.2 1.8 19.3 1.6Q19.5 1.5 19.7 1.5L19.7 1.5L22.4 1.5Q22.6 1.5 22.8 1.6Q22.9 1.8 22.9 2.0L22.9 2.0L22.9 8.6Z"
|
||||
) !important;
|
||||
transform: scaleX(0.9);
|
||||
}
|
||||
.main-navBar-mainNav a[href="/search"] path {
|
||||
d: path(
|
||||
"M19.0 16.1L23.7 20.7Q24 21.1 24 21.5Q24 22.0 23.7 22.3L23.7 22.3L22.4 23.6Q22.0 24.0 21.6 24.0Q21.1 24.0 20.8 23.6L20.8 23.6L16.1 19.0Q15.8 18.6 15.8 18.2L15.8 18.2L15.8 17.4Q13.1 19.5 9.8 19.5L9.8 19.5Q5.7 19.5 2.9 16.6Q0 13.8 0 9.7Q0 5.7 2.9 2.8Q5.7-0.0 9.8-0.0Q13.8-0.0 16.6 2.8Q19.5 5.7 19.5 9.7L19.5 9.7Q19.5 13.1 17.4 15.7L17.4 15.7L18.2 15.7Q18.7 15.7 19.0 16.1L19.0 16.1ZM5.5 13.9L5.5 13.9Q7.3 15.7 9.7 15.7Q12.2 15.7 14.0 14.0Q15.8 12.2 15.8 9.7Q15.8 7.2 14.0 5.5Q12.2 3.7 9.8 3.7Q7.3 3.7 5.5 5.5Q3.8 7.2 3.8 9.7Q3.8 12.2 5.5 13.9Z"
|
||||
) !important;
|
||||
}
|
||||
.main-navBar-mainNav a[href="/collection"] path,
|
||||
.main-yourLibraryX-header .main-yourLibraryX-collapseButtonWrapper path {
|
||||
d: path(
|
||||
"M23.3 4.9L23.3 4.9L23.3 6.0L0.8 6.0L0.8 4.9Q0.8 4.4 1.1 4.1Q1.5 3.7 1.9 3.7L1.9 3.7L22.2 3.7Q22.7 3.7 23.0 4.1Q23.3 4.4 23.3 4.9ZM22.5 1.1L22.5 1.1L22.5 2.2L1.5 2.2L1.5 1.1Q1.5 0.6 1.9 0.3Q2.2-0.0 2.7-0.0L2.7-0.0L21.4-0.0Q21.9-0.0 22.2 0.3Q22.5 0.6 22.5 1.1ZM11.1 15.5L11.1 15.5Q11.5 15.3 12.1 15.3Q12.6 15.3 13.0 15.6Q13.5 15.9 13.5 16.3Q13.5 16.7 13.0 17.0Q12.6 17.3 12.0 17.3Q11.5 17.3 11.1 17.0Q10.6 16.7 10.6 16.3Q10.6 15.9 11.1 15.5ZM1.5 7.5L22.5 7.5Q23.2 7.5 23.6 7.9Q24.0 8.4 24.0 9.0L24.0 9.0Q24.0 9.0 24.0 9.1L24.0 9.1L22.8 22.6Q22.8 23.2 22.3 23.6Q21.9 24.0 21.3 24.0L21.3 24.0L2.8 24.0Q2.2 24.0 1.8 23.6Q1.3 23.2 1.3 22.6L1.3 22.6L0.0 9.1Q0.0 9.0 0.0 9.0L0.0 9.0Q0.0 8.4 0.5 7.9Q0.9 7.5 1.5 7.5L1.5 7.5ZM12.0 22.1L12.0 22.1Q13.7 22.1 15.2 21.7Q16.7 21.2 17.8 20.4Q18.9 19.7 19.6 18.6Q20.3 17.5 20.4 16.3L20.4 16.3Q20.6 13.6 18.2 11.7Q15.7 9.8 12.0 9.8Q8.4 9.8 5.9 11.7Q3.5 13.6 3.7 16.3L3.7 16.3Q3.8 17.9 4.9 19.2Q6.1 20.6 8.0 21.4Q9.8 22.1 12.0 22.1Z"
|
||||
) !important;
|
||||
}
|
||||
.main-navBar-mainNav a[href="/lyrics-plus"] path {
|
||||
d: path(
|
||||
"M160 95.8L168 95.8Q171.5 95.8 173.8 98Q176 100.3 176 103.8L176 103.8L176 127.8Q176 160.8 154.3 185.6Q132.5 210.4 100.1 214.8L100.1 214.8L100.1 231.8L128 231.8Q131.5 231.8 133.8 234Q136 236.3 136 239.8L136 239.8L136 247.8Q136 251.3 133.8 253.5Q131.5 255.8 128 255.8L128 255.8L48 255.8Q44.5 255.8 42.3 253.6Q40 251.4 40 247.8L40 247.8L40 239.8Q40 236.3 42.3 234Q44.5 231.8 48 231.8L48 231.8L76.1 231.8L76.1 214.8Q43.6 210.3 21.8 184Q0 157.8 0 123.8L0 123.8L0 103.8Q0 100.3 2.3 98Q4.5 95.8 8 95.8L8 95.8L16 95.8Q19.5 95.8 21.8 98Q24 100.3 24 103.8L24 103.8L24 124.8Q24 150.3 40.5 169.8Q57 189.3 81.5 191.3L81.5 191.3Q110 194.3 131 175Q152 155.8 152 127.8L152 127.8L152 103.8Q152 100.3 154.3 98Q156.5 95.8 160 95.8L160 95.8ZM122 161.9L122 161.9Q108 175.9 88.1 175.8Q68.1 175.8 54.1 161.8Q40 147.8 40 127.8L40 127.8L40 47.8Q40 27.6 54.1 13.7Q68.1-0.3 88.1-0.3Q108.1-0.3 122.1 13.8Q136 27.8 136 47.8L136 47.8L93.5 47.8Q88 47.8 88 51.8L88 51.8L88 59.8Q88 63.9 93.5 63.8L93.5 63.8L136 63.8L136 79.8L93.5 79.8Q88 79.8 88 83.8L88 83.8L88 91.8Q88 95.9 93.5 95.8L93.5 95.8L136 95.8L136 111.8L93.5 111.8Q88 111.8 88 115.8L88 115.8L88 123.8Q88 127.9 93.5 127.8L93.5 127.8L136 127.8Q136 147.8 122 161.9Z"
|
||||
) !important;
|
||||
transform: translate(35px, 0) !important;
|
||||
}
|
||||
.main-navBar-mainNav a[href="/marketplace"] path {
|
||||
d: path(
|
||||
"M0 20.2L0 20.2L0 12.0L27 12.0L27 20.2Q27 21.2 26.3 21.8Q25.7 22.5 24.8 22.5L24.8 22.5L2.3 22.5Q1.3 22.5 0.7 21.8Q0 21.2 0 20.2ZM9 17.0L9 17.0L9 18.9Q9 19.5 9.6 19.5L9.6 19.5L15.9 19.5Q16.5 19.5 16.5 18.9L16.5 18.9L16.5 17.0Q16.5 16.5 15.9 16.5L15.9 16.5L9.6 16.5Q9 16.5 9 17.0ZM3 17.0L3 17.0L3 18.9Q3 19.5 3.6 19.5L3.6 19.5L6.9 19.5Q7.5 19.5 7.5 18.9L7.5 18.9L7.5 17.0Q7.5 16.5 6.9 16.5L6.9 16.5L3.6 16.5Q3 16.5 3 17.0ZM27 3.7L27 3.7L27 6.0L0 6.0L0 3.7Q0 2.8 0.7 2.1Q1.3 1.5 2.3 1.5L2.3 1.5L24.8 1.5Q25.7 1.5 26.3 2.1Q27 2.8 27 3.7Z"
|
||||
) !important;
|
||||
transform: translate(0) scale(2.8) !important;
|
||||
}
|
||||
.main-navBar-mainNav a[href="/new-releases"] path {
|
||||
d: path(
|
||||
"M134.5 246.3L134.5 246.3Q125 255.8 112 255.8Q99 255.8 89.5 246.3Q80 236.8 80 223.8L80 223.8L144 223.8Q144 236.8 134.5 246.3ZM219.5 180.8L219.5 180.8Q224 185.4 224 191.8L224 191.8Q224 198.3 219.5 203Q215 207.8 208 207.8L208 207.8L16 207.8Q9 207.8 4.5 203Q0 198.3 0 191.8Q0 185.4 4.5 180.8L4.5 180.8Q5 180.3 6 178.9L6 178.9Q13.5 171.4 17.8 165.3Q22 159.3 27 142.5Q32 125.8 32 103.8L32 103.8Q32 74.8 50.1 53.3Q68.1 31.8 96 26.4L96 26.4L96 15.8Q96 9.3 100.8 4.5Q105.5-0.3 112-0.3Q118.5-0.3 123.3 4.6Q128 9.4 128 15.8L128 15.8L128 26.4Q146.5 29.8 161 40.8Q175.5 51.8 183.8 68.3Q192 84.8 192 103.8L192 103.8Q192 125.8 197 142.5Q202 159.3 206.3 165.3Q210.5 171.4 218 178.9L218 178.9Q219 180.3 219.5 180.8ZM101 170.9L101 170.9Q105.6 175.9 112.1 175.8Q118.5 175.8 123.3 171Q128 166.3 128 159.8Q128 153.4 123.3 148.6Q118.5 143.8 112 143.8Q105.5 143.8 100.8 148.6Q96 153.4 96 159.8Q96 166.3 101 170.9ZM124.5 120.9L124.5 120.9L131 72.9Q131 72.4 131 71.8L131 71.8Q131 68.3 128.8 66Q126.5 63.8 123 63.8L123 63.8L101 63.8Q97.6 63.8 95.3 66Q93 68.3 93 71.8L93 71.8Q93 72.3 93 72.9L93 72.9L99.5 120.9Q99.5 123.8 102 125.8Q104.5 127.8 107 127.8L107 127.8L117 127.8Q118.5 127.8 120.3 126.8Q122 125.8 123.3 124.3Q124.5 122.9 124.5 120.9Z"
|
||||
) !important;
|
||||
transform: translate(20px, 0);
|
||||
}
|
||||
.main-navBar-mainNav a[href="/reddit"] path {
|
||||
d: path(
|
||||
"M 89.998 45.604 c -0.201 -5.442 -4.77 -9.691 -10.229 -9.506 c -2.419 0.084 -4.719 1.075 -6.466 2.737 c -7.693 -5.24 -16.729 -8.113 -26.017 -8.314 L 51.67 9.442 l 14.461 3.041 c 0.402 3.712 3.728 6.4 7.44 5.996 c 3.712 -0.402 6.4 -3.728 5.996 -7.44 c -0.404 -3.712 -3.728 -6.4 -7.44 -5.996 c -2.134 0.218 -4.048 1.461 -5.105 3.309 L 50.461 5.043 c -1.125 -0.252 -2.251 0.453 -2.503 1.596 c 0 0.017 0 0.017 0 0.033 L 42.97 30.119 c -9.406 0.152 -18.559 3.041 -26.352 8.314 c -3.964 -3.728 -10.212 -3.544 -13.94 0.437 c -3.728 3.964 -3.544 10.212 0.437 13.94 c 0.773 0.722 1.662 1.344 2.653 1.781 c -0.068 0.991 -0.068 1.982 0 2.973 c 0 15.133 17.636 27.444 39.386 27.444 c 21.75 0 39.386 -12.295 39.386 -27.444 c 0.068 -0.991 0.068 -1.982 0 -2.973 C 87.932 52.894 90.066 49.4 89.998 45.604 z"
|
||||
) !important;
|
||||
}
|
||||
.main-useDropTarget-folder .x-entityImage-imageContainer path,
|
||||
.main-useDropTarget-folder .main-entityHeader-imagePlaceholder path {
|
||||
d: path(
|
||||
"M12.8 6.0L21.8 6.0Q22.7 6.0 23.3 6.6Q24 7.3 24 8.2L24 8.2L24 18.7Q24 19.7 23.3 20.3Q22.7 21.0 21.8 21.0L21.8 21.0L2.3 21.0Q1.3 21.0 0.7 20.3Q0 19.7 0 18.7L0 18.7L0 5.2Q0 4.3 0.7 3.6Q1.3 3.0 2.3 3.0L2.3 3.0L9.8 3.0L12.8 6.0Z"
|
||||
) !important;
|
||||
}
|
||||
.main-rootlist-expandArrow path,
|
||||
.main-yourLibraryX-listItemGroup .main-yourLibraryX-isFlattened path {
|
||||
d: path(
|
||||
"M13.5 2.5L13.5 2.5Q15.8 4.8 15.8 8.0Q15.8 11.2 13.5 13.5Q11.2 15.7 8 15.7Q4.8 15.7 2.5 13.5Q0.3 11.2 0.3 8.0Q0.3 4.8 2.5 2.5Q4.8 0.2 8 0.2Q11.2 0.2 13.5 2.5ZM8.5 11.6L8.5 11.6L12.8 7.3Q13 7.1 13 6.8Q13 6.5 12.8 6.2L12.8 6.2L12.3 5.7Q12 5.5 11.7 5.5Q11.4 5.5 11.2 5.7L11.2 5.7L8 8.9L4.8 5.7Q4.6 5.5 4.3 5.5Q4.0 5.5 3.8 5.7L3.8 5.7L3.3 6.2Q3 6.5 3 6.8Q3 7.1 3.3 7.3L3.3 7.3L7.5 11.6Q7.7 11.8 8 11.8Q8.3 11.8 8.5 11.6Z"
|
||||
) !important;
|
||||
}
|
||||
.main-topBar-button[aria-label="Go back"] path {
|
||||
d: path(
|
||||
"M13.5 13.5L13.5 13.5Q11.2 15.7 8 15.7Q4.8 15.7 2.5 13.5Q0.3 11.2 0.3 8.0Q0.3 4.8 2.5 2.5Q4.8 0.2 8 0.2Q11.2 0.2 13.5 2.5Q15.8 4.8 15.8 8.0Q15.8 11.2 13.5 13.5ZM4.4 8.5L4.4 8.5L8.7 12.7Q8.9 13.0 9.2 13.0Q9.5 13.0 9.8 12.7L9.8 12.7L10.3 12.2Q10.5 12.0 10.5 11.7Q10.5 11.4 10.3 11.2L10.3 11.2L7.1 8.0L10.3 4.8Q10.5 4.6 10.5 4.3Q10.5 4.0 10.3 3.7L10.3 3.7L9.8 3.2Q9.5 3.0 9.2 3.0Q8.9 3.0 8.7 3.2L8.7 3.2L4.4 7.5Q4.2 7.7 4.2 8.0Q4.2 8.3 4.4 8.5Z"
|
||||
) !important;
|
||||
}
|
||||
.main-topBar-button[aria-label="Go forward"] path {
|
||||
d: path(
|
||||
"M2.5 2.5L2.5 2.5Q4.8 0.2 8.0 0.2Q11.2 0.2 13.5 2.5Q15.8 4.8 15.8 8.0Q15.8 11.2 13.5 13.5Q11.2 15.7 8 15.7Q4.8 15.7 2.5 13.5Q0.3 11.2 0.3 8.0Q0.3 4.8 2.5 2.5ZM11.6 7.5L11.6 7.5L7.3 3.2Q7.1 3.0 6.8 3.0Q6.5 3.0 6.3 3.2L6.3 3.2L5.8 3.7Q5.5 4.0 5.5 4.3Q5.5 4.6 5.8 4.8L5.8 4.8L8.9 8.0L5.8 11.2Q5.5 11.4 5.5 11.7Q5.5 12.0 5.8 12.2L5.8 12.2L6.3 12.7Q6.5 13.0 6.8 13.0Q7.1 13.0 7.3 12.7L7.3 12.7L11.6 8.5Q11.8 8.3 11.8 8.0Q11.8 7.7 11.6 7.5Z"
|
||||
) !important;
|
||||
}
|
||||
.main-topBar-container button[aria-label="Friend Activity"] path {
|
||||
d: path(
|
||||
"M4.4 6.4L4.4 6.4Q3.8 7.0 3 7.0Q2.2 7.0 1.6 6.4Q1 5.8 1 5.0Q1 4.2 1.6 3.6Q2.2 3.0 3 3.0Q3.8 3.0 4.4 3.6Q5 4.2 5 5.0Q5 5.8 4.4 6.4ZM18.4 6.4L18.4 6.4Q17.8 7.0 17 7.0Q16.2 7.0 15.6 6.4Q15 5.8 15 5.0Q15 4.2 15.6 3.6Q16.2 3.0 17 3.0Q17.8 3.0 18.4 3.6Q19 4.2 19 5.0Q19 5.8 18.4 6.4ZM16 8.0L18 8.0Q18.8 8.0 19.4 8.6Q20 9.2 20 10.0L20 10.0L20 11.0Q20 11.4 19.7 11.7Q19.4 12.0 19 12.0L19 12.0L16.9 12.0Q16.8 11.3 16.5 10.6Q16.2 10.0 15.7 9.4Q15.2 8.9 14.6 8.6L14.6 8.6Q15.2 8.0 16 8.0L16 8.0ZM12.5 7.0L12.5 7.0Q11.4 8.0 10 8.0Q8.6 8.0 7.5 7.0Q6.5 5.9 6.5 4.5Q6.5 3.1 7.5 2.0Q8.6 1.0 10 1.0Q11.4 1.0 12.5 2.0Q13.5 3.1 13.5 4.5Q13.5 5.9 12.5 7.0ZM12.1 9.0L12.4 9.0Q13.9 9.0 15.0 10.0Q16 11.1 16 12.6L16 12.6L16 13.5Q16 14.1 15.6 14.5Q15.1 15.0 14.5 15.0L14.5 15.0L5.5 15.0Q4.9 15.0 4.4 14.6Q4 14.1 4 13.5L4 13.5L4 12.6Q4 11.1 5.0 10.0Q6.1 9.0 7.6 9.0L7.6 9.0L7.9 9.0Q8.9 9.5 10 9.5Q11.1 9.5 12.1 9.0L12.1 9.0ZM5.4 8.6L5.4 8.6Q4.5 9.1 3.8 10.0Q3.2 10.9 3.1 12.0L3.1 12.0L1 12.0Q0.6 12.0 0.3 11.7Q0 11.4 0 11.0L0 11.0L0 10.0Q0 9.2 0.6 8.6Q1.2 8.0 2 8.0L2 8.0L4 8.0Q4.8 8.0 5.4 8.6Z"
|
||||
) !important;
|
||||
transform: scale(0.8);
|
||||
}
|
||||
.main-userWidget-box path {
|
||||
d: path(
|
||||
"M13.5 2.5L13.5 2.5Q15.8 4.8 15.8 8.0Q15.8 11.2 13.5 13.5Q11.2 15.7 8 15.7Q4.8 15.7 2.5 13.5Q0.3 11.2 0.3 8.0Q0.3 4.8 2.5 2.5Q4.8 0.2 8 0.2Q11.2 0.2 13.5 2.5ZM8.5 11.6L8.5 11.6L12.8 7.3Q13 7.1 13 6.8Q13 6.5 12.8 6.2L12.8 6.2L12.3 5.7Q12 5.5 11.7 5.5Q11.4 5.5 11.2 5.7L11.2 5.7L8 8.9L4.8 5.7Q4.6 5.5 4.3 5.5Q4.0 5.5 3.8 5.7L3.8 5.7L3.3 6.2Q3 6.5 3 6.8Q3 7.1 3.3 7.3L3.3 7.3L7.5 11.6Q7.7 11.8 8 11.8Q8.3 11.8 8.5 11.6Z"
|
||||
) !important;
|
||||
}
|
||||
.main-userWidget-box[data-context-menu-open="true"] path {
|
||||
d: path(
|
||||
"M2.5 13.5L2.5 13.5Q0.3 11.2 0.3 8.0Q0.3 4.8 2.5 2.5Q4.8 0.2 8 0.2Q11.2 0.2 13.5 2.5Q15.8 4.8 15.8 8.0Q15.8 11.2 13.5 13.5Q11.2 15.7 8.0 15.7Q4.8 15.7 2.5 13.5ZM7.5 4.4L7.5 4.4L3.3 8.7Q3 8.9 3 9.2Q3 9.5 3.3 9.7L3.3 9.7L3.8 10.2Q4 10.5 4.3 10.5Q4.6 10.5 4.8 10.2L4.8 10.2L8 7.1L11.2 10.2Q11.4 10.5 11.7 10.5Q12.0 10.5 12.3 10.2L12.3 10.2L12.8 9.7Q13 9.5 13 9.2Q13 8.9 12.8 8.7L12.8 8.7L8.5 4.4Q8.3 4.2 8 4.2Q7.7 4.2 7.5 4.4Z"
|
||||
) !important;
|
||||
}
|
||||
.player-controls__left,
|
||||
.player-controls__right {
|
||||
height: 30px;
|
||||
align-self: flex-end;
|
||||
}
|
||||
.main-shuffleButton-button path:nth-child(1) {
|
||||
d: path(
|
||||
"M13.3 8.7L15.8 11.2Q16 11.4 16 11.7Q16 12.1 15.8 12.3L15.8 12.3L13.3 14.8Q12.9 15.1 12.5 14.9Q12 14.7 12 14.2L12 14.2L12 13.0L10.2 13.0Q10 13.0 9.9 12.9L9.9 12.9L7.7 10.5L9.3 8.7L11 10.5L12 10.5L12 9.2Q12 8.7 12.5 8.5Q12.9 8.4 13.3 8.7L13.3 8.7ZM3 5.5L0.4 5.5Q0 5.5 0 5.1L0 5.1L0 3.4Q0 3.0 0.4 3.0L0.4 3.0L3.8 3.0Q4 3.0 4.1 3.1L4.1 3.1L6.3 5.5L4.7 7.3L3 5.5ZM12 6.7L12 5.5L11 5.5L4.1 12.9Q4 13.0 3.8 13.0L3.8 13.0L0.4 13.0Q0 13.0 0 12.6L0 12.6L0 10.9Q0 10.5 0.4 10.5L0.4 10.5L3 10.5L9.9 3.1Q10 3.0 10.2 3.0L10.2 3.0L12 3.0L12 1.7Q12 1.2 12.5 1.0Q12.9 0.9 13.3 1.2L13.3 1.2L15.8 3.7Q16 3.9 16 4.2Q16 4.6 15.8 4.8L15.8 4.8L13.3 7.3Q12.9 7.6 12.5 7.4Q12 7.2 12 6.7L12 6.7Z"
|
||||
) !important;
|
||||
}
|
||||
.main-shuffleButton-button path:nth-child(2) {
|
||||
display: none;
|
||||
}
|
||||
.main-skipBackButton-button path {
|
||||
d: path(
|
||||
"M7 7.5L7 7.5L11.3 3.2Q11.5 3.0 11.8 3.0Q12.1 3.0 12.3 3.2L12.3 3.2L13 3.9Q13.2 4.1 13.2 4.5Q13.2 4.8 13 5.0L13 5.0L10 8.0L13 11.0Q13.2 11.1 13.2 11.3Q13.3 11.5 13.2 11.7Q13.2 11.9 13 12.1L13 12.1L12.3 12.8Q12.1 13.0 11.8 13.0Q11.5 13.0 11.3 12.8L11.3 12.8L7 8.5Q6.8 8.3 6.8 8.0Q6.8 7.7 7 7.5ZM5.3 12.8L1 8.5Q0.8 8.3 0.8 8.0Q0.8 7.7 1 7.5L1 7.5L5.3 3.2Q5.5 3.0 5.8 3.0Q6.1 3.0 6.3 3.2L6.3 3.2L7 3.9Q7.2 4.1 7.2 4.5Q7.2 4.8 7 5.0L7 5.0L4 8.0L7 11.0Q7.2 11.2 7.2 11.5Q7.2 11.8 7 12.1L7 12.1L6.3 12.8Q6.1 13.0 5.8 13.0Q5.5 13.0 5.3 12.8L5.3 12.8Z"
|
||||
) !important;
|
||||
}
|
||||
.main-skipForwardButton-button path {
|
||||
d: path(
|
||||
"M7 8.5L7 8.5L2.8 12.8Q2.5 13.0 2.2 13.0Q1.9 13.0 1.7 12.8L1.7 12.8L1 12.1Q0.8 11.8 0.8 11.5Q0.8 11.2 1 11.0L1 11.0L4 8.0L1 5.0Q0.8 4.8 0.8 4.5Q0.8 4.1 1 3.9L1 3.9L1.7 3.2Q1.9 3.0 2.2 3.0Q2.5 3.0 2.8 3.2L2.8 3.2L7 7.5Q7.2 7.7 7.2 8.0Q7.2 8.3 7 8.5ZM8.8 3.2L13 7.5Q13.2 7.7 13.2 8.0Q13.2 8.3 13 8.5L13 8.5L8.8 12.8Q8.5 13.0 8.2 13.0Q7.9 13.0 7.7 12.8L7.7 12.8L7 12.1Q6.8 11.8 6.8 11.5Q6.8 11.2 7 11.0L7 11.0L10 8.0L7 5.0Q6.8 4.8 6.8 4.5Q6.8 4.1 7 3.9L7 3.9L7.7 3.2Q7.8 3.1 7.9 3.1Q8.1 3.0 8.2 3.0Q8.4 3.0 8.5 3.1Q8.7 3.1 8.8 3.2L8.8 3.2Z"
|
||||
) !important;
|
||||
}
|
||||
.main-repeatButton-button path {
|
||||
d: path(
|
||||
"M16 8.0L16 8.0Q16 10.0 14.5 11.5Q13.1 13.0 11 13.0L11 13.0L5.3 13.0L6.4 14.0Q6.6 14.2 6.6 14.5Q6.6 14.9 6.4 15.1L6.4 15.1L6.1 15.4Q5.8 15.6 5.5 15.6Q5.2 15.6 5 15.4L5 15.4L2.1 12.5Q1.9 12.3 1.9 12.0Q1.9 11.7 2.1 11.5L2.1 11.5L5 8.6Q5.2 8.3 5.5 8.3Q5.8 8.3 6.1 8.6L6.1 8.6L6.4 8.9Q6.6 9.1 6.6 9.4Q6.6 9.8 6.4 10.0L6.4 10.0L5.3 11.0L11 11.0Q12.3 11.0 13.1 10.1Q14 9.2 14 8.0L14 8.0Q14 7.3 13.8 6.8L13.8 6.8Q13.5 6.3 13.9 5.9L13.9 5.9L14.3 5.6Q14.5 5.3 14.9 5.3Q15.3 5.4 15.5 5.7L15.5 5.7Q16 6.8 16 8.0ZM2.3 9.2L2.3 9.2Q2.5 9.7 2.1 10.1L2.1 10.1L1.7 10.4Q1.5 10.7 1.1 10.6Q0.7 10.6 0.5 10.2L0.5 10.2Q0 9.2 0 8.0L0 8.0Q0 5.9 1.5 4.5Q2.9 3.0 5 3.0L5 3.0L10.7 3.0L9.6 2.0Q9.4 1.8 9.4 1.4Q9.4 1.1 9.6 0.9L9.6 0.9L9.9 0.6Q10.2 0.3 10.5 0.3Q10.8 0.3 11 0.6L11 0.6L13.9 3.5Q14.1 3.7 14.1 4.0Q14.1 4.3 13.9 4.5L13.9 4.5L11 7.4Q10.8 7.6 10.5 7.6Q10.2 7.6 9.9 7.4L9.9 7.4L9.6 7.1Q9.4 6.9 9.4 6.5Q9.4 6.2 9.6 6.0L9.6 6.0L10.7 5.0L5 5.0Q3.8 5.0 2.9 5.9Q2 6.7 2 8.0L2 8.0Q2 8.6 2.3 9.2Z"
|
||||
) !important;
|
||||
}
|
||||
.main-repeatButton-button[aria-checked="mixed"] path {
|
||||
d: path(
|
||||
"M16 8.0L16 8.0Q16 10.0 14.5 11.5Q13.1 13.0 11 13.0L11 13.0L5.3 13.0L6.4 14.0Q6.6 14.2 6.6 14.5Q6.6 14.9 6.4 15.1L6.4 15.1L6.1 15.4Q5.8 15.6 5.5 15.6Q5.2 15.6 5 15.4L5 15.4L2.1 12.5Q1.9 12.3 1.9 12.0Q1.9 11.7 2.1 11.5L2.1 11.5L4.6 9.0Q4.8 8.7 5.2 8.7Q5.5 8.7 5.7 9.0L5.7 9.0L6.0 9.3Q6.3 9.5 6.3 9.8Q6.3 10.1 6 10.4L6 10.4L5.3 11.0L11 11.0Q12.3 11.0 13.1 10.1Q14 9.2 14 8.0L14 8.0Q14 7.3 13.8 6.8L13.8 6.8Q13.5 6.3 13.9 5.9L13.9 5.9L14.3 5.6Q14.5 5.3 14.9 5.3Q15.3 5.4 15.5 5.7L15.5 5.7Q16 6.8 16 8.0ZM2.3 9.2L2.3 9.2Q2.5 9.7 2.1 10.1L2.1 10.1L1.7 10.4Q1.5 10.7 1.1 10.6Q0.7 10.6 0.5 10.2L0.5 10.2Q0 9.2 0 8.0L0 8.0Q0 5.9 1.5 4.5Q2.9 3.0 5 3.0L5 3.0L10.7 3.0L9.6 2.0Q9.4 1.8 9.4 1.4Q9.4 1.1 9.6 0.9L9.6 0.9L9.9 0.6Q10.2 0.3 10.5 0.3Q10.8 0.3 11 0.6L11 0.6L13.9 3.5Q14.1 3.7 14.1 4.0Q14.1 4.3 13.9 4.5L13.9 4.5L11.4 7.0Q11.2 7.2 10.8 7.2Q10.5 7.2 10.3 7.0L10.3 7.0L10.0 6.7Q9.8 6.5 9.8 6.1Q9.8 5.8 10 5.6L10 5.6L10.7 5.0L5 5.0Q3.8 5.0 2.9 5.9Q2 6.7 2 8.0L2 8.0Q2 8.6 2.3 9.2ZM7.1 9.6L7.1 9.4Q7.1 9.0 7.5 9.0L7.5 9.0L7.9 9.0L7.9 7.7L8.0 7.4L7.9 7.4Q7.9 7.5 7.8 7.5L7.8 7.5Q7.6 7.8 7.4 7.5L7.4 7.5L7.2 7.3Q6.9 7.1 7.2 6.8L7.2 6.8L7.9 6.2Q8.1 6.0 8.3 6.0L8.3 6.0L8.7 6.0Q9.1 6.0 9.1 6.4L9.1 6.4L9.1 9.0L9.6 9.0Q9.9 9.0 9.9 9.4L9.9 9.4L9.9 9.6Q9.9 10.0 9.6 10.0L9.6 10.0L7.5 10.0Q7.1 10.0 7.1 9.6L7.1 9.6Z"
|
||||
) !important;
|
||||
}
|
||||
.main-nowPlayingBar-lyricsButton path {
|
||||
d: path(
|
||||
"M6.2 1.3L6.2 1.3Q7.3 0.7 8.5 0.7Q9.7 0.7 10.8 1.3Q11.8 1.9 12.4 2.9Q13 3.9 13 5.2L13 5.2Q13 6.0 12.7 6.8Q12.4 7.6 11.8 8.2Q11.3 8.7 10.6 9.1Q9.8 9.5 9.0 9.6L9.0 9.6L4.8 14.6Q4.4 15.0 3.8 15.0L3.8 15.0Q3.4 15.0 3.1 14.8L3.1 14.8L2.5 14.5Q2.1 14.2 1.9 13.8Q1.8 13.3 2.0 12.8L2.0 12.8L4.5 7.2Q4 6.2 4 5.2L4 5.2Q4 3.9 4.6 2.9Q5.2 1.9 6.2 1.3ZM4.0 13.9L4.0 13.9L7.7 9.6Q6.2 9.3 5.2 8.1L5.2 8.1L2.9 13.2Q2.9 13.3 2.9 13.4Q2.9 13.6 3.0 13.6L3.0 13.6L3.6 14.0Q3.7 14.0 3.8 14.0Q4.0 14.0 4.0 13.9ZM6.0 7.6L6.0 7.6Q7.1 8.7 8.5 8.7Q9.9 8.7 11.0 7.6Q12 6.6 12 5.2Q12 3.7 11.0 2.7Q9.9 1.7 8.5 1.7Q7.1 1.7 6.0 2.7Q5 3.7 5 5.2Q5 6.6 6.0 7.6Z"
|
||||
) !important;
|
||||
}
|
||||
.main-nowPlayingBar-extraControls button[aria-label="Queue"] path {
|
||||
d: path(
|
||||
"M8.5 8.0L0.5 8.0Q0.3 8.0 0.1 7.8Q0 7.7 0 7.5L0 7.5L0 6.5Q0 6.3 0.1 6.1Q0.3 6.0 0.5 6.0L0.5 6.0L8.5 6.0Q8.7 6.0 8.9 6.1Q9 6.3 9 6.5L9 6.5L9 7.5Q9 7.7 8.9 7.8Q8.7 8.0 8.5 8.0L8.5 8.0ZM8.5 4.0L0.5 4.0Q0.3 4.0 0.1 3.8Q0 3.7 0 3.5L0 3.5L0 2.5Q0 2.3 0.1 2.1Q0.3 2.0 0.5 2.0L0.5 2.0L8.5 2.0Q8.7 2.0 8.9 2.1Q9 2.3 9 2.5L9 2.5L9 3.5Q9 3.7 8.9 3.8Q8.7 4.0 8.5 4.0L8.5 4.0ZM0.5 10.0L4.5 10.0Q4.7 10.0 4.9 10.1Q5 10.3 5 10.5L5 10.5L5 11.5Q5 11.7 4.9 11.8Q4.7 12.0 4.5 12.0L4.5 12.0L0.5 12.0Q0.3 12.0 0.1 11.8Q0 11.7 0 11.5L0 11.5L0 10.5Q0 10.3 0.1 10.1Q0.3 10.0 0.5 10.0L0.5 10.0ZM11.7 0.9L14.7 0.0Q14.8-0.0 15-0.0L15-0.0Q15.4-0.0 15.7 0.3Q16 0.6 16 1.0L16 1.0L16 3.0Q16 3.3 15.8 3.6Q15.6 3.9 15.3 4.0L15.3 4.0L13 4.6L13 13.5Q13 14.5 12.0 15.3Q10.9 16.0 9.5 16.0Q8.1 16.0 7.0 15.3Q6 14.5 6 13.5Q6 12.5 7.0 11.7Q8.1 11.0 9.5 11.0L9.5 11.0Q10.3 11.0 11 11.2L11 11.2L11 1.9Q11 1.6 11.2 1.3Q11.4 1.0 11.7 0.9L11.7 0.9Z"
|
||||
) !important;
|
||||
}
|
||||
.main-devicePicker-controlButton path {
|
||||
d: path(
|
||||
"M4 13.0L9 13.0L9 13.5Q9 14.3 9.5 15.0L9.5 15.0L4 15.0Q3.6 15.0 3.3 14.7Q3 14.4 3 14.0Q3 13.6 3.3 13.3Q3.6 13.0 4 13.0L4 13.0ZM0 10.5L0 2.5Q0 1.9 0.4 1.4Q0.9 1.0 1.5 1.0L1.5 1.0L9.5 1.0Q9 1.6 9 2.5L9 2.5L9 3.0L2 3.0L2 10.0L9 10.0L9 12.0L1.5 12.0Q0.9 12.0 0.4 11.6Q0 11.1 0 10.5L0 10.5ZM11.5 1.0L18.5 1.0Q19.1 1.0 19.6 1.4Q20 1.9 20 2.5L20 2.5L20 13.5Q20 14.1 19.6 14.5Q19.1 15.0 18.5 15.0L18.5 15.0L11.5 15.0Q10.9 15.0 10.4 14.6Q10 14.1 10 13.5L10 13.5L10 2.5Q10 1.9 10.4 1.4Q10.9 1.0 11.5 1.0L11.5 1.0ZM15.7 3.3L15.7 3.3Q15.4 3.0 15.0 3.0Q14.6 3.0 14.3 3.3Q14 3.6 14 4.0Q14 4.4 14.3 4.7Q14.6 5.0 15 5.0Q15.4 5.0 15.7 4.7Q16 4.4 16 4.0Q16 3.6 15.7 3.3ZM12.9 12.1L12.9 12.1Q13.8 13.0 15.0 13.0Q16.3 13.0 17.1 12.1Q18 11.2 18 10.0Q18 8.7 17.1 7.9Q16.3 7.0 15.0 7.0Q13.8 7.0 12.9 7.9Q12 8.7 12 10.0Q12 11.2 12.9 12.1ZM13.6 8.6L13.6 8.6Q14.2 8.0 15 8.0Q15.8 8.0 16.4 8.6Q17 9.2 17 10.0Q17 10.8 16.4 11.4Q15.8 12.0 15 12.0Q14.2 12.0 13.6 11.4Q13 10.8 13 10.0Q13 9.2 13.6 8.6Z"
|
||||
) !important;
|
||||
transform: scaleX(0.8);
|
||||
}
|
||||
.main-nowPlayingBar-extraControls svg[aria-label="Volume off"] path {
|
||||
d: path(
|
||||
"M3.9 5.0L6.7 2.2Q7.1 1.9 7.5 2.0Q8 2.2 8 2.7L8 2.7L8 13.2Q8 13.7 7.5 13.9Q7.1 14.1 6.7 13.8L6.7 13.8L3.9 11.0L0.8 11.0Q0.4 11.0 0.2 10.8Q0 10.6 0 10.2L0 10.2L0 5.7Q0 5.4 0.2 5.2Q0.4 5.0 0.8 5.0L0.8 5.0L3.9 5.0ZM15.8 6.6L14.4 8.0L15.8 9.4Q16.2 9.8 15.8 10.1L15.8 10.1L15.1 10.8Q14.8 11.2 14.4 10.8L14.4 10.8L13 9.4L11.6 10.8Q11.2 11.2 10.9 10.8L10.9 10.8L10.2 10.1Q9.8 9.8 10.2 9.4L10.2 9.4L11.6 8.0L10.2 6.6Q9.8 6.2 10.2 5.9L10.2 5.9L10.9 5.1Q11.2 4.8 11.6 5.1L11.6 5.1L13 6.6L14.4 5.1Q14.8 4.8 15.1 5.1L15.1 5.1L15.8 5.9Q16.2 6.2 15.8 6.6L15.8 6.6Z"
|
||||
) !important;
|
||||
}
|
||||
.main-nowPlayingBar-extraControls svg[aria-label="Volume low"] path {
|
||||
d: path(
|
||||
"M3.9 5.0L6.7 2.2Q7.1 1.9 7.5 2.1Q8 2.3 8 2.8L8 2.8L8 13.3Q8 13.8 7.5 14.0Q7.1 14.1 6.7 13.8L6.7 13.8L3.9 11.0L0.8 11.0Q0.4 11.0 0.2 10.8Q0 10.6 0 10.3L0 10.3L0 5.8Q0 5.5 0.2 5.2Q0.4 5.0 0.8 5.0L0.8 5.0L3.9 5.0ZM10.6 5.6L10.6 5.6Q11.2 6.0 11.6 6.6Q12 7.3 12 8.0Q12 8.8 11.6 9.4Q11.2 10.1 10.6 10.4L10.6 10.4Q10.3 10.6 10.0 10.5Q9.7 10.4 9.5 10.1Q9.4 9.9 9.5 9.6Q9.6 9.3 9.8 9.1L9.8 9.1Q10.5 8.7 10.5 8.0Q10.5 7.3 9.8 6.9L9.8 6.9Q9.6 6.8 9.5 6.5Q9.4 6.2 9.5 5.9Q9.7 5.6 10.0 5.6Q10.3 5.5 10.6 5.6Z"
|
||||
) !important;
|
||||
}
|
||||
.main-nowPlayingBar-extraControls svg[aria-label="Volume medium"] path {
|
||||
d: path(
|
||||
"M3.9 5.0L6.7 2.2Q7.1 1.9 7.5 2.0Q8 2.2 8 2.7L8 2.7L8 13.2Q8 13.7 7.5 13.9Q7.1 14.1 6.7 13.8L6.7 13.8L3.9 11.0L0.8 11.0Q0.4 11.0 0.2 10.8Q0 10.6 0 10.2L0 10.2L0 5.7Q0 5.4 0.2 5.2Q0.4 5.0 0.8 5.0L0.8 5.0L3.9 5.0ZM14.3 5.2L14.3 5.2Q15 6.5 15 8.0Q15 9.5 14.3 10.8Q13.6 12.1 12.3 12.9L12.3 12.9Q12.0 13.0 11.7 13.0Q11.4 12.9 11.3 12.6L11.3 12.6Q11.1 12.4 11.2 12.1Q11.3 11.8 11.5 11.6L11.5 11.6Q12.1 11.2 12.6 10.6Q13.0 10.1 13.3 9.4Q13.5 8.7 13.5 8.0Q13.5 7.3 13.3 6.6Q13.0 5.9 12.6 5.3Q12.1 4.8 11.5 4.4L11.5 4.4Q11.3 4.2 11.2 3.9Q11.1 3.6 11.3 3.4Q11.4 3.1 11.8 3.0Q12.1 2.9 12.3 3.1L12.3 3.1Q13.6 3.9 14.3 5.2ZM10.6 5.6L10.6 5.6Q11.2 6.0 11.6 6.6Q12 7.2 12 8.0Q12 8.7 11.6 9.4Q11.2 10.0 10.6 10.4L10.6 10.4Q10.3 10.5 10.0 10.5Q9.7 10.4 9.5 10.1Q9.4 9.8 9.5 9.5Q9.6 9.2 9.8 9.1L9.8 9.1Q10.5 8.7 10.5 8.0Q10.5 7.3 9.8 6.9L9.8 6.9Q9.6 6.7 9.5 6.4Q9.4 6.1 9.5 5.9Q9.7 5.6 10.0 5.5Q10.3 5.4 10.6 5.6Z"
|
||||
) !important;
|
||||
}
|
||||
.main-nowPlayingBar-extraControls svg[aria-label="Volume high"] path {
|
||||
d: path(
|
||||
"M3.9 5.0L6.7 2.2Q7.1 1.9 7.5 2.0Q8 2.2 8 2.7L8 2.7L8 13.2Q8 13.7 7.5 13.9Q7.1 14.1 6.7 13.8L6.7 13.8L3.9 11.0L0.8 11.0Q0.4 11.0 0.2 10.8Q0 10.6 0 10.2L0 10.2L0 5.7Q0 5.4 0.2 5.2Q0.4 5.0 0.8 5.0L0.8 5.0L3.9 5.0ZM14.3 5.2L14.3 5.2Q15 6.5 15 8.0Q15 9.5 14.3 10.8Q13.6 12.1 12.3 12.9L12.3 12.9Q12.0 13.0 11.7 13.0Q11.4 12.9 11.3 12.6L11.3 12.6Q11.1 12.4 11.2 12.1Q11.3 11.8 11.5 11.6L11.5 11.6Q12.1 11.2 12.6 10.6Q13.0 10.1 13.3 9.4Q13.5 8.7 13.5 8.0Q13.5 7.3 13.3 6.6Q13.0 5.9 12.6 5.3Q12.1 4.8 11.5 4.4L11.5 4.4Q11.3 4.2 11.2 3.9Q11.1 3.6 11.3 3.4Q11.4 3.1 11.8 3.0Q12.1 2.9 12.3 3.1L12.3 3.1Q13.6 3.9 14.3 5.2ZM10.6 5.6L10.6 5.6Q11.2 6.0 11.6 6.6Q12 7.2 12 8.0Q12 8.7 11.6 9.4Q11.2 10.0 10.6 10.4L10.6 10.4Q10.3 10.5 10.0 10.5Q9.7 10.4 9.5 10.1Q9.4 9.8 9.5 9.5Q9.6 9.2 9.8 9.1L9.8 9.1Q10.5 8.7 10.5 8.0Q10.5 7.3 9.8 6.9L9.8 6.9Q9.6 6.7 9.5 6.4Q9.4 6.1 9.5 5.9Q9.7 5.6 10.0 5.5Q10.3 5.4 10.6 5.6Z"
|
||||
) !important;
|
||||
}
|
||||
.main-nowPlayingBar-extraControls button[aria-label="Full screen"] path {
|
||||
d: path(
|
||||
"M15.5 0.7L15.5 0.7Q15.5 0.7 15.5 0.7Q15.5 0.8 15.5 0.8L15.5 0.8Q15.5 0.8 15.5 0.9L15.5 0.9L15.5 3.9Q15.5 4.1 15.4 4.2Q15.2 4.4 15 4.4Q14.8 4.4 14.6 4.2Q14.5 4.1 14.5 3.9L14.5 3.9L14.5 2.1L11.9 4.7Q11.7 4.9 11.5 4.9Q11.3 4.9 11.1 4.7L11.1 4.7Q11 4.6 11 4.4Q11 4.2 11.1 4.0L11.1 4.0L13.8 1.4L12 1.4Q11.8 1.4 11.6 1.2Q11.5 1.1 11.5 0.9Q11.5 0.7 11.6 0.5Q11.8 0.4 12 0.4L12 0.4L15 0.4Q15.1 0.4 15.1 0.4L15.1 0.4Q15.1 0.4 15.1 0.4Q15.1 0.4 15.1 0.4L15.1 0.4Q15.2 0.4 15.2 0.4L15.2 0.4L15.2 0.4Q15.2 0.4 15.3 0.4Q15.3 0.5 15.3 0.5L15.3 0.5Q15.4 0.5 15.4 0.6L15.4 0.6Q15.4 0.6 15.4 0.6Q15.4 0.6 15.4 0.6L15.4 0.6Q15.5 0.7 15.5 0.7L15.5 0.7Q15.5 0.7 15.5 0.7ZM1.5 13.7L4.1 11.0Q4.3 10.9 4.5 10.9Q4.7 10.9 4.9 11.0L4.9 11.0Q5 11.2 5 11.4Q5 11.6 4.9 11.7L4.9 11.7L2.2 14.4L4 14.4Q4.2 14.4 4.4 14.5Q4.5 14.7 4.5 14.9Q4.5 15.1 4.4 15.2Q4.2 15.4 4 15.4L4 15.4L1 15.4Q0.9 15.4 0.9 15.4L0.9 15.4Q0.9 15.4 0.9 15.3Q0.9 15.3 0.9 15.3L0.9 15.3Q0.8 15.3 0.8 15.3L0.8 15.3L0.8 15.3Q0.8 15.3 0.7 15.3Q0.7 15.3 0.7 15.3L0.7 15.3Q0.6 15.2 0.6 15.1L0.6 15.1Q0.6 15.1 0.6 15.1Q0.6 15.1 0.6 15.1L0.6 15.1L0.5 15.1Q0.5 15.0 0.5 15.0L0.5 15.0Q0.5 15 0.5 15.0Q0.5 15.0 0.5 15.0L0.5 15.0Q0.5 14.9 0.5 14.9L0.5 14.9L0.5 11.9Q0.5 11.7 0.6 11.5Q0.8 11.4 1 11.4Q1.2 11.4 1.4 11.5Q1.5 11.7 1.5 11.9L1.5 11.9L1.5 13.7Z"
|
||||
) !important;
|
||||
}
|
||||
|
||||
/* ylx */
|
||||
.Root {
|
||||
--panel-gap: 0 !important;
|
||||
overflow: hidden;
|
||||
}
|
||||
.spotify__container--is-desktop .Root__top-container {
|
||||
padding-top: 32px !important;
|
||||
}
|
||||
.main-nowPlayingBar-nowPlayingBar {
|
||||
height: 90px;
|
||||
padding: 0 16px !important;
|
||||
}
|
||||
[dir="ltr"] .main-coverSlotCollapsed-navAltContainer {
|
||||
transform: none;
|
||||
}
|
||||
.main-yourLibraryX-navItem:has(.main-yourLibraryX-navLinkActive) {
|
||||
padding: 0;
|
||||
}
|
||||
.main-yourLibraryX-navLinkActive {
|
||||
color: var(--spice-sidebar) !important;
|
||||
background-color: var(--spice-sec-card);
|
||||
border-radius: 10px;
|
||||
padding: 24px 12px;
|
||||
}
|
||||
.main-yourLibraryX-navLinkActive .home-active-icon,
|
||||
.main-yourLibraryX-navLinkActive .search-active-icon {
|
||||
color: var(--spice-sidebar) !important;
|
||||
}
|
||||
.link-subtle {
|
||||
transition: none;
|
||||
}
|
||||
.spotify__container--is-desktop .Root__top-container {
|
||||
padding-top: calc(24px + var(--panel-gap)-3);
|
||||
background-color: var(--spice-main);
|
||||
}
|
||||
.main-yourLibraryX-navItems {
|
||||
background-color: var(--spice-sidebar);
|
||||
}
|
||||
.main-yourLibraryX-libraryRootlist {
|
||||
background-color: var(--spice-sidebar);
|
||||
}
|
||||
.main-yourLibraryX-header {
|
||||
background-color: var(--spice-sidebar);
|
||||
}
|
||||
.main-yourLibraryX-filterArea {
|
||||
background-color: var(--spice-sidebar);
|
||||
}
|
||||
.LayoutResizer__inline-end {
|
||||
inset-inline-end: 8px;
|
||||
}
|
||||
.LayoutResizer__inline-start {
|
||||
inset-inline-start: 8px;
|
||||
}
|
||||
.LayoutResizer__resize-bar {
|
||||
width: 8px;
|
||||
}
|
||||
436
etc/spicetify/Themes/Sleek/color.ini
Normal file
436
etc/spicetify/Themes/Sleek/color.ini
Normal file
@@ -0,0 +1,436 @@
|
||||
[Wealthy]
|
||||
; Green on dark grey background
|
||||
text = 8bc34a
|
||||
subtext = b4b4b4
|
||||
nav-active-text = 202020
|
||||
main = 202020
|
||||
sidebar = 202020
|
||||
player = 242424
|
||||
card = 242424
|
||||
shadow = 000000
|
||||
main-secondary = 171717
|
||||
button = 8bc34a
|
||||
button-secondary = 6a913d
|
||||
button-active = 98da4b
|
||||
button-disabled = 353535
|
||||
nav-active = 8bc34a
|
||||
play-button = 8bc34a
|
||||
tab-active = 171717
|
||||
notification = 242424
|
||||
notification-error = 242424
|
||||
playback-bar = 8bc34a
|
||||
misc = FFFFFF
|
||||
|
||||
[Cherry]
|
||||
; Pink on dark blue background
|
||||
text = d98ba1
|
||||
subtext = d7d7d7
|
||||
nav-active-text = 131c26
|
||||
main = 131c26
|
||||
sidebar = 131c26
|
||||
player = 131c26
|
||||
card = 131c26
|
||||
shadow = 0e0e13
|
||||
main-secondary = 09111b
|
||||
button = d98ba1
|
||||
button-secondary = d98ba1
|
||||
button-active = ff84ac
|
||||
button-disabled = 192531
|
||||
nav-active = ff84ac
|
||||
play-button = d98ba1
|
||||
tab-active = 09111b
|
||||
notification = 192531
|
||||
notification-error = 192531
|
||||
playback-bar = d98ba1
|
||||
misc = FFFFFF
|
||||
|
||||
[Coral]
|
||||
; Salmon on dark blue background
|
||||
text = f88379
|
||||
subtext = d7d7d7
|
||||
nav-active-text = 131c26
|
||||
main = 131c26
|
||||
sidebar = 131c26
|
||||
player = 131c26
|
||||
card = 131c26
|
||||
shadow = 0e0e13
|
||||
main-secondary = 09111b
|
||||
button = f88379
|
||||
button-secondary = f88379
|
||||
button-active = fb958b
|
||||
button-disabled = 192531
|
||||
nav-active = fb958b
|
||||
play-button = f88379
|
||||
tab-active = 09111b
|
||||
notification = 192531
|
||||
notification-error = 192531
|
||||
playback-bar = f88379
|
||||
misc = FFFFFF
|
||||
|
||||
[Deep]
|
||||
; White on dark blue background
|
||||
text = ffffff
|
||||
subtext = ffffff
|
||||
nav-active-text = ffffff
|
||||
main = 020816
|
||||
sidebar = 051024
|
||||
player = 030b1e
|
||||
card = 0a1527
|
||||
shadow = 000000
|
||||
main-secondary = 06142d
|
||||
button = 1464b5
|
||||
button-secondary = ffffff
|
||||
button-active = 4a99e9
|
||||
button-disabled = 21282f
|
||||
nav-active = 37b778
|
||||
play-button = 37b778
|
||||
tab-active = 0a1527
|
||||
notification = 051024
|
||||
notification-error = 051024
|
||||
playback-bar = 37b778
|
||||
misc = FFFFFF
|
||||
|
||||
[Greener]
|
||||
; White on dark and green background
|
||||
text = ffffff
|
||||
subtext = ffffff
|
||||
nav-active-text = ffffff
|
||||
main = 020816
|
||||
sidebar = 020816
|
||||
player = 020816
|
||||
card = 020816
|
||||
shadow = 000000
|
||||
main-secondary = 216d48
|
||||
button = 37b778
|
||||
button-secondary = ffffff
|
||||
button-active = 37b778
|
||||
button-disabled = 21282f
|
||||
nav-active = 37b778
|
||||
play-button = 37b778
|
||||
tab-active = 2c9260
|
||||
notification = 051024
|
||||
notification-error = 051024
|
||||
playback-bar = 37b778
|
||||
misc = FFFFFF
|
||||
|
||||
[Deeper]
|
||||
; Light blue on dark background
|
||||
text = 4f9a87
|
||||
subtext = 4f9a87
|
||||
nav-active-text = 4f9a87
|
||||
main = 040614
|
||||
sidebar = 0F111A
|
||||
player = 0F111A
|
||||
card = 0C1C19
|
||||
shadow = 000000
|
||||
main-secondary = 131520
|
||||
button = 4f9a87
|
||||
button-secondary = 4f9a87
|
||||
button-active = 4a99e9
|
||||
button-disabled = 0C1C19
|
||||
nav-active = 040614
|
||||
play-button = 4f9a87
|
||||
tab-active = 0a1527
|
||||
notification = 051024
|
||||
notification-error = 051024
|
||||
playback-bar = 4f9a87
|
||||
misc = FFFFFF
|
||||
|
||||
[Psycho]
|
||||
; Red on dark grey background
|
||||
text = c20000
|
||||
subtext = ffffff
|
||||
nav-active-text = 101010
|
||||
main = 101010
|
||||
sidebar = 171717
|
||||
player = 171717
|
||||
card = 171717
|
||||
shadow = 000000
|
||||
main-secondary = 1f1f1f
|
||||
button = c20000
|
||||
button-secondary = a20606
|
||||
button-active = c20000
|
||||
button-disabled = 404040
|
||||
nav-active = 9f0909
|
||||
play-button = c20000
|
||||
tab-active = 171717
|
||||
notification = 5e0000
|
||||
notification-error = 5e0000
|
||||
playback-bar = c20000
|
||||
misc = FFFFFF
|
||||
|
||||
[UltraBlack]
|
||||
; White on black background
|
||||
text = FFFFFF
|
||||
subtext = DEDEDE
|
||||
nav-active-text = 000000
|
||||
main = 000000
|
||||
sidebar = 000000
|
||||
player = 000000
|
||||
card = 000000
|
||||
shadow = 000000
|
||||
main-secondary = 292929
|
||||
button = 1DB954
|
||||
button-secondary = DEDEDE
|
||||
button-active = 1DB954
|
||||
button-disabled = 2f2f2f
|
||||
nav-active = DEDEDE
|
||||
play-button = DEDEDE
|
||||
tab-active = 292929
|
||||
notification = 292929
|
||||
notification-error = 292929
|
||||
playback-bar = DEDEDE
|
||||
misc = FFFFFF
|
||||
|
||||
[Nord]
|
||||
; Light grey on blue background
|
||||
text = D8DEE9
|
||||
subtext = E5E9F0
|
||||
nav-active-text = D8DEE9
|
||||
main = 2E3440
|
||||
sidebar = 2E3440
|
||||
player = 2E3440
|
||||
card = 2E3440
|
||||
shadow = 1d2128
|
||||
main-secondary = 434c5e
|
||||
button = 5E81AC
|
||||
button-secondary = D8DEE9
|
||||
button-active = 81A1C1
|
||||
button-disabled = 434C5E
|
||||
nav-active = 4c566a
|
||||
play-button = 5E81AC
|
||||
tab-active = 3b4252
|
||||
notification = 3b4252
|
||||
notification-error = 3b4252
|
||||
playback-bar = DEDEDE
|
||||
misc = FFFFFF
|
||||
|
||||
[Futura]
|
||||
; Cyan on dark background
|
||||
text = 34ad7e
|
||||
subtext = DEDEDE
|
||||
nav-active-text = 2E2837
|
||||
main = 2E2837
|
||||
sidebar = 2E2837
|
||||
player = 2E2837
|
||||
card = 2E2837
|
||||
shadow = 000000
|
||||
main-secondary = 51485b
|
||||
button = 34ad7e
|
||||
button-secondary = 34ad7e
|
||||
button-active = 00bf76
|
||||
button-disabled = 3f3c45
|
||||
nav-active = 34ad7e
|
||||
play-button = 34ad7e
|
||||
tab-active = 51485b
|
||||
notification = 51485b
|
||||
notification-error = 51485b
|
||||
playback-bar = 34ad7e
|
||||
misc = FFFFFF
|
||||
|
||||
[Elementary]
|
||||
; Purple and pink on dark background
|
||||
text = c59dff
|
||||
subtext = dedede
|
||||
nav-active-text = 1d1821
|
||||
main = 1f1f29
|
||||
sidebar = 1d1821
|
||||
player = 1d1821
|
||||
card = 2E2837
|
||||
shadow = 000000
|
||||
main-secondary = 1d1821
|
||||
button = d4516f
|
||||
button-secondary = c59dff
|
||||
button-active = f16d8c
|
||||
button-disabled = 2E303E
|
||||
nav-active = d4516f
|
||||
play-button = d4516f
|
||||
tab-active = 1d1821
|
||||
notification = 2E2837
|
||||
notification-error = 2E2837
|
||||
playback-bar = c59dff
|
||||
misc = FFFFFF
|
||||
|
||||
[BladeRunner]
|
||||
; Yellow, pink and blue on dark background
|
||||
text = dcd88c
|
||||
subtext = 9fbfb7
|
||||
nav-active-text = 1d1821
|
||||
main = 181b1e
|
||||
sidebar = 181b1e
|
||||
player = 181b1e
|
||||
card = 17191d
|
||||
shadow = 000000
|
||||
main-secondary = 0b0d0e
|
||||
button = f6867c
|
||||
button-secondary = dcd88c
|
||||
button-active = f6867c
|
||||
button-disabled = 242a2e
|
||||
nav-active = f6867c
|
||||
play-button = f6867c
|
||||
tab-active = 131417
|
||||
notification = 131417
|
||||
notification-error = 131417
|
||||
playback-bar = dcd88c
|
||||
misc = FFFFFF
|
||||
|
||||
[Dracula]
|
||||
; https://draculatheme.com/contribute
|
||||
text = 50fa7b
|
||||
subtext = bd93f9
|
||||
nav-active-text = 282a36
|
||||
main = 282a36
|
||||
sidebar = 282a36
|
||||
player = 282a36
|
||||
card = 282a36
|
||||
shadow = 000000
|
||||
main-secondary = 1c1e26
|
||||
button = 50fa7b
|
||||
button-secondary = ff79c6
|
||||
button-active = 00bf76
|
||||
button-disabled = 3f3c45
|
||||
nav-active = 50fa7b
|
||||
play-button = 50fa7b
|
||||
tab-active = 1c1e26
|
||||
notification = 1c1e26
|
||||
notification-error = 1c1e26
|
||||
playback-bar = 50fa7b
|
||||
misc = FFFFFF
|
||||
|
||||
[VantaBlack]
|
||||
; Gray on black background
|
||||
text = 666666
|
||||
subtext = 666666
|
||||
nav-active-text = 666666
|
||||
main = 000000
|
||||
sidebar = 000000
|
||||
player = 000000
|
||||
card = 000000
|
||||
shadow = 333333
|
||||
main-secondary = 000000
|
||||
button = 000000
|
||||
button-secondary = 000000
|
||||
button-active = 333333
|
||||
button-disabled = 000000
|
||||
nav-active = 333333
|
||||
play-button = 000000
|
||||
tab-active = 333333
|
||||
notification = 000000
|
||||
notification-error = 000000
|
||||
playback-bar = 000000
|
||||
misc = 000000
|
||||
|
||||
[RosePine]
|
||||
; https://rosepinetheme.com/palette
|
||||
text = e0def4
|
||||
subtext = 908caa
|
||||
nav-active-text = ebbcba
|
||||
main = 191724
|
||||
sidebar = 191724
|
||||
player = 191724
|
||||
card = 1f1d2e
|
||||
shadow = 191724
|
||||
main-secondary = 1f1d2e
|
||||
button = ebbcba
|
||||
button-secondary = 6e6a86
|
||||
button-active = ebbcba
|
||||
button-disabled = 26233a
|
||||
nav-active = 1f1d2e
|
||||
play-button = ebbcba
|
||||
tab-active = 1f1d2e
|
||||
notification = 26233a
|
||||
notification-error = eb6f92
|
||||
playback-bar = 6e6a86
|
||||
misc = FFFFFF
|
||||
|
||||
[Eldritch]
|
||||
; https://github.com/eldritch-theme/eldritch
|
||||
text = 37f499
|
||||
subtext = 04d1f9
|
||||
nav-active-text = 323449
|
||||
main = 212337
|
||||
sidebar = 212337
|
||||
player = 212337
|
||||
card = 212337
|
||||
shadow = 212337
|
||||
main-secondary = 323449
|
||||
button = 37f499
|
||||
button-secondary = 04d1f9
|
||||
button-active = 37f499
|
||||
button-disabled = 323449
|
||||
nav-active = 37f499
|
||||
play-button = 37f499
|
||||
tab-active = a48cf2
|
||||
notification = 212337
|
||||
notification-error = 212337
|
||||
playback-bar = 37f499
|
||||
misc = ebfafa
|
||||
|
||||
[Catppuccin]
|
||||
; https://catppuccin.com/palette
|
||||
text = cba6f7
|
||||
subtext = 7c7f93
|
||||
nav-active-text = fab387
|
||||
main = 11111b
|
||||
sidebar = 11111b
|
||||
player = 11111b
|
||||
card = 1e1e2e
|
||||
shadow = 11111b
|
||||
main-secondary = 1e1e2e
|
||||
button = a6e3a1
|
||||
button-secondary = 74c7ec
|
||||
button-active = f9e2af
|
||||
button-disabled = 181825
|
||||
nav-active = 11111b
|
||||
play-button = ca9ee6
|
||||
tab-active = 45475a
|
||||
notification = 11111b
|
||||
notification-error = 11111b
|
||||
playback-bar = dc8a78
|
||||
misc = f4dbd6
|
||||
|
||||
[AyuDark]
|
||||
; https://github.com/ayu-theme/ayu-colors
|
||||
text = bfbdb6
|
||||
subtext = 565b66
|
||||
nav-active-text = e6b450
|
||||
main = 0b0e14
|
||||
sidebar = 0b0e14
|
||||
player = 0b0e14
|
||||
card = 0b0e14
|
||||
shadow = 000000
|
||||
main-secondary = 0b0e14
|
||||
button = 475266
|
||||
button-secondary = 74c7ec
|
||||
button-active = e6b450
|
||||
button-disabled = 181825
|
||||
nav-active = 0d1017
|
||||
play-button = e6b450
|
||||
tab-active = 0b0e14
|
||||
notification = 0b0e14
|
||||
notification-error = 0b0e14
|
||||
playback-bar = e6b450
|
||||
misc = f4dbd6
|
||||
|
||||
|
||||
; Description
|
||||
|
||||
; text = main text, playlist names in main field, name of playlist selected in sidebar, headings
|
||||
; subtext = text in main buttons in sidebar, playlist names in sidebar, artist names, and mini infos
|
||||
; nav-active-text = text in main buttons in sidebar when active
|
||||
; main = main bg
|
||||
; main-secondary = bg color of selected song rows, bg color of artist/track cards
|
||||
; sidebar = sidebar bg
|
||||
; player = player bg
|
||||
; card = popup-card bg
|
||||
; shadow = all shadows
|
||||
; button = playlist buttons bg in sidebar, drop-down menus, now playing song, like button
|
||||
; button-secondary = download and options button
|
||||
; button-active = hover on song selected
|
||||
; button-disabled = seekbar bg, volume bar bg, scrollbar
|
||||
; nav-active = sidebar buttons bg
|
||||
; play-button = color of main play button in main field
|
||||
; tab-active = button bg in main field (playlists, podcasts, artists, albums)
|
||||
; notification = notification ('Added to liked songs' etc.)
|
||||
; playback-bar = seekbar fg, volume bar fg, main play/pause button
|
||||
; misc = miscellaneous
|
||||
725
etc/spicetify/Themes/Sleek/user.css
Normal file
725
etc/spicetify/Themes/Sleek/user.css
Normal file
@@ -0,0 +1,725 @@
|
||||
:root {
|
||||
--spice-main-elevated: var(--spice-main);
|
||||
--spice-highlight: var(--spice-main-secondary);
|
||||
--spice-highlight-elevated: var(--spice-main-secondary);
|
||||
}
|
||||
/*
|
||||
-------------
|
||||
TOPBAR
|
||||
-------------
|
||||
*/
|
||||
/* unset colors of history buttons */
|
||||
.main-topBar-historyButtons .main-topBar-button {
|
||||
background-color: unset;
|
||||
}
|
||||
|
||||
/* change appearance of icons on search tab input */
|
||||
.x-searchInput-searchInputSearchIcon svg {
|
||||
color: var(--spice-text);
|
||||
height: 17px;
|
||||
}
|
||||
|
||||
.x-searchInput-searchInputClearButton svg {
|
||||
color: var(--spice-text);
|
||||
height: 17px;
|
||||
}
|
||||
|
||||
/* topbar navigation items*/
|
||||
.main-topBar-topbarContentWrapper a {
|
||||
transition-duration: 0.3s;
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
/* smooth topbar background colour */
|
||||
.main-topBar-background {
|
||||
background-image: linear-gradient(var(--spice-main) 5%, 75%, transparent);
|
||||
background-color: unset !important;
|
||||
}
|
||||
.main-topBar-overlay {
|
||||
background-color: var(--spice-main);
|
||||
}
|
||||
|
||||
/* simplify profile menu */
|
||||
.main-userWidget-displayName,
|
||||
.main-userWidget-notificationIndicator {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.main-avatar-userIcon {
|
||||
color: white;
|
||||
}
|
||||
|
||||
.main-userWidget-box {
|
||||
color: var(--spice-subtext);
|
||||
background-color: transparent !important;
|
||||
}
|
||||
|
||||
.main-userWidget-chevron {
|
||||
display: none;
|
||||
}
|
||||
/*
|
||||
-------------
|
||||
NAVBAR
|
||||
-------------
|
||||
*/
|
||||
/* remove divider gradient */
|
||||
.main-rootlist-rootlistDividerGradient {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* change color of divider */
|
||||
.main-rootlist-rootlistDivider {
|
||||
background-color: var(--spice-sidebar);
|
||||
}
|
||||
|
||||
/* add gradient to navbar */
|
||||
.Root__nav-bar {
|
||||
background-image: linear-gradient(to bottom left, var(--spice-sidebar) 0%, var(--spice-player) 100%) !important;
|
||||
}
|
||||
|
||||
/* change color of navbar playing icon */
|
||||
[aria-label="Playing"] {
|
||||
color: var(--spice-text);
|
||||
}
|
||||
|
||||
.main-navBar-entryPoints [data-id="/add"] {
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
.main-createPlaylistButton-button {
|
||||
color: var(--spice-text);
|
||||
}
|
||||
|
||||
.main-createPlaylistButton-createPlaylistIcon {
|
||||
background-color: var(--spice-text);
|
||||
}
|
||||
|
||||
/* change color of navbar icons */
|
||||
.main-likedSongsButton-likedSongsIcon {
|
||||
background: var(--spice-text);
|
||||
color: var(--spice-sidebar);
|
||||
}
|
||||
|
||||
.main-yourEpisodesButton-yourEpisodesIcon {
|
||||
background: var(--spice-text);
|
||||
}
|
||||
|
||||
.main-yourEpisodesButton-yourEpisodesIcon path {
|
||||
fill: var(--spice-sidebar);
|
||||
}
|
||||
|
||||
/* remove opacity of navbar buttons */
|
||||
.main-collectionLinkButton-collectionLinkButton .main-collectionLinkButton-icon,
|
||||
.main-collectionLinkButton-collectionLinkButton .main-collectionLinkButton-collectionLinkText,
|
||||
.main-createPlaylistButton-button {
|
||||
opacity: unset;
|
||||
}
|
||||
|
||||
.main-collectionLinkButton-collectionLinkButton {
|
||||
color: var(--spice-subtext);
|
||||
}
|
||||
|
||||
/* change colors of active tab */
|
||||
.main-yourLibraryX-navLink {
|
||||
border-radius: 8px;
|
||||
margin: 6px 0;
|
||||
padding: 0 10px;
|
||||
}
|
||||
|
||||
.main-yourLibraryX-navItem {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.main-navBar-navBarLinkActive,
|
||||
.main-navBar-navBarLinkActive:focus,
|
||||
.main-navBar-navBarLinkActive:hover,
|
||||
.main-collectionLinkButton-selected,
|
||||
.main-collectionLinkButton-selected svg,
|
||||
.main-yourLibraryX-navLinkActive,
|
||||
.main-yourLibraryX-navLinkActive .home-active-icon,
|
||||
.main-yourLibraryX-navLinkActive .search-active-icon {
|
||||
color: var(--spice-nav-active-text) !important;
|
||||
background-color: var(--spice-nav-active);
|
||||
}
|
||||
|
||||
/* color of navbar icons */
|
||||
.collection-icon,
|
||||
.premiumSpotifyIcon,
|
||||
.search-icon {
|
||||
color: var(--spice-subtext);
|
||||
}
|
||||
|
||||
.main-navBar-navBarLink {
|
||||
transition: none;
|
||||
}
|
||||
|
||||
.main-navBar-navBarLink:not(.main-navBar-navBarLinkActive):hover svg {
|
||||
color: var(--spice-text);
|
||||
}
|
||||
|
||||
.main-yourLibraryX-entryPoints {
|
||||
background-color: var(--spice-sidebar);
|
||||
}
|
||||
|
||||
.main-yourLibraryX-isScrolled {
|
||||
-webkit-box-shadow: 0 20px 10px -10px var(--spice-sidebar);
|
||||
box-shadow: 0 20px 10px -10px var(--spice-sidebar);
|
||||
}
|
||||
|
||||
/* traclists and playlists loading placeholder */
|
||||
.main-trackList-placeholder,
|
||||
.Pns6F5g4OEwEpdmOWTLg,
|
||||
.eldivguzYznZgQoShJbe {
|
||||
background-color: var(--background-base);
|
||||
background-blend-mode: color-dodge;
|
||||
}
|
||||
|
||||
/*
|
||||
---------------
|
||||
PLAYBACK BAR
|
||||
---------------
|
||||
*/
|
||||
/* playback progress bar moves smoothly */
|
||||
.x-progressBar-fillColor {
|
||||
transition: transform 1s linear;
|
||||
}
|
||||
|
||||
.progress-bar__slider {
|
||||
transition: left 1s linear;
|
||||
}
|
||||
|
||||
.progress-bar--isDragging .x-progressBar-fillColor, .progress-bar--isDragging .progress-bar__slider {
|
||||
transition: none;
|
||||
}
|
||||
|
||||
/* round cover art when collapsed */
|
||||
.main-coverSlotCollapsed-container .cover-art-image {
|
||||
border-radius: 8px;
|
||||
transition-duration: 0.15s;
|
||||
}
|
||||
|
||||
.main-coverSlotExpandedCollapseButton-collapseButton {
|
||||
right: 10px !important;
|
||||
top: 10px !important;
|
||||
}
|
||||
|
||||
/* hide and move progress time location */
|
||||
.playback-bar__progress-time-elapsed {
|
||||
opacity: 0;
|
||||
position: absolute;
|
||||
bottom: 13px;
|
||||
left: 0;
|
||||
transition-duration: 0.3s;
|
||||
background-color: rgba(var(--spice-rgb-sidebar),.5);
|
||||
box-shadow: 0 0 20px 20px rgba(var(--spice-rgb-sidebar),.5);
|
||||
border-radius: 8px;
|
||||
z-index: -1;
|
||||
}
|
||||
|
||||
.main-playbackBarRemainingTime-container {
|
||||
opacity: 0;
|
||||
position: absolute;
|
||||
bottom: 13px;
|
||||
right: 0;
|
||||
transition-duration: 0.3s;
|
||||
background-color: rgba(var(--spice-rgb-sidebar),.5);
|
||||
box-shadow: 0 0 20px 20px rgba(var(--spice-rgb-sidebar),.5);
|
||||
border-radius: 8px;
|
||||
z-index: -1;
|
||||
}
|
||||
|
||||
/* show time on hover & better visibility */
|
||||
.playback-bar:hover .playback-bar__progress-time-elapsed,
|
||||
.playback-bar:hover .main-playbackBarRemainingTime-container {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
/* move progress bar */
|
||||
html:not(.fullscreen) .playback-bar {
|
||||
width: 100%;
|
||||
bottom: 83px;
|
||||
position: absolute;
|
||||
left: 0px;
|
||||
}
|
||||
|
||||
.main-nowPlayingBar-nowPlayingBar:nth-last-child(2) .playback-bar {
|
||||
bottom: 107px;
|
||||
}
|
||||
|
||||
.player-controls__buttons {
|
||||
transform: translateY(3px);
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
/* change progress bar color */
|
||||
.playback-bar .x-progressBar-fillColor {
|
||||
background-color: var(--spice-playback-bar);
|
||||
}
|
||||
|
||||
/* change appearance of play-button */
|
||||
.main-playPauseButton-button {
|
||||
background-color: inherit;
|
||||
color: var(--spice-play-button);
|
||||
transition-duration: 0.3s !important;
|
||||
}
|
||||
|
||||
.main-playPauseButton-button svg {
|
||||
height: 19px;
|
||||
width: 19px;
|
||||
}
|
||||
|
||||
html.fullscreen .main-playPauseButton-button svg {
|
||||
height: 32px;
|
||||
width: 32px;
|
||||
}
|
||||
|
||||
.main-playPauseButton-button:focus,
|
||||
.main-playPauseButton-button:hover {
|
||||
transform: none !important;
|
||||
}
|
||||
|
||||
/* change progress bar slider color */
|
||||
.progress-bar__slider {
|
||||
background-color: var(--spice-subtext);
|
||||
}
|
||||
|
||||
.x-progressBar-progressBarBg {
|
||||
background-color: var(--spice-button-disabled);
|
||||
border-radius: 0px;
|
||||
}
|
||||
|
||||
/* matching button colors */
|
||||
.main-nowPlayingBar-extraControls button {
|
||||
color: rgba(var(--spice-rgb-selected-row),.7);
|
||||
}
|
||||
/*
|
||||
---------------
|
||||
BUDDY FEED
|
||||
---------------
|
||||
*/
|
||||
/* change text color */
|
||||
.main-buddyFeed-activityMetadata .main-buddyFeed-artistAndTrackName a,
|
||||
.main-buddyFeed-activityMetadata .main-buddyFeed-username a,
|
||||
.main-buddyFeed-activityMetadata .main-buddyFeed-playbackContextLink,
|
||||
p.main-buddyFeed-timestamp.main-type-finale,
|
||||
.main-buddyFeed-findFriendsButton .main-buddyFeed-findFriendsIcon {
|
||||
color: var(--spice-subtext);
|
||||
}
|
||||
|
||||
.spotify__os--is-windows .main-buddyFeed-header {
|
||||
padding-left: 0;
|
||||
padding-right: 5px;
|
||||
}
|
||||
|
||||
/* add gradient */
|
||||
.main-buddyFeed-friendsFeedContainer {
|
||||
background-image: linear-gradient(to bottom left, var(--spice-sidebar) 0%, var(--spice-player) 100%) !important;
|
||||
}
|
||||
|
||||
/* hide buddyfeed scrollbar */
|
||||
.main-buddyFeed-scrollableArea > .os-scrollbar {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.main-avatar-avatar.BzunmwrVMyWGpopPJRt2:after {
|
||||
background: var(--spice-button);
|
||||
}
|
||||
/*
|
||||
---------------
|
||||
MAIN VIEW
|
||||
---------------
|
||||
*/
|
||||
/* hide banner ads */
|
||||
.main-leaderboardComponent-container {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.WiPggcPDzbwGxoxwLWFf.contentSpacing {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.desktoproutes-homepage-takeover-ad-hptoComponent-parentContainer,
|
||||
.desktoproutes-homepage-takeover-ad-hptoComponent-container {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/* hide upgrade button */
|
||||
.main-topBar-UpgradeButton {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* change input box appearance */
|
||||
input {
|
||||
background-color: var(--spice-main-secondary) !important;
|
||||
border-radius: 8px !important;
|
||||
padding: 6px 10px 6px 48px;
|
||||
color: var(--spice-text) !important;
|
||||
}
|
||||
::placeholder {
|
||||
color: var(--spice-subtext) !important;
|
||||
}
|
||||
|
||||
/* remove background color from main headers */
|
||||
.main-home-homeHeader,
|
||||
.x-441-entityHeader-overlay,
|
||||
.main-actionBarBackground-background,
|
||||
.main-entityHeader-overlay,
|
||||
.main-entityHeader-backgroundColor {
|
||||
background-color: unset !important;
|
||||
background-image: unset !important;
|
||||
}
|
||||
|
||||
/* change playlist image shadow */
|
||||
.main-entityHeader-shadow {
|
||||
box-shadow: 0 5px 10px rgba(var(--spice-rgb-shadow), 0.5) !important;
|
||||
}
|
||||
|
||||
/* change playlist image border-radius */
|
||||
.main-entityHeader-image {
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
/* change playing icon from gif to svg */
|
||||
.main-trackList-playingIcon {
|
||||
-webkit-mask-image: url("data:image/svg+xml,%3Csvg id='playing-icon' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 24'%3E%3Cdefs%3E%3Cstyle%3E %23playing-icon %7B fill: %2320BC54; %7D @keyframes play %7B 0%25 %7Btransform: scaleY(1);%7D 3.3%25 %7Btransform: scaleY(0.9583);%7D 6.6%25 %7Btransform: scaleY(0.9166);%7D 9.9%25 %7Btransform: scaleY(0.8333);%7D 13.3%25 %7Btransform: scaleY(0.7083);%7D 16.6%25 %7Btransform: scaleY(0.5416);%7D 19.9%25 %7Btransform: scaleY(0.4166);%7D 23.3%25 %7Btransform: scaleY(0.25);%7D 26.6%25 %7Btransform: scaleY(0.1666);%7D 29.9%25 %7Btransform: scaleY(0.125);%7D 33.3%25 %7Btransform: scaleY(0.125);%7D 36.6%25 %7Btransform: scaleY(0.1666);%7D 39.9%25 %7Btransform: scaleY(0.1666);%7D 43.3%25 %7Btransform: scaleY(0.2083);%7D 46.6%25 %7Btransform: scaleY(0.2916);%7D 49.9%25 %7Btransform: scaleY(0.375);%7D 53.3%25 %7Btransform: scaleY(0.5);%7D 56.6%25 %7Btransform: scaleY(0.5833);%7D 59.9%25 %7Btransform: scaleY(0.625);%7D 63.3%25 %7Btransform: scaleY(0.6666);%7D 66.6%25 %7Btransform: scaleY(0.6666);%7D 69.9%25 %7Btransform: scaleY(0.6666);%7D 73.3%25 %7Btransform: scaleY(0.6666);%7D 76.6%25 %7Btransform: scaleY(0.7083);%7D 79.9%25 %7Btransform: scaleY(0.75);%7D 83.3%25 %7Btransform: scaleY(0.8333);%7D 86.6%25 %7Btransform: scaleY(0.875);%7D 89.9%25 %7Btransform: scaleY(0.9166);%7D 93.3%25 %7Btransform: scaleY(0.9583);%7D 96.6%25 %7Btransform: scaleY(1);%7D %7D %23bar1 %7B transform-origin: bottom; animation: play 0.9s -0.51s infinite; %7D %23bar2 %7B transform-origin: bottom; animation: play 0.9s infinite; %7D %23bar3 %7B transform-origin: bottom; animation: play 0.9s -0.15s infinite; %7D %23bar4 %7B transform-origin: bottom; animation: play 0.9s -0.75s infinite; %7D %3C/style%3E%3C/defs%3E%3Ctitle%3Eplaying-icon%3C/title%3E%3Crect id='bar1' class='cls-1' width='4' height='24'/%3E%3Crect id='bar2' class='cls-1' x='6' width='4' height='24'/%3E%3Crect id='bar3' class='cls-1' x='12' width='4' height='24'/%3E%3Crect id='bar4' class='cls-1' x='18' width='4' height='24'/%3E%3C/svg%3E");
|
||||
background: var(--spice-button);
|
||||
content-visibility: hidden;
|
||||
-webkit-mask-repeat: no-repeat;
|
||||
}
|
||||
|
||||
/* recolor animated liked or heart button on click */
|
||||
#_R_G *:not([fill="none"]) {
|
||||
fill: var(--spice-button-active) !important;
|
||||
}
|
||||
#_R_G *:not([stroke="none"]) {
|
||||
stroke: var(--spice-button-active);
|
||||
}
|
||||
|
||||
/* change appearance of 'playlist' tag */
|
||||
.main-entityHeader-subtitle.main-entityHeader-small.main-entityHeader-uppercase.main-entityHeader-bold {
|
||||
border: 2px var(--spice-text) solid;
|
||||
border-radius: 8px;
|
||||
width: fit-content;
|
||||
display: inline;
|
||||
text-align: center;
|
||||
padding: 3px 7px;
|
||||
}
|
||||
|
||||
/* change appearance of 'follow' button */
|
||||
.artist-artistOverview-overview .main-actionBar-ActionBarRow > button:first-of-type {
|
||||
border-radius: 8px;
|
||||
border: 2px solid var(--spice-button);
|
||||
}
|
||||
|
||||
/* change scrollbar appearance */
|
||||
.os-theme-spotify.os-host-transition > .os-scrollbar-vertical > .os-scrollbar-track > .os-scrollbar-handle {
|
||||
border-radius: 4px;
|
||||
width: 6px;
|
||||
background-color: var(--spice-button-disabled);
|
||||
}
|
||||
|
||||
.os-theme-spotify.os-host-transition > .os-scrollbar-vertical > .os-scrollbar-track {
|
||||
width: 6px;
|
||||
}
|
||||
|
||||
/* add smooth shadow under headers */
|
||||
.main-trackList-trackListHeaderStuck.main-trackList-trackListHeader,
|
||||
.artist-artistDiscography-topBar.artist-artistDiscography-topBarScrolled {
|
||||
background-color: var(--spice-main);
|
||||
border-bottom: none;
|
||||
-webkit-box-shadow: 0 0 50px 50px var(--spice-main);
|
||||
box-shadow: 0 0 50px 50px var(--spice-main);
|
||||
transition: box-shadow 0.2s;
|
||||
}
|
||||
.search-searchCategory-SearchCategory {
|
||||
-webkit-box-shadow: 0 0 20px 20px var(--spice-main);
|
||||
box-shadow: 0 0 20px 20px var(--spice-main);
|
||||
z-index: 3;
|
||||
}
|
||||
|
||||
/* play button */
|
||||
.main-home-home .main-playButton-PlayButton > button > span {
|
||||
inline-size: 42px;
|
||||
block-size: 42px;
|
||||
min-block-size: auto;
|
||||
}
|
||||
|
||||
.main-home-home .main-playButton-PlayButton svg {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
}
|
||||
|
||||
.main-home-home .main-playButton-PlayButton > button > span > span {
|
||||
position: initial;
|
||||
height: 24px;
|
||||
}
|
||||
|
||||
.main-actionBar-ActionBar .main-playButton-PlayButton svg {
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
}
|
||||
|
||||
.main-actionBar-ActionBar .main-playButton-PlayButton > button > span > span {
|
||||
position: initial;
|
||||
height: 30px;
|
||||
}
|
||||
|
||||
/* change text color on category cards in 'search' tab */
|
||||
a.x-categoryCard-CategoryCard,
|
||||
a.x-heroCategoryCard-HeroCategoryCard {
|
||||
color: var(--spice-subtext);
|
||||
}
|
||||
|
||||
/* recolor sub-buttons */
|
||||
.main-moreButton-button {
|
||||
color: var(--spice-button-secondary);
|
||||
}
|
||||
|
||||
.x-downloadButton-button,
|
||||
.x-contributorButton-button svg,
|
||||
.main-actionBar-ActionBarRow .main-addButton-button {
|
||||
color: var(--spice-button-secondary) !important;
|
||||
}
|
||||
|
||||
.main-entityHeader-metaDataText,
|
||||
.x-filterBox-searchIconContainer {
|
||||
color: var(--spice-button-secondary);
|
||||
}
|
||||
|
||||
.main-entityHeader-metaDataText span {
|
||||
color: var(--spice-button-secondary);
|
||||
}
|
||||
|
||||
.x-sortBox-sortDropdown {
|
||||
background-color: var(--spice-main-secondary) !important;
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
[dir="ltr"] .main-actionBar-ActionBarRow > :first-child {
|
||||
margin-right: 40px;
|
||||
}
|
||||
|
||||
.x-filterBox-expandButton:focus,
|
||||
.x-filterBox-expandButton:hover {
|
||||
background-color: var(--spice-main-secondary) !important;
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
.x-sortBox-sortDropdown,
|
||||
.x-filterBox-expandButton {
|
||||
color: var(--spice-text) !important;
|
||||
}
|
||||
|
||||
/* change background color of 'home' tab shortcut items */
|
||||
.view-homeShortcutsGrid-shortcut {
|
||||
background-color: rgba(var(--spice-rgb-main-secondary), 0.5) !important;
|
||||
}
|
||||
|
||||
.view-homeShortcutsGrid-shortcut:focus-within,
|
||||
.view-homeShortcutsGrid-shortcut:hover,
|
||||
.view-homeShortcutsGrid-shortcut[data-context-menu-open="true"] {
|
||||
background-color: var(--spice-main-secondary) !important;
|
||||
}
|
||||
|
||||
.main-card-card {
|
||||
background-color: rgba(var(--spice-rgb-main-secondary), 0.5) !important;
|
||||
}
|
||||
|
||||
.main-card-card:focus-within,
|
||||
.main-card-card:hover {
|
||||
background-color: var(--spice-main-secondary) !important;
|
||||
}
|
||||
|
||||
/* card background color for editing playlist details */
|
||||
.main-playlistEditDetailsModal-descriptionTextarea {
|
||||
background: var(--spice-main-secondary);
|
||||
}
|
||||
|
||||
.main-playlistEditDetailsModal-textElementLabel {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* change color of search icon for new playlists */
|
||||
.playlist-inlineSearchBox-searchIcon {
|
||||
fill: var(--spice-text) !important;
|
||||
}
|
||||
|
||||
/* change appearance of verified artist badge */
|
||||
.main-entityHeader-headerText > span:first-child {
|
||||
border: 0.25em solid var(--spice-text);
|
||||
border-radius: 0.5em;
|
||||
width: fit-content;
|
||||
gap: 0px;
|
||||
text-align: center;
|
||||
padding: 0.25em 0.75em;
|
||||
--font-family: CircularSp,CircularSp-Arab,CircularSp-Hebr,CircularSp-Cyrl,CircularSp-Grek,CircularSp-Deva,var(--fallback-fonts,sans-serif),sans-serif;
|
||||
}
|
||||
|
||||
.main-entityHeader-headerText > span:first-child > span {
|
||||
font-weight: bold;
|
||||
text-transform: uppercase;
|
||||
font-size: 0.75rem;
|
||||
}
|
||||
|
||||
.main-entityHeader-headerText > span:first-child svg,
|
||||
.main-entityHeader-headerText > span:first-child div {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* change text color of hero card on 'library' tab */
|
||||
.main-heroCard-card,
|
||||
.collection-collectionEntityHeroCard-descriptionContainer {
|
||||
color: var(--spice-subtext) !important;
|
||||
}
|
||||
/*
|
||||
--------------
|
||||
CONTEXT MENU
|
||||
--------------
|
||||
*/
|
||||
/* change hover color when selecting in context menu */
|
||||
.main-contextMenu-menuItemButton:not(.main-contextMenu-disabled):focus,
|
||||
.main-contextMenu-menuItemButton:not(.main-contextMenu-disabled):hover {
|
||||
background-color: rgba(0, 0, 0, 0.2) !important;
|
||||
}
|
||||
|
||||
.main-contextMenu-menuItemButton[aria-expanded="true"] {
|
||||
background-color: rgba(0, 0, 0, 0.2) !important;
|
||||
}
|
||||
|
||||
/* disabled options */
|
||||
.main-contextMenu-disabled > span {
|
||||
color: rgba(var(--spice-button-disabled), 0.5);
|
||||
}
|
||||
|
||||
/* dividers between option subgroups */
|
||||
.main-contextMenu-menuItem:not(:first-child) > .main-contextMenu-dividerBefore:before {
|
||||
border-bottom: 1px solid var(--spice-button-disabled);
|
||||
}
|
||||
/*
|
||||
-------------
|
||||
TRACKS GRID
|
||||
-------------
|
||||
*/
|
||||
/* change color of track titles */
|
||||
.main-trackList-rowTitle {
|
||||
color: var(--spice-subtext);
|
||||
}
|
||||
/* change color of 'explicit' badge */
|
||||
.main-tag-container {
|
||||
background-color: var(--spice-subtext);
|
||||
}
|
||||
|
||||
/* change background color of selected row */
|
||||
.main-trackList-trackListRow.main-trackList-selected,
|
||||
.main-trackList-trackListRow.main-trackList-selected:hover {
|
||||
background-color: var(--spice-main-secondary) !important;
|
||||
}
|
||||
|
||||
.main-trackList-trackListRow:focus-within,
|
||||
.main-trackList-trackListRow:hover {
|
||||
background-color: rgba(var(--spice-rgb-main-secondary), 0.5);
|
||||
}
|
||||
|
||||
/* When song is currently playing */
|
||||
.main-trackList-active .main-type-mesto,
|
||||
.main-trackList-active .main-trackList-rowSubTitle,
|
||||
.main-trackList-active .main-trackList-rowSubTitle a,
|
||||
.main-trackList-active .main-trackList-rowMarker,
|
||||
.main-trackList-active .main-trackList-rowSectionVariable,
|
||||
.main-trackList-active .main-trackList-rowSectionVariable a,
|
||||
.main-trackList-active .main-trackList-rowSectionVariable span,
|
||||
.main-trackList-active .main-trackList-rowMarker,
|
||||
.main-trackList-active .main-trackList-rowDuration {
|
||||
color: var(--spice-button) !important;
|
||||
}
|
||||
|
||||
.main-trackList-active .main-tag-container {
|
||||
background-color: var(--spice-button);
|
||||
}
|
||||
|
||||
/* When song is hovered/selected */
|
||||
.main-trackList-trackListRow.main-trackList-selected:not(.main-trackList-active) .main-tag-container,
|
||||
.main-trackList-trackListRow:hover:not(.main-trackList-disabled):not(.main-trackList-active) .main-tag-container {
|
||||
background-color: var(--spice-text);
|
||||
}
|
||||
|
||||
.main-trackList-trackListRow:hover:not(.main-trackList-disabled) .main-addButton-button,
|
||||
.main-trackList-trackListRow:focus-within:not(.main-trackList-disabled) .main-addButton-button {
|
||||
color: var(--spice-text);
|
||||
}
|
||||
|
||||
.main-trackList-trackListRow.main-trackList-selected:not(.main-trackList-active) .main-trackList-rowTitle,
|
||||
.main-trackList-trackListRow:hover:not(.main-trackList-disabled):not(.main-trackList-active) .main-trackList-rowTitle {
|
||||
color: var(--spice-text);
|
||||
}
|
||||
|
||||
.main-trackList-trackListRow.main-trackList-selected:not(.main-trackList-active) .main-trackList-rowSubTitle,
|
||||
.main-trackList-trackListRow:hover:not(.main-trackList-disabled):not(.main-trackList-active) .main-trackList-rowSubTitle {
|
||||
color: var(--spice-text) !important;
|
||||
}
|
||||
|
||||
/* color of selected row infos */
|
||||
.main-trackList-rowSectionVariable span,
|
||||
.main-trackList-rowSectionEnd div {
|
||||
color: inherit;
|
||||
}
|
||||
/*
|
||||
---------------
|
||||
NEW HOME LAYOUT
|
||||
---------------
|
||||
*/
|
||||
.main-topBar-navLinks a {
|
||||
border-radius: 8px;
|
||||
color: var(--spice-text);
|
||||
background-color: var(--spice-main-secondary);
|
||||
}
|
||||
|
||||
.main-topBar-navLinks a:hover {
|
||||
color: var(--spice-button-active);
|
||||
background-color: var(--spice-main-secondary);
|
||||
}
|
||||
|
||||
.main-topBar-navLinks a.main-topBar-buttonActive {
|
||||
background-color: var(--spice-button-active);
|
||||
color: var(--spice-main);
|
||||
}
|
||||
.nav-alt .x-searchInput-searchInputInput:focus {
|
||||
box-shadow: none;
|
||||
}
|
||||
/*
|
||||
-------
|
||||
TOGGLE
|
||||
-------
|
||||
*/
|
||||
.x-toggle-indicatorWrapper {
|
||||
background-color: transparent;
|
||||
height: 20px !important;
|
||||
width: 40px !important;
|
||||
box-shadow: 0 0 0 1px var(--spice-subtext);
|
||||
}
|
||||
|
||||
input:hover:not([disabled], :active) ~ .x-toggle-indicatorWrapper {
|
||||
background-color: var(--spice-main-secondary);
|
||||
}
|
||||
|
||||
input:checked ~ .x-toggle-indicatorWrapper {
|
||||
background-color: var(--spice-button);
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.x-toggle-indicator {
|
||||
background-color: var(--spice-subtext);
|
||||
height: 12px;
|
||||
width: 12px;
|
||||
top: 4px;
|
||||
left: 3px;
|
||||
}
|
||||
|
||||
input:not([disabled]) ~ .x-toggle-indicatorWrapper:hover .x-toggle-indicator {
|
||||
transform: scale(1.2);
|
||||
}
|
||||
|
||||
input:checked ~ .x-toggle-indicatorWrapper .x-toggle-indicator {
|
||||
background-color: var(--spice-main);
|
||||
right: 4px;
|
||||
}
|
||||
270
etc/spicetify/Themes/text/color.ini
Normal file
270
etc/spicetify/Themes/text/color.ini
Normal file
@@ -0,0 +1,270 @@
|
||||
; note: most of the accent colors are set to the green of that color scheme, feel free to change it to your preferred color
|
||||
|
||||
[Spotify]
|
||||
accent = 1db954
|
||||
accent-active = 1ed760
|
||||
accent-inactive = 121212
|
||||
banner = 1ed760
|
||||
border-active = 1ed760
|
||||
border-inactive = 535353
|
||||
header = 535353
|
||||
highlight = 1a1a1a
|
||||
main = 121212
|
||||
notification = 4687d6
|
||||
notification-error = e22134
|
||||
subtext = b3b3b3
|
||||
text = FFFFFF
|
||||
|
||||
[Spicetify]
|
||||
accent = 00e089
|
||||
accent-active = 00e089
|
||||
accent-inactive = 2E2837
|
||||
banner = 00e089
|
||||
border-active = 00e089
|
||||
border-inactive = 483b5b
|
||||
header = 483b5b
|
||||
highlight = 483b5b
|
||||
main = 2E2837
|
||||
notification = 00e089
|
||||
notification-error = e22134
|
||||
subtext = DEDEDE
|
||||
text = FFFFFF
|
||||
|
||||
[CatppuccinMocha]
|
||||
;https://github.com/catppuccin/catppuccin
|
||||
accent = a6e3a1
|
||||
accent-active = a6e3a1
|
||||
accent-inactive = 1e1e2e
|
||||
banner = a6e3a1
|
||||
border-active = a6e3a1
|
||||
border-inactive = 313244
|
||||
header = 585b70
|
||||
highlight = 585b70
|
||||
main = 1e1e2e
|
||||
notification = 89b4fa
|
||||
notification-error = f38ba8
|
||||
subtext = a6adc8
|
||||
text = cdd6f4
|
||||
|
||||
[CatppuccinMacchiato]
|
||||
;https://github.com/catppuccin/catppuccin
|
||||
accent = a6da95
|
||||
accent-active = a6da95
|
||||
accent-inactive = 24273a
|
||||
banner = a6da95
|
||||
border-active = a6da95
|
||||
border-inactive = 363a4f
|
||||
header = 5b6078
|
||||
highlight = 5b6078
|
||||
main = 24273a
|
||||
notification = 8aadf4
|
||||
notification-error = ed8796
|
||||
subtext = a5adcb
|
||||
text = cad3f5
|
||||
|
||||
[CatppuccinLatte]
|
||||
;https://github.com/catppuccin/catppuccin
|
||||
accent = a6d189
|
||||
accent-active = a6d189
|
||||
accent-inactive = 303446
|
||||
banner = a6d189
|
||||
border-active = a6d189
|
||||
border-inactive = 414559
|
||||
header = 626880
|
||||
highlight = 626880
|
||||
main = 303446
|
||||
notification = 8caaee
|
||||
notification-error = e78284
|
||||
subtext = a5adce
|
||||
text = c6d0f5
|
||||
|
||||
[Dracula]
|
||||
;https://github.com/dracula/dracula-theme
|
||||
accent = 50fa7b
|
||||
accent-active = 50fa7b
|
||||
accent-inactive = 282a36
|
||||
banner = 50fa7b
|
||||
border-active = 50fa7b
|
||||
border-inactive = 44475a
|
||||
header = 44475a
|
||||
highlight = 44475a
|
||||
main = 282a36
|
||||
notification = 8be9fd
|
||||
notification-error = ff5555
|
||||
subtext = 6272a4
|
||||
text = f8f8f2
|
||||
|
||||
[Gruvbox]
|
||||
;https://github.com/morhetz/gruvbox/
|
||||
accent = 98971a
|
||||
accent-active = b8bb26
|
||||
accent-inactive = 282828
|
||||
banner = b8bb26
|
||||
border-active = b8bb26
|
||||
border-inactive = 3c3836
|
||||
header = 665c54
|
||||
highlight = 7c6f64
|
||||
main = 282828
|
||||
notification = 458588
|
||||
notification-error = cc241d
|
||||
subtext = bdae93
|
||||
text = fbf1c7
|
||||
|
||||
[Kanagawa]
|
||||
;https://github.com/rebelot/kanagawa.nvim
|
||||
accent = 76946A
|
||||
accent-active = 98BB6C
|
||||
accent-inactive = 1F1F28
|
||||
banner = 98BB6C
|
||||
border-active = 98BB6C
|
||||
border-inactive = 2A2A37
|
||||
header = 54546D
|
||||
highlight = 363646
|
||||
main = 1F1F28
|
||||
notification = 7E9CD8
|
||||
notification-error = E82424
|
||||
subtext = C8C093
|
||||
text = DCD7BA
|
||||
|
||||
[Nord]
|
||||
;https://github.com/nordtheme/nord
|
||||
accent = 88c0d0
|
||||
accent-active = 8fbcbb
|
||||
accent-inactive = 2e3440
|
||||
banner = 8fbcbb
|
||||
border-active = 8fbcbb
|
||||
border-inactive = 3b4252
|
||||
header = 4c566a
|
||||
highlight = 4c566a
|
||||
main = 2e3440
|
||||
notification = 5e81ac
|
||||
notification-error = bf616a
|
||||
subtext = d8dee9
|
||||
text = eceff4
|
||||
|
||||
[Rigel]
|
||||
;https://github.com/Rigellute/rigel/
|
||||
accent = 00cccc
|
||||
accent-active = 00ffff
|
||||
accent-inactive = 00384d
|
||||
banner = 00ffff
|
||||
border-active = 00cccc
|
||||
border-inactive = 517f8d
|
||||
header = 517f8d
|
||||
highlight = 00384d
|
||||
main = 002635
|
||||
notification = 7eb2dd
|
||||
notification-error = ff5a67
|
||||
subtext = 77929e
|
||||
text = b7cff9
|
||||
|
||||
[RosePine]
|
||||
;https://github.com/rose-pine/rose-pine-theme
|
||||
accent = ebbcba
|
||||
accent-active = ebbcba
|
||||
accent-inactive = 1f1d2e
|
||||
banner = ebbcba
|
||||
border-active = ebbcba
|
||||
border-inactive = 26233a
|
||||
header = 6e6a86
|
||||
highlight = 403d52
|
||||
main = 191724
|
||||
notification = 31748f
|
||||
notification-error = eb6f92
|
||||
subtext = 908caa
|
||||
text = e0def4
|
||||
|
||||
[RosePineMoon]
|
||||
;https://github.com/rose-pine/rose-pine-theme
|
||||
accent = ea9a97
|
||||
accent-active = ea9a97
|
||||
accent-inactive = 2a273f
|
||||
banner = ea9a97
|
||||
border-active = ea9a97
|
||||
border-inactive = 393552
|
||||
header = 6e6a86
|
||||
highlight = 44415a
|
||||
main = 232136
|
||||
notification = 3e8fb0
|
||||
notification-error = eb6f92
|
||||
subtext = 908caa
|
||||
text = e0def4
|
||||
|
||||
[RosePineDawn]
|
||||
;https://github.com/rose-pine/rose-pine-theme
|
||||
accent = d7827e
|
||||
accent-active = d7827e
|
||||
accent-inactive = fffaf3
|
||||
banner = d7827e
|
||||
border-active = d7827e
|
||||
border-inactive = f2e9e1
|
||||
header = 9893a5
|
||||
highlight = dfdad9
|
||||
main = faf4ed
|
||||
notification = 286983
|
||||
notification-error = b4637a
|
||||
subtext = 797593
|
||||
text = 575279
|
||||
|
||||
[Solarized]
|
||||
;https://github.com/altercation/solarized
|
||||
accent = 859900
|
||||
accent-active = 859900
|
||||
accent-inactive = 073642
|
||||
banner = 859900
|
||||
border-active = 859900
|
||||
border-inactive = 073642
|
||||
header = 586e75
|
||||
highlight = 073642
|
||||
main = 002b36
|
||||
notification = 268bd2
|
||||
notification-error = dc322f
|
||||
subtext = 586e75
|
||||
text = 839496
|
||||
|
||||
[TokyoNight]
|
||||
;https://github.com/enkia/tokyo-night-vscode-theme
|
||||
accent = 9ece6a
|
||||
accent-active = 9ece6a
|
||||
accent-inactive = 1a1b26
|
||||
banner = 9ece6a
|
||||
border-active = 9ece6a
|
||||
border-inactive = 24283b
|
||||
header = 565f89
|
||||
highlight = 24283b
|
||||
main = 1a1b26
|
||||
notification = 7aa2f7
|
||||
notification-error = f7768e
|
||||
subtext = 565f89
|
||||
text = a9b1d6
|
||||
|
||||
[TokyoNightStorm]
|
||||
;https://github.com/enkia/tokyo-night-vscode-theme
|
||||
accent = 9ece6a
|
||||
accent-active = 9ece6a
|
||||
accent-inactive = 24283b
|
||||
banner = 9ece6a
|
||||
border-active = 9ece6a
|
||||
border-inactive = 414868
|
||||
header = 9aa5ce
|
||||
highlight = 414868
|
||||
main = 24283b
|
||||
notification = 7aa2f7
|
||||
notification-error = f7768e
|
||||
subtext = 9aa5ce
|
||||
text = c0caf5
|
||||
|
||||
[ForestGreen]
|
||||
accent = 939393
|
||||
accent-active = 939393
|
||||
accent-inactive = 3e3e29
|
||||
banner = 939393
|
||||
border-active = 939393
|
||||
border-inactive = 515235
|
||||
header = 656641
|
||||
highlight = 656641
|
||||
main = 3e3e29
|
||||
notification = 8c8e59
|
||||
notification-error = 787a4d
|
||||
subtext = 838383
|
||||
text = a3a3a3
|
||||
905
etc/spicetify/Themes/text/user.css
Normal file
905
etc/spicetify/Themes/text/user.css
Normal file
@@ -0,0 +1,905 @@
|
||||
/* ================================
|
||||
ROOT
|
||||
================================ */
|
||||
|
||||
/* import */
|
||||
/* find more in https://fonts.google.com/?category=Monospace&sort=popularity */
|
||||
@import url("https://fonts.googleapis.com/css2?family=Anonymous+Pro:ital,wght@0,400;0,700;1,400;1,700&family=Azeret+Mono:ital,wght@0,100..900;1,100..900&family=B612+Mono:ital,wght@0,400;0,700;1,400;1,700&family=Courier+Prime:ital,wght@0,400;0,700;1,400;1,700&family=Cousine:ital,wght@0,400;0,700;1,400;1,700&family=Cutive+Mono&family=DM+Mono:ital,wght@0,300;0,400;0,500;1,300;1,400;1,500&family=Fira+Code:wght@300..700&family=Fira+Mono:wght@400;500;700&family=IBM+Plex+Mono:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;1,100;1,200;1,300;1,400;1,500;1,600;1,700&family=JetBrains+Mono:ital,wght@0,100..800;1,100..800&family=M+PLUS+1+Code:wght@100..700&family=Nova+Mono&family=Overpass+Mono:wght@300..700&family=Oxygen+Mono&family=PT+Mono&family=Roboto+Mono:ital,wght@0,100..700;1,100..700&family=Share+Tech+Mono&family=Sometype+Mono:ital,wght@0,400..700;1,400..700&family=Sono:wght@200..800&family=Source+Code+Pro:ital,wght@0,200..900;1,200..900&family=Space+Mono:ital,wght@0,400;0,700;1,400;1,700&family=Syne+Mono&family=Ubuntu+Mono:ital,wght@0,400;0,700;1,400;1,700&family=VT323&family=Xanh+Mono:ital@0;1&display=swap");
|
||||
@import url("https://fonts.cdnfonts.com/css/asciid");
|
||||
|
||||
/* user settings */
|
||||
:root {
|
||||
--font-family: "JetBrains Mono", monospace;
|
||||
/*
|
||||
--font-family: 'Anonymous Pro', monospace;
|
||||
--font-family: 'Azeret Mono', monospace;
|
||||
--font-family: 'B612 Mono', monospace;
|
||||
--font-family: 'Courier Prime', monospace;
|
||||
--font-family: 'Cousine', monospace;
|
||||
--font-family: 'Cutive Mono', monospace;
|
||||
--font-family: 'DM Mono', monospace;
|
||||
--font-family: 'Fira Code', monospace;
|
||||
--font-family: 'Fira Mono', monospace;
|
||||
--font-family: 'IBM Plex Mono', monospace;
|
||||
--font-family: 'JetBrains Mono', monospace;
|
||||
--font-family: 'M PLUS 1 Code', monospace;
|
||||
--font-family: 'Major Mono Display', monospace;
|
||||
--font-family: 'Monofett', monospace;
|
||||
--font-family: 'Nova Mono', monospace;
|
||||
--font-family: 'Overpass Mono', monospace;
|
||||
--font-family: 'Oxygen Mono', monospace;
|
||||
--font-family: 'PT Mono', monospace;
|
||||
--font-family: 'Roboto Mono', monospace;
|
||||
--font-family: 'Share Tech Mono', monospace;
|
||||
--font-family: 'Sometype Mono', monospace;
|
||||
--font-family: 'Sono', monospace;
|
||||
--font-family: 'Source Code Pro', monospace;
|
||||
--font-family: 'Space Mono', monospace;
|
||||
--font-family: 'Syne Mono', monospace;
|
||||
--font-family: 'Ubuntu Mono', monospace;
|
||||
--font-family: 'VT323', monospace;
|
||||
--font-family: 'Xanh Mono', monospace;
|
||||
*/
|
||||
--font-size: 14px;
|
||||
--font-weight: 400; /* 200 : 900 */
|
||||
--line-height: 1.2;
|
||||
|
||||
--font-size-lyrics: 14px; /* 1.5em (default) */
|
||||
|
||||
--font-family-header: "asciid";
|
||||
--font-size-multiplier-header: 4;
|
||||
|
||||
--display-card-image: block; /* none | block */
|
||||
--display-coverart-image: none; /* none | block */
|
||||
--display-header-image: none; /* none | block */
|
||||
--display-sidebar-image: block; /* none | block */
|
||||
--display-tracklist-image: none; /* none | block */
|
||||
--display-spicetify-banner-ascii: block; /* none | block */
|
||||
--display-music-banner-ascii: none; /* none | block */
|
||||
|
||||
--border-radius: 0px;
|
||||
--border-width: 1px;
|
||||
--border-style: solid; /* dotted | dashed | solid | double | groove | ridge | inset | outset */
|
||||
--border-transition: 0.2s ease; /* 'none' to disable */
|
||||
}
|
||||
|
||||
/* font */
|
||||
*:not([style*="lyric" i] *, [class*="lyric" i], .main-entityHeader-title) {
|
||||
font-family: var(--font-family) !important;
|
||||
font-size: var(--font-size) !important;
|
||||
font-weight: var(--font-weight) !important;
|
||||
line-height: var(--line-height) !important;
|
||||
}
|
||||
.lyrics-lyrics-container *,
|
||||
.main-nowPlayingView-lyricsContent * {
|
||||
font-family: var(--font-family);
|
||||
font-size: var(--font-size-lyrics);
|
||||
font-weight: var(--font-weight);
|
||||
line-height: var(--line-height);
|
||||
}
|
||||
.main-entityHeader-title h1 {
|
||||
font-family: var(--font-family-header) !important;
|
||||
font-size: calc(
|
||||
var(--font-size) * var(--font-size-multiplier-header)
|
||||
) !important;
|
||||
display: -webkit-box;
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-line-clamp: 2;
|
||||
line-clamp: 2;
|
||||
}
|
||||
|
||||
/* images */
|
||||
.main-card-imageContainer img,
|
||||
.view-homeShortcutsGrid-imageContainer img {
|
||||
display: var(--display-card-image) !important;
|
||||
}
|
||||
.main-coverSlotCollapsed-container {
|
||||
display: var(--display-coverart-image);
|
||||
}
|
||||
.main-entityHeader-imageContainer,
|
||||
.under-main-view,
|
||||
.main-entityHeader-creatorWrapper .main-avatar-avatar,
|
||||
.main-entityHeader-imageContainer,
|
||||
.playlist-playlist-playlistImageContainer,
|
||||
.profile-userOverview-imageContainer {
|
||||
display: var(--display-header-image);
|
||||
}
|
||||
.x-entityImage-imageContainer img,
|
||||
.main-avatar-image {
|
||||
display: var(--display-sidebar-image);
|
||||
}
|
||||
.main-trackList-rowImage {
|
||||
display: var(--display-tracklist-image);
|
||||
}
|
||||
|
||||
/* fix */
|
||||
:root {
|
||||
--content-max-width: 100% !important;
|
||||
}
|
||||
.Root__globalNav {
|
||||
padding: 8px 16px !important;
|
||||
height: unset;
|
||||
}
|
||||
.spotify__container--is-desktop.spotify__os--is-windows .Root__globalNav,
|
||||
.spotify__container--is-desktop.spotify__os--is-macos .Root__globalNav {
|
||||
margin: 40px 0 0;
|
||||
}
|
||||
.spotify__container--is-desktop.spotify__os--is-linux .Root__globalNav {
|
||||
margin: 8px 0 0;
|
||||
}
|
||||
.Root__top-container {
|
||||
--panel-gap: 16px !important;
|
||||
}
|
||||
.Root__top-bar {
|
||||
border: var(--border-width) solid transparent;
|
||||
}
|
||||
.Root__nav-bar,
|
||||
.Root__now-playing-bar {
|
||||
overflow: visible;
|
||||
}
|
||||
.main-view-container {
|
||||
overflow: hidden;
|
||||
}
|
||||
section:has(> .main-entityHeader-container),
|
||||
div:has(> .main-entityHeader-container) {
|
||||
margin-top: 0;
|
||||
}
|
||||
.main-entityHeader-container {
|
||||
height: unset !important;
|
||||
min-height: unset !important;
|
||||
}
|
||||
.main-entityHeader-imageContainerNew {
|
||||
height: 128px;
|
||||
width: 128px;
|
||||
}
|
||||
.main-topBar-background {
|
||||
background-color: var(--spice-main);
|
||||
}
|
||||
.main-topBar-overlay,
|
||||
.main-entityHeader-container > div,
|
||||
.main-entityHeader-container + div[style*="background-color"],
|
||||
.main-entityHeader-container + div > div[style*="background-color"],
|
||||
.main-home-homeHeader,
|
||||
.main-home-filterChipsSection,
|
||||
.main-home-filterChipsSection::after {
|
||||
background-color: transparent !important;
|
||||
background-image: none !important;
|
||||
background: transparent !important;
|
||||
}
|
||||
.LayoutResizer__resize-bar {
|
||||
cursor: w-resize;
|
||||
}
|
||||
.LayoutResizer__inline-end:after,
|
||||
.LayoutResizer__inline-start:after {
|
||||
background-color: var(--spice-border-inactive);
|
||||
}
|
||||
.LayoutResizer__resize-bar--resizing.LayoutResizer__inline-start:after,
|
||||
.LayoutResizer__resize-bar--resizing.LayoutResizer__inline-end:after {
|
||||
background-color: var(--spice-border-active);
|
||||
}
|
||||
|
||||
/* fullscreen */
|
||||
.spotifyinternal-artistnpv .npv-what-is-playing .npv-cover-art,
|
||||
.spotifyinternal-artistnpv .npv-what-is-playing .npv-track {
|
||||
bottom: 18em;
|
||||
}
|
||||
.spotifyinternal-artistnpv .npv-what-is-playing .npv-cover-art {
|
||||
-webkit-transform: scale(0.34375);
|
||||
transform: scale(0.34375);
|
||||
}
|
||||
.spotifyinternal-artistnpv .npv-what-is-playing .npv-track {
|
||||
-webkit-transform: none;
|
||||
transform: none;
|
||||
}
|
||||
.npv-main-container .playback-bar {
|
||||
position: unset;
|
||||
width: auto;
|
||||
}
|
||||
.npv-nowPlayingBar-controls {
|
||||
height: auto;
|
||||
}
|
||||
|
||||
/* recolor */
|
||||
:root {
|
||||
--spice-main-elevated: var(--spice-main);
|
||||
--spice-highlight-elevated: var(--spice-main);
|
||||
--spice-sidebar: var(--spice-main);
|
||||
--spice-player: var(--spice-main);
|
||||
--spice-card: var(--spice-main);
|
||||
--spice-shadow: var(--spice-main);
|
||||
--spice-selected-row: var(--spice-subtext);
|
||||
--spice-button: var(--spice-accent);
|
||||
--spice-button-active: var(--spice-accent-active);
|
||||
--spice-button-disabled: var(--spice-accent-inactive);
|
||||
--spice-tab-active: var(--spice-main);
|
||||
--spice-rgb-main-elevated: var(--spice-rgb-main);
|
||||
--spice-rgb-highlight-elevated: var(--spice-rgb-main);
|
||||
--spice-rgb-sidebar: var(--spice-rgb-main);
|
||||
--spice-rgb-player: var(--spice-rgb-main);
|
||||
--spice-rgb-card: var(--spice-rgb-main);
|
||||
--spice-rgb-shadow: var(--spice-rgb-main);
|
||||
--spice-rgb-selected-row: var(--spice-rgb-subtext);
|
||||
--spice-rgb-button: var(--spice-rgb-accent);
|
||||
--spice-rgb-button-active: var(--spice-rgb-accent-active);
|
||||
--spice-rgb-button-disabled: var(--spice-rgb-accent-inactive);
|
||||
--spice-rgb-tab-active: var(--spice-rgb-main);
|
||||
}
|
||||
.encore-dark-theme,
|
||||
.encore-dark-theme .encore-base-set {
|
||||
--background-elevated-press: var(--spice-main-elevated);
|
||||
--essential-subdued: var(--spice-border-inactive);
|
||||
--decorative-subdued: var(--spice-accent-inactive);
|
||||
}
|
||||
.encore-dark-theme .encore-bright-accent-set {
|
||||
--background-highlight: var(--spice-button-active) !important;
|
||||
--background-elevated-base: var(--spice-button-active) !important;
|
||||
--background-elevated-highlight: var(--spice-button-active) !important;
|
||||
--background-press: var(--spice-button-active) !important;
|
||||
--background-elevated-press: var(--spice-button-active) !important;
|
||||
}
|
||||
.Root__top-container,
|
||||
.Root__nav-bar {
|
||||
background-color: var(--spice-main);
|
||||
}
|
||||
.main-playPauseButton-button {
|
||||
background-color: transparent;
|
||||
color: var(--spice-subtext);
|
||||
}
|
||||
.main-playPauseButton-button:focus,
|
||||
.main-playPauseButton-button:hover {
|
||||
transform: none;
|
||||
color: var(--spice-text);
|
||||
}
|
||||
#_R_G *:not([fill="none"]) {
|
||||
fill: var(--spice-button-active) !important;
|
||||
}
|
||||
#_R_G *:not([stroke="none"]) {
|
||||
stroke: var(--spice-button-active);
|
||||
}
|
||||
.view-homeShortcutsGrid-equaliser,
|
||||
.main-devicePicker-nowPlayingActiveIcon,
|
||||
.main-trackList-playingIcon {
|
||||
filter: grayscale(1) opacity(0.2)
|
||||
drop-shadow(0 0 0 var(--spice-button-active))
|
||||
drop-shadow(0 0 0 var(--spice-button-active))
|
||||
drop-shadow(0 0 0 var(--spice-button-active));
|
||||
}
|
||||
::placeholder {
|
||||
color: var(--spice-subtext);
|
||||
}
|
||||
.main-entityHeader-background,
|
||||
.main-entityHeader-backgroundColor,
|
||||
.main-entityHeader-overlay,
|
||||
.main-actionBarBackground-background,
|
||||
.main-buddyFeed-container,
|
||||
.main-nowPlayingView-content.main-nowPlayingView-gradient {
|
||||
background-color: transparent !important;
|
||||
background-image: none;
|
||||
}
|
||||
.progress-bar {
|
||||
--fg-color: var(--spice-button-active);
|
||||
--bg-color: var(--spice-button-disabled);
|
||||
}
|
||||
.playback-bar__progress-time-elapsed,
|
||||
.main-playbackBarRemainingTime-container {
|
||||
mix-blend-mode: difference;
|
||||
color: var(--spice-button-active);
|
||||
}
|
||||
.main-trackList-placeholder {
|
||||
background-color: var(--background-base);
|
||||
background-blend-mode: color-dodge;
|
||||
}
|
||||
.main-trackList-trackListHeaderStuck.main-trackList-trackListHeader {
|
||||
background: var(--spice-main);
|
||||
}
|
||||
.main-trackList-trackListRow:focus-within,
|
||||
.main-trackList-trackListRow:hover,
|
||||
.main-contextMenu-menuItemButton:hover,
|
||||
.main-contextMenu-menuItemButton:not([aria-checked="true"]):focus,
|
||||
.main-card-card:hover,
|
||||
.main-card-card[data-context-menu-open="true"],
|
||||
[class*="BoxComponent-group-card"]:hover::after,
|
||||
[class*="BoxComponent-group-listRow"]:hover::after {
|
||||
background-color: rgba(var(--spice-rgb-highlight), 0.5);
|
||||
}
|
||||
.main-trackList-trackListRow.main-trackList-selected,
|
||||
.main-trackList-trackListRow.main-trackList-selected:hover {
|
||||
background-color: var(--spice-highlight);
|
||||
}
|
||||
.x-entityImage-imageContainer,
|
||||
.main-card-imageContainer > div:first-child {
|
||||
background-color: var(--card-color, var(--spice-border-inactive));
|
||||
}
|
||||
.main-avatar-avatar {
|
||||
background-color: var(--spice-border-inactive) !important;
|
||||
}
|
||||
.main-entityHeader-title h1 {
|
||||
color: var(--spice-banner);
|
||||
}
|
||||
div[style*="--text-subdued: rgba(255, 255, 255, 0.7);"] {
|
||||
--text-subdued: var(--spice-subtext) !important;
|
||||
}
|
||||
|
||||
/* pane borders */
|
||||
.Root__globalNav,
|
||||
.main-yourLibraryX-entryPoints,
|
||||
.Root__main-view,
|
||||
.Root__now-playing-bar,
|
||||
.Root__right-sidebar:has(aside:not(:empty)) {
|
||||
border: var(--border-width) var(--border-style);
|
||||
border-color: var(--spice-border-inactive);
|
||||
border-radius: var(--border-radius);
|
||||
background-color: var(--spice-main);
|
||||
transition: border-color var(--border-transition);
|
||||
}
|
||||
.Root__globalNav:hover,
|
||||
.main-yourLibraryX-entryPoints:hover,
|
||||
.Root__main-view:hover,
|
||||
.Root__now-playing-bar:hover,
|
||||
.Root__right-sidebar:has(aside:not(:empty)):hover {
|
||||
border: var(--border-width) var(--border-style);
|
||||
border-color: var(--spice-border-active);
|
||||
}
|
||||
|
||||
/* pane headers */
|
||||
.Root__nav-bar .main-yourLibraryX-entryPoints {
|
||||
overflow-x: visible !important;
|
||||
}
|
||||
.Root__globalNav::before,
|
||||
.main-globalNav-searchContainer
|
||||
form
|
||||
div:has(> .main-topBar-searchBar:focus)::before,
|
||||
.Root__nav-bar
|
||||
.main-yourLibraryX-entryPoints:has(.main-yourLibraryX-navItems)::before,
|
||||
.Root__nav-bar
|
||||
.main-yourLibraryX-entryPoints:has(
|
||||
.main-yourLibraryX-libraryContainer
|
||||
)::before,
|
||||
.Root__main-view::before,
|
||||
.Root__now-playing-bar::before,
|
||||
.Root__right-sidebar:has(aside:not(:empty))::before {
|
||||
color: var(--spice-header);
|
||||
position: absolute;
|
||||
margin: -10px 4px;
|
||||
background: var(--spice-main);
|
||||
padding: 0 3px;
|
||||
z-index: 3;
|
||||
transition: color var(--border-transition);
|
||||
}
|
||||
.Root__globalNav::before {
|
||||
content: "Nav";
|
||||
top: 0;
|
||||
left: 0;
|
||||
}
|
||||
.main-globalNav-searchContainer
|
||||
form
|
||||
div:has(> .main-topBar-searchBar:focus)::before {
|
||||
content: "Search";
|
||||
color: var(--spice-border-active) !important;
|
||||
}
|
||||
.Root__nav-bar
|
||||
.main-yourLibraryX-entryPoints:has(.main-yourLibraryX-navItems)::before {
|
||||
content: "Pages";
|
||||
}
|
||||
.Root__nav-bar
|
||||
.main-yourLibraryX-entryPoints:has(
|
||||
.main-yourLibraryX-libraryContainer
|
||||
)::before {
|
||||
content: "Library";
|
||||
}
|
||||
.Root__main-view::before {
|
||||
content: "Main";
|
||||
position: fixed;
|
||||
}
|
||||
.Root__now-playing-bar::before {
|
||||
content: "Playing";
|
||||
}
|
||||
.Root__right-sidebar:has(aside:not(:empty))::before {
|
||||
content: "Sidebar";
|
||||
}
|
||||
.Root__globalNav:hover::before,
|
||||
.Root__nav-bar .main-yourLibraryX-entryPoints:hover::before,
|
||||
.Root__main-view:hover::before,
|
||||
.Root__now-playing-bar:hover::before,
|
||||
.Root__right-sidebar:has(aside:not(:empty)):hover::before {
|
||||
color: var(--spice-border-active);
|
||||
}
|
||||
|
||||
/* scrollbars */
|
||||
.os-scrollbar-handle {
|
||||
border-radius: var(--border-radius) !important;
|
||||
width: 2px !important;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
}
|
||||
.os-scrollbar-handle:hover {
|
||||
border-radius: var(--border-radius) !important;
|
||||
width: 6px !important;
|
||||
}
|
||||
.os-scrollbar-vertical {
|
||||
top: 5px !important;
|
||||
right: 5px !important;
|
||||
}
|
||||
|
||||
/* context menus + tippy boxes */
|
||||
.main-contextMenu-menu,
|
||||
.tippy-box {
|
||||
border: var(--border-width) var(--border-style) var(--spice-border-active);
|
||||
border-radius: var(--border-radius) !important;
|
||||
}
|
||||
|
||||
/* modals */
|
||||
.GenericModal,
|
||||
.GenericModal__overlay > div {
|
||||
border: var(--border-width) var(--border-style) var(--spice-border-active);
|
||||
border-radius: var(--border-radius);
|
||||
overflow: visible;
|
||||
}
|
||||
.GenericModal::before,
|
||||
.GenericModal__overlay > div::before {
|
||||
content: "Modal";
|
||||
color: var(--spice-border-active);
|
||||
position: absolute;
|
||||
margin: -10px 4px;
|
||||
background: var(--spice-main);
|
||||
padding: 0 3px;
|
||||
z-index: 9;
|
||||
}
|
||||
|
||||
/* ================================
|
||||
GLOBAL NAV
|
||||
================================ */
|
||||
|
||||
/* search section */
|
||||
.main-globalNav-searchSection,
|
||||
.main-globalNav-searchContainer {
|
||||
align-items: center;
|
||||
}
|
||||
.main-globalNav-searchSection {
|
||||
position: unset;
|
||||
top: unset;
|
||||
left: unset;
|
||||
}
|
||||
.main-globalNav-searchContainer {
|
||||
max-width: unset;
|
||||
width: 100%;
|
||||
}
|
||||
.main-globalNav-searchContainer form .main-topBar-searchBar {
|
||||
border-radius: var(--border-radius);
|
||||
border: 1px solid;
|
||||
border-color: var(--spice-main);
|
||||
}
|
||||
.main-globalNav-searchContainer form:hover .main-topBar-searchBar {
|
||||
box-shadow: none;
|
||||
border: 1px solid;
|
||||
border-color: var(--spice-border-inactive);
|
||||
}
|
||||
.Root__globalNav:hover:has(.main-topBar-searchBar:focus) {
|
||||
border: var(--border-width) var(--border-style);
|
||||
border-color: var(--spice-border-inactive);
|
||||
}
|
||||
.Root__globalNav:hover:has(.main-topBar-searchBar:focus)::before {
|
||||
color: var(--spice-header);
|
||||
}
|
||||
.main-globalNav-searchContainer form .main-topBar-searchBar:focus {
|
||||
box-shadow: none;
|
||||
border: var(--border-width) var(--border-style);
|
||||
border-color: var(--spice-border-active);
|
||||
outline: 14px solid var(--spice-main);
|
||||
}
|
||||
.main-globalNav-searchContainer form .main-topBar-searchBar + div > div {
|
||||
border-radius: var(--border-radius);
|
||||
box-shadow: none;
|
||||
margin: 24.5px 0;
|
||||
border: var(--border-width) var(--border-style);
|
||||
border-color: var(--spice-border-active);
|
||||
outline: 14px solid var(--spice-main);
|
||||
}
|
||||
form .main-topBar-searchBar::placeholder,
|
||||
form .main-topBar-searchBar:placeholder-shown {
|
||||
transition: none !important;
|
||||
}
|
||||
|
||||
/* ================================
|
||||
LEFT SIDEBAR
|
||||
================================ */
|
||||
|
||||
/* pages pane */
|
||||
.main-yourLibraryX-navLink {
|
||||
height: 24px;
|
||||
gap: 8px;
|
||||
text-decoration: none !important;
|
||||
}
|
||||
.main-yourLibraryX-navLink > svg,
|
||||
.main-yourLibraryX-header .main-yourLibraryX-collapseButtonWrapper > span {
|
||||
transform: scale(0.7);
|
||||
}
|
||||
|
||||
/* library pane */
|
||||
.x-entityImage-imageContainer {
|
||||
transform: scale(0.7);
|
||||
background-color: transparent;
|
||||
}
|
||||
.x-entityImage-imageContainer::before {
|
||||
content: "░▒▒░";
|
||||
color: var(--spice-subtext);
|
||||
transform: scale(1.4);
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 20%;
|
||||
z-index: -1;
|
||||
}
|
||||
.main-yourLibraryX-filterArea {
|
||||
padding: 0 8px;
|
||||
}
|
||||
.main-yourLibraryX-libraryRootlist {
|
||||
padding: 0 16px 8px;
|
||||
}
|
||||
.main-yourLibraryX-listItem span.LineClamp {
|
||||
-webkit-line-clamp: 1;
|
||||
line-clamp: 1;
|
||||
}
|
||||
|
||||
/* sidebar config */
|
||||
.main-yourLibraryX-entryPoints:first-child:has(
|
||||
.main-yourLibraryX-navItems:empty
|
||||
) {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* ================================
|
||||
MAIN VIEW
|
||||
================================ */
|
||||
|
||||
/* check out a cool project: https://github.com/Rigellute/spotify-tui
|
||||
|
||||
_________ ____ / /_(_) __/_ __ / /___ __(_)\A
|
||||
/ ___/ __ \\/ __ \\/ __/ / /_/ / / /_____/ __/ / / / /\A
|
||||
(__ ) /_/ / /_/ / /_/ / __/ /_/ /_____/ /_/ /_/ / /\A
|
||||
/____/ .___/\\____/\\__/_/_/ \\__, / \\__/\\__,_/_/\A
|
||||
/_/ /____/
|
||||
|
||||
*/
|
||||
.view-homeShortcutsGrid-shortcuts::before {
|
||||
content: " _________ ____ / /_(_) __/_ __ / /___ __(_)\A / ___/ __ \\/ __ \\/ __/ / /_/ / / /_____/ __/ / / / /\A (__ ) /_/ / /_/ / /_/ / __/ /_/ /_____/ /_/ /_/ / /\A /____/ .___/\\____/\\__/_/_/ \\__, / \\__/\\__,_/_/\A /_/ /____/ ";
|
||||
white-space: pre-wrap;
|
||||
padding: 32px 0;
|
||||
color: var(--spice-banner);
|
||||
line-height: 1.2;
|
||||
text-wrap: nowrap;
|
||||
display: var(--display-spicetify-banner-ascii);
|
||||
}
|
||||
.main-entityHeader-headerText::before {
|
||||
content: "────█▀█▄▄▄▄─────██▄\A────█▀▄▄▄▄█─────█▀▀█\A─▄▄▄█─────█──▄▄▄█\A██▀▄█─▄██▀█─███▀█\A─▀▀▀──▀█▄█▀─▀█▄█▀\A";
|
||||
white-space: pre-wrap;
|
||||
padding-bottom: 32px;
|
||||
color: var(--spice-banner);
|
||||
line-height: 1.2;
|
||||
text-wrap: nowrap;
|
||||
display: var(--display-music-banner-ascii);
|
||||
}
|
||||
|
||||
/* top bar */
|
||||
.queue-tabBar-active,
|
||||
.marketplace-tabBar-active {
|
||||
text-decoration: underline !important;
|
||||
}
|
||||
.main-topBar-historyButtons .main-topBar-button {
|
||||
background-color: transparent;
|
||||
}
|
||||
.main-topBar-historyButtons > .main-topBar-button:first-child::before {
|
||||
content: "<";
|
||||
}
|
||||
.main-topBar-button.main-topBar-responsiveForward::before {
|
||||
content: ">";
|
||||
}
|
||||
.main-topBar-historyButtons > .main-topBar-button:first-child > svg,
|
||||
.main-topBar-button.main-topBar-responsiveForward > svg {
|
||||
display: none;
|
||||
}
|
||||
.main-topBar-topbarContent {
|
||||
gap: 24px;
|
||||
}
|
||||
.x-searchInput-searchInputInput {
|
||||
border-radius: var(--border-radius);
|
||||
background-color: transparent;
|
||||
}
|
||||
.x-searchInput-searchInputInput:hover,
|
||||
.x-searchInput-searchInputInput:focus {
|
||||
box-shadow: none;
|
||||
border: 1px solid var(--spice-button-active);
|
||||
background-color: transparent;
|
||||
}
|
||||
.search-searchCategory-catergoryGrid *,
|
||||
.main-shelf-subHeader *,
|
||||
.ChipInnerComponent-sm,
|
||||
.ChipInnerComponent-sm-selected {
|
||||
border-radius: var(--border-radius);
|
||||
}
|
||||
.main-globalNav-historyButtonsContainer svg,
|
||||
.main-globalNav-searchContainer svg {
|
||||
transform: scale(0.7);
|
||||
}
|
||||
|
||||
/* headers */
|
||||
.main-entityHeader-container {
|
||||
padding: var(--content-spacing) 0;
|
||||
}
|
||||
.main-entityHeader-container.main-entityHeader-withBackgroundImage {
|
||||
background-image: radial-gradient(
|
||||
circle,
|
||||
rgba(var(--spice-rgb-main), 0.7) 0%,
|
||||
rgba(var(--spice-rgb-main), 0.9) 50%,
|
||||
rgba(var(--spice-rgb-main), 1) 100%
|
||||
);
|
||||
}
|
||||
|
||||
/* compact tracklists */
|
||||
.main-trackList-trackListRow {
|
||||
height: 32px;
|
||||
}
|
||||
.main-trackList-rowMainContent {
|
||||
grid-template: "title badges subtitle" / auto 1fr;
|
||||
column-gap: 0;
|
||||
}
|
||||
.main-trackList-rowImage {
|
||||
height: 24px;
|
||||
width: 24px;
|
||||
}
|
||||
.main-trackList-rowTitle:has(+ span)::after {
|
||||
content: "|";
|
||||
color: var(--spice-highlight);
|
||||
padding: 0 10px;
|
||||
}
|
||||
.main-trackList-rowBadges {
|
||||
padding-right: 10px;
|
||||
}
|
||||
.main-trackList-number,
|
||||
.main-trackList-icon {
|
||||
top: unset;
|
||||
}
|
||||
|
||||
/* lyrics page & sidebar */
|
||||
.lyrics-lyrics-background {
|
||||
background-color: var(--spice-main);
|
||||
}
|
||||
.main-nowPlayingView-sectionHeaderSpacing.main-nowPlayingView-lyricsGradient {
|
||||
background-color: var(--background-tinted-base);
|
||||
}
|
||||
.lyrics-lyrics-contentContainer {
|
||||
justify-content: start;
|
||||
}
|
||||
.lyrics-lyrics-container,
|
||||
.main-nowPlayingView-section {
|
||||
--lyrics-color-active: var(--spice-text) !important;
|
||||
--lyrics-color-inactive: var(--spice-subtext) !important;
|
||||
--lyrics-color-passed: var(--spice-subtext) !important;
|
||||
--lyrics-color-messaging: var(--spice-subtext) !important;
|
||||
}
|
||||
.lyrics-lyricsContent-lyric {
|
||||
opacity: 0.3;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
}
|
||||
.lyrics-lyricsContent-lyric.lyrics-lyricsContent-highlight {
|
||||
opacity: 0.7;
|
||||
transition: none;
|
||||
}
|
||||
.lyrics-lyricsContent-lyric.lyrics-lyricsContent-active:not(:empty) {
|
||||
background-color: var(--lyrics-color-background);
|
||||
color: var(--spice-main);
|
||||
opacity: 1;
|
||||
transition: none;
|
||||
}
|
||||
.lyrics-lyricsContent-lyric:not(:empty)::before {
|
||||
content: ">> ";
|
||||
opacity: 0;
|
||||
white-space: break-spaces;
|
||||
}
|
||||
.lyrics-lyricsContent-lyric.lyrics-lyricsContent-active:not(:empty)::before {
|
||||
content: ">> ";
|
||||
opacity: 1;
|
||||
white-space: break-spaces;
|
||||
}
|
||||
|
||||
/* lyrics cinema */
|
||||
.Root__lyrics-cinema {
|
||||
border: var(--border-width) var(--border-style) transparent;
|
||||
overflow: hidden;
|
||||
}
|
||||
.main-nowPlayingView-lyricsContent {
|
||||
-webkit-mask-image: none !important;
|
||||
mask-image: none !important;
|
||||
}
|
||||
|
||||
/* ================================
|
||||
PLAYBACK BAR
|
||||
================================ */
|
||||
|
||||
/* playback bar itself */
|
||||
.main-nowPlayingBar-nowPlayingBar {
|
||||
padding: 8px 8px 32px 8px;
|
||||
height: 96px;
|
||||
}
|
||||
.playback-bar {
|
||||
position: absolute;
|
||||
left: calc(var(--panel-gap) + 8px);
|
||||
bottom: calc(var(--panel-gap) + 8px);
|
||||
width: calc(100vw - var(--panel-gap) * 2 - 16px);
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
/* playback time indicators */
|
||||
.playback-bar__progress-time-elapsed {
|
||||
pointer-events: none;
|
||||
}
|
||||
.playback-bar__progress-time-elapsed::after {
|
||||
content: " /";
|
||||
}
|
||||
.playback-bar__progress-time-elapsed,
|
||||
.main-playbackBarRemainingTime-container {
|
||||
z-index: 9;
|
||||
padding-top: 2px;
|
||||
}
|
||||
|
||||
/* playback seek bar */
|
||||
.playback-progressbar-container {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
}
|
||||
.progress-bar {
|
||||
--progress-bar-height: 16px;
|
||||
--progress-bar-radius: var(--border-radius);
|
||||
}
|
||||
.progress-bar__slider {
|
||||
box-shadow: none;
|
||||
height: 100%;
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
/* cover art */
|
||||
.main-nowPlayingWidget-coverArt .cover-art {
|
||||
height: 32px !important;
|
||||
width: 32px !important;
|
||||
}
|
||||
|
||||
/* left nowplaying text */
|
||||
.main-nowPlayingBar-left {
|
||||
padding-inline-start: 0;
|
||||
}
|
||||
.main-nowPlayingWidget-trackInfo {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/* volume bar */
|
||||
.volume-bar__slider-container .x-progressBar-fillColor,
|
||||
.volume-bar__slider-container
|
||||
.playback-progressbar-isInteractive
|
||||
.progress-bar--isDragging
|
||||
.x-progressBar-fillColor,
|
||||
.volume-bar__slider-container
|
||||
.playback-progressbar-isInteractive
|
||||
.progress-bar:focus
|
||||
.x-progressBar-fillColor,
|
||||
.volume-bar__slider-container
|
||||
.playback-progressbar-isInteractive
|
||||
.progress-bar:hover
|
||||
.x-progressBar-fillColor,
|
||||
.volume-bar__slider-container
|
||||
.playback-progressbar-isInteractive:focus-within
|
||||
.x-progressBar-fillColor {
|
||||
height: 9px;
|
||||
background-color: transparent;
|
||||
border-bottom: 2px dashed var(--fg-color);
|
||||
}
|
||||
.volume-bar__slider-container .x-progressBar-progressBarBg {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
/* player controls */
|
||||
.player-controls__buttons {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.player-controls__buttons,
|
||||
.main-nowPlayingBar-extraControls {
|
||||
opacity: 0.25;
|
||||
transition: opacity var(--border-transition);
|
||||
}
|
||||
.player-controls__buttons:hover,
|
||||
.main-nowPlayingBar-extraControls:hover {
|
||||
opacity: 1;
|
||||
}
|
||||
.main-shuffleButton-button::before,
|
||||
button[data-testid="control-button-shuffle"]::after,
|
||||
.ecHWOS
|
||||
button:has(
|
||||
path[d="M13.151.922a.75.75 0 1 0-1.06 1.06L13.109 3H11.16a3.75 3.75 0 0 0-2.873 1.34l-6.173 7.356A2.25 2.25 0 0 1 .39 12.5H0V14h.391a3.75 3.75 0 0 0 2.873-1.34l6.173-7.356a2.25 2.25 0 0 1 1.724-.804h1.947l-1.017 1.018a.75.75 0 0 0 1.06 1.06L15.98 3.75 13.15.922zM.391 3.5H0V2h.391c1.109 0 2.16.49 2.873 1.34L4.89 5.277l-.979 1.167-1.796-2.14A2.25 2.25 0 0 0 .39 3.5z"]
|
||||
)::before {
|
||||
content: "\21C4";
|
||||
}
|
||||
.ecHWOS
|
||||
button:has(
|
||||
path[d="M12.09.922a.75.75 0 0 1 1.061 0L15.98 3.75l-2.83 2.828a.75.75 0 1 1-1.06-1.06L13.109 4.5H11.16a2.25 2.25 0 0 0-1.724.804L3.264 12.66A3.75 3.75 0 0 1 .391 14H0v-1.5h.391a2.25 2.25 0 0 0 1.724-.804L8.288 4.34A3.75 3.75 0 0 1 11.16 3h1.947L12.09 1.982a.75.75 0 0 1 0-1.06zM.88 3.319C2.255 2.874 2.976 1.787 3.297.874c.036-.102.37-.102.406 0 .321.913 1.042 2 2.417 2.445.103.033.103.329 0 .362-1.375.445-2.096 1.532-2.417 2.445-.036.102-.37.102-.406 0-.321-.913-1.042-2-2.417-2.445-.103-.033-.103-.329 0-.362z"]
|
||||
)::before {
|
||||
content: "\21C4\2726";
|
||||
text-wrap: nowrap;
|
||||
}
|
||||
.main-skipBackButton-button::before,
|
||||
button[data-testid="control-button-skip-back"]::after {
|
||||
content: "\25C1";
|
||||
}
|
||||
.main-playPauseButton-button[aria-label="Play"]::before,
|
||||
.main-playPauseButton-button:has(
|
||||
path[d="M3 1.713a.7.7 0 0 1 1.05-.607l10.89 6.288a.7.7 0 0 1 0 1.212L4.05 14.894A.7.7 0 0 1 3 14.288V1.713z"]
|
||||
)::before,
|
||||
button[data-testid="control-button-playpause"]:has(
|
||||
path[d="M3 1.713a.7.7 0 0 1 1.05-.607l10.89 6.288a.7.7 0 0 1 0 1.212L4.05 14.894A.7.7 0 0 1 3 14.288V1.713z"]
|
||||
)::after,
|
||||
button[data-testid="control-button-playpause"]:has(
|
||||
path[d="m7.05 3.606 13.49 7.788a.7.7 0 0 1 0 1.212L7.05 20.394A.7.7 0 0 1 6 19.788V4.212a.7.7 0 0 1 1.05-.606z"]
|
||||
)::after {
|
||||
content: "\25B6";
|
||||
}
|
||||
.main-playPauseButton-button[aria-label="Pause"]::before,
|
||||
.main-playPauseButton-button:has(
|
||||
path[d="M3 1.713a.7.7 0 0 1 1.05-.607l10.89 6.288a.7.7 0 0 1 0 1.212L4.05 14.894A.7.7 0 0 1 3 14.288V1.713z"]
|
||||
)::before,
|
||||
button[data-testid="control-button-playpause"]:has(
|
||||
path[d="M2.7 1a.7.7 0 0 0-.7.7v12.6a.7.7 0 0 0 .7.7h2.6a.7.7 0 0 0 .7-.7V1.7a.7.7 0 0 0-.7-.7H2.7zm8 0a.7.7 0 0 0-.7.7v12.6a.7.7 0 0 0 .7.7h2.6a.7.7 0 0 0 .7-.7V1.7a.7.7 0 0 0-.7-.7h-2.6z"]
|
||||
)::after,
|
||||
button[data-testid="control-button-playpause"]:has(
|
||||
path[d="M5.7 3a.7.7 0 0 0-.7.7v16.6a.7.7 0 0 0 .7.7h2.6a.7.7 0 0 0 .7-.7V3.7a.7.7 0 0 0-.7-.7H5.7zm10 0a.7.7 0 0 0-.7.7v16.6a.7.7 0 0 0 .7.7h2.6a.7.7 0 0 0 .7-.7V3.7a.7.7 0 0 0-.7-.7h-2.6z"]
|
||||
)::after {
|
||||
content: "\275A\275A";
|
||||
text-wrap: nowrap;
|
||||
}
|
||||
button[data-testid="control-button-playpause"] {
|
||||
padding: 8px;
|
||||
}
|
||||
button[data-testid="control-button-playpause"]:hover {
|
||||
color: var(--spice-text);
|
||||
}
|
||||
button[data-testid="control-button-playpause"] .ButtonInner-small-iconOnly {
|
||||
display: none;
|
||||
}
|
||||
.main-skipForwardButton-button::before,
|
||||
button[data-testid="control-button-skip-forward"]::after {
|
||||
content: "\25B7";
|
||||
}
|
||||
.main-repeatButton-button::before,
|
||||
button[data-testid="control-button-repeat"]::after {
|
||||
content: "\21BB";
|
||||
}
|
||||
.main-repeatButton-button[aria-checked="mixed"]::before,
|
||||
button[data-testid="control-button-repeat"][aria-checked="mixed"]::after {
|
||||
content: "\21BB\2474";
|
||||
text-wrap: nowrap;
|
||||
}
|
||||
.main-shuffleButton-button > svg,
|
||||
.player-controls__left .ecHWOS svg,
|
||||
.main-skipBackButton-button > svg,
|
||||
.main-playPauseButton-button > svg,
|
||||
.main-skipForwardButton-button > svg,
|
||||
.main-repeatButton-button > svg,
|
||||
:is(.player-controls__buttons, .npv-nowPlayingBar-controls) span {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* connect bar */
|
||||
.main-connectBar-connectBar {
|
||||
position: absolute;
|
||||
background-color: transparent !important;
|
||||
mix-blend-mode: difference;
|
||||
pointer-events: none;
|
||||
right: var(--panel-gap);
|
||||
bottom: var(--panel-gap);
|
||||
opacity: 0.25;
|
||||
padding: 0 10px 10px;
|
||||
}
|
||||
.main-connectBar-connectBar span {
|
||||
color: var(--spice-accent-active);
|
||||
}
|
||||
.main-connectBar-connectBar svg {
|
||||
fill: var(--spice-accent-active);
|
||||
}
|
||||
32
etc/spicetify/config-xpui.ini
Normal file
32
etc/spicetify/config-xpui.ini
Normal file
@@ -0,0 +1,32 @@
|
||||
[Preprocesses]
|
||||
expose_apis = 1
|
||||
disable_sentry = 1
|
||||
disable_ui_logging = 1
|
||||
remove_rtl_rule = 1
|
||||
|
||||
[AdditionalOptions]
|
||||
custom_apps =
|
||||
sidebar_config = 1
|
||||
home_config = 1
|
||||
experimental_features = 1
|
||||
extensions =
|
||||
|
||||
[Patch]
|
||||
|
||||
[Setting]
|
||||
prefs_path = /home/furry/.config/spotify/prefs
|
||||
inject_theme_js = 1
|
||||
replace_colors = 1
|
||||
spotify_launch_flags =
|
||||
spotify_path = /opt/spotify/
|
||||
color_scheme = Cherry
|
||||
inject_css = 1
|
||||
overwrite_assets = 0
|
||||
check_spicetify_update = 1
|
||||
always_enable_devtools = 0
|
||||
current_theme = Sleek
|
||||
|
||||
; DO NOT CHANGE!
|
||||
[Backup]
|
||||
version = 1.2.63.394.g126b0d89
|
||||
with = 2.40.9
|
||||
0
.local/.gitignore → usr/.gitignore
vendored
0
.local/.gitignore → usr/.gitignore
vendored
29
usr/bin/buildconfig
Executable file
29
usr/bin/buildconfig
Executable file
@@ -0,0 +1,29 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
BUILD_CONFIG=
|
||||
|
||||
# try to find a valid build config path
|
||||
if [ -n "${1+x}" ] && [ -f "$1" ] && [[ "$(basename "$1")" == ".buildconfig" ]]; then BUILD_CONFIG="$1" # first check if a build config has been specified, and whether it's a valid path
|
||||
elif [ -n "${1+x}" ]; then echo "E: the specified path '$1' is not a valid path!"; exit 1
|
||||
|
||||
elif [[ -f "$PWD/.buildconfig" ]]; then BUILD_CONFIG="$PWD/.buildconfig" # then check if there is a build config in the current working directory
|
||||
elif [[ -f "$HOME/.buildconfig" ]]; then BUILD_CONFIG="$HOME/.buildconfig" # then check if there is a build config in the home directory
|
||||
else $EDITOR .buildconfig
|
||||
#else echo "E: could not find a .buildconfig file and none was specified!"; exit 1
|
||||
fi
|
||||
|
||||
source "$BUILD_CONFIG"
|
||||
[ -z "${cmd+x}" ] && { echo "E: cmd was not set! '$BUILD_CONFIG'"; exit 1; }
|
||||
[ -z "${arg+x}" ] && { echo "E: arg was not set! '$BUILD_CONFIG'"; exit 1; }
|
||||
|
||||
# export the environment variables if they've been set
|
||||
if [[ -n ${env+x} ]]; then
|
||||
for var in "${!env[@]}"; do
|
||||
export "$var=${env[$var]}"
|
||||
done
|
||||
fi
|
||||
|
||||
# execute the command with the arguments
|
||||
# don't mind if the user made arguments separate out, that would likely be the user's intention
|
||||
$cmd "$arg"
|
||||
exit $?
|
||||
2
usr/bin/emcc
Executable file
2
usr/bin/emcc
Executable file
@@ -0,0 +1,2 @@
|
||||
#!/usr/bin/sh
|
||||
"$HOME/.local/share/emsdk/upstream/emscripten/emcc" "$@"
|
||||
2
usr/bin/emsdk
Executable file
2
usr/bin/emsdk
Executable file
@@ -0,0 +1,2 @@
|
||||
#!/usr/bin/sh
|
||||
"$HOME/.local/share/emsdk/emsdk" "$@"
|
||||
2
usr/bin/prime-run
Executable file
2
usr/bin/prime-run
Executable file
@@ -0,0 +1,2 @@
|
||||
#!/usr/bin/sh
|
||||
__NV_PRIME_RENDER_OFFLOAD=1 __VK_LAYER_NV_optimus=NVIDIA_only __GLX_VENDOR_LIBRARY_NAME=nvidia "$@"
|
||||
66
usr/bin/prime-run-conf
Executable file
66
usr/bin/prime-run-conf
Executable file
@@ -0,0 +1,66 @@
|
||||
#!/bin/python
|
||||
|
||||
import os
|
||||
from sys import stderr
|
||||
|
||||
def error(msg: str):
|
||||
print(f"\033[91m{msg}\033[0m", file=stderr)
|
||||
|
||||
def validate_path(path: str, outdir: str, outpath: str) -> bool:
|
||||
if (os.path.isdir(outdir) == False):
|
||||
error(f"'{outdir}' does not exist! can't write .desktop file!")
|
||||
return False
|
||||
|
||||
if (os.path.exists(outpath)):
|
||||
error(f"'{outpath}' already exists!")
|
||||
return False
|
||||
|
||||
if (os.path.isfile(path) == False):
|
||||
error(f"file does not exist: '{path}'")
|
||||
return False
|
||||
return True
|
||||
|
||||
|
||||
def create_desktop_file(path: str) -> int:
|
||||
outdir = os.environ['HOME'] + "/.local/share/applications"
|
||||
outpath = outdir + "/" + os.path.basename(path)
|
||||
|
||||
if (validate_path(path, outdir, outpath) == False):
|
||||
return 1
|
||||
|
||||
f_in = open(path, "r")
|
||||
f_out = open(outpath, "w")
|
||||
|
||||
while (True):
|
||||
ln = f_in.readline();
|
||||
|
||||
if (len(ln) == 0):
|
||||
break
|
||||
|
||||
if (ln.startswith("Exec=")):
|
||||
lns = ln.split('=', 1)
|
||||
ln = f"{lns[0]}=prime-run {lns[1]}"
|
||||
|
||||
f_out.write(ln)
|
||||
|
||||
f_in.close()
|
||||
f_out.close()
|
||||
return 0
|
||||
|
||||
def main(argc: int, argv: list[str]) -> int:
|
||||
|
||||
if (argc <= 1):
|
||||
error("incorrect amount of arguments! expected: 'desktop file path'")
|
||||
return 1
|
||||
|
||||
err = 0
|
||||
i = 1
|
||||
while (i < argc):
|
||||
err |= create_desktop_file(argv[i])
|
||||
i += 1
|
||||
|
||||
return err
|
||||
|
||||
if __name__ == "__main__":
|
||||
import sys
|
||||
exit(main(len(sys.argv), sys.argv));
|
||||
@@ -2,7 +2,8 @@
|
||||
# shellcheck disable=SC1090,SC1091
|
||||
|
||||
# set -xv
|
||||
|
||||
EUMETSAT_KEY="jdBM1PsDQUm0tCZfk9VXD6IaJoUa"
|
||||
EUMETSAT_SECRET="SumkiqFMU3MAGpt_azb1KXKgjdMa"
|
||||
OUTDIR="$HOME/photos/eumetsat"
|
||||
|
||||
# full screen coverage
|
||||
@@ -28,9 +29,6 @@ error() {
|
||||
exit 1
|
||||
}
|
||||
|
||||
[ -z "$EUMETSAT_KEY" ] && error 'make sure to set EUMETSAT_KEY to the client key'
|
||||
[ -z "$EUMETSAT_SECRET" ] && error 'make sure to set EUMETSAT_SECRET to the client secret'
|
||||
|
||||
# verify internet
|
||||
ping -c1 1.1.1.1 >>/dev/null || error "couldn't establish an internet connection!"
|
||||
|
||||
14
usr/bin/unzip-all
Executable file
14
usr/bin/unzip-all
Executable file
@@ -0,0 +1,14 @@
|
||||
#!/usr/bin/sh
|
||||
|
||||
if [ -z ${var+2} ]; then
|
||||
printf "\033[91mno parameters were given!\033[0m\n"
|
||||
fi
|
||||
|
||||
for i in $2; do
|
||||
readonly fname
|
||||
fname="$(basename "$i" .*)"
|
||||
mkdir "$fname"
|
||||
cd "$fname" || return 1
|
||||
unzip "../$i"
|
||||
cd - || return 1
|
||||
done
|
||||
6
usr/bin/uwu
Executable file
6
usr/bin/uwu
Executable file
@@ -0,0 +1,6 @@
|
||||
#!/usr/bin/sh
|
||||
|
||||
while true; do
|
||||
printf "owo "
|
||||
sleep 0.25
|
||||
done
|
||||
4
usr/bin/x-brightness-down
Executable file
4
usr/bin/x-brightness-down
Executable file
@@ -0,0 +1,4 @@
|
||||
#!/usr/bin/sh
|
||||
br=$(brightnessctl set 5%- |
|
||||
grep '%' | awk '{print $4}' | sed 's/[^0-9]//g')
|
||||
notify-send -u low -i display-brightness-symbolic -h int:value:"$br" -h string:x-dunst-stack-tag:'brightnessctl' -a 'brightnessctl' "brightness: $br%"
|
||||
4
usr/bin/x-brightness-up
Executable file
4
usr/bin/x-brightness-up
Executable file
@@ -0,0 +1,4 @@
|
||||
#!/usr/bin/sh
|
||||
br=$(brightnessctl set 5%+ |
|
||||
grep '%' | awk '{print $4}' | sed 's/[^0-9]//g')
|
||||
notify-send -i display-brightness-symbolic -u low -h int:value:"$br" -h string:x-dunst-stack-tag:'brightnessctl' -a 'brightnessctl' "brightness: $br%"
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user