Init
This commit is contained in:
commit
011d4c1290
5 changed files with 1103 additions and 0 deletions
95
ndrop.1.scd
Normal file
95
ndrop.1.scd
Normal file
|
@ -0,0 +1,95 @@
|
|||
ndrop(1)
|
||||
|
||||
# NAME
|
||||
|
||||
ndrop - run, show and hide programs on niri
|
||||
|
||||
# SYNOPSIS
|
||||
|
||||
*ndrop* [OPTIONS] [COMMAND]
|
||||
|
||||
# COMMAND
|
||||
The usual command you would run to start the desired program
|
||||
|
||||
# OPTIONS
|
||||
|
||||
*-c, --class*
|
||||
Set classname of the program to be run. Use this if the classname is different from the name of the [COMMAND] and ndrop has not yet a hardcoded replacement.
|
||||
|
||||
*-F, --focus*
|
||||
Changes the default behaviour: focus the specified program's window and switch to its present workspace if necessary. Do not hide it, if it's already on the current workspace."
|
||||
|
||||
*-H, --help*
|
||||
Print help message
|
||||
|
||||
*-i, --insensitive*
|
||||
Case insensitive partial matching of class names. Can work as a stopgap if a running program is not recognized and a new instance is launched instead. Note: incorrect matches may occur, adding a special handling of the program to *ndrop* (hardcoded or via *-c, --class*) is preferable.
|
||||
|
||||
*-o, --online
|
||||
Wait until internet connectivity is established.
|
||||
|
||||
*-v, --verbose*
|
||||
Show notifications regarding the matching process. Try this to figure out why running programs are not matched."
|
||||
|
||||
*-V, --version*
|
||||
Print version
|
||||
|
||||
# Description
|
||||
|
||||
This script emulates the main features of [tdrop](https://github.com/noctuid/tdrop) in niri:
|
||||
|
||||
- if the specified program is not running: launch it and bring it to the foreground.
|
||||
- if the specified program is already running on another workspace: bring it to the current workspace and focus it.
|
||||
- if the specified program is already on the current workspace: move it to workspace 'special:ndrop', thereby hiding it until called up again by ndrop.
|
||||
|
||||
# Multiple instances:
|
||||
|
||||
Multiple instances of the same program can be run concurrently, if different class names are assigned to each instance. Presently there is support for the following flags in the [COMMAND] string:
|
||||
|
||||
```
|
||||
-a ('foot' terminal emulator)
|
||||
--class (all other programs).
|
||||
```
|
||||
|
||||
# Example bindings in niri config:
|
||||
|
||||
```
|
||||
bind = $mainMod, b, exec, ndrop librewolf
|
||||
bind = $mainMod, x, exec, ndrop kitty --class kitty_1
|
||||
bind = $mainMod CTRL, x, exec, ndrop kitty --class kitty_2
|
||||
bind = $mainMod, c, exec, ndrop foot -a foot_1
|
||||
bind = $mainMod CTRL, c, exec, ndrop foot -a foot_2
|
||||
```
|
||||
|
||||
Note: defining a class name is only necessary when running several instances of the same program.
|
||||
|
||||
If you want to run a program on boot and have it wait in the background until called up by ndrop you can use this:
|
||||
|
||||
```
|
||||
exec-once = ndrop -b librewolf
|
||||
```
|
||||
|
||||
# Troubleshooting
|
||||
|
||||
## Cursor jumps to newly focused windows
|
||||
|
||||
Set *no_cursor_warps = true* in *niri.conf* section general
|
||||
|
||||
## Further instances of programs are started instead of hiding/unhiding a running instance
|
||||
|
||||
If ndrop can't match an already running program and starts a new instance instead, then its class name is most likely different from its command name. For example, the class name of *telegram-desktop* is *org.telegram.desktop* and the class name of *logseq* is *Logseq*.
|
||||
|
||||
Run *ndrop -v [COMMAND]* _in the terminal_ to see maximum output for troubleshooting and find out the actual class name. Then use *ndrop -c CLASSNAME* to make it work. *ndrop -i [COMMAND]* might be sufficient, as long as a case insensitive (partial) match is sufficient.
|
||||
|
||||
Please report instances of programs with differing class names, so that they can be added to *ndrop*.
|
||||
|
||||
## Floating windows don't react to changed arguments
|
||||
|
||||
Close the program (don't just hide it with ndrop). The changed arguments are only applied when the program is restarted.
|
||||
|
||||
# License
|
||||
|
||||
Dependencies: bash jq niri
|
||||
Part of: https://github.com/hyprwm/contrib
|
||||
Author: Schweber (https://github.com/Schweber/ndrop)
|
||||
License: AGPL3
|
Loading…
Add table
Add a link
Reference in a new issue