diff --git a/hosts/default/apps/crossover.nix b/hosts/default/apps/crossover.nix deleted file mode 100644 index 2b7f2d3..0000000 --- a/hosts/default/apps/crossover.nix +++ /dev/null @@ -1,213 +0,0 @@ -# https://github.com/NixOS/nixpkgs/issues/209545 - -{ - lib, - stdenv, - fetchurl, - dpkg, - autoPatchelfHook, - makeWrapper, - pkgs, - wrapGAppsHook, - gobject-introspection, - glibc_multi, - gsettings-desktop-schemas, -}: - -let - gds = gsettings-desktop-schemas; - # Create LSB Release File - lsbRelease = pkgs.writeText "lsb-release" '' - DISTRIB_ID=nixos - DISTRIB_RELEASE=${pkgs.lib.version} - DISTRIB_CODENAME=nixos - DISTRIB_DESCRIPTION="NixOS" - ''; - - # Remove Python Ads - pythonSetup = pkgs.writeText "crossover-python-setup.py" '' - import warnings - import locale - import os - - # Skip Ads - warnings.filterwarnings("ignore", category=DeprecationWarning, module="fileupdate") - warnings.filterwarnings("ignore", category=DeprecationWarning, module="distversion") - warnings.filterwarnings("ignore", category=DeprecationWarning, module="multiprocessing.popen_fork") - - # Local - try: - locale.setlocale(locale.LC_ALL, "") - except: - locale.setlocale(locale.LC_ALL, "C") - ''; - - # Script for install crossover - setupScript = pkgs.writeScript "setup-crossover.sh" '' - #!${pkgs.bash}/bin/bash - set -e - - mkdir -p "$HOME/.cxoffice" - mkdir -p "$HOME/.local/share/cxoffice" - mkdir -p "$HOME/.local/share/applications/cxoffice" - mkdir -p "$HOME/.local/share/icons" - mkdir -p "$HOME/.cache/cxoffice" - - if [ ! -f "$HOME/.local/share/cxoffice/crossover.conf" ]; then - echo "Create crossover.conf..." - cat > "$HOME/.local/share/cxoffice/crossover.conf" << EOF - [CrossOver] - autoinstall=true - check_for_updates=false - EOF - fi - - chmod -R u+rw "$HOME/.cxoffice" - chmod -R u+rw "$HOME/.local/share/cxoffice" - chmod -R u+rw "$HOME/.local/share/applications/cxoffice" - chmod -R u+rw "$HOME/.cache/cxoffice" - - ''; -in -stdenv.mkDerivation rec { - pname = "crossover"; - version = "22.0.1-1"; - - src = fetchurl { - url = "https://media.codeweavers.com/pub/crossover/cxlinux/demo/crossover_${version}.deb"; - sha256 = "sha256-0wpM/4LCfjeZLgt0ECGdRuL3YPE0gQ/2otzUkJ9B/dY="; - }; - - nativeBuildInputs = [ - dpkg - autoPatchelfHook - wrapGAppsHook - gobject-introspection - makeWrapper - pkgs.unzip - ]; - - buildInputs = [ - # graphics - pkgs.gtk3 - pkgs.gtkdialog - pkgs.vte - pkgs.libnotify - pkgs.shared-mime-info - - # System - glibc_multi - pkgs.glibc.dev - pkgs.libxcrypt-legacy - - # Audio - pkgs.alsa-lib - pkgs.alsa-plugins - pkgs.pulseaudio - pkgs.openal - - # Multimedia - pkgs.gst_all_1.gstreamer - pkgs.gst_all_1.gst-plugins-base - pkgs.gst_all_1.gst-plugins-good - pkgs.gst_all_1.gst-plugins-ugly - - # Network - pkgs.gnutls - pkgs.libgpg-error - pkgs.openldap - pkgs.openssl - pkgs.openssl.dev - pkgs.libpcap - pkgs.cacert - - # Image - pkgs.libgphoto2 - pkgs.sane-backends - pkgs.cups - - # Other - pkgs.gmp - pkgs.libunwind - pkgs.ocl-icd - pkgs.vulkan-loader - pkgs.sqlite - pkgs.desktop-file-utils - - # Python - (pkgs.python3.withPackages ( - p: with p; [ - pygobject3 - gst-python - dbus-python - pycairo - requests - urllib3 - ] - )) - ]; - - runtimeDependencies = [ - pkgs.vulkan-loader - pkgs.cups.lib - pkgs.openssl - ]; - - unpackCmd = "dpkg -x $src source"; - - autoPatchelfIgnoreMissingDeps = [ - "libcapi20.so.3" - "libpcap.so.0.8" - ]; - - preFixup = '' - gappsWrapperArgs+=( - --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath buildInputs} - --prefix GST_PLUGIN_PATH : "$GST_PLUGIN_SYSTEM_PATH_1_0" - --prefix VK_LAYER_PATH : ${pkgs.vulkan-validation-layers}/share/vulkan/explicit_layer.d - --set OPENSSL_CONF "${pkgs.openssl.out}/etc/ssl/openssl.cnf" - --set SSL_CERT_FILE "${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt" - --prefix PATH : ${ - lib.makeBinPath [ - pkgs.openssl - pkgs.desktop-file-utils - ] - } - --set PYTHONWARNINGS "ignore" - --set PYTHONSTARTUP "${pythonSetup}" - --set GSETTINGS_SCHEMA_DIR "${gds}/share/gsettings-schemas/${gds.pname}-${gds.version}/glib-2.0/schemas" - --set CXOFFICE_HOME "$HOME/.cxoffice" - --set XDG_DATA_HOME "$HOME/.local/share" - --set XDG_CACHE_HOME "$HOME/.cache" - ) - ''; - - installPhase = '' - runHook preInstall - - mkdir -p $out/{bin,opt,usr,etc,libexec} - cp -r opt/* $out/opt/ - cp -r usr/* $out/usr/ - - cp ${lsbRelease} $out/etc/lsb-release - - install -Dm755 ${setupScript} $out/libexec/setup-crossover.sh - - makeWrapper $out/opt/cxoffice/bin/crossover $out/bin/crossover \ - --run "$out/libexec/setup-crossover.sh" \ - --set LSB_RELEASE "$out/etc/lsb-release" \ - "''${gappsWrapperArgs[@]}" - - chmod +x $out/opt/cxoffice/bin/* - - runHook postInstall - ''; - - meta = with lib; { - description = "Run your Windows® apps on Linux"; - homepage = "https://www.codeweavers.com/crossover"; - license = licenses.unfree; - maintainers = with maintainers; [ ]; - platforms = [ "x86_64-linux" ]; - }; -} diff --git a/hosts/default/apps/files/crontab-executable.ts b/hosts/default/apps/files/crontab-executable.ts deleted file mode 100644 index 9ce4eff..0000000 --- a/hosts/default/apps/files/crontab-executable.ts +++ /dev/null @@ -1,80 +0,0 @@ -import fs from "fs"; -import path from "path"; -import { exec } from "child_process"; - -const stateFilePath = path.join( - process.env.HOME || "~", - ".regretevator-challenge-state" -); - -const regretevatorStateFile = path.join( - process.env.HOME || "~", - ".regretevator_state" -); - -if (fs.existsSync(regretevatorStateFile)) process.exit(0); - -function sendReminderNotification() { - exec( - `notify-send -a "tuxstrap" -u low "OCbwoy3's Dotfiles" "It's time for Regretevator!"` - ); -} - -function sendReminderNotificationPlayed(floors: number) { - exec( - `notify-send -a "tuxstrap" -u low "OCbwoy3's Dotfiles" "Man... Only ${floors} floors, really? You can do better than that."` - ); -} - -function sendSpamNotifications() { - for (let i = 0; i < 2; i++) { - exec( - `notify-send -a "tuxstrap" -u low "OCbwoy3's Dotfiles" "HURRY UP!!!!!"` - ); - } -} - -function writeState(floorsSurvived: number) { - const state = { - date: new Date().toLocaleString("en-CA", { timeZoneName: "short" }).split(",")[0], - floors: floorsSurvived, - }; - fs.writeFileSync(stateFilePath, JSON.stringify(state, null, 2)); -} - -function checkChallengeState() { - if (fs.existsSync(stateFilePath)) { - const state = JSON.parse(fs.readFileSync(stateFilePath, "utf-8")); - const today = new Date().toLocaleString("en-CA", { timeZoneName: "short" }).split(",")[0]; - const stateDate = state.date; - const floorsSurvived = state.floors; - - const now = new Date(); - const hoursLeft = 24 - now.getHours(); - - if (stateDate === today) { - if (floorsSurvived < 25) { - /* - if (floorsSurvived === 0) { - sendReminderNotification(); - } else { - sendReminderNotificationPlayed(floorsSurvived); - } - if (hoursLeft <= 4) { - sendSpamNotifications(); - } - */ - sendReminderNotification(); - } - } else { - sendReminderNotification(); - writeState(0); - } - } else { - sendReminderNotification(); - writeState(0); - } -} - -// Run the check -checkChallengeState(); diff --git a/hosts/default/apps/tuxstrap-crontab.nix b/hosts/default/apps/tuxstrap-crontab.nix deleted file mode 100644 index 49d706d..0000000 --- a/hosts/default/apps/tuxstrap-crontab.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ pkgs ? import { } }: - -pkgs.stdenv.mkDerivation { - name = "tuxstrap-cron-executable"; - src = ./files/crontab-executable.ts; - - unpackPhase = '' - mkdir -p $out - ''; - - buildPhase = '' - mkdir -p $out - mkdir -p $out/lib - cp $src $out/lib/crontab-executable.ts - ''; - - installPhase = '' - mkdir -p $out/bin - echo "#!/bin/bash" > $out/bin/tuxstrap-crontab - echo '${pkgs.bun}/bin/bun run $(dirname "$(realpath "$0")")/../lib/crontab-executable.ts' >> $out/bin/tuxstrap-crontab - chmod +x $out/bin/tuxstrap-crontab - ''; -} diff --git a/hosts/default/apps/wl-shimeji.nix b/hosts/default/apps/wl-shimeji.nix deleted file mode 100644 index 916a4ae..0000000 --- a/hosts/default/apps/wl-shimeji.nix +++ /dev/null @@ -1,28 +0,0 @@ -{ lib, stdenv, fetchgit, pkg-config, wayland, wayland-protocols, wlr-protocols, wayland-scanner, libspng }: - -stdenv.mkDerivation rec { - pname = "wl_shimeji"; - version = "1.0.0"; # Change to the appropriate version - - src = fetchgit { - url = "https://github.com/CluelessCatBurger/wl_shimeji.git"; - rev = "392a83d5658f283ace77b0c839d5a201cebc8784"; # Change to the appropriate commit - sha256 = "sha256-T7sWuKOsc0vEfkcGbRXLHit24db97crEhYadOMq4MDM="; # Put the correct sha256 hash - fetchSubmodules = true; - }; - - nativeBuildInputs = [ pkg-config wayland wayland-protocols wlr-protocols libspng wayland-scanner ]; - - buildInputs = [ ]; - - installPhase = '' - make install PREFIX=$out - ''; - - meta = with lib; { - description = "Shimeji reimplementation for Wayland in C"; - homepage = "https://github.com/CluelessCatBurger/wl_shimeji"; - license = licenses.gpl2; - maintainers = with maintainers; [ ]; - }; -} diff --git a/modules/home-manager/fastfetch.nix b/modules/home-manager/fastfetch.nix new file mode 100644 index 0000000..1bf1f94 --- /dev/null +++ b/modules/home-manager/fastfetch.nix @@ -0,0 +1,16 @@ +{ config, pkgs, ... }: + +{ + + programs.fastfetch = { + enable = true; + settings = { + # Example: Change colors and add custom options + logo = "nixos"; + color = "blue"; + keyColor = "cyan"; + separator = " => "; + }; + }; + +} diff --git a/modules/home-manager/main.nix b/modules/home-manager/main.nix new file mode 100644 index 0000000..8bec416 --- /dev/null +++ b/modules/home-manager/main.nix @@ -0,0 +1,7 @@ +{ config, pkgs, ... }: + +{ + imports = [ + ./fastfetch.nix + ]; +} \ No newline at end of file