diff --git a/scripts/controller-battery b/scripts/controller-battery index b8ed4f2..2f4257c 100755 --- a/scripts/controller-battery +++ b/scripts/controller-battery @@ -10,29 +10,20 @@ if test -z "$CONTROLLER"; then fi CAPACITY=$(cat "$CONTROLLER/capacity") +STATUS=$(cat "$CONTROLLER/status") -echo -n '󰊴' +echo -n '󰊴 ' -if test "$CAPACITY" -ge 90; then - echo '󰁹' -elif test "$CAPACITY" -ge 90; then - echo '󰂂' -elif test "$CAPACITY" -ge 80; then - echo '󰂁' -elif test "$CAPACITY" -ge 70; then - echo '󰂀' -elif test "$CAPACITY" -ge 60; then - echo '󰁿' -elif test "$CAPACITY" -ge 50; then - echo '󰁾' -elif test "$CAPACITY" -ge 40; then - echo '󰁽' -elif test "$CAPACITY" -ge 30; then - echo '󰁼' -elif test "$CAPACITY" -ge 20; then - echo '󰁻' -elif test "$CAPACITY" -ge 10; then - echo '󰁺' +if test "$STATUS" = "Charging"; then + echo -n "󰂄" else - echo '󰂎' + print-battery-icon "$CAPACITY" fi + +# Add terminating newline +echo + +# Tooltip +echo -n '󰊴' +print-battery-icon "$CAPACITY" +echo " $CAPACITY%" diff --git a/scripts/default.nix b/scripts/default.nix index 3003685..13c19c0 100644 --- a/scripts/default.nix +++ b/scripts/default.nix @@ -137,7 +137,9 @@ libinput libratbag ]; - controller-battery = [ ]; + print-battery-icon = [ ]; + controller-battery = [ print-battery-icon ]; + mouse-battery = [ print-battery-icon ]; _docker-block-external-connections = [ iptables gawk diff --git a/scripts/mouse-battery b/scripts/mouse-battery new file mode 100755 index 0000000..e1fbc3d --- /dev/null +++ b/scripts/mouse-battery @@ -0,0 +1,39 @@ +#!/bin/sh + +set -e + +MODEL_NAME_FILE=$(rg --files-with-matches G502 /sys/class/power_supply/*/model_name | head -n1) + +if test -z "$MODEL_NAME_FILE"; then + echo + exit 0 +fi + +MOUSE=$(dirname "$MODEL_NAME_FILE") + +if test -z "$MOUSE"; then + echo + exit 0 +fi + +CAPACITY=$(cat "$MOUSE/capacity") +STATUS=$(cat "$MOUSE/status") + +echo -n '🖱️' + +if test "$STATUS" = "Charging"; then + echo -n "󰂄" +else + print-battery-icon "$CAPACITY" +fi + +if test "$CAPACITY" -lt 50; then + echo -n "$CAPACITY%" +fi + +echo + +# Tooltip +echo -n '🖱️' +print-battery-icon "$CAPACITY" +echo " $CAPACITY%" diff --git a/scripts/print-battery-icon b/scripts/print-battery-icon new file mode 100755 index 0000000..b893315 --- /dev/null +++ b/scripts/print-battery-icon @@ -0,0 +1,33 @@ +#!/bin/sh + +set -e + +if test $# -ne 1; then + echo "Usage $0" >&2 + exit 1 +fi +CAPACITY="$1" + +if test "$CAPACITY" -ge 90; then + echo -n '󰁹' +elif test "$CAPACITY" -ge 90; then + echo -n '󰂂' +elif test "$CAPACITY" -ge 80; then + echo -n '󰂁' +elif test "$CAPACITY" -ge 70; then + echo -n '󰂀' +elif test "$CAPACITY" -ge 60; then + echo -n '󰁿' +elif test "$CAPACITY" -ge 50; then + echo -n '󰁾' +elif test "$CAPACITY" -ge 40; then + echo -n '󰁽' +elif test "$CAPACITY" -ge 30; then + echo -n '󰁼' +elif test "$CAPACITY" -ge 20; then + echo -n '󰁻' +elif test "$CAPACITY" -ge 10; then + echo -n '󰁺' +else + echo -n '󰂎' +fi diff --git a/switch b/switch index d341e87..32bc217 100755 --- a/switch +++ b/switch @@ -4,6 +4,9 @@ set -euo pipefail nix fmt +# Allow usage of untracked files in nix code +git add --intent-to-add . + git --no-pager diff run() { diff --git a/system/configuration.nix b/system/configuration.nix index 2380d22..ec44aed 100644 --- a/system/configuration.nix +++ b/system/configuration.nix @@ -49,6 +49,7 @@ services.logind.extraConfig = '' HandlePowerKey=suspend ''; + services.upower.enable = true; # This value determines the NixOS release from which the default # settings for stateful data, like file locations and database versions diff --git a/user/firefox.nix b/user/firefox.nix index 15ec1d4..7a457ed 100644 --- a/user/firefox.nix +++ b/user/firefox.nix @@ -61,8 +61,8 @@ in }) (pkgs.fetchFirefoxAddon { name = "youtube_no_translation"; - url = "https://addons.mozilla.org/firefox/downloads/file/4529979/youtube_no_translation-2.7.1.xpi"; - hash = "sha256-HOLeSWt0phsR/l3FcCRUUFCurU2zyBuZBlynlxPbGqs="; + url = "https://addons.mozilla.org/firefox/downloads/file/4561536/youtube_no_translation-2.11.0.xpi"; + hash = "sha256-8VpoUDbvZZf0oYGSHnXEiYDjfcPjQqtbDaxp5ndAJ94="; }) # (pkgs.fetchFirefoxAddon { # name = "invidious_redirect"; diff --git a/user/kakoune/default.nix b/user/kakoune/default.nix index fa63e6b..090246d 100644 --- a/user/kakoune/default.nix +++ b/user/kakoune/default.nix @@ -110,6 +110,7 @@ in set global scrolloff 10,20 set global autoreload yes set global startup_info_version 99999999 + set global grepcmd 'rg -Hn' '' + (import ./colors.nix { @@ -141,6 +142,8 @@ in aspell aspellDicts.en aspellDicts.pt_BR + + ripgrep ]; home.activation = { update_kakoune = lib.hm.dag.entryAfter [ "writeBoundary" ] '' diff --git a/user/sway/sway-binds.nix b/user/sway/sway-binds.nix index 3d61b4e..27a27b4 100644 --- a/user/sway/sway-binds.nix +++ b/user/sway/sway-binds.nix @@ -14,6 +14,7 @@ let terminal = "alacritty"; _lock = pkgs.writeShellScriptBin "_lock" '' + pkill caffeinated || true ${pkgs.sway}/bin/swaymsg mode default ${pkgs.swaylock}/bin/swaylock -f ''; @@ -160,7 +161,7 @@ let screen_binds = { "XF86MonBrightnessDown" = "exec brightnessctl --min-value=1 set 5%-"; "XF86MonBrightnessUp" = "exec brightnessctl --min-value=1 set 5%+"; - "${mod}+l" = lib.getExe _lock; + "${mod}+l" = "exec ${lib.getExe _lock}"; }; other_binds = { diff --git a/user/waybar/default.nix b/user/waybar/default.nix index 696f062..c9ec809 100644 --- a/user/waybar/default.nix +++ b/user/waybar/default.nix @@ -38,6 +38,7 @@ in "custom/playerctl" "tray" "custom/controller-battery" + "custom/mouse-battery" "custom/caffeine" "pulseaudio" (lib.optional (osConfig.services.vpn.enable or false) "custom/vpn") @@ -164,7 +165,11 @@ in format = "{}"; exec = lib.getExe pkgs.controller-battery; interval = 1; - tooltip = false; + }; + "custom/mouse-battery" = { + format = "{}"; + exec = lib.getExe pkgs.mouse-battery; + interval = 1; }; "custom/caffeine" = { format = "{}"; diff --git a/user/waybar/style.css b/user/waybar/style.css index 36c6ebd..9ff675f 100644 --- a/user/waybar/style.css +++ b/user/waybar/style.css @@ -38,6 +38,7 @@ window#waybar.solo { #custom-mpd, #custom-playerctl, #custom-controller-battery, +#custom-mouse-battery, #tray, #clock, #network,