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
<Multi_key> <at> : "lew@ily2.dev"
<Multi_key> <at> <at> : "lew@ily2.dev"
<Multi_key> <minus> : "—"
<Multi_key> <space> : " | "
<Multi_key> <p> <i> <p> : "|"
<Multi_key> <o> <r> : " || "
<Multi_key> <slash> : "\\"
<Multi_key> <t> <f> : "🏳️‍⚧️"

View file

@ -6,3 +6,7 @@
clean = git-lfs clean -- %f
smudge = git-lfs smudge -- %f
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 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 -g history-limit 50000 # scrollback buffer size
set-option -g display-time 6000 # tmux msg display duration

View file

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

View file

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

View file

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

View file

@ -2,7 +2,7 @@
"id": "dankActions",
"name": "Dank Actions",
"description": "Execute custom commands with dynamic output display and configurable icons",
"version": "1.0.4",
"version": "1.0.5",
"license": "MIT",
"author": "Avenge Media",
"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",
"currentThemeCategory": "generic",
"customThemeFile": "/home/lew/.config/niri/dms/colors.json",
"registryThemeVariants": {},
"matugenScheme": "scheme-tonal-spot",
"runUserMatugenTemplates": true,
"matugenTargetMonitor": "",
@ -9,10 +10,22 @@
"dockTransparency": 0,
"widgetBackgroundColor": "sch",
"widgetColorMode": "default",
"controlCenterTileColorMode": "primary",
"cornerRadius": 0,
"niriLayoutGapsOverride": -1,
"niriLayoutRadiusOverride": -1,
"niriLayoutBorderSize": -1,
"hyprlandLayoutGapsOverride": -1,
"hyprlandLayoutRadiusOverride": -1,
"hyprlandLayoutBorderSize": -1,
"mangoLayoutGapsOverride": -1,
"mangoLayoutRadiusOverride": -1,
"mangoLayoutBorderSize": -1,
"use24HourClock": false,
"showSeconds": false,
"padHours12Hour": false,
"useFahrenheit": false,
"windSpeedUnit": "kmh",
"nightModeEnabled": false,
"animationSpeed": 4,
"customAnimationDuration": 100,
@ -40,11 +53,15 @@
"controlCenterShowNetworkIcon": true,
"controlCenterShowBluetoothIcon": true,
"controlCenterShowAudioIcon": true,
"controlCenterShowAudioPercent": false,
"controlCenterShowVpnIcon": true,
"controlCenterShowBrightnessIcon": true,
"controlCenterShowBrightnessPercent": false,
"controlCenterShowMicIcon": false,
"controlCenterShowMicPercent": false,
"controlCenterShowBatteryIcon": false,
"controlCenterShowPrinterIcon": false,
"controlCenterShowScreenSharingIcon": true,
"showPrivacyButton": true,
"privacyShowMicIcon": false,
"privacyShowCameraIcon": false,
@ -109,40 +126,108 @@
}
],
"showWorkspaceIndex": false,
"showWorkspaceName": false,
"showWorkspacePadding": false,
"workspaceScrolling": false,
"showWorkspaceApps": false,
"maxWorkspaceIcons": 3,
"workspacesPerMonitor": true,
"workspaceAppIconSizeOffset": 0,
"groupWorkspaceApps": true,
"workspaceFollowFocus": false,
"showOccupiedWorkspacesOnly": false,
"reverseScrolling": false,
"dwlShowAllTags": false,
"workspaceColorMode": "default",
"workspaceOccupiedColorMode": "none",
"workspaceUnfocusedColorMode": "default",
"workspaceUrgentColorMode": "default",
"workspaceFocusedBorderEnabled": false,
"workspaceFocusedBorderColor": "primary",
"workspaceFocusedBorderThickness": 2,
"workspaceNameIcons": {},
"waveProgressEnabled": true,
"scrollTitleEnabled": true,
"audioVisualizerEnabled": true,
"audioScrollMode": "volume",
"clockCompactMode": false,
"focusedWindowCompactMode": false,
"runningAppsCompactMode": true,
"barMaxVisibleApps": 0,
"barMaxVisibleRunningApps": 0,
"barShowOverflowBadge": true,
"keyboardLayoutNameCompactMode": false,
"runningAppsCurrentWorkspace": 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",
"clockDateFormat": "dddd, MMMM d",
"lockDateFormat": "dddd, MMMM d",
"mediaSize": 1,
"appLauncherViewMode": "grid",
"spotlightModalViewMode": "grid",
"browserPickerViewMode": "grid",
"browserUsageHistory": {},
"appPickerViewMode": "grid",
"filePickerUsageHistory": {},
"sortAppsAlphabetically": false,
"appLauncherGridColumns": 5,
"appLauncherGridColumns": 6,
"spotlightCloseNiriOverview": true,
"spotlightSectionViewModes": {
"apps": "grid"
},
"appDrawerSectionViewModes": {},
"niriOverviewOverlayEnabled": true,
"weatherLocation": "New York, NY",
"weatherCoordinates": "40.7128,-74.0060",
"dankLauncherV2Size": "micro",
"dankLauncherV2BorderEnabled": false,
"dankLauncherV2BorderThickness": 2,
"dankLauncherV2BorderColor": "primary",
"dankLauncherV2ShowFooter": false,
"useAutoLocation": true,
"weatherEnabled": true,
"networkPreference": "wifi",
"vpnLastConnected": "",
"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",
"launcherLogoCustomPath": "",
"launcherLogoColorOverride": "",
@ -175,10 +260,13 @@
"batterySuspendTimeout": 0,
"batterySuspendBehavior": 0,
"batteryProfileName": "",
"batteryChargeLimit": 100,
"lockBeforeSuspend": false,
"loginctlLockIntegration": true,
"fadeToLockEnabled": false,
"fadeToLockGracePeriod": 5,
"fadeToDpmsEnabled": true,
"fadeToDpmsGracePeriod": 5,
"launchPrefix": "",
"brightnessDevicePins": {},
"wifiNetworkPins": {
@ -198,10 +286,13 @@
"runDmsMatugenTemplates": true,
"matugenTemplateGtk": true,
"matugenTemplateNiri": true,
"matugenTemplateHyprland": true,
"matugenTemplateMangowc": true,
"matugenTemplateQt5ct": true,
"matugenTemplateQt6ct": true,
"matugenTemplateFirefox": true,
"matugenTemplatePywalfox": true,
"matugenTemplateZenBrowser": true,
"matugenTemplateVesktop": true,
"matugenTemplateEquibop": true,
"matugenTemplateGhostty": true,
@ -213,8 +304,10 @@
"matugenTemplateDgop": true,
"matugenTemplateKcolorscheme": true,
"matugenTemplateVscode": true,
"matugenTemplateEmacs": true,
"showDock": false,
"dockAutoHide": false,
"dockSmartAutoHide": false,
"dockGroupByApp": true,
"dockOpenOnOverview": false,
"dockPosition": 1,
@ -228,22 +321,43 @@
"dockBorderOpacity": 1,
"dockBorderThickness": 1,
"dockIsolateDisplays": false,
"dockLauncherEnabled": false,
"dockLauncherLogoMode": "apps",
"dockLauncherLogoCustomPath": "",
"dockLauncherLogoColorOverride": "",
"dockLauncherLogoSizeOffset": 0,
"dockLauncherLogoBrightness": 0.5,
"dockLauncherLogoContrast": 1,
"dockMaxVisibleApps": 0,
"dockMaxVisibleRunningApps": 0,
"dockShowOverflowBadge": true,
"notificationOverlayEnabled": false,
"modalDarkenBackground": true,
"lockScreenShowPowerActions": true,
"lockScreenShowSystemIcons": true,
"lockScreenShowTime": true,
"lockScreenShowDate": true,
"lockScreenShowProfileImage": true,
"lockScreenShowPasswordField": true,
"lockScreenShowMediaPlayer": true,
"lockScreenPowerOffMonitorsOnLock": false,
"enableFprint": false,
"maxFprintTries": 15,
"lockScreenActiveMonitor": "all",
"lockScreenInactiveColor": "#000000",
"lockScreenNotificationMode": 0,
"hideBrightnessSlider": false,
"notificationTimeoutLow": 5000,
"notificationTimeoutNormal": 5000,
"notificationTimeoutCritical": 0,
"notificationCompactMode": false,
"notificationPopupPosition": -1,
"notificationHistoryEnabled": true,
"notificationHistoryMaxCount": 50,
"notificationHistoryMaxAgeDays": 7,
"notificationHistorySaveLow": true,
"notificationHistorySaveNormal": true,
"notificationHistorySaveCritical": true,
"osdAlwaysShowValue": false,
"osdPosition": 5,
"osdVolumeEnabled": true,
@ -294,7 +408,9 @@
"name": "Main Bar",
"enabled": true,
"position": 0,
"screenPreferences": [],
"screenPreferences": [
"all"
],
"showOnLastDisplay": true,
"leftWidgets": [
{
@ -494,6 +610,18 @@
"y": 139,
"width": 229,
"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]
background = '#181216'
foreground = '#ecdfe5'
background = '#101418'
foreground = '#e0e2e8'
[colors.selection]
text = '#ecdfe5'
background = '#67355d'
text = '#e0e2e8'
background = '#0e4a73'
[colors.cursor]
text = '#181216'
cursor = '#f4b2e2'
text = '#101418'
cursor = '#9bcbfb'
[colors.normal]
black = '#181216'
red = '#d75c3c'
green = '#6ed681'
yellow = '#d1db7b'
blue = '#c75aa9'
magenta = '#b78fac'
cyan = '#f4b2e2'
white = '#abb2bf'
black = '#101418'
red = '#ff729c'
green = '#7dfb8e'
yellow = '#fff772'
blue = '#81b7ee'
magenta = '#224b74'
cyan = '#9bcbfb'
white = '#eff7ff'
[colors.bright]
black = '#5c6370'
red = '#e0795f'
green = '#86e096'
yellow = '#e0e897'
blue = '#ffbff2'
magenta = '#b158a8'
cyan = '#a9638c'
white = '#ffffff'
black = '#969da3'
red = '#ff9fbc'
green = '#a5ffb1'
yellow = '#fffaa5'
blue = '#acd5ff'
magenta = '#badcff'
cyan = '#d3e9ff'
white = '#f8fbff'

View file

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

View file

@ -1,22 +1,22 @@
background = #181216
foreground = #ecdfe5
cursor-color = #f4b2e2
selection-background = #67355d
selection-foreground = #ecdfe5
background = #101418
foreground = #e0e2e8
cursor-color = #9bcbfb
selection-background = #0e4a73
selection-foreground = #e0e2e8
palette = 0=#181216
palette = 1=#d75c3c
palette = 2=#6ed681
palette = 3=#d1db7b
palette = 4=#c75aa9
palette = 5=#b78fac
palette = 6=#f4b2e2
palette = 7=#abb2bf
palette = 8=#5c6370
palette = 9=#e0795f
palette = 10=#86e096
palette = 11=#e0e897
palette = 12=#ffbff2
palette = 13=#b158a8
palette = 14=#a9638c
palette = 15=#ffffff
palette = 0=#101418
palette = 1=#ff729c
palette = 2=#7dfb8e
palette = 3=#fff772
palette = 4=#81b7ee
palette = 5=#224b74
palette = 6=#9bcbfb
palette = 7=#eff7ff
palette = 8=#969da3
palette = 9=#ff9fbc
palette = 10=#a5ffb1
palette = 11=#fffaa5
palette = 12=#acd5ff
palette = 13=#badcff
palette = 14=#d3e9ff
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 {
background-color "transparent"
focus-ring {
active-color "#f4b2e2"
inactive-color "#9b8d95"
active-color "#9bcbfb"
inactive-color "#8c9198"
urgent-color "#ffb4ab"
}
border {
active-color "#f4b2e2"
inactive-color "#9b8d95"
active-color "#9bcbfb"
inactive-color "#8c9198"
urgent-color "#ffb4ab"
}
@ -18,19 +21,19 @@ layout {
}
tab-indicator {
active-color "#f4b2e2"
inactive-color "#9b8d95"
active-color "#9bcbfb"
inactive-color "#8c9198"
urgent-color "#ffb4ab"
}
insert-hint {
color "#f4b2e280"
color "#9bcbfb80"
}
}
recent-windows {
highlight {
active-color "#67355d"
active-color "#0e4a73"
urgent-color "#ffb4ab"
}
}

View file

@ -4,45 +4,85 @@ return {
priority = 1000,
config = function()
require('base16-colorscheme').setup({
base00 = '#181216',
base01 = '#241e22',
base02 = '#3a3337',
base03 = '#4e444a',
base04 = '#d2c2ca',
base05 = '#ecdfe5',
base06 = '#ecdfe5',
base07 = '#362e33',
base08 = '#ffb4ab',
base09 = '#f5b9a4',
base0A = '#d2c2ca',
base0B = '#f4b2e2',
base0C = '#dcbed1',
base0D = '#f4b2e2',
base0E = '#dcbed1',
base0F = '#ffb4ab',
base00 = '#101418',
base01 = '#101418',
base02 = '#969da3',
base03 = '#969da3',
base04 = '#eff7ff',
base05 = '#f8fbff',
base06 = '#f8fbff',
base07 = '#f8fbff',
base08 = '#ff9fbc',
base09 = '#ff9fbc',
base0A = '#acd5ff',
base0B = '#a5ffb1',
base0C = '#d3e9ff',
base0D = '#acd5ff',
base0E = '#badcff',
base0F = '#badcff',
})
local function set_hl_mutliple(groups, value)
for _, v in pairs(groups) do vim.api.nvim_set_hl(0, v, value) end
end
vim.api.nvim_set_hl(0, 'Visual', {
bg = '#969da3',
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',
{ bg = '#67355d', fg = '#ffd7f1', bold = true })
vim.api.nvim_set_hl(0, 'LineNr', { fg = '#4e444a' })
vim.api.nvim_set_hl(0, 'CursorLineNr', { fg = '#f4b2e2', bold = true })
vim.api.nvim_set_hl(0, 'Statement', {
fg = '#badcff',
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"
if not _G._matugen_theme_watcher then
local uv = vim.uv or vim.loop
_G._matugen_theme_watcher = uv.new_fs_event()
_G._matugen_theme_watcher:start(current_file_path, {}, vim.schedule_wrap(function()
local new_spec = dofile(current_file_path)
if new_spec and new_spec[1] and new_spec[1].config then
new_spec[1].config()
print("󰂖 Matugen: Colors reloaded!")
print("Theme reload")
end
end))
end

View file

@ -2,13 +2,24 @@ display_ascii_art = true
[key]
always_prompt_delete = false
always_prompt_glob_delete = true
always_prompt_overwrite = false
always_encrypt = false
[store]
default_store_name = "default"
default_store_name = "d"
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]
auto_fetch = false
auto_commit = true
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
tmux new-session -ds "$selected_name" -c "$selected"
tmux rename-window -t "$selected_name:" "shell"
tmux new-window -t "$selected_name:" -c "$selected" -n "neovim"
tmux send-keys -t "$selected_name:neovim" "nvim" Enter
if [[ -d "$selected/.git" ]]; then
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"
# tmux new-window -t "$selected_name:" -c "$selected" -n "neovim"
# tmux send-keys -t "$selected_name:neovim" "nvim" Enter
tmux select-window -t "$selected_name:shell"
fi
if [[ -z ${TMUX:-} ]]; then