diff --git a/modules/default.nix b/modules/default.nix index 026eb30..3e7c0ad 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -8,6 +8,7 @@ ./misc/common ./misc/username ./profiles/desktop + ./programs/distrobox ./programs/email ./programs/eog ./programs/hunspell diff --git a/modules/programs/distrobox/default.nix b/modules/programs/distrobox/default.nix new file mode 100644 index 0000000..f867a32 --- /dev/null +++ b/modules/programs/distrobox/default.nix @@ -0,0 +1,40 @@ +{ config, lib, pkgs, ... }: +let + cfg = config.programs.az-distrobox; + boosteroid = pkgs.writeShellScriptBin "boosteroid" '' + ${pkgs.unstable.distrobox}/bin/distrobox enter boosteroid -- /opt/BoosteroidGamesS.R.L./bin/Boosteroid + ''; + boosteroid-install = pkgs.writeShellScriptBin "boosteroid-install" '' + # setup audio + sudo apt install -y pipewire-audio-client-libraries wireplumber && + sudo cp /usr/share/doc/pipewire/examples/alsa.conf.d/99-pipewire-default.conf /etc/alsa/conf.d/ && + sudo ldconfig && + systemctl --user --now enable wireplumber.service && + + # install boosteroid + sudo apt install -y libxi6 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-render-util0 libxcb-shape0 libxcb-xkb1 libxkbcommon-x11-0 libwayland-cursor0 fontconfig-config fonts-dejavu-core i965-va-driver intel-media-va-driver libc-dev-bin libc-devtools libc6-dev libcrypt-dev libdeflate0 libfontconfig1 libfreetype6 libgd3 libigdgmm12 libjbig0 libjpeg-turbo8 libjpeg8 libnsl-dev libpcre2-16-0 libpcre2-32-0 libpcre2-dev libpcre2-posix3 libpng16-16 libtiff5 libtirpc-dev libva-drm2 libva-x11-2 libva2 libvdpau1 libwebp7 libxcb-xinerama0 libxcb-xinput0 libxpm4 linux-libc-dev manpages manpages-dev mesa-va-drivers mesa-vdpau-drivers rpcsvc-proto traceroute ucf va-driver-all vdpau-driver-all && + wget -q --no-hsts https://boosteroid.com/linux/installer/boosteroid-install-x64.deb && sudo dpkg -i ./boosteroid-install-x64.deb && rm ./boosteroid-install-x64.deb + ''; +in +{ + options = { + programs.az-distrobox.enable = lib.mkEnableOption "Install distrobox and configure it to run GUI applications."; + }; + config = lib.mkIf cfg.enable { + environment = { + systemPackages = [ + boosteroid + boosteroid-install + pkgs.unstable.distrobox + pkgs.xorg.xhost + ]; + shellInit = '' + [ -n "$DISPLAY" ] && xhost +si:localuser:$USER || true + ''; + }; + + home-manager.users.${config.az-username} = { + home.file.".config/distrobox/distrobox.conf".source = ./distrobox.conf; + }; + }; +} diff --git a/modules/programs/distrobox/distrobox.conf b/modules/programs/distrobox/distrobox.conf new file mode 100644 index 0000000..0047ee9 --- /dev/null +++ b/modules/programs/distrobox/distrobox.conf @@ -0,0 +1,7 @@ +container_always_pull="1" +container_generate_entry=0 +container_manager="docker" +container_image_default=" docker.io/library/ubuntu:22.04" +container_name_default="testbox-1" +container_user_custom_home="$HOME/.local/share/distrobox-home-test" +non_interactive="1" \ No newline at end of file diff --git a/systems/gwyn/default.nix b/systems/gwyn/default.nix index 8b4ced0..20f4185 100644 --- a/systems/gwyn/default.nix +++ b/systems/gwyn/default.nix @@ -53,6 +53,7 @@ profiles.az-desktop.enable = true; programs = { + az-distrobox.enable = true; az-lockscreen.enable = true; az-makemkv.enable = true; az-restic-management.enable = true;