move xdg directories to the default location.
a lot of applications seem to hardcode this location, so it's better to have something default, or default-adjasoned.
This commit is contained in:
7
.config/act/actrc
Normal file
7
.config/act/actrc
Normal file
@@ -0,0 +1,7 @@
|
||||
-P ubuntu-latest=catthehacker/ubuntu:act-latest
|
||||
#-P ubuntu-24.04-arm=catthehacker/ubuntu:act-latest
|
||||
#-P windows-latest=catthehacker/ubuntu:act-latest
|
||||
#-P windows-11-arm=catthehacker/ubuntu:act-latest
|
||||
#-P macos-latest=catthehacker/ubuntu:act-latest
|
||||
--artifact-server-path $PWD/.act/artifacts
|
||||
--cache-server-path=$PWD/.act/cache
|
||||
499
.config/audacity/audacity.cfg
Normal file
499
.config/audacity/audacity.cfg
Normal file
@@ -0,0 +1,499 @@
|
||||
PrefsVersion=1.1.1r1
|
||||
MenuBar=File,Edit,Select,View,Transport,Tracks,Generate,Effect,Analyze,Tools,Optional,Help
|
||||
AudioTimeFormat=hh:mm:ss
|
||||
Importers=AUP,PCM,OGG,FLAC,MP3,LOF,WavPack,FFmpeg,Opus,portsmf
|
||||
Preferences=Device,Playback,Recording,MidiIO,Quality,GUI,Tracks,ImportExport,Library,Directories,Effects,KeyConfig,Module
|
||||
FrequencySelectionFormatName=Hz
|
||||
BandwidthSelectionFormatName=octaves
|
||||
SelectionFormat=hh:mm:ss + milliseconds
|
||||
Exporters=PCM,MP3,OGG,FLAC,MP2,CommandLine,FFmpeg,WavPack,Opus
|
||||
DefaultOpenType=All files
|
||||
LastOpenType=
|
||||
StatusBarFieldRegistry=state,main,rate
|
||||
NumericConverterRegistry=parsed
|
||||
SnapFunctions=beats,time,frames
|
||||
ImportExportPreferences=LabelStyle,AllegroTimeOption
|
||||
LibraryPreferences=MP3,FFmpeg
|
||||
[GUI]
|
||||
EmptyCanBeDirty=1
|
||||
SelectAllOnNone=0
|
||||
EnableCutLines=0
|
||||
AdjustSelectionEdges=1
|
||||
EditClipCanMove=0
|
||||
CircularTrackNavigation=0
|
||||
TypeToCreateLabel=0
|
||||
DialogForNameNewLabel=0
|
||||
ScrollBeyondZero=0
|
||||
VerticalZooming=0
|
||||
Solo=Simple
|
||||
TracksFitVerticallyZoomed=0
|
||||
ShowTrackNameInWaveform=0
|
||||
CollapseToHalfWave=0
|
||||
AutoScroll=1
|
||||
DefaultViewModeChoiceNew=Waveform
|
||||
DefaultWaveformScaleChoice=Linear
|
||||
SampleViewChoice=StemPlot
|
||||
ZoomPreset1Choice=ZoomDefault
|
||||
ZoomPreset2Choice=FourPixelsPerSample
|
||||
Theme=dark
|
||||
EnvdBRange=60
|
||||
ShowExtraMenus=0
|
||||
BeepOnCompletion=0
|
||||
RetainLabels=0
|
||||
BlendThemes=1
|
||||
RtlWorkaround=1
|
||||
PreferNewTrackRecord=0
|
||||
PasteAsNewClips=0
|
||||
AudioTrackPastePolicy=Ask
|
||||
ShowSplashScreen=0
|
||||
BPM=120
|
||||
[GUI/TrackNames]
|
||||
RecordingNameCustom=0
|
||||
RecodingTrackName=Recorded_Audio
|
||||
TrackNumber=0
|
||||
DateStamp=0
|
||||
TimeStamp=0
|
||||
[GUI/ToolBars]
|
||||
[GUI/ToolBars/Tools]
|
||||
MultiToolActive=0
|
||||
DockV2=1
|
||||
Dock=1
|
||||
Path=0,0
|
||||
Show=1
|
||||
X=-1
|
||||
Y=-1
|
||||
W=67
|
||||
H=63
|
||||
[GUI/ToolBars/Audio\ Setup]
|
||||
DockV2=1
|
||||
Dock=1
|
||||
Path=0,0,0,0
|
||||
Show=1
|
||||
X=-1
|
||||
Y=-1
|
||||
W=105
|
||||
H=63
|
||||
[GUI/ToolBars/CombinedMeter]
|
||||
DockV2=1
|
||||
Dock=0
|
||||
Show=0
|
||||
X=-1
|
||||
Y=-1
|
||||
W=338
|
||||
H=31
|
||||
[GUI/ToolBars/Control]
|
||||
DockV2=1
|
||||
Dock=1
|
||||
Path=0
|
||||
Show=1
|
||||
X=-1
|
||||
Y=-1
|
||||
W=417
|
||||
H=63
|
||||
[GUI/ToolBars/CutCopyPaste]
|
||||
DockV2=1
|
||||
Dock=0
|
||||
Show=0
|
||||
X=-1
|
||||
Y=-1
|
||||
W=67
|
||||
H=63
|
||||
[GUI/ToolBars/Device]
|
||||
DockV2=1
|
||||
Dock=0
|
||||
Show=0
|
||||
X=-1
|
||||
Y=-1
|
||||
W=883
|
||||
H=31
|
||||
[GUI/ToolBars/Edit]
|
||||
DockV2=1
|
||||
Dock=1
|
||||
Path=0,0,0
|
||||
Show=1
|
||||
X=-1
|
||||
Y=-1
|
||||
W=148
|
||||
H=63
|
||||
[GUI/ToolBars/PlayMeter]
|
||||
DockV2=1
|
||||
Dock=1
|
||||
Path=0,0,0,0,1
|
||||
Show=1
|
||||
X=-1
|
||||
Y=-1
|
||||
W=290
|
||||
H=31
|
||||
[GUI/ToolBars/RecordMeter]
|
||||
DockV2=1
|
||||
Dock=1
|
||||
Path=0,0,0,0,0
|
||||
Show=1
|
||||
X=-1
|
||||
Y=-1
|
||||
W=290
|
||||
H=31
|
||||
[GUI/ToolBars/Selection]
|
||||
DockV2=2
|
||||
Dock=2
|
||||
Path=0,0,0,0
|
||||
Show=1
|
||||
X=-1
|
||||
Y=-1
|
||||
W=281
|
||||
H=63
|
||||
[GUI/ToolBars/Snapping]
|
||||
DockV2=2
|
||||
Dock=2
|
||||
Path=0,0
|
||||
Show=1
|
||||
X=-1
|
||||
Y=-1
|
||||
W=171
|
||||
H=63
|
||||
[GUI/ToolBars/SpectralSelection]
|
||||
DockV2=2
|
||||
Dock=0
|
||||
Show=0
|
||||
X=-1
|
||||
Y=-1
|
||||
W=271
|
||||
H=63
|
||||
[GUI/ToolBars/Time]
|
||||
DockV2=2
|
||||
Dock=2
|
||||
Path=0,0,0
|
||||
Show=1
|
||||
X=-1
|
||||
Y=-1
|
||||
W=250
|
||||
H=63
|
||||
[GUI/ToolBars/TimeSignature]
|
||||
DockV2=2
|
||||
Dock=2
|
||||
Path=0
|
||||
Show=1
|
||||
X=-1
|
||||
Y=-1
|
||||
W=229
|
||||
H=63
|
||||
[GUI/ToolBars/Transcription]
|
||||
DockV2=2
|
||||
Dock=2
|
||||
Path=0,0,0,0,0
|
||||
Show=1
|
||||
X=-1
|
||||
Y=-1
|
||||
W=191
|
||||
H=31
|
||||
[Version]
|
||||
Major=3
|
||||
Minor=7
|
||||
Micro=4
|
||||
[Directories]
|
||||
TempDir=/var/tmp/audacity-user
|
||||
[Directories/Open]
|
||||
Default=
|
||||
LastUsed=/home/furry/music
|
||||
[Directories/Save]
|
||||
Default=
|
||||
[Directories/Import]
|
||||
Default=
|
||||
[Directories/Export]
|
||||
Default=
|
||||
LastUsed=/home/user/Downloads
|
||||
[Directories/MacrosOut]
|
||||
Default=
|
||||
[Module]
|
||||
mod-script-pipe=4
|
||||
mod-mp2=1
|
||||
mod-midi-import-export=1
|
||||
mod-cl=1
|
||||
mod-opus=1
|
||||
mod-pcm=1
|
||||
mod-wavpack=1
|
||||
mod-aup=1
|
||||
mod-flac=1
|
||||
mod-ffmpeg=1
|
||||
mod-ogg=1
|
||||
mod-mpg123=1
|
||||
mod-lof=1
|
||||
mod-mp3=1
|
||||
[ModulePath]
|
||||
mod-script-pipe=/usr/lib/audacity/modules/mod-script-pipe.so
|
||||
mod-mp2=/usr/lib/audacity/modules/mod-mp2.so
|
||||
mod-midi-import-export=/usr/lib/audacity/modules/mod-midi-import-export.so
|
||||
mod-cl=/usr/lib/audacity/modules/mod-cl.so
|
||||
mod-opus=/usr/lib/audacity/modules/mod-opus.so
|
||||
mod-pcm=/usr/lib/audacity/modules/mod-pcm.so
|
||||
mod-wavpack=/usr/lib/audacity/modules/mod-wavpack.so
|
||||
mod-aup=/usr/lib/audacity/modules/mod-aup.so
|
||||
mod-flac=/usr/lib/audacity/modules/mod-flac.so
|
||||
mod-ffmpeg=/usr/lib/audacity/modules/mod-ffmpeg.so
|
||||
mod-ogg=/usr/lib/audacity/modules/mod-ogg.so
|
||||
mod-mpg123=/usr/lib/audacity/modules/mod-mpg123.so
|
||||
mod-lof=/usr/lib/audacity/modules/mod-lof.so
|
||||
mod-mp3=/usr/lib/audacity/modules/mod-mp3.so
|
||||
[ModuleDateTime]
|
||||
mod-script-pipe=2025-06-10T17:04:19
|
||||
mod-mp2=2025-06-10T17:04:19
|
||||
mod-midi-import-export=2025-06-10T17:04:19
|
||||
mod-cl=2025-06-10T17:04:19
|
||||
mod-opus=2025-06-10T17:04:19
|
||||
mod-pcm=2025-06-10T17:04:19
|
||||
mod-wavpack=2025-06-10T17:04:19
|
||||
mod-aup=2025-06-10T17:04:19
|
||||
mod-flac=2025-06-10T17:04:19
|
||||
mod-ffmpeg=2025-06-10T17:04:19
|
||||
mod-ogg=2025-06-10T17:04:19
|
||||
mod-mpg123=2025-06-10T17:04:19
|
||||
mod-lof=2025-06-10T17:04:19
|
||||
mod-mp3=2025-06-10T17:04:19
|
||||
[AudioIO]
|
||||
RecordingDevice=default
|
||||
Host=ALSA
|
||||
PlaybackDevice=pulse
|
||||
RecordChannels=2
|
||||
Duplex=1
|
||||
SWPlaythrough=0
|
||||
SoundActivatedRecord=0
|
||||
SilenceLevel=-50
|
||||
PreRoll=5
|
||||
Crossfade=10
|
||||
EffectsPreviewLen=6
|
||||
CutPreviewBeforeLen=2
|
||||
CutPreviewAfterLen=1
|
||||
SeekShortPeriod=1
|
||||
SeekLongPeriod=15
|
||||
VariSpeedPlay=1
|
||||
Microfades=0
|
||||
UnpinnedScrubbing=1
|
||||
LatencyDuration=100
|
||||
LatencyCorrection=-130
|
||||
RecordingSource=
|
||||
RecordingSourceIndex=-1
|
||||
PlaybackSource=
|
||||
[SamplingRate]
|
||||
DefaultProjectSampleRate=44100
|
||||
DefaultProjectSampleFormatChoice=Format32BitFloat
|
||||
[MenuBar]
|
||||
[MenuBar/Optional]
|
||||
[MenuBar/Optional/Extra]
|
||||
Part1=Transport,Tools,Mixer,Edit,PlayAtSpeed,Seek,Device,Select,Import-Export
|
||||
Part2=Navigation,Focus,Cursor,Track,Scriptables1,Scriptables2,Misc
|
||||
[MenuBar/Optional/Extra/Part1]
|
||||
Transport=Play,Stop,PlayOneSec,PlayToSelection,PlayBeforeSelectionStart,PlayAfterSelectionStart,PlayBeforeSelectionEnd,PlayAfterSelectionEnd,PlayBeforeAndAfterSelectionStart,PlayBeforeAndAfterSelectionEnd,PlayCutPreview,KeyboardScrubbing
|
||||
Edit=DeleteKey,DeleteKey2,TimeShift
|
||||
Select=SnapToOff,SnapToNearest,SnapToPrior,SelStart,SelEnd,SelExtLeft,SelExtRight,SelSetExtLeft,SelSetExtRight,SelCntrLeft,SelCntrRight,MoveToLabel
|
||||
PlayAtSpeed=PlayAtSpeed,PlayAtSpeedCutPreview,PlayAtSpeedLooped,PlaySpeedDec,PlaySpeedInc,SetPlaySpeed
|
||||
[MenuBar/Optional/Extra/Part2]
|
||||
Scriptables1=SelectTime,SelectFrequencies,SelectTracks,SetTrackStatus,SetTrackAudio,SetTrackVisuals,GetPreference,SetPreference,SetClip,SetEnvelope,SetLabel,SetProject
|
||||
Scriptables2=Select,SetTrack,GetInfo,Message,Help,Import2,Export2,OpenProject2,SaveProject2,Drag,CompareAudio
|
||||
[MenuBar/View]
|
||||
Windows=UndoHistory,MixerBoard
|
||||
Other=Toolbars,ShowExtraMenus,ShowClipping,ShowRMS
|
||||
[MenuBar/View/Other]
|
||||
Toolbars=Toolbars,Timeline
|
||||
[MenuBar/View/Other/Toolbars]
|
||||
[MenuBar/View/Other/Toolbars/Toolbars]
|
||||
Other=ShowTransportTB,ShowToolsTB,ShowRecordMeterTB,ShowPlayMeterTB,ShowEditTB,ShowCutCopyPasteTB,ShowTranscriptionTB,ShowDeviceTB,ShowSelectionTB,ShowTimeTB,ShowSpectralSelectionTB,ShowAudioSetupTB,ShowSnappingTB,ShowTimeSignatureTB
|
||||
[MenuBar/Analyze]
|
||||
[MenuBar/Analyze/Analyzers]
|
||||
Windows=ContrastAnalyser,PlotSpectrum
|
||||
[MenuBar/Transport]
|
||||
Basic=Play,Record,Scrubbing,Cursor
|
||||
[MenuBar/Transport/Basic]
|
||||
Cursor=CursSelStart,CursSelEnd,CursTrackStart,CursTrackEnd,Clip,CursProjectStart,CursProjectEnd
|
||||
Record=Record1stChoice,Record2ndChoice,TimerRecord,PunchAndRoll,Pause
|
||||
[MenuBar/Transport/Other]
|
||||
[MenuBar/Transport/Other/Options]
|
||||
Part2=PinnedHead,Overdub,SWPlaythrough
|
||||
[MenuBar/Tracks]
|
||||
[MenuBar/Tracks/Add]
|
||||
Add=NewMonoTrack,NewStereoTrack,NewLabelTrack,NewTimeTrack
|
||||
[MenuBar/Edit]
|
||||
Other=Clip,LabelEditMenus,EditMetaData
|
||||
[MenuBar/Edit/Other]
|
||||
Clip=ChangePitchAndSpeed,PitchDown,PitchUp,RenameClip,RenderPitchAndSpeed
|
||||
[MenuBar/Select]
|
||||
Basic=SelectAll,SelectNone,Tracks,Region,Spectral,Clip
|
||||
[MenuBar/Help]
|
||||
[MenuBar/Help/Other]
|
||||
Diagnostics=DeviceInfo,MidiDeviceInfo,Log,CrashReport
|
||||
[MenuBar/File]
|
||||
[MenuBar/File/Import-Export]
|
||||
ExportOther=ExportLabels,ExportMIDI
|
||||
Import=ImportAudio,ImportMIDI,ImportLabels,ImportRaw
|
||||
[MenuBar/Tools]
|
||||
Manage=ManageTools,Macros
|
||||
[FFmpeg]
|
||||
Enabled=1
|
||||
[Window]
|
||||
X=0
|
||||
Y=32
|
||||
Width=1918
|
||||
Height=1046
|
||||
Maximized=1
|
||||
Normal_X=400
|
||||
Normal_Y=173
|
||||
Normal_Width=1120
|
||||
Normal_Height=694
|
||||
Iconized=0
|
||||
[Preferences]
|
||||
Tracks=TracksBehaviors,Spectrum
|
||||
ImportExport=ExtImport
|
||||
[Prefs]
|
||||
Width=1046
|
||||
Height=573
|
||||
PrefsCategory=5
|
||||
[Prefs/KeyConfig]
|
||||
ViewBy=tree
|
||||
[LADSPA]
|
||||
Enable=1
|
||||
[LV2]
|
||||
Enable=1
|
||||
[Nyquist]
|
||||
Enable=1
|
||||
[VST]
|
||||
Enable=1
|
||||
[Vamp]
|
||||
Enable=1
|
||||
[Effects]
|
||||
GroupBy=default
|
||||
MaxPerGroup=15
|
||||
RealtimeGroupBy=groupby:type:publisher
|
||||
SkipEffectsScanAtStartup=0
|
||||
[Effects/NoiseReduction]
|
||||
Sensitivity=1.01
|
||||
Gain=27
|
||||
AttackTime=0.02
|
||||
ReleaseTime=0.1
|
||||
FreqSmoothing=6
|
||||
OldSensitivity=0
|
||||
ReductionChoice=0
|
||||
WindowTypes=2
|
||||
WindowSize=8
|
||||
StepsPerWindow=1
|
||||
Method=1
|
||||
[Warnings]
|
||||
FirstProjectSave=1
|
||||
MixMono=1
|
||||
MixStereo=1
|
||||
MixUnknownChannels=1
|
||||
MissingExtension=1
|
||||
DropoutDetected=1
|
||||
[ExtendedImport]
|
||||
OverrideExtendedImportByOpenFileDialogChoice=1
|
||||
[FileFormats]
|
||||
ExportDownMixChoice=MixDown
|
||||
LabelStyleChoice=Standard
|
||||
AllegroStyleChoice=Seconds
|
||||
ExportFormat_SF1=131072
|
||||
MP3RateModeChoice=SET
|
||||
MP3Bitrate=2
|
||||
MP3ChannelModeChoice=JOINT
|
||||
MP3SetRate=2
|
||||
MP3VbrRate=2
|
||||
MP3AbrRate=192
|
||||
MP3CbrRate=192
|
||||
OggExportQuality=50
|
||||
FLACLevel=5
|
||||
FLACBitDepth=16
|
||||
MP2Bitrate=160
|
||||
ExternalProgramShowOutput=0
|
||||
ExternalProgramExportCommand=lame - "%f"
|
||||
AACQuality=160
|
||||
AC3BitRate=160000
|
||||
OPUSBitrate=64000
|
||||
OPUSCompression=10
|
||||
OPUSFrameDuration=20
|
||||
OPUSVbrMode=on
|
||||
OPUSApplication=audio
|
||||
OPUSCutoff=0
|
||||
WMABitRate=128000
|
||||
WavPackEncodeQuality=1
|
||||
WavPackBitDepth=16
|
||||
WavPackHybridMode=0
|
||||
WavPackCreateCorrectionFile=0
|
||||
WavPackBitrate=40
|
||||
MusicFileImportSettingChoice=Ask
|
||||
MusicFileImportOnExistingProjectSettingChoice=MatchIfBeatsAndMeasures
|
||||
[FileFormats/ExportFormat_SF1_Type]
|
||||
WAV_10000=2
|
||||
AIFF_20000=2
|
||||
[FileFormats/ExternalProgramHistory]
|
||||
file01=ffmpeg -i - "%f.opus"
|
||||
file02=ffmpeg -i - "%f.wav"
|
||||
file03=ffmpeg -i - "%f"
|
||||
file04=lame - "%f"
|
||||
[AudioFiles]
|
||||
ShowId3Dialog=1
|
||||
SkipSilenceAtBeginning=0
|
||||
[Spectrum]
|
||||
ColorScheme=SpecColorNew
|
||||
MaxFreq=20000
|
||||
ZeroPaddingFactor=2
|
||||
Range=80
|
||||
MinFreq=0
|
||||
Gain=20
|
||||
FrequencyGain=0
|
||||
FFTSize=2048
|
||||
EnableSpectralSelection=1
|
||||
WindowType=3
|
||||
ScaleType=2
|
||||
Algorithm=0
|
||||
[Locale]
|
||||
Language=System
|
||||
[QuickPlay]
|
||||
ToolTips=1
|
||||
ScrubbingEnabled=0
|
||||
[Quality]
|
||||
DitherAlgorithmChoice=None
|
||||
LibsoxrHQSampleRateConverterChoice=BestQuality
|
||||
HQDitherAlgorithmChoice=Shaped
|
||||
LibsoxrSampleRateConverterChoice=BestQuality
|
||||
[MidiIO]
|
||||
Host=ALSA
|
||||
SynthLatency=0
|
||||
PlaybackDevice=ALSA: Midi Through Port-0
|
||||
[TagsEditorDialog]
|
||||
x=472
|
||||
y=248
|
||||
width=507
|
||||
height=510
|
||||
[Export]
|
||||
Format=WAV
|
||||
[Meter]
|
||||
[Meter/Input]
|
||||
Style=AutomaticStereo
|
||||
Bars=Gradient
|
||||
Type=dB
|
||||
RefreshRate=30
|
||||
[RecentFiles]
|
||||
file01=/home/user/Videos/2024-08-17 21-08-22.mkv
|
||||
file02=/home/user/Videos/2024-08-17 21-49-54.mkv
|
||||
file03=/home/user/Videos/2024-08-17 21-54-26.mkv
|
||||
file04=/home/user/Downloads/no_pp (1).mp3
|
||||
file05=/home/user/Downloads/no_pp.wav
|
||||
file06=/home/user/software/c/breakout_clone/assets/bounce.wav
|
||||
file07=/home/user/Downloads/bounce.wav
|
||||
file08=/home/user/Downloads/uwu.wav
|
||||
file09=/home/furry/music/bin.wav
|
||||
file10=bin.wav
|
||||
file11=place.wav
|
||||
[Snap]
|
||||
To=milliseconds
|
||||
[ActiveProjects]
|
||||
1=/var/tmp/audacity-user/New Project 2025-06-23 13-22-06 N-1.aup3unsaved
|
||||
[ExportAudioDialog]
|
||||
Format=WAV
|
||||
DefaultPath=/home/user/Music
|
||||
ExportRange=project
|
||||
SkipSilenceAtBeginning=0
|
||||
SplitMode=tracks
|
||||
IncludeAudioBeforeFirstLabel=0
|
||||
SplitNamePolicy=name
|
||||
OverwriteExisting=0
|
||||
[WaveTrackMenu]
|
||||
[WaveTrackMenu/SubViews]
|
||||
Extra=WaveColor,SpectrogramSettings
|
||||
1459
.config/audacity/pluginregistry.cfg
Normal file
1459
.config/audacity/pluginregistry.cfg
Normal file
File diff suppressed because it is too large
Load Diff
96
.config/audacity/pluginsettings.cfg
Normal file
96
.config/audacity/pluginsettings.cfg
Normal file
@@ -0,0 +1,96 @@
|
||||
pluginsettingsversion=1.0
|
||||
[pluginsettings]
|
||||
[pluginsettings/base64\:RWZmZWN0X0F1ZGFjaXR5X0F1ZGFjaXR5X05vaXNl]
|
||||
[pluginsettings/base64\:RWZmZWN0X0F1ZGFjaXR5X0F1ZGFjaXR5X05vaXNl/private]
|
||||
[pluginsettings/base64\:RWZmZWN0X0F1ZGFjaXR5X0F1ZGFjaXR5X05vaXNl/private/FactoryDefaults]
|
||||
Parameters=Amplitude="0.8" Type="White"
|
||||
Initialized=1
|
||||
[pluginsettings/base64\:RWZmZWN0X0F1ZGFjaXR5X0F1ZGFjaXR5X05vaXNl/private/CurrentSettings]
|
||||
Parameters=Amplitude="0.4" Type="White"
|
||||
LastUsedDuration=0.25
|
||||
[pluginsettings/base64\:RWZmZWN0X0F1ZGFjaXR5X0F1ZGFjaXR5X1RvbmU\=]
|
||||
[pluginsettings/base64\:RWZmZWN0X0F1ZGFjaXR5X0F1ZGFjaXR5X1RvbmU\=/private]
|
||||
[pluginsettings/base64\:RWZmZWN0X0F1ZGFjaXR5X0F1ZGFjaXR5X1RvbmU\=/private/FactoryDefaults]
|
||||
Parameters=Amplitude="0.8" Frequency="440" Interpolation="Linear" Waveform="Sine"
|
||||
Initialized=1
|
||||
[pluginsettings/base64\:RWZmZWN0X0F1ZGFjaXR5X0F1ZGFjaXR5X1RvbmU\=/private/CurrentSettings]
|
||||
Parameters=Amplitude="0.8" Frequency="256" Interpolation="Linear" Waveform="Square"
|
||||
LastUsedDuration=1
|
||||
[pluginsettings/base64\:RWZmZWN0X0F1ZGFjaXR5X0F1ZGFjaXR5X0ZhZGUgT3V0]
|
||||
[pluginsettings/base64\:RWZmZWN0X0F1ZGFjaXR5X0F1ZGFjaXR5X0ZhZGUgT3V0/private]
|
||||
[pluginsettings/base64\:RWZmZWN0X0F1ZGFjaXR5X0F1ZGFjaXR5X0ZhZGUgT3V0/private/FactoryDefaults]
|
||||
Parameters=
|
||||
Initialized=1
|
||||
[pluginsettings/base64\:RWZmZWN0X0F1ZGFjaXR5X0F1ZGFjaXR5X0ZhZGUgT3V0/private/CurrentSettings]
|
||||
Parameters=
|
||||
[pluginsettings/base64\:RWZmZWN0X0F1ZGFjaXR5X0F1ZGFjaXR5X0ZhZGUgSW4\=]
|
||||
[pluginsettings/base64\:RWZmZWN0X0F1ZGFjaXR5X0F1ZGFjaXR5X0ZhZGUgSW4\=/private]
|
||||
[pluginsettings/base64\:RWZmZWN0X0F1ZGFjaXR5X0F1ZGFjaXR5X0ZhZGUgSW4\=/private/FactoryDefaults]
|
||||
Parameters=
|
||||
Initialized=1
|
||||
[pluginsettings/base64\:RWZmZWN0X0F1ZGFjaXR5X0F1ZGFjaXR5X0ZhZGUgSW4\=/private/CurrentSettings]
|
||||
Parameters=
|
||||
[pluginsettings/base64\:RWZmZWN0X055cXVpc3RfRGF2aWQgUi5Ta3lfUGx1Y2s\=]
|
||||
[pluginsettings/base64\:RWZmZWN0X055cXVpc3RfRGF2aWQgUi5Ta3lfUGx1Y2s\=/private]
|
||||
[pluginsettings/base64\:RWZmZWN0X055cXVpc3RfRGF2aWQgUi5Ta3lfUGx1Y2s\=/private/FactoryDefaults]
|
||||
Parameters=DUR="1" FADE="Abrupt" PITCH="60"
|
||||
Initialized=1
|
||||
[pluginsettings/base64\:RWZmZWN0X055cXVpc3RfRGF2aWQgUi5Ta3lfUGx1Y2s\=/private/CurrentSettings]
|
||||
Parameters=DUR="1" FADE="Abrupt" PITCH="80"
|
||||
LastUsedDuration=1
|
||||
[pluginsettings/base64\:RWZmZWN0X0F1ZGFjaXR5X0F1ZGFjaXR5X0NoYW5nZSBTcGVlZCBhbmQgUGl0Y2g\=]
|
||||
[pluginsettings/base64\:RWZmZWN0X0F1ZGFjaXR5X0F1ZGFjaXR5X0NoYW5nZSBTcGVlZCBhbmQgUGl0Y2g\=/private]
|
||||
[pluginsettings/base64\:RWZmZWN0X0F1ZGFjaXR5X0F1ZGFjaXR5X0NoYW5nZSBTcGVlZCBhbmQgUGl0Y2g\=/private/FactoryDefaults]
|
||||
Parameters=Percentage="0"
|
||||
Initialized=1
|
||||
[pluginsettings/base64\:RWZmZWN0X0F1ZGFjaXR5X0F1ZGFjaXR5X0NoYW5nZSBTcGVlZCBhbmQgUGl0Y2g\=/private/CurrentSettings]
|
||||
Parameters=Percentage="0"
|
||||
TimeFormat=hh:mm:ss + milliseconds
|
||||
VinylChoice=0
|
||||
[pluginsettings/base64\:RWZmZWN0X0F1ZGFjaXR5X0F1ZGFjaXR5X0Rpc3RvcnRpb24\=]
|
||||
[pluginsettings/base64\:RWZmZWN0X0F1ZGFjaXR5X0F1ZGFjaXR5X0Rpc3RvcnRpb24\=/private]
|
||||
[pluginsettings/base64\:RWZmZWN0X0F1ZGFjaXR5X0F1ZGFjaXR5X0Rpc3RvcnRpb24\=/private/FactoryDefaults]
|
||||
Parameters=DC_Block="0" Noise_Floor="-70" Parameter_1="50" Parameter_2="50" Repeats="1" Threshold_dB="-6" Type="Hard Clipping"
|
||||
Initialized=1
|
||||
[pluginsettings/base64\:RWZmZWN0X0F1ZGFjaXR5X0F1ZGFjaXR5X0Rpc3RvcnRpb24\=/private/CurrentSettings]
|
||||
Parameters=DC_Block="0" Noise_Floor="-70" Parameter_1="50" Parameter_2="50" Repeats="1" Threshold_dB="-6" Type="Hard Clipping"
|
||||
[pluginsettings/base64\:RWZmZWN0X0F1ZGFjaXR5X0F1ZGFjaXR5X0NoYW5nZSBQaXRjaA\=\=]
|
||||
[pluginsettings/base64\:RWZmZWN0X0F1ZGFjaXR5X0F1ZGFjaXR5X0NoYW5nZSBQaXRjaA\=\=/private]
|
||||
[pluginsettings/base64\:RWZmZWN0X0F1ZGFjaXR5X0F1ZGFjaXR5X0NoYW5nZSBQaXRjaA\=\=/private/FactoryDefaults]
|
||||
Parameters=Percentage="0" SBSMS="0"
|
||||
Initialized=1
|
||||
[pluginsettings/base64\:RWZmZWN0X0F1ZGFjaXR5X0F1ZGFjaXR5X0NoYW5nZSBQaXRjaA\=\=/private/CurrentSettings]
|
||||
Parameters=Percentage="0" SBSMS="0"
|
||||
[pluginsettings/base64\:RWZmZWN0X055cXVpc3RfU3RldmUgRGF1bHRvbl9TcGVjdHJhbCBEZWxldGU\=]
|
||||
[pluginsettings/base64\:RWZmZWN0X055cXVpc3RfU3RldmUgRGF1bHRvbl9TcGVjdHJhbCBEZWxldGU\=/private]
|
||||
[pluginsettings/base64\:RWZmZWN0X055cXVpc3RfU3RldmUgRGF1bHRvbl9TcGVjdHJhbCBEZWxldGU\=/private/FactoryDefaults]
|
||||
Parameters=
|
||||
Initialized=1
|
||||
[pluginsettings/base64\:RWZmZWN0X055cXVpc3RfU3RldmUgRGF1bHRvbl9TcGVjdHJhbCBEZWxldGU\=/private/CurrentSettings]
|
||||
Parameters=
|
||||
[pluginsettings/base64\:RWZmZWN0X055cXVpc3RfQmVuamFtaW4gU2Nod2FydHogYW5kIFN0ZXZlIERhdWx0b25fQ2xpcCBGaXg\=]
|
||||
[pluginsettings/base64\:RWZmZWN0X055cXVpc3RfQmVuamFtaW4gU2Nod2FydHogYW5kIFN0ZXZlIERhdWx0b25fQ2xpcCBGaXg\=/private]
|
||||
[pluginsettings/base64\:RWZmZWN0X055cXVpc3RfQmVuamFtaW4gU2Nod2FydHogYW5kIFN0ZXZlIERhdWx0b25fQ2xpcCBGaXg\=/private/FactoryDefaults]
|
||||
Parameters=GAIN="-9" THRESHOLD="95"
|
||||
Initialized=1
|
||||
[pluginsettings/base64\:RWZmZWN0X055cXVpc3RfQmVuamFtaW4gU2Nod2FydHogYW5kIFN0ZXZlIERhdWx0b25fQ2xpcCBGaXg\=/private/CurrentSettings]
|
||||
Parameters=GAIN="-9" THRESHOLD="95"
|
||||
[pluginsettings/base64\:RWZmZWN0X0F1ZGFjaXR5X0F1ZGFjaXR5X05vaXNlIFJlZHVjdGlvbg\=\=]
|
||||
[pluginsettings/base64\:RWZmZWN0X0F1ZGFjaXR5X0F1ZGFjaXR5X05vaXNlIFJlZHVjdGlvbg\=\=/private]
|
||||
[pluginsettings/base64\:RWZmZWN0X0F1ZGFjaXR5X0F1ZGFjaXR5X05vaXNlIFJlZHVjdGlvbg\=\=/private/FactoryDefaults]
|
||||
Parameters=
|
||||
Initialized=1
|
||||
[pluginsettings/base64\:RWZmZWN0X0F1ZGFjaXR5X0F1ZGFjaXR5X05vaXNlIFJlZHVjdGlvbg\=\=/private/CurrentSettings]
|
||||
Parameters=
|
||||
[pluginsettings/base64\:RWZmZWN0X0F1ZGFjaXR5X0F1ZGFjaXR5X1JlcGFpcg\=\=]
|
||||
[pluginsettings/base64\:RWZmZWN0X0F1ZGFjaXR5X0F1ZGFjaXR5X1JlcGFpcg\=\=/private]
|
||||
[pluginsettings/base64\:RWZmZWN0X0F1ZGFjaXR5X0F1ZGFjaXR5X1JlcGFpcg\=\=/private/FactoryDefaults]
|
||||
Parameters=
|
||||
Initialized=1
|
||||
[pluginsettings/base64\:RWZmZWN0X0F1ZGFjaXR5X0F1ZGFjaXR5X1JlcGFpcg\=\=/private/CurrentSettings]
|
||||
Parameters=
|
||||
[providercustompaths]
|
||||
Module__The\ Audacity\ Team_LADSPA\ Effects_=
|
||||
Module__The\ Audacity\ Team_LV2\ Effects_=
|
||||
Module__The\ Audacity\ Team_VST\ Effects_=
|
||||
Module__The\ Audacity\ Team_VST3\ Effects_=
|
||||
22
.config/clangd/config.yaml
Normal file
22
.config/clangd/config.yaml
Normal file
@@ -0,0 +1,22 @@
|
||||
---
|
||||
CompileFlags:
|
||||
Compiler: gcc
|
||||
Index:
|
||||
Background: Build
|
||||
StandardLibrary: true
|
||||
Diagnostics:
|
||||
UnusedIncludes: None
|
||||
MissingIncludes: None
|
||||
ClangTidy:
|
||||
FastCheckFilter: Strict
|
||||
Add:
|
||||
- clang-analyzer*
|
||||
- bugprone*
|
||||
- misc*
|
||||
- performance*
|
||||
Remove:
|
||||
- bugprone-narrowing-conversions
|
||||
- bugprone-integer-division
|
||||
- bugprone-implicit-widening-of-multiplication-result
|
||||
- bugprone-switch-missing-default-case
|
||||
- bugprone-easily-swappable-parameters
|
||||
19
.config/fastfetch/arch-custom-lores.txt
Normal file
19
.config/fastfetch/arch-custom-lores.txt
Normal file
@@ -0,0 +1,19 @@
|
||||
|
||||
$1 ▄
|
||||
▄█▄
|
||||
▄███▄
|
||||
▄█████▄
|
||||
▄███████▄
|
||||
$2 ▄ ▀▀██████▄
|
||||
▄██▄▄ ▀█████▄
|
||||
▄█████████████▄
|
||||
▄███████████████▄
|
||||
$3 ▄█████████████████▄
|
||||
▄███████████████████▄
|
||||
▄█████████▀▀▀▀████████▄
|
||||
▄████████▀ ▀███████▄
|
||||
▄█████████ ████▀▀██▄
|
||||
$4 ▄██████████ █████▄▄▄
|
||||
▄██████████▀ ▀█████████▄
|
||||
▄██████▀▀▀ ▀▀██████▄
|
||||
▄███▀▀ ▀▀███▄
|
||||
19
.config/fastfetch/arch-custom.txt
Normal file
19
.config/fastfetch/arch-custom.txt
Normal file
@@ -0,0 +1,19 @@
|
||||
|
||||
$1 ▄
|
||||
▟█▙
|
||||
▟███▙
|
||||
▟█████▙
|
||||
▟███████▙
|
||||
$2 ▂▔▀▜██████▙
|
||||
▟██▅▂▝▜█████▙
|
||||
▟█████████████▙
|
||||
▟███████████████▙
|
||||
$3 ▟█████████████████▙
|
||||
▟███████████████████▙
|
||||
▟█████████▛▀▀▜████████▙
|
||||
▟████████▛ ▜███████▙
|
||||
▟█████████ ████████▙
|
||||
$4 ▟██████████ █████▆▅▄▃▂
|
||||
▟██████████▛ ▜█████████▙
|
||||
▟██████▀▀▀ ▀▀██████▙
|
||||
▟███▀▘ ▝▀███▙
|
||||
47
.config/fastfetch/config.jsonc
Normal file
47
.config/fastfetch/config.jsonc
Normal file
@@ -0,0 +1,47 @@
|
||||
{
|
||||
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
|
||||
"logo": {
|
||||
"source": "$XDG_CONFIG_HOME/fastfetch/arch-custom.txt",
|
||||
"type": "file",
|
||||
"color": {
|
||||
"1": "light_yellow",
|
||||
"2": "light_white",
|
||||
"3": "bright_magenta",
|
||||
"4": "black"
|
||||
}
|
||||
},
|
||||
"modules": [
|
||||
"title",
|
||||
"separator",
|
||||
// os-related
|
||||
"os",
|
||||
"kernel",
|
||||
"packages",
|
||||
"uptime",
|
||||
"shell",
|
||||
"bootmgr",
|
||||
"host",
|
||||
"break",
|
||||
// hardware info
|
||||
"cpu",
|
||||
"gpu",
|
||||
"memory",
|
||||
"board",
|
||||
"disk",
|
||||
"break",
|
||||
// user-interface
|
||||
"de",
|
||||
"wm",
|
||||
"wmtheme",
|
||||
"cursor",
|
||||
"icons",
|
||||
"theme",
|
||||
"font",
|
||||
"terminal",
|
||||
"terminalfont",
|
||||
"locale"
|
||||
],
|
||||
"display": {
|
||||
"color": "yellow"
|
||||
}
|
||||
}
|
||||
21
.config/i3/config
Normal file
21
.config/i3/config
Normal file
@@ -0,0 +1,21 @@
|
||||
# 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'
|
||||
28
.config/i3/config.d/applications.conf
Normal file
28
.config/i3/config.d/applications.conf
Normal file
@@ -0,0 +1,28 @@
|
||||
# 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 $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
|
||||
36
.config/i3/config.d/display.conf
Normal file
36
.config/i3/config.d/display.conf
Normal file
@@ -0,0 +1,36 @@
|
||||
# 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 ~/usr/bin/satallite-wp-update
|
||||
79
.config/i3/config.d/keymap.conf
Normal file
79
.config/i3/config.d/keymap.conf
Normal file
@@ -0,0 +1,79 @@
|
||||
#
|
||||
# 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
|
||||
27
.config/i3/config.d/workspace.conf
Normal file
27
.config/i3/config.d/workspace.conf
Normal file
@@ -0,0 +1,27 @@
|
||||
# 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
|
||||
32
.config/kitty/current-theme.conf
Normal file
32
.config/kitty/current-theme.conf
Normal file
@@ -0,0 +1,32 @@
|
||||
## name: Gruvbox Dark
|
||||
## author: Pavel Pertsev
|
||||
## license: MIT/X11
|
||||
## upstream: https://raw.githubusercontent.com/gruvbox-community/gruvbox-contrib/master/kitty/gruvbox-dark.conf
|
||||
|
||||
selection_foreground #ebdbb2
|
||||
selection_background #d65d0e
|
||||
|
||||
background #282828
|
||||
foreground #ebdbb2
|
||||
|
||||
color0 #3c3836
|
||||
color1 #cc241d
|
||||
color2 #98971a
|
||||
color3 #d79921
|
||||
color4 #458588
|
||||
color5 #b16286
|
||||
color6 #689d6a
|
||||
color7 #a89984
|
||||
color8 #928374
|
||||
color9 #fb4934
|
||||
color10 #b8bb26
|
||||
color11 #fabd2f
|
||||
color12 #83a598
|
||||
color13 #d3869b
|
||||
color14 #8ec07c
|
||||
color15 #fbf1c7
|
||||
|
||||
cursor #bdae93
|
||||
cursor_text_color #665c54
|
||||
|
||||
url_color #458588
|
||||
17
.config/kitty/kitty.conf
Normal file
17
.config/kitty/kitty.conf
Normal file
@@ -0,0 +1,17 @@
|
||||
# BEGIN_KITTY_THEME
|
||||
# Gruvbox Dark
|
||||
include current-theme.conf
|
||||
# END_KITTY_THEME
|
||||
|
||||
# shell tmux
|
||||
enable_audio_bell no
|
||||
|
||||
background_opacity 0.90
|
||||
|
||||
# BEGIN_KITTY_FONTS
|
||||
font_family family="JetBrainsMonoNL Nerd Font Mono"
|
||||
font_size 11.0
|
||||
bold_font auto
|
||||
italic_font auto
|
||||
bold_italic_font auto
|
||||
# END_KITTY_FONTS
|
||||
19
.config/kitty/kitty.conf.bak
Normal file
19
.config/kitty/kitty.conf.bak
Normal file
@@ -0,0 +1,19 @@
|
||||
# vim:fileencoding=utf-8:foldmethod=marker
|
||||
|
||||
# BEGIN_KITTY_THEME
|
||||
# Gruvbox Dark
|
||||
include current-theme.conf
|
||||
# END_KITTY_THEME
|
||||
|
||||
# shell tmux
|
||||
enable_audio_bell no
|
||||
|
||||
map ctrl+tab send_text all \x1b[1;5I
|
||||
map ctrl+shift+tab send_text all \x1b[1;6I
|
||||
|
||||
# BEGIN_KITTY_FONTS
|
||||
font_family family="JetBrainsMono Nerd Font"
|
||||
bold_font auto
|
||||
italic_font auto
|
||||
bold_italic_font auto
|
||||
# END_KITTY_FONTS
|
||||
19
.config/lazygit/config.yml
Normal file
19
.config/lazygit/config.yml
Normal file
@@ -0,0 +1,19 @@
|
||||
# yaml-language-server: $schema: https://raw.githubusercontent.com/jesseduffield/lazygit/master/schema/config.json
|
||||
promptToReturnFromSubprocess: false
|
||||
gui:
|
||||
nerdFontsVersion: ""
|
||||
tabWidth: 4
|
||||
timeFormat: "Mon 02/01/2006"
|
||||
shortTimeFormat: "15:04"
|
||||
splitDiff: auto
|
||||
mainPanelSplitMode: flexible
|
||||
showCommandLog: false
|
||||
git:
|
||||
fetchAll: true
|
||||
pagers:
|
||||
- colorArg: always
|
||||
pager: diff-so-fancy
|
||||
useConfig: false
|
||||
overrideGpg: true
|
||||
update:
|
||||
method: never
|
||||
1
.config/lf/colors
Symbolic link
1
.config/lf/colors
Symbolic link
@@ -0,0 +1 @@
|
||||
colours
|
||||
168
.config/lf/colours
Normal file
168
.config/lf/colours
Normal file
@@ -0,0 +1,168 @@
|
||||
# vim:ft=dircolors
|
||||
# (This is not a dircolors file but it helps to highlight colors and comments)
|
||||
|
||||
#
|
||||
# Set the colours to match EZA's default colours.
|
||||
#
|
||||
|
||||
# file types
|
||||
fi 00 # FILE
|
||||
di 34;01 # DIR
|
||||
ln 36 # LINK
|
||||
pi 33 # FIFO
|
||||
so 31;01 # SOCK
|
||||
bd 33;01 # BLK
|
||||
cd 33;01 # CHR
|
||||
or 31 # ORPHAN
|
||||
su 31;04 # SETUID
|
||||
sg 33;04 # SETGID
|
||||
tw 34;04 # STICKY_OTHER_WRITABLE
|
||||
ow 34 # OTHER_WRITABLE
|
||||
st 34;04 # STICKY
|
||||
ex 32;01 # EXEC
|
||||
|
||||
# build files all lowercase
|
||||
*makefile 33;04
|
||||
*cmakelists.txt 33;04
|
||||
*cargo.toml 33;04
|
||||
*package.json 33;04
|
||||
|
||||
# build files case sensitive variation
|
||||
*Makefile 33;04
|
||||
*CMakeLists.txt 33;04
|
||||
*Cargo.toml 33;04
|
||||
|
||||
# cryptographic files
|
||||
*.pub 33
|
||||
*.asc 33
|
||||
*.enc 33
|
||||
*.p12 33
|
||||
|
||||
# documents
|
||||
*.pdf 02;32
|
||||
*.docx 02;32
|
||||
*.doc 02;32
|
||||
*.dvi 02;32
|
||||
|
||||
# TODO: doesn't do anything?
|
||||
# temporary files
|
||||
*~ 02
|
||||
*.tmp 02
|
||||
*.swp 02
|
||||
|
||||
# archives or compressed
|
||||
*.tar 31
|
||||
*.tgz 31
|
||||
*.arc 31
|
||||
*.arj 31
|
||||
*.taz 31
|
||||
*.lha 31
|
||||
*.lz4 31
|
||||
*.lzh 31
|
||||
*.lzma 31
|
||||
*.tlz 31
|
||||
*.txz 31
|
||||
*.tzo 31
|
||||
*.t7z 31
|
||||
*.zip 31
|
||||
*.z 31
|
||||
*.dz 31
|
||||
*.gz 31
|
||||
*.lrz 31
|
||||
*.lz 31
|
||||
*.lzo 31
|
||||
*.xz 31
|
||||
*.zst 31
|
||||
*.tzst 31
|
||||
*.bz2 31
|
||||
*.bz 31
|
||||
*.tbz 31
|
||||
*.tbz2 31
|
||||
*.tz 31
|
||||
*.deb 31
|
||||
*.rpm 31
|
||||
*.jar 31
|
||||
*.war 31
|
||||
*.ear 31
|
||||
*.sar 31
|
||||
*.rar 31
|
||||
*.alz 31
|
||||
*.ace 31
|
||||
*.zoo 31
|
||||
*.cpio 31
|
||||
*.7z 31
|
||||
*.rz 31
|
||||
*.cab 31
|
||||
*.wim 31
|
||||
*.swm 31
|
||||
*.dwm 31
|
||||
*.esd 31
|
||||
|
||||
# image formats
|
||||
*.jpg 35
|
||||
*.jpeg 35
|
||||
*.mjpg 35
|
||||
*.mjpeg 35
|
||||
*.gif 35
|
||||
*.bmp 35
|
||||
*.pbm 35
|
||||
*.pgm 35
|
||||
*.ppm 35
|
||||
*.tga 35
|
||||
*.xbm 35
|
||||
*.xpm 35
|
||||
*.tif 35
|
||||
*.tiff 35
|
||||
*.png 35
|
||||
*.svg 35
|
||||
*.svgz 35
|
||||
*.mng 35
|
||||
*.pcx 35
|
||||
*.mov 35
|
||||
*.mpg 35
|
||||
*.mpeg 35
|
||||
*.m2v 35
|
||||
*.mkv 35
|
||||
*.webm 35
|
||||
*.ogm 35
|
||||
*.mp4 35
|
||||
*.m4v 35
|
||||
*.mp4v 35
|
||||
*.vob 35
|
||||
*.qt 35
|
||||
*.nuv 35
|
||||
*.wmv 35
|
||||
*.asf 35
|
||||
*.rm 35
|
||||
*.rmvb 35
|
||||
*.flc 35
|
||||
*.avi 35
|
||||
*.fli 35
|
||||
*.flv 35
|
||||
*.gl 35
|
||||
*.dl 35
|
||||
*.xcf 35
|
||||
*.xwd 35
|
||||
*.yuv 35
|
||||
*.cgm 35
|
||||
*.emf 35
|
||||
*.ogv 35
|
||||
*.ogx 35
|
||||
|
||||
# audio formats
|
||||
*.aac 36
|
||||
*.au 36
|
||||
*.flac 36
|
||||
*.m4a 36
|
||||
*.mid 36
|
||||
*.midi 36
|
||||
*.mka 36
|
||||
*.mp3 36
|
||||
*.mpc 36
|
||||
*.ogg 36
|
||||
*.ra 36
|
||||
*.wav 36
|
||||
*.oga 36
|
||||
*.opus 36
|
||||
*.spx 36
|
||||
*.xspf 36
|
||||
342
.config/lf/icons
Normal file
342
.config/lf/icons
Normal file
@@ -0,0 +1,342 @@
|
||||
# vim:ft=conf
|
||||
|
||||
# file types (with matching order)
|
||||
ln # LINK
|
||||
or # ORPHAN
|
||||
tw t # STICKY_OTHER_WRITABLE
|
||||
ow # OTHER_WRITABLE
|
||||
st t # STICKY
|
||||
di # DIR
|
||||
pi p # FIFO
|
||||
so s # SOCK
|
||||
bd b # BLK
|
||||
cd c # CHR
|
||||
su u # SETUID
|
||||
sg g # SETGID
|
||||
ex # EXEC
|
||||
fi # FILE
|
||||
|
||||
# file extensions (vim-devicons)
|
||||
*.styl
|
||||
*.sass
|
||||
*.scss
|
||||
*.htm
|
||||
*.html
|
||||
*.slim
|
||||
*.haml
|
||||
*.ejs
|
||||
*.css
|
||||
*.less
|
||||
*.md
|
||||
*.mdx
|
||||
*.markdown
|
||||
*.rmd
|
||||
*.json
|
||||
*.webmanifest
|
||||
*.js
|
||||
*.mjs
|
||||
*.jsx
|
||||
*.rb
|
||||
*.gemspec
|
||||
*.rake
|
||||
*.php
|
||||
*.py
|
||||
*.pyc
|
||||
*.pyo
|
||||
*.pyd
|
||||
*.coffee
|
||||
*.mustache
|
||||
*.hbs
|
||||
*.conf
|
||||
*.ini
|
||||
*.yml
|
||||
*.yaml
|
||||
*.toml
|
||||
*.bat
|
||||
*.mk
|
||||
*.jpg
|
||||
*.jpeg
|
||||
*.bmp
|
||||
*.png
|
||||
*.webp
|
||||
*.gif
|
||||
*.ico
|
||||
*.twig
|
||||
*.cpp
|
||||
*.c++
|
||||
*.cxx
|
||||
*.cc
|
||||
*.cp
|
||||
*.c
|
||||
*.cs
|
||||
*.h
|
||||
*.hh
|
||||
*.hpp
|
||||
*.hxx
|
||||
*.hs
|
||||
*.lhs
|
||||
*.nix
|
||||
*.lua
|
||||
*.java
|
||||
*.sh
|
||||
*.fish
|
||||
*.bash
|
||||
*.zsh
|
||||
*.ksh
|
||||
*.csh
|
||||
*.awk
|
||||
*.ps1
|
||||
*.ml λ
|
||||
*.mli λ
|
||||
*.diff
|
||||
*.db
|
||||
*.sql
|
||||
*.dump
|
||||
*.clj
|
||||
*.cljc
|
||||
*.cljs
|
||||
*.edn
|
||||
*.scala
|
||||
*.go
|
||||
*.dart
|
||||
*.xul
|
||||
*.sln
|
||||
*.suo
|
||||
*.pl
|
||||
*.pm
|
||||
*.t
|
||||
*.rss
|
||||
'*.f#'
|
||||
*.fsscript
|
||||
*.fsx
|
||||
*.fs
|
||||
*.fsi
|
||||
*.rs
|
||||
*.rlib
|
||||
*.d
|
||||
*.erl
|
||||
*.hrl
|
||||
*.ex
|
||||
*.exs
|
||||
*.eex
|
||||
*.leex
|
||||
*.heex
|
||||
*.vim
|
||||
*.ai
|
||||
*.psd
|
||||
*.psb
|
||||
*.ts
|
||||
*.tsx
|
||||
*.jl
|
||||
*.pp
|
||||
*.vue
|
||||
*.elm
|
||||
*.swift
|
||||
*.xcplayground
|
||||
*.tex
|
||||
*.r
|
||||
*.rproj
|
||||
*.sol
|
||||
*.pem
|
||||
|
||||
# file names (vim-devicons) (case-insensitive not supported in lf)
|
||||
*gruntfile.coffee
|
||||
*gruntfile.js
|
||||
*gruntfile.ls
|
||||
*gulpfile.coffee
|
||||
*gulpfile.js
|
||||
*gulpfile.ls
|
||||
*mix.lock
|
||||
*dropbox
|
||||
*.ds_store
|
||||
*.gitconfig
|
||||
*.gitignore
|
||||
*.gitattributes
|
||||
*.gitlab-ci.yml
|
||||
*.bashrc
|
||||
*.zshrc
|
||||
*.zshenv
|
||||
*.zprofile
|
||||
*.vimrc
|
||||
*.gvimrc
|
||||
*_vimrc
|
||||
*_gvimrc
|
||||
*.bashprofile
|
||||
*favicon.ico
|
||||
*license
|
||||
*node_modules
|
||||
*react.jsx
|
||||
*procfile
|
||||
*dockerfile
|
||||
*docker-compose.yml
|
||||
*docker-compose.yaml
|
||||
*compose.yml
|
||||
*compose.yaml
|
||||
*rakefile
|
||||
*config.ru
|
||||
*gemfile
|
||||
*makefile
|
||||
*cmakelists.txt
|
||||
*robots.txt
|
||||
|
||||
# file names (case-sensitive adaptations)
|
||||
*Gruntfile.coffee
|
||||
*Gruntfile.js
|
||||
*Gruntfile.ls
|
||||
*Gulpfile.coffee
|
||||
*Gulpfile.js
|
||||
*Gulpfile.ls
|
||||
*Dropbox
|
||||
*.DS_Store
|
||||
*LICENSE
|
||||
*React.jsx
|
||||
*Procfile
|
||||
*Dockerfile
|
||||
*Docker-compose.yml
|
||||
*Docker-compose.yaml
|
||||
*Rakefile
|
||||
*Gemfile
|
||||
*Makefile
|
||||
*CMakeLists.txt
|
||||
|
||||
# file patterns (vim-devicons) (patterns not supported in lf)
|
||||
# .*jquery.*\.js$
|
||||
# .*angular.*\.js$
|
||||
# .*backbone.*\.js$
|
||||
# .*require.*\.js$
|
||||
# .*materialize.*\.js$
|
||||
# .*materialize.*\.css$
|
||||
# .*mootools.*\.js$
|
||||
# .*vimrc.*
|
||||
# Vagrantfile$
|
||||
|
||||
# file patterns (file name adaptations)
|
||||
*jquery.min.js
|
||||
*angular.min.js
|
||||
*backbone.min.js
|
||||
*require.min.js
|
||||
*materialize.min.js
|
||||
*materialize.min.css
|
||||
*mootools.min.js
|
||||
*vimrc
|
||||
Vagrantfile
|
||||
|
||||
# archives or compressed (extensions from dircolors defaults)
|
||||
*.tar
|
||||
*.tgz
|
||||
*.arc
|
||||
*.arj
|
||||
*.taz
|
||||
*.lha
|
||||
*.lz4
|
||||
*.lzh
|
||||
*.lzma
|
||||
*.tlz
|
||||
*.txz
|
||||
*.tzo
|
||||
*.t7z
|
||||
*.zip
|
||||
*.z
|
||||
*.dz
|
||||
*.gz
|
||||
*.lrz
|
||||
*.lz
|
||||
*.lzo
|
||||
*.xz
|
||||
*.zst
|
||||
*.tzst
|
||||
*.bz2
|
||||
*.bz
|
||||
*.tbz
|
||||
*.tbz2
|
||||
*.tz
|
||||
*.deb
|
||||
*.rpm
|
||||
*.jar
|
||||
*.war
|
||||
*.ear
|
||||
*.sar
|
||||
*.rar
|
||||
*.alz
|
||||
*.ace
|
||||
*.zoo
|
||||
*.cpio
|
||||
*.7z
|
||||
*.rz
|
||||
*.cab
|
||||
*.wim
|
||||
*.swm
|
||||
*.dwm
|
||||
*.esd
|
||||
|
||||
# image formats (extensions from dircolors defaults)
|
||||
*.jpg
|
||||
*.jpeg
|
||||
*.mjpg
|
||||
*.mjpeg
|
||||
*.gif
|
||||
*.bmp
|
||||
*.pbm
|
||||
*.pgm
|
||||
*.ppm
|
||||
*.tga
|
||||
*.xbm
|
||||
*.xpm
|
||||
*.tif
|
||||
*.tiff
|
||||
*.png
|
||||
*.svg
|
||||
*.svgz
|
||||
*.mng
|
||||
*.pcx
|
||||
*.mov
|
||||
*.mpg
|
||||
*.mpeg
|
||||
*.m2v
|
||||
*.mkv
|
||||
*.webm
|
||||
*.ogm
|
||||
*.mp4
|
||||
*.m4v
|
||||
*.mp4v
|
||||
*.vob
|
||||
*.qt
|
||||
*.nuv
|
||||
*.wmv
|
||||
*.asf
|
||||
*.rm
|
||||
*.rmvb
|
||||
*.flc
|
||||
*.avi
|
||||
*.fli
|
||||
*.flv
|
||||
*.gl
|
||||
*.dl
|
||||
*.xcf
|
||||
*.xwd
|
||||
*.yuv
|
||||
*.cgm
|
||||
*.emf
|
||||
*.ogv
|
||||
*.ogx
|
||||
|
||||
# audio formats (extensions from dircolors defaults)
|
||||
*.aac
|
||||
*.au
|
||||
*.flac
|
||||
*.m4a
|
||||
*.mid
|
||||
*.midi
|
||||
*.mka
|
||||
*.mp3
|
||||
*.mpc
|
||||
*.ogg
|
||||
*.ra
|
||||
*.wav
|
||||
*.oga
|
||||
*.opus
|
||||
*.spx
|
||||
*.xspf
|
||||
|
||||
# other formats
|
||||
*.pdf
|
||||
13
.config/lf/lfrc
Normal file
13
.config/lf/lfrc
Normal file
@@ -0,0 +1,13 @@
|
||||
# enable hidden files by default
|
||||
set hidden!
|
||||
|
||||
# set the displayed info
|
||||
# TODO: also show file permissions/owner, if room or whatever
|
||||
set info size
|
||||
set icons
|
||||
|
||||
map <esc> quit
|
||||
map <enter> open
|
||||
|
||||
map d delete
|
||||
map x cut
|
||||
11
.config/nvim/.editorconfig
Normal file
11
.config/nvim/.editorconfig
Normal file
@@ -0,0 +1,11 @@
|
||||
[*]
|
||||
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
Normal file
5
.config/nvim/.gitignore
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
.luarc.json
|
||||
nvim
|
||||
|
||||
*.vim
|
||||
lazy-lock.json
|
||||
19
.config/nvim/LICENSE.md
Normal file
19
.config/nvim/LICENSE.md
Normal file
@@ -0,0 +1,19 @@
|
||||
MIT License
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
13
.config/nvim/README.md
Normal file
13
.config/nvim/README.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# Quinn's NeoVim configuration
|
||||
### Required/Recommended tools:
|
||||
- cURL
|
||||
- git
|
||||
- C compiler
|
||||
- Rust toolchain
|
||||
- lf
|
||||
- fd
|
||||
- clang-format
|
||||
- rustfmt
|
||||
- shfmt
|
||||
- yq
|
||||
- lua5.1
|
||||
10
.config/nvim/docs/TODO.md
Normal file
10
.config/nvim/docs/TODO.md
Normal file
@@ -0,0 +1,10 @@
|
||||
# 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?
|
||||
11
.config/nvim/init.lua
Normal file
11
.config/nvim/init.lua
Normal file
@@ -0,0 +1,11 @@
|
||||
vim.g.mapleader = ' '
|
||||
vim.g.maplocalleader = ' '
|
||||
|
||||
Autocmd = vim.api.nvim_create_autocmd
|
||||
Map = vim.keymap.set
|
||||
|
||||
---@class userdata
|
||||
---@field palette GruvboxPalette
|
||||
_G.userdat = {}
|
||||
|
||||
require('config')
|
||||
73
.config/nvim/lua/config/autocmds.lua
Normal file
73
.config/nvim/lua/config/autocmds.lua
Normal file
@@ -0,0 +1,73 @@
|
||||
-- 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
|
||||
4
.config/nvim/lua/config/init.lua
Normal file
4
.config/nvim/lua/config/init.lua
Normal file
@@ -0,0 +1,4 @@
|
||||
require('config.opts')
|
||||
require('config.maps')
|
||||
require('config.autocmds')
|
||||
require('config.lazy')
|
||||
24
.config/nvim/lua/config/lazy.lua
Normal file
24
.config/nvim/lua/config/lazy.lua
Normal file
@@ -0,0 +1,24 @@
|
||||
-- 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' })
|
||||
45
.config/nvim/lua/config/maps.lua
Normal file
45
.config/nvim/lua/config/maps.lua
Normal file
@@ -0,0 +1,45 @@
|
||||
-- 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 tab' })
|
||||
|
||||
-- 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' })
|
||||
|
||||
-- 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" })
|
||||
59
.config/nvim/lua/config/opts.lua
Normal file
59
.config/nvim/lua/config/opts.lua
Normal file
@@ -0,0 +1,59 @@
|
||||
local o = vim.opt
|
||||
|
||||
-- set options
|
||||
o.clipboard = "unnamedplus" -- keep the clipboard in sync with the one provided by the OS
|
||||
o.termguicolors = true -- allows for colour in the terminal
|
||||
o.number = true -- show line numbers
|
||||
o.cursorline = true -- highlight the current line
|
||||
o.cursorcolumn = false -- highlight the current column
|
||||
o.dir = vim.fn.stdpath('cache') .. '/swp' -- swap directory location for recovery
|
||||
o.sessionoptions = 'buffers,curdir,folds,help,localoptions,tabpages,terminal'
|
||||
o.expandtab = false -- whether tabs are expanded to spaces (overridden by .editorconfig)
|
||||
o.diffopt = 'internal,filler,closeoff,linematch:60' -- diff visualisation
|
||||
o.foldenable = true -- whether folding is enabled
|
||||
o.wrap = false -- whether to wrap text to a new line when it goes off-screen
|
||||
o.breakindent = true -- wrapped lines start at the same location as the start of the line
|
||||
o.list = true -- shows invisible characters
|
||||
o.listchars = { -- whitespace characters
|
||||
eol = nil,
|
||||
trail = '~',
|
||||
extends = nil,
|
||||
precedes = '<',
|
||||
tab = '•-',
|
||||
space = '·',
|
||||
nbsp = '␣',
|
||||
}
|
||||
o.mouse = 'nv' -- which modes the mouse is enabled in 'a:all'
|
||||
o.relativenumber = true -- whether line numbers are relative to the cursor
|
||||
o.scrolloff = 10 -- minimal number of screen lines to keep above and below the cursor
|
||||
o.showtabline = 2 -- whether to show the tab line
|
||||
o.signcolumn = 'yes' -- always show the signcolumn, otherwise it shifts text all the time
|
||||
o.tabstop = 8 -- visual spaces per tab
|
||||
o.softtabstop = 8 -- spaces inserted per tab in insert mode
|
||||
o.shiftwidth = 8 -- spaces for auto-indent
|
||||
o.smartindent = true -- behave a bit more nuanced with when to indent
|
||||
o.ignorecase = true -- whether case should be ignored whilst searching
|
||||
o.smartcase = true -- overrides the above option if contains capital letters
|
||||
o.inccommand = 'split' -- split|nosplit whether substitutions should appear whilst typing.
|
||||
o.splitbelow = true -- force all horizontal splits below the current window
|
||||
o.splitright = true -- force all vertical splits to the right of this window
|
||||
o.showmode = false -- don't show mode as this is already in the status line
|
||||
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.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.updatetime = 250 -- number of MS of nothing typed to write a swap file to disk.
|
||||
o.spell = true -- whether spell checking is enabled
|
||||
o.spelllang = 'en_gb,nl' -- set the spell languages
|
||||
o.spellfile = vim.fn.stdpath('config') .. '/spell/user.utf-8.add'
|
||||
|
||||
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,
|
||||
})
|
||||
44
.config/nvim/lua/plugin/auto-session.lua
Normal file
44
.config/nvim/lua/plugin/auto-session.lua
Normal file
@@ -0,0 +1,44 @@
|
||||
---@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,
|
||||
}
|
||||
32
.config/nvim/lua/plugin/autopairs.lua
Normal file
32
.config/nvim/lua/plugin/autopairs.lua
Normal file
@@ -0,0 +1,32 @@
|
||||
---@type LazySpec
|
||||
return { {
|
||||
'windwp/nvim-autopairs', -- automatically inserts closing brackets
|
||||
event = { 'BufReadPre', 'BufNewFile' },
|
||||
opts = {
|
||||
enable_moveright = true, -- moves the cursor over existing pairs instead of inserting duplicates
|
||||
check_ts = true, -- whether to check treesitter for specific nodes
|
||||
ts_config = {}
|
||||
},
|
||||
config = function(_, opts)
|
||||
local autopairs = require 'nvim-autopairs'
|
||||
autopairs.setup(opts)
|
||||
|
||||
-- customise the rule for [] brackets so it doesn't close when typing ANSI escape codes
|
||||
local rule = autopairs.get_rule '['
|
||||
if rule then
|
||||
rule:with_pair(function(opt)
|
||||
local ei = math.max(1, opt.col - 1) -- get the end-index
|
||||
local prev_oct = opt.line:sub(math.max(1, opt.col - 4), ei) -- get the range of an octal escape code
|
||||
local prev_hex = opt.line:sub(math.max(1, opt.col - 4), ei) -- get the range of a hexadecimal escape code
|
||||
local prev_cha = opt.line:sub(math.max(1, opt.col - 2), ei) -- get the range of a character escape code
|
||||
|
||||
-- check whether we can't match any of the patterns,
|
||||
-- if so return true, otherwise return false (whether to insert a pair)
|
||||
return (prev_oct ~= [[\033]] and prev_hex ~= [[\x1b]] and prev_cha ~= [[\e]])
|
||||
end)
|
||||
else
|
||||
vim.notify('could not add a rule for not auto-closing [ when typing an ANSI escape code',
|
||||
vim.log.levels.WARN)
|
||||
end
|
||||
end,
|
||||
} }
|
||||
69
.config/nvim/lua/plugin/blink-cmp.lua
Normal file
69
.config/nvim/lua/plugin/blink-cmp.lua
Normal file
@@ -0,0 +1,69 @@
|
||||
---@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
|
||||
} }
|
||||
29
.config/nvim/lua/plugin/bufferline.lua
Normal file
29
.config/nvim/lua/plugin/bufferline.lua
Normal file
@@ -0,0 +1,29 @@
|
||||
---@type LazySpec
|
||||
return { {
|
||||
'akinsho/bufferline.nvim', -- shows the opened buffers
|
||||
event = 'VeryLazy',
|
||||
dependencies = { 'nvim-tree/nvim-web-devicons', },
|
||||
---@type bufferline.UserConfig
|
||||
opts = {
|
||||
options = {
|
||||
mode = 'buffers',
|
||||
separator_style = '',
|
||||
sort_by = 'directory',
|
||||
diagnostics = 'nvim_lsp',
|
||||
diagnostics_indicator = function(c, _, _, _)
|
||||
return '(' .. c .. ')'
|
||||
end,
|
||||
},
|
||||
},
|
||||
config = function(_, opts)
|
||||
require('bufferline').setup(opts)
|
||||
|
||||
Map('n', '<tab>', '<cmd>BufferLineCycleNext<cr>', { desc = 'switch to the next tab' })
|
||||
Map('n', '<s-tab>', '<cmd>BufferLineCyclePrev<cr>', { desc = 'switch to the previous tab' })
|
||||
|
||||
Map('n', '<leader>wch', '<cmd>BufferLineCloseLeft<cr>', { desc = 'close the tabs on the left' })
|
||||
Map('n', '<leader>wcl', '<cmd>BufferLineCloseRight<cr>', { desc = 'close the tabs on the right' })
|
||||
Map('n', '<leader>wcw', '<cmd>BufferLineCloseOthers<cr>',
|
||||
{ desc = 'close all tabs except the current one' })
|
||||
end,
|
||||
} }
|
||||
38
.config/nvim/lua/plugin/conform.lua
Normal file
38
.config/nvim/lua/plugin/conform.lua
Normal file
@@ -0,0 +1,38 @@
|
||||
---@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' },
|
||||
},
|
||||
}
|
||||
} }
|
||||
54
.config/nvim/lua/plugin/gitsigns.lua
Normal file
54
.config/nvim/lua/plugin/gitsigns.lua
Normal file
@@ -0,0 +1,54 @@
|
||||
---@type LazySpec
|
||||
return { {
|
||||
'lewis6991/gitsigns.nvim', -- adds git signs to the signcolumn
|
||||
event = 'VeryLazy',
|
||||
opts = {
|
||||
signs_staged_enable = true, -- whether staged statuses are enabled
|
||||
signcolumn = true, -- the signs enable/disable based on the signcolumn state
|
||||
current_line_blame = true, -- show the blame of the current line
|
||||
current_line_blame_opts = {
|
||||
delay = 50, -- delay in MS before blame is shown
|
||||
ignore_whitespace = true, -- whether to ignore whitespace
|
||||
use_focus = true, -- whether to only enable when the buffer is in focus
|
||||
},
|
||||
signs = { -- signs when working
|
||||
add = { text = '+' },
|
||||
change = { text = '~' },
|
||||
delete = { text = '_' },
|
||||
topdelete = { text = '‾' },
|
||||
changedelete = { text = '~' },
|
||||
untracked = { text = '┆' },
|
||||
},
|
||||
signs_staged = { -- signs when staged
|
||||
add = { text = 'A' },
|
||||
change = { text = 'M' },
|
||||
delete = { text = 'D' },
|
||||
topdelete = { text = 'D' },
|
||||
changedelete = { text = 'M' },
|
||||
untracked = { text = 'U' },
|
||||
},
|
||||
attach_to_untracked = true, -- shows untracked files' signcolumn
|
||||
},
|
||||
config = function(_, opts)
|
||||
require('gitsigns').setup(opts)
|
||||
|
||||
local palette = _G.userdat.palette
|
||||
local bg = vim.api.nvim_get_hl(0, { name = 'SignColumn' }).bg
|
||||
for n, fg in pairs {
|
||||
GitSignsAdd = palette.bright_green,
|
||||
GitSignsChange = palette.bright_orange,
|
||||
GitSignsDelete = palette.bright_red,
|
||||
GitSignsTopdelete = palette.bright_red,
|
||||
GitSignsChangedelete = palette.bright_orange,
|
||||
GitSignsUntracked = palette.bright_aqua,
|
||||
GitSignsStagedAdd = palette.neutral_green,
|
||||
GitSignsStagedChange = palette.neutral_orange,
|
||||
GitSignsStagedDelete = palette.neutral_red,
|
||||
GitSignsStagedTopDelete = palette.neutral_red,
|
||||
GitSignsStagedChangedelete = palette.neutral_orange,
|
||||
GitSignsStagedUntracked = palette.neutral_aqua,
|
||||
} do
|
||||
vim.api.nvim_set_hl(0, n, { fg = fg, bg = bg })
|
||||
end
|
||||
end,
|
||||
} }
|
||||
31
.config/nvim/lua/plugin/gruvbox.lua
Normal file
31
.config/nvim/lua/plugin/gruvbox.lua
Normal file
@@ -0,0 +1,31 @@
|
||||
---@type LazySpec
|
||||
return { {
|
||||
'ellisonleao/gruvbox.nvim',
|
||||
lazy = false,
|
||||
dependencies = { 'johnfrankmorgan/whitespace.nvim' },
|
||||
priority = 1000,
|
||||
---@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
|
||||
} }
|
||||
12
.config/nvim/lua/plugin/lazydev.lua
Normal file
12
.config/nvim/lua/plugin/lazydev.lua
Normal file
@@ -0,0 +1,12 @@
|
||||
---@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
|
||||
},
|
||||
},
|
||||
}, }
|
||||
21
.config/nvim/lua/plugin/lf-nvim.lua
Normal file
21
.config/nvim/lua/plugin/lf-nvim.lua
Normal file
@@ -0,0 +1,21 @@
|
||||
---@module 'lazy'
|
||||
---@type LazySpec
|
||||
return { {
|
||||
'lmburns/lf.nvim',
|
||||
lazy = false,
|
||||
dependencies = { 'akinsho/toggleterm.nvim' },
|
||||
---@module 'lf'
|
||||
---@type Lf.Config
|
||||
opts = {
|
||||
direction = 'float',
|
||||
border = 'rounded',
|
||||
},
|
||||
config = function(_, opts)
|
||||
vim.g.lf_netrw = 1
|
||||
|
||||
local lf = require('lf')
|
||||
lf.setup(opts)
|
||||
|
||||
Map({ 'n' }, '<leader>o', lf.start, { desc = 'Shows the LF window' })
|
||||
end
|
||||
} }
|
||||
5
.config/nvim/lua/plugin/lsp_signature.lua
Normal file
5
.config/nvim/lua/plugin/lsp_signature.lua
Normal file
@@ -0,0 +1,5 @@
|
||||
---@type LazySpec
|
||||
return { {
|
||||
'ray-x/lsp_signature.nvim',
|
||||
opts = { always_trigger = false }
|
||||
} }
|
||||
51
.config/nvim/lua/plugin/lspconfig.lua
Normal file
51
.config/nvim/lua/plugin/lspconfig.lua
Normal file
@@ -0,0 +1,51 @@
|
||||
---@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
|
||||
} }
|
||||
5
.config/nvim/lua/plugin/luasnip.lua
Normal file
5
.config/nvim/lua/plugin/luasnip.lua
Normal file
@@ -0,0 +1,5 @@
|
||||
return { {
|
||||
'L3MON4D3/LuaSnip',
|
||||
build = 'make install_jsregexp',
|
||||
version = "v2.*",
|
||||
} }
|
||||
71
.config/nvim/lua/plugin/mini.lua
Normal file
71
.config/nvim/lua/plugin/mini.lua
Normal file
@@ -0,0 +1,71 @@
|
||||
---@type LazySpec
|
||||
return { {
|
||||
'echasnovski/mini.nvim',
|
||||
config = function()
|
||||
require('mini.ai').setup()
|
||||
require('mini.surround').setup()
|
||||
require('mini.operators').setup()
|
||||
|
||||
require('mini.indentscope').setup({
|
||||
symbol = '¦',
|
||||
draw = {
|
||||
delay = 50, -- delay in MS before writing the indicator
|
||||
animation = require('mini.indentscope').gen_animation.none(),
|
||||
},
|
||||
options = {
|
||||
try_as_border = false,
|
||||
},
|
||||
})
|
||||
vim.api.nvim_set_hl(0, 'MiniIndentscopeSymbol', { fg = _G.userdat.palette.dark2, bg = nil })
|
||||
|
||||
require('mini.move').setup({
|
||||
mappings = {
|
||||
-- move visual selection in visual mode
|
||||
left = '<m-h>',
|
||||
down = '<m-j>',
|
||||
up = '<m-k>',
|
||||
right = '<m-l>',
|
||||
|
||||
-- move current line in normal mode
|
||||
line_left = '<m-h>',
|
||||
line_down = '<m-j>',
|
||||
line_up = '<m-k>',
|
||||
line_right = '<m-l>',
|
||||
},
|
||||
options = {
|
||||
reindent_linewise = true, -- automatically re-indent selection during line vertical move
|
||||
},
|
||||
})
|
||||
|
||||
require('mini.statusline').setup({
|
||||
content = {
|
||||
active = function()
|
||||
local mode, mode_hl = MiniStatusline.section_mode({ trunc_width = 120 })
|
||||
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,
|
||||
})
|
||||
end
|
||||
} }
|
||||
59
.config/nvim/lua/plugin/nvim-lint.lua
Normal file
59
.config/nvim/lua/plugin/nvim-lint.lua
Normal file
@@ -0,0 +1,59 @@
|
||||
---@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
|
||||
} }
|
||||
74
.config/nvim/lua/plugin/nvim-treesitter.lua
Normal file
74
.config/nvim/lua/plugin/nvim-treesitter.lua
Normal file
@@ -0,0 +1,74 @@
|
||||
---@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,
|
||||
} }
|
||||
13
.config/nvim/lua/plugin/render-markdown.lua
Normal file
13
.config/nvim/lua/plugin/render-markdown.lua
Normal file
@@ -0,0 +1,13 @@
|
||||
---@module 'lazy'
|
||||
---@type LazySpec
|
||||
return { {
|
||||
'MeanderingProgrammer/render-markdown.nvim',
|
||||
dependencies = { 'nvim-treesitter/nvim-treesitter', 'echasnovski/mini.nvim' },
|
||||
---@module 'render-markdown'
|
||||
---@type render.md.UserConfig
|
||||
opts = {
|
||||
completions = {
|
||||
blink = { enabled = true }
|
||||
}
|
||||
}
|
||||
} }
|
||||
83
.config/nvim/lua/plugin/snacks.lua
Normal file
83
.config/nvim/lua/plugin/snacks.lua
Normal file
@@ -0,0 +1,83 @@
|
||||
---@module 'snacks'
|
||||
---@module 'lazy'
|
||||
---@type LazySpec
|
||||
return { { -- provides quality of life features for neovim
|
||||
'folke/snacks.nvim',
|
||||
priority = 1000,
|
||||
lazy = false,
|
||||
---@type snacks.Config
|
||||
opts = {
|
||||
animate = { enabled = false }, -- efficient animations including over 45 easing functions (library)
|
||||
bigfile = { enabled = false }, -- deal with big files
|
||||
bufdelete = { enabled = false }, -- delete buffers without disrupting window layout
|
||||
dashboard = { enabled = false }, -- beautiful declarative dashboards
|
||||
debug = { enabled = false }, -- pretty inspect & backtraces for debugging
|
||||
dim = { enabled = false }, -- focus on the active scope by dimming the rest
|
||||
explorer = { enabled = false }, -- a file explorer (picker in disguise)
|
||||
git = { enabled = false }, -- git utilities
|
||||
gitbrowse = { enabled = false }, -- open the current file, branch, commit, or repo in a browser (e.g. github, gitlab, etc.)
|
||||
image = { enabled = true }, -- image viewer using kitty graphics protocol
|
||||
indent = { enabled = false }, -- indent guides and scopes
|
||||
input = { enabled = false }, -- better vim.ui.input
|
||||
layout = { enabled = false }, -- window layouts
|
||||
lazygit = { enabled = false }, -- open lazygit in a float, auto-configure colour scheme and integration with neovim
|
||||
notifier = { enabled = true }, -- pretty vim.notify
|
||||
notify = { enabled = true }, -- utility functions to work with neovim's vim.notify
|
||||
picker = { enabled = false }, -- picker for selecting items
|
||||
profiler = { enabled = false }, -- neovim lua profiler
|
||||
quickfile = { enabled = true }, -- when doing nvim somefile.txt, it will render the file as quickly as possible, before loading your plugins.
|
||||
rename = { enabled = true }, -- LSP-integrated file renaming with support for plugins like and.
|
||||
scope = { enabled = false }, -- scope detection, text objects and jumping based on treesitter or indent
|
||||
scratch = { enabled = false }, -- scratch buffers with a persistent file
|
||||
scroll = { enabled = false }, -- smooth scrolling
|
||||
statuscolumn = { enabled = false }, -- pretty status column
|
||||
terminal = { enabled = false }, -- create and toggle floating/split terminals
|
||||
toggle = { enabled = false }, -- toggle keymaps integrated with which-key icons / colours
|
||||
util = { enabled = false }, -- utility functions for Snacks (library)
|
||||
win = { enabled = false }, -- create and manage floating windows or splits
|
||||
words = { enabled = true }, -- auto-show LSP references and quickly navigate between them
|
||||
zen = { enabled = false }, -- zen mode; distraction-free coding
|
||||
},
|
||||
keys = {
|
||||
{ '*', function() Snacks.words.jump(-vim.v.count1) end, desc = 'next reference', nowait = true },
|
||||
{ '#', function() Snacks.words.jump(vim.v.count1) end, desc = 'prev reference', nowait = true },
|
||||
{ '<c-w>', function() Snacks.bufdelete() end, desc = 'delete buffer', nowait = true },
|
||||
{ '<leader>N', function() Snacks.notifier.show_history() end, desc = 'show notification history' },
|
||||
{ '<leader>U', function() Snacks.picker.undo() end, desc = 'undo tree' },
|
||||
{ '<leader>gB', function() Snacks.git.blame_line() end, desc = 'git blame line' },
|
||||
{ '<leader>gb', function() Snacks.picker.git_branches() end, desc = 'git branches' },
|
||||
{ '<leader>@', function() Snacks.picker.lsp_symbols() end, desc = 'workspace symbols' },
|
||||
{ '<leader>ld', function() Snacks.picker.lsp_definitions() end, desc = 'definition' },
|
||||
{ '<leader>lr', function() Snacks.picker.lsp_references() end, desc = 'references' },
|
||||
{ '<leader>li', function() Snacks.picker.lsp_implementations() end, desc = 'implementation' },
|
||||
{ '<leader>lt', function() Snacks.picker.lsp_type_definitions() end, desc = 'type definition' },
|
||||
{ '<leader>?', function() Snacks.picker.keymaps() end, desc = 'keymaps' },
|
||||
{ 'gd', function() Snacks.picker.lsp_definitions() end, desc = 'definition' },
|
||||
{ 'gr', function() Snacks.picker.lsp_references() end, desc = 'references' },
|
||||
},
|
||||
init = function()
|
||||
Autocmd("User", {
|
||||
pattern = 'VeryLazy',
|
||||
callback = function()
|
||||
local virt_lines = false;
|
||||
Snacks.toggle.new({
|
||||
id = "virtual_lines",
|
||||
name = "diagnostics virtual lines",
|
||||
get = function() return virt_lines end,
|
||||
set = function(v)
|
||||
virt_lines = v
|
||||
vim.diagnostic.config({ virtual_lines = v })
|
||||
end,
|
||||
}):map('<leader>tl')
|
||||
|
||||
Snacks.toggle.option('wrap', { name = 'word wrap' }):map('<leader>tw')
|
||||
Snacks.toggle.option('spell', { name = 'spelling' }):map('<leader>ts')
|
||||
Snacks.toggle.inlay_hints():map('<leader>th')
|
||||
end,
|
||||
})
|
||||
end,
|
||||
---@param opts snacks.Config
|
||||
config = function(_, opts)
|
||||
require('snacks').setup(opts)
|
||||
end
|
||||
} }
|
||||
71
.config/nvim/lua/plugin/telescope.lua
Normal file
71
.config/nvim/lua/plugin/telescope.lua
Normal file
@@ -0,0 +1,71 @@
|
||||
---@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-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,
|
||||
} }
|
||||
22
.config/nvim/lua/plugin/todo-comments.lua
Normal file
22
.config/nvim/lua/plugin/todo-comments.lua
Normal file
@@ -0,0 +1,22 @@
|
||||
---@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,
|
||||
} }
|
||||
53
.config/nvim/lua/plugin/toggleterm.lua
Normal file
53
.config/nvim/lua/plugin/toggleterm.lua
Normal file
@@ -0,0 +1,53 @@
|
||||
---@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
|
||||
} }
|
||||
51
.config/nvim/lua/plugin/which-key.lua
Normal file
51
.config/nvim/lua/plugin/which-key.lua
Normal file
@@ -0,0 +1,51 @@
|
||||
---@type LazySpec
|
||||
return { { -- displays pending keybinds, helps with remembering keybinds
|
||||
'folke/which-key.nvim',
|
||||
event = 'VeryLazy',
|
||||
---@module 'which-key'
|
||||
---@type wk.Opts
|
||||
opts = {
|
||||
delay = 0, -- delay in MS between pressing a key and opening which-key
|
||||
icons = {
|
||||
mappings = true,
|
||||
keys = {
|
||||
Up = '',
|
||||
Down = '',
|
||||
Left = '',
|
||||
Right = '',
|
||||
C = '',
|
||||
M = '',
|
||||
D = '',
|
||||
S = '',
|
||||
CR = '',
|
||||
Esc = '',
|
||||
ScrollWheelUp = '',
|
||||
ScrollWheelDown = '',
|
||||
NL = '',
|
||||
BS = '',
|
||||
Space = '',
|
||||
Tab = '',
|
||||
F1 = '<F1>',
|
||||
F2 = '<F2>',
|
||||
F3 = '<F3>',
|
||||
F4 = '<F4>',
|
||||
F5 = '<F5>',
|
||||
F6 = '<F6>',
|
||||
F7 = '<F7>',
|
||||
F8 = '<F8>',
|
||||
F9 = '<F9>',
|
||||
F10 = '<F10>',
|
||||
F11 = '<F11>',
|
||||
F12 = '<F12>',
|
||||
},
|
||||
},
|
||||
spec = { -- document the key chains we know about
|
||||
{ '<leader>g', group = 'git' },
|
||||
{ '<leader>s', group = 'search' },
|
||||
{ '<leader>t', group = 'toggle' },
|
||||
{ '<leader>w', group = 'windows' },
|
||||
{ '<leader>l', group = 'lsp' },
|
||||
{ '<leader>wc', group = 'close' },
|
||||
},
|
||||
},
|
||||
} }
|
||||
BIN
.config/nvim/spell/nl.utf-8.spl
Normal file
BIN
.config/nvim/spell/nl.utf-8.spl
Normal file
Binary file not shown.
BIN
.config/nvim/spell/nl.utf-8.sug
Normal file
BIN
.config/nvim/spell/nl.utf-8.sug
Normal file
Binary file not shown.
56
.config/nvim/spell/user.utf-8.add
Normal file
56
.config/nvim/spell/user.utf-8.add
Normal file
@@ -0,0 +1,56 @@
|
||||
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
|
||||
BIN
.config/nvim/spell/user.utf-8.add.spl
Normal file
BIN
.config/nvim/spell/user.utf-8.add.spl
Normal file
Binary file not shown.
33
.config/picom.conf
Normal file
33
.config/picom.conf
Normal file
@@ -0,0 +1,33 @@
|
||||
backend = "glx";
|
||||
vsync = true;
|
||||
shadow = false;
|
||||
|
||||
fading = true;
|
||||
fade-delta = 5;
|
||||
fade-in-step = 0.03;
|
||||
fade-out-step = 0.03;
|
||||
|
||||
opacity-rule = [
|
||||
"100:class_g = 'i3-frame'"
|
||||
];
|
||||
|
||||
blur-background-exclude = [
|
||||
"name *= 'Screenshot'",
|
||||
"class_g ~= 'slop'",
|
||||
"class_g ~= 'obs'",
|
||||
"class_g ~= 'Peek'",
|
||||
"window_type = 'dock'",
|
||||
"window_type = 'desktop'",
|
||||
"window_type = 'notification'",
|
||||
"window_type = 'tooltip'",
|
||||
"window_type = 'menu'",
|
||||
"window_type = 'popup_menu'",
|
||||
]
|
||||
|
||||
blur-method = "dual_kawase";
|
||||
blur-strength = 5;
|
||||
|
||||
corner-radius = 0;
|
||||
|
||||
# avoid GPU artefacts with some drivers
|
||||
use-damage = true;
|
||||
27
.config/polybar/bars/top.ini
Normal file
27
.config/polybar/bars/top.ini
Normal file
@@ -0,0 +1,27 @@
|
||||
; the top polybar
|
||||
[bar/top]
|
||||
width = 100%
|
||||
height = 24pt
|
||||
radius = 0
|
||||
line-size = 3pt
|
||||
border-size = 0pt
|
||||
font-0 = JetBrainsMonoNLNerdFont;2
|
||||
background = ${colours.background}
|
||||
foreground = ${colours.foreground}
|
||||
separator-foreground = ${colours.disabled}
|
||||
border-color = #00000000
|
||||
module-margin = 1
|
||||
cursor-click = pointer
|
||||
cursor-scroll = ns-resize
|
||||
enable-ipc = true
|
||||
|
||||
separator = |
|
||||
padding-left = 0
|
||||
modules-left = workspaces window
|
||||
modules-center = date time
|
||||
modules-right = systray enp2s0 enp0s20f0u3u1 enp0s20f0u3 enp0s20f0u2 wifi volume battery
|
||||
padding-right = 1
|
||||
|
||||
[settings]
|
||||
screenchange-reload = true
|
||||
pseudo-transparency = true
|
||||
42
.config/polybar/config.ini
Normal file
42
.config/polybar/config.ini
Normal file
@@ -0,0 +1,42 @@
|
||||
; using the gruvbox colour palette in ARGB format
|
||||
[palette]
|
||||
background0 = #BA1D2021
|
||||
background1 = #BA32302F
|
||||
background2 = #BA3C3836
|
||||
background3 = #BA504945
|
||||
background4 = #BA665C54
|
||||
background5 = #BA7C6F64
|
||||
foreground0 = #FFFBF1C7
|
||||
foreground1 = #FFFBF1C7
|
||||
foreground2 = #FFEBDBB2
|
||||
foreground3 = #FFD5C4A1
|
||||
foreground4 = #FFBDAE93
|
||||
foreground5 = #FFA89984
|
||||
red = #FFCC241D
|
||||
green = #FF98971A
|
||||
yellow = #FFD79921
|
||||
blue = #FF458588
|
||||
purple = #FFB16286
|
||||
aqua = #FF689D6A
|
||||
orange = #FFD65D0E
|
||||
red-bright = #FFFB4934
|
||||
green-bright = #FFB8BB26
|
||||
yellow-bright = #FFFABD2F
|
||||
blue-bright = #FF83A598
|
||||
purple-bright = #FFD3869B
|
||||
aqua-bright = #FF8EC07C
|
||||
orange-bright = #FFFE8019
|
||||
|
||||
; colour definitions
|
||||
[colours]
|
||||
background = ${palette.background2}
|
||||
background-alt = ${palette.background3}
|
||||
foreground = ${palette.foreground3}
|
||||
primary = ${palette.yellow-bright}
|
||||
secondary = ${palette.aqua-bright}
|
||||
alert = ${palette.red}
|
||||
disabled = ${palette.background5}
|
||||
|
||||
; include directories for more modular configuration
|
||||
include-directory = modules/
|
||||
include-directory = bars/
|
||||
7
.config/polybar/launch.sh
Executable file
7
.config/polybar/launch.sh
Executable file
@@ -0,0 +1,7 @@
|
||||
#!/bin/bash
|
||||
# quit already running instances (if ipc is enabled)
|
||||
polybar-msg cmd quit
|
||||
# killall -q polybar
|
||||
|
||||
polybar top & disown
|
||||
# polybar bot & disown
|
||||
34
.config/polybar/modules/battery.ini
Normal file
34
.config/polybar/modules/battery.ini
Normal file
@@ -0,0 +1,34 @@
|
||||
[module/battery]
|
||||
type = internal/battery
|
||||
full-at = 100
|
||||
low-at = 10
|
||||
battery = BAT1
|
||||
adapter = ACAD
|
||||
time-format = %H:%M
|
||||
poll-interval = 5
|
||||
|
||||
format-charging = <animation-charging> <label-charging>
|
||||
label-charging = %percentage%%
|
||||
animation-charging-0 =
|
||||
animation-charging-1 =
|
||||
animation-charging-2 =
|
||||
animation-charging-3 =
|
||||
animation-charging-4 =
|
||||
animation-charging-framerate = 1000
|
||||
|
||||
format-discharging = <ramp-capacity> <label-discharging>
|
||||
label-discharging = %percentage%%
|
||||
ramp-capacity-0 =
|
||||
ramp-capacity-1 =
|
||||
ramp-capacity-2 =
|
||||
ramp-capacity-3 =
|
||||
ramp-capacity-4 =
|
||||
|
||||
format-full = <label-full>
|
||||
label-full = %percentage%%
|
||||
|
||||
format-low = <animation-low> <label-low>
|
||||
label-low = %percentage%%
|
||||
animation-low-0 =
|
||||
animation-low-1 =
|
||||
animation-low-framerate = 500
|
||||
15
.config/polybar/modules/datetime.ini
Normal file
15
.config/polybar/modules/datetime.ini
Normal file
@@ -0,0 +1,15 @@
|
||||
[datetime]
|
||||
type = internal/date
|
||||
label = %date%
|
||||
label-foreground = ${colours.primary}
|
||||
|
||||
[module/date]
|
||||
inherit = datetime
|
||||
interval = 60
|
||||
date = %d/%m/%Y
|
||||
|
||||
[module/time]
|
||||
inherit = datetime
|
||||
interval = 1
|
||||
date = %H:%M
|
||||
date-alt = %H:%M:%S
|
||||
39
.config/polybar/modules/network.ini
Normal file
39
.config/polybar/modules/network.ini
Normal file
@@ -0,0 +1,39 @@
|
||||
[network]
|
||||
type = internal/network
|
||||
interval = 5
|
||||
|
||||
[module/wifi]
|
||||
inherit = network
|
||||
interface = wlp0s20f3
|
||||
interface-type = wireless
|
||||
|
||||
format-connected = <ramp-signal>
|
||||
ramp-signal-0 =
|
||||
ramp-signal-1 =
|
||||
ramp-signal-2 =
|
||||
ramp-signal-3 =
|
||||
ramp-signal-4 =
|
||||
|
||||
format-disconnected =
|
||||
|
||||
[ethernet]
|
||||
inherit = network
|
||||
interface-type = wired
|
||||
format-connected =
|
||||
format-disconnected =
|
||||
|
||||
[module/enp2s0]
|
||||
inherit = ethernet
|
||||
interface = enp2s0
|
||||
|
||||
[module/enp0s20f0u3u1]
|
||||
inherit = ethernet
|
||||
interface = enp0s20f0u3u1
|
||||
|
||||
[module/enp0s20f0u3]
|
||||
inherit = ethernet
|
||||
interface = enp0s20f0u3
|
||||
|
||||
[module/enp0s20f0u2]
|
||||
inherit = ethernet
|
||||
interface = enp0s20f0u2
|
||||
4
.config/polybar/modules/systray.ini
Normal file
4
.config/polybar/modules/systray.ini
Normal file
@@ -0,0 +1,4 @@
|
||||
[module/systray]
|
||||
type = internal/tray
|
||||
format-margin = 8pt
|
||||
tray-spacing = 16pt
|
||||
8
.config/polybar/modules/volume.ini
Normal file
8
.config/polybar/modules/volume.ini
Normal file
@@ -0,0 +1,8 @@
|
||||
[module/volume]
|
||||
type = internal/pulseaudio
|
||||
format-volume-prefix = " "
|
||||
format-volume-prefix-foreground = ${colours.primary}
|
||||
format-volume = <label-volume>
|
||||
label-volume = %percentage%%
|
||||
label-muted = muted
|
||||
label-muted-foreground = ${colours.disabled}
|
||||
3
.config/polybar/modules/window.ini
Normal file
3
.config/polybar/modules/window.ini
Normal file
@@ -0,0 +1,3 @@
|
||||
[module/window]
|
||||
type = internal/xwindow
|
||||
label = %title:0:60:...%
|
||||
18
.config/polybar/modules/workspaces.ini
Normal file
18
.config/polybar/modules/workspaces.ini
Normal file
@@ -0,0 +1,18 @@
|
||||
[module/workspaces]
|
||||
type = internal/xworkspaces
|
||||
|
||||
label-active = %name%
|
||||
label-active-background = ${colours.background-alt}
|
||||
label-active-underline = ${colours.primary}
|
||||
label-active-padding = 1
|
||||
|
||||
label-occupied = %name%
|
||||
label-occupied-padding = 1
|
||||
|
||||
label-urgent = %name%
|
||||
label-urgent-background = ${colours.alert}
|
||||
label-urgent-padding = 1
|
||||
|
||||
label-empty = %name%
|
||||
label-empty-foreground = ${colours.disabled}
|
||||
label-empty-padding = 1
|
||||
20
.config/rofi/config.rasi
Normal file
20
.config/rofi/config.rasi
Normal file
@@ -0,0 +1,20 @@
|
||||
@theme "/usr/share/rofi/themes/gruvbox-dark-hard.rasi"
|
||||
|
||||
configuration {
|
||||
location: 0;
|
||||
terminal: "kitty";
|
||||
drun-display-format: "{icon} {name} [<span weight='light' size='small'><i>({generic})</i></span>]";
|
||||
modi: "drun,filebrowser";
|
||||
show-icons: true;
|
||||
}
|
||||
|
||||
element-icon {
|
||||
size: 30;
|
||||
padding: 0 0 0 0;
|
||||
}
|
||||
|
||||
element-text {
|
||||
font: "JetbrainsMono Nerd Font bold 16";
|
||||
horizontal-align: 0;
|
||||
vertical-align: 0.5;
|
||||
}
|
||||
29
.config/rofi/emoji.rasi
Normal file
29
.config/rofi/emoji.rasi
Normal file
@@ -0,0 +1,29 @@
|
||||
@theme "/usr/share/rofi/themes/gruvbox-dark-soft.rasi"
|
||||
|
||||
configuration {
|
||||
modi: "emoji";
|
||||
location: 5;
|
||||
show-icons: false;
|
||||
}
|
||||
|
||||
window {
|
||||
width: 350;
|
||||
height: 600;
|
||||
}
|
||||
|
||||
element {
|
||||
orientation: vertical;
|
||||
size: 1em;
|
||||
}
|
||||
|
||||
element-text {
|
||||
font: "JetbrainsMono NerdFont 13";
|
||||
horizontal-align: 0.5;
|
||||
vertical-align: 0.5;
|
||||
}
|
||||
|
||||
listview {
|
||||
layout: "grid";
|
||||
columns: 7;
|
||||
spacing: 0px;
|
||||
}
|
||||
12
.config/rofi/qpurple.rasi
Normal file
12
.config/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;
|
||||
}
|
||||
21
.config/spicetify/Themes/Onepunch/LICENSE
Normal file
21
.config/spicetify/Themes/Onepunch/LICENSE
Normal file
@@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2021 okarin001
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
74
.config/spicetify/Themes/Onepunch/color.ini
Normal file
74
.config/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
.config/spicetify/Themes/Onepunch/user.css
Normal file
625
.config/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
.config/spicetify/Themes/Sleek/color.ini
Normal file
436
.config/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
.config/spicetify/Themes/Sleek/user.css
Normal file
725
.config/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
.config/spicetify/Themes/text/color.ini
Normal file
270
.config/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
.config/spicetify/Themes/text/user.css
Normal file
905
.config/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
.config/spicetify/config-xpui.ini
Normal file
32
.config/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
|
||||
2
.config/systemd/user/.gitignore
vendored
Normal file
2
.config/systemd/user/.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
# ignore enabled systemd units, since these are often symlinks to the system and stuff
|
||||
/basic.target.wants/
|
||||
16
.config/user-dirs.dirs
Normal file
16
.config/user-dirs.dirs
Normal file
@@ -0,0 +1,16 @@
|
||||
# This file is written by xdg-user-dirs-update
|
||||
# If you want to change or add directories, just edit the line you're
|
||||
# interested in. All local changes will be retained on the next run.
|
||||
# Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped
|
||||
# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an
|
||||
# absolute path. No other format is supported.
|
||||
#
|
||||
XDG_DESKTOP_DIR="$HOME/desktop"
|
||||
XDG_DOWNLOAD_DIR="$HOME/downloads"
|
||||
XDG_TEMPLATES_DIR="$HOME/templates"
|
||||
XDG_PUBLICSHARE_DIR="$HOME/public"
|
||||
XDG_DOCUMENTS_DIR="$HOME/documents"
|
||||
XDG_MUSIC_DIR="$HOME/music"
|
||||
XDG_PICTURES_DIR="$HOME/photos"
|
||||
XDG_VIDEOS_DIR="$HOME/videos"
|
||||
XDG_PUBLIC_DIR="$HOME/public"
|
||||
1
.config/user-dirs.locale
Normal file
1
.config/user-dirs.locale
Normal file
@@ -0,0 +1 @@
|
||||
en_GB
|
||||
Reference in New Issue
Block a user