From 0c6d0edb4292aaca428cbfb0251a751986ae4c93 Mon Sep 17 00:00:00 2001 From: js0ny Date: Tue, 14 Oct 2025 01:33:40 +0100 Subject: [PATCH] nix: waydroid --- home/dot_config/nvim/lsp/nil.lua | 32 ++++++++++ nixcfgs/hosts/zephyrus/default.nix | 5 +- nixcfgs/modules/home/dev/c.nix | 5 +- nixcfgs/modules/nixos/fonts.nix | 87 +++++++++++++++----------- nixcfgs/modules/nixos/packages.nix | 4 +- nixcfgs/modules/nixos/waydroid.nix | 22 +++++++ nixcfgs/users/js0ny/packages/cli.nix | 12 ++-- nixcfgs/users/js0ny/packages/gui.nix | 4 +- nixcfgs/users/js0ny/programs/gnome.nix | 30 ++++++--- 9 files changed, 142 insertions(+), 59 deletions(-) create mode 100644 home/dot_config/nvim/lsp/nil.lua create mode 100644 nixcfgs/modules/nixos/waydroid.nix diff --git a/home/dot_config/nvim/lsp/nil.lua b/home/dot_config/nvim/lsp/nil.lua new file mode 100644 index 0000000..7c99192 --- /dev/null +++ b/home/dot_config/nvim/lsp/nil.lua @@ -0,0 +1,32 @@ +-- /lsp/nil.lua +-- Nil LSP config + +vim.lsp.config("nil", { + cmd = { "nil" }, + root_markers = { + "flake.nix", + "flake.lock", + }, + filetypes = { + "nix", + }, + -- Global config options + settings = { + ["nil"] = { + formatting = { + command = { "alejandra" }, + }, + diagnostics = { + ignored = {}, + }, + nix = { + maxMemoryMB = 2560, + }, + flake = { + autoArchive = false, + autoEvalImputs = true, + nixpkgsInputName = "nixpkgs", + }, + }, + }, +}) diff --git a/nixcfgs/hosts/zephyrus/default.nix b/nixcfgs/hosts/zephyrus/default.nix index ef9c276..9a1b400 100644 --- a/nixcfgs/hosts/zephyrus/default.nix +++ b/nixcfgs/hosts/zephyrus/default.nix @@ -10,10 +10,9 @@ imports = [ ../../modules/nixos ../../modules/nixos/host-machine.nix - # ../../modules/nixos/users/js0ny.nix - # ../../modules/nixos/guest.nix + ../../modules/nixos/waydroid.nix ../../modules/nixos/laptop.nix - ../../modules/nixos/nvidia.nix + ../../modules/nixos/disable-nvidia.nix ../../modules/nixos/additional-packages.nix ../../modules/nixos/libvirt.nix ../../modules/nixos/docker.nix diff --git a/nixcfgs/modules/home/dev/c.nix b/nixcfgs/modules/home/dev/c.nix index f97368d..2628cf4 100644 --- a/nixcfgs/modules/home/dev/c.nix +++ b/nixcfgs/modules/home/dev/c.nix @@ -1,7 +1,6 @@ -{pkgs, ...}: - -{ +{pkgs, ...}: { home.packages = with pkgs; [ gcc + llvmPackages_21.clang-tools ]; } diff --git a/nixcfgs/modules/nixos/fonts.nix b/nixcfgs/modules/nixos/fonts.nix index b131f97..1056f3f 100644 --- a/nixcfgs/modules/nixos/fonts.nix +++ b/nixcfgs/modules/nixos/fonts.nix @@ -2,54 +2,71 @@ pkgs, config, ... -}: { - environment.systemPackages = with pkgs; [ - maple-mono.NF - sarasa-gothic - lxgw-wenkai - lxgw-neoxihei - noto-fonts-cjk-sans - noto-fonts - noto-fonts-emoji - nerd-fonts.jetbrains-mono +}: +let + fontPkgs = [ + pkgs.maple-mono.NF + pkgs.sarasa-gothic + pkgs.lxgw-wenkai + pkgs.lxgw-neoxihei + pkgs.noto-fonts-cjk-sans + pkgs.noto-fonts + pkgs.noto-fonts-emoji + pkgs.nerd-fonts.jetbrains-mono ]; +in +{ + environment.systemPackages = fontPkgs; fonts = { enableDefaultPackages = true; + packages = fontPkgs; fontconfig = { enable = true; defaultFonts = { - monospace = ["Maple Mono NF" "JetBrainsMono Nerd Font"]; - serif = ["LXGW WenKai"]; - sansSerif = ["LXGW Neo XiHei"]; + monospace = [ + "Maple Mono NF" + "JetBrainsMono Nerd Font" + ]; + serif = [ "LXGW WenKai" ]; + sansSerif = [ "LXGW Neo XiHei" ]; }; }; fontDir.enable = true; }; - system.fsPackages = [pkgs.bindfs]; - fileSystems = let - mkRoSymBind = path: { - device = path; - fsType = "fuse.bindfs"; - options = ["ro" "resolve-symlinks" "x-gvfs-hide"]; - }; - aggregated = pkgs.buildEnv { - name = "system-fonts-and-icons"; - paths = with pkgs; [ - libsForQt5.breeze-qt5 + system.fsPackages = [ pkgs.bindfs ]; + fileSystems = + let + mkRoSymBind = path: { + device = path; + fsType = "fuse.bindfs"; + options = [ + "ro" + "resolve-symlinks" + "x-gvfs-hide" + ]; + }; + aggregated = pkgs.buildEnv { + name = "system-fonts-and-icons"; + paths = fontPkgs; # with pkgs; [ + # libsForQt5.breeze-qt5 - noto-fonts - noto-fonts-emoji - noto-fonts-cjk-sans - noto-fonts-cjk-serif - ]; - pathsToLink = ["/share/fonts" "/share/icons"]; + # noto-fonts + # noto-fonts-emoji + # noto-fonts-cjk-sans + # noto-fonts-cjk-serif + # ]; + pathsToLink = [ + "/share/fonts" + "/share/icons" + ]; + }; + in + { + # Create an FHS mount to support flatpak host icons/fonts + "/usr/share/icons" = mkRoSymBind "${aggregated}/share/icons"; + "/usr/share/fonts" = mkRoSymBind "${aggregated}/share/fonts"; }; - in { - # Create an FHS mount to support flatpak host icons/fonts - "/usr/share/icons" = mkRoSymBind "${aggregated}/share/icons"; - "/usr/share/fonts" = mkRoSymBind "${aggregated}/share/fonts"; - }; } diff --git a/nixcfgs/modules/nixos/packages.nix b/nixcfgs/modules/nixos/packages.nix index 25db074..cc8f5a5 100644 --- a/nixcfgs/modules/nixos/packages.nix +++ b/nixcfgs/modules/nixos/packages.nix @@ -1,6 +1,5 @@ # ~/.config/nix-config/common/packages-headless.nix -{ pkgs, ... }: -{ +{pkgs, ...}: { # nixpkgs.config.allowUnfree = true; environment.systemPackages = with pkgs; [ vim @@ -9,5 +8,6 @@ git tmux wl-clipboard + nix-index ]; } diff --git a/nixcfgs/modules/nixos/waydroid.nix b/nixcfgs/modules/nixos/waydroid.nix new file mode 100644 index 0000000..cc42c6b --- /dev/null +++ b/nixcfgs/modules/nixos/waydroid.nix @@ -0,0 +1,22 @@ +{ pkgs, inputs, ... }: +{ + virtualisation.waydroid.enable = true; + nixpkgs.overlays = [ + inputs.nur.overlays.default + ]; + # waydroid-script: Tool to install libhoudini (arm support), magisk, ... + # usage: sudo waydroid-script + environment.systemPackages = with pkgs; [ + nur.repos.ataraxiasjel.waydroid-script + waydroid-helper + ]; + systemd = { + packages = [ pkgs.waydroid-helper ]; + services.waydroid-mount = { + wantedBy = [ "multi-user.target" ]; + serviceConfig = { + ExecStart = "${pkgs.waydroid-helper}/bin/waydroid-helper --start-mount"; + }; + }; + }; +} diff --git a/nixcfgs/users/js0ny/packages/cli.nix b/nixcfgs/users/js0ny/packages/cli.nix index e3c8edb..f7e149e 100644 --- a/nixcfgs/users/js0ny/packages/cli.nix +++ b/nixcfgs/users/js0ny/packages/cli.nix @@ -2,6 +2,7 @@ { pkgs, ... }: { home.packages = with pkgs; [ + rclone age aichat beancount @@ -40,16 +41,15 @@ zoxide wakatime-cli # Langs - # lua - luajit + # lua luajit lua51Packages.luarocks ghostscript mermaid-cli tectonic - # Misc - ta-lib - ddgr - protonvpn-cli + # Misc ta-lib ddgr protonvpn-cli markdown-oxide + nushell + powershell + powershell-editor-services ]; } diff --git a/nixcfgs/users/js0ny/packages/gui.nix b/nixcfgs/users/js0ny/packages/gui.nix index a2a99f4..7ef0962 100644 --- a/nixcfgs/users/js0ny/packages/gui.nix +++ b/nixcfgs/users/js0ny/packages/gui.nix @@ -1,4 +1,5 @@ -{pkgs, ...}: { +{ pkgs, ... }: +{ home.packages = with pkgs; [ kitty ghostty @@ -31,5 +32,6 @@ protonvpn-gui proton-pass protonmail-bridge-gui + mpv ]; } diff --git a/nixcfgs/users/js0ny/programs/gnome.nix b/nixcfgs/users/js0ny/programs/gnome.nix index 26f375a..76160d3 100644 --- a/nixcfgs/users/js0ny/programs/gnome.nix +++ b/nixcfgs/users/js0ny/programs/gnome.nix @@ -1,4 +1,5 @@ -{pkgs, ...}: { +{ pkgs, ... }: +{ home.packages = with pkgs; [ gnome-tweaks sushi @@ -16,14 +17,15 @@ ]; programs.gnome-shell.enable = true; programs.gnome-shell.extensions = [ - {package = pkgs.gnomeExtensions.dash-to-dock;} - {package = pkgs.gnomeExtensions.caffeine;} - {package = pkgs.gnomeExtensions.logo-menu;} - {package = pkgs.gnomeExtensions.kimpanel;} - {package = pkgs.gnomeExtensions.appindicator;} - {package = pkgs.gnomeExtensions.gsconnect;} - {package = pkgs.gnomeExtensions.clipboard-indicator;} - {package = pkgs.gnomeExtensions.advanced-alttab-window-switcher;} + { package = pkgs.gnomeExtensions.dash-to-dock; } + { package = pkgs.gnomeExtensions.caffeine; } + { package = pkgs.gnomeExtensions.logo-menu; } + { package = pkgs.gnomeExtensions.kimpanel; } + { package = pkgs.gnomeExtensions.appindicator; } + { package = pkgs.gnomeExtensions.gsconnect; } + { package = pkgs.gnomeExtensions.clipboard-indicator; } + { package = pkgs.gnomeExtensions.advanced-alttab-window-switcher; } + { package = pkgs.gnomeExtensions.blur-my-shell; } ]; dconf.settings = { @@ -76,6 +78,16 @@ "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom-2/" ]; }; + "org/freedesktop/tracker/miner/files" = { + "index-recursive-directories" = [ + "&DESKTOP" + "&DOCUMENTS" + "&MUSIC" + "&PICTURES" + "&VIDEOS" + "/home/js0ny/Obsidian" + ]; + }; }; # qt.style.name = "adwaita";