Update .XCompose

Update .gitconfig
Update .tmux.conf
Update .config/DankMaterialShell/firefox.css
Update .config/DankMaterialShell/plugin_settings.json
Update .config/DankMaterialShell/plugins/.repos/0026f1eba8dedaec/DankActions/DankActionsSettings.qml
Update .config/DankMaterialShell/plugins/.repos/0026f1eba8dedaec/DankActions/DankActionsWidget.qml
Update .config/DankMaterialShell/plugins/.repos/0026f1eba8dedaec/DankActions/plugin.json
Update .config/DankMaterialShell/plugins/.repos/0026f1eba8dedaec/.git/index
Update .config/DankMaterialShell/plugins/.repos/0026f1eba8dedaec/.git/refs/heads/master
Update .config/DankMaterialShell/plugins/.repos/0026f1eba8dedaec/.git/refs/remotes/origin/master
Update .config/DankMaterialShell/plugins/emojiLauncher/.git/refs/remotes/origin/main
Update .config/DankMaterialShell/settings.json
Update .config/alacritty/dank-theme.toml
Update .config/ghostty/config
Update .config/ghostty/themes/dankcolors
Update .config/niri/dms/colors.kdl
Update .config/nvim/lua/plugins/dankcolors.lua
Update .config/pda/config.toml
Update .local/bin/tmux-sessionizer
This commit is contained in:
Lewis Wynne 2026-02-13 13:02:07 +00:00
parent b18328bbad
commit deee85b676
20 changed files with 609 additions and 305 deletions

View file

@ -1,10 +1,11 @@
include "%L" # Uncomment to enable locale Compose file
# include "%L"
# https://tanukicomputing.neocities.org/posts/Compose_Key_Cheat_Sheet # https://tanukicomputing.neocities.org/posts/Compose_Key_Cheat_Sheet
<Multi_key> <at> : "lew@ily2.dev" <Multi_key> <at> <at> : "lew@ily2.dev"
<Multi_key> <minus> : "—" <Multi_key> <minus> : "—"
<Multi_key> <space> : " | " <Multi_key> <space> : " | "
<Multi_key> <p> <i> <p> : "|"
<Multi_key> <o> <r> : " || " <Multi_key> <o> <r> : " || "
<Multi_key> <slash> : "\\" <Multi_key> <slash> : "\\"
<Multi_key> <t> <f> : "🏳️‍⚧️"

View file

@ -6,3 +6,7 @@
clean = git-lfs clean -- %f clean = git-lfs clean -- %f
smudge = git-lfs smudge -- %f smudge = git-lfs smudge -- %f
process = git-lfs filter-process process = git-lfs filter-process
[submodule]
recurse = true
[push]
recurseSubmodules = on-demand

View file

@ -29,7 +29,8 @@ bind-key -n M-w confirm-before -p "are you sure you want to
set-option -g prefix ` # " set-option -g prefix ` # "
set-option -g default-terminal "xterm" # 256-colors set-option -g default-terminal "xterm" # 256-colors
# set-option -ag terminal-overrides ",$TERM:Tc" # " set-option -s extended-keys on
set-option -as terminal-features "xterm*:extkeys"
set-option -s escape-time 0 # vi-mode switch delay set-option -s escape-time 0 # vi-mode switch delay
set-option -g history-limit 50000 # scrollback buffer size set-option -g history-limit 50000 # scrollback buffer size
set-option -g display-time 6000 # tmux msg display duration set-option -g display-time 6000 # tmux msg display duration

View file

@ -1,54 +1,54 @@
@media -moz-pref("userChrome.theme-material") { @media -moz-pref("userChrome.theme-material") {
:root { :root {
--md-sys-color-primary: #824c76; --md-sys-color-primary: #2f628c;
--md-sys-color-surface-tint: #824c76; --md-sys-color-surface-tint: #2f628c;
--md-sys-color-on-primary: #ffffff; --md-sys-color-on-primary: #ffffff;
--md-sys-color-primary-container: #ffd7f1; --md-sys-color-primary-container: #cee5ff;
--md-sys-color-on-primary-container: #35082f; --md-sys-color-on-primary-container: #001d33;
--md-sys-color-secondary: #6f5867; --md-sys-color-secondary: #51606f;
--md-sys-color-on-secondary: #ffffff; --md-sys-color-on-secondary: #ffffff;
--md-sys-color-secondary-container: #f9daed; --md-sys-color-secondary-container: #d5e4f7;
--md-sys-color-on-secondary-container: #271623; --md-sys-color-on-secondary-container: #0e1d2a;
--md-sys-color-tertiary: #815342; --md-sys-color-tertiary: #68587a;
--md-sys-color-on-tertiary: #ffffff; --md-sys-color-on-tertiary: #ffffff;
--md-sys-color-tertiary-container: #ffdbcf; --md-sys-color-tertiary-container: #eedbff;
--md-sys-color-on-tertiary-container: #321206; --md-sys-color-on-tertiary-container: #231533;
--md-sys-color-error: #ba1a1a; --md-sys-color-error: #ba1a1a;
--md-sys-color-on-error: #ffffff; --md-sys-color-on-error: #ffffff;
--md-sys-color-error-container: #ffdad6; --md-sys-color-error-container: #ffdad6;
--md-sys-color-on-error-container: #410002; --md-sys-color-on-error-container: #410002;
--md-sys-color-background: #fff7f9; --md-sys-color-background: #f7f9ff;
--md-sys-color-on-background: #201a1e; --md-sys-color-on-background: #181c20;
--md-sys-color-surface: #fff7f9; --md-sys-color-surface: #f7f9ff;
--md-sys-color-on-surface: #201a1e; --md-sys-color-on-surface: #181c20;
--md-sys-color-surface-variant: #efdee6; --md-sys-color-surface-variant: #dee3eb;
--md-sys-color-on-surface-variant: #4e444a; --md-sys-color-on-surface-variant: #42474e;
--md-sys-color-outline: #80747b; --md-sys-color-outline: #72777f;
--md-sys-color-outline-variant: #d2c2ca; --md-sys-color-outline-variant: #c2c7cf;
--md-sys-color-shadow: #000000; --md-sys-color-shadow: #000000;
--md-sys-color-scrim: #000000; --md-sys-color-scrim: #000000;
--md-sys-color-inverse-surface: #362e33; --md-sys-color-inverse-surface: #2d3135;
--md-sys-color-inverse-on-surface: #fbedf3; --md-sys-color-inverse-on-surface: #eff1f6;
--md-sys-color-inverse-primary: #f4b2e2; --md-sys-color-inverse-primary: #9bcbfb;
--md-sys-color-primary-fixed: #ffd7f1; --md-sys-color-primary-fixed: #cee5ff;
--md-sys-color-on-primary-fixed: #35082f; --md-sys-color-on-primary-fixed: #001d33;
--md-sys-color-primary-fixed-dim: #f4b2e2; --md-sys-color-primary-fixed-dim: #9bcbfb;
--md-sys-color-on-primary-fixed-variant: #67355d; --md-sys-color-on-primary-fixed-variant: #0e4a73;
--md-sys-color-secondary-fixed: #f9daed; --md-sys-color-secondary-fixed: #d5e4f7;
--md-sys-color-on-secondary-fixed: #271623; --md-sys-color-on-secondary-fixed: #0e1d2a;
--md-sys-color-secondary-fixed-dim: #dcbed1; --md-sys-color-secondary-fixed-dim: #b9c8da;
--md-sys-color-on-secondary-fixed-variant: #56404f; --md-sys-color-on-secondary-fixed-variant: #3a4857;
--md-sys-color-tertiary-fixed: #ffdbcf; --md-sys-color-tertiary-fixed: #eedbff;
--md-sys-color-on-tertiary-fixed: #321206; --md-sys-color-on-tertiary-fixed: #231533;
--md-sys-color-tertiary-fixed-dim: #f5b9a4; --md-sys-color-tertiary-fixed-dim: #d3bfe6;
--md-sys-color-on-tertiary-fixed-variant: #663c2c; --md-sys-color-on-tertiary-fixed-variant: #504061;
--md-sys-color-surface-dim: #e3d7dc; --md-sys-color-surface-dim: #d8dae0;
--md-sys-color-surface-bright: #fff7f9; --md-sys-color-surface-bright: #f7f9ff;
--md-sys-color-surface-container-lowest: #ffffff; --md-sys-color-surface-container-lowest: #ffffff;
--md-sys-color-surface-container-low: #fef0f6; --md-sys-color-surface-container-low: #f1f3f9;
--md-sys-color-surface-container: #fff7f9; --md-sys-color-surface-container: #f7f9ff;
--md-sys-color-surface-container-high: #fff7f9; --md-sys-color-surface-container-high: #f7f9ff;
--md-sys-color-surface-container-highest: #fff7f9; --md-sys-color-surface-container-highest: #f7f9ff;
--m3-radius: 12px; --m3-radius: 12px;
--m3-radius-sm: 10px; --m3-radius-sm: 10px;
@ -68,55 +68,55 @@
@media (prefers-color-scheme: dark) { @media (prefers-color-scheme: dark) {
:root { :root {
--md-sys-color-primary: #f4b2e2; --md-sys-color-primary: #9bcbfb;
--md-sys-color-surface-tint: #f4b2e2; --md-sys-color-surface-tint: #9bcbfb;
--md-sys-color-on-primary: #4e1e45; --md-sys-color-on-primary: #003353;
--md-sys-color-primary-container: #67355d; --md-sys-color-primary-container: #0e4a73;
--md-sys-color-on-primary-container: #ffd7f1; --md-sys-color-on-primary-container: #cee5ff;
--md-sys-color-secondary: #dcbed1; --md-sys-color-secondary: #b9c8da;
--md-sys-color-on-secondary: #3e2a39; --md-sys-color-on-secondary: #233240;
--md-sys-color-secondary-container: #56404f; --md-sys-color-secondary-container: #3a4857;
--md-sys-color-on-secondary-container: #f9daed; --md-sys-color-on-secondary-container: #d5e4f7;
--md-sys-color-tertiary: #f5b9a4; --md-sys-color-tertiary: #d3bfe6;
--md-sys-color-on-tertiary: #4c2618; --md-sys-color-on-tertiary: #382a49;
--md-sys-color-tertiary-container: #663c2c; --md-sys-color-tertiary-container: #504061;
--md-sys-color-on-tertiary-container: #ffdbcf; --md-sys-color-on-tertiary-container: #eedbff;
--md-sys-color-error: #ffb4ab; --md-sys-color-error: #ffb4ab;
--md-sys-color-on-error: #690005; --md-sys-color-on-error: #690005;
--md-sys-color-error-container: #93000a; --md-sys-color-error-container: #93000a;
--md-sys-color-on-error-container: #ffdad6; --md-sys-color-on-error-container: #ffdad6;
--md-sys-color-background: #181216; --md-sys-color-background: #101418;
--md-sys-color-on-background: #ecdfe5; --md-sys-color-on-background: #e0e2e8;
--md-sys-color-surface: #181216; --md-sys-color-surface: #101418;
--md-sys-color-on-surface: #ecdfe5; --md-sys-color-on-surface: #e0e2e8;
--md-sys-color-surface-variant: #4e444a; --md-sys-color-surface-variant: #42474e;
--md-sys-color-on-surface-variant: #d2c2ca; --md-sys-color-on-surface-variant: #c2c7cf;
--md-sys-color-outline: #9b8d95; --md-sys-color-outline: #8c9198;
--md-sys-color-outline-variant: #4e444a; --md-sys-color-outline-variant: #42474e;
--md-sys-color-shadow: #000000; --md-sys-color-shadow: #000000;
--md-sys-color-scrim: #000000; --md-sys-color-scrim: #000000;
--md-sys-color-inverse-surface: #ecdfe5; --md-sys-color-inverse-surface: #e0e2e8;
--md-sys-color-inverse-on-surface: #362e33; --md-sys-color-inverse-on-surface: #2d3135;
--md-sys-color-inverse-primary: #824c76; --md-sys-color-inverse-primary: #2f628c;
--md-sys-color-primary-fixed: #ffd7f1; --md-sys-color-primary-fixed: #cee5ff;
--md-sys-color-on-primary-fixed: #35082f; --md-sys-color-on-primary-fixed: #001d33;
--md-sys-color-primary-fixed-dim: #f4b2e2; --md-sys-color-primary-fixed-dim: #9bcbfb;
--md-sys-color-on-primary-fixed-variant: #67355d; --md-sys-color-on-primary-fixed-variant: #0e4a73;
--md-sys-color-secondary-fixed: #f9daed; --md-sys-color-secondary-fixed: #d5e4f7;
--md-sys-color-on-secondary-fixed: #271623; --md-sys-color-on-secondary-fixed: #0e1d2a;
--md-sys-color-secondary-fixed-dim: #dcbed1; --md-sys-color-secondary-fixed-dim: #b9c8da;
--md-sys-color-on-secondary-fixed-variant: #56404f; --md-sys-color-on-secondary-fixed-variant: #3a4857;
--md-sys-color-tertiary-fixed: #ffdbcf; --md-sys-color-tertiary-fixed: #eedbff;
--md-sys-color-on-tertiary-fixed: #321206; --md-sys-color-on-tertiary-fixed: #231533;
--md-sys-color-tertiary-fixed-dim: #f5b9a4; --md-sys-color-tertiary-fixed-dim: #d3bfe6;
--md-sys-color-on-tertiary-fixed-variant: #663c2c; --md-sys-color-on-tertiary-fixed-variant: #504061;
--md-sys-color-surface-dim: #181216; --md-sys-color-surface-dim: #101418;
--md-sys-color-surface-bright: #3f373c; --md-sys-color-surface-bright: #36393e;
--md-sys-color-surface-container-lowest: #120c10; --md-sys-color-surface-container-lowest: #0b0f12;
--md-sys-color-surface-container-low: #201a1e; --md-sys-color-surface-container-low: #181c20;
--md-sys-color-surface-container: #241e22; --md-sys-color-surface-container: #1c2024;
--md-sys-color-surface-container-high: #2f282c; --md-sys-color-surface-container-high: #272a2f;
--md-sys-color-surface-container-highest: #3a3337; --md-sys-color-surface-container-highest: #323539;
--m3-elev-1: 0 1px 2px rgba(0,0,0,.50), 0 1px 3px rgba(0,0,0,.35); --m3-elev-1: 0 1px 2px rgba(0,0,0,.50), 0 1px 3px rgba(0,0,0,.35);
--m3-elev-2: 0 4px 10px rgba(0,0,0,.55), 0 1px 3px rgba(0,0,0,.35); --m3-elev-2: 0 4px 10px rgba(0,0,0,.55), 0 1px 3px rgba(0,0,0,.35);

View file

@ -17,7 +17,8 @@
"noTrigger": false "noTrigger": false
}, },
"grimblast": { "grimblast": {
"enabled": false "enabled": false,
"saveLocation": "~/dcim/pictures/screenshots"
}, },
"dankActions": { "dankActions": {
"enabled": false, "enabled": false,
@ -61,5 +62,8 @@
"enabled": true, "enabled": true,
"wifiConnected": "/home/lew/.local/bin/hooks/generic", "wifiConnected": "/home/lew/.local/bin/hooks/generic",
"audioVolume": "" "audioVolume": ""
},
"alarmClock": {
"enabled": true
} }
} }

View file

@ -1,5 +1,4 @@
import QtQuick import QtQuick
import QtQuick.Controls
import qs.Common import qs.Common
import qs.Services import qs.Services
import qs.Widgets import qs.Widgets
@ -12,31 +11,35 @@ PluginSettings {
property string editingVariantId: "" property string editingVariantId: ""
function loadVariantForEditing(variantData) { function loadVariantForEditing(variantData) {
editingVariantId = variantData.id || "" editingVariantId = variantData.id || "";
nameField.text = variantData.name || "" nameField.text = variantData.name || "";
iconField.text = variantData.icon || "" iconField.text = variantData.icon || "";
displayTextField.text = variantData.displayText || "" displayTextField.text = variantData.displayText || "";
displayCommandField.text = variantData.displayCommand || "" displayCommandField.text = variantData.displayCommand || "";
clickCommandField.text = variantData.clickCommand || "" clickCommandField.text = variantData.clickCommand || "";
middleClickCommandField.text = variantData.middleClickCommand || "" middleClickCommandField.text = variantData.middleClickCommand || "";
rightClickCommandField.text = variantData.rightClickCommand || "" rightClickCommandField.text = variantData.rightClickCommand || "";
updateIntervalField.text = (variantData.updateInterval || 0).toString() updateIntervalField.text = (variantData.updateInterval || 0).toString();
showIconToggle.checked = variantData.showIcon !== undefined ? variantData.showIcon : true showIconToggle.checked = variantData.showIcon !== undefined ? variantData.showIcon : true;
showTextToggle.checked = variantData.showText !== undefined ? variantData.showText : true showTextToggle.checked = variantData.showText !== undefined ? variantData.showText : true;
visibilityCommandField.text = variantData.visibilityCommand || "";
visibilityIntervalField.text = (variantData.visibilityInterval || 0).toString();
} }
function clearForm() { function clearForm() {
editingVariantId = "" editingVariantId = "";
nameField.text = "" nameField.text = "";
iconField.text = "" iconField.text = "";
displayTextField.text = "" displayTextField.text = "";
displayCommandField.text = "" displayCommandField.text = "";
clickCommandField.text = "" clickCommandField.text = "";
middleClickCommandField.text = "" middleClickCommandField.text = "";
rightClickCommandField.text = "" rightClickCommandField.text = "";
updateIntervalField.text = "0" updateIntervalField.text = "0";
showIconToggle.checked = true showIconToggle.checked = true;
showTextToggle.checked = true showTextToggle.checked = true;
visibilityCommandField.text = "";
visibilityIntervalField.text = "0";
} }
StyledText { StyledText {
@ -107,7 +110,8 @@ PluginSettings {
placeholderText: "e.g., Power Profile" placeholderText: "e.g., Power Profile"
keyNavigationTab: iconField keyNavigationTab: iconField
onFocusStateChanged: hasFocus => { onFocusStateChanged: hasFocus => {
if (hasFocus) root.ensureItemVisible(nameField) if (hasFocus)
root.ensureItemVisible(nameField);
} }
} }
} }
@ -129,7 +133,8 @@ PluginSettings {
keyNavigationBacktab: nameField keyNavigationBacktab: nameField
keyNavigationTab: displayTextField keyNavigationTab: displayTextField
onFocusStateChanged: hasFocus => { onFocusStateChanged: hasFocus => {
if (hasFocus) root.ensureItemVisible(iconField) if (hasFocus)
root.ensureItemVisible(iconField);
} }
} }
} }
@ -152,7 +157,8 @@ PluginSettings {
keyNavigationBacktab: iconField keyNavigationBacktab: iconField
keyNavigationTab: displayCommandField keyNavigationTab: displayCommandField
onFocusStateChanged: hasFocus => { onFocusStateChanged: hasFocus => {
if (hasFocus) root.ensureItemVisible(displayTextField) if (hasFocus)
root.ensureItemVisible(displayTextField);
} }
} }
} }
@ -174,7 +180,8 @@ PluginSettings {
keyNavigationBacktab: displayTextField keyNavigationBacktab: displayTextField
keyNavigationTab: clickCommandField keyNavigationTab: clickCommandField
onFocusStateChanged: hasFocus => { onFocusStateChanged: hasFocus => {
if (hasFocus) root.ensureItemVisible(displayCommandField) if (hasFocus)
root.ensureItemVisible(displayCommandField);
} }
} }
@ -204,7 +211,8 @@ PluginSettings {
keyNavigationBacktab: displayCommandField keyNavigationBacktab: displayCommandField
keyNavigationTab: middleClickCommandField keyNavigationTab: middleClickCommandField
onFocusStateChanged: hasFocus => { onFocusStateChanged: hasFocus => {
if (hasFocus) root.ensureItemVisible(clickCommandField) if (hasFocus)
root.ensureItemVisible(clickCommandField);
} }
} }
@ -234,7 +242,8 @@ PluginSettings {
keyNavigationBacktab: clickCommandField keyNavigationBacktab: clickCommandField
keyNavigationTab: rightClickCommandField keyNavigationTab: rightClickCommandField
onFocusStateChanged: hasFocus => { onFocusStateChanged: hasFocus => {
if (hasFocus) root.ensureItemVisible(middleClickCommandField) if (hasFocus)
root.ensureItemVisible(middleClickCommandField);
} }
} }
} }
@ -256,7 +265,8 @@ PluginSettings {
keyNavigationBacktab: middleClickCommandField keyNavigationBacktab: middleClickCommandField
keyNavigationTab: updateIntervalField keyNavigationTab: updateIntervalField
onFocusStateChanged: hasFocus => { onFocusStateChanged: hasFocus => {
if (hasFocus) root.ensureItemVisible(rightClickCommandField) if (hasFocus)
root.ensureItemVisible(rightClickCommandField);
} }
} }
} }
@ -277,8 +287,10 @@ PluginSettings {
placeholderText: "0" placeholderText: "0"
text: "0" text: "0"
keyNavigationBacktab: rightClickCommandField keyNavigationBacktab: rightClickCommandField
keyNavigationTab: visibilityCommandField
onFocusStateChanged: hasFocus => { onFocusStateChanged: hasFocus => {
if (hasFocus) root.ensureItemVisible(updateIntervalField) if (hasFocus)
root.ensureItemVisible(updateIntervalField);
} }
} }
@ -291,6 +303,68 @@ PluginSettings {
} }
} }
Column {
width: parent.width
spacing: Theme.spacingXS
StyledText {
text: "Visibility Condition (optional)"
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText
}
DankTextField {
id: visibilityCommandField
width: parent.width
placeholderText: "e.g., pgrep -x firefox (exit 0 = show, non-zero = hide)"
keyNavigationBacktab: updateIntervalField
keyNavigationTab: visibilityIntervalField
onFocusStateChanged: hasFocus => {
if (hasFocus)
root.ensureItemVisible(visibilityCommandField);
}
}
StyledText {
text: "Widget shows when command exits 0, hides when non-zero."
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText
wrapMode: Text.WordWrap
width: parent.width
}
}
Column {
width: parent.width
spacing: Theme.spacingXS
StyledText {
text: "Visibility Check Interval (seconds, 0 = once on load)"
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText
}
DankTextField {
id: visibilityIntervalField
width: parent.width
placeholderText: "0"
text: "0"
keyNavigationBacktab: visibilityCommandField
onFocusStateChanged: hasFocus => {
if (hasFocus)
root.ensureItemVisible(visibilityIntervalField);
}
}
StyledText {
text: "How often to re-check visibility condition. Set to 0 to check only once."
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText
wrapMode: Text.WordWrap
width: parent.width
}
}
Row { Row {
width: parent.width width: parent.width
spacing: Theme.spacingL spacing: Theme.spacingL
@ -308,7 +382,7 @@ PluginSettings {
id: showIconToggle id: showIconToggle
checked: true checked: true
onToggled: isChecked => { onToggled: isChecked => {
checked = isChecked checked = isChecked;
} }
} }
} }
@ -326,7 +400,7 @@ PluginSettings {
id: showTextToggle id: showTextToggle
checked: true checked: true
onToggled: isChecked => { onToggled: isChecked => {
checked = isChecked checked = isChecked;
} }
} }
} }
@ -337,14 +411,20 @@ PluginSettings {
iconName: root.editingVariantId ? "check" : "add" iconName: root.editingVariantId ? "check" : "add"
onClicked: { onClicked: {
if (!nameField.text) { if (!nameField.text) {
ToastService.showError("Please enter a variant name") ToastService.showError("Please enter a variant name");
return return;
} }
var interval = parseInt(updateIntervalField.text) || 0 var interval = parseInt(updateIntervalField.text) || 0;
if (interval < 0) { if (interval < 0) {
ToastService.showError("Update interval must be 0 or greater") ToastService.showError("Update interval must be 0 or greater");
return return;
}
var visInterval = parseInt(visibilityIntervalField.text) || 0;
if (visInterval < 0) {
ToastService.showError("Visibility interval must be 0 or greater");
return;
} }
var variantConfig = { var variantConfig = {
@ -356,17 +436,19 @@ PluginSettings {
rightClickCommand: rightClickCommandField.text || "", rightClickCommand: rightClickCommandField.text || "",
updateInterval: interval, updateInterval: interval,
showIcon: showIconToggle.checked, showIcon: showIconToggle.checked,
showText: showTextToggle.checked showText: showTextToggle.checked,
} visibilityCommand: visibilityCommandField.text || "",
visibilityInterval: visInterval
};
if (root.editingVariantId) { if (root.editingVariantId) {
variantConfig.name = nameField.text variantConfig.name = nameField.text;
updateVariant(root.editingVariantId, variantConfig) updateVariant(root.editingVariantId, variantConfig);
} else { } else {
createVariant(nameField.text, variantConfig) createVariant(nameField.text, variantConfig);
} }
root.clearForm() root.clearForm();
} }
} }
} }
@ -445,11 +527,16 @@ PluginSettings {
StyledText { StyledText {
text: { text: {
var parts = [] var parts = [];
if (model.displayText) parts.push("Text: " + model.displayText) if (model.displayText)
if (model.displayCommand) parts.push("Cmd: " + model.displayCommand) parts.push("Text: " + model.displayText);
if (model.updateInterval && model.updateInterval > 0) parts.push("Update: " + model.updateInterval + "s") if (model.displayCommand)
return parts.join(" | ") || "No display config" parts.push("Cmd: " + model.displayCommand);
if (model.updateInterval && model.updateInterval > 0)
parts.push("Update: " + model.updateInterval + "s");
if (model.visibilityCommand)
parts.push("Vis: " + model.visibilityCommand);
return parts.join(" | ") || "No display config";
} }
font.pixelSize: Theme.fontSizeSmall font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText color: Theme.surfaceVariantText
@ -459,11 +546,14 @@ PluginSettings {
StyledText { StyledText {
text: { text: {
var actions = [] var actions = [];
if (model.clickCommand) actions.push("L: " + model.clickCommand) if (model.clickCommand)
if (model.middleClickCommand) actions.push("M: " + model.middleClickCommand) actions.push("L: " + model.clickCommand);
if (model.rightClickCommand) actions.push("R: " + model.rightClickCommand) if (model.middleClickCommand)
return actions.join(" | ") || "No click actions" actions.push("M: " + model.middleClickCommand);
if (model.rightClickCommand)
actions.push("R: " + model.rightClickCommand);
return actions.join(" | ") || "No click actions";
} }
font.pixelSize: Theme.fontSizeSmall font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText color: Theme.surfaceVariantText
@ -496,7 +586,7 @@ PluginSettings {
hoverEnabled: true hoverEnabled: true
cursorShape: Qt.PointingHandCursor cursorShape: Qt.PointingHandCursor
onClicked: { onClicked: {
root.loadVariantForEditing(model) root.loadVariantForEditing(model);
} }
} }
} }
@ -521,7 +611,7 @@ PluginSettings {
hoverEnabled: true hoverEnabled: true
cursorShape: Qt.PointingHandCursor cursorShape: Qt.PointingHandCursor
onClicked: { onClicked: {
removeVariant(model.id) removeVariant(model.id);
} }
} }
} }

View file

@ -1,5 +1,4 @@
import QtQuick import QtQuick
import Quickshell
import Quickshell.Io import Quickshell.Io
import qs.Common import qs.Common
import qs.Services import qs.Services
@ -25,17 +24,20 @@ PluginComponent {
property string currentOutput: "" property string currentOutput: ""
property bool isLoading: false property bool isLoading: false
visibilityCommand: variantData?.visibilityCommand || ""
visibilityInterval: variantData?.visibilityInterval || 0
onVariantDataChanged: { onVariantDataChanged: {
updatePropertiesFromVariantData() updatePropertiesFromVariantData();
} }
Connections { Connections {
target: PluginService target: PluginService
function onPluginDataChanged(changedPluginId) { function onPluginDataChanged(changedPluginId) {
if (changedPluginId === "dankActions" && variantId) { if (changedPluginId === "dankActions" && variantId) {
const newData = PluginService.getPluginVariantData("dankActions", variantId) const newData = PluginService.getPluginVariantData("dankActions", variantId);
if (newData) { if (newData) {
variantData = newData variantData = newData;
} }
} }
} }
@ -43,69 +45,69 @@ PluginComponent {
function updatePropertiesFromVariantData() { function updatePropertiesFromVariantData() {
if (!variantData) { if (!variantData) {
displayIcon = "terminal" displayIcon = "terminal";
displayText = "" displayText = "";
displayCommand = "" displayCommand = "";
clickCommand = "" clickCommand = "";
middleClickCommand = "" middleClickCommand = "";
rightClickCommand = "" rightClickCommand = "";
updateInterval = 0 updateInterval = 0;
showIcon = true showIcon = true;
showText = true showText = true;
currentOutput = "" currentOutput = "";
return return;
} }
displayIcon = variantData.icon || "terminal" displayIcon = variantData.icon || "terminal";
displayText = variantData.displayText || "" displayText = variantData.displayText || "";
displayCommand = variantData.displayCommand || "" displayCommand = variantData.displayCommand || "";
clickCommand = variantData.clickCommand || "" clickCommand = variantData.clickCommand || "";
middleClickCommand = variantData.middleClickCommand || "" middleClickCommand = variantData.middleClickCommand || "";
rightClickCommand = variantData.rightClickCommand || "" rightClickCommand = variantData.rightClickCommand || "";
updateInterval = variantData.updateInterval || 0 updateInterval = variantData.updateInterval || 0;
showIcon = variantData.showIcon !== undefined ? variantData.showIcon : true showIcon = variantData.showIcon !== undefined ? variantData.showIcon : true;
showText = variantData.showText !== undefined ? variantData.showText : true showText = variantData.showText !== undefined ? variantData.showText : true;
if (displayCommand) { if (displayCommand) {
Qt.callLater(refreshOutput) Qt.callLater(refreshOutput);
} else { } else {
currentOutput = displayText currentOutput = displayText;
} }
if (updateInterval > 0) { if (updateInterval > 0) {
updateTimer.restart() updateTimer.restart();
} }
} }
onDisplayCommandChanged: { onDisplayCommandChanged: {
if (displayCommand) { if (displayCommand) {
Qt.callLater(refreshOutput) Qt.callLater(refreshOutput);
} else { } else {
currentOutput = displayText currentOutput = displayText;
} }
} }
onDisplayTextChanged: { onDisplayTextChanged: {
if (!displayCommand) { if (!displayCommand) {
currentOutput = displayText currentOutput = displayText;
} }
} }
onUpdateIntervalChanged: { onUpdateIntervalChanged: {
if (updateInterval > 0) { if (updateInterval > 0) {
updateTimer.restart() updateTimer.restart();
} else { } else {
updateTimer.stop() updateTimer.stop();
} }
} }
Component.onCompleted: { Component.onCompleted: {
if (displayCommand) { if (displayCommand) {
Qt.callLater(refreshOutput) Qt.callLater(refreshOutput);
} else { } else {
currentOutput = displayText currentOutput = displayText;
} }
if (updateInterval > 0) { if (updateInterval > 0) {
updateTimer.start() updateTimer.start();
} }
} }
@ -116,27 +118,27 @@ PluginComponent {
running: false running: false
onTriggered: { onTriggered: {
if (root.displayCommand) { if (root.displayCommand) {
root.refreshOutput() root.refreshOutput();
} }
} }
} }
function refreshOutput() { function refreshOutput() {
if (!displayCommand) { if (!displayCommand) {
currentOutput = displayText currentOutput = displayText;
return return;
} }
isLoading = true isLoading = true;
displayProcess.running = true displayProcess.running = true;
} }
function executeCommand(command) { function executeCommand(command) {
if (!command) return if (!command)
return;
isLoading = true isLoading = true;
actionProcess.command = ["sh", "-c", command] actionProcess.command = ["sh", "-c", command];
actionProcess.running = true actionProcess.running = true;
} }
Process { Process {
@ -146,14 +148,14 @@ PluginComponent {
stdout: SplitParser { stdout: SplitParser {
onRead: data => { onRead: data => {
root.currentOutput = data.trim() root.currentOutput = data.trim();
} }
} }
onExited: (exitCode, exitStatus) => { onExited: (exitCode, exitStatus) => {
root.isLoading = false root.isLoading = false;
if (exitCode !== 0) { if (exitCode !== 0) {
console.warn("CustomActions: Display command failed with code", exitCode) console.warn("CustomActions: Display command failed with code", exitCode);
} }
} }
} }
@ -164,20 +166,20 @@ PluginComponent {
running: false running: false
onExited: (exitCode, exitStatus) => { onExited: (exitCode, exitStatus) => {
root.isLoading = false root.isLoading = false;
if (exitCode === 0) { if (exitCode === 0) {
if (root.displayCommand) { if (root.displayCommand) {
root.refreshOutput() root.refreshOutput();
} }
} else { } else {
console.warn("CustomActions: Action command failed with code", exitCode) console.warn("CustomActions: Action command failed with code", exitCode);
} }
} }
} }
pillClickAction: () => { pillClickAction: () => {
if (root.clickCommand) { if (root.clickCommand) {
root.executeCommand(root.clickCommand) root.executeCommand(root.clickCommand);
} }
} }
@ -189,11 +191,11 @@ PluginComponent {
hoverEnabled: true hoverEnabled: true
cursorShape: Qt.PointingHandCursor cursorShape: Qt.PointingHandCursor
onClicked: (mouse) => { onClicked: mouse => {
if (mouse.button === Qt.MiddleButton && root.middleClickCommand) { if (mouse.button === Qt.MiddleButton && root.middleClickCommand) {
root.executeCommand(root.middleClickCommand) root.executeCommand(root.middleClickCommand);
} else if (mouse.button === Qt.RightButton && root.rightClickCommand) { } else if (mouse.button === Qt.RightButton && root.rightClickCommand) {
root.executeCommand(root.rightClickCommand) root.executeCommand(root.rightClickCommand);
} }
} }
@ -229,11 +231,11 @@ PluginComponent {
hoverEnabled: true hoverEnabled: true
cursorShape: Qt.PointingHandCursor cursorShape: Qt.PointingHandCursor
onClicked: (mouse) => { onClicked: mouse => {
if (mouse.button === Qt.MiddleButton && root.middleClickCommand) { if (mouse.button === Qt.MiddleButton && root.middleClickCommand) {
root.executeCommand(root.middleClickCommand) root.executeCommand(root.middleClickCommand);
} else if (mouse.button === Qt.RightButton && root.rightClickCommand) { } else if (mouse.button === Qt.RightButton && root.rightClickCommand) {
root.executeCommand(root.rightClickCommand) root.executeCommand(root.rightClickCommand);
} }
} }

View file

@ -2,7 +2,7 @@
"id": "dankActions", "id": "dankActions",
"name": "Dank Actions", "name": "Dank Actions",
"description": "Execute custom commands with dynamic output display and configurable icons", "description": "Execute custom commands with dynamic output display and configurable icons",
"version": "1.0.4", "version": "1.0.5",
"license": "MIT", "license": "MIT",
"author": "Avenge Media", "author": "Avenge Media",
"icon": "terminal", "icon": "terminal",

View file

@ -1 +1 @@
87870d8b70758f08aa8fd5401a0e4eec3941ed48 86c1e03fd8aa106728b46fe3fe4cb085c33fd698

View file

@ -1 +1 @@
87870d8b70758f08aa8fd5401a0e4eec3941ed48 da1714820ff2c997092c97d31c72faad5a4e5a01

View file

@ -1 +1 @@
2951ec7f823c983c11b6b231403581a386a7c9f6 bd2df8723d417d11dc0ce6ddc225d25f707ce2f5

View file

@ -2,6 +2,7 @@
"currentThemeName": "dynamic", "currentThemeName": "dynamic",
"currentThemeCategory": "generic", "currentThemeCategory": "generic",
"customThemeFile": "/home/lew/.config/niri/dms/colors.json", "customThemeFile": "/home/lew/.config/niri/dms/colors.json",
"registryThemeVariants": {},
"matugenScheme": "scheme-tonal-spot", "matugenScheme": "scheme-tonal-spot",
"runUserMatugenTemplates": true, "runUserMatugenTemplates": true,
"matugenTargetMonitor": "", "matugenTargetMonitor": "",
@ -9,10 +10,22 @@
"dockTransparency": 0, "dockTransparency": 0,
"widgetBackgroundColor": "sch", "widgetBackgroundColor": "sch",
"widgetColorMode": "default", "widgetColorMode": "default",
"controlCenterTileColorMode": "primary",
"cornerRadius": 0, "cornerRadius": 0,
"niriLayoutGapsOverride": -1,
"niriLayoutRadiusOverride": -1,
"niriLayoutBorderSize": -1,
"hyprlandLayoutGapsOverride": -1,
"hyprlandLayoutRadiusOverride": -1,
"hyprlandLayoutBorderSize": -1,
"mangoLayoutGapsOverride": -1,
"mangoLayoutRadiusOverride": -1,
"mangoLayoutBorderSize": -1,
"use24HourClock": false, "use24HourClock": false,
"showSeconds": false, "showSeconds": false,
"padHours12Hour": false,
"useFahrenheit": false, "useFahrenheit": false,
"windSpeedUnit": "kmh",
"nightModeEnabled": false, "nightModeEnabled": false,
"animationSpeed": 4, "animationSpeed": 4,
"customAnimationDuration": 100, "customAnimationDuration": 100,
@ -40,11 +53,15 @@
"controlCenterShowNetworkIcon": true, "controlCenterShowNetworkIcon": true,
"controlCenterShowBluetoothIcon": true, "controlCenterShowBluetoothIcon": true,
"controlCenterShowAudioIcon": true, "controlCenterShowAudioIcon": true,
"controlCenterShowAudioPercent": false,
"controlCenterShowVpnIcon": true, "controlCenterShowVpnIcon": true,
"controlCenterShowBrightnessIcon": true, "controlCenterShowBrightnessIcon": true,
"controlCenterShowBrightnessPercent": false,
"controlCenterShowMicIcon": false, "controlCenterShowMicIcon": false,
"controlCenterShowMicPercent": false,
"controlCenterShowBatteryIcon": false, "controlCenterShowBatteryIcon": false,
"controlCenterShowPrinterIcon": false, "controlCenterShowPrinterIcon": false,
"controlCenterShowScreenSharingIcon": true,
"showPrivacyButton": true, "showPrivacyButton": true,
"privacyShowMicIcon": false, "privacyShowMicIcon": false,
"privacyShowCameraIcon": false, "privacyShowCameraIcon": false,
@ -109,40 +126,108 @@
} }
], ],
"showWorkspaceIndex": false, "showWorkspaceIndex": false,
"showWorkspaceName": false,
"showWorkspacePadding": false, "showWorkspacePadding": false,
"workspaceScrolling": false, "workspaceScrolling": false,
"showWorkspaceApps": false, "showWorkspaceApps": false,
"maxWorkspaceIcons": 3, "maxWorkspaceIcons": 3,
"workspacesPerMonitor": true, "workspaceAppIconSizeOffset": 0,
"groupWorkspaceApps": true,
"workspaceFollowFocus": false,
"showOccupiedWorkspacesOnly": false, "showOccupiedWorkspacesOnly": false,
"reverseScrolling": false,
"dwlShowAllTags": false, "dwlShowAllTags": false,
"workspaceColorMode": "default",
"workspaceOccupiedColorMode": "none",
"workspaceUnfocusedColorMode": "default",
"workspaceUrgentColorMode": "default",
"workspaceFocusedBorderEnabled": false,
"workspaceFocusedBorderColor": "primary",
"workspaceFocusedBorderThickness": 2,
"workspaceNameIcons": {}, "workspaceNameIcons": {},
"waveProgressEnabled": true, "waveProgressEnabled": true,
"scrollTitleEnabled": true, "scrollTitleEnabled": true,
"audioVisualizerEnabled": true, "audioVisualizerEnabled": true,
"audioScrollMode": "volume",
"clockCompactMode": false, "clockCompactMode": false,
"focusedWindowCompactMode": false, "focusedWindowCompactMode": false,
"runningAppsCompactMode": true, "runningAppsCompactMode": true,
"barMaxVisibleApps": 0,
"barMaxVisibleRunningApps": 0,
"barShowOverflowBadge": true,
"keyboardLayoutNameCompactMode": false, "keyboardLayoutNameCompactMode": false,
"runningAppsCurrentWorkspace": false, "runningAppsCurrentWorkspace": false,
"runningAppsGroupByApp": false, "runningAppsGroupByApp": false,
"appIdSubstitutions": [
{
"pattern": "Spotify",
"replacement": "spotify",
"type": "exact"
},
{
"pattern": "beepertexts",
"replacement": "beeper",
"type": "exact"
},
{
"pattern": "home assistant desktop",
"replacement": "homeassistant-desktop",
"type": "exact"
},
{
"pattern": "com.transmissionbt.transmission",
"replacement": "transmission-gtk",
"type": "contains"
},
{
"pattern": "^steam_app_(\\d+)$",
"replacement": "steam_icon_$1",
"type": "regex"
}
],
"centeringMode": "index", "centeringMode": "index",
"clockDateFormat": "dddd, MMMM d", "clockDateFormat": "dddd, MMMM d",
"lockDateFormat": "dddd, MMMM d", "lockDateFormat": "dddd, MMMM d",
"mediaSize": 1, "mediaSize": 1,
"appLauncherViewMode": "grid", "appLauncherViewMode": "grid",
"spotlightModalViewMode": "grid", "spotlightModalViewMode": "grid",
"browserPickerViewMode": "grid",
"browserUsageHistory": {},
"appPickerViewMode": "grid",
"filePickerUsageHistory": {},
"sortAppsAlphabetically": false, "sortAppsAlphabetically": false,
"appLauncherGridColumns": 5, "appLauncherGridColumns": 6,
"spotlightCloseNiriOverview": true, "spotlightCloseNiriOverview": true,
"spotlightSectionViewModes": {
"apps": "grid"
},
"appDrawerSectionViewModes": {},
"niriOverviewOverlayEnabled": true, "niriOverviewOverlayEnabled": true,
"weatherLocation": "New York, NY", "dankLauncherV2Size": "micro",
"weatherCoordinates": "40.7128,-74.0060", "dankLauncherV2BorderEnabled": false,
"dankLauncherV2BorderThickness": 2,
"dankLauncherV2BorderColor": "primary",
"dankLauncherV2ShowFooter": false,
"useAutoLocation": true, "useAutoLocation": true,
"weatherEnabled": true, "weatherEnabled": true,
"networkPreference": "wifi", "networkPreference": "wifi",
"vpnLastConnected": "",
"iconTheme": "System Default", "iconTheme": "System Default",
"cursorSettings": {
"theme": "System Default",
"size": 24,
"niri": {
"hideWhenTyping": false,
"hideAfterInactiveMs": 0
},
"hyprland": {
"hideOnKeyPress": false,
"hideOnTouch": false,
"inactiveTimeout": 0
},
"dwl": {
"cursorHideTimeout": 0
}
},
"launcherLogoMode": "apps", "launcherLogoMode": "apps",
"launcherLogoCustomPath": "", "launcherLogoCustomPath": "",
"launcherLogoColorOverride": "", "launcherLogoColorOverride": "",
@ -175,10 +260,13 @@
"batterySuspendTimeout": 0, "batterySuspendTimeout": 0,
"batterySuspendBehavior": 0, "batterySuspendBehavior": 0,
"batteryProfileName": "", "batteryProfileName": "",
"batteryChargeLimit": 100,
"lockBeforeSuspend": false, "lockBeforeSuspend": false,
"loginctlLockIntegration": true, "loginctlLockIntegration": true,
"fadeToLockEnabled": false, "fadeToLockEnabled": false,
"fadeToLockGracePeriod": 5, "fadeToLockGracePeriod": 5,
"fadeToDpmsEnabled": true,
"fadeToDpmsGracePeriod": 5,
"launchPrefix": "", "launchPrefix": "",
"brightnessDevicePins": {}, "brightnessDevicePins": {},
"wifiNetworkPins": { "wifiNetworkPins": {
@ -198,10 +286,13 @@
"runDmsMatugenTemplates": true, "runDmsMatugenTemplates": true,
"matugenTemplateGtk": true, "matugenTemplateGtk": true,
"matugenTemplateNiri": true, "matugenTemplateNiri": true,
"matugenTemplateHyprland": true,
"matugenTemplateMangowc": true,
"matugenTemplateQt5ct": true, "matugenTemplateQt5ct": true,
"matugenTemplateQt6ct": true, "matugenTemplateQt6ct": true,
"matugenTemplateFirefox": true, "matugenTemplateFirefox": true,
"matugenTemplatePywalfox": true, "matugenTemplatePywalfox": true,
"matugenTemplateZenBrowser": true,
"matugenTemplateVesktop": true, "matugenTemplateVesktop": true,
"matugenTemplateEquibop": true, "matugenTemplateEquibop": true,
"matugenTemplateGhostty": true, "matugenTemplateGhostty": true,
@ -213,8 +304,10 @@
"matugenTemplateDgop": true, "matugenTemplateDgop": true,
"matugenTemplateKcolorscheme": true, "matugenTemplateKcolorscheme": true,
"matugenTemplateVscode": true, "matugenTemplateVscode": true,
"matugenTemplateEmacs": true,
"showDock": false, "showDock": false,
"dockAutoHide": false, "dockAutoHide": false,
"dockSmartAutoHide": false,
"dockGroupByApp": true, "dockGroupByApp": true,
"dockOpenOnOverview": false, "dockOpenOnOverview": false,
"dockPosition": 1, "dockPosition": 1,
@ -228,22 +321,43 @@
"dockBorderOpacity": 1, "dockBorderOpacity": 1,
"dockBorderThickness": 1, "dockBorderThickness": 1,
"dockIsolateDisplays": false, "dockIsolateDisplays": false,
"dockLauncherEnabled": false,
"dockLauncherLogoMode": "apps",
"dockLauncherLogoCustomPath": "",
"dockLauncherLogoColorOverride": "",
"dockLauncherLogoSizeOffset": 0,
"dockLauncherLogoBrightness": 0.5,
"dockLauncherLogoContrast": 1,
"dockMaxVisibleApps": 0,
"dockMaxVisibleRunningApps": 0,
"dockShowOverflowBadge": true,
"notificationOverlayEnabled": false, "notificationOverlayEnabled": false,
"modalDarkenBackground": true,
"lockScreenShowPowerActions": true, "lockScreenShowPowerActions": true,
"lockScreenShowSystemIcons": true, "lockScreenShowSystemIcons": true,
"lockScreenShowTime": true, "lockScreenShowTime": true,
"lockScreenShowDate": true, "lockScreenShowDate": true,
"lockScreenShowProfileImage": true, "lockScreenShowProfileImage": true,
"lockScreenShowPasswordField": true, "lockScreenShowPasswordField": true,
"lockScreenShowMediaPlayer": true,
"lockScreenPowerOffMonitorsOnLock": false,
"enableFprint": false, "enableFprint": false,
"maxFprintTries": 15, "maxFprintTries": 15,
"lockScreenActiveMonitor": "all", "lockScreenActiveMonitor": "all",
"lockScreenInactiveColor": "#000000", "lockScreenInactiveColor": "#000000",
"lockScreenNotificationMode": 0,
"hideBrightnessSlider": false, "hideBrightnessSlider": false,
"notificationTimeoutLow": 5000, "notificationTimeoutLow": 5000,
"notificationTimeoutNormal": 5000, "notificationTimeoutNormal": 5000,
"notificationTimeoutCritical": 0, "notificationTimeoutCritical": 0,
"notificationCompactMode": false,
"notificationPopupPosition": -1, "notificationPopupPosition": -1,
"notificationHistoryEnabled": true,
"notificationHistoryMaxCount": 50,
"notificationHistoryMaxAgeDays": 7,
"notificationHistorySaveLow": true,
"notificationHistorySaveNormal": true,
"notificationHistorySaveCritical": true,
"osdAlwaysShowValue": false, "osdAlwaysShowValue": false,
"osdPosition": 5, "osdPosition": 5,
"osdVolumeEnabled": true, "osdVolumeEnabled": true,
@ -294,7 +408,9 @@
"name": "Main Bar", "name": "Main Bar",
"enabled": true, "enabled": true,
"position": 0, "position": 0,
"screenPreferences": [], "screenPreferences": [
"all"
],
"showOnLastDisplay": true, "showOnLastDisplay": true,
"leftWidgets": [ "leftWidgets": [
{ {
@ -494,6 +610,18 @@
"y": 139, "y": 139,
"width": 229, "width": 229,
"height": 300 "height": 300
},
"eDP-1": {
"width": 320,
"height": 480,
"x": 800,
"y": 300
},
"": {
"width": 160,
"height": 180,
"x": 0,
"y": 0
} }
} }
}, },
@ -525,5 +653,29 @@
} }
} }
], ],
"configVersion": 4 "desktopWidgetGroups": [],
"builtInPluginSettings": {
"dms_settings_search": {
"trigger": "?"
},
"dms_sysmon": {
"enabled": false
},
"dms_notepad": {
"enabled": false
},
"dms_settings": {
"enabled": false
}
},
"launcherPluginVisibility": {
"emojiLauncher": {
"allowWithoutTrigger": false
},
"dms_settings_search": {
"allowWithoutTrigger": false
}
},
"launcherPluginOrder": [],
"configVersion": 5
} }

View file

@ -1,31 +1,31 @@
[colors.primary] [colors.primary]
background = '#181216' background = '#101418'
foreground = '#ecdfe5' foreground = '#e0e2e8'
[colors.selection] [colors.selection]
text = '#ecdfe5' text = '#e0e2e8'
background = '#67355d' background = '#0e4a73'
[colors.cursor] [colors.cursor]
text = '#181216' text = '#101418'
cursor = '#f4b2e2' cursor = '#9bcbfb'
[colors.normal] [colors.normal]
black = '#181216' black = '#101418'
red = '#d75c3c' red = '#ff729c'
green = '#6ed681' green = '#7dfb8e'
yellow = '#d1db7b' yellow = '#fff772'
blue = '#c75aa9' blue = '#81b7ee'
magenta = '#b78fac' magenta = '#224b74'
cyan = '#f4b2e2' cyan = '#9bcbfb'
white = '#abb2bf' white = '#eff7ff'
[colors.bright] [colors.bright]
black = '#5c6370' black = '#969da3'
red = '#e0795f' red = '#ff9fbc'
green = '#86e096' green = '#a5ffb1'
yellow = '#e0e897' yellow = '#fffaa5'
blue = '#ffbff2' blue = '#acd5ff'
magenta = '#b158a8' magenta = '#badcff'
cyan = '#a9638c' cyan = '#d3e9ff'
white = '#ffffff' white = '#f8fbff'

View file

@ -1,6 +1,6 @@
font-family = "JetBrainsMonoNL Nerd Font" font-family = "JetBrainsMonoNL Nerd Font"
font-size = 9 font-size = 9
background-opacity = 0.9 background-opacity = 0.9
theme = /home/lew/.config/ghostty/config-dankcolors theme = /home/lew/.config/ghostty/themes/dankcolors
confirm-close-surface = false confirm-close-surface = false

View file

@ -1,22 +1,22 @@
background = #181216 background = #101418
foreground = #ecdfe5 foreground = #e0e2e8
cursor-color = #f4b2e2 cursor-color = #9bcbfb
selection-background = #67355d selection-background = #0e4a73
selection-foreground = #ecdfe5 selection-foreground = #e0e2e8
palette = 0=#181216 palette = 0=#101418
palette = 1=#d75c3c palette = 1=#ff729c
palette = 2=#6ed681 palette = 2=#7dfb8e
palette = 3=#d1db7b palette = 3=#fff772
palette = 4=#c75aa9 palette = 4=#81b7ee
palette = 5=#b78fac palette = 5=#224b74
palette = 6=#f4b2e2 palette = 6=#9bcbfb
palette = 7=#abb2bf palette = 7=#eff7ff
palette = 8=#5c6370 palette = 8=#969da3
palette = 9=#e0795f palette = 9=#ff9fbc
palette = 10=#86e096 palette = 10=#a5ffb1
palette = 11=#e0e897 palette = 11=#fffaa5
palette = 12=#ffbff2 palette = 12=#acd5ff
palette = 13=#b158a8 palette = 13=#badcff
palette = 14=#a9638c palette = 14=#d3e9ff
palette = 15=#ffffff palette = 15=#f8fbff

View file

@ -1,15 +1,18 @@
// ! Auto-generated file. Do not edit directly.
// Remove `include "dms/colors.kdl"` from your config to override.
layout { layout {
background-color "transparent" background-color "transparent"
focus-ring { focus-ring {
active-color "#f4b2e2" active-color "#9bcbfb"
inactive-color "#9b8d95" inactive-color "#8c9198"
urgent-color "#ffb4ab" urgent-color "#ffb4ab"
} }
border { border {
active-color "#f4b2e2" active-color "#9bcbfb"
inactive-color "#9b8d95" inactive-color "#8c9198"
urgent-color "#ffb4ab" urgent-color "#ffb4ab"
} }
@ -18,19 +21,19 @@ layout {
} }
tab-indicator { tab-indicator {
active-color "#f4b2e2" active-color "#9bcbfb"
inactive-color "#9b8d95" inactive-color "#8c9198"
urgent-color "#ffb4ab" urgent-color "#ffb4ab"
} }
insert-hint { insert-hint {
color "#f4b2e280" color "#9bcbfb80"
} }
} }
recent-windows { recent-windows {
highlight { highlight {
active-color "#67355d" active-color "#0e4a73"
urgent-color "#ffb4ab" urgent-color "#ffb4ab"
} }
} }

View file

@ -4,45 +4,85 @@ return {
priority = 1000, priority = 1000,
config = function() config = function()
require('base16-colorscheme').setup({ require('base16-colorscheme').setup({
base00 = '#181216', base00 = '#101418',
base01 = '#241e22', base01 = '#101418',
base02 = '#3a3337', base02 = '#969da3',
base03 = '#4e444a', base03 = '#969da3',
base04 = '#d2c2ca', base04 = '#eff7ff',
base05 = '#ecdfe5', base05 = '#f8fbff',
base06 = '#ecdfe5', base06 = '#f8fbff',
base07 = '#362e33', base07 = '#f8fbff',
base08 = '#ffb4ab', base08 = '#ff9fbc',
base09 = '#f5b9a4', base09 = '#ff9fbc',
base0A = '#d2c2ca', base0A = '#acd5ff',
base0B = '#f4b2e2', base0B = '#a5ffb1',
base0C = '#dcbed1', base0C = '#d3e9ff',
base0D = '#f4b2e2', base0D = '#acd5ff',
base0E = '#dcbed1', base0E = '#badcff',
base0F = '#ffb4ab', base0F = '#badcff',
}) })
local function set_hl_mutliple(groups, value) vim.api.nvim_set_hl(0, 'Visual', {
for _, v in pairs(groups) do vim.api.nvim_set_hl(0, v, value) end bg = '#969da3',
end fg = '#f8fbff',
bold = true
})
vim.api.nvim_set_hl(0, 'Statusline', {
bg = '#acd5ff',
fg = '#101418',
})
vim.api.nvim_set_hl(0, 'LineNr', { fg = '#969da3' })
vim.api.nvim_set_hl(0, 'CursorLineNr', { fg = '#d3e9ff', bold = true })
vim.api.nvim_set_hl(0, 'Visual', vim.api.nvim_set_hl(0, 'Statement', {
{ bg = '#67355d', fg = '#ffd7f1', bold = true }) fg = '#badcff',
vim.api.nvim_set_hl(0, 'LineNr', { fg = '#4e444a' }) bold = true
vim.api.nvim_set_hl(0, 'CursorLineNr', { fg = '#f4b2e2', bold = true }) })
vim.api.nvim_set_hl(0, 'Keyword', { link = 'Statement' })
vim.api.nvim_set_hl(0, 'Repeat', { link = 'Statement' })
vim.api.nvim_set_hl(0, 'Conditional', { link = 'Statement' })
vim.api.nvim_set_hl(0, 'Function', {
fg = '#acd5ff',
bold = true
})
vim.api.nvim_set_hl(0, 'Macro', {
fg = '#acd5ff',
italic = true
})
vim.api.nvim_set_hl(0, '@function.macro', { link = 'Macro' })
vim.api.nvim_set_hl(0, 'Type', {
fg = '#d3e9ff',
bold = true,
italic = true
})
vim.api.nvim_set_hl(0, 'Structure', { link = 'Type' })
vim.api.nvim_set_hl(0, 'String', {
fg = '#a5ffb1',
italic = true
})
vim.api.nvim_set_hl(0, 'Operator', { fg = '#eff7ff' })
vim.api.nvim_set_hl(0, 'Delimiter', { fg = '#eff7ff' })
vim.api.nvim_set_hl(0, '@punctuation.bracket', { link = 'Delimiter' })
vim.api.nvim_set_hl(0, '@punctuation.delimiter', { link = 'Delimiter' })
vim.api.nvim_set_hl(0, 'Comment', {
fg = '#969da3',
italic = true
})
local current_file_path = vim.fn.stdpath("config") .. "/lua/plugins/dankcolors.lua" local current_file_path = vim.fn.stdpath("config") .. "/lua/plugins/dankcolors.lua"
if not _G._matugen_theme_watcher then if not _G._matugen_theme_watcher then
local uv = vim.uv or vim.loop local uv = vim.uv or vim.loop
_G._matugen_theme_watcher = uv.new_fs_event() _G._matugen_theme_watcher = uv.new_fs_event()
_G._matugen_theme_watcher:start(current_file_path, {}, vim.schedule_wrap(function() _G._matugen_theme_watcher:start(current_file_path, {}, vim.schedule_wrap(function()
local new_spec = dofile(current_file_path) local new_spec = dofile(current_file_path)
if new_spec and new_spec[1] and new_spec[1].config then if new_spec and new_spec[1] and new_spec[1].config then
new_spec[1].config() new_spec[1].config()
print("󰂖 Matugen: Colors reloaded!") print("Theme reload")
end end
end)) end))
end end

View file

@ -1,14 +1,25 @@
display_ascii_art = true display_ascii_art = true
[key] [key]
always_prompt_delete = false always_prompt_delete = false
always_prompt_overwrite = false always_prompt_glob_delete = true
always_prompt_overwrite = false
always_encrypt = false
[store] [store]
default_store_name = "default" default_store_name = "d"
always_prompt_delete = true always_prompt_delete = true
always_prompt_overwrite = true
[list]
always_show_all_stores = true
default_list_format = "table"
always_show_full_values = false
always_hide_header = false
default_columns = "key,store,ttl,value"
[git] [git]
auto_fetch = false auto_fetch = false
auto_commit = true auto_commit = true
auto_push = false auto_push = false
default_commit_message = "sync: {{.Time}}"

View file

@ -49,13 +49,9 @@ fi
if ! tmux has-session -t="$selected_name" 2>/dev/null; then if ! tmux has-session -t="$selected_name" 2>/dev/null; then
tmux new-session -ds "$selected_name" -c "$selected" tmux new-session -ds "$selected_name" -c "$selected"
tmux rename-window -t "$selected_name:" "shell" tmux rename-window -t "$selected_name:" "shell"
tmux new-window -t "$selected_name:" -c "$selected" -n "neovim" # tmux new-window -t "$selected_name:" -c "$selected" -n "neovim"
tmux send-keys -t "$selected_name:neovim" "nvim" Enter # tmux send-keys -t "$selected_name:neovim" "nvim" Enter
if [[ -d "$selected/.git" ]]; then tmux select-window -t "$selected_name:shell"
tmux new-window -t "$selected_name:" -c "$selected" -n "git"
tmux send-keys -t "$selected_name:git" "lazygit" Enter
fi
tmux select-window -t "$selected_name:neovim"
fi fi
if [[ -z ${TMUX:-} ]]; then if [[ -z ${TMUX:-} ]]; then