diff --git a/.gitignore b/.gitignore index 9cb2216..4366240 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ -.stfolder/ +.stfolder .stversions/ diff --git a/.stfolder b/.stfolder new file mode 100644 index 0000000..e69de29 diff --git a/flake.nix b/flake.nix index 95584a4..6449ad0 100644 --- a/flake.nix +++ b/flake.nix @@ -45,6 +45,8 @@ "x86_64-darwin" "aarch64-darwin" ]; + + flake.overlays.default = import ./overlays; perSystem = { pkgs, ... }: { diff --git a/modules/features/desktop/bluetooth.nix b/modules/features/desktop/bluetooth.nix index d18b5b1..641a881 100644 --- a/modules/features/desktop/bluetooth.nix +++ b/modules/features/desktop/bluetooth.nix @@ -11,6 +11,16 @@ enable = lib.mkForce true; powerOnBoot = true; }; + hardware.bluetooth.settings = { + Input = { + # This allows the BLE handshake to bypass classic security checks + ClassicBondedOnly = false; + }; + General = { + # Helps with the "AuthenticationCanceled" error + JustWorksRepairing = "always"; + }; + }; services.upower = { enable = true; diff --git a/modules/features/desktop/dolphin.nix b/modules/features/desktop/dolphin.nix index b45cae2..fc6e14e 100644 --- a/modules/features/desktop/dolphin.nix +++ b/modules/features/desktop/dolphin.nix @@ -45,6 +45,7 @@ ''; in { + home.packages = with pkgs; [ kdePackages.dolphin kdePackages.kio @@ -53,7 +54,8 @@ kdePackages.ark kdePackages.ffmpegthumbs kdePackages.kdegraphics-thumbnailers - # whitesur-icon-theme + kdePackages.kpipewire + whitesur-icon-theme ]; # Helps some non-KDE apps pick Dolphin for directory browsing. @@ -138,6 +140,14 @@ "application/x-rar" ]; }; + services.udiskie = { + enable = true; + settings = { + program_options = { + file_manager = "${pkgs.kdePackages.dolphin}/bin/dolphin"; + }; + }; + }; home.sessionVariables = { XDG_ICON_DIR = "${pkgs.whitesur-icon-theme}/share/icons/WhiteSur"; diff --git a/modules/features/desktop/gui-programs.nix b/modules/features/desktop/gui-programs.nix index 1cc0e8e..fa0d4e6 100644 --- a/modules/features/desktop/gui-programs.nix +++ b/modules/features/desktop/gui-programs.nix @@ -9,6 +9,7 @@ ticktick gimp vlc + feishin ]; } ) diff --git a/modules/features/desktop/wayland.nix b/modules/features/desktop/wayland.nix index 31b8e79..367b756 100644 --- a/modules/features/desktop/wayland.nix +++ b/modules/features/desktop/wayland.nix @@ -5,6 +5,8 @@ ( { pkgs, ... }: { + + services.udisks2.enable = true; environment.systemPackages = with pkgs; [ wlr-randr wl-clipboard diff --git a/modules/features/ops/ops-k8s.nix b/modules/features/ops/ops-k8s.nix index 9d45ec9..0b0c14a 100644 --- a/modules/features/ops/ops-k8s.nix +++ b/modules/features/ops/ops-k8s.nix @@ -16,6 +16,8 @@ kubernetes-helm # Package manager for Kubernetes applications, simplifying deployment and management. minikube # Local Kubernetes cluster for easy testing and development. stern # Multi-container log tailing and streaming for Kubernetes. + lfk + istioctl ]; } ) diff --git a/modules/features/programs/cli/cli-programs.nix b/modules/features/programs/cli/cli-programs.nix index 0194424..8ee5042 100644 --- a/modules/features/programs/cli/cli-programs.nix +++ b/modules/features/programs/cli/cli-programs.nix @@ -7,11 +7,18 @@ pkgs, ... }: + # let + # repeater = pkgs.callPackage ../../../../pkgs/repeater.nix { }; + # in { home.packages = with pkgs; [ vhs libqalculate + nurl + nix-init + nixpkgs-review + repeater ]; } ) diff --git a/modules/nixos/clamav.nix b/modules/nixos/clamav.nix index 4562585..0a897b0 100644 --- a/modules/nixos/clamav.nix +++ b/modules/nixos/clamav.nix @@ -5,7 +5,7 @@ ]; services.clamav = { - daemon.enable = true; + daemon.enable = false; updater.enable = true; scanner.enable = true; fangfrisch.enable = true; diff --git a/modules/top/classes/nixos.nix b/modules/top/classes/nixos.nix index 55d7115..778a847 100644 --- a/modules/top/classes/nixos.nix +++ b/modules/top/classes/nixos.nix @@ -95,6 +95,11 @@ let }; modules = [ + { + nixpkgs.overlays = [ + inputs.self.overlays.default + ]; + } ../inventory/current.nix ../inventory/features.nix ../inventory/hosts.nix diff --git a/overlays/default.nix b/overlays/default.nix new file mode 100644 index 0000000..c8463ca --- /dev/null +++ b/overlays/default.nix @@ -0,0 +1,4 @@ +final: prev: { + repeater = prev.callPackage ../pkgs/repeater/package.nix { }; + lfk = prev.callPackage ../pkgs/lfk/package.nix { }; +} diff --git a/pkgs/lfk/package.nix b/pkgs/lfk/package.nix new file mode 100644 index 0000000..3e17b48 --- /dev/null +++ b/pkgs/lfk/package.nix @@ -0,0 +1,32 @@ +{ + lib, + buildGoModule, + fetchFromGitHub, +}: + +buildGoModule (finalAttrs: { + pname = "lfk"; + version = "0.9.36"; + __structuredAttrs = true; + + src = fetchFromGitHub { + owner = "janosmiko"; + repo = "lfk"; + tag = "v${finalAttrs.version}"; + hash = "sha256-aIWqZ90Mz6Oc554wLB4691JsX68VG0pD3+AuAOkqNis="; + }; + + vendorHash = "sha256-2YhpOg5asUYaMQxorwTt1gkyiA165wjBxDoIUJ74sro="; + + ldflags = [ "-s" ]; + + meta = { + description = "Lightning Fast Kubernetes navigator"; + longDescription = "LFK is a lightning-fast, keyboard-focused, yazi-inspired terminal user interface for navigating and managing Kubernetes clusters. Built for speed and efficiency, it brings a three-column Miller columns layout with an owner-based resource hierarchy to your terminal"; + homepage = "https://github.com/janosmiko/lfk"; + changelog = "https://github.com/janosmiko/lfk/blob/${finalAttrs.src.tag}/CHANGELOG.md"; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ gwg313 ]; + mainProgram = "lfk"; + }; +}) diff --git a/pkgs/repeater/package.nix b/pkgs/repeater/package.nix new file mode 100644 index 0000000..91108cb --- /dev/null +++ b/pkgs/repeater/package.nix @@ -0,0 +1,48 @@ +{ + lib, + rustPlatform, + fetchFromGitHub, + pkg-config, + bzip2, + sqlite, + vulkan-loader, + zstd, +}: + +rustPlatform.buildRustPackage (finalAttrs: { + pname = "repeater"; + version = "0.1.9"; + + src = fetchFromGitHub { + owner = "shaankhosla"; + repo = "repeater"; + tag = "v${finalAttrs.version}"; + hash = "sha256-vkiDJ9hGEa9PCaNjgGJAvAFGUxXJK04ezvXyAmJB3bk="; + }; + + cargoHash = "sha256-/ttQpk9JnSRhE/VOJlz60LpV1PJ/spzXQ1EPLcox1mw="; + + nativeBuildInputs = [ + pkg-config + ]; + + buildInputs = [ + bzip2 + sqlite + vulkan-loader + zstd + ]; + + env = { + ZSTD_SYS_USE_PKG_CONFIG = true; + }; + + meta = { + description = "Spaced repetition, in your terminal"; + homepage = "https://github.com/shaankhosla/repeater"; + changelog = "https://github.com/shaankhosla/repeater/blob/${finalAttrs.src.rev}/CHANGELOG.md"; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ ]; + mainProgram = "repeater"; + }; +})