Applied formatting
This commit is contained in:
parent
e1b1e7cc38
commit
16de891fc7
|
@ -1,9 +1,15 @@
|
|||
{ lib, config, pkgs, ... }:
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
with lib;
|
||||
let
|
||||
cfg = config.modules.base;
|
||||
in {
|
||||
in
|
||||
{
|
||||
options.modules.base = {
|
||||
enable = mkEnableOption "base";
|
||||
};
|
||||
|
|
|
@ -1,14 +1,18 @@
|
|||
{ lib, config, pkgs, ... }:
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
with lib;
|
||||
let
|
||||
cfg = config.modules.clean-tmp;
|
||||
in {
|
||||
in
|
||||
{
|
||||
options.modules.clean-tmp = {
|
||||
enable = mkEnableOption "clean-tmp";
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
boot.tmp.cleanOnBoot = true;
|
||||
};
|
||||
config = mkIf cfg.enable { boot.tmp.cleanOnBoot = true; };
|
||||
}
|
|
@ -1,9 +1,15 @@
|
|||
{ lib, config, pkgs, ... }:
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
with lib;
|
||||
let
|
||||
cfg = config.modules.silent-boot;
|
||||
in {
|
||||
in
|
||||
{
|
||||
options.modules.silent-boot = {
|
||||
enable = mkEnableOption "silent-boot";
|
||||
};
|
||||
|
|
|
@ -1,9 +1,15 @@
|
|||
{ lib, config, pkgs, ... }:
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
with lib;
|
||||
let
|
||||
cfg = config.modules.systemd-boot;
|
||||
in {
|
||||
in
|
||||
{
|
||||
options.modules.systemd-boot = {
|
||||
enable = mkEnableOption "systemd-boot";
|
||||
};
|
||||
|
|
|
@ -1,16 +1,18 @@
|
|||
{config, lib, pkgs, ... }:
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
with lib;
|
||||
let
|
||||
cfg = config.modules.brightnessctl;
|
||||
in {
|
||||
in
|
||||
{
|
||||
options.modules.brightnessctl = {
|
||||
enable = mkEnableOption "brightnessctl";
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
environment.systemPackages = [
|
||||
pkgs.brightnessctl
|
||||
];
|
||||
};
|
||||
config = mkIf cfg.enable { environment.systemPackages = [ pkgs.brightnessctl ]; };
|
||||
}
|
|
@ -1,6 +1,12 @@
|
|||
{ lib, config, pkgs, ... }:
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
with lib; {
|
||||
with lib;
|
||||
{
|
||||
imports = [
|
||||
# Import modules
|
||||
./base/default.nix
|
||||
|
|
|
@ -1,9 +1,15 @@
|
|||
{ lib, config, pkgs, ... }:
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
with lib;
|
||||
let
|
||||
cfg = config.modules.fontconfig;
|
||||
in {
|
||||
in
|
||||
{
|
||||
options.modules.fontconfig = {
|
||||
enable = mkEnableOption "fontconfig";
|
||||
};
|
||||
|
|
|
@ -1,4 +1,9 @@
|
|||
{ lib, config, pkgs, ... }:
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
config = {
|
||||
|
|
|
@ -1,9 +1,15 @@
|
|||
{config, lib, pkgs, ... }:
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
with lib;
|
||||
let
|
||||
cfg = config.modules.greetd;
|
||||
in {
|
||||
in
|
||||
{
|
||||
options.modules.greetd = {
|
||||
enable = mkEnableOption "greetd";
|
||||
command = mkOption {
|
||||
|
|
|
@ -1,9 +1,15 @@
|
|||
{config, lib, pkgs, ... }:
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
with lib;
|
||||
let
|
||||
cfg = config.modules.tuigreet;
|
||||
in {
|
||||
in
|
||||
{
|
||||
options.modules.tuigreet = {
|
||||
enable = mkEnableOption "tuigreet";
|
||||
greeting = mkOption {
|
||||
|
|
|
@ -1,4 +1,9 @@
|
|||
{ lib, config, pkgs, ... }:
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
config = {
|
||||
|
|
|
@ -1,9 +1,15 @@
|
|||
{ lib, config, pkgs, ... }:
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
with lib;
|
||||
let
|
||||
cfg = config.modules.neovim;
|
||||
in {
|
||||
in
|
||||
{
|
||||
options.modules.neovim = {
|
||||
enable = mkEnableOption "neovim";
|
||||
};
|
||||
|
|
|
@ -1,9 +1,15 @@
|
|||
{ lib, config, pkgs, ... }:
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
with lib;
|
||||
let
|
||||
cfg = config.modules.pipewire;
|
||||
in {
|
||||
in
|
||||
{
|
||||
options.modules.pipewire = {
|
||||
enable = mkEnableOption "pipewire";
|
||||
};
|
||||
|
|
|
@ -1,9 +1,15 @@
|
|||
{ lib, config, pkgs, ... }:
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
with lib;
|
||||
let
|
||||
cfg = config.modules.unfree;
|
||||
in {
|
||||
in
|
||||
{
|
||||
options.modules.unfree = {
|
||||
enable = mkEnableOption "unfree";
|
||||
allowedPackages = mkOption {
|
||||
|
|
|
@ -1,19 +1,24 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
with lib;
|
||||
let
|
||||
# Nixvim
|
||||
nixvim = import (builtins.fetchGit {
|
||||
url = "https://github.com/nix-community/nixvim";
|
||||
});
|
||||
nixvim = import (builtins.fetchGit { url = "https://github.com/nix-community/nixvim"; });
|
||||
|
||||
# Stylix
|
||||
stylix = import (pkgs.fetchFromGitHub {
|
||||
stylix = import (
|
||||
pkgs.fetchFromGitHub {
|
||||
owner = "danth";
|
||||
repo = "stylix";
|
||||
rev = "1ff9d37d27377bfe8994c24a8d6c6c1734ffa116";
|
||||
sha256 = "0dz8h1ga8lnfvvmvsf6iqvnbvxrvx3qxi0y8s8b72066mqgvy8y5";
|
||||
});
|
||||
}
|
||||
);
|
||||
|
||||
# User configuration
|
||||
userModule = types.submodule {
|
||||
|
@ -36,7 +41,8 @@ let
|
|||
};
|
||||
};
|
||||
};
|
||||
in {
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
# Import home manager
|
||||
<home-manager/nixos>
|
||||
|
|
|
@ -1,4 +1,9 @@
|
|||
{ input, pkgs, config, ... }:
|
||||
{
|
||||
input,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
imports = [
|
||||
|
|
|
@ -1,11 +1,17 @@
|
|||
{ lib, config, pkgs, ... }:
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
with lib;
|
||||
let
|
||||
cfg = config.modules.waybar;
|
||||
theme = config.theming;
|
||||
colors = theme.colors;
|
||||
in {
|
||||
in
|
||||
{
|
||||
options.modules.waybar = {
|
||||
enable = mkEnableOption "waybar";
|
||||
};
|
||||
|
@ -22,9 +28,7 @@ in {
|
|||
mainBar = {
|
||||
layer = "top";
|
||||
spacing = 16;
|
||||
modules-left = [
|
||||
"river/tags"
|
||||
];
|
||||
modules-left = [ "river/tags" ];
|
||||
modules-center = [
|
||||
#"river/window"
|
||||
"mpris"
|
||||
|
@ -61,14 +65,30 @@ in {
|
|||
#default = [ "" "" ];
|
||||
headphone = "";
|
||||
headphone-muted = "";
|
||||
default = [ "" "" "" ];
|
||||
default = [
|
||||
""
|
||||
""
|
||||
""
|
||||
];
|
||||
};
|
||||
};
|
||||
battery = {
|
||||
format = "{icon} {capacity}%"; # Spacing achieved using "Thin Space"
|
||||
format-charging = " {capacity}%"; # Spacing achieved using "Thin Space"
|
||||
#format-icons = [ "" "" "" "" "" "" "" "" "" "" "" ];
|
||||
format-icons = [ "" "" "" "" "" "" "" "" "" "" "" ];
|
||||
format-icons = [
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
];
|
||||
interval = 1;
|
||||
};
|
||||
clock = {
|
||||
|
|
|
@ -1,9 +1,15 @@
|
|||
{ lib, pkgs, config, ... }:
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
|
||||
with lib;
|
||||
let
|
||||
cfg = config.modules.desktop;
|
||||
in {
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
# Import desktop environment modules
|
||||
./bar/waybar.nix
|
||||
|
@ -21,18 +27,23 @@ in {
|
|||
};
|
||||
|
||||
config = {
|
||||
home.packages = optionals cfg.wayland (with pkgs; [
|
||||
home.packages = optionals cfg.wayland (
|
||||
with pkgs;
|
||||
[
|
||||
pkgs.wl-clipboard
|
||||
pkgs.wtype
|
||||
]);
|
||||
]
|
||||
);
|
||||
|
||||
home.file.".initrc" = {
|
||||
enable = true;
|
||||
executable = true;
|
||||
text = ''
|
||||
text =
|
||||
''
|
||||
#!${pkgs.bash}/bin/bash
|
||||
|
||||
'' + cfg.initScript;
|
||||
''
|
||||
+ cfg.initScript;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,16 +1,20 @@
|
|||
{ lib, pkgs, config, ... }:
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
|
||||
with lib;
|
||||
let
|
||||
cfg = config.modules.waylock;
|
||||
in {
|
||||
in
|
||||
{
|
||||
options.modules.waylock = {
|
||||
enable = mkEnableOption "waylock";
|
||||
};
|
||||
|
||||
config = {
|
||||
home.packages = mkIf cfg.enable (with pkgs; [
|
||||
waylock
|
||||
]);
|
||||
home.packages = mkIf cfg.enable (with pkgs; [ waylock ]);
|
||||
};
|
||||
}
|
|
@ -1,8 +1,14 @@
|
|||
{config, lib, pkgs, ... }:
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
cfg = config.modules.river;
|
||||
in {
|
||||
in
|
||||
{
|
||||
options.modules.river.enable = lib.mkEnableOption "river";
|
||||
|
||||
# osConfig = lib.mkIf cfg.enable {
|
||||
|
@ -40,20 +46,31 @@ in {
|
|||
enable = true;
|
||||
systemd.enable = false;
|
||||
xwayland.enable = true;
|
||||
settings = let
|
||||
settings =
|
||||
let
|
||||
layout = "rivertile";
|
||||
layoutOptions = "-outer-padding ${toString config.theming.layout.windowPadding} -view-padding ${toString config.theming.layout.windowPadding}";
|
||||
modes = ["normal" "locked"];
|
||||
tags = [1 2 3 4 5 6 7 8 9];
|
||||
modes = [
|
||||
"normal"
|
||||
"locked"
|
||||
];
|
||||
tags = [
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
];
|
||||
waylockOptions = "-init-color 0x${colors.bg} -input-color 0x${colors.focused} -fail-color 0x${colors.bg}";
|
||||
|
||||
colors = config.theming.colors;
|
||||
|
||||
# Quick pow function
|
||||
pow2 = power:
|
||||
if power != 0
|
||||
then 2 * (pow2 (power - 1))
|
||||
else 1;
|
||||
pow2 = power: if power != 0 then 2 * (pow2 (power - 1)) else 1;
|
||||
|
||||
# Modifiers
|
||||
main = "Super";
|
||||
|
@ -63,7 +80,8 @@ in {
|
|||
scm = "Super+Control";
|
||||
scam = "Super+Control+Alt";
|
||||
ssc = "Super+Shift+Control";
|
||||
in {
|
||||
in
|
||||
{
|
||||
default-layout = "${layout}";
|
||||
set-repeat = "50 300";
|
||||
xcursor-theme = "BreezeX-RosePine-Linux 24";
|
||||
|
@ -79,8 +97,11 @@ in {
|
|||
"\"${layout} ${layoutOptions}\""
|
||||
"waybar"
|
||||
];
|
||||
map = (lib.attrsets.recursiveUpdate ({
|
||||
normal = {
|
||||
map = (
|
||||
lib.attrsets.recursiveUpdate
|
||||
({
|
||||
normal =
|
||||
{
|
||||
"${main} Q" = "close";
|
||||
"${ssm} E" = "exit";
|
||||
|
||||
|
@ -138,13 +159,33 @@ in {
|
|||
# Toggle modes
|
||||
"${main} Space" = "toggle-float";
|
||||
"${main} F" = "toggle-fullscreen";
|
||||
} // builtins.listToAttrs (builtins.concatLists (map (tag: [
|
||||
{ name = "${main} ${toString tag}"; value = "set-focused-tags ${toString (pow2 (tag - 1))}"; }
|
||||
{ name = "${ssm} ${toString tag}"; value = "set-view-tags ${toString (pow2 (tag - 1))}"; }
|
||||
{ name = "${scm} ${toString tag}"; value = "toggle-focused-tags ${toString (pow2 (tag - 1))}"; }
|
||||
{ name = "${ssc} ${toString tag}"; value = "toggle-view-tags ${toString (pow2 (tag - 1))}"; }
|
||||
]) tags));
|
||||
}) (builtins.listToAttrs (map (mode: {
|
||||
}
|
||||
// builtins.listToAttrs (
|
||||
builtins.concatLists (
|
||||
map (tag: [
|
||||
{
|
||||
name = "${main} ${toString tag}";
|
||||
value = "set-focused-tags ${toString (pow2 (tag - 1))}";
|
||||
}
|
||||
{
|
||||
name = "${ssm} ${toString tag}";
|
||||
value = "set-view-tags ${toString (pow2 (tag - 1))}";
|
||||
}
|
||||
{
|
||||
name = "${scm} ${toString tag}";
|
||||
value = "toggle-focused-tags ${toString (pow2 (tag - 1))}";
|
||||
}
|
||||
{
|
||||
name = "${ssc} ${toString tag}";
|
||||
value = "toggle-view-tags ${toString (pow2 (tag - 1))}";
|
||||
}
|
||||
]) tags
|
||||
)
|
||||
);
|
||||
})
|
||||
(
|
||||
builtins.listToAttrs (
|
||||
map (mode: {
|
||||
name = "${mode}";
|
||||
value = {
|
||||
# Control volume
|
||||
|
@ -161,7 +202,10 @@ in {
|
|||
"None XF86Go" = "spawn \"playerctl play-pause\"";
|
||||
"None Cancel" = "spawn \"playerctl next\"";
|
||||
};
|
||||
}) modes)));
|
||||
}) modes
|
||||
)
|
||||
)
|
||||
);
|
||||
map-pointer = {
|
||||
normal = {
|
||||
"${main} BTN_LEFT" = "move-view";
|
||||
|
|
|
@ -1,9 +1,15 @@
|
|||
{config, lib, pkgs, ... }:
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
with lib;
|
||||
let
|
||||
cfg = config.modules.discord;
|
||||
in {
|
||||
in
|
||||
{
|
||||
options.modules.discord = {
|
||||
enable = mkEnableOption "discord";
|
||||
};
|
||||
|
@ -11,8 +17,6 @@ in {
|
|||
config = mkIf cfg.enable {
|
||||
modules.unfree.allowedPackages = [ "discord" ];
|
||||
|
||||
home.packages = with pkgs; [
|
||||
discord
|
||||
];
|
||||
home.packages = with pkgs; [ discord ];
|
||||
};
|
||||
}
|
|
@ -1,14 +1,16 @@
|
|||
{config, lib, pkgs, ... }:
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
with lib;
|
||||
let
|
||||
cfg = config.modules.feishin;
|
||||
in {
|
||||
in
|
||||
{
|
||||
options.modules.feishin.enable = mkEnableOption "feishin";
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
home.packages = with pkgs; [
|
||||
feishin
|
||||
];
|
||||
};
|
||||
config = mkIf cfg.enable { home.packages = with pkgs; [ feishin ]; };
|
||||
}
|
|
@ -1,8 +1,14 @@
|
|||
{config, lib, pkgs, ... }:
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
cfg = config.modules.firefox;
|
||||
in {
|
||||
in
|
||||
{
|
||||
options.modules.firefox.enable = lib.mkEnableOption "firefox";
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
|
@ -32,7 +38,9 @@ in {
|
|||
DisableTelemetry = true;
|
||||
DisplayBookmarksToolbar = "never";
|
||||
DisplayMenuBar = "never";
|
||||
DNSOverHTTPS = { Enabled = false; };
|
||||
DNSOverHTTPS = {
|
||||
Enabled = false;
|
||||
};
|
||||
DontCheckDefaultBrowser = true;
|
||||
PasswordManagerEnabled = false;
|
||||
TranslateEnabled = true;
|
||||
|
@ -42,9 +50,7 @@ in {
|
|||
profiles.nixos = {
|
||||
search.default = "DuckDuckGo";
|
||||
|
||||
extensions = with pkgs.nur.repos.rycee.firefox-addons; [
|
||||
ublock-origin
|
||||
];
|
||||
extensions = with pkgs.nur.repos.rycee.firefox-addons; [ ublock-origin ];
|
||||
|
||||
settings = {
|
||||
"browser.tabs.inTitlebar" = 0;
|
||||
|
|
|
@ -1,4 +1,9 @@
|
|||
{ lib, config, pkgs, ... }:
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
with lib;
|
||||
let
|
||||
|
@ -15,8 +20,11 @@ let
|
|||
</alias>
|
||||
'';
|
||||
|
||||
configContent = concatStrings (map (font: aliasConfig config.theming.fonts.pkgs.${font}) config.theming.fonts.installed);
|
||||
in {
|
||||
configContent = concatStrings (
|
||||
map (font: aliasConfig config.theming.fonts.pkgs.${font}) config.theming.fonts.installed
|
||||
);
|
||||
in
|
||||
{
|
||||
options.modules.fontconfig = {
|
||||
enable = mkEnableOption "fontconfig";
|
||||
};
|
||||
|
@ -26,18 +34,10 @@ in {
|
|||
enable = true;
|
||||
|
||||
defaultFonts = {
|
||||
serif = [
|
||||
config.theming.fonts.serif.name
|
||||
];
|
||||
sansSerif = [
|
||||
config.theming.fonts.sansSerif.name
|
||||
];
|
||||
monospace = [
|
||||
config.theming.fonts.monospace.name
|
||||
];
|
||||
emoji = [
|
||||
config.theming.fonts.emoji.name
|
||||
];
|
||||
serif = [ config.theming.fonts.serif.name ];
|
||||
sansSerif = [ config.theming.fonts.sansSerif.name ];
|
||||
monospace = [ config.theming.fonts.monospace.name ];
|
||||
emoji = [ config.theming.fonts.emoji.name ];
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
@ -1,19 +1,27 @@
|
|||
{config, lib, pkgs, ... }:
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
with lib;
|
||||
let
|
||||
cfg = config.modules.foot;
|
||||
in {
|
||||
in
|
||||
{
|
||||
options.modules.foot.enable = mkEnableOption "foot";
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
programs.foot = {
|
||||
enable = true;
|
||||
settings = {
|
||||
main = let
|
||||
main =
|
||||
let
|
||||
font = config.theming.fonts.monospace.name;
|
||||
size = toString config.theming.fonts.monospace.recommendedSize;
|
||||
in {
|
||||
in
|
||||
{
|
||||
font = mkForce "${font}:style=Regular:size=${size}";
|
||||
font-bold = "${font}:style=Bold:size=${size}";
|
||||
font-italic = "${font}:style=Italic:size=${size}";
|
||||
|
|
|
@ -1,9 +1,15 @@
|
|||
{ lib, config, pkgs, ... }:
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
with lib;
|
||||
let
|
||||
cfg = config.modules.nix;
|
||||
in {
|
||||
in
|
||||
{
|
||||
options.modules.nix = {
|
||||
enable = mkEnableOption "nix";
|
||||
};
|
||||
|
@ -18,9 +24,7 @@ in {
|
|||
|
||||
# VSCode configuration
|
||||
programs.vscode = {
|
||||
extensions = with pkgs.vscode-extensions; [
|
||||
jnoortheen.nix-ide
|
||||
];
|
||||
extensions = with pkgs.vscode-extensions; [ jnoortheen.nix-ide ];
|
||||
|
||||
userSettings = {
|
||||
"[nix]" = {
|
||||
|
|
|
@ -1,9 +1,15 @@
|
|||
{ lib, config, pkgs, ... }:
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
with lib;
|
||||
let
|
||||
cfg = config.modules.rust;
|
||||
in {
|
||||
in
|
||||
{
|
||||
options.modules.rust = {
|
||||
enable = mkEnableOption "rust";
|
||||
};
|
||||
|
@ -19,13 +25,10 @@ in {
|
|||
|
||||
# VSCode configuration
|
||||
programs.vscode = {
|
||||
extensions = with pkgs.vscode-extensions; [
|
||||
rust-lang.rust-analyzer
|
||||
];
|
||||
extensions = with pkgs.vscode-extensions; [ rust-lang.rust-analyzer ];
|
||||
|
||||
userSettings = {
|
||||
"[rust]" = {
|
||||
};
|
||||
"[rust]" = { };
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
@ -1,11 +1,17 @@
|
|||
{config, lib, pkgs, ... }:
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
with lib;
|
||||
let
|
||||
cfg = config.modules.mako;
|
||||
theme = config.theming;
|
||||
colors = theme.colors;
|
||||
in {
|
||||
in
|
||||
{
|
||||
options.modules.mako.enable = mkEnableOption "mako";
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
|
|
|
@ -1,11 +1,17 @@
|
|||
{ lib, config, pkgs, ... }:
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
with lib;
|
||||
let
|
||||
cfg = config.modules.neovim;
|
||||
theme = config.theming;
|
||||
colors = theme.colors;
|
||||
in {
|
||||
in
|
||||
{
|
||||
options.modules.neovim = {
|
||||
enable = mkEnableOption "neovim";
|
||||
};
|
||||
|
@ -17,8 +23,7 @@ in {
|
|||
viAlias = true;
|
||||
vimAlias = true;
|
||||
|
||||
extraPackages = with pkgs; [
|
||||
];
|
||||
extraPackages = with pkgs; [ ];
|
||||
|
||||
opts = {
|
||||
number = true;
|
||||
|
|
|
@ -1,16 +1,18 @@
|
|||
{config, lib, pkgs, ... }:
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
with lib;
|
||||
let
|
||||
cfg = config.modules.obsidian;
|
||||
in {
|
||||
in
|
||||
{
|
||||
options.modules.obsidian = {
|
||||
enable = mkEnableOption "obsidian";
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
home.packages = with pkgs; [
|
||||
obsidian
|
||||
];
|
||||
};
|
||||
config = mkIf cfg.enable { home.packages = with pkgs; [ obsidian ]; };
|
||||
}
|
|
@ -1,10 +1,16 @@
|
|||
{config, lib, pkgs, ... }:
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
with lib;
|
||||
let
|
||||
cfg = config.modules.qutebrowser;
|
||||
theme = config.theming;
|
||||
in {
|
||||
in
|
||||
{
|
||||
options.modules.qutebrowser.enable = mkEnableOption "qutebrowser";
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
|
|
|
@ -1,11 +1,17 @@
|
|||
{config, lib, pkgs, ... }:
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
with lib;
|
||||
let
|
||||
cfg = config.modules.rofi;
|
||||
theme = config.theming;
|
||||
colors = theme.colors;
|
||||
in {
|
||||
in
|
||||
{
|
||||
options.modules.rofi.enable = mkEnableOption "rofi";
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
|
@ -13,9 +19,11 @@ in {
|
|||
enable = true;
|
||||
package = pkgs.rofi-wayland;
|
||||
font = "${theme.fonts.monospace.name} ${toString theme.fonts.monospace.recommendedSize}";
|
||||
theme = let
|
||||
theme =
|
||||
let
|
||||
inherit (config.lib.formats.rasi) mkLiteral;
|
||||
in {
|
||||
in
|
||||
{
|
||||
"*" = {
|
||||
background-color = mkLiteral "rgba(0, 0, 0, 0%)";
|
||||
border-color = mkLiteral "#${colors.fg}";
|
||||
|
|
|
@ -1,17 +1,21 @@
|
|||
{config, lib, pkgs, ... }:
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
with lib;
|
||||
let
|
||||
cfg = config.modules.rofi-rbw;
|
||||
in {
|
||||
in
|
||||
{
|
||||
options.modules.rofi-rbw.enable = mkEnableOption "rofi-rbw";
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
modules.rofi.enable = true;
|
||||
|
||||
home.packages = [
|
||||
pkgs.rofi-rbw
|
||||
];
|
||||
home.packages = [ pkgs.rofi-rbw ];
|
||||
|
||||
# TODO: Move to separate module and make configurable
|
||||
programs.rbw = {
|
||||
|
|
|
@ -1,9 +1,15 @@
|
|||
{ lib, config, pkgs, ... }:
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
with lib;
|
||||
let
|
||||
cfg = config.modules.bash;
|
||||
in {
|
||||
in
|
||||
{
|
||||
options.modules.bash = {
|
||||
enable = mkEnableOption "bash";
|
||||
};
|
||||
|
|
|
@ -1,9 +1,15 @@
|
|||
{ lib, config, pkgs, ... }:
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
with lib;
|
||||
let
|
||||
cfg = config.modules.fish;
|
||||
in {
|
||||
in
|
||||
{
|
||||
options.modules.fish = {
|
||||
enable = mkEnableOption "fish";
|
||||
|
||||
|
@ -31,9 +37,18 @@ in {
|
|||
enable = true;
|
||||
|
||||
plugins = [
|
||||
(mkIf cfg.plugins.done { name = "done"; src = pkgs.fishPlugins.done.src; })
|
||||
(mkIf cfg.plugins.fzf { name = "fzf"; src = pkgs.fishPlugins.fzf-fish.src; })
|
||||
(mkIf cfg.plugins.grc { name = "grc"; src = pkgs.fishPlugins.grc.src; })
|
||||
(mkIf cfg.plugins.done {
|
||||
name = "done";
|
||||
src = pkgs.fishPlugins.done.src;
|
||||
})
|
||||
(mkIf cfg.plugins.fzf {
|
||||
name = "fzf";
|
||||
src = pkgs.fishPlugins.fzf-fish.src;
|
||||
})
|
||||
(mkIf cfg.plugins.grc {
|
||||
name = "grc";
|
||||
src = pkgs.fishPlugins.grc.src;
|
||||
})
|
||||
];
|
||||
};
|
||||
|
||||
|
|
|
@ -1,6 +1,12 @@
|
|||
{config, lib, pkgs, ... }:
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
with lib; {
|
||||
with lib;
|
||||
{
|
||||
options.modules.steam = {
|
||||
enable = mkEnableOption "steam";
|
||||
};
|
||||
|
|
|
@ -1,10 +1,14 @@
|
|||
{ lib, config, pkgs, ... }:
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
with lib;
|
||||
let
|
||||
enabled = any (user: user.modules.river.enable) (attrValues config.home-manager.users);
|
||||
in {
|
||||
config = mkIf enabled {
|
||||
programs.river.enable = true;
|
||||
};
|
||||
in
|
||||
{
|
||||
config = mkIf enabled { programs.river.enable = true; };
|
||||
}
|
|
@ -1,10 +1,14 @@
|
|||
{ lib, config, pkgs, ... }:
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
with lib;
|
||||
let
|
||||
enabled = any (user: user.modules.steam.enable) (attrValues config.home-manager.users);
|
||||
in {
|
||||
config = mkIf enabled {
|
||||
programs.steam.enable = true;
|
||||
};
|
||||
in
|
||||
{
|
||||
config = mkIf enabled { programs.steam.enable = true; };
|
||||
}
|
|
@ -1,10 +1,14 @@
|
|||
{ lib, config, pkgs, ... }:
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
with lib;
|
||||
let
|
||||
enabled = any (user: user.modules.waylock.enable) (attrValues config.home-manager.users);
|
||||
in {
|
||||
config = mkIf enabled {
|
||||
security.pam.services.waylock = {};
|
||||
};
|
||||
in
|
||||
{
|
||||
config = mkIf enabled { security.pam.services.waylock = { }; };
|
||||
}
|
|
@ -1,4 +1,9 @@
|
|||
{ pkgs, lib, config, ... }:
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
|
||||
with lib;
|
||||
let
|
||||
|
@ -63,25 +68,35 @@ let
|
|||
] ++ map (font: font.name) cfg.fonts.extraFonts;
|
||||
|
||||
# Flatten dependencies of fonts
|
||||
fontPackages = converge (fonts:
|
||||
listToAttrs (map (font: {
|
||||
fontPackages =
|
||||
converge
|
||||
(
|
||||
fonts:
|
||||
listToAttrs (
|
||||
map
|
||||
(font: {
|
||||
name = font;
|
||||
value = true;
|
||||
}) (
|
||||
flatten (map (font:
|
||||
[ font.name ]
|
||||
++ cfg.fonts.pkgs.${font.name}.fallbackFonts
|
||||
) (attrsToList fonts))
|
||||
))
|
||||
) (listToAttrs (map (font: {
|
||||
})
|
||||
(
|
||||
flatten (map (font: [ font.name ] ++ cfg.fonts.pkgs.${font.name}.fallbackFonts) (attrsToList fonts))
|
||||
)
|
||||
)
|
||||
)
|
||||
(
|
||||
listToAttrs (
|
||||
map (font: {
|
||||
name = font;
|
||||
value = true;
|
||||
}) enabledFonts));
|
||||
}) enabledFonts
|
||||
)
|
||||
);
|
||||
|
||||
# Convert set of fonts to list of packages
|
||||
fontNameList = map (font: font.name) (attrsToList fontPackages);
|
||||
fontPackageList = map (font: cfg.fonts.pkgs.${font}.package) fontNameList;
|
||||
in {
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
# Import all themes
|
||||
./themes/gruvbox.nix
|
||||
|
@ -90,7 +105,11 @@ in {
|
|||
|
||||
options.modules.theming.enable = mkEnableOption "theming";
|
||||
|
||||
options.theming = let colors = config.theming.schemeColors; in {
|
||||
options.theming =
|
||||
let
|
||||
colors = config.theming.schemeColors;
|
||||
in
|
||||
{
|
||||
darkMode = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
|
@ -166,10 +185,12 @@ in {
|
|||
fonts = {
|
||||
pkgs = mkOption {
|
||||
type = types.attrsOf fontModule;
|
||||
default = builtins.listToAttrs (map (module: {
|
||||
default = builtins.listToAttrs (
|
||||
map (module: {
|
||||
name = module.name;
|
||||
value = module;
|
||||
}) (map (module: (import module) { inherit lib config pkgs; }) fontModules));
|
||||
}) (map (module: (import module) { inherit lib config pkgs; }) fontModules)
|
||||
);
|
||||
description = "All available font modules.";
|
||||
};
|
||||
|
||||
|
@ -229,7 +250,8 @@ in {
|
|||
};
|
||||
|
||||
# Configure gtk theme
|
||||
gtk = let
|
||||
gtk =
|
||||
let
|
||||
disableCSD = ''
|
||||
headerbar.default-decoration {
|
||||
margin-bottom: 50px;
|
||||
|
@ -241,7 +263,8 @@ in {
|
|||
box-shadow: none;
|
||||
}
|
||||
'';
|
||||
in {
|
||||
in
|
||||
{
|
||||
enable = true;
|
||||
|
||||
theme = {
|
||||
|
@ -289,10 +312,22 @@ in {
|
|||
polarity = if cfg.darkMode then "dark" else "light";
|
||||
|
||||
fonts = {
|
||||
serif = getAttrs [ "name" "package" ] cfg.fonts.serif;
|
||||
sansSerif = getAttrs [ "name" "package" ] cfg.fonts.sansSerif;
|
||||
monospace = getAttrs [ "name" "package" ] cfg.fonts.monospace;
|
||||
emoji = getAttrs [ "name" "package" ] cfg.fonts.emoji;
|
||||
serif = getAttrs [
|
||||
"name"
|
||||
"package"
|
||||
] cfg.fonts.serif;
|
||||
sansSerif = getAttrs [
|
||||
"name"
|
||||
"package"
|
||||
] cfg.fonts.sansSerif;
|
||||
monospace = getAttrs [
|
||||
"name"
|
||||
"package"
|
||||
] cfg.fonts.monospace;
|
||||
emoji = getAttrs [
|
||||
"name"
|
||||
"package"
|
||||
] cfg.fonts.emoji;
|
||||
|
||||
sizes = {
|
||||
applications = mkDefault cfg.fonts.serif.recommendedSize;
|
||||
|
|
|
@ -4,6 +4,5 @@
|
|||
name = "Cozette Vector";
|
||||
package = pkgs.cozette;
|
||||
recommendedSize = 9;
|
||||
fallbackFonts = [
|
||||
];
|
||||
fallbackFonts = [ ];
|
||||
}
|
|
@ -4,7 +4,5 @@
|
|||
name = "Cozette";
|
||||
package = pkgs.cozette;
|
||||
recommendedSize = 9;
|
||||
fallbackFonts = [
|
||||
"Cozette Vector"
|
||||
];
|
||||
fallbackFonts = [ "Cozette Vector" ];
|
||||
}
|
|
@ -4,7 +4,5 @@
|
|||
name = "Fira Code";
|
||||
package = pkgs.fira-code;
|
||||
recommendedSize = 12;
|
||||
fallbackFonts = [
|
||||
"Symbols Nerd Font Mono"
|
||||
];
|
||||
fallbackFonts = [ "Symbols Nerd Font Mono" ];
|
||||
}
|
|
@ -1,14 +1,25 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
with lib;
|
||||
let
|
||||
cfg = config.theming.themes.catppuccin;
|
||||
in {
|
||||
in
|
||||
{
|
||||
options = {
|
||||
theming.themes.catppuccin = {
|
||||
enable = mkEnableOption "catppuccin";
|
||||
flavor = mkOption {
|
||||
type = types.enum [ "latte" "frappe" "macchiato" "mocha" ];
|
||||
type = types.enum [
|
||||
"latte"
|
||||
"frappe"
|
||||
"macchiato"
|
||||
"mocha"
|
||||
];
|
||||
default = "mocha";
|
||||
description = "The flavor of catppuccin theme.";
|
||||
};
|
||||
|
|
|
@ -1,16 +1,26 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
with lib;
|
||||
let
|
||||
cfg = config.theming.themes.gruvbox;
|
||||
mode = if cfg.darkMode then "dark" else "light";
|
||||
in {
|
||||
in
|
||||
{
|
||||
options = {
|
||||
theming.themes.gruvbox = {
|
||||
enable = mkEnableOption "gruvbox-hard";
|
||||
darkMode = mkEnableOption "dark mode";
|
||||
contrast = mkOption {
|
||||
type = types.enum [ "hard" "medium" "soft" ];
|
||||
type = types.enum [
|
||||
"hard"
|
||||
"medium"
|
||||
"soft"
|
||||
];
|
||||
default = "hard";
|
||||
description = "The contrast level of the theme.";
|
||||
};
|
||||
|
|
|
@ -1,10 +1,16 @@
|
|||
{config, lib, pkgs, ... }:
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
with lib;
|
||||
let
|
||||
cfg = config.modules.vscode;
|
||||
theme = config.theming;
|
||||
in {
|
||||
in
|
||||
{
|
||||
options.modules.vscode = {
|
||||
enable = mkEnableOption "vscode";
|
||||
codeFont = mkOption {
|
||||
|
@ -20,17 +26,13 @@ in {
|
|||
config = mkIf cfg.enable {
|
||||
modules.unfree.allowedPackages = [ "vscode" ];
|
||||
|
||||
theming.fonts.extraFonts = [
|
||||
cfg.codeFont
|
||||
];
|
||||
theming.fonts.extraFonts = [ cfg.codeFont ];
|
||||
|
||||
programs.vscode = {
|
||||
enable = true;
|
||||
|
||||
mutableExtensionsDir = false;
|
||||
extensions = with pkgs.vscode-extensions; [
|
||||
eamodio.gitlens
|
||||
];
|
||||
extensions = with pkgs.vscode-extensions; [ eamodio.gitlens ];
|
||||
|
||||
userSettings = {
|
||||
# Font setup
|
||||
|
|
|
@ -1,9 +1,15 @@
|
|||
{config, lib, pkgs, ... }:
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
with lib;
|
||||
let
|
||||
cfg = config.modules.winbox;
|
||||
in {
|
||||
in
|
||||
{
|
||||
options.modules.winbox = {
|
||||
enable = mkEnableOption "winbox";
|
||||
};
|
||||
|
@ -11,8 +17,6 @@ in {
|
|||
config = mkIf cfg.enable {
|
||||
modules.unfree.allowedPackages = [ "winbox" ];
|
||||
|
||||
home.packages = with pkgs; [
|
||||
winbox
|
||||
];
|
||||
home.packages = with pkgs; [ winbox ];
|
||||
};
|
||||
}
|
|
@ -1,8 +1,14 @@
|
|||
{config, lib, pkgs, ... }:
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
cfg = config.modules.zathura;
|
||||
in {
|
||||
in
|
||||
{
|
||||
options.modules.zathura.enable = lib.mkEnableOption "zathura";
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
|
|
|
@ -1,9 +1,15 @@
|
|||
{ lib, config, pkgs, ... }:
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
with lib;
|
||||
let
|
||||
cfg = config.modules.tailscale;
|
||||
in {
|
||||
in
|
||||
{
|
||||
options.modules.tailscale = {
|
||||
enable = mkEnableOption "tailscale";
|
||||
};
|
||||
|
|
|
@ -1,9 +1,15 @@
|
|||
{ lib, config, pkgs, ... }:
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
with lib;
|
||||
let
|
||||
cfg = config.modules.wpa_supplicant;
|
||||
in {
|
||||
in
|
||||
{
|
||||
options.modules.wpa_supplicant = {
|
||||
enable = mkEnableOption "wpa_supplicant";
|
||||
};
|
||||
|
|
|
@ -1,4 +1,9 @@
|
|||
{ lib, config, pkgs, ... }:
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
with lib;
|
||||
# let
|
||||
|
|
|
@ -1,4 +1,9 @@
|
|||
{ lib, config, pkgs, ... }:
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
pkgs.stdenv.mkDerivation rec {
|
||||
pname = "wqy-bitmapsong-pcf";
|
||||
|
|
|
@ -1,4 +1,9 @@
|
|||
{ lib, config, pkgs, ... }:
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
pkgs.stdenv.mkDerivation rec {
|
||||
pname = "wqy-microhei";
|
||||
|
|
|
@ -1,4 +1,9 @@
|
|||
{ lib, config, pkgs, ... }:
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
pkgs.stdenv.mkDerivation rec {
|
||||
pname = "wqy-zenhei";
|
||||
|
|
|
@ -39,7 +39,11 @@
|
|||
};
|
||||
|
||||
# Theme configuration
|
||||
theming = let fontpkgs = config.theming.fonts.pkgs; in {
|
||||
theming =
|
||||
let
|
||||
fontpkgs = config.theming.fonts.pkgs;
|
||||
in
|
||||
{
|
||||
# Fonts
|
||||
fonts.serif = fontpkgs."DejaVu Serif";
|
||||
fonts.sansSerif = fontpkgs."DejaVu Sans";
|
||||
|
|
Loading…
Reference in New Issue