├── Resources ├── icon.ico ├── logo.png ├── icon-1.png ├── screenshot.png └── sharp_refresh_white_24dp.png ├── config.ini ├── App.xaml.cs ├── Pages ├── StartPage.xaml.cs ├── StartPage.xaml ├── LogsPage.xaml.cs ├── InstallPage.xaml.cs ├── LogsPage.xaml ├── InstallPage.xaml ├── ManagePage.xaml.cs ├── AboutPage.xaml.cs ├── PluginsPage.xaml.cs ├── ThemesPage.xaml.cs ├── ThemesPage.xaml ├── PluginsPage.xaml ├── ManagePage.xaml ├── AboutPage.xaml ├── SettingsPage.xaml.cs ├── MainWindow.xaml ├── MainWindow.xaml.cs └── SettingsPage.xaml ├── AssemblyInfo.cs ├── Source ├── Logger.cs ├── VersionChecker.cs ├── ProcessInvoker.cs ├── IniFile.cs ├── Program.cs ├── Settings.cs └── Spicetify.cs ├── SpicetifyManager.sln ├── Styles ├── Brushes.xaml ├── DropDownButton.xaml ├── Button.xaml ├── TextBox.xaml ├── CheckBox.xaml └── ListView.xaml ├── App.xaml ├── README.md ├── SpicetifyManager.csproj ├── .gitattributes ├── app.manifest ├── .gitignore └── LICENSE /Resources/icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdotBdot/SpicetifyManager/HEAD/Resources/icon.ico -------------------------------------------------------------------------------- /Resources/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdotBdot/SpicetifyManager/HEAD/Resources/logo.png -------------------------------------------------------------------------------- /Resources/icon-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdotBdot/SpicetifyManager/HEAD/Resources/icon-1.png -------------------------------------------------------------------------------- /Resources/screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdotBdot/SpicetifyManager/HEAD/Resources/screenshot.png -------------------------------------------------------------------------------- /config.ini: -------------------------------------------------------------------------------- 1 | [SpicetifyManagerConfig] 2 | UserDirectory = %APPDATA%\spicetify 3 | CliDirectory = %LOCALAPPDATA%\spicetify -------------------------------------------------------------------------------- /Resources/sharp_refresh_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdotBdot/SpicetifyManager/HEAD/Resources/sharp_refresh_white_24dp.png -------------------------------------------------------------------------------- /App.xaml.cs: -------------------------------------------------------------------------------- 1 | using System.Windows; 2 | 3 | namespace SpicetifyManager 4 | { 5 | /// 6 | /// Interaction logic for App.xaml 7 | /// 8 | public partial class App : Application 9 | { 10 | public App() 11 | { 12 | } 13 | } 14 | } -------------------------------------------------------------------------------- /Pages/StartPage.xaml.cs: -------------------------------------------------------------------------------- 1 | using ModernWpf.Controls; 2 | 3 | namespace SpicetifyManager.Pages 4 | { 5 | /// 6 | /// Interaction logic for Page1.xaml 7 | /// 8 | public partial class StartPage : Page 9 | { 10 | public StartPage() 11 | { 12 | InitializeComponent(); 13 | } 14 | } 15 | } -------------------------------------------------------------------------------- /AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Windows; 2 | 3 | [assembly: ThemeInfo( 4 | ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located 5 | //(used if a resource is not found in the page, 6 | // or application resource dictionaries) 7 | ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located 8 | //(used if a resource is not found in the page, 9 | // app, or any theme specific resource dictionaries) 10 | )] -------------------------------------------------------------------------------- /Pages/StartPage.xaml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Source/Logger.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace SpicetifyManager 4 | { 5 | public class Logger 6 | { 7 | public static event EventHandler Logged; 8 | 9 | public static void Log(string text, bool indent = false) 10 | { 11 | Logged?.Invoke(null, indent ? new LogEventArgs(INDENT + text) : new LogEventArgs(text)); 12 | Console.WriteLine(indent ? INDENT + text : text); 13 | } 14 | 15 | private const string INDENT = " "; 16 | } 17 | 18 | public class LogEventArgs : EventArgs 19 | { 20 | public LogEventArgs(string text) 21 | { 22 | Text = text; 23 | } 24 | 25 | public string Text{get; set;} 26 | } 27 | } -------------------------------------------------------------------------------- /Source/VersionChecker.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Threading.Tasks; 4 | using Octokit; 5 | 6 | namespace SpicetifyManager.Source 7 | { 8 | internal static class VersionChecker 9 | { 10 | public static async Task GetLatestTag(string owner, string repoName) 11 | { 12 | try 13 | { 14 | GitHubClient git = new(new ProductHeaderValue("Tag")); 15 | Repository repo = await git.Repository.Get(owner, repoName); 16 | IReadOnlyList tags = await git.Repository.GetAllTags(repo.Id); 17 | 18 | return tags[0].Name; 19 | } 20 | catch(Exception) 21 | { 22 | return "error"; 23 | } 24 | } 25 | } 26 | } -------------------------------------------------------------------------------- /Pages/LogsPage.xaml.cs: -------------------------------------------------------------------------------- 1 | using System.Windows; 2 | using Page = ModernWpf.Controls.Page; 3 | 4 | namespace SpicetifyManager.Pages 5 | { 6 | /// 7 | /// Interaction logic for LogsPage.xaml 8 | /// 9 | public partial class LogsPage : Page 10 | { 11 | public LogsPage() 12 | { 13 | InitializeComponent(); 14 | Logger.Logged += Logger_Logged; 15 | } 16 | 17 | private void Logger_Logged(object? sender, LogEventArgs e) 18 | { 19 | Application.Current.Dispatcher.Invoke(() => LogBox.AppendText(e.Text + "\n")); 20 | } 21 | 22 | private void LogBox_TextChanged(object sender, System.Windows.Controls.TextChangedEventArgs e) 23 | { 24 | LogBox.Focus(); 25 | LogBox.CaretIndex = LogBox.Text.Length; 26 | LogBox.ScrollToEnd(); 27 | } 28 | 29 | private void ClearLogsBtn_OnClick(object sender, RoutedEventArgs e) 30 | { 31 | Application.Current.Dispatcher.Invoke(() => LogBox.Clear()); 32 | } 33 | } 34 | } -------------------------------------------------------------------------------- /Pages/InstallPage.xaml.cs: -------------------------------------------------------------------------------- 1 | using System.Diagnostics; 2 | using System.Windows.Navigation; 3 | using ModernWpf.Controls; 4 | 5 | namespace SpicetifyManager.Pages 6 | { 7 | /// 8 | /// Interaction logic for InstallPage.xaml 9 | /// 10 | public partial class InstallPage : Page 11 | { 12 | public InstallPage() 13 | { 14 | InitializeComponent(); 15 | } 16 | 17 | private void Spicetify_RequestNavigate(object sender, RequestNavigateEventArgs e) 18 | { 19 | Process.Start(new ProcessStartInfo("https://spicetify.app/docs/getting-started") 20 | { 21 | UseShellExecute = true 22 | }); 23 | e.Handled = true; 24 | } 25 | 26 | private void Issues_RequestNavigate(object sender, RequestNavigateEventArgs e) 27 | { 28 | Process.Start(new ProcessStartInfo("https://github.com/AdotBdot/SpicetifyManager/issues") 29 | { 30 | UseShellExecute = true 31 | }); 32 | e.Handled = true; 33 | } 34 | } 35 | } -------------------------------------------------------------------------------- /SpicetifyManager.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio Version 17 4 | VisualStudioVersion = 17.0.32112.339 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SpicetifyManager", "SpicetifyManager.csproj", "{B9EDFCD8-A9C7-4882-B74E-77CF329E6FE8}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Release|Any CPU = Release|Any CPU 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {B9EDFCD8-A9C7-4882-B74E-77CF329E6FE8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 15 | {B9EDFCD8-A9C7-4882-B74E-77CF329E6FE8}.Debug|Any CPU.Build.0 = Debug|Any CPU 16 | {B9EDFCD8-A9C7-4882-B74E-77CF329E6FE8}.Release|Any CPU.ActiveCfg = Release|Any CPU 17 | {B9EDFCD8-A9C7-4882-B74E-77CF329E6FE8}.Release|Any CPU.Build.0 = Release|Any CPU 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | GlobalSection(ExtensibilityGlobals) = postSolution 23 | SolutionGuid = {6DC4DA5F-A0BB-401A-864C-9953EC06FD6B} 24 | EndGlobalSection 25 | EndGlobal 26 | -------------------------------------------------------------------------------- /Pages/LogsPage.xaml: -------------------------------------------------------------------------------- 1 | 5 | 6 |