aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAkshay <[email protected]>2021-10-02 06:16:11 +0100
committerAkshay <[email protected]>2021-10-02 06:16:11 +0100
commit94d534975ab228b27d4713f7dec41bfa3900fdfb (patch)
treeb63c5ef86b83935a27b287c842a1b7fa64368049
parent804ad2b07645b4cb2e44449720d54ed94106a116 (diff)
rework services
-rw-r--r--hosts/olive/configuration.nix6
-rw-r--r--mail.nix1
-rw-r--r--programs/neovim.nix2
-rw-r--r--scripts/default.nix26
-rw-r--r--services/battery.nix48
-rw-r--r--services/suspend.nix8
6 files changed, 30 insertions, 61 deletions
diff --git a/hosts/olive/configuration.nix b/hosts/olive/configuration.nix
index 0019695..3c15f74 100644
--- a/hosts/olive/configuration.nix
+++ b/hosts/olive/configuration.nix
@@ -8,7 +8,6 @@
8 imports = 8 imports =
9 [ 9 [
10 ./hardware-configuration.nix 10 ./hardware-configuration.nix
11 ../../services/battery.nix
12 ../../services/suspend.nix 11 ../../services/suspend.nix
13 ]; 12 ];
14 13
@@ -92,7 +91,6 @@
92 adb.enable = true; 91 adb.enable = true;
93 }; 92 };
94 93
95
96 sound.enable = true; 94 sound.enable = true;
97 hardware.pulseaudio = { 95 hardware.pulseaudio = {
98 enable = true; 96 enable = true;
@@ -114,8 +112,8 @@
114 112
115 services.batteryNotifier = { 113 services.batteryNotifier = {
116 enable = true; 114 enable = true;
117 notifyCapacity = 40; 115 notifyCapacity = 20;
118 suspendCapacity = 5; 116 suspendCapacity = 10;
119 }; 117 };
120 118
121 users.users.np = { 119 users.users.np = {
diff --git a/mail.nix b/mail.nix
index b62e51a..9b22088 100644
--- a/mail.nix
+++ b/mail.nix
@@ -44,6 +44,5 @@
44 userName = "[email protected]"; 44 userName = "[email protected]";
45 notmuch.enable = true; 45 notmuch.enable = true;
46 msmtp.enable = true; 46 msmtp.enable = true;
47
48 }; 47 };
49} 48}
diff --git a/programs/neovim.nix b/programs/neovim.nix
index 18baeac..e163d48 100644
--- a/programs/neovim.nix
+++ b/programs/neovim.nix
@@ -35,7 +35,7 @@
35 vimtex 35 vimtex
36 36
37 # handy 37 # handy
38 # vim-gitgutter 38 vim-gitgutter
39 tabular 39 tabular
40 emmet-vim 40 emmet-vim
41 vimwiki 41 vimwiki
diff --git a/scripts/default.nix b/scripts/default.nix
index 84fcff3..a6e5936 100644
--- a/scripts/default.nix
+++ b/scripts/default.nix
@@ -1,17 +1,31 @@
1{ pkgs, ... }: 1{ pkgs, ... }:
2 2
3let 3let
4 4
5 # open a window with live video feed from the camera 5 # open a window with live video feed from the camera
6 webcam = pkgs.writeScriptBin "webcam" '' 6 webcam = pkgs.writeScriptBin "webcam" ''
7 ${pkgs.mpv}/bin/mpv av://v4l2:/dev/video0 --profile=low-latency --untimed 7 ${pkgs.mpv}/bin/mpv av://v4l2:/dev/video0 --profile=low-latency --untimed
8 ''; 8 '';
9 9
10 # create new repo on fern
11 git-new-repo = pkgs.writeScriptBin "git-new-repo" ''
12 if [ $# -eq 0 ]; then
13 echo "requires an arg"
14 exit 1
15 fi
16
17 # $1 - section/repo-name
18
19 ssh git@ferrn git init --bare "$1";
20 git remote add origin git@ferrn:"$1";
21 git push -u origin HEAD;
22 '';
23
10 # set git repo descriptions on cgit 24 # set git repo descriptions on cgit
11 git-set-desc = pkgs.writeScriptBin "git-set-desc" '' 25 git-set-desc = pkgs.writeScriptBin "git-set-desc" ''
12 remote=$(git remote get-url --push origin) 26 remote=$(git remote get-url --push origin)
13 scp .git/description "$remote/description" 27 scp .git/description "$remote/description"
14 ''; 28 '';
15 29
16 # screen record with ffmpeg and slop 30 # screen record with ffmpeg and slop
17 record = import ./record.nix pkgs; 31 record = import ./record.nix pkgs;
@@ -23,4 +37,10 @@ let
23 battery = import ./battery.nix pkgs; 37 battery = import ./battery.nix pkgs;
24 38
25in 39in
26 [ webcam git-set-desc record uploader battery ] 40[
41 webcam
42 git-set-desc
43 record
44 uploader
45 battery
46]
diff --git a/services/battery.nix b/services/battery.nix
deleted file mode 100644
index a871e8f..0000000
--- a/services/battery.nix
+++ /dev/null
@@ -1,48 +0,0 @@
1{ config, lib, pkgs, ... }:
2
3with lib;
4let
5 cfg = config.services.battery-alert;
6 bat = pkgs.writeScriptBin "bat"
7 ''
8 '';
9in
10{
11 options.services.battery-alert = {
12 enable = mkOption {
13 type = types.bool;
14 default = false;
15 description = ''
16 If enabled, NixOS will periodically check battery levels and report
17 if it is below a threshold value.
18 '';
19 };
20 };
21
22 config = {
23 systemd.user.timers.battery-alert = mkIf cfg.enable {
24 description = "Periodically check battery status and alert if required";
25 timerConfig.OnBootSec = "1m";
26 timerConfig.OnUnitInactiveSec = "1m";
27 timerConfig.Unit = "battery-alert.service";
28 wantedBy = [ "timers.target" ];
29 };
30
31 systemd.user.services.battery-alert = {
32 description = "Check battery levels";
33 path = [ pkgs.libnotify pkgs.coreutils ];
34 serviceConfig = {
35 PassEnvironment = "DISPLAY XAUTHORITY";
36 };
37 script = ''
38 bat_status=$( ${pkgs.coreutils}/bin/cat /sys/class/power_supply/BAT0/capacity )
39 charging_status=$( ${pkgs.coreutils}/bin/cat /sys/class/power_supply/BAT0/status )
40
41 # if [[ $bat_status -ge 10 ]]; then
42 ${pkgs.libnotify}/bin/notify-send "Battery low: $bat_status%" "$charging_status"
43 # fi
44 '';
45 };
46
47 };
48}
diff --git a/services/suspend.nix b/services/suspend.nix
index 445446b..35e213a 100644
--- a/services/suspend.nix
+++ b/services/suspend.nix
@@ -37,8 +37,8 @@ in
37 config = mkIf cfg.enable { 37 config = mkIf cfg.enable {
38 systemd.user.timers."lowbatt" = { 38 systemd.user.timers."lowbatt" = {
39 description = "check battery level"; 39 description = "check battery level";
40 timerConfig.OnBootSec = "1m"; 40 timerConfig.OnBootSec = "5m";
41 timerConfig.OnUnitInactiveSec = "1m"; 41 timerConfig.OnUnitInactiveSec = "5m";
42 timerConfig.Unit = "lowbatt.service"; 42 timerConfig.Unit = "lowbatt.service";
43 wantedBy = [ "timers.target" ]; 43 wantedBy = [ "timers.target" ];
44 }; 44 };
@@ -49,10 +49,10 @@ in
49 export battery_capacity=$(${pkgs.coreutils}/bin/cat /sys/class/power_supply/${cfg.device}/capacity) 49 export battery_capacity=$(${pkgs.coreutils}/bin/cat /sys/class/power_supply/${cfg.device}/capacity)
50 export battery_status=$(${pkgs.coreutils}/bin/cat /sys/class/power_supply/${cfg.device}/status) 50 export battery_status=$(${pkgs.coreutils}/bin/cat /sys/class/power_supply/${cfg.device}/status)
51 if [[ $battery_capacity -le ${builtins.toString cfg.notifyCapacity} && $battery_status = "Discharging" ]]; then 51 if [[ $battery_capacity -le ${builtins.toString cfg.notifyCapacity} && $battery_status = "Discharging" ]]; then
52 ${pkgs.libnotify}/bin/notify-send --urgency=critical --hint=int:transient:1 --icon=battery_empty "Battery Low" "You should probably plug-in." 52 ${pkgs.libnotify}/bin/notify-send --urgency=critical --hint=int:transient:1 --icon=battery_empty "Battery Low: $battery_capacity%"
53 fi 53 fi
54 if [[ $battery_capacity -le ${builtins.toString cfg.suspendCapacity} && $battery_status = "Discharging" ]]; then 54 if [[ $battery_capacity -le ${builtins.toString cfg.suspendCapacity} && $battery_status = "Discharging" ]]; then
55 ${pkgs.libnotify}/bin/notify-send --urgency=critical --hint=int:transient:1 --icon=battery_empty "Battery Critically Low" "Computer will suspend in 60 seconds." 55 ${pkgs.libnotify}/bin/notify-send --urgency=critical --hint=int:transient:1 --icon=battery_empty "Battery Critically Low: $battery_capacity%"
56 sleep 60s 56 sleep 60s
57 battery_status=$(${pkgs.coreutils}/bin/cat /sys/class/power_supply/${cfg.device}/status) 57 battery_status=$(${pkgs.coreutils}/bin/cat /sys/class/power_supply/${cfg.device}/status)
58 if [[ $battery_status = "Discharging" ]]; then 58 if [[ $battery_status = "Discharging" ]]; then