diff --git a/base.nix b/base.nix index 4b79274..6bc6f38 100644 --- a/base.nix +++ b/base.nix @@ -1,4 +1,4 @@ -{ config, lib, pkgs, inputs, outputs, ... }: { +{ lib, pkgs, inputs, outputs, ... }: { imports = [ inputs.home-manager.nixosModules.home-manager ./modules/apps.nix @@ -8,13 +8,13 @@ ./modules/scripts.nix ./jawz.nix ]; + system.stateVersion = "24.05"; home-manager = { useUserPackages = true; useGlobalPkgs = true; extraSpecialArgs = { inherit inputs outputs; }; users.jawz = import ./home-manager.nix; }; - system.stateVersion = "24.05"; time = { timeZone = "America/Mexico_City"; hardwareClockInLocalTime = true; @@ -68,7 +68,7 @@ ]; }; }; - documentation = { enable = false; }; + documentation.enable = false; users.groups.piracy.gid = 985; environment = { systemPackages = with pkgs; [ wget ]; diff --git a/flake.nix b/flake.nix index 92943b5..b8f70cd 100644 --- a/flake.nix +++ b/flake.nix @@ -1,6 +1,5 @@ { - description = "A very basic flake"; - + description = "JawZ NixOS flake setup"; inputs = { nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-24.05"; nixpkgs-unstable.url = "github:nixos/nixpkgs?ref=nixos-unstable"; @@ -87,6 +86,8 @@ discord = super.discord.override { withOpenASAR = true; }; ripgrep = super.ripgrep.override { withPCRE2 = true; }; blender = super.blender.override { cudaSupport = true; }; + papirus-icon-theme = + super.papirus-icon-theme.override { color = "adwaita"; }; }) ]; }) diff --git a/gnome.nix b/gnome.nix index d80cc46..af40995 100644 --- a/gnome.nix +++ b/gnome.nix @@ -1,4 +1,4 @@ -{ config, pkgs, ... }: +{ pkgs, ... }: { services = { @@ -37,24 +37,23 @@ enable = true; style = "adwaita"; }; - users.users.jawz.packages = with pkgs; - ([ - # ffmpegthumbnailer # generate thumbnails - adw-gtk3 # theme legacy applications - gnome.gnome-tweaks # tweaks for the gnome desktop environment - (papirus-icon-theme.override { color = "adwaita"; }) - # gradience # theme customizer, allows you to modify adw-gtk3 themes - # lm_sensors # for extension, displays cpu temp - libgda # for pano shell extension - ]) ++ (with pkgs.gnomeExtensions; [ - appindicator # applets for open applications - reading-strip # like putting a finger on every line I read - tactile # window manager - pano # clipboard manager - freon # hardware temperature monitor - # blur-my-shell # make the overview more visually appealing - # gamemode # I guess I'm a gamer now? - # burn-my-windows - # forge # window manager - ]); + users.users.jawz.packages = (with pkgs; [ + # ffmpegthumbnailer # generate thumbnails + adw-gtk3 # theme legacy applications + gnome.gnome-tweaks # tweaks for the gnome desktop environment + papirus-icon-theme # icon theme + # gradience # theme customizer, allows you to modify adw-gtk3 themes + # lm_sensors # for extension, displays cpu temp + libgda # for pano shell extension + ]) ++ (with pkgs.gnomeExtensions; [ + appindicator # applets for open applications + reading-strip # like putting a finger on every line I read + tactile # window manager + pano # clipboard manager + freon # hardware temperature monitor + # blur-my-shell # make the overview more visually appealing + # gamemode # I guess I'm a gamer now? + # burn-my-windows + # forge # window manager + ]); } diff --git a/home-manager.nix b/home-manager.nix index bfa3c20..65bcad8 100644 --- a/home-manager.nix +++ b/home-manager.nix @@ -1,4 +1,4 @@ -{ config, lib, pkgs, inputs, outputs, ... }: { +{ config, ... }: { home.stateVersion = "24.05"; programs.bash = { @@ -51,7 +51,7 @@ templates = "${config.xdg.dataHome}/Templates"; videos = "${config.home.homeDirectory}/Videos"; }; - configFile = { "wgetrc".source = ../dotfiles/wget/wgetrc; }; + configFile = { "wgetrc".source = ./dotfiles/wget/wgetrc; }; }; programs = { helix.enable = true; diff --git a/hosts/workstation/configuration.nix b/hosts/workstation/configuration.nix index 5792f4e..8f55154 100644 --- a/hosts/workstation/configuration.nix +++ b/hosts/workstation/configuration.nix @@ -1,4 +1,4 @@ -{ config, lib, pkgs, ... }: { +{ pkgs, ... }: { imports = [ # ./hardware-configuration.nix @@ -46,7 +46,6 @@ ffmpeg4discord.enable = true; }; }; - networking = { hostName = "workstation"; firewall = let @@ -64,7 +63,6 @@ allowedUDPPortRanges = openPortRanges; }; }; - nix = let featuresList = [ "nixos-test" @@ -83,12 +81,10 @@ system-features = featuresList; }; }; - nixpkgs.config = { allowUnfree = true; permittedInsecurePackages = [ ]; }; - users = { groups.nixremote.gid = 555; users = { @@ -109,7 +105,6 @@ }; }; }; - environment.etc = { "wireplumber/bluetooth.lua.d/51-bluez-config.lua".text = '' bluez_monitor.properties = { @@ -120,7 +115,6 @@ } ''; }; - programs = { kdeconnect = { enable = true; @@ -131,7 +125,6 @@ enableVirtualCamera = true; }; }; - services.resilio = { deviceName = "chichis"; enable = true; diff --git a/hosts/workstation/hardware-configuration.nix b/hosts/workstation/hardware-configuration.nix index f5dff7b..119e635 100644 --- a/hosts/workstation/hardware-configuration.nix +++ b/hosts/workstation/hardware-configuration.nix @@ -48,13 +48,9 @@ device = "/dev/disk/by-uuid/e9618e85-a631-4374-b2a4-22c376d6e41b"; preLVM = true; }; - initrd = { - availableKernelModules = - [ "xhci_pci" "ahci" "usbhid" "nvme" "usb_storage" "sd_mod" ]; - kernelModules = [ ]; - }; + initrd.availableKernelModules = + [ "xhci_pci" "ahci" "usbhid" "nvme" "usb_storage" "sd_mod" ]; }; - fileSystems = let nfsMount = (server: nfsDisk: { device = "${server}:/${nfsDisk}"; diff --git a/jawz.nix b/jawz.nix index 69dfdc6..ac89a1e 100644 --- a/jawz.nix +++ b/jawz.nix @@ -1,8 +1,7 @@ -{ config, lib, pkgs, ... }: - -{ +{ ... }: { users.users.jawz = { isNormalUser = true; + initialPassword = "password"; extraGroups = [ "wheel" "networkmanager" @@ -15,14 +14,11 @@ "libvirt" "rslsync" ]; - initialPassword = "password"; - openssh = { - authorizedKeys.keys = [ - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIB5GaQM4N+yGAByibOFQOBVMV/6TjOfaGIP+NunMiK76 gpodeacerocdreyes@100CDREYES" - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMkpeIV9G26W2/e9PsjBx3sNwPGoicJ807ExRGh4KjhW jawz@server" - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGjnNIggZweJ+GJKKvFEPhpLcs+t64xXjBmeuERsLFLL jawz@miniserver" - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINBEblxSDhWPEo33crSjooeUg4W02ruENxHLmmBqCuIo jawz@galaxy" - ]; - }; + openssh.authorizedKeys.keys = [ + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIB5GaQM4N+yGAByibOFQOBVMV/6TjOfaGIP+NunMiK76 gpodeacerocdreyes@100CDREYES" + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMkpeIV9G26W2/e9PsjBx3sNwPGoicJ807ExRGh4KjhW jawz@server" + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGjnNIggZweJ+GJKKvFEPhpLcs+t64xXjBmeuERsLFLL jawz@miniserver" + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINBEblxSDhWPEo33crSjooeUg4W02ruENxHLmmBqCuIo jawz@galaxy" + ]; }; } diff --git a/modules/apps.nix b/modules/apps.nix index 5850b30..e5e7ce4 100644 --- a/modules/apps.nix +++ b/modules/apps.nix @@ -1,4 +1,4 @@ -{ config, lib, pkgs, ... }: { +{ lib, ... }: { imports = [ ./apps/art.nix ./apps/dictionaries.nix diff --git a/modules/apps/art.nix b/modules/apps/art.nix index db95168..a33382f 100644 --- a/modules/apps/art.nix +++ b/modules/apps/art.nix @@ -4,20 +4,21 @@ dev.gameDev.enable = lib.mkEnableOption "enable"; }; config = lib.mkIf config.my.apps.art.enable { - users.users.jawz.packages = with pkgs; - [ - gimp # the coolest bestest art program to never exist - krita # art to your heart desire! - mypaint # not the best art program - mypaint-brushes # but it's got some - mypaint-brushes1 # nice damn brushes - pureref # create inspiration/reference boards - blender # cgi animation and sculpting - # drawpile # arty party with friends!! - ] ++ (if config.my.dev.gameDev.enable then [ + users.users.jawz.packages = (with pkgs; [ + gimp # the coolest bestest art program to never exist + krita # art to your heart desire! + mypaint # not the best art program + mypaint-brushes # but it's got some + mypaint-brushes1 # nice damn brushes + pureref # create inspiration/reference boards + blender # cgi animation and sculpting + # drawpile # arty party with friends!! + ]) ++ (if config.my.dev.gameDev.enable then + with pkgs; [ godot_4 # game development gdtoolkit # gdscript language server - ] else - [ ]); + ] + else + [ ]); }; } diff --git a/modules/apps/gaming.nix b/modules/apps/gaming.nix index 1816c3c..321c4f3 100644 --- a/modules/apps/gaming.nix +++ b/modules/apps/gaming.nix @@ -12,7 +12,7 @@ in { dedicatedServer.openFirewall = true; }; }; - users.users.jawz.packages = with pkgs; [ + users.users.jawz.packages = (with pkgs; [ mangohud # fps & stats overlay lutris # games launcher & emulator hub cartridges # games launcher @@ -20,7 +20,6 @@ in { heroic # install epic games protonup-qt # update proton-ge #minecraft # minecraft official launcher - polymc # minecraft launcher with mod support ns-usbloader # load games into my switch # grapejuice # roblox manager @@ -32,6 +31,8 @@ in { #citra-nightly # 3Ds emulator snes9x-gtk # snes emulator ryujinx # switch emulator + ]) ++ [ + polymc # minecraft launcher with mod support ]; }; } diff --git a/modules/apps/internet.nix b/modules/apps/internet.nix index 8925328..a699a77 100644 --- a/modules/apps/internet.nix +++ b/modules/apps/internet.nix @@ -11,8 +11,7 @@ in { }; }; services.psd.enable = true; - users.users.jawz.packages = with pkgs; [ - vdhcoapp # video download helper assistant + users.users.jawz.packages = (with pkgs; [ nextcloud-client # self-hosted google-drive alternative fragments # beautiful torrent client protonmail-bridge # bridge for protonmail @@ -23,6 +22,8 @@ in { vesktop # screen share with audio discord discord # :3 # hugo # website engine + ]) ++ [ + vdhcoapp # video download helper assistant ]; }; } diff --git a/modules/apps/office.nix b/modules/apps/office.nix index 3e00708..71b1603 100644 --- a/modules/apps/office.nix +++ b/modules/apps/office.nix @@ -1,6 +1,7 @@ { config, lib, pkgs, ... }: { options.my.apps.office.enable = lib.mkEnableOption "enable"; config = lib.mkIf config.my.apps.office.enable { + environment.variables.CALIBRE_USE_SYSTEM_THEME = "1"; users.users.jawz.packages = with pkgs; [ libreoffice # office, but based calibre # ugly af eBook library manager @@ -11,6 +12,5 @@ # wike # gtk wikipedia wow! # denaro # manage your finances ]; - environment.variables = { CALIBRE_USE_SYSTEM_THEME = "1"; }; }; } diff --git a/modules/dev.nix b/modules/dev.nix index 9b9813d..72c4824 100644 --- a/modules/dev.nix +++ b/modules/dev.nix @@ -1,4 +1,4 @@ -{ config, lib, pkgs, ... }: { +{ lib, ... }: { imports = [ ./dev/sh.nix ./dev/nix.nix diff --git a/modules/dev/docker.nix b/modules/dev/docker.nix index 4af2480..5aeef05 100644 --- a/modules/dev/docker.nix +++ b/modules/dev/docker.nix @@ -1,8 +1,10 @@ { config, lib, pkgs, ... }: { options.my.dev.docker.enable = lib.mkEnableOption "enable"; config = lib.mkIf config.my.dev.docker.enable { - users.users.jawz.packages = (with pkgs; [ dockfmt ]) - ++ (with pkgs.nodePackages; [ dockerfile-language-server-nodejs ]); environment.variables.DOCKER_CONFIG = "\${XDG_CONFIG_HOME}/docker"; + users.users.jawz.packages = with pkgs; [ + dockfmt + nodePackages.dockerfile-language-server-nodejs + ]; }; } diff --git a/modules/dev/haskell.nix b/modules/dev/haskell.nix index dee66cb..295178b 100644 --- a/modules/dev/haskell.nix +++ b/modules/dev/haskell.nix @@ -1,10 +1,10 @@ { config, lib, pkgs, ... }: { options.my.dev.haskell.enable = lib.mkEnableOption "enable"; config = lib.mkIf config.my.dev.haskell.enable { - users.users.jawz.packages = with pkgs; ([ + users.users.jawz.packages = with pkgs; [ ghc # compiler haskell-language-server # lsp - ]); + ]; environment.variables = { CABAL_DIR = "\${XDG_CACHE_HOME}/cabal"; STACK_ROOT = "\${XDG_DATA_HOME}/stack"; diff --git a/modules/dev/javascript.nix b/modules/dev/javascript.nix index 6a54c2d..12a2b88 100644 --- a/modules/dev/javascript.nix +++ b/modules/dev/javascript.nix @@ -1,13 +1,12 @@ { config, lib, pkgs, ... }: { options.my.dev.javascript.enable = lib.mkEnableOption "enable"; config = lib.mkIf config.my.dev.javascript.enable { - home-manager.users.jawz.programs.xdg.configFile = { - "npm/npmrc".source = ../dotfiles/npm/npmrc; + home-manager.users.jawz.xdg.configFile = { + "npm/npmrc".source = ../../dotfiles/npm/npmrc; "configstore/update-notifier-npm-check.json".source = - ../dotfiles/npm/update-notifier-npm-check.json; + ../../dotfiles/npm/update-notifier-npm-check.json; }; - users.users.jawz.packages = (with pkgs; [ nodejs ]) - ++ (with pkgs.nodePackages; [ pnpm ]); + users.users.jawz.packages = with pkgs; [ nodejs nodePackages.pnpm ]; environment.variables = { NPM_CONFIG_USERCONFIG = "\${XDG_CONFIG_HOME}/npm/npmrc"; PNPM_HOME = "\${XDG_DATA_HOME}/pnpm"; diff --git a/modules/dev/nix.nix b/modules/dev/nix.nix index b54ef3f..fd64398 100644 --- a/modules/dev/nix.nix +++ b/modules/dev/nix.nix @@ -1,13 +1,13 @@ { config, lib, pkgs, ... }: { options.my.dev.nix.enable = lib.mkEnableOption "enable"; config = lib.mkIf config.my.dev.nix.enable { - users.users.jawz.packages = with pkgs; ([ + users.users.jawz.packages = with pkgs; [ expect # keep color when nom'ing nix-output-monitor # autistic nix builds nixfmt-classic # linting nixfmt-rfc-style # linting cachix # why spend time compiling? nixd # language server - ]); + ]; }; } diff --git a/modules/dev/python.nix b/modules/dev/python.nix index b9cf175..ece94c0 100644 --- a/modules/dev/python.nix +++ b/modules/dev/python.nix @@ -1,11 +1,13 @@ { config, lib, pkgs, ... }: { options.my.dev.python.enable = lib.mkEnableOption "enable"; config = lib.mkIf config.my.dev.python.enable { - home-manager.users.jawz.programs.xdg.configFile = { - "python/pythonrc".source = ../dotfiles/pythonrc; + home-manager.users.jawz.xdg.configFile = { + "python/pythonrc".source = ../../dotfiles/pythonrc; }; - users.users.jawz.packages = (with pkgs; ([ + environment.variables.PYTHONSTARTUP = "\${XDG_CONFIG_HOME}/python/pythonrc"; + users.users.jawz.packages = with pkgs; [ pipenv # python development workflow for humans + nodePackages.pyright # LSP (python3.withPackages (ps: with ps; [ black # Python code formatter @@ -19,10 +21,6 @@ # poetry # dependency management made easy # pytest # framework for writing tests ])) - ])) ++ (with pkgs.nodePackages; - [ - pyright # LSP - ]); - environment.variables.PYTHONSTARTUP = "\${XDG_CONFIG_HOME}/python/pythonrc"; + ]; }; } diff --git a/modules/dev/sh.nix b/modules/dev/sh.nix index ea9398b..5ce200a 100644 --- a/modules/dev/sh.nix +++ b/modules/dev/sh.nix @@ -1,10 +1,11 @@ { config, lib, pkgs, ... }: { options.my.dev.sh.enable = lib.mkEnableOption "enable"; config = lib.mkIf config.my.dev.sh.enable { - users.users.jawz.packages = (with pkgs; [ + users.users.jawz.packages = with pkgs; [ bashdb # autocomplete shellcheck # linting shfmt # a shell parser and formatter - ]) ++ (with pkgs.nodePackages; [ bash-language-server ]); + nodePackages.bash-language-server # LSP + ]; }; } diff --git a/modules/emacs.nix b/modules/emacs.nix index d5ffecf..d2f8db3 100644 --- a/modules/emacs.nix +++ b/modules/emacs.nix @@ -2,13 +2,23 @@ options.my.emacs.enable = lib.mkEnableOption "enable"; config = lib.mkIf config.my.emacs.enable { home-manager.users.jawz = { - programs.bash.shellAliases = { - edit = "emacsclient -t"; - e = "edit"; - }; services.lorri.enable = true; + programs.bash = { + initExtra = '' + emacs-sqlite-fix () { + nix-shell -p cmake sqlite --command "doom sync && + sc restart emacs && + emacsclient -e '(org-roam-db-sync)'" && + doom sync + } + ''; + shellAliases = { + edit = "emacsclient -t"; + e = "edit"; + }; + }; }; - users.users.jawz.packages = (with pkgs; ([ + users.users.jawz.packages = (with pkgs; [ fd # modern find, faster searches fzf # fuzzy finder! super cool and useful ripgrep # modern grep @@ -25,7 +35,7 @@ # lsps yaml-language-server markdownlint-cli - ])) ++ (with pkgs.nodePackages; [ + ]) ++ (with pkgs.nodePackages; [ vscode-json-languageserver # linters prettier @@ -34,16 +44,8 @@ enable = true; package = with pkgs; ((emacsPackagesFor emacs-gtk).emacsWithPackages - (epkgs: with epkgs; ([ vterm ]))); + (epkgs: with epkgs; [ vterm ])); defaultEditor = true; }; - home-manager.users.jawz.programs.bash.initExtra = '' - emacs-sqlite-fix () { - nix-shell -p cmake sqlite --command "doom sync && - sc restart emacs && - emacsclient -e '(org-roam-db-sync)'" && - doom sync - } - ''; }; } diff --git a/modules/scripts.nix b/modules/scripts.nix index c462200..6d6dec5 100644 --- a/modules/scripts.nix +++ b/modules/scripts.nix @@ -1,20 +1,29 @@ -{ config, lib, pkgs, ... }: { +{ lib, ... }: { imports = [ - ./scripts/run.nix - ./scripts/tasks.nix - ./scripts/split-dir.nix - ./scripts/pika-list.nix ./scripts/download.nix - ./scripts/ffmpreg.nix ./scripts/ffmpeg4discord.nix + ./scripts/ffmpreg.nix + ./scripts/find-dup-episode.nix + ./scripts/manage-library.nix + ./scripts/nextcloud-cronjob.nix + ./scripts/pika-list.nix + ./scripts/run.nix + ./scripts/split-dir.nix + ./scripts/sub-sync.nix + ./scripts/tasks.nix + ./scripts/update-dns.nix ]; my.scripts = { - run.enable = lib.mkDefault false; - tasks.enable = lib.mkDefault false; - split-dir.enable = lib.mkDefault false; - pika-list.enable = lib.mkDefault false; download.enable = lib.mkDefault false; - ffmpreg.enable = lib.mkDefault false; ffmpeg4discord.enable = lib.mkDefault false; + ffmpreg.enable = lib.mkDefault false; + find-dup-episodes.enable = lib.mkDefault false; + manage-library.enable = lib.mkDefault false; + pika-list.enable = lib.mkDefault false; + run.enable = lib.mkDefault false; + split-dir.enable = lib.mkDefault false; + sub-sync.enable = lib.mkDefault false; + tasks.enable = lib.mkDefault false; + update-dns.enable = lib.mkDefault false; }; } diff --git a/modules/scripts/base.nix b/modules/scripts/base.nix index 1ddaa58..7f893c4 100644 --- a/modules/scripts/base.nix +++ b/modules/scripts/base.nix @@ -1,6 +1,6 @@ { config, lib, pkgs, ... }: { options.my.scripts = lib.mkOption { - type = lib.types.attrsOf (lib.types.submodule ({ + type = lib.types.attrsOf (lib.types.submodule { options = { enable = lib.mkEnableOption "Whether to enable this script"; install = lib.mkEnableOption "Whether to install the script package"; @@ -23,7 +23,7 @@ description = "Package containing the executable script."; }; }; - })); + }); default = { }; description = "Configuration for multiple scripts."; }; diff --git a/modules/scripts/download.nix b/modules/scripts/download.nix index 7e307c7..da982de 100644 --- a/modules/scripts/download.nix +++ b/modules/scripts/download.nix @@ -1,11 +1,11 @@ -{ config, lib, pkgs, ... }: { +{ pkgs, ... }: { imports = [ ./base.nix ]; config = { home-manager.users.jawz = { + xdg.configFile."gallery-dl/config.json".source = + ../../dotfiles/gallery-dl/config.json; + services.lorri.enable = true; programs = { - xdg.configFile = { - "gallery-dl/config.json".source = ../dotfiles/gallery-dl/config.json; - }; bash = { shellAliases = { comic = @@ -15,27 +15,25 @@ dl = "download -u jawz -i"; }; initExtra = '' - list_root="${config.xdg.configHome}"/jawz/lists/jawz + list_root=$XDG_CONFIG_HOME/jawz/lists/jawz export LW=$list_root/watch.txt export LI=$list_root/instant.txt export LC=$list_root/comic.txt ''; }; }; - services.lorri.enable = true; }; - users.users.jawz.packages = (with pkgs; [ gallery-dl ]); + users.users.jawz.packages = [ pkgs.gallery-dl ]; my.scripts.download = { enable = true; install = true; service = false; name = "download"; package = with pkgs.python3Packages; - (buildPythonApplication rec { + (buildPythonApplication { pname = "download"; version = "2.5"; src = ../../scripts/download/.; - doCheck = false; buildInputs = [ setuptools ]; propagatedBuildInputs = [ pyyaml types-pyyaml yt-dlp ]; }); diff --git a/modules/scripts/ffmpeg4discord.nix b/modules/scripts/ffmpeg4discord.nix index 4fb3f98..0206106 100644 --- a/modules/scripts/ffmpeg4discord.nix +++ b/modules/scripts/ffmpeg4discord.nix @@ -1,4 +1,4 @@ -{ config, lib, pkgs, ... }: { +{ pkgs, ... }: { imports = [ ./base.nix ]; config.my.scripts.ffmpeg4discord = { enable = true; diff --git a/modules/scripts/ffmpreg.nix b/modules/scripts/ffmpreg.nix index b5b232e..968c30b 100644 --- a/modules/scripts/ffmpreg.nix +++ b/modules/scripts/ffmpreg.nix @@ -1,4 +1,4 @@ -{ config, lib, pkgs, ... }: { +{ pkgs, ... }: { imports = [ ./base.nix ]; config.my.scripts.ffmpreg = { enable = true; diff --git a/modules/scripts/find-dup-episode.nix b/modules/scripts/find-dup-episode.nix index f983d10..621523e 100644 --- a/modules/scripts/find-dup-episode.nix +++ b/modules/scripts/find-dup-episode.nix @@ -1,4 +1,4 @@ -{ config, lib, pkgs, ... }: { +{ pkgs, ... }: { imports = [ ./base.nix ]; config.my.scripts.find-dup-episodes = { enable = true; diff --git a/modules/scripts/manage-library.nix b/modules/scripts/manage-library.nix index d070215..921bfa1 100644 --- a/modules/scripts/manage-library.nix +++ b/modules/scripts/manage-library.nix @@ -1,4 +1,4 @@ -{ config, lib, pkgs, ... }: { +{ pkgs, ... }: { imports = [ ./base.nix ]; config.my.scripts.manage-library = { enable = true; diff --git a/modules/scripts/nextcloud-cronjob.nix b/modules/scripts/nextcloud-cronjob.nix index 7b1cebd..3c51592 100644 --- a/modules/scripts/nextcloud-cronjob.nix +++ b/modules/scripts/nextcloud-cronjob.nix @@ -1,4 +1,4 @@ -{ config, lib, pkgs, ... }: { +{ pkgs, ... }: { imports = [ ./base.nix ]; config.my.scripts.nextcloud-cronjob = { enable = true; diff --git a/modules/scripts/pika-list.nix b/modules/scripts/pika-list.nix index e87218e..706b6b6 100644 --- a/modules/scripts/pika-list.nix +++ b/modules/scripts/pika-list.nix @@ -1,4 +1,4 @@ -{ config, lib, pkgs, ... }: { +{ pkgs, ... }: { imports = [ ./base.nix ]; config.my.scripts.pika-list = { enable = true; diff --git a/modules/scripts/run.nix b/modules/scripts/run.nix index 6c716ff..12cc9b1 100644 --- a/modules/scripts/run.nix +++ b/modules/scripts/run.nix @@ -1,4 +1,4 @@ -{ config, lib, pkgs, ... }: { +{ pkgs, ... }: { imports = [ ./base.nix ]; config.my.scripts.run = { enable = true; diff --git a/modules/scripts/split-dir.nix b/modules/scripts/split-dir.nix index 4bff2ed..5da41a4 100644 --- a/modules/scripts/split-dir.nix +++ b/modules/scripts/split-dir.nix @@ -1,4 +1,4 @@ -{ config, lib, pkgs, ... }: { +{ pkgs, ... }: { imports = [ ./base.nix ]; config.my.scripts.split-dir = { enable = true; diff --git a/modules/scripts/sub-sync.nix b/modules/scripts/sub-sync.nix index 421629e..cd057c5 100644 --- a/modules/scripts/sub-sync.nix +++ b/modules/scripts/sub-sync.nix @@ -1,4 +1,4 @@ -{ config, lib, pkgs, ... }: { +{ pkgs, ... }: { imports = [ ./base.nix ]; config.my.scripts.sub-sync = { enable = true; diff --git a/modules/scripts/tasks.nix b/modules/scripts/tasks.nix index 38678b9..9e13d72 100644 --- a/modules/scripts/tasks.nix +++ b/modules/scripts/tasks.nix @@ -1,4 +1,4 @@ -{ config, lib, pkgs, ... }: { +{ pkgs, ... }: { imports = [ ./base.nix ]; config.my.scripts.tasks = { enable = true; diff --git a/modules/scripts/update-dns.nix b/modules/scripts/update-dns.nix index e139c5c..0bad14e 100644 --- a/modules/scripts/update-dns.nix +++ b/modules/scripts/update-dns.nix @@ -1,4 +1,4 @@ -{ config, lib, pkgs, ... }: { +{ pkgs, ... }: { imports = [ ./base.nix ]; config.my.scripts.update-dns = { enable = true; diff --git a/modules/services.nix b/modules/services.nix index a3cd8a6..49bdce7 100644 --- a/modules/services.nix +++ b/modules/services.nix @@ -1,4 +1,4 @@ -{ config, lib, pkgs, ... }: { +{ lib, ... }: { imports = [ ./services/network.nix ./services/nvidia.nix diff --git a/modules/services/network.nix b/modules/services/network.nix index 77d0522..3dd6767 100644 --- a/modules/services/network.nix +++ b/modules/services/network.nix @@ -1,4 +1,4 @@ -{ config, lib, pkgs, ... }: { +{ config, lib, ... }: { options.my.services.network.enable = lib.mkEnableOption "enable"; config = lib.mkIf config.my.services.network.enable { networking = { diff --git a/modules/services/printing.nix b/modules/services/printing.nix index 9f724ab..07797de 100644 --- a/modules/services/printing.nix +++ b/modules/services/printing.nix @@ -3,6 +3,7 @@ let printingDrivers = [ pkgs.hplip pkgs.hplipWithPlugin ]; in { options.my.services.printing.enable = lib.mkEnableOption "enable"; config = lib.mkIf config.my.services.printing.enable { + users.users.jawz.packages = [ pkgs.gnome.simple-scan ]; services.printing = { enable = true; drivers = printingDrivers; @@ -11,6 +12,5 @@ in { enable = true; extraBackends = printingDrivers; }; - users.users.jawz.packages = [ pkgs.gnome.simple-scan ]; }; } diff --git a/modules/services/sound.nix b/modules/services/sound.nix index 0ac5a7d..cc7bcb1 100644 --- a/modules/services/sound.nix +++ b/modules/services/sound.nix @@ -1,4 +1,4 @@ -{ config, lib, pkgs, ... }: { +{ config, lib, ... }: { imports = [ # nixGaming.nixosModules.pipewireLowLatency ]; diff --git a/modules/shell.nix b/modules/shell.nix index 746ebb5..0aa5b83 100644 --- a/modules/shell.nix +++ b/modules/shell.nix @@ -1,4 +1,4 @@ -{ config, lib, pkgs, ... }: { +{ lib, ... }: { imports = [ ./shell/exercism.nix ./shell/multimedia.nix ./shell/tools.nix ]; my.shell = { exercism.enable = lib.mkDefault false; diff --git a/modules/shell/exercism.nix b/modules/shell/exercism.nix index bd4ba8b..0af4acb 100644 --- a/modules/shell/exercism.nix +++ b/modules/shell/exercism.nix @@ -1,9 +1,9 @@ { config, lib, pkgs, ... }: { options.my.shell.exercism.enable = lib.mkEnableOption "enable"; config = lib.mkIf config.my.shell.exercism.enable { - users.users.jawz.packages = with pkgs; ([ + users.users.jawz.packages = with pkgs; [ exercism # learn to code bats # testing system, required by Exercism - ]); + ]; }; } diff --git a/modules/shell/multimedia.nix b/modules/shell/multimedia.nix index 306dfa9..8f76a06 100644 --- a/modules/shell/multimedia.nix +++ b/modules/shell/multimedia.nix @@ -1,25 +1,23 @@ { config, lib, pkgs, ... }: { options.my.shell.multimedia.enable = lib.mkEnableOption "enable"; config = lib.mkIf config.my.shell.multimedia.enable { - users.users.jawz.packages = with pkgs; - [ - gallery-dl # similar to yt-dlp but for most image gallery websites - yt-dlp # downloads videos from most video websites - ffmpeg # not ffmpreg, the coolest video conversion tool! - imagemagick # photoshop what?? - ] ++ (with pkgs.python3Packages; - [ - (buildPythonApplication rec { - pname = "ffpb"; - version = "0.4.1"; - src = fetchPypi { - inherit pname version; - sha256 = "sha256-7eVqbLpMHS1sBw2vYS4cTtyVdnnknGtEI8190VlXflk="; - }; - doCheck = false; - buildInputs = [ setuptools ]; - propagatedBuildInputs = [ tqdm ]; - }) - ]); + users.users.jawz.packages = (with pkgs; [ + gallery-dl # similar to yt-dlp but for most image gallery websites + yt-dlp # downloads videos from most video websites + ffmpeg # not ffmpreg, the coolest video conversion tool! + imagemagick # photoshop what?? + ]) ++ [ + (pkgs.python3Packages.buildPythonApplication rec { + pname = "ffpb"; + version = "0.4.1"; + src = pkgs.python3Packages.fetchPypi { + inherit pname version; + sha256 = "sha256-7eVqbLpMHS1sBw2vYS4cTtyVdnnknGtEI8190VlXflk="; + }; + doCheck = false; + buildInputs = [ pkgs.python3Packages.setuptools ]; + propagatedBuildInputs = [ pkgs.python3Packages.tqdm ]; + }) + ]; }; } diff --git a/modules/shell/tools.nix b/modules/shell/tools.nix index 2d5c399..4081cf6 100644 --- a/modules/shell/tools.nix +++ b/modules/shell/tools.nix @@ -1,51 +1,53 @@ { config, lib, pkgs, ... }: { options.my.shell.tools.enable = lib.mkEnableOption "enable"; config = lib.mkIf config.my.shell.tools.enable { - home-manager.users.jawz.programs = { - bash = { - initExtra = '' - if command -v fzf-share >/dev/null; then - source "$(fzf-share)/key-bindings.bash" - source "$(fzf-share)/completion.bash" - fi - ''; - shellAliases = { - cd = "z"; - hh = "hstr"; - ls = "eza --icons --group-directories-first"; - rm = "trash"; - b = "bat"; - f = "fzf --multi --exact -i"; - unique-extensions = '' - fd -tf | rev | cut -d. -f1 | rev | - tr '[:upper:]' '[:lower:]' | sort | - uniq --count | sort -rn''; + home-manager.users.jawz = { + xdg.configFile."htop/htoprc".source = ../../dotfiles/htop/htoprc; + programs = { + hstr.enable = true; + htop = { + enable = true; + package = pkgs.htop-vim; }; - }; - xdg.configFile = { "htop/htoprc".source = ../dotfiles/htop/htoprc; }; - hstr.enable = true; - htop = { - enable = true; - package = pkgs.htop-vim; - }; - zoxide = { - enable = true; - enableBashIntegration = true; - }; - bat = { - enable = true; - config = { - pager = "less -FR"; - theme = "base16"; + zoxide = { + enable = true; + enableBashIntegration = true; + }; + bash = { + initExtra = '' + if command -v fzf-share >/dev/null; then + source "$(fzf-share)/key-bindings.bash" + source "$(fzf-share)/completion.bash" + fi + ''; + shellAliases = { + cd = "z"; + hh = "hstr"; + ls = "eza --icons --group-directories-first"; + rm = "trash"; + b = "bat"; + f = "fzf --multi --exact -i"; + unique-extensions = '' + fd -tf | rev | cut -d. -f1 | rev | + tr '[:upper:]' '[:lower:]' | sort | + uniq --count | sort -rn''; + }; + }; + bat = { + enable = true; + config = { + pager = "less -FR"; + theme = "base16"; + }; + extraPackages = with pkgs.bat-extras; [ + batman # man pages + batpipe # piping + batgrep # ripgrep + batdiff # this is getting crazy! + batwatch # probably my next best friend + prettybat # trans your sourcecode! + ]; }; - extraPackages = with pkgs.bat-extras; [ - batman # man pages - batpipe # piping - batgrep # ripgrep - batdiff # this is getting crazy! - batwatch # probably my next best friend - prettybat # trans your sourcecode! - ]; }; }; programs = { diff --git a/pkgs/fooyin/default.nix b/pkgs/fooyin/default.nix index f0edd31..ab07fc2 100644 --- a/pkgs/fooyin/default.nix +++ b/pkgs/fooyin/default.nix @@ -1,5 +1,5 @@ { stdenv, lib, fetchFromGitHub, cmake, pkg-config, alsa-lib, ffmpeg, kdePackages -, kdsingleapplication, openssl, pipewire, taglib, zlib }: +, kdsingleapplication, pipewire, taglib }: stdenv.mkDerivation (finalAttrs: { pname = "fooyin"; @@ -28,8 +28,6 @@ stdenv.mkDerivation (finalAttrs: { cmakeFlags = [ (lib.cmakeBool "BUILD_TESTING" (finalAttrs.doCheck or false)) - # we need INSTALL_FHS to be true as the various artifacts are otherwise just dumped in the root - # of $out and the fixupPhase cleans things up anyway (lib.cmakeBool "INSTALL_FHS" true) ]; diff --git a/pkgs/obs-studio.nix b/pkgs/obs-studio.nix index 3b36ab3..c5dd405 100644 --- a/pkgs/obs-studio.nix +++ b/pkgs/obs-studio.nix @@ -1,21 +1,16 @@ { pkgs, lib, config, ... }: - -with lib; - let cfg = config.programs.obs-studio; in { options.programs.obs-studio = { - enable = mkEnableOption "OBS Studio program"; - - package = mkOption { - type = types.package; + enable = lib.mkEnableOption "OBS Studio program"; + package = lib.mkOption { + type = lib.types.package; default = pkgs.obs-studio; defaultText = "pkgs.obs-studio"; description = "Set obs-studio package to use."; }; - - enableVirtualCamera = mkOption { - type = types.bool; + enableVirtualCamera = lib.mkOption { + type = lib.types.bool; default = false; description = '' Installs and sets up the v4l2loopback kernel module, necesary for OBS @@ -23,20 +18,15 @@ in { ''; }; }; - - config = mkIf cfg.enable { + config = lib.mkIf cfg.enable { environment.systemPackages = [ cfg.package ]; - - boot = mkIf cfg.enableVirtualCamera { + boot = lib.mkIf cfg.enableVirtualCamera { extraModulePackages = with config.boot.kernelPackages; [ v4l2loopback ]; - extraModprobeConfig = '' options v4l2loopback devices=1 video_nr=1 card_label="OBS Cam" exclusive_caps=1 ''; }; - - security.polkit.enable = mkIf cfg.enableVirtualCamera true; + security.polkit.enable = lib.mkIf cfg.enableVirtualCamera true; }; - - meta.maintainers = with lib.maintainers; [ CaptainJawZ ]; + meta.maintainers = [ lib.maintainers.CaptainJawZ ]; } diff --git a/pkgs/polymc/default.nix b/pkgs/polymc/default.nix index dc250c7..9cd1e86 100644 --- a/pkgs/polymc/default.nix +++ b/pkgs/polymc/default.nix @@ -6,10 +6,10 @@ let polymc = let - binpath = lib.makeBinPath ([ xorg.xrandr glxinfo pciutils ]); + binpath = lib.makeBinPath [ xorg.xrandr glxinfo pciutils ]; libpath = with xorg; - lib.makeLibraryPath ([ + lib.makeLibraryPath [ libX11 libXext libXcursor @@ -23,7 +23,7 @@ let udev flite stdenv.cc.cc.lib - ]); + ]; gameLibraryPath = libpath + ":${addOpenGLRunpath.driverLink}/lib"; @@ -107,7 +107,7 @@ let ln -s $src/share $out/share ''; - postFixup = let javaPaths = lib.makeSearchPath "bin/java" (extraJDKs); + postFixup = let javaPaths = lib.makeSearchPath "bin/java" extraJDKs; in '' wrapProgram $out/bin/polymc \ --suffix LD_LIBRARY_PATH : "${libsPath}" \ diff --git a/pkgs/pureref/default.nix b/pkgs/pureref/default.nix index 6b34b31..03f3935 100644 --- a/pkgs/pureref/default.nix +++ b/pkgs/pureref/default.nix @@ -12,11 +12,11 @@ appimageTools.wrapType1 rec { curl "https://www.pureref.com/files/build.php?build=LINUX64.Appimage&version=${version}&downloadKey=$key" --output $out ''; - meta = with lib; { + meta = { description = "Reference Image Viewer"; homepage = "https://www.pureref.com"; - license = licenses.unfree; - maintainers = with maintainers; [ elnudev ]; + license = lib.licenses.unfree; + maintainers = [ lib.maintainers.elnudev ]; platforms = [ "x86_64-linux" ]; sourceProvenance = [ lib.sourceTypes.binaryNativeCode ]; };