mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2025-12-05 21:15:38 -05:00
update readme
This commit is contained in:
90
README.md
90
README.md
@@ -244,7 +244,7 @@ spawn-at-startup "/usr/lib/mate-polkit/polkit-mate-authentication-agent-1"
|
||||
// This may be a different path on different distributions, the above is for the arch linux mate-polkit package
|
||||
|
||||
// Starts DankShell
|
||||
spawn-at-startup "qs" "-c" "dms"
|
||||
spawn-at-startup "dms" "run"
|
||||
|
||||
// If using niri newer than 271534e115e5915231c99df287bbfe396185924d (~aug 17 2025)
|
||||
// you can add this to disable built in config load errors since dank shell provides this
|
||||
@@ -259,51 +259,51 @@ config-notification {
|
||||
// 4. For the increment/decrement ones you can change the steps to whatever you like too
|
||||
binds {
|
||||
Mod+Space hotkey-overlay-title="Application Launcher" {
|
||||
spawn "qs" "-c" "dms" "ipc" "call" "spotlight" "toggle";
|
||||
spawn "dms" "ipc" "call" "spotlight" "toggle";
|
||||
}
|
||||
Mod+V hotkey-overlay-title="Clipboard Manager" {
|
||||
spawn "qs" "-c" "dms" "ipc" "call" "clipboard" "toggle";
|
||||
spawn "dms" "ipc" "call" "clipboard" "toggle";
|
||||
}
|
||||
Mod+M hotkey-overlay-title="Task Manager" {
|
||||
spawn "qs" "-c" "dms" "ipc" "call" "processlist" "toggle";
|
||||
spawn "dms" "ipc" "call" "processlist" "toggle";
|
||||
}
|
||||
Mod+N hotkey-overlay-title="Notification Center" {
|
||||
spawn "qs" "-c" "dms" "ipc" "call" "notifications" "toggle";
|
||||
spawn "dms" "ipc" "call" "notifications" "toggle";
|
||||
}
|
||||
Mod+Comma hotkey-overlay-title="Settings" {
|
||||
spawn "qs" "-c" "dms" "ipc" "call" "settings" "toggle";
|
||||
spawn "dms" "ipc" "call" "settings" "toggle";
|
||||
}
|
||||
Mod+P hotkey-overlay-title="Notepad" {
|
||||
spawn "qs" "-c" "dms" "ipc" "call" "notepad" "toggle";
|
||||
spawn "dms" "ipc" "call" "notepad" "toggle";
|
||||
}
|
||||
Super+Alt+L hotkey-overlay-title="Lock Screen" {
|
||||
spawn "qs" "-c" "dms" "ipc" "call" "lock" "lock";
|
||||
spawn "dms" "ipc" "call" "lock" "lock";
|
||||
}
|
||||
Mod+X hotkey-overlay-title="Power Menu" {
|
||||
spawn "qs" "-c" "dms" "ipc" "call" "powermenu" "toggle";
|
||||
spawn "dms" "ipc" "call" "powermenu" "toggle";
|
||||
}
|
||||
XF86AudioRaiseVolume allow-when-locked=true {
|
||||
spawn "qs" "-c" "dms" "ipc" "call" "audio" "increment" "3";
|
||||
spawn "dms" "ipc" "call" "audio" "increment" "3";
|
||||
}
|
||||
XF86AudioLowerVolume allow-when-locked=true {
|
||||
spawn "qs" "-c" "dms" "ipc" "call" "audio" "decrement" "3";
|
||||
spawn "dms" "ipc" "call" "audio" "decrement" "3";
|
||||
}
|
||||
XF86AudioMute allow-when-locked=true {
|
||||
spawn "qs" "-c" "dms" "ipc" "call" "audio" "mute";
|
||||
spawn "dms" "ipc" "call" "audio" "mute";
|
||||
}
|
||||
XF86AudioMicMute allow-when-locked=true {
|
||||
spawn "qs" "-c" "dms" "ipc" "call" "audio" "micmute";
|
||||
spawn "dms" "ipc" "call" "audio" "micmute";
|
||||
}
|
||||
XF86MonBrightnessUp allow-when-locked=true {
|
||||
spawn "qs" "-c" "dms" "ipc" "call" "brightness" "increment" "5" "";
|
||||
spawn "dms" "ipc" "call" "brightness" "increment" "5" "";
|
||||
}
|
||||
// You can override the default device for e.g. keyboards by adding the device name to the last param
|
||||
XF86MonBrightnessDown allow-when-locked=true {
|
||||
spawn "qs" "-c" "dms" "ipc" "call" "brightness" "decrement" "5" "";
|
||||
spawn "dms" "ipc" "call" "brightness" "decrement" "5" "";
|
||||
}
|
||||
// Night mode toggle
|
||||
Mod+Shift+N allow-when-locked=true {
|
||||
spawn "qs" "-c" "dms" "ipc" "call" "night" "toggle";
|
||||
spawn "dms" "ipc" "call" "night" "toggle";
|
||||
}
|
||||
}
|
||||
```
|
||||
@@ -321,7 +321,7 @@ exec-once = /usr/lib/mate-polkit/polkit-mate-authentication-agent-1
|
||||
# This may be a different path on different distributions, the above is for the arch linux mate-polkit package
|
||||
|
||||
# Starts DankShell
|
||||
exec-once = qs -c dms
|
||||
exec-once = dms run
|
||||
|
||||
# Dank keybinds
|
||||
# 1. These should not be in conflict with any pre-existing keybindings
|
||||
@@ -330,28 +330,28 @@ exec-once = qs -c dms
|
||||
# 4. For the increment/decrement ones you can change the steps to whatever you like too
|
||||
|
||||
# Application and system controls
|
||||
bind = SUPER, Space, exec, qs -c dms ipc call spotlight toggle
|
||||
bind = SUPER, V, exec, qs -c dms ipc call clipboard toggle
|
||||
bind = SUPER, M, exec, qs -c dms ipc call processlist toggle
|
||||
bind = SUPER, N, exec, qs -c dms ipc call notifications toggle
|
||||
bind = SUPER, comma, exec, qs -c dms ipc call settings toggle
|
||||
bind = SUPER, P, exec, qs -c dms ipc call notepad toggle
|
||||
bind = SUPERALT, L, exec, qs -c dms ipc call lock lock
|
||||
bind = SUPER, X, exec, qs -c dms ipc call powermenu toggle
|
||||
bind = SUPER, Space, exec, dms ipc call spotlight toggle
|
||||
bind = SUPER, V, exec, dms ipc call clipboard toggle
|
||||
bind = SUPER, M, exec, dms ipc call processlist toggle
|
||||
bind = SUPER, N, exec, dms ipc call notifications toggle
|
||||
bind = SUPER, comma, exec, dms ipc call settings toggle
|
||||
bind = SUPER, P, exec, dms ipc call notepad toggle
|
||||
bind = SUPERALT, L, exec, dms ipc call lock lock
|
||||
bind = SUPER, X, exec, dms ipc call powermenu toggle
|
||||
|
||||
# Audio controls (function keys)
|
||||
bindl = , XF86AudioRaiseVolume, exec, qs -c dms ipc call audio increment 3
|
||||
bindl = , XF86AudioLowerVolume, exec, qs -c dms ipc call audio decrement 3
|
||||
bindl = , XF86AudioMute, exec, qs -c dms ipc call audio mute
|
||||
bindl = , XF86AudioMicMute, exec, qs -c dms ipc call audio micmute
|
||||
bindl = , XF86AudioRaiseVolume, exec, dms ipc call audio increment 3
|
||||
bindl = , XF86AudioLowerVolume, exec, dms ipc call audio decrement 3
|
||||
bindl = , XF86AudioMute, exec, dms ipc call audio mute
|
||||
bindl = , XF86AudioMicMute, exec, dms ipc call audio micmute
|
||||
|
||||
# Brightness controls (function keys)
|
||||
bindl = , XF86MonBrightnessUp, exec, qs -c dms ipc call brightness increment 5 ""
|
||||
bindl = , XF86MonBrightnessUp, exec, dms ipc call brightness increment 5 ""
|
||||
# You can override the default device for e.g. keyboards by adding the device name to the last param
|
||||
bindl = , XF86MonBrightnessDown, exec, qs -c dms ipc call brightness decrement 5 ""
|
||||
bindl = , XF86MonBrightnessDown, exec, dms ipc call brightness decrement 5 ""
|
||||
|
||||
# Night mode toggle
|
||||
bind = SUPERSHIFT, N, exec, qs -c dms ipc call night toggle
|
||||
bind = SUPERSHIFT, N, exec, dms ipc call night toggle
|
||||
```
|
||||
|
||||
## IPC Commands
|
||||
@@ -360,27 +360,27 @@ Control everything from the command line, or via keybinds. For comprehensive doc
|
||||
|
||||
### Audio control
|
||||
```bash
|
||||
qs -c dms ipc call audio setvolume 50
|
||||
qs -c dms ipc call audio mute
|
||||
dms ipc call audio setvolume 50
|
||||
dms ipc call audio mute
|
||||
```
|
||||
### Launch applications
|
||||
```bash
|
||||
qs -c dms ipc call spotlight toggle
|
||||
qs -c dms ipc call notepad toggle
|
||||
qs -c dms ipc call processlist toggle
|
||||
qs -c dms ipc call powermenu toggle
|
||||
dms ipc call spotlight toggle
|
||||
dms ipc call notepad toggle
|
||||
dms ipc call processlist toggle
|
||||
dms ipc call powermenu toggle
|
||||
```
|
||||
### System control
|
||||
```
|
||||
qs -c dms ipc call wallpaper set /path/to/image.jpg
|
||||
qs -c dms ipc call theme toggle
|
||||
qs -c dms ipc call night toggle
|
||||
qs -c dms ipc call lock lock
|
||||
dms ipc call wallpaper set /path/to/image.jpg
|
||||
dms ipc call theme toggle
|
||||
dms ipc call night toggle
|
||||
dms ipc call lock lock
|
||||
```
|
||||
### Media control
|
||||
```
|
||||
qs -c dms ipc call mpris playPause
|
||||
qs -c dms ipc call mpris next
|
||||
dms ipc call mpris playPause
|
||||
dms ipc call mpris next
|
||||
```
|
||||
|
||||
## Theming
|
||||
@@ -565,7 +565,7 @@ All settings are configurable in
|
||||
**Getting help:**
|
||||
|
||||
- Check the [issues](https://github.com/AvengeMedia/DankMaterialShell/issues) for known problems
|
||||
- Share logs from `qs -c dms` for debugging
|
||||
- Re-run the shell with `dms kill && dms run` to capture logs.
|
||||
- Join the niri community for compositor-specific questions
|
||||
|
||||
## Contributing
|
||||
|
||||
102
docs/IPC.md
102
docs/IPC.md
@@ -3,7 +3,7 @@
|
||||
DankMaterialShell provides comprehensive IPC (Inter-Process Communication) functionality that allows external control of the shell through command-line commands. All IPC commands follow the format:
|
||||
|
||||
```bash
|
||||
qs -c dms ipc call <target> <function> [parameters...]
|
||||
dms ipc call <target> <function> [parameters...]
|
||||
```
|
||||
|
||||
## Target: `audio`
|
||||
@@ -44,9 +44,9 @@ Audio system control and information.
|
||||
|
||||
### Examples
|
||||
```bash
|
||||
qs -c dms ipc call audio setvolume 50
|
||||
qs -c dms ipc call audio increment 10
|
||||
qs -c dms ipc call audio mute
|
||||
dms ipc call audio setvolume 50
|
||||
dms ipc call audio increment 10
|
||||
dms ipc call audio mute
|
||||
```
|
||||
|
||||
## Target: `brightness`
|
||||
@@ -86,9 +86,9 @@ Display brightness control for internal and external displays.
|
||||
|
||||
### Examples
|
||||
```bash
|
||||
qs -c dms ipc call brightness set 80
|
||||
qs -c dms ipc call brightness increment 10 ""
|
||||
qs -c dms ipc call brightness decrement 5 "intel_backlight"
|
||||
dms ipc call brightness set 80
|
||||
dms ipc call brightness increment 10 ""
|
||||
dms ipc call brightness decrement 5 "intel_backlight"
|
||||
```
|
||||
|
||||
## Target: `night`
|
||||
@@ -141,11 +141,11 @@ Night mode (gamma/color temperature) control.
|
||||
|
||||
### Examples
|
||||
```bash
|
||||
qs -c dms ipc call night toggle
|
||||
qs -c dms ipc call night temperature 4000
|
||||
qs -c dms ipc call night automation time
|
||||
qs -c dms ipc call night schedule 20:00 06:00
|
||||
qs -c dms ipc call night location 40.7128 -74.0060
|
||||
dms ipc call night toggle
|
||||
dms ipc call night temperature 4000
|
||||
dms ipc call night automation time
|
||||
dms ipc call night schedule 20:00 06:00
|
||||
dms ipc call night location 40.7128 -74.0060
|
||||
```
|
||||
|
||||
## Target: `mpris`
|
||||
@@ -184,8 +184,8 @@ Media player control via MPRIS interface.
|
||||
|
||||
### Examples
|
||||
```bash
|
||||
qs -c dms ipc call mpris playPause
|
||||
qs -c dms ipc call mpris next
|
||||
dms ipc call mpris playPause
|
||||
dms ipc call mpris next
|
||||
```
|
||||
|
||||
## Target: `lock`
|
||||
@@ -208,8 +208,8 @@ Screen lock control and status.
|
||||
|
||||
### Examples
|
||||
```bash
|
||||
qs -c dms ipc call lock lock
|
||||
qs -c dms ipc call lock isLocked
|
||||
dms ipc call lock lock
|
||||
dms ipc call lock isLocked
|
||||
```
|
||||
|
||||
## Target: `inhibit`
|
||||
@@ -232,8 +232,8 @@ Idle inhibitor control to prevent automatic sleep/lock.
|
||||
|
||||
### Examples
|
||||
```bash
|
||||
qs -c dms ipc call inhibit toggle
|
||||
qs -c dms ipc call inhibit enable
|
||||
dms ipc call inhibit toggle
|
||||
dms ipc call inhibit enable
|
||||
```
|
||||
|
||||
## Target: `wallpaper`
|
||||
@@ -291,36 +291,36 @@ Wallpaper management and retrieval with support for per-monitor configurations.
|
||||
|
||||
**Global wallpaper mode:**
|
||||
```bash
|
||||
qs -c dms ipc call wallpaper get
|
||||
qs -c dms ipc call wallpaper set /path/to/image.jpg
|
||||
qs -c dms ipc call wallpaper next
|
||||
qs -c dms ipc call wallpaper clear
|
||||
dms ipc call wallpaper get
|
||||
dms ipc call wallpaper set /path/to/image.jpg
|
||||
dms ipc call wallpaper next
|
||||
dms ipc call wallpaper clear
|
||||
```
|
||||
|
||||
**Per-monitor wallpaper mode:**
|
||||
```bash
|
||||
# Set different wallpapers for each monitor
|
||||
qs -c dms ipc call wallpaper setFor DP-2 /path/to/image1.jpg
|
||||
qs -c dms ipc call wallpaper setFor eDP-1 /path/to/image2.jpg
|
||||
dms ipc call wallpaper setFor DP-2 /path/to/image1.jpg
|
||||
dms ipc call wallpaper setFor eDP-1 /path/to/image2.jpg
|
||||
|
||||
# Get wallpaper for specific monitor
|
||||
qs -c dms ipc call wallpaper getFor DP-2
|
||||
dms ipc call wallpaper getFor DP-2
|
||||
|
||||
# Cycle wallpapers for specific monitor
|
||||
qs -c dms ipc call wallpaper nextFor eDP-1
|
||||
qs -c dms ipc call wallpaper prevFor DP-2
|
||||
dms ipc call wallpaper nextFor eDP-1
|
||||
dms ipc call wallpaper prevFor DP-2
|
||||
|
||||
# Clear all wallpapers and return to global mode
|
||||
qs -c dms ipc call wallpaper clear
|
||||
dms ipc call wallpaper clear
|
||||
```
|
||||
|
||||
**Error handling:**
|
||||
When per-monitor mode is enabled, legacy functions will return helpful error messages:
|
||||
```bash
|
||||
qs -c dms ipc call wallpaper get
|
||||
dms ipc call wallpaper get
|
||||
# Returns: "ERROR: Per-monitor mode enabled. Use getFor(screenName) instead."
|
||||
|
||||
qs -c dms ipc call wallpaper set /path/to/image.jpg
|
||||
dms ipc call wallpaper set /path/to/image.jpg
|
||||
# Returns: "ERROR: Per-monitor mode enabled. Use setFor(screenName, path) instead."
|
||||
```
|
||||
|
||||
@@ -345,9 +345,9 @@ User profile image management.
|
||||
|
||||
### Examples
|
||||
```bash
|
||||
qs -c dms ipc call profile getImage
|
||||
qs -c dms ipc call profile setImage /path/to/avatar.png
|
||||
qs -c dms ipc call profile clearImage
|
||||
dms ipc call profile getImage
|
||||
dms ipc call profile setImage /path/to/avatar.png
|
||||
dms ipc call profile clearImage
|
||||
```
|
||||
|
||||
## Target: `theme`
|
||||
@@ -374,8 +374,8 @@ Theme mode control (light/dark mode switching).
|
||||
|
||||
### Examples
|
||||
```bash
|
||||
qs -c dms ipc call theme toggle
|
||||
qs -c dms ipc call theme dark
|
||||
dms ipc call theme toggle
|
||||
dms ipc call theme dark
|
||||
```
|
||||
|
||||
## Target: `bar`
|
||||
@@ -402,9 +402,9 @@ Top bar visibility control.
|
||||
|
||||
### Examples
|
||||
```bash
|
||||
qs -c dms ipc call bar toggle
|
||||
qs -c dms ipc call bar hide
|
||||
qs -c dms ipc call bar status
|
||||
dms ipc call bar toggle
|
||||
dms ipc call bar hide
|
||||
dms ipc call bar status
|
||||
```
|
||||
|
||||
## Modal Controls
|
||||
@@ -480,29 +480,29 @@ File browser controls for selecting wallpapers and profile images.
|
||||
### Modal Examples
|
||||
```bash
|
||||
# Open application launcher
|
||||
qs -c dms ipc call spotlight toggle
|
||||
dms ipc call spotlight toggle
|
||||
|
||||
# Show clipboard history
|
||||
qs -c dms ipc call clipboard open
|
||||
dms ipc call clipboard open
|
||||
|
||||
# Toggle notification center
|
||||
qs -c dms ipc call notifications toggle
|
||||
dms ipc call notifications toggle
|
||||
|
||||
# Show settings
|
||||
qs -c dms ipc call settings open
|
||||
dms ipc call settings open
|
||||
|
||||
# Show system monitor
|
||||
qs -c dms ipc call processlist toggle
|
||||
dms ipc call processlist toggle
|
||||
|
||||
# Show power menu
|
||||
qs -c dms ipc call powermenu toggle
|
||||
dms ipc call powermenu toggle
|
||||
|
||||
# Open notepad
|
||||
qs -c dms ipc call notepad toggle
|
||||
dms ipc call notepad toggle
|
||||
|
||||
# Open file browsers
|
||||
qs -c dms ipc call file browse wallpaper
|
||||
qs -c dms ipc call file browse profile
|
||||
dms ipc call file browse wallpaper
|
||||
dms ipc call file browse profile
|
||||
```
|
||||
|
||||
## Common Usage Patterns
|
||||
@@ -531,9 +531,9 @@ IPC commands can be used in scripts for automation:
|
||||
# Toggle night mode based on time of day
|
||||
hour=$(date +%H)
|
||||
if [ $hour -ge 20 ] || [ $hour -le 6 ]; then
|
||||
qs -c dms ipc call night enable
|
||||
dms ipc call night enable
|
||||
else
|
||||
qs -c dms ipc call night disable
|
||||
dms ipc call night disable
|
||||
fi
|
||||
```
|
||||
|
||||
@@ -543,9 +543,9 @@ Many commands provide status information useful for scripts:
|
||||
|
||||
```bash
|
||||
# Check if screen is locked before performing action
|
||||
if qs -c dms ipc call lock isLocked | grep -q "false"; then
|
||||
if dms ipc call lock isLocked | grep -q "false"; then
|
||||
# Perform action only if unlocked
|
||||
qs -c dms ipc call notifications open
|
||||
dms ipc call notifications open
|
||||
fi
|
||||
```
|
||||
|
||||
|
||||
Reference in New Issue
Block a user