Hi,

one possible solution: save the following as /some/path/stopcont.sh and bind

    bindsym $mod+p exec --no-startup-id /some/path/stopcont.sh <processname>

Script:
===========
#!/usr/bin/env bash
PROCESS=${1}
FILE="/tmp/${PROCESS}.signal"

if [[ -f "${FILE}" ]]; then
  rm ${FILE}
  pkill -SIGCONT ${PROCESS}
else
  touch ${FILE}
  pkill -SIGSTOP ${PROCESS}
fi
===========

This will, of course, assume that the process isn't paused by anything
else as that would make it go out of sync. A better and more robust way
would be to write the script such that it instead uses the information
of /proc/<pid>/stat to check whether the process is currently paused. If
you use a higher-level language such as Python, you can do this nicely
instead of manually parsing the output. See [1] for some more information.

[1]
http://stackoverflow.com/questions/6021771/is-there-a-way-to-determine-if-a-linux-pid-is-paused-or-not


Ingo

On 11/08/2015 04:16 AM, Zenny wrote:
> Hi,
>
> I am trying to use a keybinding to pause a process temporily,
>
> bindsym $mod+p exec pkill -SIGSTOP <processname>
>
> But I could not figure out how to make pressing to same keybinding to
> restart the process?
>
> Currenlty I am using,
>
> bindsym $mod+c exec pkill -SIGCONT <processname>
>
> Instead, I want something like re-pressing $mod+p executes pkill
> -SIGCONT <processname>.
>
> Thanks!
>
> /z

Reply via email to