From 168f87a62a6f4d56f747706a82de9d75ae79a94a Mon Sep 17 00:00:00 2001 From: Seven Of Aces Date: Sun, 25 Aug 2024 19:08:37 -0700 Subject: [PATCH] modified: home.nix modified: hosts/blackstar/nixos/configuration.nix modified: hosts/shared/nixos/shared_config.nix modified: modules/default.nix deleted: modules/desktop/apps/art.nix deleted: modules/desktop/apps/cad.nix deleted: modules/desktop/apps/cam.nix deleted: modules/desktop/apps/chat.nix deleted: modules/desktop/apps/code.nix modified: modules/desktop/apps/godot.nix modified: modules/desktop/apps/minecraft.nix modified: modules/desktop/apps/xiv.nix new file: modules/desktop/art.nix new file: modules/desktop/cad.nix new file: modules/desktop/cam.nix new file: modules/desktop/chat.nix new file: modules/desktop/code.nix new file: modules/desktop/daw.nix new file: modules/desktop/games.nix new file: modules/system/bluetooth.nix deleted: modules/system/boot/.grub.nix.swp new file: pkgs/wallpaper-engine.nix --- home.nix | 2 +- hosts/blackstar/nixos/configuration.nix | 69 +++++------------------- hosts/shared/nixos/shared_config.nix | 61 ++------------------- modules/default.nix | 13 +++-- modules/desktop/apps/art.nix | 18 ------- modules/desktop/apps/cad.nix | 19 ------- modules/desktop/apps/cam.nix | 15 ------ modules/desktop/apps/chat.nix | 16 ------ modules/desktop/apps/code.nix | 42 --------------- modules/desktop/apps/godot.nix | 6 ++- modules/desktop/apps/minecraft.nix | 7 ++- modules/desktop/apps/xiv.nix | 4 ++ modules/desktop/art.nix | 25 +++++++++ modules/desktop/cad.nix | 29 ++++++++++ modules/desktop/cam.nix | 20 +++++++ modules/desktop/chat.nix | 20 +++++++ modules/desktop/code.nix | 59 ++++++++++++++++++++ modules/desktop/daw.nix | 29 ++++++++++ modules/desktop/games.nix | 19 +++++++ modules/system/bluetooth.nix | 29 ++++++++++ modules/system/boot/.grub.nix.swp | Bin 12288 -> 0 bytes pkgs/wallpaper-engine.nix | 41 ++++++++++++++ 22 files changed, 312 insertions(+), 231 deletions(-) delete mode 100644 modules/desktop/apps/art.nix delete mode 100644 modules/desktop/apps/cad.nix delete mode 100644 modules/desktop/apps/cam.nix delete mode 100644 modules/desktop/apps/chat.nix delete mode 100644 modules/desktop/apps/code.nix create mode 100644 modules/desktop/art.nix create mode 100644 modules/desktop/cad.nix create mode 100644 modules/desktop/cam.nix create mode 100644 modules/desktop/chat.nix create mode 100644 modules/desktop/code.nix create mode 100644 modules/desktop/daw.nix create mode 100644 modules/desktop/games.nix create mode 100644 modules/system/bluetooth.nix delete mode 100644 modules/system/boot/.grub.nix.swp create mode 100644 pkgs/wallpaper-engine.nix diff --git a/home.nix b/home.nix index 95f4f3e..04d9e76 100644 --- a/home.nix +++ b/home.nix @@ -122,7 +122,7 @@ # Disable JS in PDFs "pdfjs.enableScripting" = false; - # Harden SSL + # Harden SSL "security.ssl.require_safe_negotiation" = true; }; }; diff --git a/hosts/blackstar/nixos/configuration.nix b/hosts/blackstar/nixos/configuration.nix index 261f644..985b330 100644 --- a/hosts/blackstar/nixos/configuration.nix +++ b/hosts/blackstar/nixos/configuration.nix @@ -30,17 +30,21 @@ ]; modules = { - desktop.apps = { - godot.enable = true; - cad.enable = true; - cam.enable = true; - code.enable = true; - art.enable = true; + desktop = { + chat.enable = true; + daw.enable = true; + cad.enable = true; + cam.enable = true; + code.enable = true; + art.enable = true; + games.enable = true; + apps = { xiv.enable = true; + godot.enable = true; minecraft.enable = true; - chat.enable = true; + }; }; - # system.boot.grub.enable = true; + # system.boot.grub.enable = true; system.audio.enable = true; }; @@ -118,7 +122,6 @@ # TODO: Configure your system-wide user settings (groups, etc), add more users as needed. users.users = { - # FIXME: Replace with your username aces = { # TODO: You can set an initial password for your user. @@ -134,57 +137,10 @@ # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion system.stateVersion = "24.05"; - # Programs installed for all users - /*environment.systemPackages = with pkgs; [ - # art - aseprite - krita - - # code - - # game - steam - alvr - xivlauncher - modrinth-app - - # cad - prusa-slicer - freecad - (blender.override { - cudaSupport = true; - }) - openscad - - # other - discord - onlyoffice-bin - google-chrome - - # sys utils - gnupg ffmpeg unzip - mpv - hyfetch - dbeaver-bin - openssl - pkg-config - element-desktop - python311 - python311Packages.pip - webkitgtk - libxkbcommon - ];*/ - - #environment.variables = { - # PKG_CONFIG_PATH="${pkgs.openssl.dev}/lib/pkgconfig"; - # LD_LIBRARY_PATH="${pkgs.wayland}/lib:$LD_LIBRARY_PATH"; - #}; - services.xserver.videoDrivers = ["nvidia"]; hardware.opengl = { enable = true; - ## radv: an open-source Vulkan driver from freedesktop driSupport = true; driSupport32Bit = true; @@ -193,7 +149,6 @@ # Enable CUPS to print documents. services.printing.enable = true; - hardware.nvidia = { modesetting.enable = true; diff --git a/hosts/shared/nixos/shared_config.nix b/hosts/shared/nixos/shared_config.nix index cfb4aee..d355035 100644 --- a/hosts/shared/nixos/shared_config.nix +++ b/hosts/shared/nixos/shared_config.nix @@ -6,49 +6,13 @@ pkgs, ... }: { - environment.systemPackages = with pkgs; [ - steam - - # code - cargo rustc # Rust - jetbrains.pycharm-professional - vim - python311 - python311Packages.pip - lua + environment.systemPackages = with pkgs; [ + /* ------------------------- Essential Applications ------------------------- */ git - # (vscode-with-extensions.override { - # vscodeExtensions = with vscode-extensions; [ - # dracula-theme.theme-dracula - # yzhang.markdown-all-in-one - # rust-lang.rust-analyzer - # # dependi - # jscearcy.rust-doc-viewer - # swellaby.vscode-rust-test-adapter - # tamasfe.even-better-toml - # ms-vsliveshare.vsliveshare - # aaron-bond.better-comments - # bbenoist.nix - # vue.volar - # ] ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [ - # { - # name = "remote-ssh-edit"; - # publisher = "ms-vscode-remote"; - # version = "0.47.2"; - # sha256 = "1hp6gjh4xp2m1xlm1jsdzxw9d8frkiidhph6nvl24d0h8z34w49g"; - # } - # ]; - #}) - vscode.fhs - blockbench wine bottles - # other - discord - nodejs_22 - - # sys utils + /* ---------------------------- System Utilities ---------------------------- */ gnupg ffmpeg unzip mpv gparted libappindicator-gtk3 @@ -56,25 +20,10 @@ hyfetch ]; - hardware.bluetooth.enable = true; - hardware.bluetooth.powerOnBoot = true; - services.blueman.enable = true; - - services.pipewire.wireplumber.enable = true; - services.pipewire.wireplumber.extraConfig.bluetoothEnhancements = { - "monitor.bluez.properties" = { - "bluez5.enable-sbc-xq" = true; - "bluez5.enable-msbc" = true; - "bluez5.enable-hw-volume" = true; - "bluez5.roles" = [ "hsp_hs" "hsp_ag" "hfp_hf" "hfp_ag" ]; - }; - }; - - - programs.nix-ld.enable = true; programs.firefox.enable = true; - ## System security tweaks + /* ----------------------------- Security Tweaks ---------------------------- */ + # sets hidepid=2 on /proc (make process info visible only to owning user) # NOTE Was removed on nixpkgs-unstable because it doesn't do anything # security.hideProcessInformation = true; diff --git a/modules/default.nix b/modules/default.nix index 98ce19a..305fa68 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -2,16 +2,19 @@ { imports = [ ./desktop/apps/godot.nix - ./desktop/apps/cad.nix - ./desktop/apps/cam.nix - ./desktop/apps/code.nix - ./desktop/apps/art.nix ./desktop/apps/xiv.nix - ./desktop/apps/chat.nix ./desktop/apps/minecraft.nix + ./desktop/cad.nix + ./desktop/cam.nix + ./desktop/code.nix + ./desktop/daw.nix + ./desktop/art.nix + ./desktop/chat.nix + ./system/boot/grub.nix ./system/audio.nix + ./system/bluetooth.nix ./system/locale.nix ./system/network.nix ]; diff --git a/modules/desktop/apps/art.nix b/modules/desktop/apps/art.nix deleted file mode 100644 index 040ec89..0000000 --- a/modules/desktop/apps/art.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ lib, config, options, pkgs, ... }: - -with lib; -let cfg = config.modules.desktop.apps.art; -in { - options.modules.desktop.apps.art = { - enable = mkEnableOption false; - }; - - config = mkIf cfg.enable { - environment.systemPackages = with pkgs; [ - aseprite - krita - lmms - inkscape - ]; - }; -} \ No newline at end of file diff --git a/modules/desktop/apps/cad.nix b/modules/desktop/apps/cad.nix deleted file mode 100644 index bb0997b..0000000 --- a/modules/desktop/apps/cad.nix +++ /dev/null @@ -1,19 +0,0 @@ -{ lib, config, options, pkgs, ... }: - -with lib; -let cfg = config.modules.desktop.apps.cad; -in { - options.modules.desktop.apps.cad = { - enable = mkEnableOption false; - }; - - config = mkIf cfg.enable { - environment.systemPackages = with pkgs; [ - (blender.override { - cudaSupport = true; - }) - openscad - freecad - ]; - }; -} \ No newline at end of file diff --git a/modules/desktop/apps/cam.nix b/modules/desktop/apps/cam.nix deleted file mode 100644 index 1d085ca..0000000 --- a/modules/desktop/apps/cam.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ lib, config, options, pkgs, ... }: - -with lib; -let cfg = config.modules.desktop.apps.cam; -in { - options.modules.desktop.apps.cam = { - enable = mkEnableOption false; - }; - - config = mkIf cfg.enable { - environment.systemPackages = with pkgs; [ - prusa-slicer - ]; - }; -} \ No newline at end of file diff --git a/modules/desktop/apps/chat.nix b/modules/desktop/apps/chat.nix deleted file mode 100644 index 583a06f..0000000 --- a/modules/desktop/apps/chat.nix +++ /dev/null @@ -1,16 +0,0 @@ -{ lib, config, options, pkgs, ... }: - -with lib; -let cfg = config.modules.desktop.apps.chat; -in { - options.modules.desktop.apps.chat = { - enable = mkEnableOption false; - }; - - config = mkIf cfg.enable { - environment.systemPackages = with pkgs; [ - discord - element-desktop - ]; - }; -} \ No newline at end of file diff --git a/modules/desktop/apps/code.nix b/modules/desktop/apps/code.nix deleted file mode 100644 index de76354..0000000 --- a/modules/desktop/apps/code.nix +++ /dev/null @@ -1,42 +0,0 @@ -{ lib, config, options, pkgs, ... }: - -with lib; -let cfg = config.modules.desktop.apps.code; -in { - options.modules.desktop.apps.code = { - enable = mkEnableOption false; - }; - - config = mkIf cfg.enable { - programs.nix-ld = { - enable = true; - libraries = with pkgs; [ - stdenv.cc.cc.lib - ]; - }; - environment.systemPackages = with pkgs; [ - rustc rustup # Rust - # pkgs.rust-bin.stable.latest.default - jetbrains.idea-ultimate - jetbrains.rider - jetbrains.clion - jetbrains.pycharm-professional - jetbrains.datagrip - jetbrains.webstorm - vim - python3 - lua - git - github-desktop - - distrobox - - # -- C/C++ - gcc - libgcc - gnumake - cmake - extra-cmake-modules - ]; - }; -} \ No newline at end of file diff --git a/modules/desktop/apps/godot.nix b/modules/desktop/apps/godot.nix index 4376dcc..410eb28 100644 --- a/modules/desktop/apps/godot.nix +++ b/modules/desktop/apps/godot.nix @@ -1,4 +1,8 @@ -{ lib, config, options, pkgs, ... }: +/* -------------------------------------------------------------------------- */ +/* App config: Godot Engine */ +/* -------------------------------------------------------------------------- */ + +{ lib, config, options, pkgs ? import , ... }: with lib; let cfg = config.modules.desktop.apps.godot; diff --git a/modules/desktop/apps/minecraft.nix b/modules/desktop/apps/minecraft.nix index bb51bd7..b3bafb8 100644 --- a/modules/desktop/apps/minecraft.nix +++ b/modules/desktop/apps/minecraft.nix @@ -1,3 +1,7 @@ +/* -------------------------------------------------------------------------- */ +/* App config: Minecraft */ +/* -------------------------------------------------------------------------- */ + { lib, config, options, pkgs, ... }: with lib; @@ -12,7 +16,8 @@ in { modrinth-app ]; environment.variables = { - WEBKIT_DISABLE_DMABUF_RENDERER=1; + # This solves an issue where Modrinth refuses to start + WEBKIT_DISABLE_DMABUF_RENDERER=1; }; }; } \ No newline at end of file diff --git a/modules/desktop/apps/xiv.nix b/modules/desktop/apps/xiv.nix index 7e2a3de..b7fa78a 100644 --- a/modules/desktop/apps/xiv.nix +++ b/modules/desktop/apps/xiv.nix @@ -1,3 +1,7 @@ +/* -------------------------------------------------------------------------- */ +/* App config: FINAL FANTASY XIV: A Realm Reborn */ +/* -------------------------------------------------------------------------- */ + { lib, config, options, pkgs, ... }: with lib; diff --git a/modules/desktop/art.nix b/modules/desktop/art.nix new file mode 100644 index 0000000..fe447fb --- /dev/null +++ b/modules/desktop/art.nix @@ -0,0 +1,25 @@ +/* -------------------------------------------------------------------------- */ +/* Art tools config */ +/* -------------------------------------------------------------------------- */ + +{ lib, config, options, pkgs, ... }: + +with lib; +let cfg = config.modules.desktop.art; +in { + options.modules.desktop.art = { + enable = mkEnableOption false; + }; + + config = mkIf cfg.enable { + /* Driver includes support for Huion Kamvas Pro */ + hardware.opentabletdriver.enable = true; + + environment.systemPackages = with pkgs; [ + aseprite + krita + inkscape + blockbench + ]; + }; +} \ No newline at end of file diff --git a/modules/desktop/cad.nix b/modules/desktop/cad.nix new file mode 100644 index 0000000..f0c0114 --- /dev/null +++ b/modules/desktop/cad.nix @@ -0,0 +1,29 @@ +/* -------------------------------------------------------------------------- */ +/* Computer-Aided Design config */ +/* -------------------------------------------------------------------------- */ + +{ lib, config, options, pkgs, ... }: + +with lib; +let cfg = config.modules.desktop.cad; +in { + options.modules.desktop.cad = { + enable = mkEnableOption false; + }; + + config = mkIf cfg.enable { + environment.systemPackages = with pkgs; [ + /* -------------------------------- Polygonal ------------------------------- */ + (blender.override { + # Allows GPU support for Cycles + cudaSupport = true; + }) + + /* ------------------------------- Parametric ------------------------------- */ + openscad + freecad + + /* ---------------------------------- Voxel --------------------------------- */ + ]; + }; +} \ No newline at end of file diff --git a/modules/desktop/cam.nix b/modules/desktop/cam.nix new file mode 100644 index 0000000..1a0814e --- /dev/null +++ b/modules/desktop/cam.nix @@ -0,0 +1,20 @@ +/* -------------------------------------------------------------------------- */ +/* Computer-Aided Manufacturing config */ +/* -------------------------------------------------------------------------- */ + +{ lib, config, options, pkgs, ... }: + +with lib; +let cfg = config.modules.desktop.cam; +in { + options.modules.desktop.cam = { + enable = mkEnableOption false; + }; + + config = mkIf cfg.enable { + environment.systemPackages = with pkgs; [ + /* ------------------------------- 3D Printing ------------------------------ */ + prusa-slicer + ]; + }; +} \ No newline at end of file diff --git a/modules/desktop/chat.nix b/modules/desktop/chat.nix new file mode 100644 index 0000000..82acc90 --- /dev/null +++ b/modules/desktop/chat.nix @@ -0,0 +1,20 @@ +/* -------------------------------------------------------------------------- */ +/* Communications config */ +/* -------------------------------------------------------------------------- */ + +{ lib, config, options, pkgs, ... }: + +with lib; +let cfg = config.modules.desktop.chat; +in { + options.modules.desktop.chat = { + enable = mkEnableOption false; + }; + + config = mkIf cfg.enable { + environment.systemPackages = with pkgs; [ + discord + element-desktop + ]; + }; +} \ No newline at end of file diff --git a/modules/desktop/code.nix b/modules/desktop/code.nix new file mode 100644 index 0000000..d94cd31 --- /dev/null +++ b/modules/desktop/code.nix @@ -0,0 +1,59 @@ +/* -------------------------------------------------------------------------- */ +/* Programming/Development Environment config */ +/* -------------------------------------------------------------------------- */ + +{ lib, config, options, pkgs, ... }: + +with lib; +let cfg = config.modules.desktop.code; +in { + options.modules.desktop.code = { + enable = mkEnableOption false; + heavyweight = mkEnableOption false; + }; + + config = mkIf cfg.enable { + programs.nix-ld = { + enable = true; + libraries = with pkgs; [ + stdenv.cc.cc.lib + ]; + }; + environment.systemPackages = with pkgs; [ + /* ---------------------------- Language support ---------------------------- */ + # Rust + rustc rustup + # Python + python3 + # Lua + lua + # C/C++ + gcc + libgcc + gnumake + cmake + extra-cmake-modules + # JS + nodejs_22 + + /* --------------------------------- Editors -------------------------------- */ + # ? FHS VScode is a variant that lets you manually install extensions. + # ? Otherwise, you'd specify extensions here. + vscode.fhs + vim + + jetbrains.idea-ultimate + jetbrains.clion + jetbrains.pycharm-professional + jetbrains.datagrip + jetbrains.webstorm + + /* ----------------------------- Version Control ---------------------------- */ + git + github-desktop + + /* ----------------------------- Virtualization ----------------------------- */ + distrobox + ]; + }; +} \ No newline at end of file diff --git a/modules/desktop/daw.nix b/modules/desktop/daw.nix new file mode 100644 index 0000000..cd53acf --- /dev/null +++ b/modules/desktop/daw.nix @@ -0,0 +1,29 @@ +/* -------------------------------------------------------------------------- */ +/* Digital Audio Workstation configuration */ +/* -------------------------------------------------------------------------- */ + +{ lib, config, options, pkgs, ... }: + +with lib; +let cfg = config.modules.desktop.daw; +in { + options.modules.desktop.daw = { + enable = mkEnableOption false; + }; + + config = mkIf cfg.enable { + environment.systemPackages = with pkgs; [ + /* ----------------------------- Low-level Audio ---------------------------- */ + audacity + + /* ------------------------------- Sequencers ------------------------------- */ + lmms # Like FL Studio, but FOSS + ardour + + # TODO: Add FL Studio if possible + + /* ----------------------------- Music Trackers ----------------------------- */ + furnace # Works by emulating classic systems - Good for chiptune + ]; + }; +} \ No newline at end of file diff --git a/modules/desktop/games.nix b/modules/desktop/games.nix new file mode 100644 index 0000000..af51900 --- /dev/null +++ b/modules/desktop/games.nix @@ -0,0 +1,19 @@ +{ lib, config, options, pkgs, ... }: + +with lib; +let cfg = config.modules.desktop.games; +in { + options.modules.desktop.games = { + enable = mkEnableOption false; + }; + + config = mkIf cfg.enable { + /* Driver includes support for Huion Kamvas Pro */ + hardware.opentabletdriver.enable = true; + + environment.systemPackages = with pkgs; [ + steam + lutris + ]; + }; +} \ No newline at end of file diff --git a/modules/system/bluetooth.nix b/modules/system/bluetooth.nix new file mode 100644 index 0000000..ebe6bb4 --- /dev/null +++ b/modules/system/bluetooth.nix @@ -0,0 +1,29 @@ +/* -------------------------------------------------------------------------- */ +/* System Utility - Bluetooth config */ +/* -------------------------------------------------------------------------- */ + +{ lib, config, options, pkgs, ... }: + +with lib; +let cfg = config.modules.system.bluetooth; +in { + options.modules.system.bluetooth = { + enable = mkEnableOption true; + }; + + config = mkIf cfg.enable { + hardware.bluetooth.enable = true; + hardware.bluetooth.powerOnBoot = true; + services.blueman.enable = true; + + services.pipewire.wireplumber.enable = true; + services.pipewire.wireplumber.extraConfig.bluetoothEnhancements = { + "monitor.bluez.properties" = { + "bluez5.enable-sbc-xq" = true; + "bluez5.enable-msbc" = true; + "bluez5.enable-hw-volume" = true; + "bluez5.roles" = [ "hsp_hs" "hsp_ag" "hfp_hf" "hfp_ag" ]; + }; + }; + }; +} \ No newline at end of file diff --git a/modules/system/boot/.grub.nix.swp b/modules/system/boot/.grub.nix.swp deleted file mode 100644 index 26c9f3d99b7f24a018c4bdceffd509308bee5dc5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12288 zcmeI2O>f*p7{@1YDy0;`oeoP;F1y~OX<15Cq^b#FC6a7YS|m^pV|yGAu{~yH>@=iN zZ$0%2Cxqb8JBLbq0X_g6xPa7efYc9w5dZP+=4G2SIkwd^(tpQeKX3CJ&%xRWXKwYE z`Q>1ip}oo2508IK?mqhX)qh`S%xLZW?c-XZ?r3|Q5uSHboy)F>r0oW=c8SVxmFu|j zz1^}-=G_oEyX&S314KPROfn$?MBoGjDwlLVJacpI!t9KlAH>Y5g-E31A!gJ`OZ9kcDwzTr~E)B>c*B` z)>YvKS{068;jQKrYisD|ZG4MF@wu*|bTLu4gi#{Ip;y>CQ^`F;1jD^;)_CA&l>3OG zzpV=EM3xOwVWm$UmAqqkR9UBU^{wnSXLI>^UAc*Ryz@kOf6F(-N_{MwiVK%M=zJOJ zr7&DwURc=t`m@y5w%5DXTk6&QmFq=m;-o*<6PKgNF-=S#|cT7`U% zv#-&&S{kc#;lmzYYFUW9;e2eJP4VN**2S`@gM4E_8dVGDa~#Y*J-zo93~Ryiu<_OY zJ{6gJ>On4xN*2y+@zy|ZN~4pcHIc!`I6R_}{?zreVy-n7lM&?|XT&11s^(Rmo<0yF zmbJoBZy@-Jw+fA6i{Cyt$;9@-#i>LMmogKf%qG^*@2{#XwedUa;BN6Vs;peSF)%u8 zA|xWS`?ixekcHoBPx<;63^%vgso}x%xZ@cFyVm<6H4ic^;wHs5zBPHIi$tx%Ki}vl zJWAHbj?L52w%U!AZ!9)Ntd`Bfk0+s