diff --git a/builds/flutter.nix b/builds/flutter.nix new file mode 100644 index 0000000..9ea9c3b --- /dev/null +++ b/builds/flutter.nix @@ -0,0 +1,82 @@ +{ config, lib, pkgs, ... }: +with lib; +let + cfg = config.programs.flutter; + androidComposition = pkgs.androidenv.composeAndroidPackages { + toolsVersion = "26.1.1"; + platformToolsVersion = "35.0.1"; + buildToolsVersions = [ + "30.0.3" + "33.0.1" + "34.0.0" + ]; + platformVersions = [ + "31" + "33" + "34" + ]; + abiVersions = [ "x86_64" ]; + includeEmulator = true; + emulatorVersion = "35.1.4"; + includeSystemImages = true; + systemImageTypes = [ "google_apis_playstore" ]; + includeSources = false; + extraLicenses = [ + "android-googletv-license" + "android-sdk-arm-dbt-license" + "android-sdk-license" + "android-sdk-preview-license" + "google-gdk-license" + "intel-android-extra-license" + "intel-android-sysimage-license" + "mips-android-sysimage-license" + ]; + }; + androidSdk = androidComposition.androidsdk; + buildToolsVersion = "33.0.1"; +in { + options.programs.flutter = { + enable = mkEnableOption "Flutter development environment"; + addToKvmGroup = mkEnableOption "Add user to KVM group for hardware acceleration"; + enableAdb = mkEnableOption "Enable ADB and add user to adbusers group"; + user = mkOption { + type = types.str; + description = "Username for Flutter development"; + }; + }; + + config = mkIf cfg.enable { + environment.systemPackages = with pkgs; [ + flutter + androidSdk + # android-studio + jdk17 + firebase-tools + ]; + + environment.variables = { + ANDROID_SDK_ROOT = "${androidSdk}/libexec/android-sdk"; + ANDROID_HOME = "${androidSdk}/libexec/android-sdk"; + JAVA_HOME = "${pkgs.jdk17}"; + GRADLE_OPTS = "-Dorg.gradle.project.android.aapt2FromMavenOverride=${androidSdk}/libexec/android-sdk/build-tools/34.0.0/aapt2"; + }; + + nixpkgs.config = { + android_sdk.accept_license = true; + allowUnfree = true; + }; + + environment.shellInit = '' + export PATH=$PATH:${androidSdk}/libexec/android-sdk/platform-tools + export PATH=$PATH:${androidSdk}/libexec/android-sdk/cmdline-tools/latest/bin + export PATH=$PATH:${androidSdk}/libexec/android-sdk/emulator + export PATH="$PATH":"$HOME/.pub-cache/bin" + ''; + + programs.adb.enable = cfg.enableAdb; + + users.users.${cfg.user}.extraGroups = + (optional cfg.addToKvmGroup "kvm") ++ (optional cfg.enableAdb "adbusers"); + }; +} + diff --git a/configuration.nix b/configuration.nix index ad2ff27..3657d52 100644 --- a/configuration.nix +++ b/configuration.nix @@ -17,8 +17,8 @@ }; }; - # Importing necessary setup for Steam. - imports = [ ./builds/steam/default.nix ./home/extras/printer.nix ]; + # Importing necessary setup for Steam & Printing & Flutter. + imports = [ ./builds/steam/default.nix ./home/extras/printer.nix ./builds/flutter.nix ]; # Use the systemd-boot EFI boot loader. boot.loader = { @@ -160,7 +160,7 @@ nixpkgs.config = { allowUnfree = true; - permittedInsecurePackages = [ "electron-25.9.0" ]; + permittedInsecurePackages = [ "electron-32.3.3" ]; }; # Virtualbox diff --git a/flake.lock b/flake.lock index 5d3f39f..50a3486 100644 --- a/flake.lock +++ b/flake.lock @@ -40,11 +40,11 @@ ] }, "locked": { - "lastModified": 1738453229, - "narHash": "sha256-7H9XgNiGLKN1G1CgRh0vUL4AheZSYzPm+zmZ7vxbJdo=", + "lastModified": 1741352980, + "narHash": "sha256-+u2UunDA4Cl5Fci3m7S643HzKmIDAe+fiXrLqYsR2fs=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "32ea77a06711b758da0ad9bd6a844c5740a87abd", + "rev": "f4330d22f1c5d2ba72d3d22df5597d123fdb60a9", "type": "github" }, "original": { @@ -141,11 +141,11 @@ ] }, "locked": { - "lastModified": 1737465171, - "narHash": "sha256-R10v2hoJRLq8jcL4syVFag7nIGE7m13qO48wRIukWNg=", + "lastModified": 1741379162, + "narHash": "sha256-srpAbmJapkaqGRE3ytf3bj4XshspVR5964OX5LfjDWc=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "9364dc02281ce2d37a1f55b6e51f7c0f65a75f17", + "rev": "b5a62751225b2f62ff3147d0a334055ebadcd5cc", "type": "github" }, "original": { @@ -243,11 +243,11 @@ ] }, "locked": { - "lastModified": 1739845242, - "narHash": "sha256-rNMXpDubNWGLTs45MuoH9YHtXfXye/fn2u4YMSTPt9I=", + "lastModified": 1741635347, + "narHash": "sha256-2aYfV44h18alHXopyfL4D9GsnpE5XlSVkp4MGe586VU=", "owner": "nix-community", "repo": "home-manager", - "rev": "5cfbf5cc37a3bd1da07ae84eea1b828909c4456b", + "rev": "7fb8678716c158642ac42f9ff7a18c0800fea551", "type": "github" }, "original": { @@ -269,11 +269,11 @@ "treefmt-nix": "treefmt-nix" }, "locked": { - "lastModified": 1739861549, - "narHash": "sha256-8yNOGXNeWOM0dFGg2iCbdkQ5+IAwhEgn0e2jNeIlqBA=", + "lastModified": 1741676952, + "narHash": "sha256-14tBgnGZLu3sH23O61PA1oG4op4TvZRUj3Aof8m4bEQ=", "owner": "nix-community", "repo": "neovim-nightly-overlay", - "rev": "499949a83c41db5265a30d883e2561f9f2339621", + "rev": "adee34d9e71f021dd8b635e8dd8e7329dea6ef79", "type": "github" }, "original": { @@ -285,11 +285,11 @@ "neovim-src": { "flake": false, "locked": { - "lastModified": 1739833174, - "narHash": "sha256-wRLPbyVl44xdJxxi9/yY7qouHcB0qB9EsHPQ6PEvLAs=", + "lastModified": 1741647257, + "narHash": "sha256-1fKiWpHhE0WcrPMJgxHiYK9sBews+KXFDALGiWnYSPk=", "owner": "neovim", "repo": "neovim", - "rev": "4a2a54f993e8e3c2b4dfd687386847207033b631", + "rev": "7e2b75760f1723c44bf69951dad2cb8da92aa213", "type": "github" }, "original": { @@ -300,11 +300,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1739736696, - "narHash": "sha256-zON2GNBkzsIyALlOCFiEBcIjI4w38GYOb+P+R4S8Jsw=", + "lastModified": 1741513245, + "narHash": "sha256-7rTAMNTY1xoBwz0h7ZMtEcd8LELk9R5TzBPoHuhNSCk=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "d74a2335ac9c133d6bbec9fc98d91a77f1604c1f", + "rev": "e3e32b642a31e6714ec1b712de8c91a3352ce7e1", "type": "github" }, "original": { @@ -316,11 +316,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1739736696, - "narHash": "sha256-zON2GNBkzsIyALlOCFiEBcIjI4w38GYOb+P+R4S8Jsw=", + "lastModified": 1741513245, + "narHash": "sha256-7rTAMNTY1xoBwz0h7ZMtEcd8LELk9R5TzBPoHuhNSCk=", "owner": "nixos", "repo": "nixpkgs", - "rev": "d74a2335ac9c133d6bbec9fc98d91a77f1604c1f", + "rev": "e3e32b642a31e6714ec1b712de8c91a3352ce7e1", "type": "github" }, "original": { @@ -361,8 +361,8 @@ "nixpkgs_5": { "locked": { "lastModified": 0, - "narHash": "sha256-+/bSz4EAVbqz8/HsIGLroF8aNaO8bLRL7WfACN+24g4=", - "path": "/nix/store/mxnwc7l3qhmb462idjbzvn9jr9yip0pl-source", + "narHash": "sha256-Wh7esNh7G24qYleLvgOSY/7HlDUzWaL/n4qzlBePpiw=", + "path": "/nix/store/pqgpwakx0m4r75zg34954w5mwi5shg89-source", "type": "path" }, "original": { @@ -377,11 +377,11 @@ "treefmt-nix": "treefmt-nix_2" }, "locked": { - "lastModified": 1739897021, - "narHash": "sha256-AeSROrM8tN9AW+gvxjawXVabOL7xiW0gNncMtqJv6cI=", + "lastModified": 1741690149, + "narHash": "sha256-+0EpQJDaYhZDF6SIc/v0PSbpK3yd14MniMl+HWVgd8A=", "owner": "nix-community", "repo": "NUR", - "rev": "aefef58e09ba07005f0a46541836453d8e212d62", + "rev": "f1b3ba0c23233b402b4df174d9e7cc5933e2a53b", "type": "github" }, "original": { @@ -510,11 +510,11 @@ }, "unstable": { "locked": { - "lastModified": 1739736696, - "narHash": "sha256-zON2GNBkzsIyALlOCFiEBcIjI4w38GYOb+P+R4S8Jsw=", + "lastModified": 1741513245, + "narHash": "sha256-7rTAMNTY1xoBwz0h7ZMtEcd8LELk9R5TzBPoHuhNSCk=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "d74a2335ac9c133d6bbec9fc98d91a77f1604c1f", + "rev": "e3e32b642a31e6714ec1b712de8c91a3352ce7e1", "type": "github" }, "original": { @@ -533,11 +533,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1739870182, - "narHash": "sha256-Sd+RZh5Hvk7iuv0O6GqALRy8LTZhPyKqsprR6yODz4Q=", + "lastModified": 1740150837, + "narHash": "sha256-fDNPiftVD/npKTMEBFzFBFcf1Tj7389sIRHVGPRes28=", "owner": "danyspin97", "repo": "wpaperd", - "rev": "9df29595eb3b6ec1ed8eb456d8699f1c7d16ee7f", + "rev": "8095cc91dc8122ee6d6580ed3f73220bd3945374", "type": "github" }, "original": { @@ -554,11 +554,11 @@ "unstable": "unstable" }, "locked": { - "lastModified": 1737931897, - "narHash": "sha256-FZqdnMRPuQON69kJ3Yj56+tnarlO3DlRyvzODVxfoco=", + "lastModified": 1740222736, + "narHash": "sha256-7RhlA0HKqauUK8ap8Qsp/xBVHd+4CotLqWL7+sLWyzg=", "owner": "xmonad", "repo": "xmonad", - "rev": "39ae48970cac7cc75431ad39b003636541a1fae4", + "rev": "07d95ad8fc395866200b4587aca8b4db50aa20bd", "type": "github" }, "original": { @@ -577,11 +577,11 @@ "xmonad": "xmonad" }, "locked": { - "lastModified": 1739182012, - "narHash": "sha256-+kxtIMwZjIWjhOm4Ty4Bgbl4Yxzi37JaxPVgm5FXL78=", + "lastModified": 1741673055, + "narHash": "sha256-o0DD+4E0x5+qRalpMb77x+pX+gOc0P/1baJTxiE1brA=", "owner": "xmonad", "repo": "xmonad-contrib", - "rev": "5119626269eeda899584545b72883e2b59b62b9a", + "rev": "b470de0d7580b98adfd6d33378622ce347a090c2", "type": "github" }, "original": { diff --git a/home/default.nix b/home/default.nix index d79d9c9..bddd01f 100644 --- a/home/default.nix +++ b/home/default.nix @@ -35,6 +35,6 @@ nixpkgs.config = { allowUnfree = true; - permittedInsecurePackages = [ "electron-25.9.0" ]; + permittedInsecurePackages = [ "electron-32.3.3" ]; }; } diff --git a/home/programs/eww/src/eww.yuck b/home/programs/eww/src/eww.yuck index dc2c94f..c603613 100644 --- a/home/programs/eww/src/eww.yuck +++ b/home/programs/eww/src/eww.yuck @@ -1,12 +1,12 @@ (defwindow bar-primary :monitor 0 :geometry (geometry :x "0px" - :y "25px" + :y "0px" :width "100%" :height "25px" :anchor "top center") :stacking "fg" - :reserve (struts :distance "50px" :side "top") + :reserve (struts :distance 25px" :side "top") :windowtype "dock" :wm-ignore false (box diff --git a/home/programs/rofi/default.nix b/home/programs/rofi/default.nix index d81500e..b43a460 100644 --- a/home/programs/rofi/default.nix +++ b/home/programs/rofi/default.nix @@ -2,7 +2,7 @@ { home.packages = with pkgs; [ - #oranchelo-icon-theme + oranchelo-icon-theme nerd-fonts.jetbrains-mono xclip ]; @@ -15,7 +15,7 @@ theme = ./theme.rafi; extraConfig = { mode = "run,drun,window,ssh,network"; - #icon-theme = "Oranchelo"; + con-theme = "Oranchelo"; show-icons = true; drun-display-format = "{icon} {name}"; location = 0;