feat(binto): move to new logitech mouse
This commit is contained in:
parent
2caeb6f438
commit
585d764720
11 changed files with 20 additions and 193 deletions
|
@ -11,7 +11,6 @@ in {
|
||||||
../../modules/kmscon.nix
|
../../modules/kmscon.nix
|
||||||
../../modules/printer.nix
|
../../modules/printer.nix
|
||||||
../../modules/ratbag-mice.nix
|
../../modules/ratbag-mice.nix
|
||||||
../../modules/razer.nix
|
|
||||||
../../modules/sshd.nix
|
../../modules/sshd.nix
|
||||||
../../modules/tailscale.nix
|
../../modules/tailscale.nix
|
||||||
|
|
||||||
|
|
BIN
flake.lock
BIN
flake.lock
Binary file not shown.
BIN
flake.nix
BIN
flake.nix
Binary file not shown.
|
@ -25,26 +25,3 @@
|
||||||
background-color: $bgfull;
|
background-color: $bgfull;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.razer {
|
|
||||||
padding: 0 5px;
|
|
||||||
background: $bgfull;
|
|
||||||
|
|
||||||
.low {
|
|
||||||
color: $red;
|
|
||||||
}
|
|
||||||
|
|
||||||
.medium {
|
|
||||||
color: $yellow;
|
|
||||||
}
|
|
||||||
|
|
||||||
.high {
|
|
||||||
color: $green;
|
|
||||||
}
|
|
||||||
|
|
||||||
image {
|
|
||||||
padding-right: 5px;
|
|
||||||
font-size: 22px;
|
|
||||||
color: white;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
@ -7,7 +7,6 @@ import BarRevealer from './fullscreen.ts';
|
||||||
import Clock from './items/clock.ts';
|
import Clock from './items/clock.ts';
|
||||||
import CurrentWindow from './items/current-window';
|
import CurrentWindow from './items/current-window';
|
||||||
import NotifButton from './items/notif-button.ts';
|
import NotifButton from './items/notif-button.ts';
|
||||||
import RazerStats from './items/razer-stats.ts';
|
|
||||||
import SysTray from './items/systray.ts';
|
import SysTray from './items/systray.ts';
|
||||||
|
|
||||||
const PADDING = 20;
|
const PADDING = 20;
|
||||||
|
@ -29,10 +28,6 @@ export default () => BarRevealer({
|
||||||
Separator(PADDING),
|
Separator(PADDING),
|
||||||
|
|
||||||
SysTray(),
|
SysTray(),
|
||||||
|
|
||||||
Separator(PADDING / 2 / 2),
|
|
||||||
|
|
||||||
RazerStats(),
|
|
||||||
],
|
],
|
||||||
}),
|
}),
|
||||||
|
|
||||||
|
|
|
@ -1,93 +0,0 @@
|
||||||
import { execAsync, interval } from 'resource:///com/github/Aylur/ags/utils.js';
|
|
||||||
|
|
||||||
const { Box, Icon, Label } = Widget;
|
|
||||||
|
|
||||||
const RAZER_POLL = 10000;
|
|
||||||
const LOW_BATT = 20;
|
|
||||||
|
|
||||||
const RazerBat = Variable({
|
|
||||||
battery: 0,
|
|
||||||
charging: false,
|
|
||||||
sleeping: false,
|
|
||||||
disconnected: true,
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
const fetchInfo = () => {
|
|
||||||
execAsync([
|
|
||||||
'bash',
|
|
||||||
'-c',
|
|
||||||
"polychromatic-cli -n 'Razer Naga Pro (Wired)' -k" +
|
|
||||||
' || ' +
|
|
||||||
"polychromatic-cli -n 'Razer Naga Pro (Wireless)' -k",
|
|
||||||
|
|
||||||
]).then((out) => {
|
|
||||||
const batteryMatches = out.split('\n')
|
|
||||||
.filter((i) => i.includes('Battery'))[0]
|
|
||||||
.match(/[0-9]+/);
|
|
||||||
|
|
||||||
let sleeping = false;
|
|
||||||
let battery = batteryMatches !== null ?
|
|
||||||
parseInt(batteryMatches[0]) :
|
|
||||||
0;
|
|
||||||
|
|
||||||
// Don't set to zero when in sleep mode
|
|
||||||
if (battery === 0 && RazerBat.value.battery > 10) {
|
|
||||||
battery = RazerBat.value.battery;
|
|
||||||
sleeping = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// If 'Wireless' isn't in the logs it means the cmd found 'Wired'
|
|
||||||
const charging = !out.includes('Wireless');
|
|
||||||
|
|
||||||
RazerBat.value = {
|
|
||||||
battery,
|
|
||||||
charging,
|
|
||||||
sleeping,
|
|
||||||
disconnected: false,
|
|
||||||
};
|
|
||||||
}).catch(() => {
|
|
||||||
RazerBat.value.disconnected = true;
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
interval(RAZER_POLL, fetchInfo);
|
|
||||||
|
|
||||||
export default () => {
|
|
||||||
const percentage = Label({ vpack: 'center' });
|
|
||||||
|
|
||||||
const icon = Icon({ hpack: 'start' })
|
|
||||||
.hook(RazerBat, (self) => {
|
|
||||||
const v = RazerBat.value;
|
|
||||||
|
|
||||||
percentage.visible = !(v.disconnected || v.charging);
|
|
||||||
percentage.label = `${v.battery}%`;
|
|
||||||
|
|
||||||
self.icon = v.disconnected ?
|
|
||||||
'content-loading-symbolic' :
|
|
||||||
'mouse-razer-symbolic';
|
|
||||||
self.setCss(
|
|
||||||
v.disconnected || v.charging ?
|
|
||||||
'margin-right: -5px;' :
|
|
||||||
'',
|
|
||||||
);
|
|
||||||
|
|
||||||
self.toggleClassName(
|
|
||||||
'high',
|
|
||||||
v.battery > 66,
|
|
||||||
);
|
|
||||||
self.toggleClassName(
|
|
||||||
'medium',
|
|
||||||
v.battery > LOW_BATT && v.battery <= 66,
|
|
||||||
);
|
|
||||||
self.toggleClassName(
|
|
||||||
'low',
|
|
||||||
v.battery <= LOW_BATT,
|
|
||||||
);
|
|
||||||
});
|
|
||||||
|
|
||||||
return Box({
|
|
||||||
class_name: 'razer',
|
|
||||||
children: [icon, percentage],
|
|
||||||
});
|
|
||||||
};
|
|
|
@ -176,7 +176,6 @@ export const Notification = ({
|
||||||
|
|
||||||
const BlockedApps = [
|
const BlockedApps = [
|
||||||
'Spotify',
|
'Spotify',
|
||||||
'OpenRazer',
|
|
||||||
];
|
];
|
||||||
|
|
||||||
if (BlockedApps.find((app) => app === notif.app_name)) {
|
if (BlockedApps.find((app) => app === notif.app_name)) {
|
||||||
|
|
|
@ -3,11 +3,6 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
"${agsConfigDir}/config/icons/mouse-razer-symbolic.svg".source = pkgs.fetchurl {
|
|
||||||
url = "https://raw.githubusercontent.com/bithatch/razer-icon-font/main/src/devices/mouse.svg";
|
|
||||||
hash = "sha256-A1+eIp2VEFDyY23GIHKhbnByHXrnVS3QgIJ9sjjtuZw=";
|
|
||||||
};
|
|
||||||
|
|
||||||
"${agsConfigDir}/config/icons/down-large-symbolic.svg".source = pkgs.fetchurl {
|
"${agsConfigDir}/config/icons/down-large-symbolic.svg".source = pkgs.fetchurl {
|
||||||
url = "https://www.svgrepo.com/download/158537/down-chevron.svg";
|
url = "https://www.svgrepo.com/download/158537/down-chevron.svg";
|
||||||
hash = "sha256-mOfNjgZh0rt6XosKA2kpLY22lJldSS1XCphgrnvZH1s=";
|
hash = "sha256-mOfNjgZh0rt6XosKA2kpLY22lJldSS1XCphgrnvZH1s=";
|
||||||
|
|
|
@ -8,15 +8,7 @@
|
||||||
inherit (osConfig.vars) mainMonitor;
|
inherit (osConfig.vars) mainMonitor;
|
||||||
|
|
||||||
miceNames = [
|
miceNames = [
|
||||||
# Wireless
|
"logitech-g502-x"
|
||||||
"razer-razer-naga-pro"
|
|
||||||
|
|
||||||
# Wired (it always changes)
|
|
||||||
"razer-razer-naga-pro-1"
|
|
||||||
"razer-naga-pro"
|
|
||||||
"razer-naga-pro-1"
|
|
||||||
"razer-naga-pro-2"
|
|
||||||
"razer-naga-pro-3"
|
|
||||||
"logitech-g502-hero-gaming-mouse"
|
"logitech-g502-hero-gaming-mouse"
|
||||||
];
|
];
|
||||||
nagaConf = name: {
|
nagaConf = name: {
|
||||||
|
|
|
@ -1,28 +1,26 @@
|
||||||
{
|
{
|
||||||
config,
|
libratbag-src,
|
||||||
lib,
|
|
||||||
pkgs,
|
pkgs,
|
||||||
|
piper-src,
|
||||||
...
|
...
|
||||||
}: let
|
}: {
|
||||||
inherit (config.vars) mainUser;
|
services.ratbagd = {
|
||||||
inherit (lib) mkIf;
|
enable = true;
|
||||||
cfgHypr =
|
|
||||||
config
|
|
||||||
.home-manager
|
|
||||||
.users
|
|
||||||
.${mainUser}
|
|
||||||
.wayland
|
|
||||||
.windowManager
|
|
||||||
.hyprland;
|
|
||||||
in {
|
|
||||||
services.ratbagd.enable = true;
|
|
||||||
|
|
||||||
# HOME-MANAGER CONFIG
|
package = pkgs.libratbag.overrideAttrs {
|
||||||
home-manager.users.${mainUser} = {
|
version = libratbag-src.shortRev;
|
||||||
home.packages = with pkgs; [piper];
|
src = libratbag-src;
|
||||||
|
|
||||||
wayland.windowManager.hyprland = mkIf (cfgHypr.enable) {
|
|
||||||
# settings.exec-once = [""];
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
(piper.overrideAttrs {
|
||||||
|
name = "piper-${piper-src.shortRev}";
|
||||||
|
src = piper-src;
|
||||||
|
|
||||||
|
mesonFlags = [
|
||||||
|
"-Druntime-dependency-checks=false"
|
||||||
|
];
|
||||||
|
})
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,35 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
inherit (config.vars) mainUser;
|
|
||||||
inherit (lib) mkIf;
|
|
||||||
|
|
||||||
cfgHypr =
|
|
||||||
config
|
|
||||||
.home-manager
|
|
||||||
.users
|
|
||||||
.${mainUser}
|
|
||||||
.wayland
|
|
||||||
.windowManager
|
|
||||||
.hyprland;
|
|
||||||
in {
|
|
||||||
hardware.openrazer = {
|
|
||||||
enable = true;
|
|
||||||
users = [mainUser];
|
|
||||||
};
|
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
openrazer-daemon
|
|
||||||
polychromatic
|
|
||||||
];
|
|
||||||
|
|
||||||
# HOME-MANAGER CONFIG
|
|
||||||
home-manager.users.${mainUser} = {
|
|
||||||
wayland.windowManager.hyprland = mkIf (cfgHypr.enable) {
|
|
||||||
settings.exec-once = ["polychromatic-tray-applet"];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
Loading…
Reference in a new issue