2022-05-24 18:44:52 +02:00
|
|
|
{
|
|
|
|
writeShellApplication,
|
|
|
|
dmenu,
|
|
|
|
dunst,
|
2022-10-11 19:11:34 +02:00
|
|
|
libnotify,
|
2022-05-31 18:54:47 +02:00
|
|
|
bc,
|
2022-10-11 19:11:34 +02:00
|
|
|
i3,
|
|
|
|
xdg-utils
|
2022-05-24 18:44:52 +02:00
|
|
|
}:
|
|
|
|
|
|
|
|
let
|
|
|
|
|
2022-10-11 19:11:34 +02:00
|
|
|
# Things like version switch should not be necessary once I managed nix shells.
|
2022-05-24 18:44:52 +02:00
|
|
|
|
|
|
|
dmenu-custom-scripts-calc = writeShellApplication {
|
|
|
|
name = "dmenu-custom-scripts-calc";
|
|
|
|
|
|
|
|
runtimeInputs = [
|
|
|
|
dmenu
|
|
|
|
bc
|
|
|
|
];
|
|
|
|
|
|
|
|
text = ''
|
|
|
|
input=$(dmenu -i)
|
|
|
|
result=$(echo "$input" | scale=4 bc -l)
|
|
|
|
echo "$result" | dmenu -i -p "Result:"
|
|
|
|
'';
|
|
|
|
};
|
|
|
|
|
|
|
|
dmenu-custom-scripts-notifications = writeShellApplication {
|
|
|
|
name = "dmenu-custom-scripts-notifications";
|
|
|
|
|
|
|
|
runtimeInputs = [
|
|
|
|
dmenu
|
|
|
|
dunst
|
|
|
|
];
|
|
|
|
|
|
|
|
text = ''
|
2022-10-31 13:41:39 +01:00
|
|
|
chosen=$(echo -e "pause\nresume" | dmenu -i -l 2)
|
2022-05-24 18:44:52 +02:00
|
|
|
case "$chosen" in
|
|
|
|
"pause")
|
|
|
|
dunstctl set-paused true
|
|
|
|
;;
|
|
|
|
"resume")
|
|
|
|
dunstctl set-paused false
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
exit 0
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
'';
|
|
|
|
};
|
|
|
|
|
|
|
|
dmenu-custom-scripts-system = writeShellApplication {
|
|
|
|
name = "dmenu-custom-scripts-system";
|
|
|
|
|
|
|
|
runtimeInputs = [
|
2022-05-31 18:54:47 +02:00
|
|
|
i3
|
2022-05-24 18:44:52 +02:00
|
|
|
dmenu
|
|
|
|
dunst
|
|
|
|
];
|
|
|
|
|
|
|
|
text = builtins.readFile ./system.sh;
|
|
|
|
};
|
|
|
|
|
|
|
|
dmenu-custom-scripts-docs-php = writeShellApplication {
|
|
|
|
name = "dmenu-custom-scripts-docs-php";
|
|
|
|
|
|
|
|
runtimeInputs = [
|
|
|
|
dmenu
|
2022-10-11 19:11:34 +02:00
|
|
|
xdg-utils
|
2022-05-24 18:44:52 +02:00
|
|
|
];
|
|
|
|
|
|
|
|
text = ''
|
|
|
|
file=$(find ~/Projects/docs/php/ -maxdepth 1 -name '*.html' -printf "%f\n" | dmenu -i -l 20 -p "Search Term")
|
2022-10-11 19:11:34 +02:00
|
|
|
xdg-open "http://php.docs.localhost/$file"
|
2022-05-24 18:44:52 +02:00
|
|
|
'';
|
|
|
|
};
|
|
|
|
|
|
|
|
dmenu-custom-scripts-php-version = writeShellApplication {
|
|
|
|
name = "dmenu-custom-scripts-php-version";
|
|
|
|
|
|
|
|
runtimeInputs = [
|
|
|
|
dmenu
|
2022-10-11 19:11:34 +02:00
|
|
|
libnotify
|
2022-05-24 18:44:52 +02:00
|
|
|
];
|
|
|
|
|
|
|
|
text = ''
|
|
|
|
chosen=$(update-alternatives --list php | dmenu -i -l 20 -p "$(php --version | head -1 | cut -d' ' -f2 | cut -d'.' -f1,2)")
|
|
|
|
sudo update-alternatives --set php "$chosen" > /dev/null
|
|
|
|
pkill -SIGRTMIN+10 i3blocks
|
|
|
|
notify-send "switching php version" "$(php --version)"
|
|
|
|
'';
|
|
|
|
};
|
|
|
|
|
|
|
|
dmenu-custom-scripts-xdebug = writeShellApplication {
|
|
|
|
name = "dmenu-custom-scripts-xdebug";
|
|
|
|
|
|
|
|
runtimeInputs = [
|
|
|
|
dmenu
|
2022-10-11 19:11:34 +02:00
|
|
|
libnotify
|
2022-05-24 18:44:52 +02:00
|
|
|
];
|
|
|
|
|
|
|
|
text = builtins.readFile ./xdebug.sh;
|
|
|
|
};
|
|
|
|
|
2023-01-17 13:07:08 +01:00
|
|
|
dmenu-custom-scripts-open-issue = writeShellApplication {
|
|
|
|
name = "dmenu-custom-scripts-open-issue";
|
|
|
|
|
|
|
|
runtimeInputs = [
|
|
|
|
dmenu
|
|
|
|
];
|
|
|
|
|
|
|
|
text = builtins.readFile ./customer-issue.sh;
|
|
|
|
};
|
|
|
|
|
2022-05-24 18:44:52 +02:00
|
|
|
in
|
|
|
|
writeShellApplication {
|
2022-10-11 19:11:34 +02:00
|
|
|
name = "custom-dmenu-selection";
|
2022-05-24 18:44:52 +02:00
|
|
|
|
|
|
|
# TODO: Find way to remove the nix prefixes from "files"
|
|
|
|
text = ''
|
|
|
|
scripts=()
|
|
|
|
scripts+=("${dmenu-custom-scripts-calc.name}")
|
|
|
|
scripts+=("${dmenu-custom-scripts-notifications.name}")
|
2023-01-17 13:07:08 +01:00
|
|
|
scripts+=("${dmenu-custom-scripts-open-issue.name}")
|
2022-05-24 18:44:52 +02:00
|
|
|
scripts+=("${dmenu-custom-scripts-system.name}")
|
|
|
|
scripts+=("${dmenu-custom-scripts-php-version.name}")
|
|
|
|
scripts+=("${dmenu-custom-scripts-docs-php.name}")
|
|
|
|
scripts+=("${dmenu-custom-scripts-xdebug.name}")
|
|
|
|
|
|
|
|
OIFS="$IFS" IFS=$'\n'
|
|
|
|
scriptsString="''${scripts[*]}"
|
|
|
|
IFS="$OIFS"
|
|
|
|
|
|
|
|
action=$(echo -e "$scriptsString" | dmenu -i -l 20)
|
|
|
|
|
|
|
|
case "$action" in
|
|
|
|
"${dmenu-custom-scripts-calc.name}")
|
|
|
|
bash "${dmenu-custom-scripts-calc}/bin/${dmenu-custom-scripts-calc.name}" || exit 0
|
|
|
|
;;
|
|
|
|
"${dmenu-custom-scripts-notifications.name}")
|
|
|
|
bash "${dmenu-custom-scripts-notifications}/bin/${dmenu-custom-scripts-notifications.name}" || exit 0
|
|
|
|
;;
|
2023-01-17 13:07:08 +01:00
|
|
|
"${dmenu-custom-scripts-open-issue.name}")
|
|
|
|
bash "${dmenu-custom-scripts-open-issue}/bin/${dmenu-custom-scripts-open-issue.name}" || exit 0
|
|
|
|
;;
|
2022-05-24 18:44:52 +02:00
|
|
|
"${dmenu-custom-scripts-system.name}")
|
|
|
|
bash "${dmenu-custom-scripts-system}/bin/${dmenu-custom-scripts-system.name}" || exit 0
|
|
|
|
;;
|
|
|
|
"${dmenu-custom-scripts-docs-php.name}")
|
|
|
|
bash "${dmenu-custom-scripts-docs-php}/bin/${dmenu-custom-scripts-docs-php.name}" || exit 0
|
|
|
|
;;
|
|
|
|
"${dmenu-custom-scripts-php-version.name}")
|
|
|
|
bash "${dmenu-custom-scripts-php-version}/bin/${dmenu-custom-scripts-php-version.name}" || exit 0
|
|
|
|
;;
|
|
|
|
"${dmenu-custom-scripts-xdebug.name}")
|
|
|
|
bash "${dmenu-custom-scripts-xdebug}/bin/${dmenu-custom-scripts-xdebug.name}" || exit 0
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
exit 0
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
'';
|
|
|
|
}
|