diff --git a/.github/workflows/man-update.yaml b/.github/workflows/man-update.yaml new file mode 100644 index 00000000..3ef5fc35 --- /dev/null +++ b/.github/workflows/man-update.yaml @@ -0,0 +1,26 @@ +name: Build man pages + +on: + workflow_dispatch: + push: + paths: + - docs/** + +jobs: + main: + name: Build man pages + runs-on: ubuntu-latest + steps: + - name: Install deps + run: sudo apt install pandoc + - name: Clone repository + uses: actions/checkout@v3 + # Not needed + # with: + # submodules: recursive + - name: Build man pages + run: make man + - uses: stefanzweifel/git-auto-commit-action@v4 + name: Commit + with: + commit_message: "[gha] build man pages" diff --git a/.gitignore b/.gitignore index 27b80f06..d52b86fc 100644 --- a/.gitignore +++ b/.gitignore @@ -10,7 +10,7 @@ CTestTestfile.cmake _deps build/ -result +result* /.vscode/ .envrc .cache @@ -24,4 +24,4 @@ hyprctl/hyprctl gmon.out *.out -*.tar.gz \ No newline at end of file +*.tar.gz diff --git a/Makefile b/Makefile index 6ebd3bd3..514952de 100644 --- a/Makefile +++ b/Makefile @@ -136,12 +136,16 @@ install: cp ./assets/wall_4K.png ${PREFIX}/share/hyprland cp ./assets/wall_8K.png ${PREFIX}/share/hyprland + install -Dm644 -t ${PREFIX}/share/man/man1 ./docs/*.1 + uninstall: rm -f ${PREFIX}/share/wayland-sessions/hyprland.desktop rm -f ${PREFIX}/bin/Hyprland rm -f ${PREFIX}/bin/hyprctl rm -f /usr/lib/libwlroots.so.11032 rm -rf ${PREFIX}/share/hyprland + rm -f ${PREFIX}/share/man/man1/Hyprland.1 + rm -f ${PREFIX}/share/man/man1/hyprctl.1 protocols: xdg-shell-protocol.o wlr-layer-shell-unstable-v1-protocol.o wlr-screencopy-unstable-v1-protocol.o idle-protocol.o ext-workspace-unstable-v1-protocol.o pointer-constraints-unstable-v1-protocol.o tablet-unstable-v2-protocol.o wlr-output-power-management-unstable-v1-protocol.o @@ -167,7 +171,7 @@ man: --variable=date:"${DATE}" \ --variable=section:1 \ --from rst \ - --to man | gzip -c > /usr/share/man/man1/Hyprland.1.gz + --to man > ./docs/Hyprland.1 pandoc ./docs/hyprctl.1.rst \ --standalone \ @@ -175,4 +179,4 @@ man: --variable=date:"${DATE}" \ --variable=section:1 \ --from rst \ - --to man | gzip -c > /usr/share/man/man1/hyprctl.1.gz + --to man > ./docs/hyprctl.1 diff --git a/docs/Hyprland.1 b/docs/Hyprland.1 new file mode 100644 index 00000000..689c2ed3 --- /dev/null +++ b/docs/Hyprland.1 @@ -0,0 +1,46 @@ +.\" Automatically generated by Pandoc 2.5 +.\" +.TH "Hyprland" "1" "21 Aug 2022" "" "Hyprland User Manual" +.hy +.SH NAME +.PP +Hyprland \- Dynamic tiling Wayland compositor +.SH SYNOPSIS +.PP +\f[B]Hyprland\f[R] [\f[I]arg [...]\f[R]]. +.SH DESCRIPTION +.PP +\f[B]Hyprland\f[R] is a dynamic tiling Wayland compositor based on +wlroots that doesn\[aq]t sacrifice on its looks. +.PP +You can launch Hyprland by either going into a TTY and executing +\f[B]Hyprland\f[R], or with a login manager. +.SH NOTICE +.PP +Hyprland is still in pretty early development compared to some other +Wayland compositors. +.PP +Although Hyprland is pretty stable, it may have some bugs. +.SH CONFIGURATION +.PP +For configuration information please see +<\f[I]https://github.com/hyprwm/Hyprland/wiki\f[R]>. +.SH OPTIONS +.TP +.B \f[B]\-h\f[R], \f[B]\-\-help\f[R] +Show command usage. +.TP +.B \f[B]\-c\f[R], \f[B]\-\-config\f[R] +Specify config file to use. +.SH BUGS +.TP +.B Submit bug reports and request features online at: +<\f[I]https://github.com/hyprwm/Hyprland/issues\f[R]> +.SH SEE ALSO +.PP +Sources at: <\f[I]https://github.com/hyprwm/Hyprland\f[R]> +.SH COPYRIGHT +.PP +Copyright (c) 2022, vaxerski +.SH AUTHORS +Vaxerski <\f[I]https://github.com/vaxerski\f[R]>. diff --git a/docs/hyprctl.1 b/docs/hyprctl.1 new file mode 100644 index 00000000..db5cc736 --- /dev/null +++ b/docs/hyprctl.1 @@ -0,0 +1,145 @@ +.\" Automatically generated by Pandoc 2.5 +.\" +.TH "hyprctl" "1" "21 Aug 2022" "" "hyprctl User Manual" +.hy +.SH NAME +.PP +hyprctl \- Utility for controlling parts of Hyprland from a CLI or a +script +.SH SYNOPSIS +.PP +\f[B]hyprctl\f[R] [\f[I](opt)flags\f[R]] [\f[B]command\f[R]] +[\f[I](opt)args\f[R]] +.SH DESCRIPTION +.PP +\f[B]hyprctl\f[R] is a utility for controlling some parts of the +compositor from a CLI or a script. +.SH CONTROL COMMANDS +.PP +\f[B]dispatch\f[R] +.RS +.PP +Call a dispatcher with an argument. +.PP +An argument must be present. +For dispatchers without parameters it can be anything. +.PP +Returns: \f[I]ok\f[R] on success, and an error message on failure. +.TP +.B Examples: +\f[B]hyprctl\f[R] \f[I]dispatch exec kitty\f[R] +.RS +.PP +\f[B]hyprctl\f[R] \f[I]dispatch pseudo x\f[R] +.RE +.RE +.PP +\f[B]keyword\f[R] +.RS +.PP +Set a config keyword dynamically. +.PP +Returns: \f[I]ok\f[R] on success, and an error message on failure. +.TP +.B Examples: +\f[B]hyprctl\f[R] \f[I]keyword bind SUPER,0,pseudo\f[R] +.RS +.PP +\f[B]hyprctl\f[R] \f[I]keyword general:border_size 10\f[R] +.RE +.RE +.PP +\f[B]reload\f[R] +.RS +.PP +Force a reload of the config file. +.RE +.PP +\f[B]kill\f[R] +.RS +.PP +Enter kill mode, where you can kill an app by clicking on it. +You can exit by pressing ESCAPE. +.RE +.SH INFO COMMANDS +.PP +\f[B]version\f[R] +.RS +.PP +Prints the Hyprland version, flags, commit and branch of build. +.RE +.PP +\f[B]monitors\f[R] +.RS +.PP +Lists all the outputs with their properties. +.RE +.PP +\f[B]workspaces\f[R] +.RS +.PP +Lists all workspaces with their properties. +.RE +.PP +\f[B]clients\f[R] +.RS +.PP +Lists all windows with their properties. +.RE +.PP +\f[B]devices\f[R] +.RS +.PP +Lists all connected input devices. +.RE +.PP +\f[B]activewindow\f[R] +.RS +.PP +Returns the active window name. +.RE +.PP +\f[B]layers\f[R] +.RS +.PP +Lists all the layers. +.RE +.PP +\f[B]splash\f[R] +.RS +.PP +Returns the current random splash. +.RE +.SH OPTIONS +.PP +\f[B]\-\-batch\f[R] +.RS +.PP +Specify a batch of commands to execute. +.TP +.B Example: +\f[B]hyprctl\f[R] \f[I]\-\-batch \[dq]keyword general:border_size 2 ; +keyword general:gaps_out 20\[dq]\f[R] +.RS +.PP +\f[I];\f[R] separates the commands. +.RE +.RE +.PP +\f[B]\-j\f[R] +.RS +.PP +Outputs information in JSON. +.RE +.SH BUGS +.TP +.B Submit bug reports and request features online at: +<\f[I]https://github.com/hyprwm/Hyprland/issues\f[R]> +.SH SEE ALSO +.PP +Sources at: <\f[I]https://github.com/hyprwm/Hyprland\f[R]> +.SH COPYRIGHT +.PP +Copyright (c) 2022, vaxerski +.SH AUTHORS +Vaxerski <\f[I]https://github.com/vaxerski\f[R]>. diff --git a/docs/meson.build b/docs/meson.build new file mode 100644 index 00000000..a5d7e737 --- /dev/null +++ b/docs/meson.build @@ -0,0 +1,2 @@ +install_man ('Hyprland.1') +install_man ('hyprctl.1') diff --git a/meson.build b/meson.build index 58ef93a6..a29c6228 100644 --- a/meson.build +++ b/meson.build @@ -59,3 +59,4 @@ subdir('src') subdir('hyprctl') subdir('assets') subdir('example') +subdir('docs') diff --git a/nix/default.nix b/nix/default.nix index adabd69f..ffea6e0c 100644 --- a/nix/default.nix +++ b/nix/default.nix @@ -44,6 +44,11 @@ stdenv.mkDerivation { pkg-config ]; + outputs = [ + "out" + "man" + ]; + buildInputs = [ git