Compare commits
4 Commits
009e6d5e26
...
da77940640
| Author | SHA1 | Date | |
|---|---|---|---|
| da77940640 | |||
| a6af65c9bc | |||
| c9beea225e | |||
| 65aee791c7 |
@ -3,10 +3,5 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
# I am currently not using any custom derivations.
|
# Obsolete derivations are kept in "1_deprecated" for reference.
|
||||||
# Old derivations are still kept in this folder, for reference.
|
|
||||||
|
|
||||||
# modules-options-doc = pkgs.callPackage ./modules-options-doc {mylib = mylib;};
|
|
||||||
# xdg-desktop-portal-termfilechooser = pkgs.callPackage ./xdg-desktop-portal-termfilechooser {};
|
|
||||||
# decker = pkgs.callPackage ./decker {};
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -46,6 +46,9 @@
|
|||||||
inherit system;
|
inherit system;
|
||||||
|
|
||||||
config.allowUnfree = true;
|
config.allowUnfree = true;
|
||||||
|
|
||||||
|
# Alternative to setting config.allowUnfree.
|
||||||
|
# I read somewhere that this is more suitable when running HM standalone.
|
||||||
config.allowUnfreePredicate = pkg: true;
|
config.allowUnfreePredicate = pkg: true;
|
||||||
|
|
||||||
# Overlays define changes in the nixpkgs package set.
|
# Overlays define changes in the nixpkgs package set.
|
||||||
|
|||||||
@ -5,5 +5,5 @@
|
|||||||
}:
|
}:
|
||||||
with lib;
|
with lib;
|
||||||
with mylib.modules; {
|
with mylib.modules; {
|
||||||
enable = mkEnableOpt "TEMPLATE";
|
enable = mkEnableOption "TEMPLATE";
|
||||||
}
|
}
|
||||||
|
|||||||
@ -5,5 +5,5 @@
|
|||||||
}:
|
}:
|
||||||
with lib;
|
with lib;
|
||||||
with mylib.modules; {
|
with mylib.modules; {
|
||||||
enable = mkEnableOpt "Enable Alacritty";
|
enable = mkEnableOption "Enable Alacritty";
|
||||||
}
|
}
|
||||||
48
home/modules/1_deprecated/audio/options.nix
Normal file
48
home/modules/1_deprecated/audio/options.nix
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
{
|
||||||
|
lib,
|
||||||
|
mylib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib;
|
||||||
|
with mylib.modules; {
|
||||||
|
enable = mkEnableOption "Audio module";
|
||||||
|
|
||||||
|
# TODO: Group these in categories (like instruments/VSTs or sth)
|
||||||
|
# TODO: Make it easier to add many yes/no options, similar to the flatpak stuff
|
||||||
|
|
||||||
|
# Hosts/Editing
|
||||||
|
carla.enable = mkEnableOption "Carla (VST host)";
|
||||||
|
bitwig.enable = mkEnableOption "Bitwig (Digital audio workstation)";
|
||||||
|
tenacity.enable = mkEnableOption "Tenacity (Audacity fork)";
|
||||||
|
|
||||||
|
# Instruments/Plugins
|
||||||
|
# vcvrack.enable = mkEnableOption "VCV-Rack (Eurorack simulator)"; # Replaced by cardinal
|
||||||
|
cardinal.enable = mkEnableOption "Open Source VCV-Rack plugin wrapper";
|
||||||
|
# vital.enable = mkEnableOption "Vital (Wavetable synthesizer)"; # Replaced by distrho
|
||||||
|
distrho.enable = mkEnableOption "Distrho (Linux VST ports)";
|
||||||
|
|
||||||
|
# Misc
|
||||||
|
faust.enable = mkEnableOption "Faust (functional DSP language)";
|
||||||
|
bottles.enable = mkEnableOption "Bottles (flatpak)";
|
||||||
|
|
||||||
|
# TODO: Automatically add the needed paths, depends on the bottle though
|
||||||
|
# /home/christoph/.var/app/com.usebottles.bottles/data/bottles/bottles/Audio/drive_c/Program Files/Common Files/VST3
|
||||||
|
# /home/christoph/.var/app/com.usebottles.bottles/data/bottles/bottles/Audio/drive_c/Program Files/VstPlugins
|
||||||
|
yabridge = {
|
||||||
|
enable = mkEnableOption "Yabridge (Windows VST plugin manager)";
|
||||||
|
autoSync = mkBoolOption false "Sync yabridge plugins on nixos-rebuild";
|
||||||
|
};
|
||||||
|
|
||||||
|
noisesuppression = {
|
||||||
|
noisetorch = {
|
||||||
|
enable = mkEnableOption "Noisetorch";
|
||||||
|
autostart = mkBoolOption false "Autoload Noisetorch suppression";
|
||||||
|
};
|
||||||
|
|
||||||
|
# TODO: Store easyeffects presets/config (dconf com/github/wwmm/easyeffects ?)
|
||||||
|
easyeffects = {
|
||||||
|
enable = mkEnableOption "EasyEffects";
|
||||||
|
autostart = mkBoolOption false "Autoload EasyEffects suppression profile";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
20
home/modules/1_deprecated/emacs/options.nix
Normal file
20
home/modules/1_deprecated/emacs/options.nix
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
lib,
|
||||||
|
mylib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib;
|
||||||
|
with mylib.modules; {
|
||||||
|
enable = mkEnableOption "Emacs module";
|
||||||
|
|
||||||
|
# TODO: Use an enum for this not individual options
|
||||||
|
nixpkgs = mkBoolOption false "Use Emacs from the official repositories";
|
||||||
|
nativeComp = mkBoolOption false "Use Emacs 28.x branch with native comp support";
|
||||||
|
pgtkNativeComp = mkBoolOption false "Use Emacs 29.x branch with native comp and pure gtk support";
|
||||||
|
|
||||||
|
doom = {
|
||||||
|
enable = mkEnableOption "Doom Emacs framework";
|
||||||
|
autoSync = mkBoolOption false "Sync Doom Emacs on nixos-rebuild";
|
||||||
|
autoUpgrade = mkBoolOption false "Upgrade Doom Emacs on nixos-rebuild";
|
||||||
|
};
|
||||||
|
}
|
||||||
16
home/modules/1_deprecated/email/options.nix
Normal file
16
home/modules/1_deprecated/email/options.nix
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
lib,
|
||||||
|
mylib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib;
|
||||||
|
with mylib.modules; {
|
||||||
|
enable = mkEnableOption "Email";
|
||||||
|
autosync = mkEnableOption "Automatically call \"notmuch new\" via systemd timer";
|
||||||
|
imapnotify = mkEnableOption "Use imapnotify to sync and index mail automatically";
|
||||||
|
|
||||||
|
kmail = {
|
||||||
|
enable = mkEnableOption "Kmail";
|
||||||
|
autostart = mkEnableOption "Autostart Kmail";
|
||||||
|
};
|
||||||
|
}
|
||||||
@ -5,22 +5,22 @@
|
|||||||
}:
|
}:
|
||||||
with lib;
|
with lib;
|
||||||
with mylib.modules; {
|
with mylib.modules; {
|
||||||
enable = mkEnableOpt "Flatpak module";
|
enable = mkEnableOption "Flatpak module";
|
||||||
fontFix = mkBoolOpt true "Link fonts to ~/.local/share/fonts so flatpak apps can find them";
|
fontFix = mkBoolOption true "Link fonts to ~/.local/share/fonts so flatpak apps can find them";
|
||||||
iconFix = mkBoolOpt true "Link icons to ~/.local/share/icons so flatpak apps can find them";
|
iconFix = mkBoolOption true "Link icons to ~/.local/share/icons so flatpak apps can find them";
|
||||||
autoUpdate = mkBoolOpt false "Update flatpak apps on nixos-rebuild";
|
autoUpdate = mkBoolOption false "Update flatpak apps on nixos-rebuild";
|
||||||
autoPrune = mkBoolOpt false "Remove unused packages on nixos-rebuild";
|
autoPrune = mkBoolOption false "Remove unused packages on nixos-rebuild";
|
||||||
|
|
||||||
# TODO: Add library function to make this easier
|
# TODO: Add library function to make this easier
|
||||||
# TODO: The flatpak name should be included and a list of all enabled apps should be available
|
# TODO: The flatpak name should be included and a list of all enabled apps should be available
|
||||||
# TODO: Do this for strings + packages
|
# TODO: Do this for strings + packages
|
||||||
discord.enable = mkEnableOpt "Discord";
|
discord.enable = mkEnableOption "Discord";
|
||||||
spotify.enable = mkEnableOpt "Spotify";
|
spotify.enable = mkEnableOption "Spotify";
|
||||||
flatseal.enable = mkEnableOpt "Flatseal";
|
flatseal.enable = mkEnableOption "Flatseal";
|
||||||
bottles.enable = mkEnableOpt "Bottles";
|
bottles.enable = mkEnableOption "Bottles";
|
||||||
obsidian.enable = mkEnableOpt "Obsidian";
|
obsidian.enable = mkEnableOption "Obsidian";
|
||||||
jabref.enable = mkEnableOpt "Jabref";
|
jabref.enable = mkEnableOption "Jabref";
|
||||||
# xwaylandvideobridge = mkEnableOpt "XWayland Video Bridge"; # TODO
|
# xwaylandvideobridge = mkEnableOption "XWayland Video Bridge"; # TODO
|
||||||
|
|
||||||
# TODO: Can I use extraInstall = { "com.valve.Steam" = true/false; } and pass the module option as value?
|
# TODO: Can I use extraInstall = { "com.valve.Steam" = true/false; } and pass the module option as value?
|
||||||
# This is mainly used by other modules to allow them to use flatpak packages
|
# This is mainly used by other modules to allow them to use flatpak packages
|
||||||
23
home/modules/1_deprecated/gaming/options.nix
Normal file
23
home/modules/1_deprecated/gaming/options.nix
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
{
|
||||||
|
lib,
|
||||||
|
mylib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib;
|
||||||
|
with mylib.modules; {
|
||||||
|
enable = mkEnableOption "Gaming module";
|
||||||
|
|
||||||
|
# discordElectron.enable = mkEnableOption "Discord (Electron) (nixpkgs)";
|
||||||
|
# discordChromium.enable = mkEnableOption "Discord (Chromium)";
|
||||||
|
prism.enable = mkEnableOption "PrismLauncher for Minecraft (flatpak)";
|
||||||
|
bottles.enable = mkEnableOption "Bottles (flatpak)";
|
||||||
|
# dwarffortress.enable = mkEnableOption "Dwarf Fortress";
|
||||||
|
cemu.enable = mkEnableOption "Cemu (nixpkgs)";
|
||||||
|
|
||||||
|
steam = {
|
||||||
|
enable = mkEnableOption "Steam (flatpak)";
|
||||||
|
gamescope = mkBoolOption false "Enable the gamescope micro compositor (flatpak)";
|
||||||
|
adwaita = mkBoolOption false "Enable the adwaita-for-steam skin";
|
||||||
|
protonup = mkBoolOption false "Enable ProtonUP-QT";
|
||||||
|
};
|
||||||
|
}
|
||||||
@ -5,5 +5,5 @@
|
|||||||
}:
|
}:
|
||||||
with lib;
|
with lib;
|
||||||
with mylib.modules; {
|
with mylib.modules; {
|
||||||
enable = mkEnableOpt "Helix Editor";
|
enable = mkEnableOption "Helix Editor";
|
||||||
}
|
}
|
||||||
19
home/modules/1_deprecated/misc/options.nix
Normal file
19
home/modules/1_deprecated/misc/options.nix
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
lib,
|
||||||
|
mylib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib;
|
||||||
|
with mylib.modules; {
|
||||||
|
enable = mkEnableOption "Misc module";
|
||||||
|
|
||||||
|
keepass = {
|
||||||
|
enable = mkEnableOption "KeePassXC";
|
||||||
|
autostart = mkBoolOption false "Autostart KeePassXC";
|
||||||
|
};
|
||||||
|
|
||||||
|
protonmail = {
|
||||||
|
enable = mkEnableOption "ProtonMail";
|
||||||
|
autostart = mkBoolOption false "Autostart ProtonMail Bridge";
|
||||||
|
};
|
||||||
|
}
|
||||||
10
home/modules/1_deprecated/nextcloud/options.nix
Normal file
10
home/modules/1_deprecated/nextcloud/options.nix
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
lib,
|
||||||
|
mylib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib;
|
||||||
|
with mylib.modules; {
|
||||||
|
enable = mkEnableOption "Nextcloud Client";
|
||||||
|
autostart = mkBoolOption false "Autostart the Nextcloud client (systemd)";
|
||||||
|
}
|
||||||
10
home/modules/1_deprecated/ranger/options.nix
Normal file
10
home/modules/1_deprecated/ranger/options.nix
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
lib,
|
||||||
|
mylib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib;
|
||||||
|
with mylib.modules; {
|
||||||
|
enable = mkEnableOption "Ranger";
|
||||||
|
preview = mkBoolOption false "Enable Ranger image preview";
|
||||||
|
}
|
||||||
@ -5,5 +5,5 @@
|
|||||||
}:
|
}:
|
||||||
with lib;
|
with lib;
|
||||||
with mylib.modules; {
|
with mylib.modules; {
|
||||||
enable = mkEnableOpt "Visual Studio Code";
|
enable = mkEnableOption "Visual Studio Code";
|
||||||
}
|
}
|
||||||
@ -1,48 +0,0 @@
|
|||||||
{
|
|
||||||
lib,
|
|
||||||
mylib,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
with lib;
|
|
||||||
with mylib.modules; {
|
|
||||||
enable = mkEnableOpt "Audio module";
|
|
||||||
|
|
||||||
# TODO: Group these in categories (like instruments/VSTs or sth)
|
|
||||||
# TODO: Make it easier to add many yes/no options, similar to the flatpak stuff
|
|
||||||
|
|
||||||
# Hosts/Editing
|
|
||||||
carla.enable = mkEnableOpt "Carla (VST host)";
|
|
||||||
bitwig.enable = mkEnableOpt "Bitwig (Digital audio workstation)";
|
|
||||||
tenacity.enable = mkEnableOpt "Tenacity (Audacity fork)";
|
|
||||||
|
|
||||||
# Instruments/Plugins
|
|
||||||
# vcvrack.enable = mkEnableOpt "VCV-Rack (Eurorack simulator)"; # Replaced by cardinal
|
|
||||||
cardinal.enable = mkEnableOpt "Open Source VCV-Rack plugin wrapper";
|
|
||||||
# vital.enable = mkEnableOpt "Vital (Wavetable synthesizer)"; # Replaced by distrho
|
|
||||||
distrho.enable = mkEnableOpt "Distrho (Linux VST ports)";
|
|
||||||
|
|
||||||
# Misc
|
|
||||||
faust.enable = mkEnableOpt "Faust (functional DSP language)";
|
|
||||||
bottles.enable = mkEnableOpt "Bottles (flatpak)";
|
|
||||||
|
|
||||||
# TODO: Automatically add the needed paths, depends on the bottle though
|
|
||||||
# /home/christoph/.var/app/com.usebottles.bottles/data/bottles/bottles/Audio/drive_c/Program Files/Common Files/VST3
|
|
||||||
# /home/christoph/.var/app/com.usebottles.bottles/data/bottles/bottles/Audio/drive_c/Program Files/VstPlugins
|
|
||||||
yabridge = {
|
|
||||||
enable = mkEnableOpt "Yabridge (Windows VST plugin manager)";
|
|
||||||
autoSync = mkBoolOpt false "Sync yabridge plugins on nixos-rebuild";
|
|
||||||
};
|
|
||||||
|
|
||||||
noisesuppression = {
|
|
||||||
noisetorch = {
|
|
||||||
enable = mkEnableOpt "Noisetorch";
|
|
||||||
autostart = mkBoolOpt false "Autoload Noisetorch suppression";
|
|
||||||
};
|
|
||||||
|
|
||||||
# TODO: Store easyeffects presets/config (dconf com/github/wwmm/easyeffects ?)
|
|
||||||
easyeffects = {
|
|
||||||
enable = mkEnableOpt "EasyEffects";
|
|
||||||
autostart = mkBoolOpt false "Autoload EasyEffects suppression profile";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@ -5,6 +5,6 @@
|
|||||||
}:
|
}:
|
||||||
with lib;
|
with lib;
|
||||||
with mylib.modules; {
|
with mylib.modules; {
|
||||||
enable = mkEnableOpt "Chromium";
|
enable = mkEnableOption "Chromium";
|
||||||
google = mkEnableOpt "Google Chrome";
|
google = mkEnableOption "Google Chrome";
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,17 +1,6 @@
|
|||||||
{inputs, ...}: {
|
{inputs, ...}: {
|
||||||
imports = [
|
imports = [
|
||||||
# Obsolete modules are kept in this folder for reference.
|
# Obsolete modules are kept in "1_deprecated" for reference.
|
||||||
# ./alacritty
|
|
||||||
# ./audio
|
|
||||||
# ./emacs
|
|
||||||
# ./email
|
|
||||||
# ./flatpak
|
|
||||||
# ./helix
|
|
||||||
# ./gaming
|
|
||||||
# ./misc
|
|
||||||
# ./nextcloud
|
|
||||||
# ./ranger
|
|
||||||
# ./vscode
|
|
||||||
|
|
||||||
# My own HM modules
|
# My own HM modules
|
||||||
./chromium
|
./chromium
|
||||||
|
|||||||
@ -1,20 +0,0 @@
|
|||||||
{
|
|
||||||
lib,
|
|
||||||
mylib,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
with lib;
|
|
||||||
with mylib.modules; {
|
|
||||||
enable = mkEnableOpt "Emacs module";
|
|
||||||
|
|
||||||
# TODO: Use an enum for this not individual options
|
|
||||||
nixpkgs = mkBoolOpt false "Use Emacs from the official repositories";
|
|
||||||
nativeComp = mkBoolOpt false "Use Emacs 28.x branch with native comp support";
|
|
||||||
pgtkNativeComp = mkBoolOpt false "Use Emacs 29.x branch with native comp and pure gtk support";
|
|
||||||
|
|
||||||
doom = {
|
|
||||||
enable = mkEnableOpt "Doom Emacs framework";
|
|
||||||
autoSync = mkBoolOpt false "Sync Doom Emacs on nixos-rebuild";
|
|
||||||
autoUpgrade = mkBoolOpt false "Upgrade Doom Emacs on nixos-rebuild";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@ -1,16 +0,0 @@
|
|||||||
{
|
|
||||||
lib,
|
|
||||||
mylib,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
with lib;
|
|
||||||
with mylib.modules; {
|
|
||||||
enable = mkEnableOpt "Email";
|
|
||||||
autosync = mkEnableOpt "Automatically call \"notmuch new\" via systemd timer";
|
|
||||||
imapnotify = mkEnableOpt "Use imapnotify to sync and index mail automatically";
|
|
||||||
|
|
||||||
kmail = {
|
|
||||||
enable = mkEnableOpt "Kmail";
|
|
||||||
autostart = mkEnableOpt "Autostart Kmail";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@ -5,10 +5,10 @@
|
|||||||
}:
|
}:
|
||||||
with lib;
|
with lib;
|
||||||
with mylib.modules; {
|
with mylib.modules; {
|
||||||
enable = mkEnableOpt "Firefox";
|
enable = mkEnableOption "Firefox";
|
||||||
wayland = mkBoolOpt false "Enable firefox wayland support";
|
wayland = mkBoolOption false "Enable firefox wayland support";
|
||||||
vaapi = mkBoolOpt false "Enable firefox vaapi support";
|
vaapi = mkBoolOption false "Enable firefox vaapi support";
|
||||||
disableTabBar = mkBoolOpt false "Disable the firefox tab bar (for TST)";
|
disableTabBar = mkBoolOption false "Disable the firefox tab bar (for TST)";
|
||||||
defaultBookmarks = mkBoolOpt false "Preset standard bookmarks and folders";
|
defaultBookmarks = mkBoolOption false "Preset standard bookmarks and folders";
|
||||||
gnomeTheme = mkBoolOpt false "Use Firefox gnome theme (rafaelmardojai)";
|
gnomeTheme = mkBoolOption false "Use Firefox gnome theme (rafaelmardojai)";
|
||||||
}
|
}
|
||||||
|
|||||||
@ -5,5 +5,5 @@
|
|||||||
}:
|
}:
|
||||||
with lib;
|
with lib;
|
||||||
with mylib.modules; {
|
with mylib.modules; {
|
||||||
enable = mkEnableOpt "Fish";
|
enable = mkEnableOption "Fish";
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,23 +0,0 @@
|
|||||||
{
|
|
||||||
lib,
|
|
||||||
mylib,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
with lib;
|
|
||||||
with mylib.modules; {
|
|
||||||
enable = mkEnableOpt "Gaming module";
|
|
||||||
|
|
||||||
# discordElectron.enable = mkEnableOpt "Discord (Electron) (nixpkgs)";
|
|
||||||
# discordChromium.enable = mkEnableOpt "Discord (Chromium)";
|
|
||||||
prism.enable = mkEnableOpt "PrismLauncher for Minecraft (flatpak)";
|
|
||||||
bottles.enable = mkEnableOpt "Bottles (flatpak)";
|
|
||||||
# dwarffortress.enable = mkEnableOpt "Dwarf Fortress";
|
|
||||||
cemu.enable = mkEnableOpt "Cemu (nixpkgs)";
|
|
||||||
|
|
||||||
steam = {
|
|
||||||
enable = mkEnableOpt "Steam (flatpak)";
|
|
||||||
gamescope = mkBoolOpt false "Enable the gamescope micro compositor (flatpak)";
|
|
||||||
adwaita = mkBoolOpt false "Enable the adwaita-for-steam skin";
|
|
||||||
protonup = mkBoolOpt false "Enable ProtonUP-QT";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@ -1,5 +1,6 @@
|
|||||||
|
# TODO: Use the home-manager module instead of generating my own scuffed config files
|
||||||
|
#
|
||||||
# TODO: The keys to reset the workspaces need to depend on actual workspace config
|
# TODO: The keys to reset the workspaces need to depend on actual workspace config
|
||||||
# TODO: Many of the text file generations can be made simpler with pipe and concatLines functions...
|
|
||||||
# TODO: The border color does not fit the current theme
|
# TODO: The border color does not fit the current theme
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
@ -39,7 +40,6 @@ in {
|
|||||||
};
|
};
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
# TODO: Make a module out of this
|
|
||||||
# Notification service
|
# Notification service
|
||||||
dunst = {
|
dunst = {
|
||||||
enable = true;
|
enable = true;
|
||||||
@ -78,14 +78,11 @@ in {
|
|||||||
};
|
};
|
||||||
|
|
||||||
home = {
|
home = {
|
||||||
# TODO: catppuccin-cursors
|
|
||||||
pointerCursor = {
|
pointerCursor = {
|
||||||
gtk.enable = true;
|
gtk.enable = true;
|
||||||
x11.enable = true;
|
x11.enable = true;
|
||||||
package = pkgs.bibata-cursors;
|
package = pkgs.bibata-cursors;
|
||||||
name = "Bibata-Modern-Classic";
|
name = "Bibata-Modern-Classic";
|
||||||
# package = pkgs.catppuccin-cursors.latteMauve;
|
|
||||||
# name = "Catppuccin-Latte-Mauve-Cursors";
|
|
||||||
size = 16;
|
size = 16;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -118,13 +115,22 @@ in {
|
|||||||
#
|
#
|
||||||
|
|
||||||
file = {
|
file = {
|
||||||
# Polkit
|
# Link the main Hyprland configuration file.
|
||||||
|
# This file imports all the other generated files.
|
||||||
|
# TODO: Generate this, so only existing files are imported.
|
||||||
|
".config/hypr/hyprland.conf".source = ../../../config/hyprland/hyprland.conf;
|
||||||
|
|
||||||
|
# Provide a polkit authentication UI.
|
||||||
|
# This is used for example when running systemd commands without root.
|
||||||
".config/hypr/polkit.conf".text = ''
|
".config/hypr/polkit.conf".text = ''
|
||||||
exec-once = ${pkgs.libsForQt5.polkit-kde-agent}/libexec/polkit-kde-authentication-agent-1
|
exec-once = ${pkgs.kdePackages.polkit-kde-agent-1}/libexec/polkit-kde-authentication-agent-1
|
||||||
'';
|
'';
|
||||||
|
|
||||||
# Monitors for different systems
|
# Configure different monitors.
|
||||||
".config/hypr/monitors.conf".text = let
|
".config/hypr/monitors.conf".text = let
|
||||||
|
# This function is mapped to the "cfg.monitors" attrSet.
|
||||||
|
# For each key-value entry in "cfg.monitors",
|
||||||
|
# the key will be assigned to "name" and the value to "conf".
|
||||||
mkMonitor = name: conf: "monitor = ${name}, ${toString conf.width}x${toString conf.height}@${toString conf.rate}, ${toString conf.x}x${toString conf.y}, ${toString conf.scale}";
|
mkMonitor = name: conf: "monitor = ${name}, ${toString conf.width}x${toString conf.height}@${toString conf.rate}, ${toString conf.x}x${toString conf.y}, ${toString conf.scale}";
|
||||||
in
|
in
|
||||||
lib.pipe cfg.monitors [
|
lib.pipe cfg.monitors [
|
||||||
@ -133,7 +139,7 @@ in {
|
|||||||
(builtins.concatStringsSep "\n")
|
(builtins.concatStringsSep "\n")
|
||||||
];
|
];
|
||||||
|
|
||||||
# Bind workspaces to monitors
|
# Configure how workspaces are mapped to monitors.
|
||||||
".config/hypr/workspaces.conf".text = let
|
".config/hypr/workspaces.conf".text = let
|
||||||
mkWorkspace = monitor: workspace: "workspace = ${toString workspace}, monitor:${toString monitor}";
|
mkWorkspace = monitor: workspace: "workspace = ${toString workspace}, monitor:${toString monitor}";
|
||||||
mkWorkspaces = monitor: workspace-list: map (mkWorkspace monitor) workspace-list;
|
mkWorkspaces = monitor: workspace-list: map (mkWorkspace monitor) workspace-list;
|
||||||
@ -259,14 +265,6 @@ in {
|
|||||||
}
|
}
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
activation = {
|
|
||||||
# TODO: Don't symlink at all, why not just tell Hyprland where the config is? Much easier
|
|
||||||
# NOTE: Keep the hyprland config symlinked, to allow easy changes with hotreload
|
|
||||||
linkHyprlandConfig =
|
|
||||||
lib.hm.dag.entryAfter ["writeBoundary"]
|
|
||||||
(mylib.modules.mkLink "~/NixFlake/config/hyprland/hyprland.conf" "~/.config/hypr/hyprland.conf");
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@ -5,7 +5,7 @@
|
|||||||
}:
|
}:
|
||||||
with lib;
|
with lib;
|
||||||
with mylib.modules; {
|
with mylib.modules; {
|
||||||
enable = mkEnableOpt "Hyprland Window Manager + Compositor";
|
enable = mkEnableOption "Hyprland Window Manager + Compositor";
|
||||||
|
|
||||||
kb-layout = mkOption {
|
kb-layout = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
|
|||||||
@ -5,5 +5,5 @@
|
|||||||
}:
|
}:
|
||||||
with lib;
|
with lib;
|
||||||
with mylib.modules; {
|
with mylib.modules; {
|
||||||
enable = mkEnableOpt "Kitty";
|
enable = mkEnableOption "Kitty";
|
||||||
}
|
}
|
||||||
|
|||||||
@ -5,5 +5,5 @@
|
|||||||
}:
|
}:
|
||||||
with lib;
|
with lib;
|
||||||
with mylib.modules; {
|
with mylib.modules; {
|
||||||
enable = mkEnableOpt "Enable LaTeX";
|
enable = mkEnableOption "Enable LaTeX";
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,19 +0,0 @@
|
|||||||
{
|
|
||||||
lib,
|
|
||||||
mylib,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
with lib;
|
|
||||||
with mylib.modules; {
|
|
||||||
enable = mkEnableOpt "Misc module";
|
|
||||||
|
|
||||||
keepass = {
|
|
||||||
enable = mkEnableOpt "KeePassXC";
|
|
||||||
autostart = mkBoolOpt false "Autostart KeePassXC";
|
|
||||||
};
|
|
||||||
|
|
||||||
protonmail = {
|
|
||||||
enable = mkEnableOpt "ProtonMail";
|
|
||||||
autostart = mkBoolOpt false "Autostart ProtonMail Bridge";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@ -94,7 +94,7 @@ in {
|
|||||||
performance.byteCompileLua = {
|
performance.byteCompileLua = {
|
||||||
enable = true;
|
enable = true;
|
||||||
configs = true;
|
configs = true;
|
||||||
initLua = true;
|
initLua = false; # When debugging init.lua turn this off
|
||||||
nvimRuntime = true;
|
nvimRuntime = true;
|
||||||
plugins = true;
|
plugins = true;
|
||||||
};
|
};
|
||||||
@ -133,11 +133,13 @@ in {
|
|||||||
end
|
end
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
desc = "Highlight yanked regions";
|
desc = "Highlight yanked regions";
|
||||||
event = ["TextYankPost"];
|
event = ["TextYankPost"];
|
||||||
callback.__raw = "function() vim.highlight.on_yank() end";
|
callback.__raw = "function() vim.highlight.on_yank() end";
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
desc = "Resize splits when Neovim is resized by the WM";
|
desc = "Resize splits when Neovim is resized by the WM";
|
||||||
event = ["VimResized"];
|
event = ["VimResized"];
|
||||||
@ -149,12 +151,14 @@ in {
|
|||||||
end
|
end
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
desc = "Disable conceal in JSON files";
|
desc = "Disable conceal in JSON files";
|
||||||
event = ["FileType"];
|
event = ["FileType"];
|
||||||
pattern = ["json" "jsonc" "json5"]; # Disable conceal for these filetypes
|
pattern = ["json" "jsonc" "json5"]; # Disable conceal for these filetypes
|
||||||
callback.__raw = "function() vim.opt_local.conceallevel = 0 end";
|
callback.__raw = "function() vim.opt_local.conceallevel = 0 end";
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
desc = "Attach JDTLS to Java files";
|
desc = "Attach JDTLS to Java files";
|
||||||
event = ["FileType"];
|
event = ["FileType"];
|
||||||
@ -176,12 +180,16 @@ in {
|
|||||||
end
|
end
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
|
# TODO: This breaks if the preview buffer does not refer to a file,
|
||||||
|
# e.g. when showing previous notifications
|
||||||
desc = "Enable line wrapping in telescope preview";
|
desc = "Enable line wrapping in telescope preview";
|
||||||
event = ["User"];
|
event = ["User"];
|
||||||
pattern = ["TelescopePreviewerLoaded"];
|
pattern = ["TelescopePreviewerLoaded"];
|
||||||
callback.__raw = ''
|
callback.__raw = ''
|
||||||
function(args)
|
function(args)
|
||||||
|
print(vim.inspect(args))
|
||||||
if args.data.bufname:match("*.csv") then
|
if args.data.bufname:match("*.csv") then
|
||||||
vim.wo.wrap = false
|
vim.wo.wrap = false
|
||||||
else
|
else
|
||||||
@ -235,6 +243,30 @@ in {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
catppuccin = {
|
||||||
|
name = "catppuccin";
|
||||||
|
pkg = pkgs.vimPlugins.catppuccin-nvim;
|
||||||
|
lazy = false;
|
||||||
|
priority = 1000;
|
||||||
|
config = ''
|
||||||
|
function(_, opts)
|
||||||
|
require("catppuccin").setup(opts)
|
||||||
|
|
||||||
|
vim.cmd([[
|
||||||
|
let $BAT_THEME = "catppuccin"
|
||||||
|
colorscheme catppuccin
|
||||||
|
]])
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
opts = {
|
||||||
|
flavour = "mocha"; # latte, frappe, macchiato, mocha
|
||||||
|
background = {
|
||||||
|
light = "latte";
|
||||||
|
dark = "mocha";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
# NOTE: In LazyVim require("clang_extensions").setup(opts) is called where opts is the server definition from lspconfig...
|
# NOTE: In LazyVim require("clang_extensions").setup(opts) is called where opts is the server definition from lspconfig...
|
||||||
clangd-extensions = rec {
|
clangd-extensions = rec {
|
||||||
name = "clangd_extensions";
|
name = "clangd_extensions";
|
||||||
@ -1014,10 +1046,40 @@ in {
|
|||||||
})
|
})
|
||||||
end
|
end
|
||||||
'';
|
'';
|
||||||
opts = {
|
opts = let
|
||||||
|
bubbles = ''
|
||||||
|
(function()
|
||||||
|
-- Wrap this in an immediately invoked function and require catppuccin
|
||||||
|
-- because we need "colors" in the scope.
|
||||||
|
-- For this, the catppuccin plugin must be installed,
|
||||||
|
-- just setting the neovim colorscheme isn't enough.
|
||||||
|
local colors = require("catppuccin.palettes").get_palette("mocha")
|
||||||
|
|
||||||
|
-- Use :lua print(vim.inspect(require("catppuccin.palettes").get_palette("mocha"))) to list colors
|
||||||
|
return {
|
||||||
|
normal = {
|
||||||
|
a = { fg = colors.base, bg = colors.lavender },
|
||||||
|
b = { fg = colors.text, bg = colors.crust },
|
||||||
|
c = { fg = colors.text },
|
||||||
|
},
|
||||||
|
|
||||||
|
insert = { a = { fg = colors.base, bg = colors.blue } },
|
||||||
|
visual = { a = { fg = colors.base, bg = colors.teal } },
|
||||||
|
replace = { a = { fg = colors.base, bg = colors.red } },
|
||||||
|
|
||||||
|
inactive = {
|
||||||
|
a = { fg = colors.text, bg = colors.base },
|
||||||
|
b = { fg = colors.text, bg = colors.base },
|
||||||
|
c = { fg = colors.text },
|
||||||
|
},
|
||||||
|
}
|
||||||
|
end)()
|
||||||
|
'';
|
||||||
|
in {
|
||||||
extensions = ["fzf" "neo-tree" "toggleterm" "trouble"];
|
extensions = ["fzf" "neo-tree" "toggleterm" "trouble"];
|
||||||
|
|
||||||
options = {
|
options = {
|
||||||
|
theme.__raw = bubbles;
|
||||||
always_divide_middle = true;
|
always_divide_middle = true;
|
||||||
globalstatus = true;
|
globalstatus = true;
|
||||||
ignore_focus = ["neo-tree"];
|
ignore_focus = ["neo-tree"];
|
||||||
@ -1025,7 +1087,6 @@ in {
|
|||||||
left = "";
|
left = "";
|
||||||
right = "";
|
right = "";
|
||||||
};
|
};
|
||||||
|
|
||||||
component_separators = {
|
component_separators = {
|
||||||
left = "";
|
left = "";
|
||||||
right = "";
|
right = "";
|
||||||
@ -1033,18 +1094,33 @@ in {
|
|||||||
};
|
};
|
||||||
|
|
||||||
sections = {
|
sections = {
|
||||||
lualine_a = ["mode"];
|
# lualine_a = ["mode"];
|
||||||
lualine_b = ["branch" "diff" "diagnostics"];
|
# lualine_a.__raw = ''{ { "mode", separator = { left = "" }, right_padding = 2, } }'';
|
||||||
lualine_c.__raw = "{{ 'filename', path = 1, }}";
|
lualine_a.__raw = ''{ { "mode", separator = {}, } }'';
|
||||||
|
lualine_b.__raw = ''{ "branch", "diff", "diagnostics", { "filename", path = 1, } }'';
|
||||||
|
lualine_c.__raw = ''{}''; # Use __raw: Nixvim does nothing with "[]", so the default config would be used
|
||||||
|
|
||||||
lualine_x = ["filetype" "encoding" "fileformat"];
|
lualine_x.__raw = ''{}'';
|
||||||
lualine_y = ["progress" "searchcount" "selectioncount"];
|
lualine_y = ["filetype" "encoding" "fileformat"];
|
||||||
|
# lualine_z = ["location"];
|
||||||
|
# lualine_z.__raw = ''{ { "location", separator = { right = "" }, left_padding = 2, } }'';
|
||||||
|
lualine_z.__raw = ''{ { "location", separator = {}, } }'';
|
||||||
|
};
|
||||||
|
|
||||||
|
inactive_sections = {
|
||||||
|
lualine_a = [];
|
||||||
|
lualine_b = ["filename"];
|
||||||
|
lualine_c = [];
|
||||||
|
lualine_x = [];
|
||||||
|
lualine_y = [];
|
||||||
lualine_z = ["location"];
|
lualine_z = ["location"];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Using tabby for this
|
||||||
# tabline = {
|
# tabline = {
|
||||||
# lualine_a = ["buffers"];
|
# lualine_a = ["hostname"];
|
||||||
# lualine_z = ["tabs"];
|
# lualine_b = ["tabs"]; # buffers
|
||||||
|
# lualine_x = ["windows"];
|
||||||
# };
|
# };
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -1325,6 +1401,12 @@ in {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
quickfix-reflector = {
|
||||||
|
name = "quickfix-reflector";
|
||||||
|
pkg = pkgs.vimPlugins.quickfix-reflector-vim;
|
||||||
|
lazy = false;
|
||||||
|
};
|
||||||
|
|
||||||
rainbow-delimiters = {
|
rainbow-delimiters = {
|
||||||
name = "rainbow-delimiters";
|
name = "rainbow-delimiters";
|
||||||
pkg = pkgs.vimPlugins.rainbow-delimiters-nvim;
|
pkg = pkgs.vimPlugins.rainbow-delimiters-nvim;
|
||||||
@ -1338,7 +1420,6 @@ in {
|
|||||||
|
|
||||||
# Don't call setup!
|
# Don't call setup!
|
||||||
|
|
||||||
# TODO: Configure this in depth
|
|
||||||
init = ''
|
init = ''
|
||||||
function()
|
function()
|
||||||
vim.g.rustaceanvim = {
|
vim.g.rustaceanvim = {
|
||||||
@ -1383,12 +1464,72 @@ in {
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
scope = rec {
|
||||||
|
name = "scope";
|
||||||
|
pkg = pkgs.vimPlugins.scope-nvim;
|
||||||
|
lazy = false;
|
||||||
|
config = mkDefaultConfig name;
|
||||||
|
};
|
||||||
|
|
||||||
sleuth = {
|
sleuth = {
|
||||||
name = "sleuth";
|
name = "sleuth";
|
||||||
pkg = pkgs.vimPlugins.vim-sleuth;
|
pkg = pkgs.vimPlugins.vim-sleuth;
|
||||||
lazy = false;
|
lazy = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
tabby = rec {
|
||||||
|
name = "tabby";
|
||||||
|
pkg = pkgs.vimPlugins.tabby-nvim;
|
||||||
|
lazy = true;
|
||||||
|
event = ["BufReadPost" "BufNewFile"];
|
||||||
|
dependencies = [web-devicons];
|
||||||
|
config = mkDefaultConfig name;
|
||||||
|
opts = {
|
||||||
|
line.__raw = ''
|
||||||
|
function(line)
|
||||||
|
local colors = require("catppuccin.palettes").get_palette("mocha")
|
||||||
|
|
||||||
|
local base = { fg = colors.base, bg = colors.base }
|
||||||
|
local crust = { fg = colors.crust, bg = colors.crust }
|
||||||
|
local text = { fg = colors.text, bg = colors.crust }
|
||||||
|
local lavender = { fg = colors.lavender, bg = colors.lavender }
|
||||||
|
|
||||||
|
local numtabs = vim.call("tabpagenr", "$")
|
||||||
|
|
||||||
|
return {
|
||||||
|
-- Head
|
||||||
|
{
|
||||||
|
{ " NEOVIM ", hl = { fg = colors.base, bg = colors.lavender } },
|
||||||
|
|
||||||
|
-- The separator gets a foreground and background fill (each have fg + bg).
|
||||||
|
-- line.sep("", lavender, lavender),
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Tabs
|
||||||
|
line.tabs().foreach(function(tab)
|
||||||
|
-- Switch out the start separator instead of the ending one because the last separator is different
|
||||||
|
local hl = tab.is_current() and { fg = colors.lavender, bg = colors.crust, style = "bold" } or text
|
||||||
|
local sep_start = tab.number() == 1 and "" or ""
|
||||||
|
local sep_end = tab.number() == numtabs and "" or ""
|
||||||
|
|
||||||
|
return {
|
||||||
|
line.sep(sep_start, lavender, crust),
|
||||||
|
tab.number(),
|
||||||
|
tab.name(),
|
||||||
|
line.sep(sep_end, crust, base),
|
||||||
|
hl = hl,
|
||||||
|
margin = " ",
|
||||||
|
}
|
||||||
|
end),
|
||||||
|
|
||||||
|
-- Background
|
||||||
|
hl = base,
|
||||||
|
}
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
_plenary = {
|
_plenary = {
|
||||||
name = "plenary"; # For telescope
|
name = "plenary"; # For telescope
|
||||||
pkg = pkgs.vimPlugins.plenary-nvim;
|
pkg = pkgs.vimPlugins.plenary-nvim;
|
||||||
@ -1401,6 +1542,20 @@ in {
|
|||||||
lazy = true;
|
lazy = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
_telescope-tabs = {
|
||||||
|
name = "telescope-tabs";
|
||||||
|
pkg = pkgs.vimUtils.buildVimPlugin {
|
||||||
|
name = "telescope-tabs";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "LukasPietzschmann";
|
||||||
|
repo = "telescope-tabs";
|
||||||
|
rev = "0a678eefcb71ebe5cb0876aa71dd2e2583d27fd3";
|
||||||
|
sha256 = "sha256-IvxZVHPtApnzUXIQzklT2C2kAxgtAkBUq3GNxwgPdPY=";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
lazy = true;
|
||||||
|
};
|
||||||
|
|
||||||
_telescope-undo = {
|
_telescope-undo = {
|
||||||
name = "telescope-undo";
|
name = "telescope-undo";
|
||||||
pkg = pkgs.vimPlugins.telescope-undo-nvim;
|
pkg = pkgs.vimPlugins.telescope-undo-nvim;
|
||||||
@ -1421,6 +1576,7 @@ in {
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
_plenary
|
_plenary
|
||||||
_telescope-fzf-native
|
_telescope-fzf-native
|
||||||
|
_telescope-tabs
|
||||||
_telescope-undo
|
_telescope-undo
|
||||||
_telescope-ui-select
|
_telescope-ui-select
|
||||||
];
|
];
|
||||||
@ -1429,7 +1585,7 @@ in {
|
|||||||
"undo"
|
"undo"
|
||||||
"ui-select"
|
"ui-select"
|
||||||
"fzf"
|
"fzf"
|
||||||
# "lazygit"
|
"telescope-tabs"
|
||||||
];
|
];
|
||||||
in ''
|
in ''
|
||||||
function(_, opts)
|
function(_, opts)
|
||||||
@ -1449,10 +1605,20 @@ in {
|
|||||||
};
|
};
|
||||||
mappings = {
|
mappings = {
|
||||||
i = {
|
i = {
|
||||||
|
# TODO: This mappings throws an error.
|
||||||
|
# Doesn't matter if defined as function or like "<C-h"> = "which_key";.
|
||||||
|
"<C-h>" = {__raw = ''function(...) return require("telescope.actions").which_key(...) end'';};
|
||||||
"<Esc>" = {__raw = ''function(...) return require("telescope.actions").close(...) end'';};
|
"<Esc>" = {__raw = ''function(...) return require("telescope.actions").close(...) end'';};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
pickers = {
|
||||||
|
buffers = {
|
||||||
|
# See :h telescope.builtin.buffers() for opts
|
||||||
|
ignore_current_buffer = true;
|
||||||
|
sort_mru = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -1760,6 +1926,7 @@ in {
|
|||||||
autopairs # Automatic closing brackets/parens
|
autopairs # Automatic closing brackets/parens
|
||||||
bbye # Delete buffer without closing the window or split
|
bbye # Delete buffer without closing the window or split
|
||||||
better-escape # Escape to normal mode using "jk"
|
better-escape # Escape to normal mode using "jk"
|
||||||
|
catppuccin # Colortheme (also add this here to access palettes)
|
||||||
clangd-extensions
|
clangd-extensions
|
||||||
|
|
||||||
# blink-cmp # Auto completion popups # TODO: Try this instead of cmp
|
# blink-cmp # Auto completion popups # TODO: Try this instead of cmp
|
||||||
@ -1793,7 +1960,7 @@ in {
|
|||||||
luasnip # Snippets
|
luasnip # Snippets
|
||||||
ltex-extra # Additional ltex lsp support, e.g. for add-to-dictionary action
|
ltex-extra # Additional ltex lsp support, e.g. for add-to-dictionary action
|
||||||
|
|
||||||
markview # Markdown support # TODO: Disable in help buffers + confiure a bit more
|
markview # Markdown support # TODO: Disable in help buffers (?) + confiure a bit more
|
||||||
|
|
||||||
# narrow-region # Open a buffer restricted to the selection
|
# narrow-region # Open a buffer restricted to the selection
|
||||||
navbuddy # Structural file view
|
navbuddy # Structural file view
|
||||||
@ -1801,9 +1968,12 @@ in {
|
|||||||
noice # Modern UI overhaul, e.g. floating cmdline
|
noice # Modern UI overhaul, e.g. floating cmdline
|
||||||
obsidian # Integration with Obsidian.md
|
obsidian # Integration with Obsidian.md
|
||||||
oil # File manager
|
oil # File manager
|
||||||
|
quickfix-reflector # Make the quickfix list editable and saveable to apply changes
|
||||||
rainbow-delimiters # Bracket/Paren colorization
|
rainbow-delimiters # Bracket/Paren colorization
|
||||||
rustaceanvim # Rust integration
|
rustaceanvim # Rust integration
|
||||||
|
scope # Buffers scoped to tabpages
|
||||||
sleuth # Heuristically set indent depth
|
sleuth # Heuristically set indent depth
|
||||||
|
tabby # Nicer tabline (only showing tabpages)
|
||||||
telescope # Option picker frontend
|
telescope # Option picker frontend
|
||||||
todo-comments # Highlight TODOs
|
todo-comments # Highlight TODOs
|
||||||
toggleterm # Integrated terminal
|
toggleterm # Integrated terminal
|
||||||
|
|||||||
@ -197,13 +197,13 @@
|
|||||||
mode = "i";
|
mode = "i";
|
||||||
key = "<C-BS>";
|
key = "<C-BS>";
|
||||||
action = "<C-w>";
|
action = "<C-w>";
|
||||||
options.desc = "Delete Previous Word"; # TODO: Breaks backspace <C-v><S-i> multiline cursor?
|
options.desc = "Delete Previous Word"; # TODO: Breaks backspace in <C-v><S-i> although i binding?
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
mode = "i";
|
mode = "i";
|
||||||
key = "<M-BS>";
|
key = "<M-BS>";
|
||||||
action = "<C-w>";
|
action = "<C-w>";
|
||||||
options.desc = "Delete Previous Word"; # TODO: Breaks backspace <C-v><S-i> multiline cursor?
|
options.desc = "Delete Previous Word"; # TODO: Breaks backspace in <C-v><S-i> although i binding?
|
||||||
}
|
}
|
||||||
|
|
||||||
# Clipboard
|
# Clipboard
|
||||||
@ -257,6 +257,12 @@
|
|||||||
action = "<cmd>Telescope current_buffer_fuzzy_find<cr>";
|
action = "<cmd>Telescope current_buffer_fuzzy_find<cr>";
|
||||||
options.desc = "Grep Buffer";
|
options.desc = "Grep Buffer";
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
mode = "v";
|
||||||
|
key = "?";
|
||||||
|
action = "<cmd>Telescope grep_string<cr>";
|
||||||
|
options.desc = "Find Selection";
|
||||||
|
}
|
||||||
{
|
{
|
||||||
mode = "n";
|
mode = "n";
|
||||||
key = ";";
|
key = ";";
|
||||||
@ -269,12 +275,6 @@
|
|||||||
action = "<Esc>";
|
action = "<Esc>";
|
||||||
options.desc = "Exit Visual Mode";
|
options.desc = "Exit Visual Mode";
|
||||||
}
|
}
|
||||||
{
|
|
||||||
mode = "v";
|
|
||||||
key = "?";
|
|
||||||
action = "<cmd>Telescope grep_string<cr>";
|
|
||||||
options.desc = "Find Selection";
|
|
||||||
}
|
|
||||||
];
|
];
|
||||||
|
|
||||||
leader = [
|
leader = [
|
||||||
@ -362,6 +362,12 @@
|
|||||||
action = "<cmd>ObsidianSearch<cr>";
|
action = "<cmd>ObsidianSearch<cr>";
|
||||||
options.desc = "Obsidian Note";
|
options.desc = "Obsidian Note";
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>Q";
|
||||||
|
action = "<cmd>cexpr []<cr>";
|
||||||
|
options.desc = "Clear Quickfix List";
|
||||||
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
leader-help = [
|
leader-help = [
|
||||||
@ -449,18 +455,23 @@
|
|||||||
action = "+buffers";
|
action = "+buffers";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
# See :h telescope.builtin.buffers() for sorting opts
|
|
||||||
mode = "n";
|
mode = "n";
|
||||||
key = "<leader>bb";
|
key = "<leader>bb";
|
||||||
action = "<cmd>Telescope buffers ignore_current_buffer=false sort_mru=true<cr>";
|
action = "<cmd>Telescope buffers<cr>";
|
||||||
options.desc = "List Buffers";
|
options.desc = "List Buffers";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
mode = "n";
|
mode = "n";
|
||||||
key = "<leader><Space>";
|
key = "<leader><Space>";
|
||||||
action = "<cmd>Telescope buffers ignore_current_buffer=false sort_mru=true<cr>";
|
action = "<cmd>Telescope buffers<cr>";
|
||||||
options.desc = "List Buffers";
|
options.desc = "List Buffers";
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader><C-Space>";
|
||||||
|
action = "<cmd>Telescope telescope-tabs list_tabs<cr>";
|
||||||
|
options.desc = "List Tabpages";
|
||||||
|
}
|
||||||
{
|
{
|
||||||
mode = "n";
|
mode = "n";
|
||||||
key = "<leader>R";
|
key = "<leader>R";
|
||||||
@ -586,6 +597,12 @@
|
|||||||
{
|
{
|
||||||
mode = "n";
|
mode = "n";
|
||||||
key = "<leader>td";
|
key = "<leader>td";
|
||||||
|
action = "<cmd>ToggleInlineDiagnostics<cr>";
|
||||||
|
options.desc = "Inline Diagnostics";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>tD";
|
||||||
action = "<cmd>Trouble diagnostics toggle focus=false win.position=bottom<cr>";
|
action = "<cmd>Trouble diagnostics toggle focus=false win.position=bottom<cr>";
|
||||||
options.desc = "Trouble Diagnostics";
|
options.desc = "Trouble Diagnostics";
|
||||||
}
|
}
|
||||||
@ -608,33 +625,18 @@
|
|||||||
action = "<cmd>ToggleAutoformat<cr>";
|
action = "<cmd>ToggleAutoformat<cr>";
|
||||||
options.desc = "Format on Save";
|
options.desc = "Format on Save";
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
mode = "n";
|
mode = "n";
|
||||||
key = "<leader>tl";
|
key = "<leader>tl";
|
||||||
action = "<cmd>ToggleAutoLint<cr>";
|
action = "<cmd>ToggleAutoLint<cr>";
|
||||||
options.desc = "Lint on Save";
|
options.desc = "Lint on Save";
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
|
||||||
mode = "n";
|
|
||||||
key = "<leader>tD";
|
|
||||||
action = "<cmd>ToggleInlineDiagnostics<cr>";
|
|
||||||
options.desc = "Inline Diagnostics";
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
{
|
||||||
mode = "n";
|
mode = "n";
|
||||||
key = "<leader>tw";
|
key = "<leader>tw";
|
||||||
action = "<cmd>:set wrap!<cr>";
|
action = "<cmd>:set wrap!<cr>";
|
||||||
options.desc = "Word Wrapping";
|
options.desc = "Word Wrapping";
|
||||||
}
|
}
|
||||||
# {
|
|
||||||
# mode = "n";
|
|
||||||
# key = "<leader>tv";
|
|
||||||
# action = "<cmd>VimtexTocToggle<cr>";
|
|
||||||
# options.desc = "VimTex ToC";
|
|
||||||
# }
|
|
||||||
];
|
];
|
||||||
|
|
||||||
leader-git = [
|
leader-git = [
|
||||||
|
|||||||
@ -5,7 +5,7 @@
|
|||||||
}:
|
}:
|
||||||
with lib;
|
with lib;
|
||||||
with mylib.modules; {
|
with mylib.modules; {
|
||||||
enable = mkEnableOpt "NeoVim";
|
enable = mkEnableOption "NeoVim";
|
||||||
alias = mkBoolOpt false "Link nvim to vim/vi";
|
alias = mkBoolOption false "Link nvim to vim/vi";
|
||||||
neovide = mkEnableOpt "NeoVide";
|
neovide = mkEnableOption "NeoVide";
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,8 +1,4 @@
|
|||||||
{
|
_: {
|
||||||
lib,
|
|
||||||
mylib,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
showmode = false; # Status line already shows this
|
showmode = false; # Status line already shows this
|
||||||
backspace = ["indent" "eol" "start"];
|
backspace = ["indent" "eol" "start"];
|
||||||
termguicolors = true; # Required by multiple plugins
|
termguicolors = true; # Required by multiple plugins
|
||||||
@ -14,8 +10,8 @@
|
|||||||
formatexpr = "v:lua.require('conform').formatexpr()";
|
formatexpr = "v:lua.require('conform').formatexpr()";
|
||||||
laststatus = 3; # Global statusline
|
laststatus = 3; # Global statusline
|
||||||
winblend = 30; # Floating popup transparency
|
winblend = 30; # Floating popup transparency
|
||||||
sessionoptions = ["buffers" "curdir" "tabpages" "winsize" "help" "globals" "skiprtp" "folds"];
|
sessionoptions = ["buffers" "curdir" "folds" "globals" "help" "skiprtp" "tabpages" "winsize"]; # What should be saved when creating a session
|
||||||
showtabline = 0; # Disable tabline
|
showtabline = 2; # Disable tabline with 0, show for > 1 with 1, always show with 2
|
||||||
conceallevel = 2;
|
conceallevel = 2;
|
||||||
|
|
||||||
# Cursor
|
# Cursor
|
||||||
|
|||||||
@ -1,10 +0,0 @@
|
|||||||
{
|
|
||||||
lib,
|
|
||||||
mylib,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
with lib;
|
|
||||||
with mylib.modules; {
|
|
||||||
enable = mkEnableOpt "Nextcloud Client";
|
|
||||||
autostart = mkBoolOpt false "Autostart the Nextcloud client (systemd)";
|
|
||||||
}
|
|
||||||
@ -5,5 +5,5 @@
|
|||||||
}:
|
}:
|
||||||
with lib;
|
with lib;
|
||||||
with mylib.modules; {
|
with mylib.modules; {
|
||||||
enable = mkEnableOpt "NNN File Manager";
|
enable = mkEnableOption "NNN File Manager";
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,10 +0,0 @@
|
|||||||
{
|
|
||||||
lib,
|
|
||||||
mylib,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
with lib;
|
|
||||||
with mylib.modules; {
|
|
||||||
enable = mkEnableOpt "Ranger";
|
|
||||||
preview = mkBoolOpt false "Enable Ranger image preview";
|
|
||||||
}
|
|
||||||
@ -2,7 +2,6 @@
|
|||||||
# VPN and Container modules should use this rofi module to enable their menus then
|
# VPN and Container modules should use this rofi module to enable their menus then
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
nixosConfig,
|
|
||||||
lib,
|
lib,
|
||||||
mylib,
|
mylib,
|
||||||
pkgs,
|
pkgs,
|
||||||
@ -34,14 +33,9 @@ in {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
home.activation = {
|
home.file = {
|
||||||
# NOTE: Keep the rofi config symlinked, to allow easy changes with hotreload
|
".config/rofi/config.rasi".source = ../../../config/rofi/rofi.rasi;
|
||||||
linkRofiConfig =
|
".config/rofi/colors.rasi".source = ../../../config/rofi/colors/${cfg.theme}.rasi;
|
||||||
lib.hm.dag.entryAfter ["writeBoundary"]
|
|
||||||
(mylib.modules.mkLink "~/NixFlake/config/rofi/rofi.rasi" "~/.config/rofi/config.rasi");
|
|
||||||
linkRofiColors =
|
|
||||||
lib.hm.dag.entryAfter ["writeBoundary"]
|
|
||||||
(mylib.modules.mkLink "~/NixFlake/config/rofi/colors/${cfg.theme}.rasi" "~/.config/rofi/colors.rasi");
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@ -5,7 +5,7 @@
|
|||||||
}:
|
}:
|
||||||
with lib;
|
with lib;
|
||||||
with mylib.modules; {
|
with mylib.modules; {
|
||||||
enable = mkEnableOpt "Rofi";
|
enable = mkEnableOption "Rofi";
|
||||||
|
|
||||||
theme = mkOption {
|
theme = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
|
|||||||
@ -5,7 +5,7 @@
|
|||||||
}:
|
}:
|
||||||
with lib;
|
with lib;
|
||||||
with mylib.modules; {
|
with mylib.modules; {
|
||||||
enable = mkEnableOpt "Waybar";
|
enable = mkEnableOption "Waybar";
|
||||||
|
|
||||||
monitor = mkOption {
|
monitor = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
|
|||||||
@ -5,5 +5,5 @@
|
|||||||
}:
|
}:
|
||||||
with lib;
|
with lib;
|
||||||
with mylib.modules; {
|
with mylib.modules; {
|
||||||
enable = mkEnableOpt "Enable Zathura";
|
enable = mkEnableOption "Enable Zathura";
|
||||||
}
|
}
|
||||||
|
|||||||
@ -4,6 +4,9 @@
|
|||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
|
# Import my own library functions.
|
||||||
|
# Those are defined as functions returning sets of library functions,
|
||||||
|
# so those functions have to be called when importing.
|
||||||
nixos = import ./nixos.nix {inherit inputs pkgs lib;};
|
nixos = import ./nixos.nix {inherit inputs pkgs lib;};
|
||||||
modules = import ./modules.nix {inherit inputs pkgs lib;};
|
modules = import ./modules.nix {inherit inputs pkgs lib;};
|
||||||
networking = import ./networking.nix {inherit inputs pkgs lib;};
|
networking = import ./networking.nix {inherit inputs pkgs lib;};
|
||||||
|
|||||||
@ -1,63 +1,44 @@
|
|||||||
# TODO: Easier mkLink/mkUnlink (include more hm.dag stuff into the function)
|
|
||||||
{
|
{
|
||||||
inputs,
|
inputs,
|
||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: rec {
|
}: rec {
|
||||||
# Conveniance wrapper for mkOption with boolean type
|
# Convenience wrapper for "mkOption" with boolean type.
|
||||||
mkBoolOpt = def: desc:
|
mkBoolOption = def: desc:
|
||||||
lib.mkOption {
|
lib.mkOption {
|
||||||
type = lib.types.bool;
|
type = lib.types.bool;
|
||||||
default = def;
|
default = def;
|
||||||
description = desc;
|
description = desc;
|
||||||
};
|
};
|
||||||
|
|
||||||
# Alias for consistency
|
# Like "lib.mkIf" but the predicate is inverted.
|
||||||
mkEnableOpt = lib.mkEnableOption;
|
# Returns "do" if "pred" is false.
|
||||||
|
|
||||||
# Like mkIf but the predicate is inverted
|
|
||||||
mkElse = pred: do: (lib.mkIf (!pred) do);
|
mkElse = pred: do: (lib.mkIf (!pred) do);
|
||||||
|
|
||||||
# Creates a symlink if it doesn't exist
|
# Returns "true" if "base" contains "element".
|
||||||
# If it exists renew the link
|
|
||||||
mkLink = src: dest: ''
|
|
||||||
if [ -L "${dest}" ]; then
|
|
||||||
rm ${dest}
|
|
||||||
fi
|
|
||||||
ln -sf ${src} ${dest}
|
|
||||||
'';
|
|
||||||
|
|
||||||
# Removes a symlink if it exists
|
|
||||||
mkUnlink = dest: ''
|
|
||||||
if [ -L "${dest}" ]; then
|
|
||||||
rm ${dest}
|
|
||||||
fi
|
|
||||||
'';
|
|
||||||
|
|
||||||
# Returns true if base contains element
|
|
||||||
contains = base: element:
|
contains = base: element:
|
||||||
lib.any (x: x == element) base;
|
lib.any (x: x == element) base;
|
||||||
|
|
||||||
# Returns base without occurences of elements that are also in remove
|
# Returns "base" without occurences of elements that are also in "remove".
|
||||||
without = base: remove:
|
without = base: remove:
|
||||||
lib.filter (x: !(contains remove x)) base;
|
lib.filter (x: !(contains remove x)) base;
|
||||||
|
|
||||||
# For use with single element sets
|
# Used with attrSets with a single element.
|
||||||
|
# Returns the name of the single attr.
|
||||||
attrName = set: let
|
attrName = set: let
|
||||||
names = lib.attrNames set;
|
names = lib.attrNames set;
|
||||||
in (
|
in
|
||||||
if (names != [])
|
if (names != [])
|
||||||
then (lib.head names)
|
then (lib.head names)
|
||||||
else null
|
else null;
|
||||||
);
|
|
||||||
|
|
||||||
# For use with single element sets
|
# Used with attrSets with a single element.
|
||||||
|
# Returns the value of the single attr.
|
||||||
attrValue = set: let
|
attrValue = set: let
|
||||||
values = lib.attrValues set;
|
values = lib.attrValues set;
|
||||||
in (
|
in
|
||||||
if (values != [])
|
if (values != [])
|
||||||
then (lib.head values)
|
then (lib.head values)
|
||||||
else null
|
else null;
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -14,36 +14,40 @@
|
|||||||
lib.nixosSystem {
|
lib.nixosSystem {
|
||||||
inherit system;
|
inherit system;
|
||||||
|
|
||||||
# Make our inputs available to the configuration.nix (for importing modules)
|
# Values in "specialArgs" are propagated to all system modules.
|
||||||
# specialArgs are propagated to all modules
|
|
||||||
specialArgs = {inherit inputs hostname mylib system username;};
|
specialArgs = {inherit inputs hostname mylib system username;};
|
||||||
|
|
||||||
modules = builtins.concatLists [
|
modules = builtins.concatLists [
|
||||||
[
|
[
|
||||||
# Replace the pkgs to include overlays/unfree
|
# Replace the default "pkgs" with my configured version
|
||||||
|
# to allow installation of unfree software and my own overlays.
|
||||||
{nixpkgs.pkgs = pkgs;}
|
{nixpkgs.pkgs = pkgs;}
|
||||||
|
|
||||||
# Main config file for all configs/hosts
|
# Import the toplevel system configuration module.
|
||||||
../system
|
../system
|
||||||
]
|
]
|
||||||
|
|
||||||
extraModules
|
extraModules
|
||||||
|
|
||||||
# HM is installed as a system module
|
# HM is installed as a system module when using mkNixosConfigWithHomeManagerModule.
|
||||||
[
|
[
|
||||||
inputs.home-manager.nixosModules.home-manager
|
inputs.home-manager.nixosModules.home-manager
|
||||||
{
|
{
|
||||||
# extraSpecialArgs are propagated to all hm config modules
|
home-manager = {
|
||||||
home-manager.extraSpecialArgs = {inherit inputs hostname username mylib;};
|
# Values in "extraSpecialArgs" are propagated to all HM modules.
|
||||||
|
extraSpecialArgs = {inherit inputs hostname username mylib;};
|
||||||
|
|
||||||
# Use systems pkgs, disables nixpkgs.* options in home.nix
|
# Use the "pkgs" from the system configuration.
|
||||||
home-manager.useGlobalPkgs = true;
|
# This disables "nixpkgs.*" options in HM modules.
|
||||||
|
useGlobalPkgs = true;
|
||||||
|
|
||||||
# Enable installing packages through users.christoph.packages to /etc/profiles instead of ~/.nix-profile
|
# Packages in "users.${username}.packages" will be installed
|
||||||
home-manager.useUserPackages = true;
|
# to /etc/profiles instead of ~/.nix-profile.
|
||||||
|
useUserPackages = true;
|
||||||
|
|
||||||
# User specific config file
|
# Import the user-specific HM toplevel module.
|
||||||
home-manager.users.${username}.imports = [../home/${username}];
|
users.${username}.imports = [../home/${username}];
|
||||||
|
};
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
];
|
];
|
||||||
@ -58,16 +62,16 @@
|
|||||||
lib.nixosSystem {
|
lib.nixosSystem {
|
||||||
inherit system;
|
inherit system;
|
||||||
|
|
||||||
# Make our inputs available to the configuration.nix (for importing modules)
|
# Values in "specialArgs" are propagated to all system modules.
|
||||||
# specialArgs are propagated to all modules
|
|
||||||
specialArgs = {inherit inputs hostname mylib system;};
|
specialArgs = {inherit inputs hostname mylib system;};
|
||||||
|
|
||||||
modules = builtins.concatLists [
|
modules = builtins.concatLists [
|
||||||
[
|
[
|
||||||
# Replace the pkgs to include overlays/unfree
|
# Replace the default "pkgs" with my configured version
|
||||||
|
# to allow installation of unfree software and my own overlays.
|
||||||
{nixpkgs.pkgs = pkgs;}
|
{nixpkgs.pkgs = pkgs;}
|
||||||
|
|
||||||
# Main config file for all configs/hosts
|
# Import the toplevel system configuration module.
|
||||||
../system
|
../system
|
||||||
]
|
]
|
||||||
|
|
||||||
@ -85,11 +89,12 @@
|
|||||||
inputs.home-manager.lib.homeManagerConfiguration {
|
inputs.home-manager.lib.homeManagerConfiguration {
|
||||||
inherit pkgs;
|
inherit pkgs;
|
||||||
|
|
||||||
# HM propagates these to every module
|
# Values in "extraSpecialArgs" are propagated to all HM modules.
|
||||||
extraSpecialArgs = {inherit inputs system mylib username hostname;};
|
extraSpecialArgs = {inherit inputs system mylib username hostname;};
|
||||||
|
|
||||||
modules = builtins.concatLists [
|
modules = builtins.concatLists [
|
||||||
[
|
[
|
||||||
|
# Import the user-specific HM toplevel module.
|
||||||
../home/${username}
|
../home/${username}
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|||||||
@ -9,35 +9,35 @@
|
|||||||
}:
|
}:
|
||||||
with lib;
|
with lib;
|
||||||
with mylib.modules; {
|
with mylib.modules; {
|
||||||
enable = mkEnableOpt "Enable OCI Containers";
|
enable = mkEnableOption "Enable OCI Containers";
|
||||||
|
|
||||||
homeassistant = {
|
homeassistant = {
|
||||||
enable = mkEnableOpt "Enable HomeAssistant Container";
|
enable = mkEnableOption "Enable HomeAssistant Container";
|
||||||
};
|
};
|
||||||
stablediffusion = {
|
stablediffusion = {
|
||||||
enable = mkEnableOpt "Enable StableDiffusion Container with Automatic1111 WebUI";
|
enable = mkEnableOption "Enable StableDiffusion Container with Automatic1111 WebUI";
|
||||||
};
|
};
|
||||||
jellyfin = {
|
jellyfin = {
|
||||||
enable = mkEnableOpt "Enable Jellyfin Container";
|
enable = mkEnableOption "Enable Jellyfin Container";
|
||||||
};
|
};
|
||||||
fileflows = {
|
fileflows = {
|
||||||
enable = mkEnableOpt "Enable FileFlows Container";
|
enable = mkEnableOption "Enable FileFlows Container";
|
||||||
};
|
};
|
||||||
sonarr = {
|
sonarr = {
|
||||||
enable = mkEnableOpt "Enable Sonarr Container";
|
enable = mkEnableOption "Enable Sonarr Container";
|
||||||
};
|
};
|
||||||
radarr = {
|
radarr = {
|
||||||
enable = mkEnableOpt "Enable Radarr Container";
|
enable = mkEnableOption "Enable Radarr Container";
|
||||||
};
|
};
|
||||||
hydra = {
|
hydra = {
|
||||||
enable = mkEnableOpt "Enable Hydra Container";
|
enable = mkEnableOption "Enable Hydra Container";
|
||||||
};
|
};
|
||||||
sabnzbd = {
|
sabnzbd = {
|
||||||
enable = mkEnableOpt "Enable SabNzbd Container";
|
enable = mkEnableOption "Enable SabNzbd Container";
|
||||||
};
|
};
|
||||||
|
|
||||||
rofiIntegration = {
|
rofiIntegration = {
|
||||||
enable = mkEnableOpt "Enable Rofi Menu for Container Servicing";
|
enable = mkEnableOption "Enable Rofi Menu for Container Servicing";
|
||||||
hotkey = mkOption {
|
hotkey = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
example = ''
|
example = ''
|
||||||
|
|||||||
@ -5,7 +5,7 @@
|
|||||||
}:
|
}:
|
||||||
with lib;
|
with lib;
|
||||||
with mylib.modules; {
|
with mylib.modules; {
|
||||||
enable = mkEnableOpt "Polkit";
|
enable = mkEnableOption "Polkit";
|
||||||
|
|
||||||
allowed-system-services = mkOption {
|
allowed-system-services = mkOption {
|
||||||
type = types.listOf types.str;
|
type = types.listOf types.str;
|
||||||
|
|||||||
@ -5,7 +5,7 @@
|
|||||||
}:
|
}:
|
||||||
with lib;
|
with lib;
|
||||||
with mylib.modules; {
|
with mylib.modules; {
|
||||||
enable = mkEnableOpt "Systemd Network Configuration";
|
enable = mkEnableOption "Systemd Network Configuration";
|
||||||
|
|
||||||
hostname = mkOption {
|
hostname = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
|
|||||||
Reference in New Issue
Block a user