mirror of
https://github.com/kittywitch/nixfiles.git
synced 2026-02-09 12:29:19 -08:00
Cleanup lib use, move to std where possible, use upstream nvim module
This commit is contained in:
parent
aa5c67c13a
commit
11dd6aabd5
19 changed files with 53 additions and 515 deletions
|
|
@ -2,7 +2,7 @@
|
|||
inherit (lib.modules) mkMerge;
|
||||
in {
|
||||
base16 = {
|
||||
vim.enable = true;
|
||||
vim.enable = false;
|
||||
shell.enable = true;
|
||||
schemes = mkMerge [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -2,12 +2,14 @@
|
|||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
}: let
|
||||
inherit (lib.strings) fileContents;
|
||||
in {
|
||||
home.sessionVariables.GSM_SKIP_SSH_AGENT_WORKAROUND = "1";
|
||||
|
||||
# Disable gnome-keyring ssh-agent
|
||||
xdg.configFile."autostart/gnome-keyring-ssh.desktop".text = ''
|
||||
${lib.fileContents "${pkgs.gnome3.gnome-keyring}/etc/xdg/autostart/gnome-keyring-ssh.desktop"}
|
||||
${fileContents "${pkgs.gnome3.gnome-keyring}/etc/xdg/autostart/gnome-keyring-ssh.desktop"}
|
||||
Hidden=true
|
||||
'';
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
std,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
inherit (std) string set;
|
||||
inherit (lib.modules) mkMerge mkIf;
|
||||
inherit (lib.attrsets) mapAttrsToList;
|
||||
in {
|
||||
# TODO: fix lib usage
|
||||
programs.mpv = {
|
||||
enable = true;
|
||||
scripts = with pkgs.mpvScripts; [sponsorblock paused];
|
||||
|
|
@ -105,8 +105,8 @@ in {
|
|||
osd-border-size = 2; # font border pixels, default 3
|
||||
term-osd-bar = true;
|
||||
script-opts =
|
||||
builtins.concatStringsSep ","
|
||||
(mapAttrsToList (k: v: "${k}=${toString v}") {
|
||||
string.concatSep ","
|
||||
(mapToValues (k: v: "${k}=${toString v}") {
|
||||
ytdl_hook-ytdl_path = "${pkgs.yt-dlp}/bin/yt-dlp";
|
||||
osc-layout = "slimbox";
|
||||
osc-vidscale = "no";
|
||||
|
|
|
|||
|
|
@ -7,11 +7,10 @@
|
|||
}: let
|
||||
inherit (lib.modules) mkIf;
|
||||
inherit (std) string set;
|
||||
packDir = builtins.toString (pkgs.vimUtils.packDir config.programs.neovim.generatedConfigViml.configure.packages);
|
||||
packDir = builtins.toString (pkgs.vimUtils.packDir config.programs.neovim.plugins);
|
||||
initLua = pkgs.substituteAll ({
|
||||
name = "init.lua";
|
||||
src = ./init.lua;
|
||||
inherit packDir;
|
||||
base16ShellPath = config.base16.shell.package;
|
||||
inherit (config.base16) defaultSchemeName;
|
||||
defaultSchemeSlug = config.base16.defaultScheme.slug;
|
||||
|
|
@ -26,6 +25,8 @@ in {
|
|||
vimAlias = true;
|
||||
viAlias = true;
|
||||
plugins = with pkgs.vimPlugins; [
|
||||
# Base16 manual
|
||||
config.base16.vim.plugin
|
||||
# Libraries
|
||||
plenary-nvim
|
||||
# Disables and re-enables highlighting when searching
|
||||
|
|
|
|||
|
|
@ -6,12 +6,6 @@ local opt = vim.opt -- Set options (global/buffer/windows-scoped)
|
|||
local wo = vim.wo -- Window local variables
|
||||
local api = vim.api -- Lua API
|
||||
|
||||
-----------------------------------------------------------
|
||||
-- Nix Fuckery
|
||||
-----------------------------------------------------------
|
||||
opt.packpath:prepend{"@packDir@"}
|
||||
opt.runtimepath:prepend{"@packDir@"}
|
||||
|
||||
-----------------------------------------------------------
|
||||
-- Base16
|
||||
-----------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -6,7 +6,6 @@
|
|||
inherit (std) serde;
|
||||
in {
|
||||
home.packages = with pkgs; [
|
||||
#rink-readline TODO: wait for fix
|
||||
rink
|
||||
];
|
||||
|
||||
|
|
|
|||
|
|
@ -1,9 +1,4 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
# TODO: fix lib use
|
||||
{config, ...}: {
|
||||
home.packages = [
|
||||
config.services.konawall.konashow
|
||||
];
|
||||
|
|
@ -13,12 +8,10 @@
|
|||
interval = "30m";
|
||||
mode = "shuffle";
|
||||
commonTags = ["width:>=1600"];
|
||||
tagList = map lib.toList [
|
||||
[
|
||||
tagList = [
|
||||
"score:>=50"
|
||||
#"no_humans"
|
||||
"rating:s"
|
||||
]
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@
|
|||
}: let
|
||||
inherit (std) list;
|
||||
inherit (lib.modules) mkMerge;
|
||||
# TODO: fix use of lib
|
||||
in {
|
||||
programs.zsh.profileExtra = ''
|
||||
# If running from tty1 start sway
|
||||
|
|
@ -169,13 +168,13 @@ in {
|
|||
"${cfg.modifier}+shift+${key}" = "move container to workspace number ${workspace}";
|
||||
};
|
||||
workspaceBindings =
|
||||
map (v: bindWorkspace v "${v}") (list.map builtins.toString (list.range 1 9))
|
||||
list.map (v: bindWorkspace v "${v}") (list.map builtins.toString (list.range 1 9))
|
||||
++ [
|
||||
(
|
||||
bindWorkspace "0" "10"
|
||||
)
|
||||
]
|
||||
++ lib.imap1 (i: v: bindWorkspace v "${toString (10 + i)}") (list.map (n: "F${builtins.toString n}") (std.list.range 1 12));
|
||||
++ list.imap (i: v: bindWorkspace v "${toString (11 + i)}") (list.map (n: "F${builtins.toString n}") (std.list.range 1 12));
|
||||
in
|
||||
mkMerge ([
|
||||
{
|
||||
|
|
|
|||
|
|
@ -2,10 +2,12 @@
|
|||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
std,
|
||||
...
|
||||
}: let
|
||||
inherit (lib.types) attrsOf str enum;
|
||||
inherit (lib.modules) mkIf;
|
||||
inherit (std) string set tuple list;
|
||||
cfg = config.base16;
|
||||
in
|
||||
with lib; {
|
||||
|
|
@ -32,14 +34,13 @@ in
|
|||
};
|
||||
config = mkIf (cfg.schemes != {}) {
|
||||
base16 = {
|
||||
# TODO: convert to std
|
||||
palette =
|
||||
lib.mapAttrs' (k: v:
|
||||
lib.nameValuePair
|
||||
palette = set.fromList (k: v:
|
||||
tuple.toPair (tuple.tuple2 (
|
||||
k
|
||||
"#${v.hex}")
|
||||
(lib.filterAttrs (n: _: lib.hasInfix "base" n)
|
||||
cfg.defaultScheme);
|
||||
"#${v.hex}"
|
||||
))
|
||||
(set.filter (n: _: string.hasPrefix "base" n)
|
||||
cfg.defaultScheme));
|
||||
};
|
||||
|
||||
lib.kittywitch.sassTemplate = {
|
||||
|
|
@ -47,7 +48,7 @@ in
|
|||
src,
|
||||
}: let
|
||||
variables = pkgs.writeText "base-variables.sass" ''
|
||||
${(concatStringsSep "\n" (mapAttrsToList (var: con: "\$${var}: ${con}") cfg.sass.variables))}
|
||||
${(string.concatSep "\n" (mapToValues (var: con: "\$${var}: ${con}") cfg.sass.variables))}
|
||||
'';
|
||||
source =
|
||||
pkgs.callPackage
|
||||
|
|
@ -57,7 +58,7 @@ in
|
|||
}:
|
||||
stdenv.mkDerivation {
|
||||
inherit name src variables;
|
||||
nativeBuildInputs = lib.singleton pkgs.sass;
|
||||
nativeBuildInputs = list.singleton pkgs.sass;
|
||||
phases = ["buildPhase"];
|
||||
buildPhase = ''
|
||||
cat $variables $src > src-mut.sass
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
{modulesPath, ...}: {
|
||||
disabledModules = map (x: /. + "${toString modulesPath}/${x}") ["programs/neovim.nix"];
|
||||
disabledModules = map (x: /. + "${toString modulesPath}/${x}") [];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,437 +0,0 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.programs.neovim;
|
||||
|
||||
jsonFormat = pkgs.formats.json {};
|
||||
|
||||
extraPython3PackageType = mkOptionType {
|
||||
name = "extra-python3-packages";
|
||||
description = "python3 packages in python.withPackages format";
|
||||
check = with types; (x:
|
||||
if isFunction x
|
||||
then isList (x pkgs.python3Packages)
|
||||
else false);
|
||||
merge = mergeOneOption;
|
||||
};
|
||||
|
||||
# Currently, upstream Neovim is pinned on Lua 5.1 for LuaJIT support.
|
||||
# This will need to be updated if Neovim ever migrates to a newer
|
||||
# version of Lua.
|
||||
extraLua51PackageType = mkOptionType {
|
||||
name = "extra-lua51-packages";
|
||||
description = "lua5.1 packages in lua5_1.withPackages format";
|
||||
check = with types; (x:
|
||||
if isFunction x
|
||||
then isList (x pkgs.lua51Packages)
|
||||
else false);
|
||||
merge = mergeOneOption;
|
||||
};
|
||||
|
||||
pluginWithConfigType = types.submodule {
|
||||
options = {
|
||||
config = mkOption {
|
||||
type = types.lines;
|
||||
description = "Script to configure this plugin. The scripting language should match type.";
|
||||
default = "";
|
||||
};
|
||||
|
||||
type = mkOption {
|
||||
type =
|
||||
types.either (types.enum ["lua" "viml" "teal" "fennel"]) types.str;
|
||||
description = "Language used in config. Configurations are aggregated per-language.";
|
||||
default = "viml";
|
||||
};
|
||||
|
||||
optional =
|
||||
mkEnableOption "optional"
|
||||
// {
|
||||
description = "Don't load by default (load with :packadd)";
|
||||
};
|
||||
|
||||
plugin = mkOption {
|
||||
type = types.package;
|
||||
description = "vim plugin";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# A function to get the configuration string (if any) from an element of 'plugins'
|
||||
pluginConfig = p:
|
||||
if p ? plugin && (p.config or "") != ""
|
||||
then ''
|
||||
" ${p.plugin.pname or p.plugin.name} {{{
|
||||
${p.config}
|
||||
" }}}
|
||||
''
|
||||
else "";
|
||||
|
||||
allPlugins =
|
||||
cfg.plugins
|
||||
++ optional cfg.coc.enable {
|
||||
type = "viml";
|
||||
plugin = cfg.coc.package;
|
||||
config = cfg.coc.pluginConfig;
|
||||
optional = false;
|
||||
};
|
||||
|
||||
moduleConfigure = {
|
||||
packages.home-manager = {
|
||||
start = remove null (map
|
||||
(x:
|
||||
if x ? plugin && x.optional
|
||||
then null
|
||||
else (x.plugin or x))
|
||||
allPlugins);
|
||||
opt =
|
||||
remove null
|
||||
(map (x:
|
||||
if x ? plugin && x.optional
|
||||
then x.plugin
|
||||
else null)
|
||||
allPlugins);
|
||||
};
|
||||
beforePlugins = "";
|
||||
};
|
||||
|
||||
extraMakeWrapperArgs =
|
||||
lib.optionalString (cfg.extraPackages != [])
|
||||
''--suffix PATH : "${lib.makeBinPath cfg.extraPackages}"'';
|
||||
extraMakeWrapperLuaCArgs = lib.optionalString (cfg.extraLuaPackages != []) ''
|
||||
--suffix LUA_CPATH ";" "${
|
||||
lib.concatMapStringsSep ";" pkgs.lua51Packages.getLuaCPath
|
||||
cfg.extraLuaPackages
|
||||
}"'';
|
||||
extraMakeWrapperLuaArgs = lib.optionalString (cfg.extraLuaPackages != []) ''
|
||||
--suffix LUA_PATH ";" "${
|
||||
lib.concatMapStringsSep ";" pkgs.lua51Packages.getLuaPath
|
||||
cfg.extraLuaPackages
|
||||
}"'';
|
||||
in {
|
||||
imports = [
|
||||
(mkRemovedOptionModule ["programs" "neovim" "withPython"]
|
||||
"Python2 support has been removed from neovim.")
|
||||
(mkRemovedOptionModule ["programs" "neovim" "extraPythonPackages"]
|
||||
"Python2 support has been removed from neovim.")
|
||||
];
|
||||
|
||||
options = {
|
||||
programs.neovim = {
|
||||
enable = mkEnableOption "Neovim";
|
||||
|
||||
viAlias = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Symlink <command>vi</command> to <command>nvim</command> binary.
|
||||
'';
|
||||
};
|
||||
|
||||
vimAlias = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Symlink <command>vim</command> to <command>nvim</command> binary.
|
||||
'';
|
||||
};
|
||||
|
||||
vimdiffAlias = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Alias <command>vimdiff</command> to <command>nvim -d</command>.
|
||||
'';
|
||||
};
|
||||
|
||||
withNodeJs = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Enable node provider. Set to <literal>true</literal> to
|
||||
use Node plugins.
|
||||
'';
|
||||
};
|
||||
|
||||
withRuby = mkOption {
|
||||
type = types.nullOr types.bool;
|
||||
default = true;
|
||||
description = ''
|
||||
Enable ruby provider.
|
||||
'';
|
||||
};
|
||||
|
||||
withPython3 = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = ''
|
||||
Enable Python 3 provider. Set to <literal>true</literal> to
|
||||
use Python 3 plugins.
|
||||
'';
|
||||
};
|
||||
generatedConfigViml = mkOption {
|
||||
type = types.unspecified;
|
||||
visible = true;
|
||||
readOnly = true;
|
||||
description = ''
|
||||
Generated vimscript config.
|
||||
'';
|
||||
};
|
||||
extraPython3Packages = mkOption {
|
||||
type = with types; either extraPython3PackageType (listOf package);
|
||||
default = _: [];
|
||||
defaultText = literalExpression "ps: [ ]";
|
||||
example = literalExpression "(ps: with ps; [ python-language-server ])";
|
||||
description = ''
|
||||
A function in python.withPackages format, which returns a
|
||||
list of Python 3 packages required for your plugins to work.
|
||||
'';
|
||||
};
|
||||
|
||||
extraLuaPackages = mkOption {
|
||||
type = with types; either extraLua51PackageType (listOf package);
|
||||
default = [];
|
||||
defaultText = literalExpression "[ ]";
|
||||
example = literalExpression "(ps: with ps; [ luautf8 ])";
|
||||
description = ''
|
||||
A function in lua5_1.withPackages format, which returns a
|
||||
list of Lua packages required for your plugins to work.
|
||||
'';
|
||||
};
|
||||
|
||||
generatedConfigs = mkOption {
|
||||
type = types.attrsOf types.lines;
|
||||
visible = true;
|
||||
readOnly = true;
|
||||
example = literalExpression ''
|
||||
{
|
||||
viml = '''
|
||||
" Generated by home-manager
|
||||
set packpath^=/nix/store/cn8vvv4ymxjf8cfzg7db15b2838nqqib-vim-pack-dir
|
||||
set runtimepath^=/nix/store/cn8vvv4ymxjf8cfzg7db15b2838nqqib-vim-pack-dir
|
||||
''';
|
||||
|
||||
lua = '''
|
||||
-- Generated by home-manager
|
||||
vim.opt.background = "dark"
|
||||
''';
|
||||
}'';
|
||||
description = ''
|
||||
Generated configurations with as key their language (set via type).
|
||||
'';
|
||||
};
|
||||
|
||||
package = mkOption {
|
||||
type = types.package;
|
||||
default = pkgs.neovim-unwrapped;
|
||||
defaultText = literalExpression "pkgs.neovim-unwrapped";
|
||||
description = "The package to use for the neovim binary.";
|
||||
};
|
||||
|
||||
finalPackage = mkOption {
|
||||
type = types.package;
|
||||
visible = false;
|
||||
readOnly = true;
|
||||
description = "Resulting customized neovim package.";
|
||||
};
|
||||
|
||||
configure = mkOption {
|
||||
type = types.attrsOf types.anything;
|
||||
default = {};
|
||||
example = literalExpression ''
|
||||
configure = {
|
||||
customRC = $''''
|
||||
" here your custom configuration goes!
|
||||
$'''';
|
||||
packages.myVimPackage = with pkgs.vimPlugins; {
|
||||
# loaded on launch
|
||||
start = [ fugitive ];
|
||||
# manually loadable by calling `:packadd $plugin-name`
|
||||
opt = [ ];
|
||||
};
|
||||
};
|
||||
'';
|
||||
description = ''
|
||||
Deprecated. Please use the other options.
|
||||
|
||||
Generate your init file from your list of plugins and custom commands,
|
||||
and loads it from the store via <command>nvim -u /nix/store/hash-vimrc</command>
|
||||
|
||||
</para><para>
|
||||
|
||||
This option is mutually exclusive with <varname>extraConfig</varname>
|
||||
and <varname>plugins</varname>.
|
||||
'';
|
||||
};
|
||||
|
||||
extraConfig = mkOption {
|
||||
type = types.lines;
|
||||
default = "";
|
||||
example = ''
|
||||
set nocompatible
|
||||
set nobackup
|
||||
'';
|
||||
description = ''
|
||||
Custom vimrc lines.
|
||||
|
||||
</para><para>
|
||||
|
||||
This option is mutually exclusive with <varname>configure</varname>.
|
||||
'';
|
||||
};
|
||||
|
||||
extraPackages = mkOption {
|
||||
type = with types; listOf package;
|
||||
default = [];
|
||||
example = literalExpression "[ pkgs.shfmt ]";
|
||||
description = "Extra packages available to nvim.";
|
||||
};
|
||||
|
||||
plugins = mkOption {
|
||||
type = with types; listOf (either package pluginWithConfigType);
|
||||
default = [];
|
||||
example = literalExpression ''
|
||||
with pkgs.vimPlugins; [
|
||||
yankring
|
||||
vim-nix
|
||||
{ plugin = vim-startify;
|
||||
config = "let g:startify_change_to_vcs_root = 0";
|
||||
}
|
||||
]
|
||||
'';
|
||||
description = ''
|
||||
List of vim plugins to install optionally associated with
|
||||
configuration to be placed in init.vim.
|
||||
|
||||
</para><para>
|
||||
|
||||
This option is mutually exclusive with <varname>configure</varname>.
|
||||
'';
|
||||
};
|
||||
|
||||
coc = {
|
||||
enable = mkEnableOption "Coc";
|
||||
|
||||
package = mkOption {
|
||||
type = types.package;
|
||||
default = pkgs.vimPlugins.coc-nvim;
|
||||
defaultText = literalExpression "pkgs.vimPlugins.coc-nvim";
|
||||
description = "The package to use for the CoC plugin.";
|
||||
};
|
||||
|
||||
settings = mkOption {
|
||||
inherit (jsonFormat) type;
|
||||
default = {};
|
||||
example = literalExpression ''
|
||||
{
|
||||
"suggest.noselect" = true;
|
||||
"suggest.enablePreview" = true;
|
||||
"suggest.enablePreselect" = false;
|
||||
"suggest.disableKind" = true;
|
||||
languageserver = {
|
||||
haskell = {
|
||||
command = "haskell-language-server-wrapper";
|
||||
args = [ "--lsp" ];
|
||||
rootPatterns = [
|
||||
"*.cabal"
|
||||
"stack.yaml"
|
||||
"cabal.project"
|
||||
"package.yaml"
|
||||
"hie.yaml"
|
||||
];
|
||||
filetypes = [ "haskell" "lhaskell" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
'';
|
||||
description = ''
|
||||
Extra configuration lines to add to
|
||||
<filename>$XDG_CONFIG_HOME/nvim/coc-settings.json</filename>
|
||||
See
|
||||
<link xlink:href="https://github.com/neoclide/coc.nvim/wiki/Using-the-configuration-file" />
|
||||
for options.
|
||||
'';
|
||||
};
|
||||
|
||||
pluginConfig = mkOption {
|
||||
type = types.lines;
|
||||
default = "";
|
||||
description = "Script to configure CoC. Must be viml.";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = let
|
||||
# transform all plugins into an attrset
|
||||
pluginsNormalized = map (x:
|
||||
if (x ? plugin)
|
||||
then x
|
||||
else {
|
||||
type = x.type or "viml";
|
||||
plugin = x;
|
||||
config = "";
|
||||
optional = false;
|
||||
})
|
||||
allPlugins;
|
||||
suppressNotVimlConfig = p:
|
||||
if p.type != "viml"
|
||||
then p // {config = "";}
|
||||
else p;
|
||||
|
||||
neovimConfig = pkgs.neovimUtils.makeNeovimConfig {
|
||||
inherit (cfg) extraPython3Packages withPython3 withRuby viAlias vimAlias;
|
||||
withNodeJs = cfg.withNodeJs || cfg.coc.enable;
|
||||
configure = cfg.configure // moduleConfigure;
|
||||
plugins = map suppressNotVimlConfig pluginsNormalized;
|
||||
customRC = cfg.extraConfig;
|
||||
};
|
||||
in
|
||||
mkIf cfg.enable {
|
||||
warnings = optional (cfg.configure != {}) ''
|
||||
programs.neovim.configure is deprecated.
|
||||
Other programs.neovim options can override its settings or ignore them.
|
||||
Please use the other options at your disposal:
|
||||
configure.packages.*.opt -> programs.neovim.plugins = [ { plugin = ...; optional = true; }]
|
||||
configure.packages.*.start -> programs.neovim.plugins = [ { plugin = ...; }]
|
||||
configure.customRC -> programs.neovim.extraConfig
|
||||
'';
|
||||
programs.neovim.generatedConfigViml = neovimConfig;
|
||||
programs.neovim.generatedConfigs = let
|
||||
grouped = builtins.groupBy (x: x.type) pluginsNormalized;
|
||||
concatConfigs = lib.concatMapStrings (p: p.config);
|
||||
in
|
||||
mapAttrs (_: concatConfigs) grouped;
|
||||
|
||||
home.packages = [cfg.finalPackage];
|
||||
|
||||
xdg.configFile."nvim/lua/init-home-manager.lua" = mkIf (hasAttr "lua" config.programs.neovim.generatedConfigs) {
|
||||
text = config.programs.neovim.generatedConfigs.lua;
|
||||
};
|
||||
xdg.configFile."nvim/coc-settings.json" = mkIf cfg.coc.enable {
|
||||
source = jsonFormat.generate "coc-settings.json" cfg.coc.settings;
|
||||
};
|
||||
|
||||
programs.neovim.finalPackage =
|
||||
pkgs.wrapNeovimUnstable cfg.package
|
||||
(neovimConfig
|
||||
// {
|
||||
wrapperArgs =
|
||||
(lib.escapeShellArgs neovimConfig.wrapperArgs)
|
||||
+ " "
|
||||
+ extraMakeWrapperArgs
|
||||
+ " "
|
||||
+ extraMakeWrapperLuaCArgs
|
||||
+ " "
|
||||
+ extraMakeWrapperLuaArgs;
|
||||
wrapRc = false;
|
||||
});
|
||||
|
||||
programs.bash.shellAliases = mkIf cfg.vimdiffAlias {vimdiff = "nvim -d";};
|
||||
programs.fish.shellAliases = mkIf cfg.vimdiffAlias {vimdiff = "nvim -d";};
|
||||
programs.zsh.shellAliases = mkIf cfg.vimdiffAlias {vimdiff = "nvim -d";};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,15 +1,13 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
std,
|
||||
...
|
||||
}: let
|
||||
# TODO: solve lib usage
|
||||
inherit (lib.lists) concatLists elem;
|
||||
inherit (lib.attrsets) mapAttrsToList;
|
||||
inherit (std) list set;
|
||||
commonUser = {
|
||||
openssh.authorizedKeys.keys = concatLists (mapAttrsToList
|
||||
openssh.authorizedKeys.keys = list.concat (set.mapToValues
|
||||
(_: user:
|
||||
if elem "wheel" user.extraGroups
|
||||
if list.elem "wheel" user.extraGroups
|
||||
then user.openssh.authorizedKeys.keys
|
||||
else [])
|
||||
config.users.users);
|
||||
|
|
|
|||
|
|
@ -1,15 +1,5 @@
|
|||
{config, ...}: let
|
||||
fqdn = "${config.networking.hostName}.${config.networking.domain}";
|
||||
clientConfig = {
|
||||
"m.homeserver".base_url = "https://${fqdn}";
|
||||
"m.identity_server".base_url = "https://vector.im";
|
||||
};
|
||||
serverConfig."m.server" = "${fqdn}:443";
|
||||
mkWellKnown = data: ''
|
||||
add_header Content-Type application/json;
|
||||
add_header Access-Control-Allow-Origin *;
|
||||
return 200 '${builtins.toJSON data}';
|
||||
'';
|
||||
in {
|
||||
services.nginx = {
|
||||
virtualHosts = {
|
||||
|
|
|
|||
|
|
@ -4,10 +4,11 @@
|
|||
prev,
|
||||
...
|
||||
}: let
|
||||
inherit (lib.modules) mkForce;
|
||||
start = prev.config.systemd.services.matrix-synapse.serviceConfig.ExecStart;
|
||||
synapse_cfgfile = builtins.head (builtins.match "^.*--config-path ([^\ ]*).*$" "${start}");
|
||||
in {
|
||||
systemd.services.matrix-synapse.serviceConfig.ExecStart = lib.mkForce (
|
||||
systemd.services.matrix-synapse.serviceConfig.ExecStart = mkForce (
|
||||
builtins.replaceStrings ["${synapse_cfgfile}"] ["${config.scalpel.trafos."homeserver.yaml".destination} "] "${start}"
|
||||
);
|
||||
scalpel.trafos."homeserver.yaml" = {
|
||||
|
|
|
|||
|
|
@ -15,14 +15,14 @@ in {
|
|||
rc_messages_per_second = mkDefault 0.1;
|
||||
rc_message_burst_count = mkDefault 25;
|
||||
public_baseurl = "https://${fqdn}";
|
||||
url_preview_enabled = mkDefault true;
|
||||
enable_registration = mkDefault false;
|
||||
enable_metrics = mkDefault true;
|
||||
report_stats = mkDefault false;
|
||||
dynamic_thumbnails = mkDefault true;
|
||||
url_preview_enabled = true;
|
||||
enable_registration = false;
|
||||
enable_metrics = true;
|
||||
report_stats = false;
|
||||
dynamic_thumbnails = true;
|
||||
registration_shared_secret = "!!MATRIX_SHARED_REGISTRATION_SECRET!!";
|
||||
allow_guest_access = mkDefault true;
|
||||
suppress_key_server_warning = mkDefault true;
|
||||
allow_guest_access = true;
|
||||
suppress_key_server_warning = true;
|
||||
listeners = [
|
||||
{
|
||||
port = 8009;
|
||||
|
|
|
|||
|
|
@ -5,10 +5,11 @@
|
|||
...
|
||||
}: let
|
||||
inherit (lib.strings) addContextFrom;
|
||||
inherit (lib.modules) mkForce;
|
||||
start = prev.config.systemd.services.telegraf.serviceConfig.ExecStart;
|
||||
telegraf_cfgfile = builtins.head (builtins.match "^.*-config ([^\ ]*).*$" "${start}");
|
||||
in {
|
||||
systemd.services.telegraf.serviceConfig.ExecStart = lib.mkForce (
|
||||
systemd.services.telegraf.serviceConfig.ExecStart = mkForce (
|
||||
builtins.replaceStrings ["${telegraf_cfgfile}"] ["${config.scalpel.trafos."config.toml".destination} "] "${start}"
|
||||
);
|
||||
scalpel.trafos."config.toml" = {
|
||||
|
|
|
|||
|
|
@ -1,10 +1,4 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; {
|
||||
_: {
|
||||
users.users.vaultwarden.name = "bitwarden_rs";
|
||||
users.groups.vaultwarden.name = "bitwarden_rs";
|
||||
|
||||
|
|
|
|||
|
|
@ -3,10 +3,10 @@ _: let
|
|||
tree,
|
||||
pkgs,
|
||||
inputs,
|
||||
lib,
|
||||
std,
|
||||
...
|
||||
}: let
|
||||
inherit (lib.strings) concatStringsSep;
|
||||
inherit (std) string;
|
||||
in {
|
||||
imports = with tree; [
|
||||
kat.work
|
||||
|
|
@ -65,7 +65,7 @@ _: let
|
|||
|
||||
home-manager.users.kat = {
|
||||
home.file.".orbstack/ssh/authorized_keys".text =
|
||||
(concatStringsSep "\n" tree.kat.user.data.keys)
|
||||
(string.concatSep "\n" tree.kat.user.data.keys)
|
||||
+ ''
|
||||
|
||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILW2V8yL2vC/KDmIQdxhEeevKo1vGG18bvMNj9mLL/On
|
||||
|
|
|
|||
|
|
@ -4,7 +4,9 @@ _: let
|
|||
tree,
|
||||
modulesPath,
|
||||
...
|
||||
}: {
|
||||
}: let
|
||||
inherit (lib.modules) mkDefault;
|
||||
in {
|
||||
imports =
|
||||
[
|
||||
(modulesPath + "/profiles/qemu-guest.nix")
|
||||
|
|
@ -44,7 +46,7 @@ _: let
|
|||
domain = "gensokyo.zone";
|
||||
interfaces = {
|
||||
enp1s0 = {
|
||||
useDHCP = lib.mkDefault true;
|
||||
useDHCP = mkDefault true;
|
||||
ipv6.addresses = [
|
||||
{
|
||||
address = "2a01:4ff:1f0:e7bb::1";
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue