Compare commits
22 Commits
2c959fdc0c
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
380e11edb2
|
|||
|
a2153c4418
|
|||
|
abdcbe2ce9
|
|||
|
fa286dce16
|
|||
|
c4454daab6
|
|||
|
a03c9d8227
|
|||
|
9db5d91da6
|
|||
|
72716230ea
|
|||
|
2919e797ed
|
|||
|
86d669c2ab
|
|||
|
77ac5b70b8
|
|||
|
54839be395
|
|||
|
714e3e0683
|
|||
|
a8d7d1e666
|
|||
|
40bcc14304
|
|||
|
fa5bd0eefd
|
|||
|
6182ada581
|
|||
|
4acddcec09
|
|||
|
5c14817464
|
|||
|
38920bd3d7
|
|||
|
b89934d13f
|
|||
|
734dfcadfc
|
1
.gitignore
vendored
1
.gitignore
vendored
@ -11,3 +11,4 @@ config/neovim/store
|
||||
home/modules/ags/config/types
|
||||
home/modules/ags/config/tsconfig.json
|
||||
system/modules/agenix/secrets.nix
|
||||
config/neovim/nvim_bundle
|
||||
|
||||
@ -68,7 +68,7 @@ rec {
|
||||
# bintools = pkgs.bintools.bintools; # Unwrapped bintools
|
||||
# libc = pkgs.glibc;
|
||||
# };
|
||||
# gcc = pkgs.hiPrio (pkgs.wrapCCWith {
|
||||
# gcc = lib.hiPrio (pkgs.wrapCCWith {
|
||||
# cc = pkgs.gcc.cc; # Unwrapped gcc
|
||||
# libc = pkgs.glibc;
|
||||
# bintools = bintools;
|
||||
@ -84,7 +84,7 @@ rec {
|
||||
# bintools = pkgs.bintools.bintools; # Unwrapped bintools
|
||||
# libc = pkgs.glibc_multi;
|
||||
# };
|
||||
# gcc_multilib = pkgs.hiPrio (pkgs.wrapCCWith {
|
||||
# gcc_multilib = lib.hiPrio (pkgs.wrapCCWith {
|
||||
# cc = pkgs.gcc.cc; # Unwrapped gcc
|
||||
# libc = pkgs.glibc_multi;
|
||||
# bintools = bintools_multilib;
|
||||
|
||||
@ -210,6 +210,10 @@ Convert line endings to dos format
|
||||
unix2dos <file>
|
||||
$ file: eza -1
|
||||
|
||||
% tiddl
|
||||
Download stuff from tidal
|
||||
tiddl download --track-quality max --path ~/Downloads/Beet/Albums --videos none url "<url>"
|
||||
|
||||
; ===========================
|
||||
; SECRETS
|
||||
; ===========================
|
||||
|
||||
204
config/neovim/bundle.py
Normal file
204
config/neovim/bundle.py
Normal file
@ -0,0 +1,204 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import argparse
|
||||
import os
|
||||
import re
|
||||
import shutil
|
||||
import subprocess
|
||||
from typing import cast
|
||||
from urllib.request import urlretrieve
|
||||
|
||||
INIT_LUA: str = "/home/christoph/.config/nvim/init.lua"
|
||||
|
||||
|
||||
def patch_paths(text: str, mappings: dict[str, str]) -> str:
|
||||
"""Patches /nix/store paths in init.lua"""
|
||||
|
||||
patched = text
|
||||
|
||||
for old, new in mappings.items():
|
||||
print(f"Patching init.lua: {old} -> {new}")
|
||||
patched = patched.replace(old, new)
|
||||
|
||||
return patched
|
||||
|
||||
|
||||
def patch_various(text: str) -> str:
|
||||
"""Patches various incompatibilities with NixVim init.lua"""
|
||||
|
||||
# Install lazy
|
||||
print("Patching init.lua: Bootstrap lazy.nvim")
|
||||
patched = (
|
||||
"""-- Bootstrap lazy.nvim
|
||||
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
|
||||
if not (vim.uv or vim.loop).fs_stat(lazypath) then
|
||||
local lazyrepo = "https://github.com/folke/lazy.nvim.git"
|
||||
local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
|
||||
if vim.v.shell_error ~= 0 then
|
||||
vim.api.nvim_echo({
|
||||
{ "Failed to clone lazy.nvim:\\n", "ErrorMsg" },
|
||||
{ out, "WarningMsg" },
|
||||
{ "\\nPress any key to exit..." },
|
||||
}, true, {})
|
||||
vim.fn.getchar()
|
||||
os.exit(1)
|
||||
end
|
||||
end
|
||||
vim.opt.rtp:prepend(lazypath)
|
||||
|
||||
"""
|
||||
+ text
|
||||
)
|
||||
|
||||
# print("Patching init.lua: Disabling vim.loader")
|
||||
# patched = patched.replace("vim.loader.enable(true)", "vim.loader.enable(false)")
|
||||
|
||||
return patched
|
||||
|
||||
|
||||
def copy_plugins(text: str, path: str) -> dict[str, str]:
|
||||
"""Copies NeoVim plugins from the Nix Store"""
|
||||
|
||||
os.makedirs(path, exist_ok=True)
|
||||
|
||||
plugins_path: str = re.findall(r"\"(/nix/store/.*-lazy-plugins)\"", text)[0]
|
||||
print(f"Copying: {plugins_path} -> {path}/plugins")
|
||||
_ = shutil.copytree(plugins_path, f"{path}/plugins")
|
||||
|
||||
treesitter_path: str = re.findall(
|
||||
r"\"(/nix/store/.*-vimplugin-nvim-treesitter.*)\"", text
|
||||
)[0]
|
||||
print(f"Copying: {treesitter_path} -> {path}/treesitter")
|
||||
_ = shutil.copytree(treesitter_path, f"{path}/treesitter")
|
||||
|
||||
parsers_path: str = re.findall(r"\"(/nix/store/.*-treesitter-parsers)\"", text)[0]
|
||||
print(f"Copying: {parsers_path} -> {path}/parsers")
|
||||
_ = shutil.copytree(parsers_path, f"{path}/parsers")
|
||||
|
||||
return {
|
||||
plugins_path: "./plugins",
|
||||
treesitter_path: "./treesitter",
|
||||
parsers_path: "./parsers",
|
||||
}
|
||||
|
||||
|
||||
def write_file(text: str, path: str) -> None:
|
||||
"""Write text to a file"""
|
||||
|
||||
with open(path, "w") as file:
|
||||
_ = file.write(text)
|
||||
|
||||
|
||||
# TODO: Could add etc. nvim/lsp/formatter/linter binaries here
|
||||
# TODO: Needs "install recipe", as in most cases the download will be an archive
|
||||
DOWNLOADS: list[tuple[str, str]] = [
|
||||
# (
|
||||
# "https://github.com/neovim/neovim/releases/download/v0.11.6/nvim-linux-x86_64.tar.gz",
|
||||
# "nvim",
|
||||
# ),
|
||||
]
|
||||
|
||||
|
||||
def download_binaries(path: str, urls: list[tuple[str, str]]) -> None:
|
||||
"""Download required binaries"""
|
||||
|
||||
os.makedirs(f"{path}/bin", exist_ok=True)
|
||||
|
||||
def download(url: str, path: str) -> None:
|
||||
"""Download from URL"""
|
||||
|
||||
print(f"Downloading: {url}")
|
||||
_ = urlretrieve(url, path)
|
||||
|
||||
for url, name in urls:
|
||||
download(url, f"{path}/bin/{name}")
|
||||
|
||||
|
||||
def build_nvim(path: str) -> None:
|
||||
"""Builds a static nvim binary against musl"""
|
||||
|
||||
# TODO: Build etc. is working, but on the target system there are
|
||||
# lua-ffi errors from noice.nvim with the static binary.
|
||||
# This does not happen with nvim from system package repository.
|
||||
|
||||
def run(command: list[str]) -> None:
|
||||
"""Run a subprocess"""
|
||||
|
||||
print(f"Running: {' '.join(command)}")
|
||||
_ = subprocess.run(command)
|
||||
|
||||
os.makedirs(f"{path}/nvim-build", exist_ok=True)
|
||||
|
||||
with open(f"{path}/nvim-build/build-nvim.sh", "w") as file:
|
||||
_ = file.write(
|
||||
"\n".join(
|
||||
[
|
||||
"#!/bin/sh",
|
||||
"git clone https://github.com/neovim/neovim",
|
||||
"cd neovim",
|
||||
"git checkout stable",
|
||||
'make -j$(nproc) CMAKE_BUILD_TYPE=Release CMAKE_EXTRA_FLAGS="-DSTATIC_BUILD=1"',
|
||||
"make CMAKE_INSTALL_PREFIX=/workdir/install install",
|
||||
]
|
||||
)
|
||||
)
|
||||
|
||||
run(
|
||||
[
|
||||
"docker",
|
||||
"run",
|
||||
"--rm",
|
||||
"-it",
|
||||
"-v",
|
||||
f"{os.path.abspath(path)}/nvim-build:/workdir",
|
||||
"-w",
|
||||
"/workdir",
|
||||
"alpine:3.23.3",
|
||||
"/bin/sh",
|
||||
"-c",
|
||||
"apk add build-base cmake coreutils curl gettext-tiny-dev git && chmod +x ./build-nvim.sh && ./build-nvim.sh",
|
||||
]
|
||||
)
|
||||
|
||||
_ = shutil.copytree(f"{path}/nvim-build/install/bin", f"{path}/bin")
|
||||
_ = shutil.copytree(f"{path}/nvim-build/install/lib", f"{path}/lib")
|
||||
_ = shutil.copytree(f"{path}/nvim-build/install/share", f"{path}/share")
|
||||
|
||||
_ = shutil.rmtree(f"{path}/nvim-build")
|
||||
|
||||
|
||||
def bundle() -> None:
|
||||
"""Creates a standalone NeoVim bundle from the NixVim configuration"""
|
||||
|
||||
parser = argparse.ArgumentParser()
|
||||
_ = parser.add_argument(
|
||||
"--config",
|
||||
type=str,
|
||||
default=INIT_LUA,
|
||||
help="init.lua or other config file",
|
||||
)
|
||||
_ = parser.add_argument(
|
||||
"--out",
|
||||
type=str,
|
||||
default="./nvim_bundle",
|
||||
help="destination folder",
|
||||
)
|
||||
|
||||
args = parser.parse_args()
|
||||
args.config = cast(str, args.config)
|
||||
args.out = cast(str, args.out)
|
||||
|
||||
with open(args.config, "r") as file:
|
||||
patched_init_lua: str = file.read()
|
||||
|
||||
path_mappings = copy_plugins(patched_init_lua, args.out)
|
||||
patched_init_lua = patch_paths(patched_init_lua, path_mappings)
|
||||
patched_init_lua = patch_various(patched_init_lua)
|
||||
write_file(patched_init_lua, f"{args.out}/init.lua")
|
||||
|
||||
# build_nvim(args.out)
|
||||
# download_binaries(args.out, DOWNLOADS)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
bundle()
|
||||
6
config/neovim/info.md
Normal file
6
config/neovim/info.md
Normal file
@ -0,0 +1,6 @@
|
||||
# NeoVim Portable
|
||||
|
||||
## Requirements
|
||||
|
||||
- Base packages: `sudo apt install neovim git direnv ripgrep curl fzf`
|
||||
- Link or copy the generated `nvim_bundle` to `~/.config/nvim` on the target machine
|
||||
@ -9,4 +9,5 @@
|
||||
msty = pkgs.callPackage ./msty {};
|
||||
unityhub = pkgs.callPackage ./unityhub {};
|
||||
tidal-dl-ng = pkgs.callPackage ./tidal-dl-ng {};
|
||||
tiddl = pkgs.callPackage ./tiddl {};
|
||||
}
|
||||
|
||||
@ -50,8 +50,8 @@
|
||||
# });
|
||||
|
||||
tidalDlNg = pythonPkgs.buildPythonApplication rec {
|
||||
pname = "tidal_dl_ng";
|
||||
version = "0.33.0";
|
||||
pname = "tidal_dl_ng_for_dj";
|
||||
version = "0.33.2";
|
||||
format = "pyproject";
|
||||
|
||||
# The official repo was deleted
|
||||
@ -62,24 +62,20 @@
|
||||
# sha256 = "sha256-PUT0anx1yivgXwW21jah7Rv1/BabOT+KPoW446NFNyg=";
|
||||
# };
|
||||
|
||||
# Alternative repo
|
||||
# src = pkgs.fetchFromGitHub {
|
||||
# owner = "rodvicj";
|
||||
# repo = "tidal_dl_ng-Project";
|
||||
# rev = "4573142c76ef045ebf8e80c34657dd2bec96f17d";
|
||||
# sha256 = "sha256-3sO2qj8V4KXOWK7vQsFAOYeTZo2rsc/M36SwRnC0oVg=";
|
||||
# Package now also deleted from PyPi
|
||||
# src = pythonPkgs.fetchPypi {
|
||||
# inherit pname version;
|
||||
# sha256 = "sha256-rOMyxnT7uVnMbn678DFtqAu4+Uc5VFGcqGI0jxplnpc=";
|
||||
# };
|
||||
|
||||
# Package is still on PyPi
|
||||
# TODO: Borked
|
||||
# "For DJ"-Fork
|
||||
src = pythonPkgs.fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-rOMyxnT7uVnMbn678DFtqAu4+Uc5VFGcqGI0jxplnpc=";
|
||||
sha256 = "sha256-605cgBqZV6L7sxWtEa4Ki+9hBqX4m3Rk+X5oY5bv/FQ=";
|
||||
};
|
||||
|
||||
doCheck = false;
|
||||
dontCheckRuntimeDeps = true;
|
||||
catchConflicts = false;
|
||||
strictDeps = false;
|
||||
|
||||
nativeBuildInputs = with pythonPkgs; [poetry-core setuptools];
|
||||
|
||||
@ -132,7 +128,7 @@
|
||||
|
||||
tidal-dl-ng-gui-desktopfile = pkgs.stdenv.mkDerivation {
|
||||
pname = "tdng";
|
||||
version = "0.31.3";
|
||||
version = "0.33.2";
|
||||
dontUnpack = true;
|
||||
|
||||
nativeBuildInputs = [pkgs.makeWrapper];
|
||||
|
||||
60
derivations/tiddl/default.nix
Normal file
60
derivations/tiddl/default.nix
Normal file
@ -0,0 +1,60 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
pkgs,
|
||||
}: let
|
||||
pythonPkgs = pkgs.python314Packages.overrideScope (self: super: {
|
||||
typer = super.typer.overridePythonAttrs (old: {
|
||||
version = "0.20.1";
|
||||
src = pkgs.fetchPypi {
|
||||
pname = "typer";
|
||||
version = "0.20.0";
|
||||
sha256 = "sha256-Gq9klAMXk+SHb7C6z6apErVRz0PB5jyADfixqGZyDDc=";
|
||||
};
|
||||
});
|
||||
|
||||
aiofiles = super.aiofiles.overridePythonAttrs (old: {
|
||||
version = "25.1.0";
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "Tinche";
|
||||
repo = "aiofiles";
|
||||
tag = "v25.1.0";
|
||||
hash = "sha256-NBmzoUb2una3+eWqR1HraVPibaRb9I51aYwskrjxskQ=";
|
||||
};
|
||||
# Build system changed in this version
|
||||
build-system = with pythonPkgs; [
|
||||
hatchling
|
||||
hatch-vcs
|
||||
];
|
||||
});
|
||||
});
|
||||
in
|
||||
pythonPkgs.buildPythonApplication rec {
|
||||
pname = "tiddl";
|
||||
version = "3.2.0";
|
||||
format = "pyproject";
|
||||
|
||||
src = pythonPkgs.fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-uLkGyIScYPqFgQdPAOYJDJG0jp+nDAwIl2kFkaJZFco=";
|
||||
};
|
||||
|
||||
dontCheckRuntimeDeps = true;
|
||||
|
||||
build-system = with pythonPkgs; [
|
||||
poetry-core
|
||||
setuptools
|
||||
];
|
||||
|
||||
propagatedBuildInputs = with pythonPkgs; [
|
||||
# Nixpkgs
|
||||
aiofiles
|
||||
aiohttp
|
||||
m3u8
|
||||
mutagen
|
||||
pydantic
|
||||
requests
|
||||
requests-cache
|
||||
typer
|
||||
];
|
||||
}
|
||||
231
flake.lock
generated
231
flake.lock
generated
@ -20,11 +20,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1767024902,
|
||||
"narHash": "sha256-sMdk6QkMDhIOnvULXKUM8WW8iyi551SWw2i6KQHbrrU=",
|
||||
"lastModified": 1770895474,
|
||||
"narHash": "sha256-JBcrq1Y0uw87VZdYsByVbv+GBuT6ECaCNb9txLX9UuU=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "aquamarine",
|
||||
"rev": "b8a0c5ba5a9fbd2c660be7dd98bdde0ff3798556",
|
||||
"rev": "a494d50d32b5567956b558437ceaa58a380712f7",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -44,11 +44,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1768659593,
|
||||
"narHash": "sha256-Cjm5dbWWds9fLvOXHG5Co8Lfgv4/o3h7KhtfhLM28cU=",
|
||||
"lastModified": 1771120934,
|
||||
"narHash": "sha256-CnE8v42+SU7uLjTit453knxuwsMxZixEPU4s/6JANjs=",
|
||||
"owner": "caelestia-dots",
|
||||
"repo": "shell",
|
||||
"rev": "fd1165f1530b55c0751f8af7475d0c588b11488c",
|
||||
"rev": "3a7309294cd4575e60aeb5e153d346313b16f7d9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -68,11 +68,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1768010798,
|
||||
"narHash": "sha256-CmEy/t3CCDnUvn594sXtv0vRxt1JQaqj0nGdtQFU3mA=",
|
||||
"lastModified": 1771075454,
|
||||
"narHash": "sha256-5GlUpibCTqcXq/kCwkLHQGfjuBk2r+ZlWY0MjZo0xtE=",
|
||||
"owner": "caelestia-dots",
|
||||
"repo": "cli",
|
||||
"rev": "70a8624eacfc1b90fe248aef722ae708e775a927",
|
||||
"rev": "d890f7c3af4e7a900338bdf6400c2cf76de89a19",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -104,11 +104,11 @@
|
||||
"quickshell": "quickshell"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1768670844,
|
||||
"narHash": "sha256-6jntj2RVC3ceEFd1dWKUlLkV/UUkCfcv6KR+yBt7DgA=",
|
||||
"lastModified": 1771307672,
|
||||
"narHash": "sha256-mCSP9umAD05fp4y49rCvaNgzNol1eiQ39pNmyf5jikw=",
|
||||
"owner": "AvengeMedia",
|
||||
"repo": "DankMaterialShell",
|
||||
"rev": "27f0df07af950c378054264eda384978d95c7f80",
|
||||
"rev": "ef19568dd7260c07ba7ba1ca793117da28251407",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -117,16 +117,36 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"danksearch": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1771177088,
|
||||
"narHash": "sha256-n6e4e0iHNwtdGOlkJlDR9lbFhYalLMuqeQ3jDfp1CaA=",
|
||||
"owner": "AvengeMedia",
|
||||
"repo": "danksearch",
|
||||
"rev": "3b3b79514acf349c166ae53db2225470a28be9e6",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "AvengeMedia",
|
||||
"repo": "danksearch",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"devshell": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1764011051,
|
||||
"narHash": "sha256-M7SZyPZiqZUR/EiiBJnmyUbOi5oE/03tCeFrTiUZchI=",
|
||||
"lastModified": 1768818222,
|
||||
"narHash": "sha256-460jc0+CZfyaO8+w8JNtlClB2n4ui1RbHfPTLkpwhU8=",
|
||||
"owner": "numtide",
|
||||
"repo": "devshell",
|
||||
"rev": "17ed8d9744ebe70424659b0ef74ad6d41fc87071",
|
||||
"rev": "255a2b1725a20d060f566e4755dbf571bbbb5f76",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -142,11 +162,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1746728054,
|
||||
"narHash": "sha256-eDoSOhxGEm2PykZFa/x9QG5eTH0MJdiJ9aR00VAofXE=",
|
||||
"lastModified": 1768920986,
|
||||
"narHash": "sha256-CNzzBsRhq7gg4BMBuTDObiWDH/rFYHEuDRVOwCcwXw4=",
|
||||
"owner": "nix-community",
|
||||
"repo": "disko",
|
||||
"rev": "ff442f5d1425feb86344c028298548024f21256d",
|
||||
"rev": "de5708739256238fb912c62f03988815db89ec9a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -292,11 +312,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1765835352,
|
||||
"narHash": "sha256-XswHlK/Qtjasvhd1nOa1e8MgZ8GS//jBoTqWtrS1Giw=",
|
||||
"lastModified": 1769996383,
|
||||
"narHash": "sha256-AnYjnFWgS49RlqX7LrC4uA+sCCDBj0Ry/WOJ5XWAsa0=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "a34fae9c08a15ad73f295041fec82323541400a9",
|
||||
"rev": "57928607ea566b5db3ad13af0e57e921e6b12381",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -390,11 +410,11 @@
|
||||
},
|
||||
"hardware": {
|
||||
"locked": {
|
||||
"lastModified": 1768584846,
|
||||
"narHash": "sha256-IRPmIOV2tPwxbhP/I9M5AmwhTC0lMPtoPStC+8T6xl0=",
|
||||
"lastModified": 1771257191,
|
||||
"narHash": "sha256-H1l+zHq+ZinWH7F1IidpJ2farmbfHXjaxAm1RKWE1KI=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixos-hardware",
|
||||
"rev": "cce68f4a54fa4e3d633358364477f5cc1d782440",
|
||||
"rev": "66e1a090ded57a0f88e2b381a7d4daf4a5722c3f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -410,11 +430,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1768598210,
|
||||
"narHash": "sha256-kkgA32s/f4jaa4UG+2f8C225Qvclxnqs76mf8zvTVPg=",
|
||||
"lastModified": 1771269455,
|
||||
"narHash": "sha256-BZ31eN5F99YH6vkc4AhzKGE+tJgJ52kl8f01K7wCs8w=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "c47b2cc64a629f8e075de52e4742de688f930dc6",
|
||||
"rev": "5f1d42a97b19803041434f66681d5c44c9ae62e3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -431,11 +451,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1747978958,
|
||||
"narHash": "sha256-pQQnbxWpY3IiZqgelXHIe/OAE/Yv4NSQq7fch7M6nXQ=",
|
||||
"lastModified": 1768598210,
|
||||
"narHash": "sha256-kkgA32s/f4jaa4UG+2f8C225Qvclxnqs76mf8zvTVPg=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "7419250703fd5eb50e99bdfb07a86671939103ea",
|
||||
"rev": "c47b2cc64a629f8e075de52e4742de688f930dc6",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -454,11 +474,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1768644786,
|
||||
"narHash": "sha256-0nfqa8f7/at2hQTq5rbz69S+nmp6RzAtX0kf8OiJBrU=",
|
||||
"lastModified": 1769328881,
|
||||
"narHash": "sha256-y61NGkedVL4krfEkPCpngsYxGujCYcx+ryBGVrgeszE=",
|
||||
"owner": "VirtCode",
|
||||
"repo": "hypr-dynamic-cursors",
|
||||
"rev": "b92d2db9c9f045e50e4c0e97e96b88ea86f43cd3",
|
||||
"rev": "bf761c322dbd675399e6e33628d9fb4545c59ad3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -512,11 +532,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1766946335,
|
||||
"narHash": "sha256-MRD+Jr2bY11MzNDfenENhiK6pvN+nHygxdHoHbZ1HtE=",
|
||||
"lastModified": 1770511807,
|
||||
"narHash": "sha256-suKmSbSk34uPOJDTg/GbPrKEJutzK08vj0VoTvAFBCA=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprgraphics",
|
||||
"rev": "4af02a3925b454deb1c36603843da528b67ded6c",
|
||||
"rev": "7c75487edd43a71b61adb01cae8326d277aab683",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -544,11 +564,11 @@
|
||||
"xdph": "xdph"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1768660279,
|
||||
"narHash": "sha256-ak7mm3HiluwyMXHadoEzhrzzMGz2T1UkOVL0N0sbYUc=",
|
||||
"lastModified": 1771249510,
|
||||
"narHash": "sha256-Iql2BwsfrHiyDmZfc/9Cp6oa2569/WrJqhqWWg3EY50=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "Hyprland",
|
||||
"rev": "c99eb23869da2b80e3613a886aa1b99851367a3c",
|
||||
"rev": "661314e13487784c94b3c9fd69b469764eb6ef7b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -618,11 +638,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1767723101,
|
||||
"narHash": "sha256-jObY8O7OI+91hoE137APsDxm0235/Yx+HhFIip187zM=",
|
||||
"lastModified": 1770899531,
|
||||
"narHash": "sha256-UBrWjh0DR8db60aLNkTnZTJ9F4kWK0Y7rUDNJC88W7A=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprland-plugins",
|
||||
"rev": "fef398ed5e4faf59bc43b915e46a75cfe8b16697",
|
||||
"rev": "e03c34ccd51280a44ea6d1f5c040cd81ecca25ed",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -672,11 +692,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1764612430,
|
||||
"narHash": "sha256-54ltTSbI6W+qYGMchAgCR6QnC1kOdKXN6X6pJhOWxFg=",
|
||||
"lastModified": 1767983607,
|
||||
"narHash": "sha256-8C2co8NYfR4oMOUEsPROOJ9JHrv9/ktbJJ6X1WsTbXc=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprlang",
|
||||
"rev": "0d00dc118981531aa731150b6ea551ef037acddd",
|
||||
"rev": "d4037379e6057246b408bbcf796cf3e9838af5b2",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -770,11 +790,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1766253372,
|
||||
"narHash": "sha256-1+p4Kw8HdtMoFSmJtfdwjxM4bPxDK9yg27SlvUMpzWA=",
|
||||
"lastModified": 1770139857,
|
||||
"narHash": "sha256-bCqxcXjavgz5KBJ/1CBLqnagMMf9JvU1m9HmYVASKoc=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprutils",
|
||||
"rev": "51a4f93ce8572e7b12b7284eb9e6e8ebf16b4be9",
|
||||
"rev": "9038eec033843c289b06b83557a381a2648d8fa5",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -795,11 +815,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1763640274,
|
||||
"narHash": "sha256-Uan1Nl9i4TF/kyFoHnTq1bd/rsWh4GAK/9/jDqLbY5A=",
|
||||
"lastModified": 1770501770,
|
||||
"narHash": "sha256-NWRM6+YxTRv+bT9yvlhhJ2iLae1B1pNH3mAL5wi2rlQ=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprwayland-scanner",
|
||||
"rev": "f6cf414ca0e16a4d30198fd670ec86df3c89f671",
|
||||
"rev": "0bd8b6cde9ec27d48aad9e5b4deefb3746909d40",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -824,11 +844,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1767473322,
|
||||
"narHash": "sha256-RGOeG+wQHeJ6BKcsSB8r0ZU77g9mDvoQzoTKj2dFHwA=",
|
||||
"lastModified": 1770203293,
|
||||
"narHash": "sha256-PR/KER+yiHabFC/h1Wjb+9fR2Uy0lWM3Qld7jPVaWkk=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprwire",
|
||||
"rev": "d5e7d6b49fe780353c1cf9a1cf39fa8970bd9d11",
|
||||
"rev": "37bc90eed02b0c8b5a77a0b00867baf3005cfb98",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -843,11 +863,11 @@
|
||||
"nixpkgs": "nixpkgs_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1767822991,
|
||||
"narHash": "sha256-iyrn9AcPZCoyxX4OT8eMkBsjG7SRUQXXS/V1JzxS7rA=",
|
||||
"lastModified": 1769548169,
|
||||
"narHash": "sha256-03+JxvzmfwRu+5JafM0DLbxgHttOQZkUtDWBmeUkN8Y=",
|
||||
"owner": "nix-community",
|
||||
"repo": "impermanence",
|
||||
"rev": "82e5bc4508cab9e8d5a136626276eb5bbce5e9c5",
|
||||
"rev": "7b1d382faf603b6d264f58627330f9faa5cba149",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -913,11 +933,11 @@
|
||||
"xwayland-satellite-unstable": "xwayland-satellite-unstable"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1768669983,
|
||||
"narHash": "sha256-OGl180QZ1QIirJ7Cy9Tqrgn/XEglaKGBeb5pys/sS7Y=",
|
||||
"lastModified": 1771308899,
|
||||
"narHash": "sha256-kb/4oSHB261GOLhVGgrzTOqo/ImeCi/WS25q2ujtHGc=",
|
||||
"owner": "sodiboo",
|
||||
"repo": "niri-flake",
|
||||
"rev": "b90da048a6ae94b49ff489bacac4a49206670c18",
|
||||
"rev": "f3e98ba073bd7e2717a07d622f9b737c461a97b9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -946,11 +966,11 @@
|
||||
"niri-unstable": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1768653140,
|
||||
"narHash": "sha256-8/u6/KHghsTHb3zmw8hYbwRQIp7UgMyQyqn4zVFN1S0=",
|
||||
"lastModified": 1771305475,
|
||||
"narHash": "sha256-lqweVTwHhYc+9T33cysp38gVwxaibGJHriOPZXWyhCY=",
|
||||
"owner": "YaLTeR",
|
||||
"repo": "niri",
|
||||
"rev": "3ccb06f5644c4bcdf74ad2e4d388a13ac65207af",
|
||||
"rev": "a2a52911757cb3b497db9407592f9b4c439571ea",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -966,11 +986,11 @@
|
||||
"nixpkgs": "nixpkgs_3"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1768475717,
|
||||
"narHash": "sha256-185VOlWF4K9gzwr7M56ArjqDt6beN/5TxCYLEyVPOcs=",
|
||||
"lastModified": 1771150922,
|
||||
"narHash": "sha256-+oQJun4CFDlOQRocbZpqQDj7agoy56/4ZjT1oUR7NOs=",
|
||||
"owner": "thiagokokada",
|
||||
"repo": "nix-alien",
|
||||
"rev": "a579610c67dc946f39c2a64656699eb29eb2ffb5",
|
||||
"rev": "96045e886ba0dd45b27590e7c0c6e77bbb54033d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -1003,11 +1023,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1765267181,
|
||||
"narHash": "sha256-d3NBA9zEtBu2JFMnTBqWj7Tmi7R5OikoU2ycrdhQEws=",
|
||||
"lastModified": 1771130777,
|
||||
"narHash": "sha256-UIKOwG0D9XVIJfNWg6+gENAvQP+7LO46eO0Jpe+ItJ0=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nix-index-database",
|
||||
"rev": "82befcf7dc77c909b0f2a09f5da910ec95c5b78f",
|
||||
"rev": "efec7aaad8d43f8e5194df46a007456093c40f88",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -1034,11 +1054,11 @@
|
||||
},
|
||||
"nixpkgs-stable": {
|
||||
"locked": {
|
||||
"lastModified": 1768484090,
|
||||
"narHash": "sha256-HBIfbB9MF9oqQTxs/W5440mzVaYDBWU9tuX95aZ8h64=",
|
||||
"lastModified": 1771208521,
|
||||
"narHash": "sha256-X01Q3DgSpjeBpapoGA4rzKOn25qdKxbPnxHeMLNoHTU=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "d4fa45dc2d4d32c10cb7c6b530a6b4b7d2429442",
|
||||
"rev": "fa56d7d6de78f5a7f997b0ea2bc6efd5868ad9e8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -1066,11 +1086,11 @@
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1748026106,
|
||||
"narHash": "sha256-6m1Y3/4pVw1RWTsrkAK2VMYSzG4MMIj7sqUy7o8th1o=",
|
||||
"lastModified": 1768564909,
|
||||
"narHash": "sha256-Kell/SpJYVkHWMvnhqJz/8DqQg2b6PguxVWOuadbHCc=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "063f43f2dbdef86376cc29ad646c45c46e93234c",
|
||||
"rev": "e4bae1bd10c9c57b2cf517953ab70060a828ee6f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -1082,11 +1102,11 @@
|
||||
},
|
||||
"nixpkgs_3": {
|
||||
"locked": {
|
||||
"lastModified": 1768305791,
|
||||
"narHash": "sha256-AIdl6WAn9aymeaH/NvBj0H9qM+XuAuYbGMZaP0zcXAQ=",
|
||||
"lastModified": 1771008912,
|
||||
"narHash": "sha256-gf2AmWVTs8lEq7z/3ZAsgnZDhWIckkb+ZnAo5RzSxJg=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "1412caf7bf9e660f2f962917c14b1ea1c3bc695e",
|
||||
"rev": "a82ccc39b39b621151d6732718e3e250109076fa",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -1098,11 +1118,11 @@
|
||||
},
|
||||
"nixpkgs_4": {
|
||||
"locked": {
|
||||
"lastModified": 1768564909,
|
||||
"narHash": "sha256-Kell/SpJYVkHWMvnhqJz/8DqQg2b6PguxVWOuadbHCc=",
|
||||
"lastModified": 1771008912,
|
||||
"narHash": "sha256-gf2AmWVTs8lEq7z/3ZAsgnZDhWIckkb+ZnAo5RzSxJg=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "e4bae1bd10c9c57b2cf517953ab70060a828ee6f",
|
||||
"rev": "a82ccc39b39b621151d6732718e3e250109076fa",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -1153,11 +1173,11 @@
|
||||
"systems": "systems_3"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1768486009,
|
||||
"narHash": "sha256-I7ymDe6UQooHy9I9wrafKCCDnRbox/EMWAgJgpm7fGs=",
|
||||
"lastModified": 1771135771,
|
||||
"narHash": "sha256-wyvBIhDuyCRyjB3yPg77qoyxrlgQtBR1rVW3c9knV3E=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixvim",
|
||||
"rev": "03a638205b5cb04ba9c2ed6c604e137b15f07fa1",
|
||||
"rev": "ed0424f0b08d303a7348f52f7850ad1b2704f9ba",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -1173,11 +1193,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1768675584,
|
||||
"narHash": "sha256-YcQRhf1AQv0jHey5DMek5UQvkqSs+Q/yktXEm8ymaRA=",
|
||||
"lastModified": 1771320561,
|
||||
"narHash": "sha256-sM+gR+fo9HVtV27gYa4aBtT06wfg1tcyYJ8pjmQ0rRQ=",
|
||||
"owner": "noctalia-dev",
|
||||
"repo": "noctalia-shell",
|
||||
"rev": "1d792b01b4cf2160000f7ef6e9388843cf5106d3",
|
||||
"rev": "7c210ef00e289558f6b5d01926760c3b46cd979e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -1217,11 +1237,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1768671781,
|
||||
"narHash": "sha256-kW4mzy7wzuW+od/o3Gfg5ONO7nb7U7uUxvEkAyFd9cY=",
|
||||
"lastModified": 1771321196,
|
||||
"narHash": "sha256-I/1/nZOIFByTYZONatUpYdh/Abh2FjlQwtZ7u4r70Nw=",
|
||||
"owner": "nix-community",
|
||||
"repo": "NUR",
|
||||
"rev": "1e87169b18457a22e6ef372789e48cd86b81e2ba",
|
||||
"rev": "250a13346efcfff65f490136e9705233b69d3401",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -1240,11 +1260,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1767281941,
|
||||
"narHash": "sha256-6MkqajPICgugsuZ92OMoQcgSHnD6sJHwk8AxvMcIgTE=",
|
||||
"lastModified": 1770726378,
|
||||
"narHash": "sha256-kck+vIbGOaM/dHea7aTBxdFYpeUl/jHOy5W3eyRvVx8=",
|
||||
"owner": "cachix",
|
||||
"repo": "git-hooks.nix",
|
||||
"rev": "f0927703b7b1c8d97511c4116eb9b4ec6645a0fa",
|
||||
"rev": "5eaaedde414f6eb1aea8b8525c466dc37bba95ae",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -1308,11 +1328,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1768549203,
|
||||
"narHash": "sha256-DxN7v8g8DO8gGJmgBJMo3fsSR3HEs+DFCXeKeHq61zA=",
|
||||
"lastModified": 1770693276,
|
||||
"narHash": "sha256-ngXnN5YXu+f45+QGYNN/VEBMQmcBCYGRCqwaK8cxY1s=",
|
||||
"owner": "quickshell-mirror",
|
||||
"repo": "quickshell",
|
||||
"rev": "d03c59768c680f052dff6e7a7918bbf990b0f743",
|
||||
"rev": "dacfa9de829ac7cb173825f593236bf2c21f637e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -1325,6 +1345,7 @@
|
||||
"inputs": {
|
||||
"caelestia": "caelestia",
|
||||
"dank-material-shell": "dank-material-shell",
|
||||
"danksearch": "danksearch",
|
||||
"devshell": "devshell",
|
||||
"disko": "disko",
|
||||
"hardware": "hardware",
|
||||
@ -1395,11 +1416,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1768481291,
|
||||
"narHash": "sha256-NjKtkJraCZEnLHAJxLTI+BfdU//9coAz9p5TqveZwPU=",
|
||||
"lastModified": 1771166946,
|
||||
"narHash": "sha256-UFc4lfGBr+wJmwgDGJDn1cVD6DTr0/8TdronNUiyXlU=",
|
||||
"owner": "Mic92",
|
||||
"repo": "sops-nix",
|
||||
"rev": "e085e303dfcce21adcb5fec535d65aacb066f101",
|
||||
"rev": "2d0cf89b4404529778bc82de7e42b5754e0fe4fa",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -1476,11 +1497,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1767427579,
|
||||
"narHash": "sha256-q9aFfPohbMS6ehkQHReMeIjtld0wGiUsxlHoPRRvsp4=",
|
||||
"lastModified": 1771103358,
|
||||
"narHash": "sha256-EFU39ivrUUGBzuiwmc94Hxp5uD9hC8Qf80Esh+w8xpE=",
|
||||
"owner": "adriankarlen",
|
||||
"repo": "textfox",
|
||||
"rev": "29c31979e5583d9367247f0af8675f88482ff481",
|
||||
"rev": "e86c0a3a77cbdd8dbbca51b0c190733c8e6788e1",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -1568,11 +1589,11 @@
|
||||
"xwayland-satellite-unstable": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1768106915,
|
||||
"narHash": "sha256-HlLo9zH4ULRXlmlIK948cHmdVhxyHgTHxGaoCRlW4k8=",
|
||||
"lastModified": 1771195969,
|
||||
"narHash": "sha256-BUE41HjLIGPjq3U8VXPjf8asH8GaMI7FYdgrIHKFMXA=",
|
||||
"owner": "Supreeeme",
|
||||
"repo": "xwayland-satellite",
|
||||
"rev": "72245e108f3b03c3c4474d2de9de2d1830849603",
|
||||
"rev": "536bd32efc935bf876d6de385ec18a1b715c9358",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
||||
@ -80,6 +80,8 @@
|
||||
dank-material-shell.url = "github:AvengeMedia/DankMaterialShell";
|
||||
dank-material-shell.inputs.nixpkgs.follows = "nixpkgs";
|
||||
# dank-material-shell.inputs.dgop.follows = "dgop";
|
||||
danksearch.url = "github:AvengeMedia/danksearch";
|
||||
danksearch.inputs.nixpkgs.follows = "nixpkgs";
|
||||
|
||||
# Hyprland (use flake so plugins are not built from source)
|
||||
hyprland.url = "github:hyprwm/Hyprland";
|
||||
|
||||
@ -478,6 +478,7 @@ in
|
||||
systemctl-tui
|
||||
restic # Backups
|
||||
gnumake
|
||||
just
|
||||
|
||||
# Hardware/Software info
|
||||
pciutils # lspci
|
||||
@ -499,7 +500,7 @@ in
|
||||
imagemagick # Convert image (magic)
|
||||
mp3val # Validate mp3 files
|
||||
flac # Validate flac files
|
||||
spotdl
|
||||
# spotdl
|
||||
|
||||
# Document utils
|
||||
poppler-utils # pdfunite
|
||||
|
||||
@ -133,6 +133,7 @@
|
||||
godot_4
|
||||
(obs-studio.override {cudaSupport = true;})
|
||||
kdePackages.kdenlive
|
||||
# davinci-resolve
|
||||
krita
|
||||
makemkv
|
||||
lrcget
|
||||
@ -141,7 +142,8 @@
|
||||
jellyfin-desktop
|
||||
jellyfin-mpv-shim
|
||||
# tidal-hifi
|
||||
tidal-dl-ng # TODO: Borked
|
||||
# tidal-dl-ng # TODO: Borked
|
||||
tiddl
|
||||
picard
|
||||
handbrake
|
||||
teamspeak6-client
|
||||
|
||||
@ -37,6 +37,7 @@
|
||||
inputs.caelestia.homeManagerModules.default
|
||||
inputs.dank-material-shell.homeModules.dank-material-shell
|
||||
inputs.dank-material-shell.homeModules.niri
|
||||
inputs.danksearch.homeModules.default
|
||||
|
||||
# NOTE: Do NOT use this, use the system module (the HM module has to rely on fuse)
|
||||
# inputs.impermanence.homeManagerModules.impermanence
|
||||
|
||||
@ -69,6 +69,7 @@ in [
|
||||
(mkBm "Rust" "https://doc.rust-lang.org/stable/book/ch03-00-common-programming-concepts.html")
|
||||
(mkBm "RustOS" "https://os.phil-opp.com/")
|
||||
(mkBm "Interpreters" "https://craftinginterpreters.com/contents.html")
|
||||
(mkBm "Godbolt" "https://godbolt.org")
|
||||
];
|
||||
}
|
||||
{
|
||||
|
||||
@ -13,7 +13,7 @@ in {
|
||||
config = lib.mkIf firefox.enable {
|
||||
textfox = {
|
||||
enable = firefox.textfox;
|
||||
useLegacyExtensions = false;
|
||||
# useLegacyExtensions = false;
|
||||
profiles = ["default"];
|
||||
|
||||
config = {
|
||||
@ -54,7 +54,9 @@ in {
|
||||
};
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [vdhcoapp];
|
||||
home.packages = with pkgs; [
|
||||
# vdhcoapp # No longer required since VDH >= 10
|
||||
];
|
||||
|
||||
home.sessionVariables = lib.mkMerge [
|
||||
{
|
||||
|
||||
@ -50,6 +50,7 @@ in {
|
||||
typescript
|
||||
vscode-langservers-extracted # includes nodejs
|
||||
autotools-language-server
|
||||
just-lsp
|
||||
|
||||
# Linters
|
||||
checkstyle # java
|
||||
@ -74,6 +75,8 @@ in {
|
||||
rustfmt
|
||||
stylua
|
||||
typstyle
|
||||
mbake
|
||||
just-formatter
|
||||
])
|
||||
|
||||
[
|
||||
@ -351,7 +354,7 @@ in {
|
||||
clangd-extensions = rec {
|
||||
name = "clangd_extensions";
|
||||
pkg = pkgs.vimPlugins.clangd_extensions-nvim;
|
||||
lazy = true;
|
||||
lazy = false;
|
||||
config = mkDefaultConfig name;
|
||||
opts = {
|
||||
inlay_hints = {
|
||||
@ -513,8 +516,10 @@ in {
|
||||
html = ["prettierd" "prettier"];
|
||||
java = ["google-java-format"];
|
||||
javascript = ["prettierd" "prettier"];
|
||||
just = ["just"];
|
||||
latex = ["tex-fmt"];
|
||||
lua = ["stylua"];
|
||||
make = ["bake"];
|
||||
markdown = ["prettierd" "prettier"];
|
||||
nix = ["alejandra"];
|
||||
python = ["black"];
|
||||
@ -878,6 +883,7 @@ in {
|
||||
{name = "cmake";}
|
||||
{name = "cssls";}
|
||||
{name = "html";} # vscode-langservers-extracted
|
||||
{name = "just-lsp";} # TODO: Doesn't autostart?
|
||||
{name = "lua_ls";}
|
||||
{
|
||||
name = "ltex";
|
||||
@ -1987,6 +1993,39 @@ in {
|
||||
'';
|
||||
};
|
||||
|
||||
visual-whitespace = rec {
|
||||
name = "visual-whitespace";
|
||||
pkg = pkgs.vimPlugins.visual-whitespace-nvim;
|
||||
event = ["ModeChanged *:[vV\22]"];
|
||||
config = mkDefaultConfig name;
|
||||
opts = {
|
||||
enabled = true;
|
||||
highlight = {
|
||||
link = "Visual";
|
||||
default = true;
|
||||
};
|
||||
match_types = {
|
||||
space = true;
|
||||
tab = true;
|
||||
nbsp = true;
|
||||
lead = false;
|
||||
trail = false;
|
||||
};
|
||||
list_chars = {
|
||||
space = "·";
|
||||
tab = "↦";
|
||||
nbsp = "␣";
|
||||
lead = "‹";
|
||||
trail = "›";
|
||||
};
|
||||
fileformat_chars = {
|
||||
unix = "↲";
|
||||
mac = "←";
|
||||
dos = "↙";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# wakatime = {
|
||||
# name = "wakatime";
|
||||
# pkg = pkgs.vimPlugins.vim-wakatime;
|
||||
@ -2168,6 +2207,7 @@ in {
|
||||
typst-preview # Typst support
|
||||
ufo # Code folding
|
||||
vimtex # LaTeX support
|
||||
visual-whitespace
|
||||
# wakatime # Time tracking
|
||||
web-devicons # Icons for many plugins
|
||||
which-key # Live keybinding help
|
||||
|
||||
@ -29,10 +29,78 @@
|
||||
# This is generated from the DMS settings dialog.
|
||||
# Run: nix eval --impure --expr 'builtins.fromJSON (builtins.readFile ~/.config/DankMaterialShell/settings.json)'
|
||||
settings = {
|
||||
# Bar
|
||||
acLockTimeout = 0;
|
||||
acMonitorTimeout = 0;
|
||||
acProfileName = "";
|
||||
acSuspendBehavior = 0;
|
||||
acSuspendTimeout = 0;
|
||||
activeDisplayProfile = {};
|
||||
animationSpeed = 1;
|
||||
appDrawerSectionViewModes = {};
|
||||
appIdSubstitutions = [
|
||||
{
|
||||
pattern = "Spotify";
|
||||
replacement = "spotify";
|
||||
type = "exact";
|
||||
}
|
||||
{
|
||||
pattern = "beepertexts";
|
||||
replacement = "beeper";
|
||||
type = "exact";
|
||||
}
|
||||
{
|
||||
pattern = "home assistant desktop";
|
||||
replacement = "homeassistant-desktop";
|
||||
type = "exact";
|
||||
}
|
||||
{
|
||||
pattern = "com.transmissionbt.transmission";
|
||||
replacement = "transmission-gtk";
|
||||
type = "contains";
|
||||
}
|
||||
{
|
||||
pattern = "^steam_app_(\\d+)$";
|
||||
replacement = "steam_icon_$1";
|
||||
type = "regex";
|
||||
}
|
||||
];
|
||||
appLauncherGridColumns = 4;
|
||||
appLauncherViewMode = "list";
|
||||
appPickerViewMode = "grid";
|
||||
appsDockActiveColorMode = "primary";
|
||||
appsDockColorizeActive = false;
|
||||
appsDockEnlargeOnHover = false;
|
||||
appsDockEnlargePercentage = 125;
|
||||
appsDockHideIndicators = false;
|
||||
appsDockIconSizePercentage = 100;
|
||||
audioInputDevicePins = {};
|
||||
audioOutputDevicePins = {};
|
||||
audioScrollMode = "volume";
|
||||
audioVisualizerEnabled = true;
|
||||
audioWheelScrollAmount = 5;
|
||||
barConfigs = [
|
||||
{
|
||||
# Widgets
|
||||
autoHide = false;
|
||||
autoHideDelay = 250;
|
||||
borderColor = "surfaceText";
|
||||
borderEnabled = false;
|
||||
borderOpacity = 1;
|
||||
borderThickness = 2;
|
||||
bottomGap = 0;
|
||||
centerWidgets = [
|
||||
{
|
||||
enabled = true;
|
||||
id = "music";
|
||||
mediaSize = 1;
|
||||
}
|
||||
];
|
||||
enabled = true;
|
||||
fontScale = 1.1;
|
||||
gothCornerRadiusOverride = false;
|
||||
gothCornerRadiusValue = 12;
|
||||
gothCornersEnabled = false;
|
||||
id = "default";
|
||||
innerPadding = 4;
|
||||
leftWidgets = [
|
||||
{
|
||||
enabled = true;
|
||||
@ -48,14 +116,18 @@
|
||||
id = "focusedWindow";
|
||||
}
|
||||
];
|
||||
centerWidgets = [
|
||||
maximizeDetection = true;
|
||||
name = "Main Bar";
|
||||
noBackground = false;
|
||||
openOnOverview = true;
|
||||
popupGapsAuto = true;
|
||||
popupGapsManual = 4;
|
||||
position = 0;
|
||||
rightWidgets = [
|
||||
{
|
||||
enabled = true;
|
||||
id = "music";
|
||||
mediaSize = 1;
|
||||
id = "privacyIndicator";
|
||||
}
|
||||
];
|
||||
rightWidgets = [
|
||||
{
|
||||
enabled = true;
|
||||
id = "cpuUsage";
|
||||
@ -70,10 +142,18 @@
|
||||
enabled = true;
|
||||
id = "diskUsage";
|
||||
}
|
||||
{
|
||||
enabled = true;
|
||||
id = "colorPicker";
|
||||
}
|
||||
{
|
||||
enabled = true;
|
||||
id = "clipboard";
|
||||
}
|
||||
{
|
||||
enabled = true;
|
||||
id = "vpn";
|
||||
}
|
||||
{
|
||||
enabled = true;
|
||||
id = "controlCenterButton";
|
||||
@ -92,95 +172,54 @@
|
||||
id = "notificationButton";
|
||||
}
|
||||
];
|
||||
|
||||
enabled = true;
|
||||
id = "default";
|
||||
name = "Main Bar";
|
||||
|
||||
# Behavior
|
||||
autoHide = false;
|
||||
autoHideDelay = 250;
|
||||
maximizeDetection = true;
|
||||
openOnOverview = false;
|
||||
|
||||
# Border
|
||||
borderColor = "surfaceText";
|
||||
borderEnabled = false;
|
||||
borderOpacity = 1;
|
||||
borderThickness = 2;
|
||||
gothCornerRadiusOverride = false;
|
||||
gothCornerRadiusValue = 12;
|
||||
gothCornersEnabled = false;
|
||||
|
||||
# Styling
|
||||
position = 0;
|
||||
fontScale = 1.1;
|
||||
bottomGap = 0;
|
||||
innerPadding = 4;
|
||||
noBackground = false;
|
||||
popupGapsAuto = true;
|
||||
popupGapsManual = 4;
|
||||
screenPreferences = ["all"];
|
||||
showOnLastDisplay = true;
|
||||
spacing = 0;
|
||||
squareCorners = true;
|
||||
transparency = 1;
|
||||
visible = true;
|
||||
widgetOutlineColor = "primary";
|
||||
widgetOutlineEnabled = false;
|
||||
widgetOutlineOpacity = 1;
|
||||
widgetOutlineThickness = 2;
|
||||
widgetTransparency = 1;
|
||||
squareCorners = true;
|
||||
screenPreferences = ["all"];
|
||||
showOnLastDisplay = true;
|
||||
visible = true;
|
||||
}
|
||||
];
|
||||
|
||||
# Power saving
|
||||
acLockTimeout = 0;
|
||||
acMonitorTimeout = 0;
|
||||
acProfileName = "";
|
||||
acSuspendBehavior = 0;
|
||||
acSuspendTimeout = 0;
|
||||
|
||||
animationSpeed = 1;
|
||||
|
||||
# Launcher
|
||||
appLauncherGridColumns = 4;
|
||||
appLauncherViewMode = "list";
|
||||
launchPrefix = "";
|
||||
launcherLogoBrightness = 0.5;
|
||||
launcherLogoColorInvertOnMode = false;
|
||||
launcherLogoColorOverride = "";
|
||||
launcherLogoContrast = 1;
|
||||
launcherLogoCustomPath = "";
|
||||
launcherLogoMode = "os";
|
||||
launcherLogoSizeOffset = 0;
|
||||
|
||||
# Audio
|
||||
audioInputDevicePins = {};
|
||||
audioOutputDevicePins = {};
|
||||
audioVisualizerEnabled = true;
|
||||
|
||||
# Battery
|
||||
barMaxVisibleApps = 0;
|
||||
barMaxVisibleRunningApps = 0;
|
||||
barShowOverflowBadge = true;
|
||||
batteryChargeLimit = 100;
|
||||
batteryLockTimeout = 0;
|
||||
batteryMonitorTimeout = 0;
|
||||
batteryProfileName = "";
|
||||
batterySuspendBehavior = 0;
|
||||
batterySuspendTimeout = 0;
|
||||
|
||||
# Wallpaper
|
||||
bluetoothDevicePins = {};
|
||||
blurWallpaperOnOverview = true;
|
||||
blurredWallpaperLayer = false;
|
||||
wallpaperFillMode = "Fill";
|
||||
|
||||
# Control center
|
||||
blurredWallpaperLayer = true;
|
||||
brightnessDevicePins = {};
|
||||
browserPickerViewMode = "grid";
|
||||
browserUsageHistory = {};
|
||||
builtInPluginSettings = {dms_settings_search = {trigger = "?";};};
|
||||
buttonColorMode = "primary";
|
||||
centeringMode = "index";
|
||||
clipboardEnterToPaste = false;
|
||||
clockCompactMode = false;
|
||||
clockDateFormat = "yyyy-MM-dd";
|
||||
configVersion = 5;
|
||||
controlCenterShowAudioIcon = true;
|
||||
controlCenterShowAudioPercent = false;
|
||||
controlCenterShowBatteryIcon = false;
|
||||
controlCenterShowBluetoothIcon = true;
|
||||
controlCenterShowBrightnessIcon = false;
|
||||
controlCenterShowBrightnessPercent = false;
|
||||
controlCenterShowMicIcon = true;
|
||||
controlCenterShowMicPercent = false;
|
||||
controlCenterShowNetworkIcon = true;
|
||||
controlCenterShowPrinterIcon = false;
|
||||
controlCenterShowScreenSharingIcon = true;
|
||||
controlCenterShowVpnIcon = true;
|
||||
controlCenterTileColorMode = "primary";
|
||||
controlCenterWidgets = [
|
||||
{
|
||||
enabled = true;
|
||||
@ -223,70 +262,242 @@
|
||||
width = 50;
|
||||
}
|
||||
];
|
||||
|
||||
# Theme
|
||||
currentThemeName = "custom";
|
||||
currentThemeCategory = "registry";
|
||||
customThemeFile = "${config.paths.dotfiles}/dankmaterialshell/catppuccin-mauve.json";
|
||||
|
||||
# Styling
|
||||
cornerRadius = 10;
|
||||
currentThemeCategory = "registry";
|
||||
currentThemeName = "custom";
|
||||
cursorSettings = {
|
||||
dwl = {cursorHideTimeout = 0;};
|
||||
hyprland = {
|
||||
hideOnKeyPress = false;
|
||||
hideOnTouch = false;
|
||||
inactiveTimeout = 0;
|
||||
};
|
||||
niri = {
|
||||
hideAfterInactiveMs = 0;
|
||||
hideWhenTyping = false;
|
||||
};
|
||||
size = 24;
|
||||
theme = "System Default";
|
||||
};
|
||||
customAnimationDuration = 500;
|
||||
fontFamily = "MonoLisa Normal";
|
||||
monoFontFamily = "MonoLisa Normal";
|
||||
fontScale = 1;
|
||||
fontWeight = 500;
|
||||
gtkThemingEnabled = false;
|
||||
iconTheme = "System Default";
|
||||
|
||||
# Lock
|
||||
customPowerActionHibernate = "";
|
||||
customPowerActionLock = "";
|
||||
customPowerActionLogout = "";
|
||||
customPowerActionPowerOff = "";
|
||||
customPowerActionReboot = "";
|
||||
customPowerActionSuspend = "";
|
||||
customThemeFile = "/home/christoph/NixFlake/config/dankmaterialshell/catppuccin-mauve.json";
|
||||
dankLauncherV2BorderColor = "primary";
|
||||
dankLauncherV2BorderEnabled = false;
|
||||
dankLauncherV2BorderThickness = 2;
|
||||
dankLauncherV2ShowFooter = true;
|
||||
dankLauncherV2Size = "compact";
|
||||
dankLauncherV2UnloadOnClose = false;
|
||||
desktopClockColorMode = "primary";
|
||||
desktopClockCustomColor = {
|
||||
a = 1;
|
||||
b = 1;
|
||||
g = 1;
|
||||
hslHue = -1;
|
||||
hslLightness = 1;
|
||||
hslSaturation = 0;
|
||||
hsvHue = -1;
|
||||
hsvSaturation = 0;
|
||||
hsvValue = 1;
|
||||
r = 1;
|
||||
valid = true;
|
||||
};
|
||||
desktopClockDisplayPreferences = ["all"];
|
||||
desktopClockEnabled = false;
|
||||
desktopClockHeight = 180;
|
||||
desktopClockShowAnalogNumbers = false;
|
||||
desktopClockShowAnalogSeconds = true;
|
||||
desktopClockShowDate = true;
|
||||
desktopClockStyle = "analog";
|
||||
desktopClockTransparency = 0.8;
|
||||
desktopClockWidth = 280;
|
||||
desktopClockX = -1;
|
||||
desktopClockY = -1;
|
||||
desktopWidgetGridSettings = {};
|
||||
desktopWidgetGroups = [];
|
||||
desktopWidgetInstances = [];
|
||||
desktopWidgetPositions = {};
|
||||
displayNameMode = "system";
|
||||
displayProfileAutoSelect = false;
|
||||
displayProfiles = {};
|
||||
displayShowDisconnected = false;
|
||||
displaySnapToEdge = true;
|
||||
dockAutoHide = false;
|
||||
dockBorderColor = "surfaceText";
|
||||
dockBorderEnabled = false;
|
||||
dockBorderOpacity = 1;
|
||||
dockBorderThickness = 1;
|
||||
dockBottomGap = 0;
|
||||
dockGroupByApp = false;
|
||||
dockIconSize = 40;
|
||||
dockIndicatorStyle = "circle";
|
||||
dockIsolateDisplays = false;
|
||||
dockLauncherEnabled = false;
|
||||
dockLauncherLogoBrightness = 0.5;
|
||||
dockLauncherLogoColorOverride = "";
|
||||
dockLauncherLogoContrast = 1;
|
||||
dockLauncherLogoCustomPath = "";
|
||||
dockLauncherLogoMode = "apps";
|
||||
dockLauncherLogoSizeOffset = 0;
|
||||
dockMargin = 0;
|
||||
dockMaxVisibleApps = 0;
|
||||
dockMaxVisibleRunningApps = 0;
|
||||
dockOpenOnOverview = false;
|
||||
dockPosition = 1;
|
||||
dockShowOverflowBadge = true;
|
||||
dockSmartAutoHide = false;
|
||||
dockSpacing = 4;
|
||||
dockTransparency = 1;
|
||||
dwlShowAllTags = false;
|
||||
enableFprint = false;
|
||||
enableRippleEffects = true;
|
||||
enabledGpuPciIds = [];
|
||||
fadeToDpmsEnabled = true;
|
||||
fadeToDpmsGracePeriod = 5;
|
||||
fadeToLockEnabled = true;
|
||||
fadeToLockGracePeriod = 5;
|
||||
filePickerUsageHistory = {};
|
||||
focusedWindowCompactMode = false;
|
||||
fontFamily = "MonoLisa Normal";
|
||||
fontScale = 1;
|
||||
fontWeight = 500;
|
||||
groupWorkspaceApps = true;
|
||||
gtkThemingEnabled = false;
|
||||
hideBrightnessSlider = false;
|
||||
hyprlandLayoutBorderSize = -1;
|
||||
hyprlandLayoutGapsOverride = -1;
|
||||
hyprlandLayoutRadiusOverride = -1;
|
||||
hyprlandOutputSettings = {};
|
||||
iconTheme = "System Default";
|
||||
keyboardLayoutNameCompactMode = false;
|
||||
launchPrefix = "";
|
||||
launcherLogoBrightness = 0.5;
|
||||
launcherLogoColorInvertOnMode = false;
|
||||
launcherLogoColorOverride = "";
|
||||
launcherLogoContrast = 1;
|
||||
launcherLogoCustomPath = "";
|
||||
launcherLogoMode = "os";
|
||||
launcherLogoSizeOffset = 0;
|
||||
launcherPluginOrder = [];
|
||||
launcherPluginVisibility = {};
|
||||
lockAtStartup = false;
|
||||
lockBeforeSuspend = false;
|
||||
lockDateFormat = "yyyy-MM-dd";
|
||||
lockScreenActiveMonitor = "all";
|
||||
lockScreenInactiveColor = "#000000";
|
||||
lockScreenNotificationMode = 0;
|
||||
lockScreenPowerOffMonitorsOnLock = false;
|
||||
lockScreenShowDate = true;
|
||||
lockScreenShowMediaPlayer = true;
|
||||
lockScreenShowPasswordField = true;
|
||||
lockScreenShowPowerActions = true;
|
||||
lockScreenShowProfileImage = true;
|
||||
lockScreenShowSystemIcons = true;
|
||||
lockScreenShowTime = true;
|
||||
loginctlLockIntegration = true;
|
||||
|
||||
# Notifications
|
||||
mangoLayoutBorderSize = -1;
|
||||
mangoLayoutGapsOverride = -1;
|
||||
mangoLayoutRadiusOverride = -1;
|
||||
matugenScheme = "scheme-tonal-spot";
|
||||
matugenTargetMonitor = "";
|
||||
matugenTemplateAlacritty = true;
|
||||
matugenTemplateDgop = true;
|
||||
matugenTemplateEmacs = true;
|
||||
matugenTemplateEquibop = true;
|
||||
matugenTemplateFirefox = true;
|
||||
matugenTemplateFoot = true;
|
||||
matugenTemplateGhostty = true;
|
||||
matugenTemplateGtk = true;
|
||||
matugenTemplateHyprland = true;
|
||||
matugenTemplateKcolorscheme = true;
|
||||
matugenTemplateKitty = true;
|
||||
matugenTemplateMangowc = true;
|
||||
matugenTemplateNeovim = true;
|
||||
matugenTemplateNiri = true;
|
||||
matugenTemplatePywalfox = true;
|
||||
matugenTemplateQt5ct = true;
|
||||
matugenTemplateQt6ct = true;
|
||||
matugenTemplateVesktop = true;
|
||||
matugenTemplateVscode = true;
|
||||
matugenTemplateWezterm = true;
|
||||
matugenTemplateZenBrowser = true;
|
||||
maxFprintTries = 15;
|
||||
maxWorkspaceIcons = 3;
|
||||
mediaSize = 1;
|
||||
modalAnimationSpeed = 1;
|
||||
modalCustomAnimationDuration = 150;
|
||||
modalDarkenBackground = true;
|
||||
monoFontFamily = "MonoLisa Normal";
|
||||
networkPreference = "auto";
|
||||
nightModeEnabled = false;
|
||||
niriLayoutBorderSize = -1;
|
||||
niriLayoutGapsOverride = -1;
|
||||
niriLayoutRadiusOverride = -1;
|
||||
niriOutputSettings = {};
|
||||
niriOverviewOverlayEnabled = true;
|
||||
notepadFontFamily = "";
|
||||
notepadFontSize = 14;
|
||||
notepadLastCustomTransparency = 0.7;
|
||||
notepadShowLineNumbers = false;
|
||||
notepadTransparencyOverride = -1;
|
||||
notepadUseMonospace = true;
|
||||
notificationAnimationSpeed = 1;
|
||||
notificationCompactMode = false;
|
||||
notificationCustomAnimationDuration = 400;
|
||||
notificationHistoryEnabled = true;
|
||||
notificationHistoryMaxAgeDays = 7;
|
||||
notificationHistoryMaxCount = 50;
|
||||
notificationHistorySaveCritical = true;
|
||||
notificationHistorySaveLow = true;
|
||||
notificationHistorySaveNormal = true;
|
||||
notificationOverlayEnabled = false;
|
||||
notificationPopupPosition = 0;
|
||||
notificationPopupPrivacyMode = false;
|
||||
notificationPopupShadowEnabled = true;
|
||||
notificationRules = [];
|
||||
notificationTimeoutCritical = 0;
|
||||
notificationTimeoutLow = 5000;
|
||||
notificationTimeoutNormal = 5000;
|
||||
|
||||
# OSD
|
||||
osdAlwaysShowValue = true;
|
||||
osdAudioOutputEnabled = true;
|
||||
osdBrightnessEnabled = true;
|
||||
osdCapsLockEnabled = true;
|
||||
osdIdleInhibitorEnabled = true;
|
||||
osdMediaPlaybackEnabled = true;
|
||||
osdMediaVolumeEnabled = true;
|
||||
osdMicMuteEnabled = true;
|
||||
osdPosition = 7;
|
||||
osdPowerProfileEnabled = false;
|
||||
osdVolumeEnabled = true;
|
||||
|
||||
# Power menu
|
||||
padHours12Hour = false;
|
||||
popoutAnimationSpeed = 1;
|
||||
popoutCustomAnimationDuration = 150;
|
||||
popupTransparency = 1;
|
||||
powerActionConfirm = true;
|
||||
powerActionHoldDuration = 0.5;
|
||||
powerMenuActions = ["reboot" "logout" "poweroff" "lock" "restart"];
|
||||
powerMenuDefaultAction = "poweroff";
|
||||
powerMenuGridLayout = false;
|
||||
|
||||
# Settings
|
||||
focusedWindowCompactMode = false;
|
||||
hideBrightnessSlider = false;
|
||||
keyboardLayoutNameCompactMode = false;
|
||||
modalDarkenBackground = true;
|
||||
nightModeEnabled = false;
|
||||
niriOverviewOverlayEnabled = true;
|
||||
privacyShowCameraIcon = false;
|
||||
privacyShowMicIcon = false;
|
||||
privacyShowScreenShareIcon = false;
|
||||
qtThemingEnabled = false;
|
||||
registryThemeVariants = {};
|
||||
reverseScrolling = false;
|
||||
runDmsMatugenTemplates = false;
|
||||
runUserMatugenTemplates = false;
|
||||
runningAppsCompactMode = true;
|
||||
runningAppsCurrentMonitor = false;
|
||||
runningAppsCurrentWorkspace = false;
|
||||
runningAppsGroupByApp = false;
|
||||
screenPreferences = {};
|
||||
scrollTitleEnabled = true;
|
||||
selectedGpuIndex = 0;
|
||||
showBattery = false;
|
||||
showCapsLockIndicator = false;
|
||||
showClipboard = true;
|
||||
@ -302,127 +513,92 @@
|
||||
showMusic = true;
|
||||
showNotificationButton = true;
|
||||
showOccupiedWorkspacesOnly = false;
|
||||
showOnLastDisplay = {};
|
||||
showPrivacyButton = false;
|
||||
showSeconds = true;
|
||||
showSystemTray = true;
|
||||
showWeather = true;
|
||||
showWorkspaceApps = false;
|
||||
showWorkspaceIndex = false;
|
||||
showWorkspaceName = false;
|
||||
showWorkspacePadding = false;
|
||||
showWorkspaceSwitcher = true;
|
||||
sortAppsAlphabetically = false;
|
||||
soundNewNotification = true;
|
||||
soundPluggedIn = true;
|
||||
soundVolumeChanged = true;
|
||||
soundsEnabled = false;
|
||||
|
||||
# Launcher
|
||||
sortAppsAlphabetically = false;
|
||||
spotlightCloseNiriOverview = true;
|
||||
spotlightModalViewMode = "list";
|
||||
|
||||
# Clock
|
||||
spotlightSectionViewModes = {};
|
||||
syncComponentAnimationSpeeds = true;
|
||||
syncModeWithPortal = true;
|
||||
systemMonitorColorMode = "primary";
|
||||
systemMonitorCustomColor = {
|
||||
a = 1;
|
||||
b = 1;
|
||||
g = 1;
|
||||
hslHue = -1;
|
||||
hslLightness = 1;
|
||||
hslSaturation = 0;
|
||||
hsvHue = -1;
|
||||
hsvSaturation = 0;
|
||||
hsvValue = 1;
|
||||
r = 1;
|
||||
valid = true;
|
||||
};
|
||||
systemMonitorDisplayPreferences = ["all"];
|
||||
systemMonitorEnabled = false;
|
||||
systemMonitorGpuPciId = "";
|
||||
systemMonitorGraphInterval = 60;
|
||||
systemMonitorHeight = 480;
|
||||
systemMonitorLayoutMode = "auto";
|
||||
systemMonitorShowCpu = true;
|
||||
systemMonitorShowCpuGraph = true;
|
||||
systemMonitorShowCpuTemp = true;
|
||||
systemMonitorShowDisk = true;
|
||||
systemMonitorShowGpuTemp = false;
|
||||
systemMonitorShowHeader = true;
|
||||
systemMonitorShowMemory = true;
|
||||
systemMonitorShowMemoryGraph = true;
|
||||
systemMonitorShowNetwork = true;
|
||||
systemMonitorShowNetworkGraph = true;
|
||||
systemMonitorShowTopProcesses = false;
|
||||
systemMonitorTopProcessCount = 3;
|
||||
systemMonitorTopProcessSortBy = "cpu";
|
||||
systemMonitorTransparency = 0.8;
|
||||
systemMonitorVariants = [];
|
||||
systemMonitorWidth = 320;
|
||||
systemMonitorX = -1;
|
||||
systemMonitorY = -1;
|
||||
terminalsAlwaysDark = false;
|
||||
updaterCustomCommand = "";
|
||||
updaterHideWidget = false;
|
||||
updaterTerminalAdditionalParams = "";
|
||||
updaterUseCustomCommand = false;
|
||||
use24HourClock = true;
|
||||
showSeconds = true;
|
||||
clockCompactMode = false;
|
||||
clockDateFormat = "yyyy-MM-dd";
|
||||
|
||||
# Media
|
||||
waveProgressEnabled = true;
|
||||
scrollTitleEnabled = true;
|
||||
|
||||
# Weather
|
||||
showWeather = true;
|
||||
useFahrenheit = false;
|
||||
useAutoLocation = false;
|
||||
weatherCoordinates = "51.5142273,7.4652789";
|
||||
useFahrenheit = false;
|
||||
useSystemSoundTheme = false;
|
||||
wallpaperFillMode = "Fill";
|
||||
waveProgressEnabled = true;
|
||||
weatherEnabled = true;
|
||||
weatherLocation = "Dortmund, Nordrhein-Westfalen";
|
||||
|
||||
# Workspaces
|
||||
workspaceNameIcons = {};
|
||||
workspaceScrolling = false;
|
||||
workspacesPerMonitor = true;
|
||||
|
||||
# Dock
|
||||
dockAutoHide = false;
|
||||
dockBorderColor = "surfaceText";
|
||||
dockBorderEnabled = false;
|
||||
dockBorderOpacity = 1;
|
||||
dockBorderThickness = 1;
|
||||
dockBottomGap = 0;
|
||||
dockGroupByApp = false;
|
||||
dockIconSize = 40;
|
||||
dockIndicatorStyle = "circle";
|
||||
dockMargin = 0;
|
||||
dockOpenOnOverview = false;
|
||||
dockPosition = 1;
|
||||
dockSpacing = 4;
|
||||
dockTransparency = 1;
|
||||
|
||||
# Random shit
|
||||
widgetBackgroundColor = "sc";
|
||||
widgetColorMode = "default";
|
||||
wifiNetworkPins = {};
|
||||
brightnessDevicePins = {};
|
||||
bluetoothDevicePins = {};
|
||||
centeringMode = "index";
|
||||
useSystemSoundTheme = false;
|
||||
vpnLastConnected = "";
|
||||
syncModeWithPortal = true;
|
||||
terminalsAlwaysDark = false;
|
||||
updaterCustomCommand = "";
|
||||
updaterTerminalAdditionalParams = "";
|
||||
updaterUseCustomCommand = false;
|
||||
showOnLastDisplay = {};
|
||||
dwlShowAllTags = false;
|
||||
enableFprint = false;
|
||||
enabledGpuPciIds = [];
|
||||
customPowerActionHibernate = "";
|
||||
customPowerActionLock = "";
|
||||
customPowerActionLogout = "";
|
||||
customPowerActionPowerOff = "";
|
||||
customPowerActionReboot = "";
|
||||
customPowerActionSuspend = "";
|
||||
displayNameMode = "system";
|
||||
matugenScheme = "scheme-tonal-spot";
|
||||
matugenTargetMonitor = "";
|
||||
matugenTemplateAlacritty = true;
|
||||
matugenTemplateDgop = true;
|
||||
matugenTemplateFirefox = true;
|
||||
matugenTemplateFoot = true;
|
||||
matugenTemplateGhostty = true;
|
||||
matugenTemplateGtk = true;
|
||||
matugenTemplateKcolorscheme = true;
|
||||
matugenTemplateKitty = true;
|
||||
matugenTemplateNiri = true;
|
||||
matugenTemplatePywalfox = true;
|
||||
matugenTemplateQt5ct = true;
|
||||
matugenTemplateQt6ct = true;
|
||||
matugenTemplateVesktop = true;
|
||||
matugenTemplateVscode = true;
|
||||
matugenTemplateWezterm = true;
|
||||
notepadFontFamily = "";
|
||||
notepadFontSize = 14;
|
||||
notepadLastCustomTransparency = 0.7;
|
||||
notepadShowLineNumbers = false;
|
||||
notepadTransparencyOverride = -1;
|
||||
notepadUseMonospace = true;
|
||||
maxFprintTries = 15;
|
||||
maxWorkspaceIcons = 3;
|
||||
mediaSize = 1;
|
||||
networkPreference = "auto";
|
||||
selectedGpuIndex = 0;
|
||||
popupTransparency = 1;
|
||||
privacyShowCameraIcon = false;
|
||||
privacyShowMicIcon = false;
|
||||
privacyShowScreenShareIcon = false;
|
||||
qtThemingEnabled = false;
|
||||
runDmsMatugenTemplates = false;
|
||||
runUserMatugenTemplates = false;
|
||||
runningAppsCompactMode = true;
|
||||
runningAppsCurrentWorkspace = false;
|
||||
runningAppsGroupByApp = false;
|
||||
screenPreferences = {};
|
||||
|
||||
configVersion = 2;
|
||||
windSpeedUnit = "kmh";
|
||||
workspaceAppIconSizeOffset = 0;
|
||||
workspaceColorMode = "default";
|
||||
workspaceDragReorder = true;
|
||||
workspaceFocusedBorderColor = "primary";
|
||||
workspaceFocusedBorderEnabled = false;
|
||||
workspaceFocusedBorderThickness = 2;
|
||||
workspaceFollowFocus = false;
|
||||
workspaceNameIcons = {};
|
||||
workspaceOccupiedColorMode = "none";
|
||||
workspaceScrolling = false;
|
||||
workspaceUnfocusedColorMode = "default";
|
||||
workspaceUrgentColorMode = "default";
|
||||
};
|
||||
|
||||
session = {
|
||||
|
||||
@ -62,6 +62,7 @@ in {
|
||||
# TODO: Those should be modules with their own options
|
||||
noctalia-shell = import ./noctalia.nix {inherit color;};
|
||||
dank-material-shell = import ./dankMaterialShell.nix {inherit config color;};
|
||||
dsearch.enable = true;
|
||||
|
||||
# TODO: Extract options
|
||||
niri = {
|
||||
@ -284,10 +285,15 @@ in {
|
||||
|
||||
layer-rules = [
|
||||
{
|
||||
# Set the overview wallpaper on the backdrop.
|
||||
# Set the overview wallpaper on the backdrop (Noctalia).
|
||||
matches = [{namespace = "^noctalia-overview*";}];
|
||||
place-within-backdrop = true;
|
||||
}
|
||||
{
|
||||
# Set the overview wallpaper on the backdrop (DMS).
|
||||
matches = [{namespace = "^dms:blurwallpaper$";}];
|
||||
place-within-backdrop = true;
|
||||
}
|
||||
];
|
||||
|
||||
debug = {
|
||||
@ -442,6 +448,10 @@ in {
|
||||
action = maximize-column;
|
||||
hotkey-overlay = {title = "Maximize column.";};
|
||||
};
|
||||
"Mod+Comma" = {
|
||||
action = reset-window-height;
|
||||
hotkey-overlay = {title = "Reset window height.";};
|
||||
};
|
||||
"Mod+V" = {
|
||||
action = toggle-window-floating;
|
||||
hotkey-overlay = {title = "Toggle between floating and tiled window.";};
|
||||
|
||||
@ -8,6 +8,7 @@
|
||||
system,
|
||||
username,
|
||||
headless,
|
||||
publicKeys,
|
||||
...
|
||||
}:
|
||||
with mylib.networking; {
|
||||
@ -273,6 +274,10 @@ with mylib.networking; {
|
||||
];
|
||||
shell = pkgs.fish;
|
||||
|
||||
openssh.authorizedKeys.keys = [
|
||||
publicKeys.christoph.ssh
|
||||
];
|
||||
|
||||
# We do this with HomeManager
|
||||
# packages = with pkgs; [];
|
||||
};
|
||||
@ -418,7 +423,9 @@ with mylib.networking; {
|
||||
};
|
||||
|
||||
# Enable the OpenSSH daemon.
|
||||
openssh.enable = true;
|
||||
openssh = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
# Trims the journal if too large
|
||||
journald.extraConfig = ''
|
||||
|
||||
@ -176,6 +176,22 @@
|
||||
fileSystems = ["/"];
|
||||
};
|
||||
|
||||
# Temporarily ban IPs for SSH after failed login attempts
|
||||
fail2ban = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
openssh = {
|
||||
ports = [5432];
|
||||
settings = {
|
||||
PasswordAuthentication = false;
|
||||
KbdInteractiveAuthentication = false;
|
||||
PermitRootLogin = "no";
|
||||
AllowUsers = [username];
|
||||
LogLevel = "VERBOSE"; # For fail2ban
|
||||
};
|
||||
};
|
||||
|
||||
# Keep this as a system service because we're backing up /persist as root
|
||||
# TODO: The repository gets corrupted all the time, maybe because the service runs before the repository is mounted?
|
||||
# - Was this caused by the NFS "soft" option?
|
||||
|
||||
@ -76,6 +76,9 @@
|
||||
# options = ["defaults" "rw" "noatime"];
|
||||
# };
|
||||
|
||||
# Can't set this in disko
|
||||
"/home".neededForBoot = true;
|
||||
|
||||
# NOTE: By mounting NFS shares here, we risk the system becoming unusable when they disconnect (unless unmounted).
|
||||
|
||||
# If the bg option is specified, a timeout or failure causes the mount(8) command
|
||||
|
||||
@ -18,6 +18,7 @@
|
||||
../services/heidi.nix
|
||||
../services/formula10.nix
|
||||
../services/formula11.nix
|
||||
../services/formula12.nix
|
||||
../services/statespaces.nix
|
||||
|
||||
# General services
|
||||
@ -28,6 +29,7 @@
|
||||
../services/gitea.nix
|
||||
../services/immich.nix
|
||||
../services/jellyfin.nix
|
||||
../services/kiwix.nix
|
||||
../services/kopia.nix
|
||||
../services/nextcloud.nix
|
||||
../services/nginx-proxy-manager.nix
|
||||
|
||||
66
system/services/formula12.nix
Normal file
66
system/services/formula12.nix
Normal file
@ -0,0 +1,66 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
pocketbaseVersion = "0.33.0";
|
||||
f12Version = "latest";
|
||||
in {
|
||||
virtualisation.oci-containers.containers = {
|
||||
formula12_pocketbase = {
|
||||
image = "gitea.vps.chriphost.de/christoph/pocketbase:${pocketbaseVersion}";
|
||||
autoStart = true;
|
||||
|
||||
dependsOn = [];
|
||||
|
||||
ports = [
|
||||
"8091:8080" # Bind for VPS
|
||||
];
|
||||
|
||||
volumes = [
|
||||
"formula12_pb_data:/pb/pb_data"
|
||||
];
|
||||
|
||||
environment = {};
|
||||
|
||||
extraOptions = [
|
||||
"--net=behind-nginx"
|
||||
];
|
||||
};
|
||||
|
||||
formula12 = {
|
||||
image = "gitea.vps.chriphost.de/christoph/formula12:${f12Version}";
|
||||
autoStart = true;
|
||||
|
||||
dependsOn = [
|
||||
"formula12_pocketbase"
|
||||
];
|
||||
|
||||
ports = [
|
||||
# "8080:8090"
|
||||
"5174:3000"
|
||||
];
|
||||
|
||||
volumes = [];
|
||||
|
||||
environment = {
|
||||
# PB_PROTOCOL="http";
|
||||
# PB_HOST="formula11_pocketbase";
|
||||
# PB_PORT="8000";
|
||||
|
||||
# PB_PROTOCOL="https";
|
||||
# PB_URL="f11pb.vps.chriphost.de";
|
||||
|
||||
PUBLIC_PBURL = "https://f12pb.vps.chriphost.de";
|
||||
|
||||
# Required by SvelteKit to prevent cross-site POST errors
|
||||
ORIGIN = "https://f12.vps.chriphost.de";
|
||||
};
|
||||
|
||||
extraOptions = [
|
||||
"--net=behind-nginx"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
@ -6,7 +6,7 @@
|
||||
}: let
|
||||
vectorchordVersion = "0.4.2";
|
||||
pgvectorsVersion = "0.2.0";
|
||||
immichVersion = "2.3.1";
|
||||
immichVersion = "2.5.2";
|
||||
in {
|
||||
virtualisation.oci-containers.containers = {
|
||||
immich-database = {
|
||||
|
||||
40
system/services/kiwix.nix
Normal file
40
system/services/kiwix.nix
Normal file
@ -0,0 +1,40 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
kiwixVersion = "3.8.1";
|
||||
in {
|
||||
virtualisation.oci-containers.containers = {
|
||||
kiwix = {
|
||||
image = "ghcr.io/kiwix/kiwix-serve:${kiwixVersion}";
|
||||
autoStart = true;
|
||||
|
||||
dependsOn = [];
|
||||
|
||||
ports = [
|
||||
# "8080:80"
|
||||
];
|
||||
|
||||
volumes = [
|
||||
# TODO: Add network location for .zim files
|
||||
"kiwix_data:/data"
|
||||
];
|
||||
|
||||
environment = {
|
||||
PUID = "1000";
|
||||
PGID = "1000";
|
||||
TZ = "Europe/Berlin";
|
||||
};
|
||||
|
||||
cmd = ["*.zim"];
|
||||
|
||||
extraOptions = [
|
||||
# "--privileged"
|
||||
# "--device=nvidia.com/gpu=all"
|
||||
"--net=behind-nginx"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
@ -126,6 +126,7 @@ in {
|
||||
# (mkUDir ".nv" m755) # Unity
|
||||
(mkUDir ".ollama" m755)
|
||||
# (mkUDir ".plastic4" m755) # Unity
|
||||
(mkUDir ".tiddl" m755)
|
||||
(mkUDir ".var/app" m755)
|
||||
(mkUDir ".vim/undo" m755)
|
||||
(mkUDir ".zotero" m755)
|
||||
@ -237,6 +238,7 @@ in {
|
||||
newhome
|
||||
];
|
||||
|
||||
# TODO: Is this fixed with filesystems."/home".neededForBoot = true?
|
||||
# NOTE: This is REQUIRED for HM activation!
|
||||
# Otherwise the home directory won't be writable!
|
||||
systemd.services."impermanence-fix-home-ownership" = let
|
||||
@ -296,10 +298,8 @@ in {
|
||||
unitConfig.DefaultDependencies = "no";
|
||||
serviceConfig.Type = "oneshot";
|
||||
|
||||
# NOTE: If any single line of this script fails
|
||||
# the entire system might be bricked.
|
||||
# NixOS automatically sets "-e", so if unlucky,
|
||||
# the subvolumes won'e exist for mounting...
|
||||
# NOTE: If any single line of this script fails the entire system might be bricked.
|
||||
# NixOS automatically sets "-e", so if unlucky, the subvolumes won'e exist for mounting...
|
||||
script = let
|
||||
mvSubvolToPersist = subvol: ''
|
||||
if [[ -e ${mountDir}/${subvol} ]]; then
|
||||
|
||||
Reference in New Issue
Block a user