@@ -17,26 +17,38 @@ int parseCommand(int argc, char** argv, CommandState& state) {
1717 };
1818
1919 auto addConfigSelection = [&](CLI::App* cmd, bool withNewestOption = false ) {
20- auto * group = cmd->add_option_group (" Config Selection" )
21- ->description (" If no options in this group are specified,\n "
22- " $XDG_CONFIG_HOME/quickshell/shell.qml will be used." );
20+ auto * group =
21+ cmd->add_option_group (" Config Selection" )
22+ ->description (
23+ " Quickshell detects configurations as named directories under each XDG config "
24+ " directory as `<xdg dir>/quickshell/<config name>/shell.qml`.\n\n "
25+ " If `<xdg dir>/quickshell/shell.qml` exists, it will be registered as the "
26+ " 'default' configuration, and no subdirectories will be considered. "
27+ " If --config is not passed, 'default' will be assumed.\n\n "
28+ " Alternatively, a config can be selected by path with --path.\n\n "
29+ " Examples:\n "
30+ " - `~/.config/quickshell/shell.qml` can be run with `qs`\n "
31+ " - `/etc/xdg/quickshell/myconfig/shell.qml` can be run with `qs -c myconfig`\n "
32+ " - `~/myshell/shell.qml` can be run with `qs -p ~/myshell`\n "
33+ " - `~/myshell/randomfile.qml` can be run with `qs -p ~/myshell/randomfile.qml`"
34+ );
2335
2436 auto * path = group->add_option (" -p,--path" , state.config .path )
25- ->description (" Path to a QML file." )
37+ ->description (" Path to a QML file or config folder ." )
2638 ->envname (" QS_CONFIG_PATH" );
2739
40+ group->add_option (" -c,--config" , state.config .name )
41+ ->description (" Name of a quickshell configuration to run." )
42+ ->envname (" QS_CONFIG_NAME" )
43+ ->excludes (path);
44+
2845 group->add_option (" -m,--manifest" , state.config .manifest )
29- ->description (" Path to a quickshell manifest.\n "
46+ ->description (" [DEPRECATED] Path to a quickshell manifest.\n "
47+ " If a manifest is specified, configs named by -c will point to its entries.\n "
3048 " Defaults to $XDG_CONFIG_HOME/quickshell/manifest.conf" )
3149 ->envname (" QS_MANIFEST" )
3250 ->excludes (path);
3351
34- group->add_option (" -c,--config" , state.config .name )
35- ->description (" Name of a quickshell configuration to run.\n "
36- " If -m is specified, this is a configuration in the manifest,\n "
37- " otherwise it is the name of a folder in $XDG_CONFIG_HOME/quickshell." )
38- ->envname (" QS_CONFIG_NAME" );
39-
4052 if (withNewestOption) {
4153 group->add_flag (" -n,--newest" , state.config .newest )
4254 ->description (" Operate on the most recently launched instance instead of the oldest" );
@@ -64,7 +76,7 @@ int parseCommand(int argc, char** argv, CommandState& state) {
6476
6577 group->add_flag (" --no-color" , state.log .noColor )
6678 ->description (" Disables colored logging.\n "
67- " Colored logging can also be disabled by specifying a non empty value\n "
79+ " Colored logging can also be disabled by specifying a non empty value "
6880 " for the NO_COLOR environment variable." );
6981
7082 group->add_flag (" --log-times" , state.log .timestamp )
@@ -87,7 +99,7 @@ int parseCommand(int argc, char** argv, CommandState& state) {
8799
88100 group->add_option (" -i,--id" , state.instance .id )
89101 ->description (" The instance id to operate on.\n "
90- " You may also use a substring the id as long as it is unique,\n "
102+ " You may also use a substring the id as long as it is unique, "
91103 " for example \" abc\" will select \" abcdefg\" ." );
92104
93105 group->add_option (" --pid" , state.instance .pid )
0 commit comments