From f814970ded962c8efff2dce373fabc7676313b94 Mon Sep 17 00:00:00 2001 From: 4Lost Date: Tue, 11 Mar 2025 12:26:41 +0100 Subject: [PATCH] install slack --- builds/flutter.nix | 82 +++++++++++++++++++++++++++++++++ configuration.nix | 17 +++++-- home/programs/default.nix | 1 + home/programs/slack/default.nix | 5 ++ 4 files changed, 102 insertions(+), 3 deletions(-) create mode 100644 builds/flutter.nix create mode 100644 home/programs/slack/default.nix 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 9094ee5..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,9 +160,20 @@ nixpkgs.config = { allowUnfree = true; - permittedInsecurePackages = [ "electron-25.9.0" ]; + permittedInsecurePackages = [ "electron-32.3.3" ]; }; + # Virtualbox + boot.kernelParams = [ "kvm.enable_virt_at_load=0" ]; + boot.kernelModules = ["kvm-amd"]; + virtualisation.virtualbox.host.enable = true; + users.extraGroups.vboxusers.members = [ "user-with-access-to-virtualbox" "kv" ]; + virtualisation.virtualbox.host.enableExtensionPack = true; + virtualisation.virtualbox.guest.enable = true; + virtualisation.virtualbox.guest.dragAndDrop = true; + virtualisation.virtualbox.host.enableKvm = true; + virtualisation.virtualbox.host.addNetworkInterface = false; + # Enable zsh for setting it as shell for users. programs.zsh.enable = true; diff --git a/home/programs/default.nix b/home/programs/default.nix index 11e5570..a9a8f0d 100644 --- a/home/programs/default.nix +++ b/home/programs/default.nix @@ -27,6 +27,7 @@ ./rofi ./signal ./skanlite + ./slack ./spotify ./stack ./telegram diff --git a/home/programs/slack/default.nix b/home/programs/slack/default.nix new file mode 100644 index 0000000..fd6aa5b --- /dev/null +++ b/home/programs/slack/default.nix @@ -0,0 +1,5 @@ +{ pkgs, ... }: + +{ + home.packages = with pkgs; [ slack ]; +}