mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2026-01-31 08:52:49 -05:00
Compare commits
2 Commits
56c69fe1a7
...
da006b883e
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
da006b883e | ||
|
|
e71fb09cbd |
@@ -169,22 +169,12 @@ func readOSRelease() map[string]string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func checkVersions(qsMissingFeatures bool) []checkResult {
|
func checkVersions(qsMissingFeatures bool) []checkResult {
|
||||||
dmsCliPath, _ := os.Executable()
|
|
||||||
dmsCliDetails := ""
|
|
||||||
if doctorVerbose {
|
|
||||||
dmsCliDetails = dmsCliPath
|
|
||||||
}
|
|
||||||
|
|
||||||
results := []checkResult{
|
results := []checkResult{
|
||||||
{catVersions, "DMS CLI", "ok", formatVersion(Version), dmsCliDetails},
|
{catVersions, "DMS CLI", "info", formatVersion(Version), ""},
|
||||||
}
|
}
|
||||||
|
|
||||||
qsVersion, qsStatus, qsPath := getQuickshellVersionInfo(qsMissingFeatures)
|
qsVersion, qsStatus := getQuickshellVersionInfo(qsMissingFeatures)
|
||||||
qsDetails := ""
|
results = append(results, checkResult{catVersions, "Quickshell", qsStatus, qsVersion, ""})
|
||||||
if doctorVerbose && qsPath != "" {
|
|
||||||
qsDetails = qsPath
|
|
||||||
}
|
|
||||||
results = append(results, checkResult{catVersions, "Quickshell", qsStatus, qsVersion, qsDetails})
|
|
||||||
|
|
||||||
dmsVersion, dmsPath := getDMSShellVersion()
|
dmsVersion, dmsPath := getDMSShellVersion()
|
||||||
if dmsVersion != "" {
|
if dmsVersion != "" {
|
||||||
@@ -216,30 +206,28 @@ func getDMSShellVersion() (version, path string) {
|
|||||||
return "", ""
|
return "", ""
|
||||||
}
|
}
|
||||||
|
|
||||||
func getQuickshellVersionInfo(missingFeatures bool) (string, string, string) {
|
func getQuickshellVersionInfo(missingFeatures bool) (string, string) {
|
||||||
if !utils.CommandExists("qs") {
|
if !utils.CommandExists("qs") {
|
||||||
return "Not installed", "error", ""
|
return "Not installed", "error"
|
||||||
}
|
}
|
||||||
|
|
||||||
qsPath, _ := exec.LookPath("qs")
|
|
||||||
|
|
||||||
output, err := exec.Command("qs", "--version").Output()
|
output, err := exec.Command("qs", "--version").Output()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "Installed (version check failed)", "warn", qsPath
|
return "Installed (version check failed)", "warn"
|
||||||
}
|
}
|
||||||
|
|
||||||
fullVersion := strings.TrimSpace(string(output))
|
fullVersion := strings.TrimSpace(string(output))
|
||||||
if matches := regexp.MustCompile(`quickshell (\d+\.\d+\.\d+)`).FindStringSubmatch(fullVersion); len(matches) >= 2 {
|
if matches := regexp.MustCompile(`quickshell (\d+\.\d+\.\d+)`).FindStringSubmatch(fullVersion); len(matches) >= 2 {
|
||||||
if version.CompareVersions(matches[1], "0.2.0") < 0 {
|
if version.CompareVersions(matches[1], "0.2.0") < 0 {
|
||||||
return fmt.Sprintf("%s (needs >= 0.2.0)", fullVersion), "error", qsPath
|
return fmt.Sprintf("%s (needs >= 0.2.0)", fullVersion), "error"
|
||||||
}
|
}
|
||||||
if missingFeatures {
|
if missingFeatures {
|
||||||
return fullVersion, "warn", qsPath
|
return fullVersion, "warn"
|
||||||
}
|
}
|
||||||
return fullVersion, "ok", qsPath
|
return fullVersion, "ok"
|
||||||
}
|
}
|
||||||
|
|
||||||
return fullVersion, "warn", qsPath
|
return fullVersion, "warn"
|
||||||
}
|
}
|
||||||
|
|
||||||
func checkDMSInstallation() []checkResult {
|
func checkDMSInstallation() []checkResult {
|
||||||
@@ -299,20 +287,9 @@ func checkWindowManagers() []checkResult {
|
|||||||
for _, c := range compositors {
|
for _, c := range compositors {
|
||||||
if slices.ContainsFunc(c.commands, utils.CommandExists) {
|
if slices.ContainsFunc(c.commands, utils.CommandExists) {
|
||||||
foundAny = true
|
foundAny = true
|
||||||
var compositorPath string
|
|
||||||
for _, cmd := range c.commands {
|
|
||||||
if path, err := exec.LookPath(cmd); err == nil {
|
|
||||||
compositorPath = path
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
details := ""
|
|
||||||
if doctorVerbose && compositorPath != "" {
|
|
||||||
details = compositorPath
|
|
||||||
}
|
|
||||||
results = append(results, checkResult{
|
results = append(results, checkResult{
|
||||||
catCompositor, c.name, "ok",
|
catCompositor, c.name, "ok",
|
||||||
getVersionFromCommand(c.versionCmd, c.versionArg, c.versionRe), details,
|
getVersionFromCommand(c.versionCmd, c.versionArg, c.versionRe), "",
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -255,9 +255,6 @@ output_path = '%s'
|
|||||||
if !opts.ShouldSkipTemplate("pywalfox") {
|
if !opts.ShouldSkipTemplate("pywalfox") {
|
||||||
appendConfig(opts, cfgFile, "pywalfox", "pywalfox.toml")
|
appendConfig(opts, cfgFile, "pywalfox", "pywalfox.toml")
|
||||||
}
|
}
|
||||||
if !opts.ShouldSkipTemplate("zenbrowser") {
|
|
||||||
appendConfig(opts, cfgFile, "zen", "zenbrowser.toml")
|
|
||||||
}
|
|
||||||
if !opts.ShouldSkipTemplate("vesktop") {
|
if !opts.ShouldSkipTemplate("vesktop") {
|
||||||
appendConfig(opts, cfgFile, "vesktop", "vesktop.toml")
|
appendConfig(opts, cfgFile, "vesktop", "vesktop.toml")
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,16 +11,14 @@ import (
|
|||||||
"io"
|
"io"
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"slices"
|
|
||||||
"strings"
|
"strings"
|
||||||
"syscall"
|
"syscall"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"hash/fnv"
|
|
||||||
|
|
||||||
"github.com/fsnotify/fsnotify"
|
"github.com/fsnotify/fsnotify"
|
||||||
_ "golang.org/x/image/bmp"
|
_ "golang.org/x/image/bmp"
|
||||||
_ "golang.org/x/image/tiff"
|
_ "golang.org/x/image/tiff"
|
||||||
|
"hash/fnv"
|
||||||
|
|
||||||
bolt "go.etcd.io/bbolt"
|
bolt "go.etcd.io/bbolt"
|
||||||
|
|
||||||
@@ -30,11 +28,6 @@ import (
|
|||||||
wlclient "github.com/AvengeMedia/DankMaterialShell/core/pkg/go-wayland/wayland/client"
|
wlclient "github.com/AvengeMedia/DankMaterialShell/core/pkg/go-wayland/wayland/client"
|
||||||
)
|
)
|
||||||
|
|
||||||
// These mime types wont be stored in history
|
|
||||||
var sensitiveMimeTypes = []string{
|
|
||||||
"x-kde-passwordManagerHint",
|
|
||||||
}
|
|
||||||
|
|
||||||
func NewManager(wlCtx wlcontext.WaylandContext, config Config) (*Manager, error) {
|
func NewManager(wlCtx wlcontext.WaylandContext, config Config) (*Manager, error) {
|
||||||
if config.Disabled {
|
if config.Disabled {
|
||||||
return nil, fmt.Errorf("clipboard disabled in config")
|
return nil, fmt.Errorf("clipboard disabled in config")
|
||||||
@@ -260,10 +253,6 @@ func (m *Manager) setupDataDeviceSync() {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if m.hasSensitiveMimeType(mimes) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
preferredMime := m.selectMimeType(mimes)
|
preferredMime := m.selectMimeType(mimes)
|
||||||
if preferredMime == "" {
|
if preferredMime == "" {
|
||||||
return
|
return
|
||||||
@@ -503,12 +492,6 @@ func extractHash(data []byte) uint64 {
|
|||||||
return binary.BigEndian.Uint64(data[len(data)-8:])
|
return binary.BigEndian.Uint64(data[len(data)-8:])
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *Manager) hasSensitiveMimeType(mimes []string) bool {
|
|
||||||
return slices.ContainsFunc(mimes, func(mime string) bool {
|
|
||||||
return slices.Contains(sensitiveMimeTypes, mime)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *Manager) selectMimeType(mimes []string) string {
|
func (m *Manager) selectMimeType(mimes []string) string {
|
||||||
preferredTypes := []string{
|
preferredTypes := []string{
|
||||||
"text/plain;charset=utf-8",
|
"text/plain;charset=utf-8",
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ in
|
|||||||
};
|
};
|
||||||
|
|
||||||
dgop = {
|
dgop = {
|
||||||
package = lib.mkPackageOption pkgs "dgop" {};
|
package = lib.mkPackageOption pkgs "dgop";
|
||||||
};
|
};
|
||||||
|
|
||||||
enableSystemMonitoring = lib.mkOption {
|
enableSystemMonitoring = lib.mkOption {
|
||||||
|
|||||||
@@ -288,7 +288,6 @@ Singleton {
|
|||||||
property bool matugenTemplateQt6ct: true
|
property bool matugenTemplateQt6ct: true
|
||||||
property bool matugenTemplateFirefox: true
|
property bool matugenTemplateFirefox: true
|
||||||
property bool matugenTemplatePywalfox: true
|
property bool matugenTemplatePywalfox: true
|
||||||
property bool matugenTemplateZenBrowser: true
|
|
||||||
property bool matugenTemplateVesktop: true
|
property bool matugenTemplateVesktop: true
|
||||||
property bool matugenTemplateEquibop: true
|
property bool matugenTemplateEquibop: true
|
||||||
property bool matugenTemplateGhostty: true
|
property bool matugenTemplateGhostty: true
|
||||||
|
|||||||
@@ -876,7 +876,7 @@ Singleton {
|
|||||||
if (typeof SettingsData !== "undefined") {
|
if (typeof SettingsData !== "undefined") {
|
||||||
const skipTemplates = [];
|
const skipTemplates = [];
|
||||||
if (!SettingsData.runDmsMatugenTemplates) {
|
if (!SettingsData.runDmsMatugenTemplates) {
|
||||||
skipTemplates.push("gtk", "neovim", "niri", "qt5ct", "qt6ct", "firefox", "pywalfox", "zenbrowser", "vesktop", "equibop", "ghostty", "kitty", "foot", "alacritty", "wezterm", "dgop", "kcolorscheme", "vscode");
|
skipTemplates.push("gtk", "neovim", "niri", "qt5ct", "qt6ct", "firefox", "pywalfox", "vesktop", "equibop", "ghostty", "kitty", "foot", "alacritty", "wezterm", "dgop", "kcolorscheme", "vscode");
|
||||||
} else {
|
} else {
|
||||||
if (!SettingsData.matugenTemplateGtk)
|
if (!SettingsData.matugenTemplateGtk)
|
||||||
skipTemplates.push("gtk");
|
skipTemplates.push("gtk");
|
||||||
@@ -890,8 +890,6 @@ Singleton {
|
|||||||
skipTemplates.push("firefox");
|
skipTemplates.push("firefox");
|
||||||
if (!SettingsData.matugenTemplatePywalfox)
|
if (!SettingsData.matugenTemplatePywalfox)
|
||||||
skipTemplates.push("pywalfox");
|
skipTemplates.push("pywalfox");
|
||||||
if (!SettingsData.matugenTemplateZenBrowser)
|
|
||||||
skipTemplates.push("zenbrowser");
|
|
||||||
if (!SettingsData.matugenTemplateVesktop)
|
if (!SettingsData.matugenTemplateVesktop)
|
||||||
skipTemplates.push("vesktop");
|
skipTemplates.push("vesktop");
|
||||||
if (!SettingsData.matugenTemplateEquibop)
|
if (!SettingsData.matugenTemplateEquibop)
|
||||||
|
|||||||
@@ -187,7 +187,6 @@ var SPEC = {
|
|||||||
matugenTemplateQt6ct: { def: true },
|
matugenTemplateQt6ct: { def: true },
|
||||||
matugenTemplateFirefox: { def: true },
|
matugenTemplateFirefox: { def: true },
|
||||||
matugenTemplatePywalfox: { def: true },
|
matugenTemplatePywalfox: { def: true },
|
||||||
matugenTemplateZenBrowser: { def: true },
|
|
||||||
matugenTemplateVesktop: { def: true },
|
matugenTemplateVesktop: { def: true },
|
||||||
matugenTemplateEquibop: { def: true },
|
matugenTemplateEquibop: { def: true },
|
||||||
matugenTemplateGhostty: { def: true },
|
matugenTemplateGhostty: { def: true },
|
||||||
|
|||||||
@@ -1127,17 +1127,6 @@ Item {
|
|||||||
onToggled: checked => SettingsData.set("matugenTemplatePywalfox", checked)
|
onToggled: checked => SettingsData.set("matugenTemplatePywalfox", checked)
|
||||||
}
|
}
|
||||||
|
|
||||||
SettingsToggleRow {
|
|
||||||
tab: "theme"
|
|
||||||
tags: ["matugen", "zenbrowser", "template"]
|
|
||||||
settingKey: "matugenTemplateZenBrowser"
|
|
||||||
text: "zenbrowser"
|
|
||||||
description: ""
|
|
||||||
visible: SettingsData.runDmsMatugenTemplates
|
|
||||||
checked: SettingsData.matugenTemplateZenBrowser
|
|
||||||
onToggled: checked => SettingsData.set("matugenTemplateZenBrowser", checked)
|
|
||||||
}
|
|
||||||
|
|
||||||
SettingsToggleRow {
|
SettingsToggleRow {
|
||||||
tab: "theme"
|
tab: "theme"
|
||||||
tags: ["matugen", "vesktop", "discord", "template"]
|
tags: ["matugen", "vesktop", "discord", "template"]
|
||||||
|
|||||||
@@ -1,3 +0,0 @@
|
|||||||
[templates.dmszenbrowser]
|
|
||||||
input_path = 'SHELL_DIR/matugen/templates/zen-userchrome.css'
|
|
||||||
output_path = '~/.config/DankMaterialShell/zen.css'
|
|
||||||
@@ -1,94 +0,0 @@
|
|||||||
/* DMS Matugen Zen Browser Theme */
|
|
||||||
:root {
|
|
||||||
--zen-primary-color: {{colors.primary_container.default.hex}} !important;
|
|
||||||
--toolbarbutton-icon-fill: {{colors.primary.default.hex}} !important;
|
|
||||||
--toolbar-field-color: {{colors.on_background.default.hex}} !important;
|
|
||||||
--tab-selected-textcolor: {{colors.primary.default.hex}} !important;
|
|
||||||
--toolbar-color: {{colors.on_background.default.hex}} !important;
|
|
||||||
--arrowpanel-color: {{colors.on_surface.default.hex}} !important;
|
|
||||||
--arrowpanel-background: {{colors.surface_container.default.hex}} !important;
|
|
||||||
--sidebar-text-color: {{colors.on_background.default.hex}} !important;
|
|
||||||
--zen-main-browser-background: {{colors.background.default.hex}} !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.sidebar-placesTree {
|
|
||||||
background-color: {{colors.surface_container.default.hex}} !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
#zen-workspaces-button {
|
|
||||||
background-color: {{colors.on_surface_variant.default.hex}} !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
#TabsToolbar {
|
|
||||||
background-color: {{colors.background.default.hex}} !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.urlbar-background {
|
|
||||||
background-color: {{colors.surface_container.default.hex}} !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.urlbar-input::selection {
|
|
||||||
color: {{colors.on_primary.default.hex}} !important;
|
|
||||||
background-color: {{colors.primary.default.hex}} !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.urlbarView-url {
|
|
||||||
color: {{colors.on_surface_variant.default.hex}} !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
toolbar .toolbarbutton-1 {
|
|
||||||
&:not([disabled]) {
|
|
||||||
&:is([open], [checked])
|
|
||||||
> :is(
|
|
||||||
.toolbarbutton-icon,
|
|
||||||
.toolbarbutton-text,
|
|
||||||
.toolbarbutton-badge-stack
|
|
||||||
) {
|
|
||||||
fill: {{colors.primary.default.hex}}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.identity-color-blue {
|
|
||||||
--identity-tab-color: {{dank16.color12.default.hex}} !important;
|
|
||||||
--identity-icon-color: {{dank16.color12.default.hex}} !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.identity-color-turquoise {
|
|
||||||
--identity-tab-color: {{dank16.color6.default.hex}} !important;
|
|
||||||
--identity-icon-color: {{dank16.color6.default.hex}} !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.identity-color-green {
|
|
||||||
--identity-tab-color: {{dank16.color10.default.hex}} !important;
|
|
||||||
--identity-icon-color: {{dank16.color10.default.hex}} !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.identity-color-yellow {
|
|
||||||
--identity-tab-color: {{dank16.color11.default.hex}} !important;
|
|
||||||
--identity-icon-color: {{dank16.color11.default.hex}} !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.identity-color-orange {
|
|
||||||
--identity-tab-color: {{dank16.color3.default.hex}} !important;
|
|
||||||
--identity-icon-color: {{dank16.color3.default.hex}} !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.identity-color-red {
|
|
||||||
--identity-tab-color: {{dank16.color9.default.hex}} !important;
|
|
||||||
--identity-icon-color: {{dank16.color9.default.hex}} !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.identity-color-pink {
|
|
||||||
--identity-tab-color: {{dank16.color13.default.hex}} !important;
|
|
||||||
--identity-icon-color: {{dank16.color13.default.hex}} !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.identity-color-purple {
|
|
||||||
--identity-tab-color: {{dank16.color5.default.hex}} !important;
|
|
||||||
--identity-icon-color: {{dank16.color5.default.hex}} !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
#zen-appcontent-navbar-container {
|
|
||||||
background-color: {{colors.background.default.hex}} !important;
|
|
||||||
}
|
|
||||||
@@ -1565,24 +1565,6 @@
|
|||||||
"theme"
|
"theme"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"section": "matugenTemplateZenBrowser",
|
|
||||||
"label": "Zen Browser",
|
|
||||||
"tabIndex": 10,
|
|
||||||
"category": "Theme & Colors",
|
|
||||||
"keywords": [
|
|
||||||
"appearance",
|
|
||||||
"colors",
|
|
||||||
"zen",
|
|
||||||
"zenbrowser",
|
|
||||||
"look",
|
|
||||||
"matugen",
|
|
||||||
"scheme",
|
|
||||||
"style",
|
|
||||||
"template",
|
|
||||||
"theme"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"section": "matugenTemplateGtk",
|
"section": "matugenTemplateGtk",
|
||||||
"label": "GTK",
|
"label": "GTK",
|
||||||
|
|||||||
Reference in New Issue
Block a user