nichts/modules/gui/vivado2.nix

58 lines
2 KiB
Nix
Raw Normal View History

2024-04-12 19:45:13 +02:00
{ config, lib, pkgs, ...}:
2024-04-14 22:14:28 +02:00
with lib;
2024-04-12 19:45:13 +02:00
let
vivado-desktop-symbol = pkgs.makeDesktopItem {
2024-04-14 22:14:28 +02:00
name = "vivado-2022_2";
desktopName = "Vivado";
exec = "${pkgs.nur.repos.lschuermann.vivado-2022_2}/bin/vivado";
2024-04-12 19:45:13 +02:00
};
2024-04-14 22:14:28 +02:00
cfg = config.modules.programs.vivado;
username = config.modules.other.system.username;
2024-04-12 19:45:13 +02:00
in
{
2024-04-12 22:03:29 +02:00
options.modules.programs.vivado.enable = mkEnableOption "vivado";
2024-04-12 19:45:13 +02:00
config = mkIf cfg.enable {
2024-04-14 22:14:28 +02:00
environment.systemPackages = with pkgs; [
# this propietary software is huge, but I need it for
# university
pkgs.nur.repos.lschuermann.vivado-2022_2
vivado-desktop-symbol
];
2024-04-12 19:45:13 +02:00
2024-04-14 22:14:28 +02:00
# Create udev rules. Reference: https://blog.kotatsu.dev/posts/2021-09-14-vivado-on-nixos/
services.udev.packages = [
(pkgs.writeTextFile {
name = "xilinx-dilligent-usb-udev";
destination = "/etc/udev/rules.d/52-xilinx-digilent-usb.rules";
text = ''
ATTR{idVendor}=="1443", MODE:="666"
ACTION=="add", ATTR{idVendor}=="0403", ATTR{manufacturer}=="Digilent", MODE:="666"
'';
})
(pkgs.writeTextFile {
name = "xilinx-pcusb-udev";
destination = "/etc/udev/rules.d/52-xilinx-pcusb.rules";
text = ''
ATTR{idVendor}=="03fd", ATTR{idProduct}=="0008", MODE="666"
ATTR{idVendor}=="03fd", ATTR{idProduct}=="0007", MODE="666"
ATTR{idVendor}=="03fd", ATTR{idProduct}=="0009", MODE="666"
ATTR{idVendor}=="03fd", ATTR{idProduct}=="000d", MODE="666"
ATTR{idVendor}=="03fd", ATTR{idProduct}=="000f", MODE="666"
ATTR{idVendor}=="03fd", ATTR{idProduct}=="0013", MODE="666"
ATTR{idVendor}=="03fd", ATTR{idProduct}=="0015", MODE="666"
'';
})
(pkgs.writeTextFile {
name = "xilinx-ftdi-usb-udev";
destination = "/etc/udev/rules.d/52-xilinx-ftdi-usb.rules";
text = ''
ACTION=="add", ATTR{idVendor}=="0403", ATTR{manufacturer}=="Xilinx", MODE:="666"
'';
})
];
2024-04-12 19:45:13 +02:00
};
}