Reformat
This commit is contained in:
@ -4,59 +4,59 @@
|
||||
fetchurl,
|
||||
autoPatchelfHook,
|
||||
cups,
|
||||
libusb1
|
||||
libusb1,
|
||||
}:
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "B1160_B1160w_UnifiedLinuxDriver";
|
||||
version = "1.01";
|
||||
pname = "B1160_B1160w_UnifiedLinuxDriver";
|
||||
version = "1.01";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://dl.dell.com/FOLDER00947576M/1/${pname}_${version}.tar.gz";
|
||||
sha256 = "10b75a899ba7aff3b95158f6fc49f09d6eef670608480ee48c179337c5337375";
|
||||
curlOptsList = ["--user-agent" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:89.0) Gecko/20100101 Firefox/89.0"];
|
||||
};
|
||||
src = fetchurl {
|
||||
url = "https://dl.dell.com/FOLDER00947576M/1/${pname}_${version}.tar.gz";
|
||||
sha256 = "10b75a899ba7aff3b95158f6fc49f09d6eef670608480ee48c179337c5337375";
|
||||
curlOptsList = ["--user-agent" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:89.0) Gecko/20100101 Firefox/89.0"];
|
||||
};
|
||||
|
||||
# https://nixos.org/manual/nixpkgs/unstable/#setup-hook-autopatchelfhook
|
||||
# https://nixos.wiki/wiki/Packaging/Binaries
|
||||
# https://unix.stackexchange.com/questions/522822/different-methods-to-run-a-non-nixos-executable-on-nixos/522823#522823
|
||||
# TODO: This step does not work
|
||||
nativeBuildInputs = [
|
||||
cups
|
||||
stdenv.cc.cc.lib
|
||||
libusb1
|
||||
autoPatchelfHook
|
||||
];
|
||||
# https://nixos.org/manual/nixpkgs/unstable/#setup-hook-autopatchelfhook
|
||||
# https://nixos.wiki/wiki/Packaging/Binaries
|
||||
# https://unix.stackexchange.com/questions/522822/different-methods-to-run-a-non-nixos-executable-on-nixos/522823#522823
|
||||
# TODO: This step does not work
|
||||
nativeBuildInputs = [
|
||||
cups
|
||||
stdenv.cc.cc.lib
|
||||
libusb1
|
||||
autoPatchelfHook
|
||||
];
|
||||
|
||||
unpackCmd = ''
|
||||
mkdir -p root
|
||||
tar xvf $curSrc --directory=root
|
||||
'';
|
||||
unpackCmd = ''
|
||||
mkdir -p root
|
||||
tar xvf $curSrc --directory=root
|
||||
'';
|
||||
|
||||
# This is already built
|
||||
dontBuild = true;
|
||||
# This is already built
|
||||
dontBuild = true;
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out
|
||||
mkdir -p $out/cups
|
||||
mkdir -p $out/lib
|
||||
mkdir -p $out/lib64
|
||||
mkdir -p $out/sbin
|
||||
mkdir -p $out
|
||||
mkdir -p $out/cups
|
||||
mkdir -p $out/lib
|
||||
mkdir -p $out/lib64
|
||||
mkdir -p $out/sbin
|
||||
|
||||
cp -r cdroot/Linux/x86_64/at_root/usr/sbin/* $out/sbin/
|
||||
cp -r cdroot/Linux/x86_64/at_root/usr/lib64/*.so.* $out/lib64/
|
||||
cp -r cdroot/Linux/x86_64/at_root/usr/lib64/cups/* $out/cups/
|
||||
cp -r cdroot/Linux/x86_64/at_root/opt/smfp-common/lib/* $out/lib/
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
cp -r cdroot/Linux/x86_64/at_root/usr/sbin/* $out/sbin/
|
||||
cp -r cdroot/Linux/x86_64/at_root/usr/lib64/*.so.* $out/lib64/
|
||||
cp -r cdroot/Linux/x86_64/at_root/usr/lib64/cups/* $out/cups/
|
||||
cp -r cdroot/Linux/x86_64/at_root/opt/smfp-common/lib/* $out/lib/
|
||||
|
||||
meta = with lib; {
|
||||
description = "CUPS driver for the Dell B1160w printer.";
|
||||
longDescription = "CUPS driver for the Dell B1160w printer.";
|
||||
homepage = "https://www.dell.com/support/home/de-de/drivers/driversdetails?driverid=1m4pc";
|
||||
license = licenses.unfree;
|
||||
platforms = ["x86_64-linux"];
|
||||
};
|
||||
}
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "CUPS driver for the Dell B1160w printer.";
|
||||
longDescription = "CUPS driver for the Dell B1160w printer.";
|
||||
homepage = "https://www.dell.com/support/home/de-de/drivers/driversdetails?driverid=1m4pc";
|
||||
license = licenses.unfree;
|
||||
platforms = ["x86_64-linux"];
|
||||
};
|
||||
}
|
||||
|
@ -1,9 +1,9 @@
|
||||
{ lib
|
||||
, python310
|
||||
, fetchFromGitHub
|
||||
, ffmpeg
|
||||
{
|
||||
lib,
|
||||
python310,
|
||||
fetchFromGitHub,
|
||||
ffmpeg,
|
||||
}:
|
||||
|
||||
python310.pkgs.buildPythonApplication rec {
|
||||
pname = "spotdl";
|
||||
version = "4.1.6";
|
||||
@ -83,7 +83,10 @@ python310.pkgs.buildPythonApplication rec {
|
||||
];
|
||||
|
||||
makeWrapperArgs = [
|
||||
"--prefix" "PATH" ":" (lib.makeBinPath [ ffmpeg ])
|
||||
"--prefix"
|
||||
"PATH"
|
||||
":"
|
||||
(lib.makeBinPath [ffmpeg])
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
@ -91,6 +94,6 @@ python310.pkgs.buildPythonApplication rec {
|
||||
homepage = "https://github.com/spotDL/spotify-downloader";
|
||||
changelog = "https://github.com/spotDL/spotify-downloader/releases/tag/v${version}";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ dotlambda ];
|
||||
maintainers = with maintainers; [dotlambda];
|
||||
};
|
||||
}
|
||||
|
@ -1,25 +1,25 @@
|
||||
# NOTE: Adapted from nixpkgs xdg-desktop-portal-wlr derivation
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, fetchpatch
|
||||
, makeWrapper
|
||||
, meson
|
||||
, ninja
|
||||
, pkg-config
|
||||
, wayland-protocols
|
||||
, wayland-scanner
|
||||
# , grim
|
||||
, inih
|
||||
, libdrm
|
||||
, mesa
|
||||
, pipewire
|
||||
, scdoc
|
||||
# , slurp
|
||||
, systemd
|
||||
, wayland
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
fetchpatch,
|
||||
makeWrapper,
|
||||
meson,
|
||||
ninja,
|
||||
pkg-config,
|
||||
wayland-protocols,
|
||||
wayland-scanner,
|
||||
# , grim
|
||||
inih,
|
||||
libdrm,
|
||||
mesa,
|
||||
pipewire,
|
||||
scdoc,
|
||||
# , slurp
|
||||
systemd,
|
||||
wayland,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "xdg-desktop-portal-termfilechooser";
|
||||
version = "0.1.0";
|
||||
@ -39,15 +39,17 @@ stdenv.mkDerivation rec {
|
||||
# })];
|
||||
|
||||
# Add hyprland to portal metainformation
|
||||
patches = [(fetchpatch {
|
||||
url = "https://patch-diff.githubusercontent.com/raw/GermainZ/xdg-desktop-portal-termfilechooser/pull/6.patch";
|
||||
hash = "sha256-GjK6GL15liHYm5U0XBSIf5H8Cc4RIWBD0O47lLWcep0=";
|
||||
})];
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
url = "https://patch-diff.githubusercontent.com/raw/GermainZ/xdg-desktop-portal-termfilechooser/pull/6.patch";
|
||||
hash = "sha256-GjK6GL15liHYm5U0XBSIf5H8Cc4RIWBD0O47lLWcep0=";
|
||||
})
|
||||
];
|
||||
|
||||
strictDeps = true;
|
||||
depsBuildBuild = [ pkg-config ];
|
||||
nativeBuildInputs = [ meson ninja pkg-config scdoc wayland-scanner makeWrapper ];
|
||||
buildInputs = [ inih libdrm mesa pipewire systemd wayland wayland-protocols ];
|
||||
depsBuildBuild = [pkg-config];
|
||||
nativeBuildInputs = [meson ninja pkg-config scdoc wayland-scanner makeWrapper];
|
||||
buildInputs = [inih libdrm mesa pipewire systemd wayland wayland-protocols];
|
||||
|
||||
mesonFlags = [
|
||||
"-Dsd-bus-provider=libsystemd"
|
||||
@ -62,4 +64,4 @@ stdenv.mkDerivation rec {
|
||||
platforms = platforms.linux;
|
||||
license = licenses.mit;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
1
env/latex.nix
vendored
1
env/latex.nix
vendored
@ -17,7 +17,6 @@
|
||||
config.allowUnfree = true;
|
||||
overlays = [devshell.overlays.default];
|
||||
};
|
||||
|
||||
# TODO: Custom LaTeX "distribution"? With curated packages?
|
||||
in {
|
||||
devShell = pkgs.devshell.mkShell {
|
||||
|
@ -196,8 +196,9 @@ rec {
|
||||
home.file.".local/share/navi/cheats/christoph.cheat".source = ../../config/navi/christoph.cheat;
|
||||
|
||||
home.activation = {
|
||||
linkObsidianLatexSnippets = lib.hm.dag.entryAfter ["writeBoundary"]
|
||||
(mylib.modules.mkLink "~/NixFlake/config/obsidian/latex_snippets.json" "~/Notes/Obsidian/Chriphost/latex_snippets.json");
|
||||
linkObsidianLatexSnippets =
|
||||
lib.hm.dag.entryAfter ["writeBoundary"]
|
||||
(mylib.modules.mkLink "~/NixFlake/config/obsidian/latex_snippets.json" "~/Notes/Obsidian/Chriphost/latex_snippets.json");
|
||||
};
|
||||
|
||||
xdg.mime.enable = true;
|
||||
@ -428,7 +429,7 @@ rec {
|
||||
enable = true;
|
||||
enableFishIntegration = true;
|
||||
};
|
||||
|
||||
|
||||
btop.enable = true;
|
||||
|
||||
chromium = {
|
||||
@ -438,12 +439,12 @@ rec {
|
||||
# package = pkgs.ungoogled-chromium;
|
||||
|
||||
extensions = [
|
||||
{ id = "cjpalhdlnbpafiamejdnhcphjbkeiagm"; } # UBlock Origin
|
||||
{ id = "oboonakemofpalcgghocfoadofidjkkk"; } # KeepassXC Browser
|
||||
{ id = "pkehgijcmpdhfbdbbnkijodmdjhbjlgp"; } # Privacy Badger
|
||||
{ id = "lckanjgmijmafbedllaakclkaicjfmnk"; } # ClearURLs
|
||||
{ id = "njdfdhgcmkocbgbhcioffdbicglldapd"; } # LocalCDN
|
||||
{ id = "jaoafjdoijdconemdmodhbfpianehlon"; } # Skip Redirect
|
||||
{id = "cjpalhdlnbpafiamejdnhcphjbkeiagm";} # UBlock Origin
|
||||
{id = "oboonakemofpalcgghocfoadofidjkkk";} # KeepassXC Browser
|
||||
{id = "pkehgijcmpdhfbdbbnkijodmdjhbjlgp";} # Privacy Badger
|
||||
{id = "lckanjgmijmafbedllaakclkaicjfmnk";} # ClearURLs
|
||||
{id = "njdfdhgcmkocbgbhcioffdbicglldapd";} # LocalCDN
|
||||
{id = "jaoafjdoijdconemdmodhbfpianehlon";} # Skip Redirect
|
||||
];
|
||||
};
|
||||
|
||||
@ -554,7 +555,7 @@ rec {
|
||||
};
|
||||
|
||||
nnn = {
|
||||
package = pkgs.nnn.override { withNerdIcons = true; };
|
||||
package = pkgs.nnn.override {withNerdIcons = true;};
|
||||
enable = true;
|
||||
|
||||
extraPackages = with pkgs; [
|
||||
@ -586,12 +587,14 @@ rec {
|
||||
v = "imgview";
|
||||
};
|
||||
|
||||
src = (pkgs.fetchFromGitHub {
|
||||
owner = "jarun";
|
||||
repo = "nnn";
|
||||
rev = "6a8d74a43a2135a186dc59c5a1f561444ca098e4";
|
||||
sha256 = "sha256-jxPfaHRPWy1L87YkK1G/9cBgUwjyJyPXM2jG4VE4+kQ=";
|
||||
}) + "/plugins";
|
||||
src =
|
||||
(pkgs.fetchFromGitHub {
|
||||
owner = "jarun";
|
||||
repo = "nnn";
|
||||
rev = "6a8d74a43a2135a186dc59c5a1f561444ca098e4";
|
||||
sha256 = "sha256-jxPfaHRPWy1L87YkK1G/9cBgUwjyJyPXM2jG4VE4+kQ=";
|
||||
})
|
||||
+ "/plugins";
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -19,37 +19,37 @@ rec {
|
||||
modules = {
|
||||
audio = {
|
||||
enable = false;
|
||||
|
||||
|
||||
carla.enable = false;
|
||||
bitwig.enable = true; # TODO: Check what happens when upgrade plan ends, do I need to pin the version then?
|
||||
tenacity.enable = true;
|
||||
|
||||
|
||||
faust.enable = true;
|
||||
bottles.enable = false;
|
||||
yabridge.enable = true;
|
||||
yabridge.autoSync = true;
|
||||
|
||||
|
||||
noisesuppression = {
|
||||
noisetorch.enable = false;
|
||||
noisetorch.autostart = false;
|
||||
easyeffects.enable = false;
|
||||
easyeffects.autostart = false;
|
||||
};
|
||||
|
||||
|
||||
cardinal.enable = true;
|
||||
distrho.enable = true;
|
||||
};
|
||||
|
||||
|
||||
gaming = {
|
||||
enable = true;
|
||||
|
||||
|
||||
prism.enable = true;
|
||||
bottles.enable = false;
|
||||
# TODO: Webcord
|
||||
# discordChromium.enable = false;
|
||||
# discordElectron.enable = false; # This is the nixpkgs version, prefer the one from flatpak module
|
||||
# dwarffortress.enable = false;
|
||||
|
||||
|
||||
steam = {
|
||||
enable = true;
|
||||
gamescope = true;
|
||||
@ -58,7 +58,7 @@ rec {
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
home.packages = with pkgs; [
|
||||
quartus-prime-lite # Intel FPGA design software
|
||||
];
|
||||
|
@ -17,11 +17,9 @@ rec {
|
||||
|
||||
config = {
|
||||
modules = {
|
||||
|
||||
};
|
||||
|
||||
|
||||
home.packages = with pkgs; [
|
||||
|
||||
];
|
||||
};
|
||||
}
|
||||
|
@ -15,7 +15,7 @@ in {
|
||||
../flatpak
|
||||
];
|
||||
|
||||
options.modules.audio = import ./options.nix { inherit lib mylib; };
|
||||
options.modules.audio = import ./options.nix {inherit lib mylib;};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
assertions = [
|
||||
|
@ -1,10 +1,9 @@
|
||||
{
|
||||
lib,
|
||||
mylib
|
||||
mylib,
|
||||
}:
|
||||
with lib;
|
||||
with mylib.modules;
|
||||
{
|
||||
with mylib.modules; {
|
||||
enable = mkEnableOpt "Audio module";
|
||||
|
||||
# TODO: Group these in categories (like instruments/VSTs or sth)
|
||||
@ -45,4 +44,4 @@ with mylib.modules;
|
||||
autostart = mkBoolOpt false "Autoload EasyEffects suppression profile";
|
||||
};
|
||||
};
|
||||
}
|
||||
}
|
||||
|
@ -18,7 +18,7 @@ in {
|
||||
|
||||
# Options is a vector of options this module defines
|
||||
# This module defines only the "emacs" option and suboptions "enable" and "doom"
|
||||
options.modules.emacs = import ./options.nix { inherit lib mylib; };
|
||||
options.modules.emacs = import ./options.nix {inherit lib mylib;};
|
||||
|
||||
# Config is the merged set of all module configurations
|
||||
# Here we define what happens to the config if the module is active (but only if the module is active)
|
||||
|
@ -1,10 +1,9 @@
|
||||
{
|
||||
lib,
|
||||
mylib
|
||||
mylib,
|
||||
}:
|
||||
with lib;
|
||||
with mylib.modules;
|
||||
{
|
||||
with mylib.modules; {
|
||||
enable = mkEnableOpt "Emacs module";
|
||||
|
||||
# TODO: Use an enum for this not individual options
|
||||
@ -17,4 +16,4 @@ with mylib.modules;
|
||||
autoSync = mkBoolOpt false "Sync Doom Emacs on nixos-rebuild";
|
||||
autoUpgrade = mkBoolOpt false "Upgrade Doom Emacs on nixos-rebuild";
|
||||
};
|
||||
}
|
||||
}
|
||||
|
@ -14,7 +14,7 @@ with lib;
|
||||
with mylib.modules; let
|
||||
cfg = config.modules.email;
|
||||
in {
|
||||
options.modules.email = import ./options.nix { inherit lib mylib; };
|
||||
options.modules.email = import ./options.nix {inherit lib mylib;};
|
||||
|
||||
# TODO: Add Maildir to nextcloud sync
|
||||
config = mkIf cfg.enable {
|
||||
|
@ -1,10 +1,9 @@
|
||||
{
|
||||
lib,
|
||||
mylib
|
||||
mylib,
|
||||
}:
|
||||
with lib;
|
||||
with mylib.modules;
|
||||
{
|
||||
with mylib.modules; {
|
||||
enable = mkEnableOpt "Email";
|
||||
autosync = mkEnableOpt "Automatically call \"notmuch new\" via systemd timer";
|
||||
imapnotify = mkEnableOpt "Use imapnotify to sync and index mail automatically";
|
||||
@ -13,4 +12,4 @@ with mylib.modules;
|
||||
enable = mkEnableOpt "Kmail";
|
||||
autostart = mkEnableOpt "Autostart Kmail";
|
||||
};
|
||||
}
|
||||
}
|
||||
|
@ -12,7 +12,7 @@ with lib;
|
||||
with mylib.modules; let
|
||||
cfg = config.modules.firefox;
|
||||
in {
|
||||
options.modules.firefox = import ./options.nix { inherit lib mylib; };
|
||||
options.modules.firefox = import ./options.nix {inherit lib mylib;};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
home.packages = with pkgs;
|
||||
|
@ -1,14 +1,13 @@
|
||||
{
|
||||
lib,
|
||||
mylib
|
||||
mylib,
|
||||
}:
|
||||
with lib;
|
||||
with mylib.modules;
|
||||
{
|
||||
with mylib.modules; {
|
||||
enable = mkEnableOpt "Firefox";
|
||||
wayland = mkBoolOpt false "Enable firefox wayland support";
|
||||
vaapi = mkBoolOpt false "Enable firefox vaapi support";
|
||||
disableTabBar = mkBoolOpt false "Disable the firefox tab bar (for TST)";
|
||||
defaultBookmarks = mkBoolOpt false "Preset standard bookmarks and folders";
|
||||
gnomeTheme = mkBoolOpt false "Use Firefox gnome theme (rafaelmardojai)";
|
||||
}
|
||||
}
|
||||
|
@ -10,7 +10,7 @@ with lib;
|
||||
with mylib.modules; let
|
||||
cfg = config.modules.fish;
|
||||
in {
|
||||
options.modules.fish = import ./options.nix { inherit lib mylib; };
|
||||
options.modules.fish = import ./options.nix {inherit lib mylib;};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
programs.fish = {
|
||||
@ -27,7 +27,7 @@ in {
|
||||
echo "nnn is already running"
|
||||
return
|
||||
end
|
||||
|
||||
|
||||
# The behaviour is set to cd on quit (nnn checks if NNN_TMPFILE is set)
|
||||
# If NNN_TMPFILE is set to a custom path, it must be exported for nnn to
|
||||
# see. To cd on quit only on ^G, remove the "-x" from both lines below,
|
||||
@ -37,17 +37,17 @@ in {
|
||||
else
|
||||
set -x NNN_TMPFILE "$HOME/.config/nnn/.lastd"
|
||||
end
|
||||
|
||||
|
||||
# Unmask ^Q (, ^V etc.) (if required, see `stty -a`) to Quit nnn
|
||||
# stty start undef
|
||||
# stty stop undef
|
||||
# stty lwrap undef
|
||||
# stty lnext undef
|
||||
|
||||
|
||||
# The command function allows one to alias this function to `nnn` without
|
||||
# making an infinitely recursive alias
|
||||
command nnn $argv
|
||||
|
||||
|
||||
if test -e $NNN_TMPFILE
|
||||
source $NNN_TMPFILE
|
||||
rm $NNN_TMPFILE
|
||||
|
@ -1,9 +1,8 @@
|
||||
{
|
||||
lib,
|
||||
mylib
|
||||
mylib,
|
||||
}:
|
||||
with lib;
|
||||
with mylib.modules;
|
||||
{
|
||||
with mylib.modules; {
|
||||
enable = mkEnableOpt "Fish";
|
||||
}
|
||||
}
|
||||
|
@ -14,7 +14,7 @@ with mylib.modules;
|
||||
let
|
||||
cfg = config.modules.flatpak;
|
||||
in {
|
||||
options.modules.flatpak = import ./options.nix { inherit lib mylib; };
|
||||
options.modules.flatpak = import ./options.nix {inherit lib mylib;};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
assertions = [
|
||||
|
@ -1,10 +1,9 @@
|
||||
{
|
||||
lib,
|
||||
mylib
|
||||
mylib,
|
||||
}:
|
||||
with lib;
|
||||
with mylib.modules;
|
||||
{
|
||||
with mylib.modules; {
|
||||
enable = mkEnableOpt "Flatpak module";
|
||||
fontFix = mkBoolOpt true "Link fonts to ~/.local/share/fonts so flatpak apps can find them";
|
||||
iconFix = mkBoolOpt true "Link icons to ~/.local/share/icons so flatpak apps can find them";
|
||||
@ -52,4 +51,4 @@ with mylib.modules;
|
||||
example = ["\${config.home.homeDirectory}/Documents:ro"];
|
||||
description = "Additional global overrides";
|
||||
};
|
||||
}
|
||||
}
|
||||
|
@ -19,7 +19,7 @@ in {
|
||||
# TODO: SteamTinkerLaunch option
|
||||
# TODO: Dolphin + SteamRomManager option
|
||||
|
||||
options.modules.gaming = import ./options.nix { inherit lib mylib; };
|
||||
options.modules.gaming = import ./options.nix {inherit lib mylib;};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
assertions = [
|
||||
|
@ -1,10 +1,9 @@
|
||||
{
|
||||
lib,
|
||||
mylib
|
||||
mylib,
|
||||
}:
|
||||
with lib;
|
||||
with mylib.modules;
|
||||
{
|
||||
with mylib.modules; {
|
||||
enable = mkEnableOpt "Gaming module";
|
||||
|
||||
# discordElectron.enable = mkEnableOpt "Discord (Electron) (nixpkgs)";
|
||||
@ -19,4 +18,4 @@ with mylib.modules;
|
||||
adwaita = mkBoolOpt false "Enable the adwaita-for-steam skin";
|
||||
protonup = mkBoolOpt false "Enable ProtonUP-QT";
|
||||
};
|
||||
}
|
||||
}
|
||||
|
@ -10,7 +10,7 @@ with lib;
|
||||
with mylib.modules; let
|
||||
cfg = config.modules.gnome;
|
||||
in {
|
||||
options.modules.gnome = import ./options.nix { inherit lib mylib; };
|
||||
options.modules.gnome = import ./options.nix {inherit lib mylib;};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
assertions = [
|
||||
|
@ -1,25 +1,24 @@
|
||||
{
|
||||
lib,
|
||||
mylib
|
||||
mylib,
|
||||
}:
|
||||
with lib;
|
||||
with mylib.modules;
|
||||
{
|
||||
enable = mkEnableOpt "Gnome Desktop";
|
||||
# TODO: Add option for dash-to-dock
|
||||
extensions = mkBoolOpt false "Enable Gnome shell-extensions";
|
||||
with mylib.modules; {
|
||||
enable = mkEnableOpt "Gnome Desktop";
|
||||
# TODO: Add option for dash-to-dock
|
||||
extensions = mkBoolOpt false "Enable Gnome shell-extensions";
|
||||
|
||||
# TODO: Add other themes, whitesur for example
|
||||
theme = {
|
||||
papirusIcons = mkBoolOpt false "Enable the Papirus icon theme";
|
||||
numixCursor = mkBoolOpt false "Enable the Numix cursor theme";
|
||||
wallpaper = mkOption {
|
||||
type = types.str;
|
||||
default = "constructionsite";
|
||||
description = "What wallpaper to use";
|
||||
};
|
||||
# TODO: Add other themes, whitesur for example
|
||||
theme = {
|
||||
papirusIcons = mkBoolOpt false "Enable the Papirus icon theme";
|
||||
numixCursor = mkBoolOpt false "Enable the Numix cursor theme";
|
||||
wallpaper = mkOption {
|
||||
type = types.str;
|
||||
default = "constructionsite";
|
||||
description = "What wallpaper to use";
|
||||
};
|
||||
};
|
||||
|
||||
settings = {
|
||||
};
|
||||
}
|
||||
settings = {
|
||||
};
|
||||
}
|
||||
|
@ -10,7 +10,7 @@ with lib;
|
||||
with mylib.modules; let
|
||||
cfg = config.modules.hyprland;
|
||||
in {
|
||||
options.modules.hyprland = import ./options.nix { inherit lib mylib; };
|
||||
options.modules.hyprland = import ./options.nix {inherit lib mylib;};
|
||||
|
||||
config = let
|
||||
# Taken from https://github.com/Ruixi-rebirth/flakes/blob/main/modules/programs/wayland/waybar/workspace-patch.nix
|
||||
@ -37,124 +37,126 @@ in {
|
||||
};
|
||||
|
||||
waybar-hyprland = pkgs.waybar.overrideAttrs (oldAttrs: {
|
||||
mesonFlags = oldAttrs.mesonFlags ++ [ "-Dexperimental=true" ];
|
||||
patches = (oldAttrs.patches or [ ]) ++ [ workspaces-patch ];
|
||||
mesonFlags = oldAttrs.mesonFlags ++ ["-Dexperimental=true"];
|
||||
patches = (oldAttrs.patches or []) ++ [workspaces-patch];
|
||||
});
|
||||
in mkIf cfg.enable {
|
||||
assertions = [
|
||||
{
|
||||
assertion = nixosConfig.programs.hyprland.enable;
|
||||
message = "Can't enable Hyprland module with Hyprland disabled!";
|
||||
}
|
||||
];
|
||||
in
|
||||
mkIf cfg.enable {
|
||||
assertions = [
|
||||
{
|
||||
assertion = nixosConfig.programs.hyprland.enable;
|
||||
message = "Can't enable Hyprland module with Hyprland disabled!";
|
||||
}
|
||||
];
|
||||
|
||||
gtk = {
|
||||
enable = true;
|
||||
iconTheme.package = pkgs.papirus-icon-theme;
|
||||
iconTheme.name = "Papirus";
|
||||
};
|
||||
gtk = {
|
||||
enable = true;
|
||||
iconTheme.package = pkgs.papirus-icon-theme;
|
||||
iconTheme.name = "Papirus";
|
||||
};
|
||||
|
||||
home.pointerCursor = {
|
||||
gtk.enable = true;
|
||||
x11.enable = true;
|
||||
package = pkgs.bibata-cursors;
|
||||
name = "Bibata-Modern-Classic";
|
||||
size = 16;
|
||||
};
|
||||
home.pointerCursor = {
|
||||
gtk.enable = true;
|
||||
x11.enable = true;
|
||||
package = pkgs.bibata-cursors;
|
||||
name = "Bibata-Modern-Classic";
|
||||
size = 16;
|
||||
};
|
||||
|
||||
home.sessionVariables = {
|
||||
# QT_QPA_PLATFORMTHEME = "qt5ct";
|
||||
};
|
||||
home.sessionVariables = {
|
||||
# QT_QPA_PLATFORMTHEME = "qt5ct";
|
||||
};
|
||||
|
||||
# Polkit
|
||||
home.file.".config/hypr/polkit.conf".text = ''exec-once = ${pkgs.libsForQt5.polkit-kde-agent}/libexec/polkit-kde-authentication-agent-1'';
|
||||
# Polkit
|
||||
home.file.".config/hypr/polkit.conf".text = ''exec-once = ${pkgs.libsForQt5.polkit-kde-agent}/libexec/polkit-kde-authentication-agent-1'';
|
||||
|
||||
home.file.".config/hypr/waybar-reload.conf".text = let
|
||||
waybar-reload = pkgs.writeScript "waybar-reload" ''
|
||||
#! ${pkgs.bash}/bin/bash
|
||||
home.file.".config/hypr/waybar-reload.conf".text = let
|
||||
waybar-reload = pkgs.writeScript "waybar-reload" ''
|
||||
#! ${pkgs.bash}/bin/bash
|
||||
|
||||
trap "${pkgs.procps}/bin/pkill waybar" EXIT
|
||||
trap "${pkgs.procps}/bin/pkill waybar" EXIT
|
||||
|
||||
while true; do
|
||||
${waybar-hyprland}/bin/waybar -c $HOME/NixFlake/config/waybar/config -s $HOME/NixFlake/config/waybar/style.css &
|
||||
${pkgs.inotifyTools}/bin/inotifywait -e create,modify $HOME/NixFlake/config/waybar/config $HOME/NixFlake/config/waybar/style.css
|
||||
${pkgs.procps}/bin/pkill waybar
|
||||
done
|
||||
while true; do
|
||||
${waybar-hyprland}/bin/waybar -c $HOME/NixFlake/config/waybar/config -s $HOME/NixFlake/config/waybar/style.css &
|
||||
${pkgs.inotifyTools}/bin/inotifywait -e create,modify $HOME/NixFlake/config/waybar/config $HOME/NixFlake/config/waybar/style.css
|
||||
${pkgs.procps}/bin/pkill waybar
|
||||
done
|
||||
'';
|
||||
in ''
|
||||
exec-once = ${waybar-reload}
|
||||
'';
|
||||
in ''
|
||||
exec-once = ${waybar-reload}
|
||||
'';
|
||||
|
||||
home.file.".config/hypr/hyprpaper.conf".text = ''
|
||||
preload = ~/NixFlake/wallpapers/${cfg.theme}.png
|
||||
wallpaper = HDMI-A-1, ~/NixFlake/wallpapers/${cfg.theme}.png
|
||||
wallpaper = HDMI-A-2, ~/NixFlake/wallpapers/${cfg.theme}.png
|
||||
'';
|
||||
home.file.".config/hypr/hyprpaper.conf".text = ''
|
||||
preload = ~/NixFlake/wallpapers/${cfg.theme}.png
|
||||
wallpaper = HDMI-A-1, ~/NixFlake/wallpapers/${cfg.theme}.png
|
||||
wallpaper = HDMI-A-2, ~/NixFlake/wallpapers/${cfg.theme}.png
|
||||
'';
|
||||
|
||||
home.activation = {
|
||||
# NOTE: Keep the hyprland/waybar config symlinked, to allow easy changes with hotreload
|
||||
# TODO: Don't symlink at all, why not just tell Hyprland where the config is? Much easier
|
||||
# TODO: Use this approach for every program that supports it, makes things much easier,
|
||||
# as everything can just stay in ~/NixFlake/config
|
||||
linkHyprlandConfig = hm.dag.entryAfter ["writeBoundary"]
|
||||
(mkLink "~/NixFlake/config/hyprland/hyprland.conf" "~/.config/hypr/hyprland.conf");
|
||||
home.activation = {
|
||||
# NOTE: Keep the hyprland/waybar config symlinked, to allow easy changes with hotreload
|
||||
# TODO: Don't symlink at all, why not just tell Hyprland where the config is? Much easier
|
||||
# TODO: Use this approach for every program that supports it, makes things much easier,
|
||||
# as everything can just stay in ~/NixFlake/config
|
||||
linkHyprlandConfig =
|
||||
hm.dag.entryAfter ["writeBoundary"]
|
||||
(mkLink "~/NixFlake/config/hyprland/hyprland.conf" "~/.config/hypr/hyprland.conf");
|
||||
|
||||
# linkWaybarConfig = hm.dag.entryAfter ["writeBoundary"]
|
||||
# (mkLink "~/NixFlake/config/waybar/config" "~/.config/waybar/config");
|
||||
# linkWaybarStyle = hm.dag.entryAfter ["writeBoundary"]
|
||||
# (mkLink "~/NixFlake/config/waybar/style.css" "~/.config/waybar/style.css");
|
||||
# linkWaybarColors = hm.dag.entryAfter ["writeBoundary"]
|
||||
# (mkLink "~/NixFlake/config/waybar/colors" "~/.config/waybar/colors");
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [
|
||||
hyprpaper # Wallpaper setter
|
||||
hyprpicker # Color picker
|
||||
|
||||
wl-clipboard
|
||||
clipman # Clipboard manager (wl-paste)
|
||||
|
||||
imv # Image viewer
|
||||
moc # Audio player
|
||||
ncpamixer # ncurses pavucontrol
|
||||
slurp # Region selector for screensharing
|
||||
grim # Grab images from compositor
|
||||
|
||||
xfce.thunar
|
||||
xfce.tumbler # Thunar thumbnails
|
||||
libsForQt5.polkit-kde-agent
|
||||
];
|
||||
|
||||
services = {
|
||||
# Notification service
|
||||
dunst = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
programs = {
|
||||
rofi = {
|
||||
enable = true;
|
||||
package = pkgs.rofi-wayland;
|
||||
plugins = [
|
||||
pkgs.keepmenu # TODO: Rofi KeepassXC frontend
|
||||
];
|
||||
|
||||
# NOTE: Don't use this, use the configfile for hot-reload
|
||||
# terminal = "${pkgs.kitty}/bin/kitty";
|
||||
# font = "JetBrains Mono 14";
|
||||
# theme =
|
||||
# extraConfig = '''';
|
||||
# linkWaybarConfig = hm.dag.entryAfter ["writeBoundary"]
|
||||
# (mkLink "~/NixFlake/config/waybar/config" "~/.config/waybar/config");
|
||||
# linkWaybarStyle = hm.dag.entryAfter ["writeBoundary"]
|
||||
# (mkLink "~/NixFlake/config/waybar/style.css" "~/.config/waybar/style.css");
|
||||
# linkWaybarColors = hm.dag.entryAfter ["writeBoundary"]
|
||||
# (mkLink "~/NixFlake/config/waybar/colors" "~/.config/waybar/colors");
|
||||
};
|
||||
|
||||
waybar = {
|
||||
enable = true;
|
||||
package = waybar-hyprland;
|
||||
home.packages = with pkgs; [
|
||||
hyprpaper # Wallpaper setter
|
||||
hyprpicker # Color picker
|
||||
|
||||
systemd = {
|
||||
enable = false; # Gets started by hyprland
|
||||
wl-clipboard
|
||||
clipman # Clipboard manager (wl-paste)
|
||||
|
||||
imv # Image viewer
|
||||
moc # Audio player
|
||||
ncpamixer # ncurses pavucontrol
|
||||
slurp # Region selector for screensharing
|
||||
grim # Grab images from compositor
|
||||
|
||||
xfce.thunar
|
||||
xfce.tumbler # Thunar thumbnails
|
||||
libsForQt5.polkit-kde-agent
|
||||
];
|
||||
|
||||
services = {
|
||||
# Notification service
|
||||
dunst = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
programs = {
|
||||
rofi = {
|
||||
enable = true;
|
||||
package = pkgs.rofi-wayland;
|
||||
plugins = [
|
||||
pkgs.keepmenu # TODO: Rofi KeepassXC frontend
|
||||
];
|
||||
|
||||
# NOTE: Don't use this, use the configfile for hot-reload
|
||||
# terminal = "${pkgs.kitty}/bin/kitty";
|
||||
# font = "JetBrains Mono 14";
|
||||
# theme =
|
||||
# extraConfig = '''';
|
||||
};
|
||||
|
||||
waybar = {
|
||||
enable = true;
|
||||
package = waybar-hyprland;
|
||||
|
||||
systemd = {
|
||||
enable = false; # Gets started by hyprland
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
@ -1,14 +1,13 @@
|
||||
{
|
||||
lib,
|
||||
mylib
|
||||
mylib,
|
||||
}:
|
||||
with lib;
|
||||
with mylib.modules;
|
||||
{
|
||||
with mylib.modules; {
|
||||
enable = mkEnableOpt "Hyprland Window Manager + Compositor";
|
||||
|
||||
theme = mkOption {
|
||||
type = types.str;
|
||||
description = "Wallpaper and colorscheme to use";
|
||||
};
|
||||
}
|
||||
};
|
||||
}
|
||||
|
@ -11,7 +11,7 @@ with mylib.modules; let
|
||||
cfg = config.modules.kitty;
|
||||
# cfgnv = config.modules.neovim;
|
||||
in {
|
||||
options.modules.kitty = import ./options.nix { inherit lib mylib; };
|
||||
options.modules.kitty = import ./options.nix {inherit lib mylib;};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
programs.kitty = {
|
||||
|
@ -1,9 +1,8 @@
|
||||
{
|
||||
lib,
|
||||
mylib
|
||||
mylib,
|
||||
}:
|
||||
with lib;
|
||||
with mylib.modules;
|
||||
{
|
||||
with mylib.modules; {
|
||||
enable = mkEnableOpt "Kitty";
|
||||
}
|
||||
}
|
||||
|
@ -10,7 +10,7 @@ with lib;
|
||||
with mylib.modules; let
|
||||
cfg = config.modules.misc;
|
||||
in {
|
||||
options.modules.misc = import ./options.nix { inherit lib mylib; };
|
||||
options.modules.misc = import ./options.nix {inherit lib mylib;};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
home.packages = with pkgs;
|
||||
|
@ -1,10 +1,9 @@
|
||||
{
|
||||
lib,
|
||||
mylib
|
||||
mylib,
|
||||
}:
|
||||
with lib;
|
||||
with mylib.modules;
|
||||
{
|
||||
with mylib.modules; {
|
||||
enable = mkEnableOpt "Misc module";
|
||||
|
||||
keepass = {
|
||||
@ -16,4 +15,4 @@ with mylib.modules;
|
||||
enable = mkEnableOpt "ProtonMail";
|
||||
autostart = mkBoolOpt false "Autostart ProtonMail Bridge";
|
||||
};
|
||||
}
|
||||
}
|
||||
|
@ -10,7 +10,7 @@ with lib;
|
||||
with mylib.modules; let
|
||||
cfg = config.modules.neovim;
|
||||
in {
|
||||
options.modules.neovim = import ./options.nix { inherit lib mylib; };
|
||||
options.modules.neovim = import ./options.nix {inherit lib mylib;};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
# TODO: Configure by option
|
||||
|
@ -1,10 +1,9 @@
|
||||
{
|
||||
lib,
|
||||
mylib
|
||||
mylib,
|
||||
}:
|
||||
with lib;
|
||||
with mylib.modules;
|
||||
{
|
||||
with mylib.modules; {
|
||||
enable = mkEnableOpt "NeoVim";
|
||||
alias = mkBoolOpt false "Link nvim to vim/vi";
|
||||
}
|
||||
}
|
||||
|
@ -13,7 +13,7 @@ with lib;
|
||||
with mylib.modules; let
|
||||
cfg = config.modules.nextcloud;
|
||||
in {
|
||||
options.modules.nextcloud = import ./options.nix { inherit lib mylib; };
|
||||
options.modules.nextcloud = import ./options.nix {inherit lib mylib;};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
assertions = [
|
||||
|
@ -1,10 +1,9 @@
|
||||
{
|
||||
lib,
|
||||
mylib
|
||||
mylib,
|
||||
}:
|
||||
with lib;
|
||||
with mylib.modules;
|
||||
{
|
||||
with mylib.modules; {
|
||||
enable = mkEnableOpt "Nextcloud Client";
|
||||
autostart = mkBoolOpt false "Autostart the Nextcloud client (systemd)";
|
||||
}
|
||||
}
|
||||
|
@ -11,7 +11,7 @@ with lib;
|
||||
with mylib.modules; let
|
||||
cfg = config.modules.plasma;
|
||||
in {
|
||||
options.modules.plasma = import ./options.nix { inherit lib mylib; };
|
||||
options.modules.plasma = import ./options.nix {inherit lib mylib;};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
assertions = [
|
||||
|
@ -1,9 +1,8 @@
|
||||
{
|
||||
lib,
|
||||
mylib
|
||||
mylib,
|
||||
}:
|
||||
with lib;
|
||||
with mylib.modules;
|
||||
{
|
||||
with mylib.modules; {
|
||||
enable = mkEnableOpt "Plasma Desktop";
|
||||
}
|
||||
}
|
||||
|
@ -10,7 +10,7 @@ with lib;
|
||||
with mylib.modules; let
|
||||
cfg = config.modules.ranger;
|
||||
in {
|
||||
options.modules.ranger = import ./options.nix { inherit lib mylib; };
|
||||
options.modules.ranger = import ./options.nix {inherit lib mylib;};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
home.packages = with pkgs;
|
||||
|
@ -1,10 +1,9 @@
|
||||
{
|
||||
lib,
|
||||
mylib
|
||||
mylib,
|
||||
}:
|
||||
with lib;
|
||||
with mylib.modules;
|
||||
{
|
||||
with mylib.modules; {
|
||||
enable = mkEnableOpt "Ranger";
|
||||
preview = mkBoolOpt false "Enable Ranger image preview";
|
||||
}
|
||||
}
|
||||
|
@ -116,7 +116,7 @@
|
||||
# TODO: Networking system module
|
||||
# NOTE: The systemd networking options are not very flexible, so this will be a problem for the laptop. (=> Use IWD for WiFi)
|
||||
systemd = {
|
||||
network = let
|
||||
network = let
|
||||
eth-interface = "enp0s31f6";
|
||||
wireless-interface = "";
|
||||
in {
|
||||
@ -154,7 +154,7 @@
|
||||
# TODO: WiFi Hotspot?
|
||||
};
|
||||
|
||||
services = let
|
||||
services = let
|
||||
# TODO: IPv6 Configuration
|
||||
wgup = interface: privatekey: publickey: endpoint: ''
|
||||
#! ${pkgs.bash}/bin/bash
|
||||
@ -180,8 +180,8 @@
|
||||
# This namespace contains the WireGuard virtual network device, because this should be the only interface available for apps that should run through VPN
|
||||
netns-vpn = {
|
||||
description = "Network namespace for ProtonVPN using Wireguard";
|
||||
wantedBy = [ "default.target" ];
|
||||
before = [ "display-manager.service" "network.target" ];
|
||||
wantedBy = ["default.target"];
|
||||
before = ["display-manager.service" "network.target"];
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
RemainAfterExit = true;
|
||||
@ -201,8 +201,8 @@
|
||||
# - The endpoints/public keys should be in a map?
|
||||
wg0-de-115 = {
|
||||
description = "Wireguard ProtonVPN Server DE-115";
|
||||
requires = [ "netns-vpn.service" ];
|
||||
after = [ "netns-vpn.service" ];
|
||||
requires = ["netns-vpn.service"];
|
||||
after = ["netns-vpn.service"];
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
RemainAfterExit = true;
|
||||
@ -245,7 +245,7 @@
|
||||
"podman0"
|
||||
"docker0"
|
||||
];
|
||||
|
||||
|
||||
allowedTCPPorts = [
|
||||
22 # SSH
|
||||
80 # HTTP
|
||||
@ -259,7 +259,7 @@
|
||||
# 32400 # Plex
|
||||
];
|
||||
allowedTCPPortRanges = [];
|
||||
|
||||
|
||||
allowedUDPPorts = [
|
||||
9918 # Wireguard
|
||||
18000 # Anno 1800
|
||||
@ -569,7 +569,7 @@
|
||||
# enable = true;
|
||||
# openFirewall = true;
|
||||
# };
|
||||
|
||||
|
||||
udev = {
|
||||
packages = with pkgs; [
|
||||
usb-blaster-udev-rules # For Intel Quartus
|
||||
@ -641,7 +641,7 @@
|
||||
homeassistant = {
|
||||
image = "homeassistant/home-assistant";
|
||||
autoStart = false;
|
||||
|
||||
|
||||
ports = [
|
||||
"8123:8123"
|
||||
];
|
||||
|
@ -22,7 +22,7 @@
|
||||
# extraModprobeConfig = ''
|
||||
# options iwlwifi 11n_disable=1 wd_disable=0
|
||||
# '';
|
||||
|
||||
|
||||
# Specific to used kernel (currently linux_zen)
|
||||
extraModulePackages = with config.boot.kernelPackages; [
|
||||
new-lg4ff # Logitech force feedback
|
||||
|
Reference in New Issue
Block a user