mirror of
https://github.com/Theaninova/TheaninovOS.git
synced 2025-12-11 02:56:27 +00:00
Compare commits
7 Commits
37b65c6b7f
...
7f5076755c
| Author | SHA1 | Date | |
|---|---|---|---|
|
7f5076755c
|
|||
|
e414e3ac7b
|
|||
|
3fd867084a
|
|||
|
abace8ec55
|
|||
|
af6f381e49
|
|||
|
876650cf2e
|
|||
|
d570d170f0
|
50
flake.lock
generated
50
flake.lock
generated
@@ -8,11 +8,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1743550720,
|
||||
"narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=",
|
||||
"lastModified": 1751413152,
|
||||
"narHash": "sha256-Tyw1RjYEsp5scoigs1384gIg6e0GoBVjms4aXFfRssQ=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "c621e8422220273271f52058f618c94e405bb0f5",
|
||||
"rev": "77826244401ea9de6e3bac47c2db46005e1f30b5",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -79,11 +79,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1749479111,
|
||||
"narHash": "sha256-0cn4NGnYR3n0m8FPrt+pW817Cedi4vwOw3SgJaTcdcg=",
|
||||
"lastModified": 1753181343,
|
||||
"narHash": "sha256-CLQfNtUqirNVSYoW/kYbvL4PeeNasmZonaPnjO3+1YQ=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "35e1f5a7c29f2b05e8f53177f6b5c71108c5f4c3",
|
||||
"rev": "0cdfcdbb525b77b951c889b6131047bc374f48fe",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -123,15 +123,15 @@
|
||||
"lix": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1746827285,
|
||||
"narHash": "sha256-hsFe4Tsqqg4l+FfQWphDtjC79WzNCZbEFhHI8j2KJzw=",
|
||||
"rev": "47aad376c87e2e65967f17099277428e4b3f8e5a",
|
||||
"lastModified": 1753223229,
|
||||
"narHash": "sha256-tkT4aCZZE6IEmjYotOzKKa2rV3pGpH3ZREeQn7ACgdU=",
|
||||
"rev": "7ac20fc47cf2f1b7469c7a2f379e5a3a51a6789a",
|
||||
"type": "tarball",
|
||||
"url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/47aad376c87e2e65967f17099277428e4b3f8e5a.tar.gz?rev=47aad376c87e2e65967f17099277428e4b3f8e5a"
|
||||
"url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/7ac20fc47cf2f1b7469c7a2f379e5a3a51a6789a.tar.gz?rev=7ac20fc47cf2f1b7469c7a2f379e5a3a51a6789a"
|
||||
},
|
||||
"original": {
|
||||
"type": "tarball",
|
||||
"url": "https://git.lix.systems/lix-project/lix/archive/2.93.0.tar.gz"
|
||||
"url": "https://git.lix.systems/lix-project/lix/archive/release-2.93.tar.gz"
|
||||
}
|
||||
},
|
||||
"lix-module": {
|
||||
@@ -144,15 +144,15 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1746838955,
|
||||
"narHash": "sha256-11R4K3iAx4tLXjUs+hQ5K90JwDABD/XHhsM9nkeS5N8=",
|
||||
"rev": "cd2a9c028df820a83ca2807dc6c6e7abc3dfa7fc",
|
||||
"lastModified": 1753282722,
|
||||
"narHash": "sha256-KYMUrTV7H/RR5/HRnjV5R3rRIuBXMemyJzTLi50NFTs=",
|
||||
"rev": "46a9e8fcfe4be72b4c7c8082ee11d2c42da1e873",
|
||||
"type": "tarball",
|
||||
"url": "https://git.lix.systems/api/v1/repos/lix-project/nixos-module/archive/cd2a9c028df820a83ca2807dc6c6e7abc3dfa7fc.tar.gz"
|
||||
"url": "https://git.lix.systems/api/v1/repos/lix-project/nixos-module/archive/46a9e8fcfe4be72b4c7c8082ee11d2c42da1e873.tar.gz?rev=46a9e8fcfe4be72b4c7c8082ee11d2c42da1e873"
|
||||
},
|
||||
"original": {
|
||||
"type": "tarball",
|
||||
"url": "https://git.lix.systems/lix-project/nixos-module/archive/2.93.0.tar.gz"
|
||||
"url": "https://git.lix.systems/lix-project/nixos-module/archive/2.93.3-1.tar.gz"
|
||||
}
|
||||
},
|
||||
"matugen": {
|
||||
@@ -195,11 +195,11 @@
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1749285348,
|
||||
"narHash": "sha256-frdhQvPbmDYaScPFiCnfdh3B/Vh81Uuoo0w5TkWmmjU=",
|
||||
"lastModified": 1752950548,
|
||||
"narHash": "sha256-NS6BLD0lxOrnCiEOcvQCDVPXafX1/ek1dfJHX1nUIzc=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "3e3afe5174c561dee0df6f2c2b2236990146329f",
|
||||
"rev": "c87b95e25065c028d31a94f06a62927d18763fdf",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -219,11 +219,11 @@
|
||||
"systems": "systems_4"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1749420898,
|
||||
"narHash": "sha256-QiB3xDyHuj2VzS6AaALTeikLt6EsZyMjDRmzb4y2vFM=",
|
||||
"lastModified": 1752976861,
|
||||
"narHash": "sha256-59HcrqHfbSJUdmpzrAa9x8fW1PoS+ZGhCjL5k5HbyV8=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixvim",
|
||||
"rev": "2b6f694b48f43bbd89dcc21e8aa7aa676eb18eb8",
|
||||
"rev": "0c50ed9349199219583cb1ed1a972d71e06039ec",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -242,11 +242,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1748298102,
|
||||
"narHash": "sha256-PP11GVwUt7F4ZZi5A5+99isuq39C59CKc5u5yVisU/U=",
|
||||
"lastModified": 1749730855,
|
||||
"narHash": "sha256-L3x2nSlFkXkM6tQPLJP3oCBMIsRifhIDPMQQdHO5xWo=",
|
||||
"owner": "NuschtOS",
|
||||
"repo": "search",
|
||||
"rev": "f8a1c221afb8b4c642ed11ac5ee6746b0fe1d32f",
|
||||
"rev": "8dfe5879dd009ff4742b668d9c699bc4b9761742",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
||||
10
flake.nix
10
flake.nix
@@ -2,7 +2,7 @@
|
||||
inputs = {
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||
lix-module = {
|
||||
url = "https://git.lix.systems/lix-project/nixos-module/archive/2.93.0.tar.gz";
|
||||
url = "https://git.lix.systems/lix-project/nixos-module/archive/2.93.3-1.tar.gz";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
home-manager = {
|
||||
@@ -50,6 +50,14 @@
|
||||
lpc21isp = prev.callPackage ./overlays/lpc21isp { };
|
||||
rquickshare = prev.callPackage ./overlays/rquickshare { };
|
||||
rastertokpsl-re = prev.callPackage ./overlays/rastertokpsl-re { };
|
||||
usb-sniffer = prev.callPackage ./overlays/usb-sniffer { };
|
||||
wireshark = prev.wireshark.overrideAttrs (
|
||||
finalAttrs: prevAttrs: {
|
||||
postInstall = prevAttrs.postInstall + ''
|
||||
ln -s ${final.usb-sniffer}/bin/usb_sniffer $out/lib/wireshark/extcap/usb_sniffer
|
||||
'';
|
||||
}
|
||||
);
|
||||
plymouth = prev.plymouth.overrideAttrs (
|
||||
final: prev: {
|
||||
patches = prev.patches ++ [ ./overlays/plymouth/drm-close-fb.patch ];
|
||||
|
||||
@@ -44,9 +44,8 @@
|
||||
};
|
||||
|
||||
shell.components = {
|
||||
#dunst.enable = true;
|
||||
firefox-pip.enable = true;
|
||||
flameshot.enable = true;
|
||||
grimblast.enable = true;
|
||||
gnome-keyring.enable = true;
|
||||
hyprpicker.enable = true;
|
||||
kde-connect.enable = true;
|
||||
@@ -79,7 +78,10 @@
|
||||
|
||||
airprint.enable = true;
|
||||
|
||||
udev.packages = with pkgs; [ android-udev-rules ];
|
||||
udev.packages = with pkgs; [
|
||||
android-udev-rules
|
||||
usb-sniffer
|
||||
];
|
||||
};
|
||||
|
||||
hardware = {
|
||||
@@ -87,6 +89,7 @@
|
||||
audio.preset.pipewire.enable = true;
|
||||
cc1.enable = true;
|
||||
fv43u.enable = true;
|
||||
astro-a50.enable = true;
|
||||
# virtual-camera.enable = true;
|
||||
# hid-fanatecff.enable = true;
|
||||
|
||||
@@ -98,6 +101,31 @@
|
||||
};
|
||||
};
|
||||
|
||||
virtualisation.oci-containers.containers = {
|
||||
statech = {
|
||||
image = "eclipse-temurin:21-jre";
|
||||
volumes = [ "/home/theaninova/.config/statech:/statech" ];
|
||||
environment = { };
|
||||
ports = [ "25565:25565" ];
|
||||
workdir = "/statech";
|
||||
entrypoint = "/bin/bash";
|
||||
cmd = [ "start.sh" ];
|
||||
extraOptions = [ "--network=host" ];
|
||||
};
|
||||
/*
|
||||
craftoria = {
|
||||
image = "eclipse-temurin:21-jre";
|
||||
volumes = [ "/home/theaninova/.config/craftoria:/craftoria" ];
|
||||
environment = { };
|
||||
ports = [ "25565:25565" ];
|
||||
workdir = "/craftoria";
|
||||
entrypoint = "/bin/bash";
|
||||
cmd = [ "startserver.sh" ];
|
||||
extraOptions = [ "--network=host" ];
|
||||
};
|
||||
*/
|
||||
};
|
||||
|
||||
fonts = {
|
||||
fira-code = {
|
||||
enable = true;
|
||||
@@ -107,6 +135,7 @@
|
||||
enable = true;
|
||||
default = true;
|
||||
};
|
||||
open-dyslexic.enable = true;
|
||||
nerd-fonts.enable = true;
|
||||
};
|
||||
|
||||
@@ -145,6 +174,7 @@
|
||||
usbutils
|
||||
usbimager
|
||||
uhubctl
|
||||
usb-sniffer
|
||||
pciutils
|
||||
htop
|
||||
unar
|
||||
@@ -167,7 +197,13 @@
|
||||
];
|
||||
|
||||
networking = {
|
||||
firewall.allowedUDPPorts = [ 50765 ];
|
||||
firewall = {
|
||||
allowedTCPPorts = [ 25565 ];
|
||||
allowedUDPPorts = [
|
||||
25565
|
||||
50765
|
||||
];
|
||||
};
|
||||
|
||||
networkmanager = {
|
||||
enable = true;
|
||||
|
||||
@@ -55,8 +55,8 @@
|
||||
|
||||
shell.components = {
|
||||
firefox-pip.enable = true;
|
||||
flameshot.enable = true;
|
||||
gnome-keyring.enable = true;
|
||||
grimblast.enable = true;
|
||||
hyprpicker.enable = true;
|
||||
kde-connect.enable = true;
|
||||
kitty.enable = true;
|
||||
@@ -86,31 +86,13 @@
|
||||
cc1.enable = true;
|
||||
|
||||
nvidia = {
|
||||
modesetting.enable = true;
|
||||
powerManagement.enable = false;
|
||||
open = true;
|
||||
nvidiaSettings = false;
|
||||
nvidiaPersistenced = false;
|
||||
preset.proprietary.enable = true;
|
||||
prime = {
|
||||
/*
|
||||
offload = {
|
||||
enable = true;
|
||||
enableOffloadCmd = true;
|
||||
};
|
||||
*/
|
||||
sync.enable = true;
|
||||
reverseSync.enable = true;
|
||||
intelBusId = "PCI:0:2:0";
|
||||
nvidiaBusId = "PCI:1:0:0";
|
||||
};
|
||||
};
|
||||
graphics = {
|
||||
enable = true;
|
||||
enable32Bit = true;
|
||||
extraPackages = with pkgs; [
|
||||
libvdpau-va-gl
|
||||
nvidia-vaapi-driver
|
||||
];
|
||||
};
|
||||
|
||||
enableAllFirmware = true;
|
||||
bluetooth = {
|
||||
@@ -120,11 +102,9 @@
|
||||
};
|
||||
|
||||
fonts = {
|
||||
fira-code = {
|
||||
enable = true;
|
||||
default = true;
|
||||
};
|
||||
noto-sans = {
|
||||
fira-code.enable = true;
|
||||
noto-sans.enable = true;
|
||||
open-dyslexic = {
|
||||
enable = true;
|
||||
default = true;
|
||||
};
|
||||
|
||||
@@ -10,7 +10,10 @@
|
||||
};
|
||||
programs.zoxide.enable = true;
|
||||
home = {
|
||||
packages = with pkgs; [ blueman ];
|
||||
packages = with pkgs; [
|
||||
blueman
|
||||
kdePackages.okular
|
||||
];
|
||||
};
|
||||
wayland.windowManager.hyprland.settings.monitor = [
|
||||
"eDP-1,3840x2160@60,0x0,2"
|
||||
|
||||
@@ -76,7 +76,6 @@ in
|
||||
# qt/kde packages
|
||||
qt6.qtwayland
|
||||
qt5.qtwayland
|
||||
kdePackages.breeze-icons
|
||||
# gnome packages
|
||||
evince
|
||||
baobab
|
||||
@@ -90,7 +89,10 @@ in
|
||||
xorg.xrandr
|
||||
];
|
||||
|
||||
gtk.enable = true;
|
||||
gtk = {
|
||||
enable = true;
|
||||
font.name = builtins.elemAt osConfig.fonts.fontconfig.defaultFonts.sansSerif 0;
|
||||
};
|
||||
qt.enable = true;
|
||||
|
||||
home.pointerCursor = {
|
||||
|
||||
@@ -8,8 +8,10 @@
|
||||
./fonts/fira-code.nix
|
||||
./fonts/noto-sans.nix
|
||||
./fonts/nerd-fonts.nix
|
||||
./fonts/open-dyslexic.nix
|
||||
|
||||
./hardware/hid-fanatecff.nix
|
||||
./hardware/astro-a50.nix
|
||||
./hardware/audio.nix
|
||||
./hardware/gbmonctl.nix
|
||||
./hardware/nvidia-proprietary.nix
|
||||
@@ -33,6 +35,7 @@
|
||||
./shell/firefox-pip.nix
|
||||
./shell/flameshot.nix
|
||||
./shell/gnome-keyring.nix
|
||||
./shell/grimblast.nix
|
||||
./shell/hyprpicker.nix
|
||||
./shell/kde-connect.nix
|
||||
./shell/kitty.nix
|
||||
|
||||
40
modules/nixos/fonts/open-dyslexic.nix
Normal file
40
modules/nixos/fonts/open-dyslexic.nix
Normal file
@@ -0,0 +1,40 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.fonts.open-dyslexic;
|
||||
in
|
||||
{
|
||||
options.fonts.open-dyslexic = {
|
||||
enable = mkEnableOption "Enable the OpenDyslexic font";
|
||||
default = mkOption {
|
||||
type = types.bool;
|
||||
description = "Make Noto Sans the default sans-serif font";
|
||||
default = false;
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
fonts = {
|
||||
packages =
|
||||
with pkgs;
|
||||
[
|
||||
open-dyslexic
|
||||
]
|
||||
++ (if (config.fonts.nerd-fonts.enable) then [ nerd-fonts.open-dyslexic ] else [ ]);
|
||||
fontconfig.defaultFonts = {
|
||||
sansSerif = mkIf cfg.default [
|
||||
(if (config.fonts.nerd-fonts.enable) then "OpenDyslexic Nerd Font" else "OpenDyslexic")
|
||||
];
|
||||
monospace = mkIf cfg.default [
|
||||
(if (config.fonts.nerd-fonts.enable) then "OpenDyslexicM Nerd Font" else "OpenDyslexicM")
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
11
modules/nixos/hardware/astro-a50-harman.txt
Normal file
11
modules/nixos/hardware/astro-a50-harman.txt
Normal file
@@ -0,0 +1,11 @@
|
||||
Preamp: -4.08 dB
|
||||
Filter 1: ON LSC Fc 105.0 Hz Gain 3.9 dB Q 0.70
|
||||
Filter 2: ON PK Fc 51.8 Hz Gain -4.3 dB Q 0.81
|
||||
Filter 3: ON PK Fc 1118.3 Hz Gain -2.5 dB Q 3.36
|
||||
Filter 4: ON PK Fc 2620.0 Hz Gain -0.9 dB Q 3.24
|
||||
Filter 5: ON PK Fc 3300.0 Hz Gain 0.9 dB Q 5.82
|
||||
Filter 6: ON PK Fc 3859.3 Hz Gain 4.1 dB Q 3.08
|
||||
Filter 7: ON PK Fc 5115.7 Hz Gain 0.8 dB Q 5.14
|
||||
Filter 8: ON PK Fc 6116.7 Hz Gain -3.4 dB Q 3.42
|
||||
Filter 9: ON PK Fc 7416.1 Hz Gain -0.8 dB Q 4.16
|
||||
Filter 10: ON HSC Fc 10000.0 Hz Gain 0.3 dB Q 0.70
|
||||
73
modules/nixos/hardware/astro-a50.nix
Normal file
73
modules/nixos/hardware/astro-a50.nix
Normal file
@@ -0,0 +1,73 @@
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
username,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.hardware.astro-a50;
|
||||
in
|
||||
{
|
||||
options.hardware.astro-a50 = {
|
||||
enable = mkEnableOption "Enable optimisations for the Logitech Astro A50 headset";
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
home-manager.users.${username} =
|
||||
let
|
||||
name = "Astro A50";
|
||||
nick = "A50";
|
||||
filter = bitrate: {
|
||||
"media.class" = "Audio/Sink";
|
||||
"alsa.components" = "USB046d:0b1c";
|
||||
"alsa.resolution_bits" = bitrate;
|
||||
};
|
||||
nodeNameIn = "astro-a50-eq-harman-in";
|
||||
in
|
||||
{
|
||||
home.packages = with pkgs; [ zam-plugins ];
|
||||
xdg.configFile = {
|
||||
"wireplumber/wireplumber.conf.d/51-astro-a50.conf".text = builtins.toJSON {
|
||||
"monitor.alsa.rules" = [
|
||||
{
|
||||
matches = [ (filter 16) ];
|
||||
actions.update-props = {
|
||||
"node.description" = "${name} Chat";
|
||||
"node.nick" = "${nick} Chat";
|
||||
};
|
||||
}
|
||||
{
|
||||
matches = [ (filter 24) ];
|
||||
actions.update-props = {
|
||||
"node.description" = name;
|
||||
"node.nick" = nick;
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
"pipewire/pipewire.conf.d/51-a50-eq.conf".text = builtins.toJSON {
|
||||
"context.modules" = [
|
||||
{
|
||||
name = "libpipewire-module-parametric-equalizer";
|
||||
args = {
|
||||
"equalizer.filepath" = builtins.toString ./astro-a50-harman.txt;
|
||||
"equalizer.description" = "${name} (Harman EQ)";
|
||||
"capture.props" = {
|
||||
"node.name" = nodeNameIn;
|
||||
"filter.smart" = true;
|
||||
"filter.smart.target" = filter 24;
|
||||
};
|
||||
"playback.props" = {
|
||||
"node.name" = "EQ Output";
|
||||
};
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -2,6 +2,7 @@
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
username,
|
||||
...
|
||||
}:
|
||||
with lib;
|
||||
@@ -27,10 +28,6 @@ in
|
||||
services.xserver.videoDrivers = [ "nvidia" ];
|
||||
|
||||
boot = {
|
||||
kernelParams = [
|
||||
"fbdev=1"
|
||||
"nvidia_drm.fbdev=1"
|
||||
];
|
||||
kernelModules = [
|
||||
"nvidia"
|
||||
"nvidia_modeset"
|
||||
@@ -55,6 +52,10 @@ in
|
||||
nvidiaPersistenced = false;
|
||||
};
|
||||
|
||||
home-manager.users.${username}.wayland.windowManager.hyprland.settings = {
|
||||
cursor.no_hardware_cursors = true;
|
||||
};
|
||||
|
||||
environment = {
|
||||
variables = {
|
||||
VDPAU_DRIVER = "va_gl";
|
||||
|
||||
36
modules/nixos/shell/grimblast.nix
Normal file
36
modules/nixos/shell/grimblast.nix
Normal file
@@ -0,0 +1,36 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
username,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
cfg = config.shell.components.grimblast;
|
||||
in
|
||||
{
|
||||
options.shell.components.grimblast = {
|
||||
enable = lib.mkEnableOption (lib.mdDoc "Enable pre-configured grimblast");
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
home-manager.users.${username} = {
|
||||
wayland.windowManager.hyprland = {
|
||||
settings = {
|
||||
bind = [
|
||||
"SUPER_SHIFT,V,exec,uwsm app -- ${lib.getExe pkgs.grimblast} --freeze copy area"
|
||||
];
|
||||
};
|
||||
};
|
||||
home = {
|
||||
# bugged, freezes
|
||||
sessionVariables.GRIMBLAST_EDITOR = "${lib.getExe pkgs.annotator}";
|
||||
packages = with pkgs; [
|
||||
grimblast
|
||||
annotator
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -35,7 +35,6 @@ in
|
||||
pkgs: with pkgs; [
|
||||
libgudev
|
||||
libvdpau
|
||||
libsoup_2_4
|
||||
];
|
||||
})
|
||||
rpcs3
|
||||
|
||||
35
overlays/usb-sniffer/default.nix
Normal file
35
overlays/usb-sniffer/default.nix
Normal file
@@ -0,0 +1,35 @@
|
||||
{
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
pkg-config,
|
||||
libusb1,
|
||||
}:
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "usb_sniffer";
|
||||
version = "1d01a090";
|
||||
src = fetchFromGitHub {
|
||||
owner = "ataradov";
|
||||
repo = "usb-sniffer";
|
||||
rev = "6eb214825a345c8caeb84bb8f3f2881948348d09";
|
||||
hash = "sha256-RpIhNrZXNeUZdh3QHk1KI5Fk8S0MzlYQ4hf4ztnHUII=";
|
||||
};
|
||||
sourceRoot = "${src.name}/software";
|
||||
buildInputs = [
|
||||
pkg-config
|
||||
libusb1
|
||||
];
|
||||
patchPhase = ''
|
||||
substituteInPlace Makefile \
|
||||
--replace-fail '~/.local/lib/wireshark/extcap' \
|
||||
'${placeholder "out"}/bin/${pname}'
|
||||
'';
|
||||
preInstall = ''
|
||||
mkdir -p $out/bin
|
||||
'';
|
||||
postInstall = ''
|
||||
mkdir -p $out/lib/wireshark/extcap
|
||||
ln -s ${placeholder "out"}/bin/${pname} $out/lib/wireshark/extcap/usb_sniffer
|
||||
mkdir -p $out/lib/udev/rules.d
|
||||
cp ${src}/bin/90-usb-sniffer.rules $out/lib/udev/rules.d/90-usb-sniffer.rules
|
||||
'';
|
||||
}
|
||||
Reference in New Issue
Block a user