cocainate
is a cross-platform CLI utility for keeping the screen awake until stopped, or for a specified duration.
The program's functionality and name are inspired by macOS's caffeinate
utility that prevents the system from entering sleep mode.
This name is simply a stupid pun, therefore I do not condone and do not promote drug use, for more information: Wikipedia.
{
inputs = {
# or your preferred NixOS channel
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
applegamer22.url = "github:AppleGamer22/nur";
};
outputs = { nixpkgs }: {
nixosConfigurations.nixos = nixpkgs.lib.nixosSystem {
specialArgs = {
pkgs = import nixpkgs {
# ...
overlays = [
(final: prev: {
# ...
ag22 = applegamer22.packages."<your_system>";
})
];
};
};
modules = [
# or in a separate Nix file
({ pkgs, ... }: {
programs.nix-ld.enable = true;
environment.systemPackages = with pkgs; [
ag22.cocainate
];
})
# ...
];
};
};
}
yay
:
yay -S cocainate-bin
paru
:
paru -S cocainate-bin
brew install AppleGamer22/tap/cocainate
winget install AppleGamer22.cocainate
go
:- Does not ship with:
- a manual page
- pre-built shell completion scripts
- Does not ship with:
go install github.com/AppleGamer22/cocainate
This is an optional flag that accepts a duration string (see Go's time.ParseDuration
for more details). If this flag is not provided, the program will run until manually stopped.
- nanoseconds:
ns
- microseconds:
us
orµs
- milliseconds:
ms
- seconds:
s
- minutes:
m
- hours:
h
- 10 hours:
-d 10h
- 1 hour, 10 minutes and 10 seconds:
-d 1h10m10s
- 1 microsecond:
-d 1us
If the -p
flag is provided, the -d
flag's value is used as process polling interval.
This is an optional flag that accepts a process ID (PID). If a valid PID is provided, the program will wait until that process is terminated. The delay between the termination of the provided process and the termination of screensaver inhibitation depends on the -d
flag (which must be provided).
- If this flag is provided, the following details are printed to the screen:
- semantic version number
- commit hash
- Go compiler version
- processor architecture & operating system
- Otherwise, only the semantic version number is printed.
- D-Bus
- One of the following desktop environments:
- KDE 4 or later
- GNOME 3.10 or later
- Any other desktop environment that implements
org.freedesktop.ScreenSaver
Running the following command will run go test
on the commands and session sub-modules:
make test
- Using the following
make
command will save acocainate
binary with the last version tag and the latest git commit hash:
make debug
- Using the following GoReleaser command with a version
git
tag and a cleangit
state:
goreleaser build --clean
- All release artificats will stored in the
dist
child directory in the codebase's root directory:- compressed package archives with:
- a
cocainate
binary - manual page
- shell completion scripts
- a
- checksums
- change log
- compressed package archives with:
cocainate
is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version.
cocainate
is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.