From cd69ae9f66331cc61ec6e6832b15fcafa2d94c88 Mon Sep 17 00:00:00 2001 From: LordGrimmauld Date: Sun, 28 Apr 2024 19:43:56 +0200 Subject: [PATCH] split out python tooling, update flake, assign libre office types --- common/laptop_hardware.nix | 2 +- common/tooling/default.nix | 28 ++------- common/tooling/python.nix | 27 +++++++++ common/{ => tooling}/security.nix | 4 +- common/xdg/mime.nix | 49 +++++++++++++++- flake.lock | 97 +++++++++++++++++++++---------- load_common.nix | 1 - modules/users.nix | 16 +---- 8 files changed, 152 insertions(+), 72 deletions(-) create mode 100644 common/tooling/python.nix rename common/{ => tooling}/security.nix (86%) diff --git a/common/laptop_hardware.nix b/common/laptop_hardware.nix index edf4385..ebcf3dc 100644 --- a/common/laptop_hardware.nix +++ b/common/laptop_hardware.nix @@ -20,7 +20,7 @@ in # services.ddccontrol.enable = true; powerManagement.scsiLinkPolicy = lib.mkIf (!config.services.tlp.enable) "min_power"; hardware.i2c.enable = true; - services.xserver.libinput.enable = true; + services.libinput.enable = true; powerManagement.cpuFreqGovernor = lib.mkDefault "normal"; services.udev.extraRules = '' diff --git a/common/tooling/default.nix b/common/tooling/default.nix index 43661a2..6680d81 100644 --- a/common/tooling/default.nix +++ b/common/tooling/default.nix @@ -6,6 +6,8 @@ in imports = [ ./lilypond.nix ./nix.nix + ./security.nix + ./python.nix ]; config = with cfg; lib.mkIf (enable && tooling.enable) { @@ -16,7 +18,6 @@ in gcc jdk17 - python3 pkg-config unzip p7zip @@ -30,7 +31,6 @@ in ranger wget file - pypy3 util-linux visualvm imagemagick @@ -48,14 +48,8 @@ in glxinfo alacritty vulkan-tools - pdfarranger - nomacs + gparted - zathura - imhex - libreoffice-qt - filezilla - obsidian thunderbird ]; @@ -115,18 +109,6 @@ in }; }; - programs.xonsh = { - enable = true; - package = pkgs.xonsh.override { - extraPackages = ps: with ps; [ - requests - matplotlib - numpy - scipy - pygobject3 - ]; - }; - }; programs.ssh.startAgent = true; programs.thefuck.enable = true; }; @@ -147,9 +129,7 @@ in description = "Extra init LUA scripts"; }; }; - - pass = lib.mkEnableOption "Enables password-store, gnupg and such secret handling"; - + git_user = mkOption { type = types.str; default = "Grimmauld"; diff --git a/common/tooling/python.nix b/common/tooling/python.nix new file mode 100644 index 0000000..49e6a68 --- /dev/null +++ b/common/tooling/python.nix @@ -0,0 +1,27 @@ +{ pkgs, config, lib, ... }: +let + cfg = config.grimmShared; +in +{ + config = with cfg; lib.mkIf (enable && tooling.enable) { + environment.systemPackages = with pkgs; [ + python3 + pypy3 + ] ++ lib.optionals cfg.graphical [ + jetbrains.pycharm-community + ]; + + programs.xonsh = { + enable = true; + package = pkgs.xonsh.override { + extraPackages = ps: with ps; [ + requests + matplotlib + numpy + scipy + pygobject3 + ]; + }; + }; + }; +} diff --git a/common/security.nix b/common/tooling/security.nix similarity index 86% rename from common/security.nix rename to common/tooling/security.nix index f06306e..d29ecc0 100644 --- a/common/security.nix +++ b/common/tooling/security.nix @@ -23,7 +23,7 @@ in vulnix doas-sudo-shim # muscle memory inputs.agenix.packages.${system}.default - ] ++ lib.optionals (tooling.enable && tooling.pass) [ + ] ++ lib.optionals (tooling.enable && tooling.pass) [ pass (writeShellScriptBin "passw" "pass $@") ] ++ lib.optional graphical lxqt.lxqt-policykit; @@ -37,4 +37,6 @@ in enable = true; }; }; + + options.grimmShared.tooling.pass = lib.mkEnableOption "Enables password-store, gnupg and such secret handling"; } diff --git a/common/xdg/mime.nix b/common/xdg/mime.nix index c4383ec..60075e2 100644 --- a/common/xdg/mime.nix +++ b/common/xdg/mime.nix @@ -29,11 +29,31 @@ let "org.freecadweb.FreeCAD.desktop" "PrusaSlicer.desktop" "openscad.desktop" + "blender.desktop" ]; tex_editors = [ ] ++ text_editors; in { config = with cfg; lib.mkIf (enable && portals && graphical) { + environment.systemPackages = with pkgs; [ + zathura + imhex + libreoffice-qt + filezilla + obsidian + nomacs + pdfarranger + geany + krita + weasis + kicad + prusa-slicer + freecad + openscad + vlc + blender + ]; + xdg.mime.enable = true; xdg.mime.addedAssociations = { "application/java-vm" = [ @@ -59,18 +79,45 @@ in "image/vnd.dwg" = cad; "model/*" = cad; "gcode" = [ + "PrusaGcodeviewer.desktop" "PrusaSlicer.desktop" ]; "audio/*" = audio_players; "text/*" = text_editors; "text/plain" = text_editors; "text/markdown" = [ "obsidian.desktop" ] ++ text_editors; - "text/csv" = [ "calc.desktop" ] ++ text_editors; + "text/csv" = [ "calc.desktop" ] ++ text_editors; "text/html" = browsers ++ text_editors; "text/x-python" = [ "pycharm-community.desktop" ] ++ text_editors; "text/x-c" = [ "clion.desktop" ] ++ text_editors; "text/x-java-source" = [ "idea-community.desktop" ] ++ text_editors; "video/*" = video_viewers; + + "application/vnd.oasis.opendocument.chart" = "calc.desktop"; + "application/vnd.oasis.opendocument.chart-template" = "calc.desktop"; + "application/vnd.oasis.opendocument.database" = "base.desktop"; + "application/vnd.oasis.opendocument.formula" = "math.desktop"; + "application/vnd.oasis.opendocument.formula-template" = "math.desktop"; + "application/vnd.oasis.opendocument.graphics" = "draw.desktop"; + "application/vnd.oasis.opendocument.graphics-template" = "draw.desktop"; + "application/vnd.oasis.opendocument.image" = "draw.desktop"; + "application/vnd.oasis.opendocument.image-template" = "draw.desktop"; + "application/vnd.oasis.opendocument.presentation" = "impress.desktop"; + "application/vnd.oasis.opendocument.presentation-template" = "impress.desktop"; + "application/vnd.oasis.opendocument.spreadsheet" = "calc.desktop"; + "application/vnd.oasis.opendocument.spreadsheet-template" = "calc.desktop"; + "application/vnd.oasis.opendocument.text" = "writer.desktop"; + "application/vnd.oasis.opendocument.text-master" = "writer.desktop"; + "application/vnd.oasis.opendocument.text-template" = "writer.desktop"; + "application/vnd.oasis.opendocument.text-web" = "writer.desktop"; + "application/vnd.openxmlformats-officedocument.presentationml.presentation" = "impress.desktop"; + "application/vnd.openxmlformats-officedocument.presentationml.slide" = "impress.desktop"; + "application/vnd.openxmlformats-officedocument.presentationml.slideshow" = "impress.desktop"; + "application/vnd.openxmlformats-officedocument.presentationml.template" = "impress.desktop"; + "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" = "calc.desktop"; + "application/vnd.openxmlformats-officedocument.spreadsheetml.template" = "calc.desktop"; + "application/vnd.openxmlformats-officedocument.wordprocessingml.document" = "writer.desktop"; + "application/vnd.openxmlformats-officedocument.wordprocessingml.template" = "writer.desktop"; }; }; } diff --git a/flake.lock b/flake.lock index a22a6c3..3999179 100644 --- a/flake.lock +++ b/flake.lock @@ -10,11 +10,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1712079060, - "narHash": "sha256-/JdiT9t+zzjChc5qQiF+jhrVhRt8figYH29rZO7pFe4=", + "lastModified": 1714136352, + "narHash": "sha256-BtWQ2Th/jamO1SlD+2ASSW5Jaf7JhA/JLpQHk0Goqpg=", "owner": "ryantm", "repo": "agenix", - "rev": "1381a759b205dff7a6818733118d02253340fd5e", + "rev": "24a7ea390564ccd5b39b7884f597cfc8d7f6f44e", "type": "github" }, "original": { @@ -78,11 +78,11 @@ "yafas": "yafas" }, "locked": { - "lastModified": 1714043270, - "narHash": "sha256-WTpyfCMHEaGWLKQR0rVTXwxFnGzyC8VYwHYVsOTdf1Q=", + "lastModified": 1714227479, + "narHash": "sha256-TJsEB9sKK6hMhKGXEeqD6Hz1vvgfwuNNwwt4UmyxHvQ=", "owner": "chaotic-cx", "repo": "nyx", - "rev": "7705ea7bb501453ffb1f085b4ddbdc606f5463f8", + "rev": "11b4acecf7aa41e4b3fcb34a985fe0477da4347c", "type": "github" }, "original": { @@ -106,12 +106,29 @@ "url": "https://flakehub.com/f/chaotic-cx/nix-empty-flake/%3D0.1.2.tar.gz" } }, + "complement": { + "flake": false, + "locked": { + "lastModified": 1713458251, + "narHash": "sha256-hom/Lt0gZzLWqFhUJG0X2i88CAMIILInO5w0tPj6G3s=", + "owner": "matrix-org", + "repo": "complement", + "rev": "d73c81a091604b0fc5b6b0617dcac58c25763f57", + "type": "github" + }, + "original": { + "owner": "matrix-org", + "repo": "complement", + "type": "github" + } + }, "conduit": { "inputs": { "attic": [ "chaotic", "attic" ], + "complement": "complement", "crane": [ "chaotic", "crane" @@ -135,14 +152,15 @@ "nixpkgs": [ "chaotic", "nixpkgs" - ] + ], + "rocksdb": "rocksdb" }, "locked": { - "lastModified": 1713379868, - "narHash": "sha256-L/QhOkRmzB/gmwrWrqxct/sD6XIL4AOGguRhb4ahO/8=", + "lastModified": 1714111420, + "narHash": "sha256-ax+Z3K9y2N43C/+1gwyTbtXKHuWYY1NYN+tV5NcJ+zI=", "owner": "girlbossceo", "repo": "conduwuit", - "rev": "d0a9666a2976b983daf72eb0c0f8d41c04443f84", + "rev": "341bafb91e77cd95775d9cfa4f0810309889b176", "type": "github" }, "original": { @@ -364,11 +382,11 @@ ] }, "locked": { - "lastModified": 1713682182, - "narHash": "sha256-2RSqVmQMFmn6OjQ21SXnWC+HuSeqDLWLftRv/ZhEDZE=", + "lastModified": 1714203603, + "narHash": "sha256-eT7DENhYy7EPLOqHI9zkIMD9RvMCXcqh6gGqOK5BWYQ=", "owner": "nix-community", "repo": "home-manager", - "rev": "4cec20dbf5c0a716115745ae32531e34816ecbbe", + "rev": "c1609d584a6b5e9e6a02010f51bd368cb4782f8e", "type": "github" }, "original": { @@ -386,11 +404,11 @@ ] }, "locked": { - "lastModified": 1713606448, - "narHash": "sha256-JMKo6uoAcUip9N10a3r1T2IoLz+pUStwIFrsVW/R4MA=", + "lastModified": 1714022840, + "narHash": "sha256-i6xZsf7Kvp1n/Sn3nqPY1MJQx0gf80OGQw32PA/aZd8=", "owner": "Jovian-Experiments", "repo": "Jovian-NixOS", - "rev": "96cbbcd3712a0cb7f128c54b21ec2af0950d88d0", + "rev": "94def3af1d45fe4b142beda3aa59a6a98e62ce9e", "type": "github" }, "original": { @@ -412,11 +430,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1713647546, - "narHash": "sha256-oiLxCGkICL2LXHZV6hhm3858JC/+6oANV5guVaRM6Wg=", + "lastModified": 1714146712, + "narHash": "sha256-8cdUq1XHTQ2CXSDGQMs0WOtB3eB469RK4iLpgUtQIZQ=", "owner": "martinvonz", "repo": "jj", - "rev": "77eaf67f96c6ea438e2dd1a5636f34b6a321e6be", + "rev": "6752402113445d2cbad66b56ab06094a7fff84d4", "type": "github" }, "original": { @@ -449,11 +467,11 @@ ] }, "locked": { - "lastModified": 1713620717, - "narHash": "sha256-YuYowUw5ecPa78bhT72zY2b99wn68mO3vVkop8hnb8M=", + "lastModified": 1714068652, + "narHash": "sha256-/5aMM42kNfiIMKKjipBlXVpR/2SGyziA1/lh40sYr9k=", "owner": "YaLTeR", "repo": "niri", - "rev": "6a80078259ca3e3854b0748a15e98c7293d0822a", + "rev": "8d99e3c015fe210acf0e67fa62335688f5e3df15", "type": "github" }, "original": { @@ -485,11 +503,11 @@ ] }, "locked": { - "lastModified": 1714093995, - "narHash": "sha256-7oYv0EJ2iqL9MZiB7QRE63nHDVMuyTgukgYZDdjL8Kg=", + "lastModified": 1714303849, + "narHash": "sha256-o/IgiwA0ZS/nMh5YB0bt+ae3Lt+tlbQouY/xL7tB5h0=", "owner": "fufexan", "repo": "nix-gaming", - "rev": "a8c2a0e160e1212c67724aa89a823b55d423d157", + "rev": "dbb96ae98e723128cf5a612480ba6187113f5e49", "type": "github" }, "original": { @@ -544,11 +562,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1714076141, - "narHash": "sha256-Drmja/f5MRHZCskS6mvzFqxEaZMeciScCTFxWVLqWEY=", + "lastModified": 1714253743, + "narHash": "sha256-mdTQw2XlariysyScCv2tTE45QSU9v/ezLcHJ22f0Nxc=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "7bb2ccd8cdc44c91edba16c48d2c8f331fb3d856", + "rev": "58a1abdbae3217ca6b702f03d3b35125d88a2994", "type": "github" }, "original": { @@ -594,11 +612,11 @@ }, "nixpkgs-stable_2": { "locked": { - "lastModified": 1713995372, - "narHash": "sha256-fFE3M0vCoiSwCX02z8VF58jXFRj9enYUSTqjyHAjrds=", + "lastModified": 1714272655, + "narHash": "sha256-3/ghIWCve93ngkx5eNPdHIKJP/pMzSr5Wc4rNKE1wOc=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "dd37924974b9202f8226ed5d74a252a9785aedf8", + "rev": "12430e43bd9b81a6b4e79e64f87c624ade701eaf", "type": "github" }, "original": { @@ -608,6 +626,23 @@ "type": "github" } }, + "rocksdb": { + "flake": false, + "locked": { + "lastModified": 1713810944, + "narHash": "sha256-/Xf0bzNJPclH9IP80QNaABfhj4IAR5LycYET18VFCXc=", + "owner": "facebook", + "repo": "rocksdb", + "rev": "6f7cabeac80a3a6150be2c8a8369fcecb107bf43", + "type": "github" + }, + "original": { + "owner": "facebook", + "ref": "v9.1.1", + "repo": "rocksdb", + "type": "github" + } + }, "root": { "inputs": { "agenix": "agenix", diff --git a/load_common.nix b/load_common.nix index eecf1e8..308f662 100644 --- a/load_common.nix +++ b/load_common.nix @@ -16,7 +16,6 @@ with lib; ./common/gaming.nix ./common/firefox.nix ./common/cloudsync.nix - ./common/security.nix ./common/laptop_hardware.nix ]; } diff --git a/modules/users.nix b/modules/users.nix index fdca3b4..d3d200c 100644 --- a/modules/users.nix +++ b/modules/users.nix @@ -27,27 +27,17 @@ ]; packages = with pkgs; [ - geany + stable.jetbrains.clion + jetbrains.idea-community + webcord discord obs-studio - kwrited element-desktop ghidra kcalc rmview - krita - weasis - kicad - prusa-slicer - freecad - openscad - vlc arena - stable.jetbrains.clion - jetbrains.idea-community - jetbrains.pycharm-community - blender ]; }; }