nix-on-droid updates

Changed files
+171 -81
modules
personal
nix-on-droid
+81 -73
flake.nix
···
hyperbib-eeg,
neovim,
...
-
}@inputs: rec {
-
nixosConfigurations =
-
let
-
getSystemOverlays = system: nixpkgsConfig:
-
[
-
(final: prev: {
-
overlay-unstable = import nixpkgs-unstable {
-
inherit system;
-
# follow stable nixpkgs config
-
config = nixpkgsConfig;
-
};
-
overlay-compat = import nixpkgs-compat {
-
inherit system;
-
config = nixpkgsConfig;
-
};
-
agenix = agenix.packages.${system}.default;
-
eeww = eeww.defaultPackage.${system};
-
eon = eon.defaultPackage.${system};
-
mautrix-signal = final.overlay-unstable.mautrix-signal;
-
i3-workspace-history = i3-workspace-history.packages.${system}.default;
-
maildir-rank-addr = final.callPackage ./pkgs/maildir-rank-addr.nix { };
-
# https://github.com/NixOS/nixpkgs/issues/86349#issuecomment-624489806
-
aerc = (prev.callPackage "${prev.path}/pkgs/applications/networking/mailreaders/aerc/default.nix" {
-
buildGoModule = args: prev.buildGoModule (args // {
-
src = prev.fetchFromSourcehut {
-
owner = "~rjarry";
-
repo = "aerc";
-
rev = "930e50328c3a57faeec7fd23881e044257eda157";
-
hash = "sha256-V1cjjJBAGqfBZIizAweMUYl7X3QorgLh/8J4HulmKAE=";
+
}@inputs:
+
let
+
getSystemOverlays = system: nixpkgsConfig:
+
[
+
(final: prev: {
+
overlay-unstable = import nixpkgs-unstable {
+
inherit system;
+
# follow stable nixpkgs config
+
config = nixpkgsConfig;
+
};
+
overlay-compat = import nixpkgs-compat {
+
inherit system;
+
config = nixpkgsConfig;
+
};
+
agenix = agenix.packages.${system}.default;
+
eeww = eeww.defaultPackage.${system};
+
eon = eon.defaultPackage.${system};
+
mautrix-signal = final.overlay-unstable.mautrix-signal;
+
i3-workspace-history = i3-workspace-history.packages.${system}.default;
+
maildir-rank-addr = final.callPackage ./pkgs/maildir-rank-addr.nix { };
+
# https://github.com/NixOS/nixpkgs/issues/86349#issuecomment-624489806
+
aerc = (prev.callPackage "${prev.path}/pkgs/applications/networking/mailreaders/aerc/default.nix" {
+
buildGoModule = args: prev.buildGoModule (args // {
+
src = prev.fetchFromSourcehut {
+
owner = "~rjarry";
+
repo = "aerc";
+
rev = "930e50328c3a57faeec7fd23881e044257eda157";
+
hash = "sha256-V1cjjJBAGqfBZIizAweMUYl7X3QorgLh/8J4HulmKAE=";
+
};
+
vendorHash = "sha256-IzQKgNilBq53w41gNLXCd1BgYXW/aUuQQtFeKEI/dKw=";
+
});
+
});
+
# https://github.com/swaywm/sway/pull/7226
+
sway-unwrapped = prev.callPackage ./pkgs/sway-im/package.nix {
+
libdrm = final.overlay-unstable.libdrm;
+
wlroots = prev.callPackage ./pkgs/wlroots/default.nix {
+
# for libdrm >=2.4.120
+
mesa = final.overlay-unstable.mesa;
+
wayland-protocols = prev.wayland-protocols.overrideAttrs (old: rec {
+
pname = "wayland-protocols";
+
version = "1.33";
+
src = prev.fetchurl {
+
url = "https://gitlab.freedesktop.org/wayland/${pname}/-/releases/${version}/downloads/${pname}-${version}.tar.xz";
+
hash = "sha256-lPDFCwkNbmGgP2IEhGexmrvoUb5OEa57NvZfi5jDljo=";
};
-
vendorHash = "sha256-IzQKgNilBq53w41gNLXCd1BgYXW/aUuQQtFeKEI/dKw=";
});
-
});
-
# https://github.com/swaywm/sway/pull/7226
-
sway-unwrapped = prev.callPackage ./pkgs/sway-im/package.nix {
-
libdrm = final.overlay-unstable.libdrm;
-
wlroots = prev.callPackage ./pkgs/wlroots/default.nix {
-
# for libdrm >=2.4.120
-
mesa = final.overlay-unstable.mesa;
-
wayland-protocols = prev.wayland-protocols.overrideAttrs (old: rec {
-
pname = "wayland-protocols";
-
version = "1.33";
-
src = prev.fetchurl {
-
url = "https://gitlab.freedesktop.org/wayland/${pname}/-/releases/${version}/downloads/${pname}-${version}.tar.xz";
-
hash = "sha256-lPDFCwkNbmGgP2IEhGexmrvoUb5OEa57NvZfi5jDljo=";
-
};
-
});
-
};
};
-
neovim-unwrapped = neovim.packages.${system}.default;
-
# https://github.com/NixOS/nixpkgs/pull/291559
-
libvpl = final.overlay-unstable.libvpl.overrideAttrs (_: {
-
patches = [ ./pkgs/opengl-driver-lib.patch ];
-
});
-
# https://github.com/jellyfin/jellyfin-media-player/issues/165#issuecomment-1966131861
-
jellyfin-media-player = prev.jellyfin-media-player.overrideAttrs (old: {
-
buildInputs =
-
(prev.lib.filter (input: input != prev.mpv) old.buildInputs) ++ [
-
(prev.mpv-unwrapped.overrideAttrs (old: {
-
buildInputs =
-
(prev.lib.filter (input: input != prev.libva) old.buildInputs) ++ [
-
(prev.libva.overrideAttrs (_: {
-
src = prev.fetchFromGitHub {
-
owner = "emersion";
-
repo = "libva";
-
rev = "linux-dmabuf";
-
hash = "sha256-d1cT6zOZHnrBBWjxOtSMAijPr4Tab+0GetZ6aqzhvrQ=";
-
};
-
}))
-
];
-
}))
-
];
-
});
-
})
-
];
-
+
};
+
neovim-unwrapped = neovim.packages.${system}.default;
+
# https://github.com/NixOS/nixpkgs/pull/291559
+
libvpl = final.overlay-unstable.libvpl.overrideAttrs (_: {
+
patches = [ ./pkgs/opengl-driver-lib.patch ];
+
});
+
# https://github.com/jellyfin/jellyfin-media-player/issues/165#issuecomment-1966131861
+
jellyfin-media-player = prev.jellyfin-media-player.overrideAttrs (old: {
+
buildInputs =
+
(prev.lib.filter (input: input != prev.mpv) old.buildInputs) ++ [
+
(prev.mpv-unwrapped.overrideAttrs (old: {
+
buildInputs =
+
(prev.lib.filter (input: input != prev.libva) old.buildInputs) ++ [
+
(prev.libva.overrideAttrs (_: {
+
src = prev.fetchFromGitHub {
+
owner = "emersion";
+
repo = "libva";
+
rev = "linux-dmabuf";
+
hash = "sha256-d1cT6zOZHnrBBWjxOtSMAijPr4Tab+0GetZ6aqzhvrQ=";
+
};
+
}))
+
];
+
}))
+
];
+
});
+
})
+
];
+
in rec {
+
nixosConfigurations =
+
let
mkMode = mode: host:
nixpkgs.lib.nixosSystem {
# use system from config.localSystem
···
nixOnDroidConfigurations.default = nix-on-droid.lib.nixOnDroidConfiguration {
modules = [ ./nix-on-droid/default.nix ];
+
pkgs = import nixpkgs {
+
overlays = getSystemOverlays "aarch64-linux" { };
+
config.permittedInsecurePackages = [
+
# https://github.com/nix-community/nixd/issues/357
+
"nix-2.16.2"
+
];
+
};
};
legacyPackages = {
+2 -1
modules/personal/zsh.cfg
···
typeset -g -A key
+
key[Up]="${terminfo[kcuu1]}"
+
key[Down]="${terminfo[kcud1]}"
key[Shift-Tab]="${terminfo[kcbt]}"
key[Control-Left]="^[[1;5D"
key[Control-Right]="^[[1;5C"
···
bindkey "${key[Up]}" up-line-or-beginning-search
bindkey "${key[Down]}" down-line-or-beginning-search
-
bindkey "${key[Shift-Tab]}" reverse-menu-complete
bindkey "${key[Control-Left]}" backward-word
bindkey "${key[Control-Right]}" forward-word
+49 -7
nix-on-droid/default.nix
···
-
{ pkgs, config, ... }:
+
{ pkgs, config, lib, ... }:
{
user.shell = "${pkgs.zsh}/bin/zsh";
···
];
environment.etcBackupExtension = ".bak";
-
+
+
# Tailscale nameserver https://github.com/nix-community/nix-on-droid/issues/2
+
environment.etc."resolv.conf".text = lib.mkForce ''
+
nameserver 100.100.100.100
+
nameserver 1.1.1.1
+
nameserver 8.8.8.8
+
'';
+
home-manager = {
useGlobalPkgs = true;
config =
···
# Use the same overlays as the system packages
nixpkgs = { inherit (config.nixpkgs) overlays; };
+
nix = {
+
package = pkgs.nix;
+
settings.experimental-features = [ "nix-command" "flakes" ];
+
};
+
+
# https://github.com/nix-community/nix-on-droid/issues/185
+
home.shellAliases = {
+
sshd = "$(readlink $(whereis sshd)) -f $HOME/.ssh/sshd_config";
+
ping = "/android/system/bin/linker64 /android/system/bin/ping";
+
};
+
programs.zsh = {
enable = true;
history.size = 100000;
···
lua-language-server
#pyright
#black
+
ltex-ls
];
extraLuaConfig = builtins.readFile ../modules/personal/nvim/nvim.lua;
-
plugins =
-
let obsidian-nvim =
+
# undo transparent background
+
# + "colorscheme gruvbox";
+
plugins = let
+
obsidian-nvim =
(pkgs.vimUtils.buildVimPlugin {
pname = "obsidian.nvim";
version = "2.6.0";
···
sha256 = "sha256-+w3XYoobuH17oinPfQxhrizbmQB5IbbulUK69674/Wg=";
};
});
-
in with pkgs.vimPlugins; [
-
vim-airline
-
vim-airline-themes
+
ltex-ls-nvim =
+
(pkgs.vimUtils.buildVimPlugin {
+
pname = "ltex-ls.nvim";
+
version = "2.6.0";
+
src = pkgs.fetchFromGitHub {
+
owner = "vigoux";
+
repo = "ltex-ls.nvim";
+
rev = "c8139ea6b7f3d71adcff121e16ee8726037ffebd";
+
sha256 = "sha256-jY3ALr6h88xnWN2QdKe3R0vvRcSNhFWDW56b2NvnTCs=";
+
};
+
});
+
in with pkgs.vimPlugins; [
gruvbox-nvim
telescope-nvim
+
telescope-fzf-native-nvim
+
trouble-nvim
obsidian-nvim
plenary-nvim
···
cmp-nvim-lsp-signature-help
cmp-path
cmp-buffer
+
cmp-cmdline
cmp-spell
+
luasnip
nvim-cmp
vimtex
+
nvim-surround
+
comment-nvim
+
+
ltex-ls-nvim
+
nvim-jdtls
+
# TODO nvim-dap
+
+
copilot-vim
];
};
+39
nix-on-droid/unexpected-keyboard-ortholinear-layout.xml
···
+
<?xml version="1.0" encoding="utf-8"?>
+
<keyboard name="QWERTY (UK)" script="latin">
+
<row>
+
<key key0="q" key2="1" key4="esc"/>
+
<key key0="w" key2="2" key3="&quot;"/>
+
<key key0="e" key1="!" key2="3" key3="loc £" key4="loc €"/>
+
<key key0="r" key2="4" key3="$" key1="loc ₪"/>
+
<key key0="t" key2="5" key3="%"/>
+
<key key0="y" key2="6" key3="^"/>
+
<key key0="u" key2="7" key3="&amp;"/>
+
<key key0="i" key2="8" key3="*"/>
+
<key key0="o" key1="loc accent_macron" key2="9" key3="(" key4=")"/>
+
<key key0="p" key2="0" key3="f11_placeholder" key4="f12_placeholder"/>
+
</row>
+
<row>
+
<key key0="a" key2="`" key4="tab"/>
+
<key key0="s" key1="loc accent_ring" key2="loc §" key3="loc ß" key4="loc accent_ogonek"/>
+
<key key0="d" key1="loc accent_grave" key3="loc accent_aigu"/>
+
<key key0="f" key1="loc accent_dot_above"/>
+
<key key0="g" key1="loc accent_caron" key2="-" key3="_"/>
+
<key key0="h" key2="=" key3="+"/>
+
<key key0="j" key1="loc accent_trema" key2="loc accent_circonflexe" key4="}" key3="{"/>
+
<key key0="k" key1="loc accent_double_aigu" key3="[" key4="]"/>
+
<key key0="l" key2="\@" key3="'"/>
+
<key key0=";" key1="\#" key2="~" key3=":"/>
+
</row>
+
<row>
+
<key width="1" key0="shift" key2="loc capslock"/>
+
<key key0="z" key2="|" key3="\\"/>
+
<key key0="x" key2="loc †"/>
+
<key key0="c" key1="loc accent_tilde"/>
+
<key key0="v"/>
+
<key key0="b"/>
+
<key key0="n" key1="loc accent_cedille" key2="&lt;" key3="."/>
+
<key key0="m" key2="&gt;" key3=","/>
+
<key key0="/" key3="\?"/>
+
<key width="1" key0="backspace" key1="delete"/>
+
</row>
+
</keyboard>