feat: use nixfmt

This commit is contained in:
2024-03-26 17:44:14 +01:00
parent 59e6ed992a
commit 3ad3491970
29 changed files with 444 additions and 558 deletions

154
flake.nix
View File

@@ -18,88 +18,82 @@
hyprland.url = "github:hyprwm/hyprland"; hyprland.url = "github:hyprwm/hyprland";
}; };
outputs = { outputs =
nixpkgs, { nixpkgs, nur, home-manager, ags, nixvim, anyrun, hyprland, ... }@inputs:
nur, let
home-manager, inherit (nixpkgs.lib) genAttrs listToAttrs;
ags, eachSystem = genAttrs [ "x86_64-linux" ];
nixvim, legacyPackages = eachSystem (system:
anyrun, import nixpkgs {
hyprland, inherit system;
... config = {
} @ inputs: let allowUnfree = true;
inherit (nixpkgs.lib) genAttrs listToAttrs; allowUnsupportedSystem = true;
eachSystem = genAttrs ["x86_64-linux"]; experimental-features = "nix-command flakes";
legacyPackages = eachSystem (system: substituters = [
import nixpkgs { "https://hyprland.cachix.org"
inherit system; "https://cuda-maintainers.cachix.org"
config = { ];
allowUnfree = true; trusted-public-keys = [
allowUnsupportedSystem = true; "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
experimental-features = "nix-command flakes"; "cuda-maintainers.cachix.org-1:0dq3bujKpuEPMCX6U4WylrUDZ9JyUG0VpVZa7CNfq5E="
substituters = ["https://hyprland.cachix.org" "https://cuda-maintainers.cachix.org"]; ];
trusted-public-keys = [ };
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" overlays = [
"cuda-maintainers.cachix.org-1:0dq3bujKpuEPMCX6U4WylrUDZ9JyUG0VpVZa7CNfq5E=" nur.overlay
]; (final: prev: {
}; anyrunPlugins = anyrun.packages.${prev.system};
overlays = [ hyprland = hyprland.packages.${prev.system}.hyprland;
nur.overlay xdg-desktop-portal-hyprland =
(final: prev: { hyprland.packages.${prev.system}.xdg-desktop-portal-hyprland;
anyrunPlugins = anyrun.packages.${prev.system}; ags = ags.packages.${prev.system}.default;
hyprland = hyprland.packages.${prev.system}.hyprland; gbmonctl = prev.callPackage ./overlays/gbmonctl { };
xdg-desktop-portal-hyprland = hyprland.packages.${prev.system}.xdg-desktop-portal-hyprland; lpc21isp = prev.callPackage ./overlays/lpc21isp { };
ags = ags.packages.${prev.system}.default; cura = prev.appimageTools.wrapType2 rec {
gbmonctl = prev.callPackage ./overlays/gbmonctl {}; name = "cura";
lpc21isp = prev.callPackage ./overlays/lpc21isp {}; version = "5.6.0";
cura = prev.appimageTools.wrapType2 rec { src = prev.fetchurl {
name = "cura"; url =
version = "5.6.0"; "https://github.com/Ultimaker/Cura/releases/download/${version}/UltiMaker-Cura-${version}-linux-X64.AppImage";
src = prev.fetchurl { hash = "sha256-EHiWoNpLKHPzv6rZrtNgEr7y//iVcRYeV/TaCn8QpEA=";
url = "https://github.com/Ultimaker/Cura/releases/download/${version}/UltiMaker-Cura-${version}-linux-X64.AppImage"; };
hash = "sha256-EHiWoNpLKHPzv6rZrtNgEr7y//iVcRYeV/TaCn8QpEA="; extraPkgs = pkgs: with pkgs; [ ];
}; };
extraPkgs = pkgs: with pkgs; []; })
}; ];
}) });
];
});
mkHost = { mkHost = { hostname, username, desktop, system, stateVersion, }:
hostname, nixpkgs.lib.nixosSystem {
username, pkgs = legacyPackages.${system};
desktop, modules = [
system, ./modules/nixos/hid-fanatecff
stateVersion, ./modules/nixos/gbmonctl
}: ./hosts/${hostname}
nixpkgs.lib.nixosSystem { home-manager.nixosModules.home-manager
pkgs = legacyPackages.${system}; {
modules = [ _module.args = { inherit username; };
./modules/nixos/hid-fanatecff networking.hostName = hostname;
./modules/nixos/gbmonctl system.stateVersion = stateVersion;
./hosts/${hostname} home-manager = {
home-manager.nixosModules.home-manager useGlobalPkgs = true;
{ useUserPackages = true;
_module.args = {inherit username;}; extraSpecialArgs = {
networking.hostName = hostname; inherit username desktop stateVersion inputs;
system.stateVersion = stateVersion; };
home-manager = { users.${username} = import ./home;
useGlobalPkgs = true; };
useUserPackages = true; }
extraSpecialArgs = {inherit username desktop stateVersion inputs;}; ];
users.${username} = import ./home; specialArgs = inputs;
}; };
} in {
]; nixosConfigurations.MONSTER = mkHost {
specialArgs = inputs; hostname = "MONSTER";
username = "theaninova";
desktop = "hyprland";
system = "x86_64-linux";
stateVersion = "23.05";
}; };
in {
nixosConfigurations.MONSTER = mkHost {
hostname = "MONSTER";
username = "theaninova";
desktop = "hyprland";
system = "x86_64-linux";
stateVersion = "23.05";
}; };
};
} }

View File

@@ -1,4 +1,4 @@
{config, ...}: { { config, ... }: {
xdg.enable = true; xdg.enable = true;
xdg.userDirs.enable = true; xdg.userDirs.enable = true;
home.sessionVariables = { home.sessionVariables = {
@@ -7,7 +7,8 @@
NPM_CONFIG_CACHE = "${config.xdg.cacheHome}/npm"; NPM_CONFIG_CACHE = "${config.xdg.cacheHome}/npm";
NPM_CONFIG_TMP = "${config.xdg.stateHome}/npm"; NPM_CONFIG_TMP = "${config.xdg.stateHome}/npm";
WINEPREFIX = "${config.xdg.configHome}/wineprefixes/default"; WINEPREFIX = "${config.xdg.configHome}/wineprefixes/default";
_JAVA_OPTGRADLE_USER_HOMEIONS = ''-Djava.util.prefs.userRoot="${config.xdg.configHome}"/java''; _JAVA_OPTGRADLE_USER_HOMEIONS =
''-Djava.util.prefs.userRoot="${config.xdg.configHome}"/java'';
GRADLE_USER_HOME = "${config.xdg.configHome}/gradle"; GRADLE_USER_HOME = "${config.xdg.configHome}/gradle";
DVDCSS_CACHE = "${config.xdg.cacheHome}/dvdcss"; DVDCSS_CACHE = "${config.xdg.cacheHome}/dvdcss";
DOCKER_CONFIG = "${config.xdg.configHome}/docker"; DOCKER_CONFIG = "${config.xdg.configHome}/docker";

View File

@@ -1,11 +1,4 @@
{ { username, desktop, stateVersion, osConfig, inputs, ... }: rec {
username,
desktop,
stateVersion,
osConfig,
inputs,
...
}: rec {
home = { home = {
inherit username stateVersion; inherit username stateVersion;
homeDirectory = "/home/${username}"; homeDirectory = "/home/${username}";

View File

@@ -0,0 +1,39 @@
* {
font-family: "NotoSans NF";
}
window#window {
background: transparent;
}
box#main {
background: rgba(48, 52, 70, 0.4);
box-shadow: 0 0 15px rgba(0, 0, 0, 0.29);
border-radius: 24px;
}
entry#entry {
border: none;
box-shadow: none;
padding: 8px 24px;
}
entry#entry,
list#main {
border-radius: 24px;
background: transparent;
}
row#match {
border-radius: 8px;
padding: 0 4px;
}
row#plugin {
border-radius: 16px;
padding: 16px;
}
list#plugin {
background: transparent;
}

View File

@@ -1,4 +1,4 @@
{pkgs}: { { pkgs }: {
enable = true; enable = true;
config = { config = {
plugins = with pkgs.anyrunPlugins; [ plugins = with pkgs.anyrunPlugins; [
@@ -11,49 +11,5 @@
y.fraction = 0.2; y.fraction = 0.2;
closeOnClick = true; closeOnClick = true;
}; };
extraCss = extraCss = builtins.readFile ./anyrun.css;
/*
css
*/
''
* {
font-family: "NotoSans NF";
}
window#window {
background: transparent;
}
box#main {
background: rgba(48, 52, 70, 0.4);
box-shadow: 0 0 15px rgba(0, 0, 0, 0.29);
border-radius: 24px;
}
entry#entry {
border: none;
box-shadow: none;
padding: 8px 24px;
}
entry#entry,
list#main {
border-radius: 24px;
background: transparent;
}
row#match {
border-radius: 8px;
padding: 0 4px;
}
row#plugin {
border-radius: 16px;
padding: 16px;
}
list#plugin {
background: transparent;
}
'';
} }

View File

@@ -1,8 +1,4 @@
{ { pkgs, config, ... }: {
pkgs,
config,
...
}: {
services.darkman = let services.darkman = let
wallpaperPath = "${config.home.homeDirectory}/.local/state/wallpaper.jpg"; wallpaperPath = "${config.home.homeDirectory}/.local/state/wallpaper.jpg";
in { in {
@@ -20,7 +16,7 @@
vendorHash = "sha256-xEPmNnaDwFU4l2G4cMvtNeQ9KneF5g9ViQSFrDkrafY="; vendorHash = "sha256-xEPmNnaDwFU4l2G4cMvtNeQ9KneF5g9ViQSFrDkrafY=";
nativeBuildInputs = [pkgs.scdoc]; nativeBuildInputs = [ pkgs.scdoc ];
postPatch = '' postPatch = ''
substituteInPlace darkman.service \ substituteInPlace darkman.service \
@@ -44,10 +40,11 @@
''; '';
meta = with pkgs.lib; { meta = with pkgs.lib; {
description = "Framework for dark-mode and light-mode transitions on Linux desktop"; description =
"Framework for dark-mode and light-mode transitions on Linux desktop";
homepage = "https://gitlab.com/WhyNotHugo/darkman"; homepage = "https://gitlab.com/WhyNotHugo/darkman";
license = licenses.isc; license = licenses.isc;
maintainers = [maintainers.ajgrf]; maintainers = [ maintainers.ajgrf ];
platforms = platforms.linux; platforms = platforms.linux;
mainProgram = "darkman"; mainProgram = "darkman";
}; };
@@ -58,18 +55,14 @@
}; };
darkModeScripts = { darkModeScripts = {
kitty-theme = kitty-theme =
/* # bash
bash
*/
'' ''
${pkgs.kitty}/bin/kitty +kitten themes --reload-in=all --config-file-name ${config.home.homeDirectory}/.config/kitty/current-colors.conf Catppuccin-Frappe ${pkgs.kitty}/bin/kitty +kitten themes --reload-in=all --config-file-name ${config.home.homeDirectory}/.config/kitty/current-colors.conf Catppuccin-Frappe
''; '';
}; };
lightModeScripts = { lightModeScripts = {
kitty-theme = kitty-theme =
/* # bash
bash
*/
'' ''
${pkgs.kitty}/bin/kitty +kitten themes --reload-in=all --config-file-name ${config.home.homeDirectory}/.config/kitty/current-colors.conf Catppuccin-Latte ${pkgs.kitty}/bin/kitty +kitten themes --reload-in=all --config-file-name ${config.home.homeDirectory}/.config/kitty/current-colors.conf Catppuccin-Latte
''; '';

View File

@@ -1,18 +1,11 @@
{ { config, pkgs, lib, ... }: {
config, imports = [ ./darkman.nix ];
pkgs,
lib,
...
}: {
imports = [
./darkman.nix
];
wayland.windowManager.hyprland = { wayland.windowManager.hyprland = {
enable = true; enable = true;
systemd = { systemd = {
enable = true; enable = true;
variables = ["--all"]; variables = [ "--all" ];
}; };
settings = { settings = {
env = [ env = [
@@ -48,13 +41,8 @@
}; };
bind = import ./keybinds.nix; bind = import ./keybinds.nix;
bindm = import ./mousebinds.nix; bindm = import ./mousebinds.nix;
bindr = [ bindr = [ "SUPER,SUPER_L,exec,pkill anyrun || anyrun" ];
"SUPER,SUPER_L,exec,pkill anyrun || anyrun" monitor = [ "DP-1,highrr,0x0,1,bitdepth,8" "DP-1,addreserved,250,0,0,0" ];
];
monitor = [
"DP-1,highrr,0x0,1,bitdepth,8"
"DP-1,addreserved,250,0,0,0"
];
workspace = [ workspace = [
"special:calc,border:false,gapsout:200,on-created-empty:[noanim;silent] kitty -e qalc" "special:calc,border:false,gapsout:200,on-created-empty:[noanim;silent] kitty -e qalc"
]; ];
@@ -96,10 +84,7 @@
disable_splash_rendering = true; disable_splash_rendering = true;
force_default_wallpaper = 0; force_default_wallpaper = 0;
}; };
layerrule = [ layerrule = [ "blur, anyrun" "ignorealpha 0.3, anyrun" ];
"blur, anyrun"
"ignorealpha 0.3, anyrun"
];
decoration = { decoration = {
drop_shadow = "yes"; drop_shadow = "yes";
shadow_range = 16; shadow_range = 16;
@@ -111,7 +96,7 @@
enabled = true; enabled = true;
size = 8; size = 8;
passes = 3; passes = 3;
noise = 0.01; noise = 1.0e-2;
contrast = 0.9; contrast = 0.9;
brightness = 0.8; brightness = 0.8;
}; };
@@ -137,8 +122,9 @@
services.flameshot = { services.flameshot = {
enable = true; enable = true;
package = pkgs.flameshot.overrideAttrs (final: prev: { package = pkgs.flameshot.overrideAttrs (final: prev: {
cmakeFlags = ["-DUSE_WAYLAND_CLIPBOARD=1" "-DUSE_WAYLAND_GRIM=true"]; cmakeFlags = [ "-DUSE_WAYLAND_CLIPBOARD=1" "-DUSE_WAYLAND_GRIM=true" ];
nativeBuildInputs = prev.nativeBuildInputs ++ [pkgs.libsForQt5.kguiaddons]; nativeBuildInputs = prev.nativeBuildInputs
++ [ pkgs.libsForQt5.kguiaddons ];
}); });
settings = { settings = {
General = { General = {
@@ -158,30 +144,30 @@
systemd.user.services.ags = { systemd.user.services.ags = {
Unit = { Unit = {
Description = "ags"; Description = "ags";
PartOf = ["graphical-session.target" "tray.target"]; PartOf = [ "graphical-session.target" "tray.target" ];
}; };
Service = { Service = {
ExecStart = "${pkgs.ags}/bin/ags"; ExecStart = "${pkgs.ags}/bin/ags";
ExecReload = "${pkgs.coreutils}/bin/kill -SIGUSR2 $MAINPID"; ExecReload = "${pkgs.coreutils}/bin/kill -SIGUSR2 $MAINPID";
Restart = "always"; Restart = "always";
KillMode = "mixed"; KillMode = "mixed";
Environment = "PATH=/run/current-system/sw/bin/:${with pkgs; Environment = "PATH=/run/current-system/sw/bin/:${
lib.makeBinPath [ with pkgs;
swww lib.makeBinPath [
sassc swww
glib sassc
brightnessctl glib
ydotool brightnessctl
kitty ydotool
hyprpicker kitty
]}"; hyprpicker
}; ]
Install = { }";
WantedBy = ["graphical-session.target"];
}; };
Install = { WantedBy = [ "graphical-session.target" ]; };
}; };
programs.kitty = import ./kitty.nix {inherit pkgs;}; programs.kitty = import ./kitty.nix { inherit pkgs; };
programs.anyrun = import ./anyrun.nix {inherit pkgs;}; programs.anyrun = import ./anyrun.nix { inherit pkgs; };
services.udiskie.enable = true; services.udiskie.enable = true;
services.udiskie.tray = "never"; services.udiskie.tray = "never";
@@ -242,9 +228,7 @@
}; };
programs.fish.loginShellInit = programs.fish.loginShellInit =
/* # fish
fish
*/
'' ''
Hyprland && echo "goodbye" && exit 0 \ Hyprland && echo "goodbye" && exit 0 \
|| echo "$status couldn't launch Hyprland" && tty | grep tty1 \ || echo "$status couldn't launch Hyprland" && tty | grep tty1 \

View File

@@ -1,4 +1,4 @@
{pkgs}: { { pkgs }: {
enable = true; enable = true;
shellIntegration.enableFishIntegration = true; shellIntegration.enableFishIntegration = true;
extraConfig = '' extraConfig = ''

View File

@@ -1,4 +1 @@
[ [ "SUPER,mouse:272,movewindow" "SUPER,mouse:273,resizewindow" ]
"SUPER,mouse:272,movewindow"
"SUPER,mouse:273,resizewindow"
]

View File

@@ -1 +1 @@
{...}: {} { ... }: { }

View File

@@ -1,4 +1,4 @@
{pkgs, ...}: { { pkgs, ... }: {
xdg.configFile."ranger/rc.conf".source = ./ranger.conf; xdg.configFile."ranger/rc.conf".source = ./ranger.conf;
home.packages = with pkgs; [ home.packages = with pkgs; [
# nix # nix
@@ -25,9 +25,9 @@
bitwarden bitwarden
# chat apps # chat apps
(import ./threema-desktop.nix {inherit pkgs;}) (import ./threema-desktop.nix { inherit pkgs; })
(vesktop.override {electron = pkgs.electron_28;}) (vesktop.override { electron = pkgs.electron_28; })
(element-desktop.override {electron = pkgs.electron_28;}) (element-desktop.override { electron = pkgs.electron_28; })
slack slack
# office # office
@@ -42,9 +42,7 @@
pinta pinta
kdePackages.kdenlive kdePackages.kdenlive
# friture TODO: broken # friture TODO: broken
(blender.override { (blender.override { cudaSupport = true; })
cudaSupport = true;
})
openscad-unstable openscad-unstable
# development # development

View File

@@ -1,9 +1,4 @@
{ { lib, stdenv, fetchFromGitHub, pkgs, }:
lib,
stdenv,
fetchFromGitHub,
pkgs,
}:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "hid-fanatecff-tools"; pname = "hid-fanatecff-tools";
version = "0.1.0"; version = "0.1.0";

View File

@@ -1,3 +1 @@
[ ["@angular/language-server"]
"@angular/language-server"
]

View File

@@ -1,8 +1,6 @@
{pkgs}: { pkgs }:
pkgs.threema-desktop.overrideAttrs (prev: { pkgs.threema-desktop.overrideAttrs (prev: {
postFixup = postFixup = prev.postFixup + ''
prev.postFixup echo "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform=wayland --enable-features=WaylandWindowDecorations}}" >> $out/bin/threema
+ '' '';
echo "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform=wayland --enable-features=WaylandWindowDecorations}}" >> $out/bin/threema
'';
}) })

View File

@@ -1,8 +1,4 @@
{ { pkgs, config, ... }: {
pkgs,
config,
...
}: {
programs = { programs = {
home-manager.enable = true; home-manager.enable = true;
rbw = { rbw = {
@@ -15,14 +11,12 @@
}; };
git = import ./git.nix; git = import ./git.nix;
lazygit.enable = true; lazygit.enable = true;
nixvim = import ./nixvim {inherit pkgs;}; nixvim = import ./nixvim { inherit pkgs; };
firefox = import ./firefox.nix {inherit pkgs;}; firefox = import ./firefox.nix { inherit pkgs; };
gpg.enable = true; gpg.enable = true;
btop = { btop = {
enable = true; enable = true;
settings = { settings = { vim_keys = true; };
vim_keys = true;
};
}; };
zsh = { zsh = {
enable = true; enable = true;

View File

@@ -1,4 +1,4 @@
{pkgs}: { { pkgs }: {
enable = true; enable = true;
package = pkgs.wrapFirefox pkgs.firefox-unwrapped { package = pkgs.wrapFirefox pkgs.firefox-unwrapped {
extraPolicies = { extraPolicies = {
@@ -43,29 +43,30 @@
default = "Google"; default = "Google";
engines = { engines = {
"Nix Packages" = { "Nix Packages" = {
urls = [ urls = [{
{ template = "https://search.nixos.org/packages";
template = "https://search.nixos.org/packages"; params = [
params = [ {
{ name = "type";
name = "type"; value = "packages";
value = "packages"; }
} {
{ name = "query";
name = "query"; value = "{searchTerms}";
value = "{searchTerms}"; }
} ];
]; }];
} icon =
]; "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; definedAliases = [ "@np" ];
definedAliases = ["@np"];
}; };
"NixOS Wiki" = { "NixOS Wiki" = {
urls = [{template = "https://nixos.wiki/index.php?search={searchTerms}";}]; urls = [{
template = "https://nixos.wiki/index.php?search={searchTerms}";
}];
iconUpdateURL = "https://nixos.wiki/favicon.png"; iconUpdateURL = "https://nixos.wiki/favicon.png";
updateInterval = 24 * 60 * 60 * 1000; updateInterval = 24 * 60 * 60 * 1000;
definedAliases = ["@nw"]; definedAliases = [ "@nw" ];
}; };
"Wikipedia (en)".metaData.alias = "@wiki"; "Wikipedia (en)".metaData.alias = "@wiki";
}; };

View File

@@ -1,4 +1,4 @@
{pkgs, ...}: { { pkgs, ... }: {
home.packages = [pkgs.neovide]; home.packages = [ pkgs.neovide ];
xdg.configFile."neovide/config.toml".source = ./neovide.toml; xdg.configFile."neovide/config.toml".source = ./neovide.toml;
} }

View File

@@ -1,10 +1,9 @@
{pkgs}: let { pkgs }:
angular-ls = let
(import ../../packages/node-packages { angular-ls = (import ../../packages/node-packages {
inherit pkgs; inherit pkgs;
nodejs = pkgs.nodejs_18; nodejs = pkgs.nodejs_18;
}) })."@angular/language-server";
."@angular/language-server";
darkman = pkgs.vimUtils.buildVimPlugin { darkman = pkgs.vimUtils.buildVimPlugin {
name = "darkman"; name = "darkman";
src = pkgs.buildGoModule rec { src = pkgs.buildGoModule rec {
@@ -47,7 +46,7 @@ in {
smartindent = true; smartindent = true;
signcolumn = "yes"; signcolumn = "yes";
undodir = {__raw = "os.getenv('HOME') .. '/.config/nvim/undodir'";}; undodir = { __raw = "os.getenv('HOME') .. '/.config/nvim/undodir'"; };
undofile = true; undofile = true;
scrolloff = 12; scrolloff = 12;
@@ -68,8 +67,8 @@ in {
minimap_width = 10; minimap_width = 10;
minimap_auto_start = 1; minimap_auto_start = 1;
minimap_auto_start_win_enter = 1; minimap_auto_start_win_enter = 1;
minimap_close_buftypes = ["nofile"]; minimap_close_buftypes = [ "nofile" ];
minimap_block_filetypes = ["NvimTree"]; minimap_block_filetypes = [ "NvimTree" ];
mapleader = ";"; mapleader = ";";
@@ -110,8 +109,8 @@ in {
light = "latte"; light = "latte";
}; };
integrations.native_lsp.underlines = { integrations.native_lsp.underlines = {
errors = ["undercurl"]; errors = [ "undercurl" ];
warnings = ["undercurl"]; warnings = [ "undercurl" ];
}; };
customHighlights = builtins.readFile ./custom-highlights.lua; customHighlights = builtins.readFile ./custom-highlights.lua;
}; };
@@ -130,41 +129,37 @@ in {
right = ""; right = "";
}; };
sections = { sections = {
lualine_a = [ lualine_a = [{
{ name = "mode";
name = "mode"; separator = {
separator = { right = "";
right = ""; left = "";
left = ""; };
}; icon = "";
icon = ""; }];
}
];
lualine_x = [ lualine_x = [
{name = "fancy_lsp_servers";} { name = "fancy_lsp_servers"; }
{ {
name = "filetype"; name = "filetype";
extraConfig = {icon_only = true;}; extraConfig = { icon_only = true; };
padding = { padding = {
left = 1; left = 1;
right = 2; right = 2;
}; };
} }
]; ];
lualine_z = [ lualine_z = [{
{ name = "location";
name = "location"; separator = {
separator = { right = "";
right = ""; left = "";
left = ""; };
}; }];
}
];
}; };
}; };
auto-save = { auto-save = {
enable = true; enable = true;
triggerEvents = ["FocusLost" "BufLeave"]; triggerEvents = [ "FocusLost" "BufLeave" ];
}; };
indent-blankline = { indent-blankline = {
enable = true; enable = true;
@@ -242,20 +237,20 @@ in {
conform-nvim = { conform-nvim = {
enable = true; enable = true;
formattersByFt = { formattersByFt = {
lua = ["stylua"]; lua = [ "stylua" ];
javascript = ["prettier"]; javascript = [ "prettier" ];
markdown = ["prettier"]; markdown = [ "prettier" ];
typescript = ["prettier"]; typescript = [ "prettier" ];
json = ["prettier"]; json = [ "prettier" ];
yaml = ["prettier"]; yaml = [ "prettier" ];
html = ["prettier"]; html = [ "prettier" ];
css = ["prettier"]; css = [ "prettier" ];
scss = ["prettier"]; scss = [ "prettier" ];
less = ["prettier"]; less = [ "prettier" ];
svelte = ["prettier"]; svelte = [ "prettier" ];
rust = ["rustfmt"]; rust = [ "rustfmt" ];
bash = ["shfmt"]; bash = [ "shfmt" ];
nix = ["alejandra"]; nix = [ "nixfmt" ];
}; };
formatOnSave = { formatOnSave = {
timeoutMs = 500; timeoutMs = 500;
@@ -266,66 +261,67 @@ in {
lint = { lint = {
enable = true; enable = true;
lintersByFt = { lintersByFt = {
javascript = ["eslint"]; javascript = [ "eslint" ];
typescript = ["eslint"]; typescript = [ "eslint" ];
css = ["stylelint"]; css = [ "stylelint" ];
scss = ["stylelint"]; scss = [ "stylelint" ];
less = ["stylelint"]; less = [ "stylelint" ];
bash = ["shellcheck"]; bash = [ "shellcheck" ];
}; };
autoCmd.event = "TextChanged"; autoCmd.event = "TextChanged";
}; };
lsp = { lsp = {
enable = true; enable = true;
keymaps = {diagnostic = {};}; keymaps = { diagnostic = { }; };
enabledServers = [ enabledServers = [{
{ name = "angularls";
name = "angularls"; extraOptions = {
extraOptions = { cmd = [
cmd = [ "ngserver"
"ngserver" "--stdio"
"--stdio" "--tsProbeLocations"
"--tsProbeLocations" ""
"" "--ngProbeLocations"
"--ngProbeLocations" ""
"" ];
]; on_new_config = {
on_new_config = { __raw =
__raw = # lua
/* ''
lua function(new_config, new_root_dir)
*/ new_config.cmd = {
'' new_root_dir .. "/node_modules/@angular/language-server/bin/ngserver",
function(new_config, new_root_dir) "--stdio",
new_config.cmd = { "--tsProbeLocations",
new_root_dir .. "/node_modules/@angular/language-server/bin/ngserver", new_root_dir .. "/node_modules",
"--stdio", "--ngProbeLocations",
"--tsProbeLocations", new_root_dir .. "/node_modules",
new_root_dir .. "/node_modules", }
"--ngProbeLocations", end
new_root_dir .. "/node_modules", '';
}
end
'';
};
filetypes = ["typescript" "html" "typescriptreact" "typescript.tsx" "angular" "html.angular"];
on_attach = {
__raw =
/*
lua
*/
''
function(client, bufnr)
if vim.bo[bufnr].filetype == "html" then
vim.bo[bufnr].filetype = "angular"
end
end
'';
};
}; };
} filetypes = [
]; "typescript"
"html"
"typescriptreact"
"typescript.tsx"
"angular"
"html.angular"
];
on_attach = {
__raw =
# lua
''
function(client, bufnr)
if vim.bo[bufnr].filetype == "html" then
vim.bo[bufnr].filetype = "angular"
end
end
'';
};
};
}];
servers = { servers = {
html.enable = true; html.enable = true;
cssls.enable = true; cssls.enable = true;
@@ -345,7 +341,7 @@ in {
clangd = { clangd = {
enable = true; enable = true;
cmd = ["clangd" "--offset-encoding=utf-16"]; cmd = [ "clangd" "--offset-encoding=utf-16" ];
}; };
nixd.enable = true; nixd.enable = true;
@@ -359,9 +355,7 @@ in {
mode = "symbol_text"; mode = "symbol_text";
cmp = { cmp = {
after = after =
/* # lua
lua
*/
'' ''
function(entry, vim_item, kind) function(entry, vim_item, kind)
if entry.source.name == "npm" then if entry.source.name == "npm" then
@@ -373,37 +367,35 @@ in {
end end
''; '';
}; };
symbolMap = { symbolMap = { Copilot = ""; };
Copilot = "";
};
}; };
cmp = { cmp = {
enable = true; enable = true;
settings = { settings = {
mapping = { mapping = {
"<C-n>" = "cmp.mapping.select_next_item({behavior = cmp.SelectBehavior.Select})"; "<C-n>" =
"<C-p>" = "cmp.mapping.select_prev_item({behavior = cmp.SelectBehavior.Select})"; "cmp.mapping.select_next_item({behavior = cmp.SelectBehavior.Select})";
"<C-p>" =
"cmp.mapping.select_prev_item({behavior = cmp.SelectBehavior.Select})";
"<C-Space>" = "cmp.mapping.confirm({select = true})"; "<C-Space>" = "cmp.mapping.confirm({select = true})";
"<C-Enter>" = "cmp.mapping.complete()"; "<C-Enter>" = "cmp.mapping.complete()";
}; };
sources = [ sources = [
{name = "copilot";} { name = "copilot"; }
{name = "path";} { name = "path"; }
{name = "luasnip";} { name = "luasnip"; }
{ {
name = "npm"; name = "npm";
keywordLength = 4; keywordLength = 4;
priority = 10; priority = 10;
} }
{name = "nvim_lsp";} { name = "nvim_lsp"; }
{name = "nvim_lsp_signature_help";} { name = "nvim_lsp_signature_help"; }
{name = "nvim_lsp_document_symbol";} { name = "nvim_lsp_document_symbol"; }
]; ];
formatting.fields = ["abbr" "kind"]; formatting.fields = [ "abbr" "kind" ];
snippet.expand = snippet.expand =
/* # lua
lua
*/
"function(args) require('luasnip').lsp_expand(args.body) end"; "function(args) require('luasnip').lsp_expand(args.body) end";
window = { window = {
completion.border = "rounded"; completion.border = "rounded";
@@ -413,9 +405,7 @@ in {
}; };
}; };
which-key = { which-key = { enable = true; };
enable = true;
};
copilot-lua = { copilot-lua = {
panel.enabled = false; panel.enabled = false;
@@ -434,9 +424,13 @@ in {
angular-ls angular-ls
pkgs.nodePackages.typescript-language-server pkgs.nodePackages.typescript-language-server
pkgs.nodePackages.stylelint pkgs.nodePackages.stylelint
pkgs.nodePackages.prettier
pkgs.jq pkgs.jq
pkgs.html-tidy pkgs.html-tidy
pkgs.alejandra pkgs.nixfmt
pkgs.stylua
pkgs.shfmt
pkgs.fzf
]; ];
extraPlugins = with pkgs.vimPlugins; [ extraPlugins = with pkgs.vimPlugins; [
vim-mergetool vim-mergetool

View File

@@ -3,58 +3,55 @@ require("cmp-npm").setup({})
require("rest-nvim").setup({}) require("rest-nvim").setup({})
require("actions-preview").setup({}) require("actions-preview").setup({})
-- require("lspconfig").angularls.setup({})
if vim.g.neovide then if vim.g.neovide then
vim.api.nvim_create_autocmd("ColorScheme", { vim.api.nvim_create_autocmd("ColorScheme", {
pattern = "*", pattern = "*",
callback = function() callback = function()
local flavour = require("catppuccin").options.background[vim.o.background] local flavour = require("catppuccin").options.background[vim.o.background]
local palette = require("catppuccin.palettes").get_palette(flavour) local palette = require("catppuccin.palettes").get_palette(flavour)
vim.cmd("hi Normal guibg=" .. palette.base) vim.cmd("hi Normal guibg=" .. palette.base)
vim.cmd("set pumblend=100") vim.cmd("set pumblend=100")
end, end,
}) })
end end
local signs = { local signs = {
{ name = "DiagnosticSignError", text = "" }, { name = "DiagnosticSignError", text = "" },
{ name = "DiagnosticSignWarn", text = "" }, { name = "DiagnosticSignWarn", text = "" },
{ name = "DiagnosticSignHint", text = "󰌵" }, { name = "DiagnosticSignHint", text = "󰌵" },
{ name = "DiagnosticSignInfo", text = "" }, { name = "DiagnosticSignInfo", text = "" },
} }
for _, sign in ipairs(signs) do for _, sign in ipairs(signs) do
vim.fn.sign_define(sign.name, { texthl = sign.name, text = sign.text, numhl = "" }) vim.fn.sign_define(sign.name, { texthl = sign.name, text = sign.text, numhl = "" })
end end
vim.diagnostic.config({ vim.diagnostic.config({
virtual_text = true, virtual_text = true,
signs = true, signs = true,
underline = true, underline = true,
update_in_insert = true, update_in_insert = true,
severity_sort = false, severity_sort = false,
}) })
vim.lsp.handlers["textDocument/hover"] = vim.lsp.with(vim.lsp.handlers.hover, { border = "rounded" }) vim.lsp.handlers["textDocument/hover"] = vim.lsp.with(vim.lsp.handlers.hover, { border = "rounded" })
local Terminal = require('toggleterm.terminal').Terminal local Terminal = require("toggleterm.terminal").Terminal
local lazygit = Terminal:new({ local lazygit = Terminal:new({
cmd = "lazygit", cmd = "lazygit",
dir = "git_dir", dir = "git_dir",
direction = "float", direction = "float",
on_open = function(term) on_open = function(term)
vim.cmd("startinsert!") vim.cmd("startinsert!")
vim.api.nvim_buf_set_keymap(term.bufnr, "n", "q", "<cmd>close<CR>", { noremap = true, silent = true }) vim.api.nvim_buf_set_keymap(term.bufnr, "n", "q", "<cmd>close<CR>", { noremap = true, silent = true })
end, end,
on_close = function(term) on_close = function(term)
vim.cmd("startinsert!") vim.cmd("startinsert!")
end, end,
}) })
function _lazygit_toggle() function _lazygit_toggle()
lazygit:toggle() lazygit:toggle()
end end
vim.api.nvim_set_keymap("n", "<leader>g", "<cmd>lua _lazygit_toggle()<CR>", { noremap = true, silent = true }) vim.api.nvim_set_keymap("n", "<leader>g", "<cmd>lua _lazygit_toggle()<CR>", { noremap = true, silent = true })

View File

@@ -58,7 +58,7 @@
{ {
key = "hh"; key = "hh";
mode = "n"; mode = "n";
action = '':Telescope harpoon marks<CR>''; action = ":Telescope harpoon marks<CR>";
} }
{ {
key = "<leader>sa"; key = "<leader>sa";
@@ -77,7 +77,8 @@
key = "<leader>xw"; key = "<leader>xw";
mode = "n"; mode = "n";
lua = true; lua = true;
action = "function() require('trouble').toggle('workspace_diagnostics') end"; action =
"function() require('trouble').toggle('workspace_diagnostics') end";
} }
{ {
key = "<leader>xd"; key = "<leader>xd";

View File

@@ -1,8 +1,4 @@
{ { pkgs, homeDirectory, ... }: {
pkgs,
homeDirectory,
...
}: {
services = { services = {
gpg-agent = { gpg-agent = {
enable = true; enable = true;

View File

@@ -1,19 +1,11 @@
# Edit this configuration file to define what should be installed on # Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page # your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help). # and in the NixOS manual (accessible by running nixos-help).
{ { config, pkgs, username, ... }: {
config, imports = [ ./nvidia.nix ./hardware-configuration.nix ];
pkgs,
username,
...
}: {
imports = [
./nvidia.nix
./hardware-configuration.nix
];
nix = { nix = {
settings.experimental-features = ["nix-command" "flakes"]; settings.experimental-features = [ "nix-command" "flakes" ];
gc = { gc = {
automatic = true; automatic = true;
randomizedDelaySec = "14m"; randomizedDelaySec = "14m";
@@ -35,7 +27,7 @@
}; };
efi.canTouchEfiVariables = true; efi.canTouchEfiVariables = true;
}; };
supportedFilesystems = ["ntfs"]; supportedFilesystems = [ "ntfs" ];
# Silent Boot # Silent Boot
kernelParams = [ kernelParams = [
@@ -52,8 +44,8 @@
initrd.verbose = false; initrd.verbose = false;
# Virtual Camera/Mic # Virtual Camera/Mic
kernelModules = ["v4l2loopback" "snd-aloop" "sg"]; kernelModules = [ "v4l2loopback" "snd-aloop" "sg" ];
extraModulePackages = with config.boot.kernelPackages; [v4l2loopback.out]; extraModulePackages = with config.boot.kernelPackages; [ v4l2loopback.out ];
extraModprobeConfig = '' extraModprobeConfig = ''
options v4l2loopback exclusive_caps=1 card_label="Virtual Camera" options v4l2loopback exclusive_caps=1 card_label="Virtual Camera"
blacklist i2c_nvidia_gpu blacklist i2c_nvidia_gpu
@@ -79,7 +71,7 @@
hardware.sane = { hardware.sane = {
enable = true; enable = true;
extraBackends = [pkgs.sane-airscan]; extraBackends = [ pkgs.sane-airscan ];
}; };
services.printing.enable = true; services.printing.enable = true;
services.avahi = { services.avahi = {
@@ -91,17 +83,14 @@
services.dbus.enable = true; services.dbus.enable = true;
xdg.portal = { xdg.portal = {
enable = true; enable = true;
extraPortals = [ extraPortals = [ pkgs.xdg-desktop-portal-gtk pkgs.xdg-desktop-portal-kde ];
pkgs.xdg-desktop-portal-gtk
pkgs.xdg-desktop-portal-kde
];
}; };
time.timeZone = "Europe/Berlin"; time.timeZone = "Europe/Berlin";
i18n = { i18n = {
inputMethod = { inputMethod = {
enabled = "ibus"; enabled = "ibus";
ibus.engines = with pkgs.ibus-engines; [anthy]; ibus.engines = with pkgs.ibus-engines; [ anthy ];
}; };
defaultLocale = "en_GB.UTF-8"; defaultLocale = "en_GB.UTF-8";
extraLocaleSettings = { extraLocaleSettings = {
@@ -123,7 +112,7 @@
layout = "cc1-thea"; layout = "cc1-thea";
extraLayouts.cc1-thea = { extraLayouts.cc1-thea = {
description = "A CC1 optimized layout"; description = "A CC1 optimized layout";
languages = ["eng" "ger"]; languages = [ "eng" "ger" ];
symbolsFile = ../../modules/cc1-thea; symbolsFile = ../../modules/cc1-thea;
}; };
}; };
@@ -133,14 +122,11 @@
# nautilus on non-gnome # nautilus on non-gnome
services.gvfs.enable = true; services.gvfs.enable = true;
# fix pinentry on non-gnome # fix pinentry on non-gnome
services.dbus.packages = with pkgs; [gcr]; services.dbus.packages = with pkgs; [ gcr ];
services.gnome.gnome-online-accounts.enable = true; services.gnome.gnome-online-accounts.enable = true;
services.gnome.evolution-data-server.enable = true; services.gnome.evolution-data-server.enable = true;
services.udev.packages = with pkgs; [ services.udev.packages = with pkgs; [ oversteer android-udev-rules ];
oversteer
android-udev-rules
];
virtualisation.docker.rootless = { virtualisation.docker.rootless = {
enable = true; enable = true;
@@ -149,7 +135,7 @@
# Define a user account. Don't forget to set a password with passwd. # Define a user account. Don't forget to set a password with passwd.
services.getty.autologinUser = "${username}"; services.getty.autologinUser = "${username}";
services.getty.extraArgs = ["--noclear" "--noissue" "--nonewline"]; services.getty.extraArgs = [ "--noclear" "--noissue" "--nonewline" ];
services.getty.loginOptions = "-p -f -- \\u"; # preserve environment services.getty.loginOptions = "-p -f -- \\u"; # preserve environment
programs.hyprland.enable = true; programs.hyprland.enable = true;
programs.fish.enable = true; programs.fish.enable = true;
@@ -160,7 +146,19 @@
users.defaultUserShell = pkgs.fish; users.defaultUserShell = pkgs.fish;
users.users.${username} = { users.users.${username} = {
isNormalUser = true; isNormalUser = true;
extraGroups = ["networkmanager" "wheel" "audio" "video" "dialout" "plugdev" "scanner" "lp" "input" "adbusers" "cdrom"]; extraGroups = [
"networkmanager"
"wheel"
"audio"
"video"
"dialout"
"plugdev"
"scanner"
"lp"
"input"
"adbusers"
"cdrom"
];
}; };
# List packages installed in system profile. To search, run: # List packages installed in system profile. To search, run:
@@ -199,18 +197,18 @@
noto-fonts-cjk noto-fonts-cjk
noto-fonts-emoji noto-fonts-emoji
fira-code fira-code
(nerdfonts.override {fonts = ["FiraCode" "JetBrainsMono" "Noto" "NerdFontsSymbolsOnly"];}) (nerdfonts.override {
fonts = [ "FiraCode" "JetBrainsMono" "Noto" "NerdFontsSymbolsOnly" ];
})
]; ];
fontconfig = { fontconfig = {
defaultFonts = { defaultFonts = {
monospace = ["FiraCode Nerd Font"]; monospace = [ "FiraCode Nerd Font" ];
sansSerif = ["Noto Sans Nerd Font"]; sansSerif = [ "Noto Sans Nerd Font" ];
}; };
localConf = localConf =
/* # xml
xml
*/
'' ''
<match target="font"> <match target="font">
<test name="family" compare="contains"> <test name="family" compare="contains">
@@ -237,27 +235,25 @@
networking = { networking = {
firewall = { firewall = {
allowedTCPPorts = [8100 5037 5173]; allowedTCPPorts = [ 8100 5037 5173 ];
allowedUDPPorts = [50765]; allowedUDPPorts = [ 50765 ];
}; };
networkmanager = { networkmanager = {
enable = true; enable = true;
plugins = with pkgs; [ plugins = with pkgs; [ networkmanager-openconnect ];
networkmanager-openconnect
];
}; };
hosts = { hosts = {
"192.168.0.219" = ["kookaborrow"]; "192.168.0.219" = [ "kookaborrow" ];
"192.168.0.1" = ["router"]; "192.168.0.1" = [ "router" ];
}; };
}; };
fileSystems."/mnt/media" = { fileSystems."/mnt/media" = {
device = "kookaborrow:/media"; device = "kookaborrow:/media";
fsType = "nfs"; fsType = "nfs";
options = ["x-systemd-automount" "noauto"]; options = [ "x-systemd-automount" "noauto" ];
}; };
fileSystems."/run/media/theaninova/heart-drive" = { fileSystems."/run/media/theaninova/heart-drive" = {

View File

@@ -1,21 +1,14 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ { config, lib, pkgs, modulesPath, ... }: {
config, imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
lib,
pkgs,
modulesPath,
...
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = ["nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod"]; boot.initrd.availableKernelModules =
boot.initrd.kernelModules = []; [ "nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ];
boot.kernelModules = ["kvm-amd"]; boot.initrd.kernelModules = [ ];
boot.extraModulePackages = []; boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ];
fileSystems."/" = { fileSystems."/" = {
device = "/dev/disk/by-uuid/637f852b-e5bc-4bdb-a75e-886680bd52d2"; device = "/dev/disk/by-uuid/637f852b-e5bc-4bdb-a75e-886680bd52d2";
@@ -27,9 +20,8 @@
fsType = "vfat"; fsType = "vfat";
}; };
swapDevices = [ swapDevices =
{device = "/dev/disk/by-uuid/b09fbba2-c97a-41bc-a3cd-8204e30204f8";} [{ device = "/dev/disk/by-uuid/b09fbba2-c97a-41bc-a3cd-8204e30204f8"; }];
];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's # (the default) this is the recommended approach. When using systemd-networkd it's
@@ -39,5 +31,6 @@
# networking.interfaces.eno1.useDHCP = lib.mkDefault true; # networking.interfaces.eno1.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; hardware.cpu.amd.updateMicrocode =
lib.mkDefault config.hardware.enableRedistributableFirmware;
} }

View File

@@ -1,23 +1,16 @@
{ { config, lib, pkgs, ... }: {
config,
lib,
pkgs,
...
}: {
hardware.opengl = { hardware.opengl = {
enable = true; enable = true;
driSupport = true; driSupport = true;
driSupport32Bit = true; driSupport32Bit = true;
extraPackages = with pkgs; [ extraPackages = with pkgs; [ libvdpau-va-gl nvidia-vaapi-driver ];
libvdpau-va-gl
nvidia-vaapi-driver
];
}; };
services.xserver.videoDrivers = ["nvidia"]; services.xserver.videoDrivers = [ "nvidia" ];
boot.kernelModules = ["nvidia" "nvidia_modeset" "nvidia_uvm" "nvidia_drm"]; boot.kernelModules = [ "nvidia" "nvidia_modeset" "nvidia_uvm" "nvidia_drm" ];
boot.initrd.kernelModules = ["nvidia" "nvidia_modeset" "nvidia_uvm" "nvidia_drm"]; boot.initrd.kernelModules =
[ "nvidia" "nvidia_modeset" "nvidia_uvm" "nvidia_drm" ];
hardware.nvidia = { hardware.nvidia = {
modesetting.enable = true; modesetting.enable = true;

View File

@@ -1,25 +1,19 @@
{ { pkgs, lib, config, ... }:
pkgs, let cfg = config.hardware.gbmonctl;
lib, in with lib; {
config, options.hardware.gbmonctl = {
... enable = mkOption {
}: let type = types.bool;
cfg = config.hardware.gbmonctl; default = false;
in description = lib.mkDoc ''
with lib; { Enables a CLI tool to change monitor settings over USB to the Gigabyte M32U
options.hardware.gbmonctl = {
enable = mkOption {
type = types.bool;
default = false;
description = lib.mkDoc ''
Enables a CLI tool to change monitor settings over USB to the Gigabyte M32U
In theory any Gigabyte Monitor that uses a Realtek HID device (presumably the M28U also uses this) to control it over OSD sidekick should have the same protocol, but this is the only one I own. In theory any Gigabyte Monitor that uses a Realtek HID device (presumably the M28U also uses this) to control it over OSD sidekick should have the same protocol, but this is the only one I own.
''; '';
};
}; };
config = lib.mkIf cfg.enable { };
environment.systemPackages = [pkgs.gbmonctl]; config = lib.mkIf cfg.enable {
services.udev.packages = [pkgs.gbmonctl]; environment.systemPackages = [ pkgs.gbmonctl ];
}; services.udev.packages = [ pkgs.gbmonctl ];
} };
}

View File

@@ -1,13 +1,10 @@
{ { pkgs, lib, config, ... }:
pkgs, with lib;
lib, let
config,
...
}:
with lib; let
cfg = config.hardware.hid-fanatecff; cfg = config.hardware.hid-fanatecff;
kernel = config.boot.kernelPackages.kernel; kernel = config.boot.kernelPackages.kernel;
fanatecKernelModule = pkgs.callPackage (import ./hid-fanatecff-module.nix) {kernel = kernel;}; fanatecKernelModule =
pkgs.callPackage (import ./hid-fanatecff-module.nix) { kernel = kernel; };
in { in {
options.hardware.hid-fanatecff = { options.hardware.hid-fanatecff = {
enable = mkOption { enable = mkOption {
@@ -23,8 +20,8 @@ in {
}; };
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
boot = { boot = {
extraModulePackages = [fanatecKernelModule]; extraModulePackages = [ fanatecKernelModule ];
kernelModules = ["hid-fanatecff"]; kernelModules = [ "hid-fanatecff" ];
}; };
}; };
} }

View File

@@ -1,9 +1,4 @@
{ { lib, stdenv, kernel, fetchFromGitHub, }:
lib,
stdenv,
kernel,
fetchFromGitHub,
}:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "hid-fanatecff"; pname = "hid-fanatecff";
version = "0.1.0"; version = "0.1.0";
@@ -17,12 +12,10 @@ stdenv.mkDerivation rec {
nativeBuildInputs = kernel.moduleBuildDependencies; nativeBuildInputs = kernel.moduleBuildDependencies;
makeFlags = makeFlags = kernel.makeFlags ++ [
kernel.makeFlags "KVERSION=${kernel.modDirVersion}"
++ [ "KERNEL_SRC=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
"KVERSION=${kernel.modDirVersion}" ];
"KERNEL_SRC=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
];
installFlags = [ installFlags = [
"-C" "-C"
@@ -30,10 +23,11 @@ stdenv.mkDerivation rec {
"M=${src}" "M=${src}"
"INSTALL_MOD_PATH=${placeholder "out"}" "INSTALL_MOD_PATH=${placeholder "out"}"
]; ];
installTargets = ["modules_install"]; installTargets = [ "modules_install" ];
meta = with lib; { meta = with lib; {
description = "Linux kernel driver that aims to add support for FANATEC devices"; description =
"Linux kernel driver that aims to add support for FANATEC devices";
homepage = "https://github.com/gotzl/hid-fanatecff"; homepage = "https://github.com/gotzl/hid-fanatecff";
license = licenses.gpl2Only; license = licenses.gpl2Only;
platforms = platforms.linux; platforms = platforms.linux;

View File

@@ -1,11 +1,4 @@
{ { lib, pkgs, buildGoModule, fetchFromGitHub, hidapi, udev, }:
lib,
pkgs,
buildGoModule,
fetchFromGitHub,
hidapi,
udev,
}:
buildGoModule rec { buildGoModule rec {
pname = "gbmonctl"; pname = "gbmonctl";
version = "1d01a090"; version = "1d01a090";
@@ -16,14 +9,15 @@ buildGoModule rec {
hash = "sha256-KeBdGtQWz9TBmk1HdXlkIs2r2aZ+EO8WhNaGbsFBBR8="; hash = "sha256-KeBdGtQWz9TBmk1HdXlkIs2r2aZ+EO8WhNaGbsFBBR8=";
}; };
vendorHash = "sha256-cEqpEaX4eJ/6um9qbw/kzg9/vesOWmdiHzZ7IodVV9c="; vendorHash = "sha256-cEqpEaX4eJ/6um9qbw/kzg9/vesOWmdiHzZ7IodVV9c=";
buildInputs = [hidapi udev]; buildInputs = [ hidapi udev ];
postInstall = '' postInstall = ''
mkdir -p $out/bin $out/lib/udev/rules.d mkdir -p $out/bin $out/lib/udev/rules.d
echo 'KERNEL=="hidraw*", ATTRS{idVendor}=="0bda", ATTRS{idProduct}=="1100", MODE="0666", TAG+="uaccess"' \ echo 'KERNEL=="hidraw*", ATTRS{idVendor}=="0bda", ATTRS{idProduct}=="1100", MODE="0666", TAG+="uaccess"' \
> $out/lib/udev/rules.d/99-gigabyte-monitor.rules > $out/lib/udev/rules.d/99-gigabyte-monitor.rules
''; '';
meta = with lib; { meta = with lib; {
description = "A CLI tool to change monitor settings over USB to the Gigabyte M32U"; description =
"A CLI tool to change monitor settings over USB to the Gigabyte M32U";
homepage = "https://github.com/kelvie/gbmonctl"; homepage = "https://github.com/kelvie/gbmonctl";
}; };
} }

View File

@@ -1,9 +1,4 @@
{ { stdenv, fetchFromGitHub, glibc, lib, }:
stdenv,
fetchFromGitHub,
glibc,
lib,
}:
stdenv.mkDerivation { stdenv.mkDerivation {
name = "lpc21isp"; name = "lpc21isp";
src = fetchFromGitHub { src = fetchFromGitHub {
@@ -12,16 +7,17 @@ stdenv.mkDerivation {
rev = "cf89d0b122ef02358e0f130b8f32cb804c11a54e"; rev = "cf89d0b122ef02358e0f130b8f32cb804c11a54e";
hash = "sha256-BZvtJMtVyqsCPVhp/QL5cXJY8Q25T/RzYzHMutE24hk="; hash = "sha256-BZvtJMtVyqsCPVhp/QL5cXJY8Q25T/RzYzHMutE24hk=";
}; };
nativeBuildInputs = [glibc.static]; nativeBuildInputs = [ glibc.static ];
installPhase = '' installPhase = ''
mkdir -p $out/bin mkdir -p $out/bin
cp lpc21isp $out/bin cp lpc21isp $out/bin
''; '';
meta = with lib; { meta = with lib; {
description = "Portable command line ISP for NXP LPC family and Analog Devices ADUC70xx"; description =
"Portable command line ISP for NXP LPC family and Analog Devices ADUC70xx";
homepage = "https://github.com/capiman/lpc21isp"; homepage = "https://github.com/capiman/lpc21isp";
license = licenses.lgpl3Plus; license = licenses.lgpl3Plus;
maintainers = [maintainers.theaninova]; maintainers = [ maintainers.theaninova ];
mainProgram = "lpc21isp"; mainProgram = "lpc21isp";
}; };
} }