1
This commit is contained in:
2023-04-26 12:56:31 +02:00
parent 1b83c0131f
commit 9a457490d4
39 changed files with 308 additions and 316 deletions

View File

@ -196,8 +196,9 @@ rec {
home.file.".local/share/navi/cheats/christoph.cheat".source = ../../config/navi/christoph.cheat;
home.activation = {
linkObsidianLatexSnippets = lib.hm.dag.entryAfter ["writeBoundary"]
(mylib.modules.mkLink "~/NixFlake/config/obsidian/latex_snippets.json" "~/Notes/Obsidian/Chriphost/latex_snippets.json");
linkObsidianLatexSnippets =
lib.hm.dag.entryAfter ["writeBoundary"]
(mylib.modules.mkLink "~/NixFlake/config/obsidian/latex_snippets.json" "~/Notes/Obsidian/Chriphost/latex_snippets.json");
};
xdg.mime.enable = true;
@ -428,7 +429,7 @@ rec {
enable = true;
enableFishIntegration = true;
};
btop.enable = true;
chromium = {
@ -438,12 +439,12 @@ rec {
# package = pkgs.ungoogled-chromium;
extensions = [
{ id = "cjpalhdlnbpafiamejdnhcphjbkeiagm"; } # UBlock Origin
{ id = "oboonakemofpalcgghocfoadofidjkkk"; } # KeepassXC Browser
{ id = "pkehgijcmpdhfbdbbnkijodmdjhbjlgp"; } # Privacy Badger
{ id = "lckanjgmijmafbedllaakclkaicjfmnk"; } # ClearURLs
{ id = "njdfdhgcmkocbgbhcioffdbicglldapd"; } # LocalCDN
{ id = "jaoafjdoijdconemdmodhbfpianehlon"; } # Skip Redirect
{id = "cjpalhdlnbpafiamejdnhcphjbkeiagm";} # UBlock Origin
{id = "oboonakemofpalcgghocfoadofidjkkk";} # KeepassXC Browser
{id = "pkehgijcmpdhfbdbbnkijodmdjhbjlgp";} # Privacy Badger
{id = "lckanjgmijmafbedllaakclkaicjfmnk";} # ClearURLs
{id = "njdfdhgcmkocbgbhcioffdbicglldapd";} # LocalCDN
{id = "jaoafjdoijdconemdmodhbfpianehlon";} # Skip Redirect
];
};
@ -554,7 +555,7 @@ rec {
};
nnn = {
package = pkgs.nnn.override { withNerdIcons = true; };
package = pkgs.nnn.override {withNerdIcons = true;};
enable = true;
extraPackages = with pkgs; [
@ -586,12 +587,14 @@ rec {
v = "imgview";
};
src = (pkgs.fetchFromGitHub {
owner = "jarun";
repo = "nnn";
rev = "6a8d74a43a2135a186dc59c5a1f561444ca098e4";
sha256 = "sha256-jxPfaHRPWy1L87YkK1G/9cBgUwjyJyPXM2jG4VE4+kQ=";
}) + "/plugins";
src =
(pkgs.fetchFromGitHub {
owner = "jarun";
repo = "nnn";
rev = "6a8d74a43a2135a186dc59c5a1f561444ca098e4";
sha256 = "sha256-jxPfaHRPWy1L87YkK1G/9cBgUwjyJyPXM2jG4VE4+kQ=";
})
+ "/plugins";
};
};

View File

@ -19,37 +19,37 @@ rec {
modules = {
audio = {
enable = false;
carla.enable = false;
bitwig.enable = true; # TODO: Check what happens when upgrade plan ends, do I need to pin the version then?
tenacity.enable = true;
faust.enable = true;
bottles.enable = false;
yabridge.enable = true;
yabridge.autoSync = true;
noisesuppression = {
noisetorch.enable = false;
noisetorch.autostart = false;
easyeffects.enable = false;
easyeffects.autostart = false;
};
cardinal.enable = true;
distrho.enable = true;
};
gaming = {
enable = true;
prism.enable = true;
bottles.enable = false;
# TODO: Webcord
# discordChromium.enable = false;
# discordElectron.enable = false; # This is the nixpkgs version, prefer the one from flatpak module
# dwarffortress.enable = false;
steam = {
enable = true;
gamescope = true;
@ -58,7 +58,7 @@ rec {
};
};
};
home.packages = with pkgs; [
quartus-prime-lite # Intel FPGA design software
];

View File

@ -17,11 +17,9 @@ rec {
config = {
modules = {
};
home.packages = with pkgs; [
];
};
}

View File

@ -15,7 +15,7 @@ in {
../flatpak
];
options.modules.audio = import ./options.nix { inherit lib mylib; };
options.modules.audio = import ./options.nix {inherit lib mylib;};
config = mkIf cfg.enable {
assertions = [

View File

@ -1,10 +1,9 @@
{
lib,
mylib
mylib,
}:
with lib;
with mylib.modules;
{
with mylib.modules; {
enable = mkEnableOpt "Audio module";
# TODO: Group these in categories (like instruments/VSTs or sth)
@ -45,4 +44,4 @@ with mylib.modules;
autostart = mkBoolOpt false "Autoload EasyEffects suppression profile";
};
};
}
}

View File

@ -18,7 +18,7 @@ in {
# Options is a vector of options this module defines
# This module defines only the "emacs" option and suboptions "enable" and "doom"
options.modules.emacs = import ./options.nix { inherit lib mylib; };
options.modules.emacs = import ./options.nix {inherit lib mylib;};
# Config is the merged set of all module configurations
# Here we define what happens to the config if the module is active (but only if the module is active)

View File

@ -1,10 +1,9 @@
{
lib,
mylib
mylib,
}:
with lib;
with mylib.modules;
{
with mylib.modules; {
enable = mkEnableOpt "Emacs module";
# TODO: Use an enum for this not individual options
@ -17,4 +16,4 @@ with mylib.modules;
autoSync = mkBoolOpt false "Sync Doom Emacs on nixos-rebuild";
autoUpgrade = mkBoolOpt false "Upgrade Doom Emacs on nixos-rebuild";
};
}
}

View File

@ -14,7 +14,7 @@ with lib;
with mylib.modules; let
cfg = config.modules.email;
in {
options.modules.email = import ./options.nix { inherit lib mylib; };
options.modules.email = import ./options.nix {inherit lib mylib;};
# TODO: Add Maildir to nextcloud sync
config = mkIf cfg.enable {

View File

@ -1,10 +1,9 @@
{
lib,
mylib
mylib,
}:
with lib;
with mylib.modules;
{
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";
@ -13,4 +12,4 @@ with mylib.modules;
enable = mkEnableOpt "Kmail";
autostart = mkEnableOpt "Autostart Kmail";
};
}
}

View File

@ -12,7 +12,7 @@ with lib;
with mylib.modules; let
cfg = config.modules.firefox;
in {
options.modules.firefox = import ./options.nix { inherit lib mylib; };
options.modules.firefox = import ./options.nix {inherit lib mylib;};
config = mkIf cfg.enable {
home.packages = with pkgs;

View File

@ -1,14 +1,13 @@
{
lib,
mylib
mylib,
}:
with lib;
with mylib.modules;
{
with mylib.modules; {
enable = mkEnableOpt "Firefox";
wayland = mkBoolOpt false "Enable firefox wayland support";
vaapi = mkBoolOpt false "Enable firefox vaapi support";
disableTabBar = mkBoolOpt false "Disable the firefox tab bar (for TST)";
defaultBookmarks = mkBoolOpt false "Preset standard bookmarks and folders";
gnomeTheme = mkBoolOpt false "Use Firefox gnome theme (rafaelmardojai)";
}
}

View File

@ -10,7 +10,7 @@ with lib;
with mylib.modules; let
cfg = config.modules.fish;
in {
options.modules.fish = import ./options.nix { inherit lib mylib; };
options.modules.fish = import ./options.nix {inherit lib mylib;};
config = mkIf cfg.enable {
programs.fish = {
@ -27,7 +27,7 @@ in {
echo "nnn is already running"
return
end
# The behaviour is set to cd on quit (nnn checks if NNN_TMPFILE is set)
# If NNN_TMPFILE is set to a custom path, it must be exported for nnn to
# see. To cd on quit only on ^G, remove the "-x" from both lines below,
@ -37,17 +37,17 @@ in {
else
set -x NNN_TMPFILE "$HOME/.config/nnn/.lastd"
end
# Unmask ^Q (, ^V etc.) (if required, see `stty -a`) to Quit nnn
# stty start undef
# stty stop undef
# stty lwrap undef
# stty lnext undef
# The command function allows one to alias this function to `nnn` without
# making an infinitely recursive alias
command nnn $argv
if test -e $NNN_TMPFILE
source $NNN_TMPFILE
rm $NNN_TMPFILE

View File

@ -1,9 +1,8 @@
{
lib,
mylib
mylib,
}:
with lib;
with mylib.modules;
{
with mylib.modules; {
enable = mkEnableOpt "Fish";
}
}

View File

@ -14,7 +14,7 @@ with mylib.modules;
let
cfg = config.modules.flatpak;
in {
options.modules.flatpak = import ./options.nix { inherit lib mylib; };
options.modules.flatpak = import ./options.nix {inherit lib mylib;};
config = mkIf cfg.enable {
assertions = [

View File

@ -1,10 +1,9 @@
{
lib,
mylib
mylib,
}:
with lib;
with mylib.modules;
{
with mylib.modules; {
enable = mkEnableOpt "Flatpak module";
fontFix = mkBoolOpt 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";
@ -52,4 +51,4 @@ with mylib.modules;
example = ["\${config.home.homeDirectory}/Documents:ro"];
description = "Additional global overrides";
};
}
}

View File

@ -19,7 +19,7 @@ in {
# TODO: SteamTinkerLaunch option
# TODO: Dolphin + SteamRomManager option
options.modules.gaming = import ./options.nix { inherit lib mylib; };
options.modules.gaming = import ./options.nix {inherit lib mylib;};
config = mkIf cfg.enable {
assertions = [

View File

@ -1,10 +1,9 @@
{
lib,
mylib
mylib,
}:
with lib;
with mylib.modules;
{
with mylib.modules; {
enable = mkEnableOpt "Gaming module";
# discordElectron.enable = mkEnableOpt "Discord (Electron) (nixpkgs)";
@ -19,4 +18,4 @@ with mylib.modules;
adwaita = mkBoolOpt false "Enable the adwaita-for-steam skin";
protonup = mkBoolOpt false "Enable ProtonUP-QT";
};
}
}

View File

@ -10,7 +10,7 @@ with lib;
with mylib.modules; let
cfg = config.modules.gnome;
in {
options.modules.gnome = import ./options.nix { inherit lib mylib; };
options.modules.gnome = import ./options.nix {inherit lib mylib;};
config = mkIf cfg.enable {
assertions = [

View File

@ -1,25 +1,24 @@
{
lib,
mylib
mylib,
}:
with lib;
with mylib.modules;
{
enable = mkEnableOpt "Gnome Desktop";
# TODO: Add option for dash-to-dock
extensions = mkBoolOpt false "Enable Gnome shell-extensions";
with mylib.modules; {
enable = mkEnableOpt "Gnome Desktop";
# TODO: Add option for dash-to-dock
extensions = mkBoolOpt false "Enable Gnome shell-extensions";
# TODO: Add other themes, whitesur for example
theme = {
papirusIcons = mkBoolOpt false "Enable the Papirus icon theme";
numixCursor = mkBoolOpt false "Enable the Numix cursor theme";
wallpaper = mkOption {
type = types.str;
default = "constructionsite";
description = "What wallpaper to use";
};
# TODO: Add other themes, whitesur for example
theme = {
papirusIcons = mkBoolOpt false "Enable the Papirus icon theme";
numixCursor = mkBoolOpt false "Enable the Numix cursor theme";
wallpaper = mkOption {
type = types.str;
default = "constructionsite";
description = "What wallpaper to use";
};
};
settings = {
};
}
settings = {
};
}

View File

@ -10,7 +10,7 @@ with lib;
with mylib.modules; let
cfg = config.modules.hyprland;
in {
options.modules.hyprland = import ./options.nix { inherit lib mylib; };
options.modules.hyprland = import ./options.nix {inherit lib mylib;};
config = let
# Taken from https://github.com/Ruixi-rebirth/flakes/blob/main/modules/programs/wayland/waybar/workspace-patch.nix
@ -37,124 +37,126 @@ in {
};
waybar-hyprland = pkgs.waybar.overrideAttrs (oldAttrs: {
mesonFlags = oldAttrs.mesonFlags ++ [ "-Dexperimental=true" ];
patches = (oldAttrs.patches or [ ]) ++ [ workspaces-patch ];
mesonFlags = oldAttrs.mesonFlags ++ ["-Dexperimental=true"];
patches = (oldAttrs.patches or []) ++ [workspaces-patch];
});
in mkIf cfg.enable {
assertions = [
{
assertion = nixosConfig.programs.hyprland.enable;
message = "Can't enable Hyprland module with Hyprland disabled!";
}
];
in
mkIf cfg.enable {
assertions = [
{
assertion = nixosConfig.programs.hyprland.enable;
message = "Can't enable Hyprland module with Hyprland disabled!";
}
];
gtk = {
enable = true;
iconTheme.package = pkgs.papirus-icon-theme;
iconTheme.name = "Papirus";
};
gtk = {
enable = true;
iconTheme.package = pkgs.papirus-icon-theme;
iconTheme.name = "Papirus";
};
home.pointerCursor = {
gtk.enable = true;
x11.enable = true;
package = pkgs.bibata-cursors;
name = "Bibata-Modern-Classic";
size = 16;
};
home.pointerCursor = {
gtk.enable = true;
x11.enable = true;
package = pkgs.bibata-cursors;
name = "Bibata-Modern-Classic";
size = 16;
};
home.sessionVariables = {
# QT_QPA_PLATFORMTHEME = "qt5ct";
};
home.sessionVariables = {
# QT_QPA_PLATFORMTHEME = "qt5ct";
};
# Polkit
home.file.".config/hypr/polkit.conf".text = ''exec-once = ${pkgs.libsForQt5.polkit-kde-agent}/libexec/polkit-kde-authentication-agent-1'';
# Polkit
home.file.".config/hypr/polkit.conf".text = ''exec-once = ${pkgs.libsForQt5.polkit-kde-agent}/libexec/polkit-kde-authentication-agent-1'';
home.file.".config/hypr/waybar-reload.conf".text = let
waybar-reload = pkgs.writeScript "waybar-reload" ''
#! ${pkgs.bash}/bin/bash
home.file.".config/hypr/waybar-reload.conf".text = let
waybar-reload = pkgs.writeScript "waybar-reload" ''
#! ${pkgs.bash}/bin/bash
trap "${pkgs.procps}/bin/pkill waybar" EXIT
trap "${pkgs.procps}/bin/pkill waybar" EXIT
while true; do
${waybar-hyprland}/bin/waybar -c $HOME/NixFlake/config/waybar/config -s $HOME/NixFlake/config/waybar/style.css &
${pkgs.inotifyTools}/bin/inotifywait -e create,modify $HOME/NixFlake/config/waybar/config $HOME/NixFlake/config/waybar/style.css
${pkgs.procps}/bin/pkill waybar
done
while true; do
${waybar-hyprland}/bin/waybar -c $HOME/NixFlake/config/waybar/config -s $HOME/NixFlake/config/waybar/style.css &
${pkgs.inotifyTools}/bin/inotifywait -e create,modify $HOME/NixFlake/config/waybar/config $HOME/NixFlake/config/waybar/style.css
${pkgs.procps}/bin/pkill waybar
done
'';
in ''
exec-once = ${waybar-reload}
'';
in ''
exec-once = ${waybar-reload}
'';
home.file.".config/hypr/hyprpaper.conf".text = ''
preload = ~/NixFlake/wallpapers/${cfg.theme}.png
wallpaper = HDMI-A-1, ~/NixFlake/wallpapers/${cfg.theme}.png
wallpaper = HDMI-A-2, ~/NixFlake/wallpapers/${cfg.theme}.png
'';
home.file.".config/hypr/hyprpaper.conf".text = ''
preload = ~/NixFlake/wallpapers/${cfg.theme}.png
wallpaper = HDMI-A-1, ~/NixFlake/wallpapers/${cfg.theme}.png
wallpaper = HDMI-A-2, ~/NixFlake/wallpapers/${cfg.theme}.png
'';
home.activation = {
# NOTE: Keep the hyprland/waybar config symlinked, to allow easy changes with hotreload
# TODO: Don't symlink at all, why not just tell Hyprland where the config is? Much easier
# TODO: Use this approach for every program that supports it, makes things much easier,
# as everything can just stay in ~/NixFlake/config
linkHyprlandConfig = hm.dag.entryAfter ["writeBoundary"]
(mkLink "~/NixFlake/config/hyprland/hyprland.conf" "~/.config/hypr/hyprland.conf");
home.activation = {
# NOTE: Keep the hyprland/waybar config symlinked, to allow easy changes with hotreload
# TODO: Don't symlink at all, why not just tell Hyprland where the config is? Much easier
# TODO: Use this approach for every program that supports it, makes things much easier,
# as everything can just stay in ~/NixFlake/config
linkHyprlandConfig =
hm.dag.entryAfter ["writeBoundary"]
(mkLink "~/NixFlake/config/hyprland/hyprland.conf" "~/.config/hypr/hyprland.conf");
# linkWaybarConfig = hm.dag.entryAfter ["writeBoundary"]
# (mkLink "~/NixFlake/config/waybar/config" "~/.config/waybar/config");
# linkWaybarStyle = hm.dag.entryAfter ["writeBoundary"]
# (mkLink "~/NixFlake/config/waybar/style.css" "~/.config/waybar/style.css");
# linkWaybarColors = hm.dag.entryAfter ["writeBoundary"]
# (mkLink "~/NixFlake/config/waybar/colors" "~/.config/waybar/colors");
};
home.packages = with pkgs; [
hyprpaper # Wallpaper setter
hyprpicker # Color picker
wl-clipboard
clipman # Clipboard manager (wl-paste)
imv # Image viewer
moc # Audio player
ncpamixer # ncurses pavucontrol
slurp # Region selector for screensharing
grim # Grab images from compositor
xfce.thunar
xfce.tumbler # Thunar thumbnails
libsForQt5.polkit-kde-agent
];
services = {
# Notification service
dunst = {
enable = true;
};
};
programs = {
rofi = {
enable = true;
package = pkgs.rofi-wayland;
plugins = [
pkgs.keepmenu # TODO: Rofi KeepassXC frontend
];
# NOTE: Don't use this, use the configfile for hot-reload
# terminal = "${pkgs.kitty}/bin/kitty";
# font = "JetBrains Mono 14";
# theme =
# extraConfig = '''';
# linkWaybarConfig = hm.dag.entryAfter ["writeBoundary"]
# (mkLink "~/NixFlake/config/waybar/config" "~/.config/waybar/config");
# linkWaybarStyle = hm.dag.entryAfter ["writeBoundary"]
# (mkLink "~/NixFlake/config/waybar/style.css" "~/.config/waybar/style.css");
# linkWaybarColors = hm.dag.entryAfter ["writeBoundary"]
# (mkLink "~/NixFlake/config/waybar/colors" "~/.config/waybar/colors");
};
waybar = {
enable = true;
package = waybar-hyprland;
home.packages = with pkgs; [
hyprpaper # Wallpaper setter
hyprpicker # Color picker
systemd = {
enable = false; # Gets started by hyprland
wl-clipboard
clipman # Clipboard manager (wl-paste)
imv # Image viewer
moc # Audio player
ncpamixer # ncurses pavucontrol
slurp # Region selector for screensharing
grim # Grab images from compositor
xfce.thunar
xfce.tumbler # Thunar thumbnails
libsForQt5.polkit-kde-agent
];
services = {
# Notification service
dunst = {
enable = true;
};
};
programs = {
rofi = {
enable = true;
package = pkgs.rofi-wayland;
plugins = [
pkgs.keepmenu # TODO: Rofi KeepassXC frontend
];
# NOTE: Don't use this, use the configfile for hot-reload
# terminal = "${pkgs.kitty}/bin/kitty";
# font = "JetBrains Mono 14";
# theme =
# extraConfig = '''';
};
waybar = {
enable = true;
package = waybar-hyprland;
systemd = {
enable = false; # Gets started by hyprland
};
};
};
};
};
}

View File

@ -1,14 +1,13 @@
{
lib,
mylib
mylib,
}:
with lib;
with mylib.modules;
{
with mylib.modules; {
enable = mkEnableOpt "Hyprland Window Manager + Compositor";
theme = mkOption {
type = types.str;
description = "Wallpaper and colorscheme to use";
};
}
};
}

View File

@ -11,7 +11,7 @@ with mylib.modules; let
cfg = config.modules.kitty;
# cfgnv = config.modules.neovim;
in {
options.modules.kitty = import ./options.nix { inherit lib mylib; };
options.modules.kitty = import ./options.nix {inherit lib mylib;};
config = mkIf cfg.enable {
programs.kitty = {

View File

@ -1,9 +1,8 @@
{
lib,
mylib
mylib,
}:
with lib;
with mylib.modules;
{
with mylib.modules; {
enable = mkEnableOpt "Kitty";
}
}

View File

@ -10,7 +10,7 @@ with lib;
with mylib.modules; let
cfg = config.modules.misc;
in {
options.modules.misc = import ./options.nix { inherit lib mylib; };
options.modules.misc = import ./options.nix {inherit lib mylib;};
config = mkIf cfg.enable {
home.packages = with pkgs;

View File

@ -1,10 +1,9 @@
{
lib,
mylib
mylib,
}:
with lib;
with mylib.modules;
{
with mylib.modules; {
enable = mkEnableOpt "Misc module";
keepass = {
@ -16,4 +15,4 @@ with mylib.modules;
enable = mkEnableOpt "ProtonMail";
autostart = mkBoolOpt false "Autostart ProtonMail Bridge";
};
}
}

View File

@ -10,7 +10,7 @@ with lib;
with mylib.modules; let
cfg = config.modules.neovim;
in {
options.modules.neovim = import ./options.nix { inherit lib mylib; };
options.modules.neovim = import ./options.nix {inherit lib mylib;};
config = mkIf cfg.enable {
# TODO: Configure by option

View File

@ -1,10 +1,9 @@
{
lib,
mylib
mylib,
}:
with lib;
with mylib.modules;
{
with mylib.modules; {
enable = mkEnableOpt "NeoVim";
alias = mkBoolOpt false "Link nvim to vim/vi";
}
}

View File

@ -13,7 +13,7 @@ with lib;
with mylib.modules; let
cfg = config.modules.nextcloud;
in {
options.modules.nextcloud = import ./options.nix { inherit lib mylib; };
options.modules.nextcloud = import ./options.nix {inherit lib mylib;};
config = mkIf cfg.enable {
assertions = [

View File

@ -1,10 +1,9 @@
{
lib,
mylib
mylib,
}:
with lib;
with mylib.modules;
{
with mylib.modules; {
enable = mkEnableOpt "Nextcloud Client";
autostart = mkBoolOpt false "Autostart the Nextcloud client (systemd)";
}
}

View File

@ -11,7 +11,7 @@ with lib;
with mylib.modules; let
cfg = config.modules.plasma;
in {
options.modules.plasma = import ./options.nix { inherit lib mylib; };
options.modules.plasma = import ./options.nix {inherit lib mylib;};
config = mkIf cfg.enable {
assertions = [

View File

@ -1,9 +1,8 @@
{
lib,
mylib
mylib,
}:
with lib;
with mylib.modules;
{
with mylib.modules; {
enable = mkEnableOpt "Plasma Desktop";
}
}

View File

@ -10,7 +10,7 @@ with lib;
with mylib.modules; let
cfg = config.modules.ranger;
in {
options.modules.ranger = import ./options.nix { inherit lib mylib; };
options.modules.ranger = import ./options.nix {inherit lib mylib;};
config = mkIf cfg.enable {
home.packages = with pkgs;

View File

@ -1,10 +1,9 @@
{
lib,
mylib
mylib,
}:
with lib;
with mylib.modules;
{
with mylib.modules; {
enable = mkEnableOpt "Ranger";
preview = mkBoolOpt false "Enable Ranger image preview";
}
}