diff --git a/.github/workflows/build-analyze-linux.yml b/.github/workflows/build-analyze-linux.yml
index 96bf2437..29582016 100644
--- a/.github/workflows/build-analyze-linux.yml
+++ b/.github/workflows/build-analyze-linux.yml
@@ -73,4 +73,11 @@ jobs:
yarn install
yarn dist -p never
- name: Perform CodeQL Analysis
- uses: github/codeql-action/analyze@v1
\ No newline at end of file
+ uses: github/codeql-action/analyze@v1
+ - name: Upload a Build Artifact
+ uses: actions/upload-artifact@v2.2.3
+ with:
+ # Artifact name
+ name: Linux
+ # A file, directory or wildcard pattern that describes what to upload
+ path: dist/
diff --git a/src/main/cider-base.js b/src/main/cider-base.js
index 750f903b..21e991bc 100644
--- a/src/main/cider-base.js
+++ b/src/main/cider-base.js
@@ -5,6 +5,83 @@ const express = require("express");
const path = require("path");
const windowStateKeeper = require("electron-window-state");
const os = require('os');
+const Store = require("electron-store");
+const store = new Store();
+
+const schema = {
+ "general": {
+ "close_behavior": {
+ type: "number",
+ default: 0
+ },
+ "startup_behavior": {
+ type: "number",
+ default: 0
+ },
+ "discord_rpc": {
+ type: "number",
+ default: 1
+ },
+ },
+ "behavior": {
+ "hw_acceleration": {
+ type: "number",
+ default: 0 // 0 = default, 1 = webgpu, 2 = gpu disabled
+ }
+ },
+ "audio": {
+ "quality": {
+ type: "string",
+ default: "extreme",
+ },
+ "seamless_audio": {
+ type: "boolean",
+ default: true,
+ }
+ },
+ "visual": {
+ "theme": {
+ type: "string",
+ default: ""
+ },
+ "scrollbars": {
+ type: "number",
+ default: 0
+ },
+ "refresh_rate": {
+ type: "number",
+ default: 0
+ },
+ "animated_artwork": {
+ type: "number",
+ default: 0 // 0 = always, 1 = limited, 2 = never
+ }
+ },
+ "lyrics": {
+ "enable_mxm": {
+ type: "boolean",
+ default: false
+ },
+ "mxm_language": {
+ type: "string",
+ default: "en"
+ }
+ },
+ "lastfm": {
+ "enabled": {
+ type: "boolean",
+ default: false
+ },
+ "scrobble_after": {
+ type: "number",
+ default: 30
+ },
+ "auth_token": {
+ type: "string",
+ default: ""
+ }
+ }
+}
// Analytics for debugging.
const ElectronSentry = require("@sentry/electron");
diff --git a/src/renderer/style.less b/src/renderer/style.less
index 594099f4..5d76e456 100644
--- a/src/renderer/style.less
+++ b/src/renderer/style.less
@@ -1528,7 +1528,7 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
left: 0;
width: 100%;
height: 100%;
- background: rgba(0, 0, 0, 0.5);
+ background: rgba(0, 0, 0, 0.3);
z-index: 9999;
.modal-window {
background: #333;
@@ -1536,11 +1536,24 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
box-shadow: var(--mediaItemShadow-Shadow);
display:flex;
flex-flow: column;
-
max-height: 500px;
max-width: 360px;
background: #121212;
width: 100%;
+ position: relative;
+
+ &:after {
+ content: "";
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ pointer-events: none;
+ box-shadow: var(--mediaItemShadow);
+ z-index: 1;
+ border-radius: inherit;
+ }
.modal-header {
width:100%;
@@ -1562,9 +1575,10 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
.modal-window {
max-height: 600px;
max-width: 400px;
- background: #121212;
+ background: rgb(18 18 18 / 90%);
overflow: hidden;
-
+ backdrop-filter: blur(16px) saturate(180%);
+
.modal-header {
padding: 16px;
position:relative;
@@ -1601,19 +1615,34 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
.playlist-item {
appearance: none;
border: 0px;
- border-bottom: 1px solid rgba(255, 255, 255, 0.15);
text-align: left;
width: 100%;
margin: 0;
- display: block;
- background: rgba(200, 200, 200, 0.02);
+ display: flex;
+ background: rgba(32, 32, 32, 0.46);
color: #eee;
font-family: inherit;
font-size: 0.98em;
- padding: 12px 12px;
+ padding: 6px 12px;
+ align-items: center;
+ flex-flow: row;
+
+ .icon {
+ pointer-events: none;
+ width: 32px;
+ height: 32px;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ margin-right: 6px;
+ }
+
+ .name {
+
+ }
&:hover {
- background: rgb(200 200 200 / 4%);
+ background: var(--selected);
}
&:active {
@@ -2759,6 +2788,18 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
/* Cider */
/* Transitions */
+
+.modal-enter-active,
+.modal-leave-active {
+ transition: opacity .1s var(--appleEase), transform .1s var(--appleEase);
+}
+
+.modal-enter,
+.modal-leave-to {
+ opacity: 0;
+ transform: scale(1.10);
+}
+
.wpfade-enter-active,
.wpfade-leave-active {
transition: opacity .1s var(--appleEase);
diff --git a/src/renderer/views/components/add-to-playlist.ejs b/src/renderer/views/components/add-to-playlist.ejs
index c35f7c7c..a252f367 100644
--- a/src/renderer/views/components/add-to-playlist.ejs
+++ b/src/renderer/views/components/add-to-playlist.ejs
@@ -1,11 +1,19 @@
-
<%- include('pages/browse') %>
diff --git a/src/renderer/views/svg/playlist.svg b/src/renderer/views/svg/playlist.svg
new file mode 100644
index 00000000..f254d9f1
--- /dev/null
+++ b/src/renderer/views/svg/playlist.svg
@@ -0,0 +1 @@
+
\ No newline at end of file