Compare commits
7 commits
b30f6e22a6
...
32f419cdb1
Author | SHA1 | Date | |
---|---|---|---|
32f419cdb1 | |||
a344b8fcf6 | |||
d5141091bd | |||
3a26b31226 | |||
ed3384b223 | |||
b13a75f429 | |||
47e12fd9c9 |
175 changed files with 2147 additions and 2090 deletions
|
@ -3,26 +3,33 @@
|
|||
inputs,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
age.secrets = let
|
||||
}:
|
||||
|
||||
{
|
||||
age.secrets =
|
||||
let
|
||||
secret = filename: {
|
||||
file = "${inputs.self}/secrets/${filename}";
|
||||
};
|
||||
in {
|
||||
in
|
||||
{
|
||||
"common/nix/access-tokens.conf" = secret "common/nix/access-tokens.conf";
|
||||
};
|
||||
|
||||
### NixOS
|
||||
nixpkgs = let
|
||||
nixpkgs =
|
||||
let
|
||||
config = {
|
||||
allowUnfree = true;
|
||||
|
||||
allowInsecurePredicate = pkg: let
|
||||
allowInsecurePredicate =
|
||||
pkg:
|
||||
let
|
||||
name = lib.getName pkg;
|
||||
in
|
||||
# HACK: Allow all insecure electron versions
|
||||
name
|
||||
== "electron"
|
||||
name == "electron"
|
||||
|
||||
# HACK: Some Matrix clients rely on libolm, which is deprecated
|
||||
# https://github.com/NixOS/nixpkgs/pull/334638
|
||||
|| name == "cinny"
|
||||
|
@ -31,13 +38,16 @@
|
|||
|| name == "olm"
|
||||
|| name == "openssl"; # Cisco Packet Tracer
|
||||
};
|
||||
in {
|
||||
in
|
||||
{
|
||||
inherit config;
|
||||
|
||||
overlays = [
|
||||
(
|
||||
final: prev: let
|
||||
nixpkgs = branch:
|
||||
final: prev:
|
||||
let
|
||||
nixpkgs =
|
||||
branch:
|
||||
import inputs."nixpkgs-${branch}" {
|
||||
inherit config;
|
||||
system = prev.system;
|
||||
|
@ -47,7 +57,8 @@
|
|||
unstable = nixpkgs "unstable";
|
||||
staging-next = nixpkgs "staging-next";
|
||||
local = nixpkgs "local";
|
||||
in {
|
||||
in
|
||||
{
|
||||
# Overlay nixpkgs branches
|
||||
#?? nixpkgs.BRANCH.PACKAGE
|
||||
inherit stable unstable staging-next;
|
||||
|
|
54
flake.in.nix
54
flake.in.nix
|
@ -59,17 +59,24 @@
|
|||
fw-fanctrl = flake "github:TamtamHero/fw-fanctrl/packaging/nix" // unstable "nixpkgs";
|
||||
hypridle = flake "github:hyprwm/hypridle" // unstable "nixpkgs";
|
||||
#// hyprland = flake "git+https://github.com/hyprwm/Hyprland?submodules=1" // unstable "nixpkgs";
|
||||
hyprland = flake "git+https://github.com/hyprwm/Hyprland?ref=refs/tags/v0.43.0&submodules=1" // unstable "nixpkgs";
|
||||
#// hyprland = flake "git+https://github.com/UjinT34/Hyprland?ref=vrr-cursor-fix&submodules=1" // unstable "nixpkgs";
|
||||
hyprland =
|
||||
flake "git+https://github.com/hyprwm/Hyprland?ref=refs/tags/v0.43.0&submodules=1"
|
||||
// unstable "nixpkgs";
|
||||
#// hyprland =
|
||||
#// flake "git+https://github.com/UjinT34/Hyprland?ref=vrr-cursor-fix&submodules=1"
|
||||
#// // unstable "nixpkgs";
|
||||
hyprland-contrib = flake "github:hyprwm/contrib" // unstable "nixpkgs";
|
||||
hyprland-plugins = flake "github:hyprwm/hyprland-plugins" // unstable "nixpkgs" // follows "hyprland";
|
||||
hyprland-plugins =
|
||||
flake "github:hyprwm/hyprland-plugins" // unstable "nixpkgs" // follows "hyprland";
|
||||
hyprlock = flake "github:hyprwm/hyprlock" // unstable "nixpkgs";
|
||||
hyprpaper = flake "github:hyprwm/hyprpaper" // unstable "nixpkgs";
|
||||
hyprpicker = flake "github:hyprwm/hyprpicker" // unstable "nixpkgs";
|
||||
nix-flatpak = flake "github:gmodena/nix-flatpak?ref=v0.4.1";
|
||||
nix-vscode-extensions = flake "github:nix-community/nix-vscode-extensions" // unstable "nixpkgs";
|
||||
nixd = flake "github:nix-community/nixd" // unstable "nixpkgs";
|
||||
xdg-desktop-portal-hyprland = flake "github:hyprwm/xdg-desktop-portal-hyprland" // unstable "nixpkgs";
|
||||
xdg-desktop-portal-hyprland =
|
||||
flake "github:hyprwm/xdg-desktop-portal-hyprland"
|
||||
// unstable "nixpkgs";
|
||||
|
||||
# Server flakes
|
||||
conduwuit = flake "github:Myned/conduwuit" // unstable "nixpkgs";
|
||||
|
@ -105,7 +112,10 @@
|
|||
common = branch: arch: modules:
|
||||
inputs."nixpkgs-${branch}".lib.nixosSystem {
|
||||
system = arch;
|
||||
specialArgs = {inherit inputs;};
|
||||
|
||||
specialArgs = {
|
||||
inherit inputs;
|
||||
};
|
||||
|
||||
# TODO: Clean up optional attributes with each new release
|
||||
#!! Options will diverge between branches over time
|
||||
|
@ -148,14 +158,36 @@
|
|||
unstable = arch: modules: common "unstable" "${arch}-linux" modules;
|
||||
in {
|
||||
### Stable
|
||||
myarm = stable "aarch64" [./profiles/server ./machines/myarm];
|
||||
myne = stable "x86_64" [./profiles/server ./machines/myne];
|
||||
mypi3 = stable "aarch64" [./profiles/sbc ./machines/mypi3];
|
||||
myarm = stable "aarch64" [
|
||||
./profiles/server
|
||||
./machines/myarm
|
||||
];
|
||||
|
||||
myne = stable "x86_64" [
|
||||
./profiles/server
|
||||
./machines/myne
|
||||
];
|
||||
|
||||
mypi3 = stable "aarch64" [
|
||||
./profiles/sbc
|
||||
./machines/mypi3
|
||||
];
|
||||
|
||||
### Unstable
|
||||
myeck = unstable "x86_64" [./profiles/console ./machines/myeck];
|
||||
mynix = unstable "x86_64" [./profiles/desktop ./machines/mynix];
|
||||
myork = unstable "x86_64" [./profiles/laptop ./machines/myork];
|
||||
myeck = unstable "x86_64" [
|
||||
./profiles/console
|
||||
./machines/myeck
|
||||
];
|
||||
|
||||
mynix = unstable "x86_64" [
|
||||
./profiles/desktop
|
||||
./machines/mynix
|
||||
];
|
||||
|
||||
myork = unstable "x86_64" [
|
||||
./profiles/laptop
|
||||
./machines/myork
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
size = "100%";
|
||||
content = {
|
||||
type = "btrfs";
|
||||
extraArgs = ["-f"];
|
||||
extraArgs = [ "-f" ];
|
||||
subvolumes = {
|
||||
"/root" = {
|
||||
mountpoint = "/";
|
||||
|
|
|
@ -7,17 +7,19 @@
|
|||
pkgs,
|
||||
modulesPath,
|
||||
...
|
||||
}: {
|
||||
imports = [(modulesPath + "/profiles/qemu-guest.nix")];
|
||||
}:
|
||||
|
||||
{
|
||||
imports = [ (modulesPath + "/profiles/qemu-guest.nix") ];
|
||||
|
||||
boot.initrd.availableKernelModules = [
|
||||
"xhci_pci"
|
||||
"virtio_scsi"
|
||||
"sr_mod"
|
||||
];
|
||||
boot.initrd.kernelModules = [];
|
||||
boot.kernelModules = [];
|
||||
boot.extraModulePackages = [];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||
|
|
|
@ -19,5 +19,5 @@
|
|||
};
|
||||
};
|
||||
|
||||
systemd.tmpfiles.rules = ["z /mnt/external 0755 myned users"];
|
||||
systemd.tmpfiles.rules = [ "z /mnt/external 0755 myned users" ];
|
||||
}
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
size = "100%";
|
||||
content = {
|
||||
type = "btrfs";
|
||||
extraArgs = ["-f"];
|
||||
extraArgs = [ "-f" ];
|
||||
subvolumes = {
|
||||
"/root" = {
|
||||
mountpoint = "/";
|
||||
|
|
|
@ -7,8 +7,10 @@
|
|||
pkgs,
|
||||
modulesPath,
|
||||
...
|
||||
}: {
|
||||
imports = [(modulesPath + "/installer/scan/not-detected.nix")];
|
||||
}:
|
||||
|
||||
{
|
||||
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
|
||||
|
||||
boot.initrd.availableKernelModules = [
|
||||
"nvme"
|
||||
|
@ -19,9 +21,9 @@
|
|||
"sd_mod"
|
||||
"sdhci_pci"
|
||||
];
|
||||
boot.initrd.kernelModules = [];
|
||||
boot.kernelModules = ["kvm-amd"];
|
||||
boot.extraModulePackages = [];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ "kvm-amd" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
size = "100%";
|
||||
content = {
|
||||
type = "btrfs";
|
||||
extraArgs = ["-f"];
|
||||
extraArgs = [ "-f" ];
|
||||
subvolumes = {
|
||||
"/root" = {
|
||||
mountpoint = "/";
|
||||
|
|
|
@ -7,8 +7,10 @@
|
|||
pkgs,
|
||||
modulesPath,
|
||||
...
|
||||
}: {
|
||||
imports = [(modulesPath + "/profiles/qemu-guest.nix")];
|
||||
}:
|
||||
|
||||
{
|
||||
imports = [ (modulesPath + "/profiles/qemu-guest.nix") ];
|
||||
|
||||
boot.initrd.availableKernelModules = [
|
||||
"ahci"
|
||||
|
@ -18,9 +20,9 @@
|
|||
"sd_mod"
|
||||
"sr_mod"
|
||||
];
|
||||
boot.initrd.kernelModules = [];
|
||||
boot.kernelModules = [];
|
||||
boot.extraModulePackages = [];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
passwordFile = "/tmp/secret.key";
|
||||
content = {
|
||||
type = "btrfs";
|
||||
extraArgs = ["-f"];
|
||||
extraArgs = [ "-f" ];
|
||||
subvolumes = {
|
||||
"/root" = {
|
||||
mountpoint = "/";
|
||||
|
|
|
@ -7,8 +7,10 @@
|
|||
pkgs,
|
||||
modulesPath,
|
||||
...
|
||||
}: {
|
||||
imports = [(modulesPath + "/installer/scan/not-detected.nix")];
|
||||
}:
|
||||
|
||||
{
|
||||
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
|
||||
|
||||
boot.initrd.availableKernelModules = [
|
||||
"xhci_pci"
|
||||
|
@ -19,9 +21,9 @@
|
|||
"usb_storage"
|
||||
"sd_mod"
|
||||
];
|
||||
boot.initrd.kernelModules = [];
|
||||
boot.kernelModules = ["kvm-intel"];
|
||||
boot.extraModulePackages = [];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ "kvm-intel" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||
|
|
|
@ -4,9 +4,12 @@
|
|||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
}:
|
||||
|
||||
let
|
||||
brightnessctl = "${pkgs.brightnessctl}/bin/brightnessctl";
|
||||
in {
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
inputs.nixos-hardware.nixosModules.framework-13-7040-amd
|
||||
|
||||
|
@ -32,7 +35,7 @@ in {
|
|||
|
||||
home-manager.users.${config.custom.username} = with lib; {
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
exec-once = ["${brightnessctl} set 0%"];
|
||||
exec-once = [ "${brightnessctl} set 0%" ];
|
||||
|
||||
master = {
|
||||
mfact = mkForce 0.5;
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
passwordFile = "/tmp/secret.key";
|
||||
content = {
|
||||
type = "btrfs";
|
||||
extraArgs = ["-f"];
|
||||
extraArgs = [ "-f" ];
|
||||
subvolumes = {
|
||||
"/root" = {
|
||||
mountpoint = "/";
|
||||
|
|
|
@ -7,8 +7,10 @@
|
|||
pkgs,
|
||||
modulesPath,
|
||||
...
|
||||
}: {
|
||||
imports = [(modulesPath + "/installer/scan/not-detected.nix")];
|
||||
}:
|
||||
|
||||
{
|
||||
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
|
||||
|
||||
boot.initrd.availableKernelModules = [
|
||||
"nvme"
|
||||
|
@ -18,9 +20,9 @@
|
|||
"uas"
|
||||
"sd_mod"
|
||||
];
|
||||
boot.initrd.kernelModules = [];
|
||||
boot.kernelModules = ["kvm-amd"];
|
||||
boot.extraModulePackages = [];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ "kvm-amd" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
imports = [./hardware-configuration.nix];
|
||||
imports = [ ./hardware-configuration.nix ];
|
||||
|
||||
custom.hostname = "mypi3";
|
||||
|
||||
|
|
|
@ -7,20 +7,22 @@
|
|||
pkgs,
|
||||
modulesPath,
|
||||
...
|
||||
}: {
|
||||
imports = [(modulesPath + "/installer/scan/not-detected.nix")];
|
||||
}:
|
||||
|
||||
boot.initrd.availableKernelModules = [];
|
||||
boot.initrd.kernelModules = [];
|
||||
boot.kernelModules = [];
|
||||
boot.extraModulePackages = [];
|
||||
{
|
||||
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
|
||||
|
||||
boot.initrd.availableKernelModules = [ ];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems."/" = {
|
||||
device = "/dev/disk/by-uuid/44444444-4444-4444-8888-888888888888";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
swapDevices = [];
|
||||
swapDevices = [ ];
|
||||
|
||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||
|
|
|
@ -1,38 +1,38 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.custom;
|
||||
in {
|
||||
in
|
||||
{
|
||||
options.custom = {
|
||||
### Profiles
|
||||
default = mkOption {default = true;};
|
||||
full = mkOption {default = false;};
|
||||
minimal = mkOption {default = cfg.full;};
|
||||
profile = mkOption {};
|
||||
default = mkOption { default = true; };
|
||||
full = mkOption { default = false; };
|
||||
minimal = mkOption { default = cfg.full; };
|
||||
profile = mkOption { };
|
||||
|
||||
### Users
|
||||
domain = mkOption {default = "bjork.tech";};
|
||||
hostname = mkOption {};
|
||||
realname = mkOption {default = "Myned";};
|
||||
username = mkOption {default = "myned";};
|
||||
domain = mkOption { default = "bjork.tech"; };
|
||||
hostname = mkOption { };
|
||||
realname = mkOption { default = "Myned"; };
|
||||
username = mkOption { default = "myned"; };
|
||||
|
||||
### Hardware
|
||||
width = mkOption {default = 1920;};
|
||||
height = mkOption {default = 1080;};
|
||||
ultrawide = mkOption {default = cfg.width * 9 / 16 > cfg.height;}; # Wider than 16:9
|
||||
hidpi = mkOption {default = cfg.scale > 1;};
|
||||
scale = mkOption {default = 1;};
|
||||
width = mkOption { default = 1920; };
|
||||
height = mkOption { default = 1080; };
|
||||
ultrawide = mkOption { default = cfg.width * 9 / 16 > cfg.height; }; # Wider than 16:9
|
||||
hidpi = mkOption { default = cfg.scale > 1; };
|
||||
scale = mkOption { default = 1; };
|
||||
|
||||
# TODO: Use option for border size
|
||||
border = mkOption {default = 2;};
|
||||
border = mkOption { default = 2; };
|
||||
|
||||
gap = mkOption {default = 10;};
|
||||
padding = mkOption {default = 56;}; # ?? journalctl --user -u waybar.service | grep height:
|
||||
gap = mkOption { default = 10; };
|
||||
padding = mkOption { default = 56; }; # ?? journalctl --user -u waybar.service | grep height:
|
||||
|
||||
### Misc
|
||||
wallpaper = mkOption {default = false;};
|
||||
wallpaper = mkOption { default = false; };
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; {
|
||||
config.custom.desktops.hyprland.enable = config.custom.full;
|
||||
}
|
||||
|
|
|
@ -4,12 +4,16 @@
|
|||
pkgs,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.custom.desktops.gnome;
|
||||
in {
|
||||
in
|
||||
{
|
||||
options.custom.desktops.gnome = {
|
||||
enable = mkOption {default = false;};
|
||||
gdm = mkOption {default = true;};
|
||||
enable = mkOption { default = false; };
|
||||
gdm = mkOption { default = true; };
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
|
@ -26,6 +30,6 @@ in {
|
|||
|
||||
# Remove default packages
|
||||
# https://wiki.nixos.org/wiki/GNOME#Excluding_GNOME_Applications
|
||||
environment.gnome.excludePackages = [pkgs.gnome-shell-extensions];
|
||||
environment.gnome.excludePackages = [ pkgs.gnome-shell-extensions ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -4,10 +4,14 @@
|
|||
pkgs,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.custom.desktops.hyprland;
|
||||
in {
|
||||
options.custom.desktops.hyprland.enable = mkOption {default = false;};
|
||||
in
|
||||
{
|
||||
options.custom.desktops.hyprland.enable = mkOption { default = false; };
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
custom.desktops.hyprland = mkIf config.custom.full {
|
||||
|
@ -22,7 +26,7 @@ in {
|
|||
|
||||
xdg.portal = {
|
||||
enable = true;
|
||||
extraPortals = [pkgs.xdg-desktop-portal-gtk];
|
||||
extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
|
||||
|
||||
# Prefer hyprland over gtk portal
|
||||
config.common.default = [
|
||||
|
@ -34,7 +38,7 @@ in {
|
|||
# https://wiki.hyprland.org
|
||||
home-manager.users.${config.custom.username}.wayland.windowManager.hyprland = {
|
||||
enable = true;
|
||||
systemd.variables = ["--all"]; # Import some environment variables into session
|
||||
systemd.variables = [ "--all" ]; # Import some environment variables into session
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -4,18 +4,22 @@
|
|||
pkgs,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
hyprctl = "${pkgs.hyprland}/bin/hyprctl";
|
||||
|
||||
cfg = config.custom.desktops.hyprland.plugins;
|
||||
in {
|
||||
options.custom.desktops.hyprland.plugins.enable = mkOption {default = false;};
|
||||
in
|
||||
{
|
||||
options.custom.desktops.hyprland.plugins.enable = mkOption { default = false; };
|
||||
|
||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||
wayland.windowManager.hyprland = {
|
||||
# https://github.com/hyprwm/hyprland-plugins/tree/main/hyprbars
|
||||
# https://wiki.hyprland.org/Plugins/Using-Plugins
|
||||
plugins = with pkgs.hyprlandPlugins; [hyprbars];
|
||||
plugins = with pkgs.hyprlandPlugins; [ hyprbars ];
|
||||
|
||||
settings = {
|
||||
#!! Static rules
|
||||
|
|
|
@ -4,7 +4,10 @@
|
|||
pkgs,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
clipse = "${pkgs.clipse}/bin/clipse";
|
||||
firefox-esr = "${
|
||||
config.home-manager.users.${config.custom.username}.programs.firefox.finalPackage
|
||||
|
@ -19,8 +22,9 @@ with lib; let
|
|||
}/bin/waybar";
|
||||
|
||||
cfg = config.custom.desktops.hyprland.settings;
|
||||
in {
|
||||
options.custom.desktops.hyprland.settings.enable = mkOption {default = false;};
|
||||
in
|
||||
{
|
||||
options.custom.desktops.hyprland.settings.enable = mkOption { default = false; };
|
||||
|
||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
|
@ -47,14 +51,12 @@ in {
|
|||
#?? envd = VARIABLE, VALUE
|
||||
# HACK: Mapped home-manager variables to envd in lieu of upstream fix
|
||||
# https://github.com/nix-community/home-manager/issues/2659
|
||||
envd = with builtins;
|
||||
attrValues
|
||||
(
|
||||
mapAttrs
|
||||
(
|
||||
envd =
|
||||
with builtins;
|
||||
attrValues (
|
||||
mapAttrs (
|
||||
name: value: "${name}, ${toString value}"
|
||||
)
|
||||
config.home-manager.users.${config.custom.username}.home.sessionVariables
|
||||
) config.home-manager.users.${config.custom.username}.home.sessionVariables
|
||||
)
|
||||
++ [
|
||||
"EDITOR, gnome-text-editor"
|
||||
|
@ -64,8 +66,7 @@ in {
|
|||
#// exec = [ ];
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Keywords/#executing
|
||||
exec-once =
|
||||
[
|
||||
exec-once = [
|
||||
"${rm} ~/.config/qalculate/qalc.dmenu.history" # Clear calc history
|
||||
"${clipse} -clear" # Clear clipboard history
|
||||
"${clipse} -listen" # Monitor clipboard
|
||||
|
@ -142,10 +143,7 @@ in {
|
|||
"col.inactive" = "rgba(6c71c440)";
|
||||
"col.locked_active" = "rgb(d33682)";
|
||||
"col.locked_inactive" = "rgba(d3368240)";
|
||||
font_size =
|
||||
if config.custom.hidpi
|
||||
then 16
|
||||
else 10;
|
||||
font_size = if config.custom.hidpi then 16 else 10;
|
||||
height = 5;
|
||||
render_titles = false;
|
||||
text_color = "rgb(93a1a1)";
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.custom.desktops.kde;
|
||||
in {
|
||||
options.custom.desktops.kde.enable = mkOption {default = false;};
|
||||
{ config, lib, ... }:
|
||||
|
||||
config = mkIf cfg.enable {services.desktopManager.plasma6.enable = true;};
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.custom.desktops.kde;
|
||||
in
|
||||
{
|
||||
options.custom.desktops.kde.enable = mkOption { default = false; };
|
||||
|
||||
config = mkIf cfg.enable { services.desktopManager.plasma6.enable = true; };
|
||||
}
|
||||
|
|
|
@ -1,16 +1,16 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.custom.files.agenix;
|
||||
in {
|
||||
in
|
||||
{
|
||||
# https://wiki.nixos.org/wiki/Agenix
|
||||
# https://github.com/ryantm/agenix
|
||||
options.custom.files.agenix.enable = mkOption {default = false;};
|
||||
options.custom.files.agenix.enable = mkOption { default = false; };
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
age.identityPaths = ["/etc/ssh/id_ed25519"]; # !! Must be set without sshd
|
||||
age.identityPaths = [ "/etc/ssh/id_ed25519" ]; # !! Must be set without sshd
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,9 +1,8 @@
|
|||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; {
|
||||
config.custom.files = mkIf config.custom.default {
|
||||
agenix.enable = true;
|
||||
dev.enable = true;
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.custom.files.dev;
|
||||
in {
|
||||
options.custom.files.dev.enable = mkOption {default = false;};
|
||||
in
|
||||
{
|
||||
options.custom.files.dev.enable = mkOption { default = false; };
|
||||
|
||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||
# .keep empty file needed to create empty directory
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.custom.files.mnt;
|
||||
in {
|
||||
options.custom.files.mnt.enable = mkOption {default = false;};
|
||||
in
|
||||
{
|
||||
options.custom.files.mnt.enable = mkOption { default = false; };
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
# Set /mnt permissions
|
||||
systemd.tmpfiles.rules = ["z /mnt 0755 root root"];
|
||||
systemd.tmpfiles.rules = [ "z /mnt 0755 root root" ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.custom.files.nixos;
|
||||
in {
|
||||
options.custom.files.nixos.enable = mkOption {default = false;};
|
||||
in
|
||||
{
|
||||
options.custom.files.nixos.enable = mkOption { default = false; };
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
# https://www.freedesktop.org/software/systemd/man/latest/tmpfiles.d.html
|
||||
|
|
|
@ -1,17 +1,17 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.custom.programs.adb;
|
||||
in {
|
||||
options.custom.programs.adb.enable = mkOption {default = false;};
|
||||
in
|
||||
{
|
||||
options.custom.programs.adb.enable = mkOption { default = false; };
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
# https://wiki.nixos.org/wiki/Android
|
||||
# https://developer.android.com/tools/adb
|
||||
programs.adb.enable = true;
|
||||
users.users.${config.custom.username}.extraGroups = ["adbusers"];
|
||||
users.users.${config.custom.username}.extraGroups = [ "adbusers" ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -4,13 +4,17 @@
|
|||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.custom.programs.ags;
|
||||
in {
|
||||
options.custom.programs.ags.enable = mkOption {default = false;};
|
||||
in
|
||||
{
|
||||
options.custom.programs.ags.enable = mkOption { default = false; };
|
||||
|
||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||
imports = [inputs.ags.homeManagerModules.default];
|
||||
imports = [ inputs.ags.homeManagerModules.default ];
|
||||
|
||||
# https://aylur.github.io/ags-docs
|
||||
# https://github.com/Aylur/ags
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.custom.programs.alacritty;
|
||||
in {
|
||||
options.custom.programs.alacritty.enable = mkOption {default = false;};
|
||||
in
|
||||
{
|
||||
options.custom.programs.alacritty.enable = mkOption { default = false; };
|
||||
|
||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||
# https://github.com/alacritty/alacritty
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.custom.programs.anime-game-launcher;
|
||||
in {
|
||||
options.custom.programs.anime-game-launcher.enable = mkOption {default = false;};
|
||||
in
|
||||
{
|
||||
options.custom.programs.anime-game-launcher.enable = mkOption { default = false; };
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
# https://github.com/an-anime-team
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.custom.programs.appimage;
|
||||
in {
|
||||
options.custom.programs.appimage.enable = mkOption {default = false;};
|
||||
in
|
||||
{
|
||||
options.custom.programs.appimage.enable = mkOption { default = false; };
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
# https://wiki.nixos.org/wiki/Appimage
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
wofi = "${config.home-manager.users.${config.custom.username}.programs.wofi.package}/bin/wofi";
|
||||
|
||||
cfg = config.custom.programs.bitwarden-menu;
|
||||
in {
|
||||
options.custom.programs.bitwarden-menu.enable = mkOption {default = false;};
|
||||
in
|
||||
{
|
||||
options.custom.programs.bitwarden-menu.enable = mkOption { default = false; };
|
||||
|
||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||
# https://github.com/firecat53/bitwarden-menu
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.custom.programs.chromium;
|
||||
in {
|
||||
options.custom.programs.chromium.enable = mkOption {default = false;};
|
||||
in
|
||||
{
|
||||
options.custom.programs.chromium.enable = mkOption { default = false; };
|
||||
|
||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||
# https://wiki.nixos.org/wiki/Chromium
|
||||
|
|
|
@ -4,10 +4,14 @@
|
|||
pkgs,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.custom.programs.clipse;
|
||||
in {
|
||||
options.custom.programs.clipse.enable = mkOption {default = false;};
|
||||
in
|
||||
{
|
||||
options.custom.programs.clipse.enable = mkOption { default = false; };
|
||||
|
||||
config = {
|
||||
# https://github.com/savedra1/clipse
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.custom.programs.dconf;
|
||||
in {
|
||||
options.custom.programs.dconf.enable = mkOption {default = false;};
|
||||
in
|
||||
{
|
||||
options.custom.programs.dconf.enable = mkOption { default = false; };
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
# https://gitlab.gnome.org/GNOME/dconf
|
||||
|
|
|
@ -1,9 +1,8 @@
|
|||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; {
|
||||
config.custom.programs = mkMerge [
|
||||
(mkIf config.custom.default {
|
||||
direnv.enable = true;
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.custom.programs.direnv;
|
||||
in {
|
||||
options.custom.programs.direnv.enable = mkOption {default = false;};
|
||||
in
|
||||
{
|
||||
options.custom.programs.direnv.enable = mkOption { default = false; };
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
# https://github.com/direnv/direnv
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.custom.programs.discord;
|
||||
in {
|
||||
options.custom.programs.discord.enable = mkOption {default = false;};
|
||||
in
|
||||
{
|
||||
options.custom.programs.discord.enable = mkOption { default = false; };
|
||||
|
||||
config.home-manager.users.myned = mkIf cfg.enable {
|
||||
home.file.".config/BetterDiscord".source =
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.custom.programs.element-desktop;
|
||||
in {
|
||||
options.custom.programs.element-desktop.enable = mkOption {default = false;};
|
||||
in
|
||||
{
|
||||
options.custom.programs.element-desktop.enable = mkOption { default = false; };
|
||||
|
||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||
# Element Desktop custom themes
|
||||
|
|
|
@ -4,19 +4,23 @@
|
|||
pkgs,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
fastfetch = "${pkgs.fastfetch}/bin/fastfetch";
|
||||
|
||||
cfg = config.custom.programs.fastfetch;
|
||||
in {
|
||||
in
|
||||
{
|
||||
options.custom.programs.fastfetch = {
|
||||
enable = mkOption {default = false;};
|
||||
greet = mkOption {default = false;};
|
||||
enable = mkOption { default = false; };
|
||||
greet = mkOption { default = false; };
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
# https://github.com/fastfetch-cli/fastfetch
|
||||
environment.systemPackages = [pkgs.fastfetch];
|
||||
environment.systemPackages = [ pkgs.fastfetch ];
|
||||
|
||||
# System info greeting
|
||||
programs.fish.interactiveShellInit = mkIf cfg.greet ''
|
||||
|
|
|
@ -5,10 +5,14 @@
|
|||
pkgs,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.custom.programs.firefox;
|
||||
in {
|
||||
options.custom.programs.firefox.enable = mkOption {default = false;};
|
||||
in
|
||||
{
|
||||
options.custom.programs.firefox.enable = mkOption { default = false; };
|
||||
|
||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||
# TODO: Switch to librewolf when supported by module
|
||||
|
@ -112,7 +116,8 @@ in {
|
|||
# https://mozilla.github.io/policy-templates/#extensionsettings
|
||||
#?? https://addons.mozilla.org/en-US/firefox
|
||||
#?? about:support#addons
|
||||
ExtensionSettings = let
|
||||
ExtensionSettings =
|
||||
let
|
||||
extension = id: {
|
||||
install_url = "https://addons.mozilla.org/firefox/downloads/latest/${id}/latest.xpi";
|
||||
installation_mode = "normal_installed";
|
||||
|
@ -189,12 +194,14 @@ in {
|
|||
#!! Only certain preferences are supported via policies
|
||||
# https://mozilla.github.io/policy-templates/#preferences
|
||||
#?? about:config
|
||||
Preferences = let
|
||||
Preferences =
|
||||
let
|
||||
locked = value: {
|
||||
Value = value;
|
||||
Status = "locked";
|
||||
};
|
||||
in {
|
||||
in
|
||||
{
|
||||
"accessibility.browsewithcaret" = locked false;
|
||||
"accessibility.typeaheadfind" = locked false;
|
||||
"browser.aboutConfig.showWarning" = locked false;
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.custom.programs.fish;
|
||||
in {
|
||||
options.custom.programs.fish.enable = mkOption {default = false;};
|
||||
in
|
||||
{
|
||||
options.custom.programs.fish.enable = mkOption { default = false; };
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
# https://wiki.nixos.org/wiki/Fish
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.custom.programs.foot;
|
||||
in {
|
||||
options.custom.programs.foot.enable = mkOption {default = false;};
|
||||
in
|
||||
{
|
||||
options.custom.programs.foot.enable = mkOption { default = false; };
|
||||
|
||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||
# https://codeberg.org/dnkl/foot
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.custom.programs.fuzzel;
|
||||
in {
|
||||
options.custom.programs.fuzzel.enable = mkOption {default = false;};
|
||||
in
|
||||
{
|
||||
options.custom.programs.fuzzel.enable = mkOption { default = false; };
|
||||
|
||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||
# https://codeberg.org/dnkl/fuzzel
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.custom.programs.gamemode;
|
||||
in {
|
||||
options.custom.programs.gamemode.enable = mkOption {default = false;};
|
||||
in
|
||||
{
|
||||
options.custom.programs.gamemode.enable = mkOption { default = false; };
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
# https://github.com/FeralInteractive/gamemode
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.custom.programs.gamescope;
|
||||
in {
|
||||
options.custom.programs.gamescope.enable = mkOption {default = false;};
|
||||
in
|
||||
{
|
||||
options.custom.programs.gamescope.enable = mkOption { default = false; };
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
# https://github.com/ValveSoftware/gamescope
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.custom.programs.git;
|
||||
in {
|
||||
options.custom.programs.git.enable = mkOption {default = false;};
|
||||
in
|
||||
{
|
||||
options.custom.programs.git.enable = mkOption { default = false; };
|
||||
|
||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||
# https://wiki.archlinux.org/title/Git
|
||||
|
|
|
@ -4,38 +4,43 @@
|
|||
pkgs,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.custom.programs.gnome-shell;
|
||||
in {
|
||||
options.custom.programs.gnome-shell.enable = mkOption {default = false;};
|
||||
in
|
||||
{
|
||||
options.custom.programs.gnome-shell.enable = mkOption { default = false; };
|
||||
|
||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||
# BUG: programs.gnome-shell.theme option forces installation of gnome-shell-extensions
|
||||
programs.gnome-shell = {
|
||||
enable = true;
|
||||
|
||||
extensions = with pkgs.gnomeExtensions;
|
||||
extensions =
|
||||
with pkgs.gnomeExtensions;
|
||||
optionals config.custom.default [
|
||||
{package = appindicator;} # https://github.com/ubuntu/gnome-shell-extension-appindicator
|
||||
{ package = appindicator; } # https://github.com/ubuntu/gnome-shell-extension-appindicator
|
||||
]
|
||||
++ optionals config.custom.minimal [
|
||||
{package = caffeine;} # https://github.com/eonpatapon/gnome-shell-extension-caffeine
|
||||
{package = dash-to-dock;} # https://github.com/micheleg/dash-to-dock
|
||||
{ package = caffeine; } # https://github.com/eonpatapon/gnome-shell-extension-caffeine
|
||||
{ package = dash-to-dock; } # https://github.com/micheleg/dash-to-dock
|
||||
#// { package = dash2dock-lite; } # https://github.com/icedman/dash2dock-lite
|
||||
{package = gsconnect;} # https://github.com/GSConnect/gnome-shell-extension-gsconnect
|
||||
{package = just-perfection;} # https://gitlab.gnome.org/jrahmatzadeh/just-perfection
|
||||
{package = rounded-window-corners-reborn;} # https://github.com/flexagoon/rounded-window-corners
|
||||
{ package = gsconnect; } # https://github.com/GSConnect/gnome-shell-extension-gsconnect
|
||||
{ package = just-perfection; } # https://gitlab.gnome.org/jrahmatzadeh/just-perfection
|
||||
{ package = rounded-window-corners-reborn; } # https://github.com/flexagoon/rounded-window-corners
|
||||
#// { package = user-themes; } # https://gitlab.gnome.org/GNOME/gnome-shell-extensions
|
||||
]
|
||||
++ optionals config.custom.full [
|
||||
#// { package = auto-move-windows; } # https://gitlab.gnome.org/GNOME/gnome-shell-extensions
|
||||
{package = clipboard-indicator;} # https://github.com/Tudmotu/gnome-shell-extension-clipboard-indicator
|
||||
{package = ddterm;} # https://github.com/ddterm/gnome-shell-extension-ddterm
|
||||
{ package = clipboard-indicator; } # https://github.com/Tudmotu/gnome-shell-extension-clipboard-indicator
|
||||
{ package = ddterm; } # https://github.com/ddterm/gnome-shell-extension-ddterm
|
||||
#// { package = hide-top-bar; } # https://gitlab.gnome.org/tuxor1337/hidetopbar
|
||||
{package = media-controls;} # https://github.com/sakithb/media-controls
|
||||
{ package = media-controls; } # https://github.com/sakithb/media-controls
|
||||
#// { package = smart-auto-move; } # https://github.com/khimaros/smart-auto-move
|
||||
{package = tailscale-qs;} # https://github.com/joaophi/tailscale-gnome-qs
|
||||
{package = tiling-assistant;} # https://github.com/Leleat/Tiling-Assistant
|
||||
{ package = tailscale-qs; } # https://github.com/joaophi/tailscale-gnome-qs
|
||||
{ package = tiling-assistant; } # https://github.com/Leleat/Tiling-Assistant
|
||||
];
|
||||
};
|
||||
};
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.custom.programs.gnome-terminal;
|
||||
in {
|
||||
options.custom.programs.gnome-terminal.enable = mkOption {default = false;};
|
||||
in
|
||||
{
|
||||
options.custom.programs.gnome-terminal.enable = mkOption { default = false; };
|
||||
|
||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||
# https://gitlab.gnome.org/GNOME/gnome-terminal
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.custom.programs.gpg;
|
||||
in {
|
||||
options.custom.programs.gpg.enable = mkOption {default = false;};
|
||||
in
|
||||
{
|
||||
options.custom.programs.gpg.enable = mkOption { default = false; };
|
||||
|
||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||
# https://wiki.archlinux.org/title/GnuPG
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.custom.programs.htop;
|
||||
in {
|
||||
options.custom.programs.htop.enable = mkOption {default = false;};
|
||||
in
|
||||
{
|
||||
options.custom.programs.htop.enable = mkOption { default = false; };
|
||||
|
||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||
# https://github.com/htop-dev/htop
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.custom.programs.hyprlock;
|
||||
in {
|
||||
options.custom.programs.hyprlock.enable = mkOption {default = false;};
|
||||
in
|
||||
{
|
||||
options.custom.programs.hyprlock.enable = mkOption { default = false; };
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
programs.hyprlock.enable = true; # Grant PAM access
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.custom.programs.kdeconnect;
|
||||
in {
|
||||
options.custom.programs.kdeconnect.enable = mkOption {default = false;};
|
||||
in
|
||||
{
|
||||
options.custom.programs.kdeconnect.enable = mkOption { default = false; };
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
# https://github.com/KDE/kdeconnect-kde
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.custom.programs.kitty;
|
||||
in {
|
||||
options.custom.programs.kitty.enable = mkOption {default = false;};
|
||||
in
|
||||
{
|
||||
options.custom.programs.kitty.enable = mkOption { default = false; };
|
||||
|
||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||
# https://sw.kovidgoyal.net/kitty/
|
||||
|
|
|
@ -4,17 +4,21 @@
|
|||
pkgs,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.custom.programs.libreoffice;
|
||||
in {
|
||||
in
|
||||
{
|
||||
options.custom.programs.libreoffice = {
|
||||
enable = mkOption {default = false;};
|
||||
package = mkOption {default = pkgs.libreoffice-fresh;};
|
||||
enable = mkOption { default = false; };
|
||||
package = mkOption { default = pkgs.libreoffice-fresh; };
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
# https://www.libreoffice.org
|
||||
environment.systemPackages = [cfg.package];
|
||||
environment.systemPackages = [ cfg.package ];
|
||||
|
||||
#!! Options not available, files synced
|
||||
home-manager.users.${config.custom.username}.home.file.".config/libreoffice/4/user".source =
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.custom.programs.librewolf;
|
||||
in {
|
||||
options.custom.programs.librewolf.enable = mkOption {default = false;};
|
||||
in
|
||||
{
|
||||
options.custom.programs.librewolf.enable = mkOption { default = false; };
|
||||
|
||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||
# https://codeberg.org/librewolf
|
||||
|
|
|
@ -1,16 +1,15 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.custom.programs.localsend;
|
||||
in {
|
||||
options.custom.programs.localsend.enable = mkOption {default = false;};
|
||||
in
|
||||
{
|
||||
options.custom.programs.localsend.enable = mkOption { default = false; };
|
||||
|
||||
config =
|
||||
if (versionAtLeast version "24.11")
|
||||
then
|
||||
if (versionAtLeast version "24.11") then
|
||||
(mkIf cfg.enable {
|
||||
# https://github.com/localsend/localsend
|
||||
programs.localsend = {
|
||||
|
@ -18,5 +17,6 @@ in {
|
|||
openFirewall = true;
|
||||
};
|
||||
})
|
||||
else {};
|
||||
else
|
||||
{ };
|
||||
}
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.custom.programs.logseq;
|
||||
in {
|
||||
options.custom.programs.logseq.enable = mkOption {default = false;};
|
||||
in
|
||||
{
|
||||
options.custom.programs.logseq.enable = mkOption { default = false; };
|
||||
|
||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||
#!! Synced imperative configuration
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.custom.programs.man;
|
||||
in {
|
||||
options.custom.programs.man.enable = mkOption {default = false;};
|
||||
in
|
||||
{
|
||||
options.custom.programs.man.enable = mkOption { default = false; };
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
# Enable as much offline docs as possible
|
||||
|
|
|
@ -4,10 +4,14 @@
|
|||
pkgs,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.custom.programs.mangohud;
|
||||
in {
|
||||
options.custom.programs.mangohud.enable = mkOption {default = false;};
|
||||
in
|
||||
{
|
||||
options.custom.programs.mangohud.enable = mkOption { default = false; };
|
||||
|
||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||
# https://github.com/flightlessmango/MangoHud
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.custom.programs.mosh;
|
||||
in {
|
||||
options.custom.programs.mosh.enable = mkOption {default = false;};
|
||||
in
|
||||
{
|
||||
options.custom.programs.mosh.enable = mkOption { default = false; };
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
# https://wiki.nixos.org/wiki/Mosh
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.custom.programs.nano;
|
||||
in {
|
||||
options.custom.programs.nano.enable = mkOption {default = false;};
|
||||
in
|
||||
{
|
||||
options.custom.programs.nano.enable = mkOption { default = false; };
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
# https://wiki.archlinux.org/title/Nano
|
||||
|
|
|
@ -4,10 +4,14 @@
|
|||
pkgs,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.custom.programs.nautilus;
|
||||
in {
|
||||
options.custom.programs.nautilus.enable = mkOption {default = false;};
|
||||
in
|
||||
{
|
||||
options.custom.programs.nautilus.enable = mkOption { default = false; };
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
services.gvfs.enable = true; # Trash dependency
|
||||
|
|
|
@ -1,21 +1,23 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.custom.programs.networkmanager-dmenu;
|
||||
in {
|
||||
options.custom.programs.networkmanager-dmenu.enable = mkOption {default = false;};
|
||||
in
|
||||
{
|
||||
options.custom.programs.networkmanager-dmenu.enable = mkOption { default = false; };
|
||||
|
||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||
# https://github.com/firecat53/networkmanager-dmenu
|
||||
# https://github.com/firecat53/networkmanager-dmenu/blob/main/config.ini.example
|
||||
#!! Option not available, files written directly
|
||||
# FIXME: active_chars does not take effect
|
||||
home.file.".config/networkmanager-dmenu/config.ini".text = let
|
||||
home.file.".config/networkmanager-dmenu/config.ini".text =
|
||||
let
|
||||
wofi = "${config.home-manager.users.${config.custom.username}.programs.wofi.package}/bin/wofi";
|
||||
in ''
|
||||
in
|
||||
''
|
||||
[dmenu]
|
||||
dmenu_command = ${wofi} --dmenu --lines 11
|
||||
active_chars = >
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.custom.programs.nh;
|
||||
in {
|
||||
options.custom.programs.nh.enable = mkOption {default = false;};
|
||||
in
|
||||
{
|
||||
options.custom.programs.nh.enable = mkOption { default = false; };
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
# https://github.com/viperML/nh
|
||||
|
@ -16,11 +16,7 @@ in {
|
|||
|
||||
clean = {
|
||||
enable = true;
|
||||
extraArgs = "--keep-since ${
|
||||
if config.custom.minimal
|
||||
then "7"
|
||||
else "30"
|
||||
}d";
|
||||
extraArgs = "--keep-since ${if config.custom.minimal then "7" else "30"}d";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.custom.programs.nheko;
|
||||
in {
|
||||
options.custom.programs.nheko.enable = mkOption {default = false;};
|
||||
in
|
||||
{
|
||||
options.custom.programs.nheko.enable = mkOption { default = false; };
|
||||
|
||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||
# https://github.com/Nheko-Reborn/nheko
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.custom.programs.nix-index;
|
||||
in {
|
||||
options.custom.programs.nix-index.enable = mkOption {default = false;};
|
||||
in
|
||||
{
|
||||
options.custom.programs.nix-index.enable = mkOption { default = false; };
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
# https://github.com/nix-community/nix-index
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.custom.programs.nix-ld;
|
||||
in {
|
||||
options.custom.programs.nix-ld.enable = mkOption {default = false;};
|
||||
in
|
||||
{
|
||||
options.custom.programs.nix-ld.enable = mkOption { default = false; };
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
# https://github.com/nix-community/nix-ld
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.custom.programs.nushell;
|
||||
in {
|
||||
options.custom.programs.nushell.enable = mkOption {default = false;};
|
||||
in
|
||||
{
|
||||
options.custom.programs.nushell.enable = mkOption { default = false; };
|
||||
|
||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||
# TODO: Create config
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.custom.programs.nvtop;
|
||||
in {
|
||||
options.custom.programs.nvtop.enable = mkOption {default = false;};
|
||||
in
|
||||
{
|
||||
options.custom.programs.nvtop.enable = mkOption { default = false; };
|
||||
|
||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||
# https://github.com/Syllo/nvtop
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.custom.programs.obs-studio;
|
||||
in {
|
||||
options.custom.programs.obs-studio.enable = mkOption {default = false;};
|
||||
in
|
||||
{
|
||||
options.custom.programs.obs-studio.enable = mkOption { default = false; };
|
||||
|
||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||
# https://github.com/obsproject/obs-studio
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.custom.programs.onedrive;
|
||||
in {
|
||||
options.custom.programs.onedrive.enable = mkOption {default = false;};
|
||||
in
|
||||
{
|
||||
options.custom.programs.onedrive.enable = mkOption { default = false; };
|
||||
|
||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||
# https://github.com/abraunegg/onedrive
|
||||
|
|
|
@ -4,10 +4,14 @@
|
|||
pkgs,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.custom.programs.path-of-building;
|
||||
in {
|
||||
options.custom.programs.path-of-building.enable = mkOption {default = false;};
|
||||
in
|
||||
{
|
||||
options.custom.programs.path-of-building.enable = mkOption { default = false; };
|
||||
|
||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||
xdg.desktopEntries.path-of-building = {
|
||||
|
|
|
@ -4,10 +4,14 @@
|
|||
pkgs,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.custom.programs.rbw;
|
||||
in {
|
||||
options.custom.programs.rbw.enable = mkOption {default = false;};
|
||||
in
|
||||
{
|
||||
options.custom.programs.rbw.enable = mkOption { default = false; };
|
||||
|
||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||
# https://github.com/doy/rbw
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.custom.programs.rofi-rbw;
|
||||
in {
|
||||
options.custom.programs.rofi-rbw.enable = mkOption {default = false;};
|
||||
in
|
||||
{
|
||||
options.custom.programs.rofi-rbw.enable = mkOption { default = false; };
|
||||
|
||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||
# https://github.com/fdw/rofi-rbw
|
||||
|
|
|
@ -4,10 +4,14 @@
|
|||
pkgs,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.custom.programs.rofi;
|
||||
in {
|
||||
options.custom.programs.rofi.enable = mkOption {default = false;};
|
||||
in
|
||||
{
|
||||
options.custom.programs.rofi.enable = mkOption { default = false; };
|
||||
|
||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||
#!! Creates package derivation
|
||||
|
@ -26,8 +30,8 @@ in {
|
|||
# Build against rofi-wayland due to ABI incompatibility with upstream
|
||||
# https://github.com/lbonn/rofi/issues/96
|
||||
# https://github.com/NixOS/nixpkgs/issues/298539
|
||||
(rofi-calc.override {rofi-unwrapped = rofi-wayland-unwrapped;}) # Calculator
|
||||
(rofi-top.override {rofi-unwrapped = rofi-wayland-unwrapped;}) # System monitor
|
||||
(rofi-calc.override { rofi-unwrapped = rofi-wayland-unwrapped; }) # Calculator
|
||||
(rofi-top.override { rofi-unwrapped = rofi-wayland-unwrapped; }) # System monitor
|
||||
];
|
||||
|
||||
#?? rofi-theme-selector
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.custom.programs.seahorse;
|
||||
in {
|
||||
options.custom.programs.seahorse.enable = mkOption {default = false;};
|
||||
in
|
||||
{
|
||||
options.custom.programs.seahorse.enable = mkOption { default = false; };
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
programs.seahorse.enable = true;
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.custom.programs.slurp;
|
||||
in {
|
||||
options.custom.programs.slurp.enable = mkOption {default = false;};
|
||||
in
|
||||
{
|
||||
options.custom.programs.slurp.enable = mkOption { default = false; };
|
||||
|
||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||
# https://github.com/emersion/slurp
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.custom.programs.ssh;
|
||||
in {
|
||||
options.custom.programs.ssh.enable = mkOption {default = false;};
|
||||
in
|
||||
{
|
||||
options.custom.programs.ssh.enable = mkOption { default = false; };
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
# Disable prompt for new hosts
|
||||
|
|
|
@ -4,22 +4,25 @@
|
|||
pkgs,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.custom.programs.steam;
|
||||
in {
|
||||
in
|
||||
{
|
||||
# https://wiki.nixos.org/wiki/Steam
|
||||
# https://store.steampowered.com
|
||||
options.custom.programs.steam = {
|
||||
enable = mkOption {default = false;};
|
||||
extest = mkOption {default = false;};
|
||||
enable = mkOption { default = false; };
|
||||
extest = mkOption { default = false; };
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
programs.steam =
|
||||
{
|
||||
programs.steam = {
|
||||
enable = true;
|
||||
extest.enable = cfg.extest; # Work around invisible cursor on Wayland
|
||||
extraCompatPackages = [pkgs.proton-ge-bin];
|
||||
extraCompatPackages = [ pkgs.proton-ge-bin ];
|
||||
|
||||
gamescopeSession = {
|
||||
enable = true;
|
||||
|
@ -28,7 +31,6 @@ in {
|
|||
# "--fullscreen"
|
||||
# ];
|
||||
};
|
||||
}
|
||||
// optionalAttrs (versionAtLeast version "24.11") {protontricks.enable = true;};
|
||||
} // optionalAttrs (versionAtLeast version "24.11") { protontricks.enable = true; };
|
||||
};
|
||||
}
|
||||
|
|
|
@ -4,15 +4,19 @@
|
|||
pkgs,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.custom.programs.swaylock;
|
||||
in {
|
||||
options.custom.programs.swaylock.enable = mkOption {default = false;};
|
||||
in
|
||||
{
|
||||
options.custom.programs.swaylock.enable = mkOption { default = false; };
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
# Allow swaylock to unlock the session
|
||||
# https://wiki.nixos.org/wiki/Sway#Swaylock_cannot_be_unlocked_with_the_correct_password
|
||||
security.pam.services.swaylock = {};
|
||||
security.pam.services.swaylock = { };
|
||||
|
||||
# https://github.com/swaywm/swaylock
|
||||
home-manager.users.${config.custom.username}.programs.swaylock = {
|
||||
|
|
|
@ -5,10 +5,14 @@
|
|||
pkgs,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.custom.programs.thunderbird;
|
||||
in {
|
||||
options.custom.programs.thunderbird.enable = mkOption {default = false;};
|
||||
in
|
||||
{
|
||||
options.custom.programs.thunderbird.enable = mkOption { default = false; };
|
||||
|
||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||
# https://wiki.nixos.org/wiki/Thunderbird
|
||||
|
|
|
@ -1,17 +1,17 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.custom.programs.tio;
|
||||
in {
|
||||
options.custom.programs.tio.enable = mkOption {default = false;};
|
||||
in
|
||||
{
|
||||
options.custom.programs.tio.enable = mkOption { default = false; };
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
# Allow serial device access
|
||||
# https://github.com/tio/tio?tab=readme-ov-file#46-known-issues
|
||||
users.users.${config.custom.username}.extraGroups = ["dialout"];
|
||||
users.users.${config.custom.username}.extraGroups = [ "dialout" ];
|
||||
|
||||
# https://github.com/tio/tio
|
||||
#!! Options not available, files written directly
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.custom.programs.tmux;
|
||||
in {
|
||||
options.custom.programs.tmux.enable = mkOption {default = false;};
|
||||
in
|
||||
{
|
||||
options.custom.programs.tmux.enable = mkOption { default = false; };
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
# https://wiki.nixos.org/wiki/Tmux
|
||||
|
|
|
@ -5,10 +5,14 @@
|
|||
pkgs,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.custom.programs.vscode;
|
||||
in {
|
||||
options.custom.programs.vscode.enable = mkOption {default = false;};
|
||||
in
|
||||
{
|
||||
options.custom.programs.vscode.enable = mkOption { default = false; };
|
||||
|
||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||
# https://wiki.nixos.org/wiki/VSCodium
|
||||
|
|
|
@ -4,7 +4,6 @@
|
|||
pkgs,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
with lib; let
|
||||
bash = "${pkgs.bash}/bin/bash";
|
||||
blueberry = "${pkgs.blueberry}/bin/blueberry";
|
||||
|
@ -33,8 +32,6 @@ with lib; let
|
|||
wttrbar = "${pkgs.wttrbar}/bin/wttrbar";
|
||||
|
||||
cfg = config.custom.programs.waybar;
|
||||
in {
|
||||
options.custom.programs.waybar.enable = mkOption {default = false;};
|
||||
in {
|
||||
options.custom.programs.waybar.enable = mkOption {default = false;};
|
||||
|
||||
|
@ -49,52 +46,6 @@ in {
|
|||
### SETTINGS ###
|
||||
# https://github.com/Alexays/Waybar/wiki/Configuration
|
||||
#?? pkill -SIGUSR2 -x waybar
|
||||
settings = let
|
||||
## INHERIT ##
|
||||
#!! Module defaults are not accurate to documentation
|
||||
# TODO: Submit pull request to fix in addition to inconsistent hyphen vs underscore
|
||||
# https://github.com/Alexays/Waybar/wiki/Module:-Cava
|
||||
cava-config = {
|
||||
cava_config = null; # Default: null?
|
||||
framerate = 30; # Default: 30?
|
||||
autosens = 1; # Default: 1
|
||||
# sensitivity = 0; # Default: 100?
|
||||
bars = 16; # Default: 2
|
||||
lower_cutoff_freq = 50; # Default: 50?
|
||||
higher_cutoff_freq = 10000; # Default: 10000?
|
||||
sleep_timer = 5; # Default: 0
|
||||
hide_on_silence = true; # Default: false
|
||||
method = "pipewire"; # Default: pulse
|
||||
source = "auto"; # Default: auto?
|
||||
sample_rate = 44100; # Default: 44100?
|
||||
sample_bits = 16; # Default: 16?
|
||||
stereo = false; # Default: true
|
||||
reverse = false; # Default: false
|
||||
bar_delimiter = 32; # ASCII code for space, default: 59 or ;
|
||||
monstercat = true; # Default: false?
|
||||
waves = true; # Default: false?
|
||||
noise_reduction = 0.2; # Default: 0.77?
|
||||
input_delay = 1; # Default: 4
|
||||
format-icons = [
|
||||
"▁"
|
||||
"▂"
|
||||
"▃"
|
||||
"▄"
|
||||
"▅"
|
||||
"▆"
|
||||
"▇"
|
||||
"█"
|
||||
]; # !! Required
|
||||
on-click = easyeffects;
|
||||
on-scroll-up = "${swayosd-client} --output-volume raise";
|
||||
on-scroll-down = "${swayosd-client} --output-volume lower";
|
||||
rotate = 180;
|
||||
};
|
||||
in {
|
||||
status = {
|
||||
## GLOBAL ##
|
||||
layer = "top";
|
||||
position = "bottom";
|
||||
settings = let
|
||||
## INHERIT ##
|
||||
#!! Module defaults are not accurate to documentation
|
||||
|
@ -142,26 +93,6 @@ in {
|
|||
layer = "top";
|
||||
position = "bottom";
|
||||
|
||||
## POSITION ##
|
||||
modules-left = [
|
||||
"custom/power"
|
||||
"custom/inhibitor"
|
||||
"custom/vpn"
|
||||
"custom/vm"
|
||||
"hyprland/workspaces"
|
||||
];
|
||||
modules-center = [
|
||||
"clock"
|
||||
"custom/weather"
|
||||
];
|
||||
modules-right = [
|
||||
"mpris"
|
||||
"tray"
|
||||
"wireplumber"
|
||||
"bluetooth"
|
||||
"network"
|
||||
"battery"
|
||||
];
|
||||
## POSITION ##
|
||||
modules-left = [
|
||||
"custom/power"
|
||||
|
@ -183,14 +114,6 @@ in {
|
|||
"battery"
|
||||
];
|
||||
|
||||
## MODULES ##
|
||||
# https://github.com/Alexays/Waybar/wiki/Module:-Custom
|
||||
"custom/power" = {
|
||||
format = "";
|
||||
on-click = "${systemctl} poweroff";
|
||||
on-click-right = "${systemctl} reboot";
|
||||
on-click-middle = "${loginctl} terminate-session ''";
|
||||
};
|
||||
## MODULES ##
|
||||
# https://github.com/Alexays/Waybar/wiki/Module:-Custom
|
||||
"custom/power" = {
|
||||
|
@ -200,26 +123,12 @@ in {
|
|||
on-click-middle = "${loginctl} terminate-session ''";
|
||||
};
|
||||
|
||||
"custom/inhibitor" = {
|
||||
interval = 5;
|
||||
exec = "~/.config/waybar/scripts/inhibitor.sh";
|
||||
on-click = "~/.local/bin/inhibit";
|
||||
};
|
||||
"custom/inhibitor" = {
|
||||
interval = 5;
|
||||
exec = "~/.config/waybar/scripts/inhibitor.sh";
|
||||
on-click = "~/.local/bin/inhibit";
|
||||
};
|
||||
|
||||
"custom/vm" = {
|
||||
interval = 5;
|
||||
exec = "~/.config/waybar/scripts/vm.sh";
|
||||
on-click = "~/.local/bin/vm -x ${
|
||||
if config.custom.hidpi
|
||||
then "/scale:140"
|
||||
else ""
|
||||
}";
|
||||
};
|
||||
"custom/vm" = {
|
||||
interval = 5;
|
||||
exec = "~/.config/waybar/scripts/vm.sh";
|
||||
|
@ -230,27 +139,12 @@ in {
|
|||
}";
|
||||
};
|
||||
|
||||
"custom/vpn" = {
|
||||
interval = 5;
|
||||
exec = "~/.config/waybar/scripts/vpn.sh";
|
||||
on-click = "~/.local/bin/vpn mypi3";
|
||||
};
|
||||
"custom/vpn" = {
|
||||
interval = 5;
|
||||
exec = "~/.config/waybar/scripts/vpn.sh";
|
||||
on-click = "~/.local/bin/vpn mypi3";
|
||||
};
|
||||
|
||||
# https://github.com/Alexays/Waybar/wiki/Module:-Idle-Inhibitor
|
||||
# FIXME: Not currently usable
|
||||
# https://github.com/Alexays/Waybar/issues/690
|
||||
idle_inhibitor = {
|
||||
format = "{icon}";
|
||||
format-icons = {
|
||||
activated = "";
|
||||
deactivated = "";
|
||||
};
|
||||
};
|
||||
# https://github.com/Alexays/Waybar/wiki/Module:-Idle-Inhibitor
|
||||
# FIXME: Not currently usable
|
||||
# https://github.com/Alexays/Waybar/issues/690
|
||||
|
@ -262,17 +156,8 @@ in {
|
|||
};
|
||||
};
|
||||
|
||||
# https://github.com/Alexays/Waybar/wiki/Module:-Hyprland
|
||||
# https://github.com/Alexays/Waybar/wiki/Module:-Hyprland
|
||||
# https://www.nerdfonts.com/cheat-sheet
|
||||
"hyprland/workspaces" = {
|
||||
show-special = true;
|
||||
format = "{icon}";
|
||||
format-icons = {
|
||||
android = "";
|
||||
dropdown = "";
|
||||
game = "";
|
||||
music = "";
|
||||
"hyprland/workspaces" = {
|
||||
show-special = true;
|
||||
format = "{icon}";
|
||||
|
@ -283,7 +168,6 @@ in {
|
|||
music = "";
|
||||
office = "";
|
||||
pip = "";
|
||||
pip = "";
|
||||
scratchpad = "";
|
||||
steam = "";
|
||||
terminal = "";
|
||||
|
@ -291,28 +175,9 @@ in {
|
|||
wallpaper = "";
|
||||
};
|
||||
};
|
||||
steam = "";
|
||||
terminal = "";
|
||||
vm = "";
|
||||
wallpaper = "";
|
||||
};
|
||||
};
|
||||
|
||||
cava = cava-config;
|
||||
cava = cava-config;
|
||||
|
||||
# https://github.com/Alexays/Waybar/wiki/Module:-Clock
|
||||
clock = {
|
||||
# https://fmt.dev/latest/syntax.html#chrono-specs
|
||||
format = "{:%a %b %d %I:%M %p}"; # Mon Jan 01 12:00 AM
|
||||
tooltip-format = "{calendar}";
|
||||
calendar.format = {
|
||||
months = "<span color='#eee8d5'>{}</span>";
|
||||
weeks = "<span color='#eee8d5'>{}</span>";
|
||||
weekdays = "<span color='#93a1a1'>{}</span>";
|
||||
days = "<span color='#586e75'>{}</span>";
|
||||
today = "<span color='#eee8d5'>{}</span>";
|
||||
};
|
||||
# https://github.com/Alexays/Waybar/wiki/Module:-Clock
|
||||
clock = {
|
||||
# https://fmt.dev/latest/syntax.html#chrono-specs
|
||||
|
@ -333,19 +198,7 @@ in {
|
|||
on-scroll-up = "${swayosd-client} --output-volume raise";
|
||||
on-scroll-down = "${swayosd-client} --output-volume lower";
|
||||
};
|
||||
# FIXME: Click release event sends to incorrect layer without sleeping
|
||||
# https://github.com/hyprwm/Hyprland/issues/1348
|
||||
on-click = "${swaync-client} --toggle-panel";
|
||||
# on-click-right = easyeffects;
|
||||
on-scroll-up = "${swayosd-client} --output-volume raise";
|
||||
on-scroll-down = "${swayosd-client} --output-volume lower";
|
||||
};
|
||||
|
||||
# https://github.com/bjesus/wttrbar
|
||||
"custom/weather" = {
|
||||
format = "{}°";
|
||||
interval = 60 * 60;
|
||||
return-type = "json";
|
||||
# https://github.com/bjesus/wttrbar
|
||||
"custom/weather" = {
|
||||
format = "{}°";
|
||||
|
@ -358,13 +211,9 @@ in {
|
|||
"--fahrenheit"
|
||||
"--hide-conditions"
|
||||
"--main-indicator temp_F"
|
||||
"--location 'Cedar Falls Iowa'"
|
||||
];
|
||||
};
|
||||
|
||||
"cava#reverse" =
|
||||
cava-config
|
||||
// {
|
||||
"cava#reverse" =
|
||||
cava-config
|
||||
// {
|
||||
|
@ -387,37 +236,7 @@ in {
|
|||
on-scroll-up = "${swayosd-client} --output-volume raise";
|
||||
on-scroll-down = "${swayosd-client} --output-volume lower";
|
||||
};
|
||||
# https://github.com/Alexays/Waybar/wiki/Module:-MPRIS
|
||||
mpris = {
|
||||
format = "{player_icon} {dynamic}";
|
||||
format-paused = "{status_icon} {dynamic}";
|
||||
dynamic-len = 50;
|
||||
dynamic-order = [
|
||||
"title"
|
||||
"artist"
|
||||
];
|
||||
dynamic-separator = " ";
|
||||
player-icons.default = "";
|
||||
status-icons.paused = "";
|
||||
on-click-middle = ""; # TODO: Close music player
|
||||
on-scroll-up = "${swayosd-client} --output-volume raise";
|
||||
on-scroll-down = "${swayosd-client} --output-volume lower";
|
||||
};
|
||||
|
||||
# https://github.com/Alexays/Waybar/wiki/Module:-WirePlumber
|
||||
wireplumber = {
|
||||
format = "{icon} {volume}%";
|
||||
format-muted = "";
|
||||
format-icons = [
|
||||
""
|
||||
""
|
||||
""
|
||||
];
|
||||
on-click = easyeffects;
|
||||
on-click-right = "${swayosd-client} --output-volume mute-toggle";
|
||||
on-scroll-up = "${swayosd-client} --output-volume raise";
|
||||
on-scroll-down = "${swayosd-client} --output-volume lower";
|
||||
};
|
||||
# https://github.com/Alexays/Waybar/wiki/Module:-WirePlumber
|
||||
wireplumber = {
|
||||
format = "{icon} {volume}%";
|
||||
|
@ -433,16 +252,6 @@ in {
|
|||
on-scroll-down = "${swayosd-client} --output-volume lower";
|
||||
};
|
||||
|
||||
# https://github.com/Alexays/Waybar/wiki/Module:-Bluetooth
|
||||
bluetooth = {
|
||||
format-disabled = "";
|
||||
format-off = "";
|
||||
format-on = "";
|
||||
format-connected = "";
|
||||
on-click = blueberry;
|
||||
on-click-right = "${bluetoothctl} disconnect";
|
||||
on-click-middle = "${rfkill} toggle bluetooth"; # Toggle bluetooth on/off
|
||||
};
|
||||
# https://github.com/Alexays/Waybar/wiki/Module:-Bluetooth
|
||||
bluetooth = {
|
||||
format-disabled = "";
|
||||
|
@ -454,22 +263,6 @@ in {
|
|||
on-click-middle = "${rfkill} toggle bluetooth"; # Toggle bluetooth on/off
|
||||
};
|
||||
|
||||
# https://github.com/Alexays/Waybar/wiki/Module:-Network
|
||||
network = {
|
||||
format = "{icon}";
|
||||
format-icons = {
|
||||
disabled = "";
|
||||
disconnected = "";
|
||||
ethernet = "";
|
||||
linked = "";
|
||||
wifi = [
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
];
|
||||
};
|
||||
# https://github.com/Alexays/Waybar/wiki/Module:-Network
|
||||
network = {
|
||||
format = "{icon}";
|
||||
|
@ -490,31 +283,7 @@ in {
|
|||
on-click = nm-connection-editor;
|
||||
on-click-right = "~/.local/bin/network"; # Toggle networking on/off
|
||||
};
|
||||
on-click = nm-connection-editor;
|
||||
on-click-right = "~/.local/bin/network"; # Toggle networking on/off
|
||||
};
|
||||
|
||||
# https://github.com/Alexays/Waybar/wiki/Module:-Battery
|
||||
"battery" = {
|
||||
format = "{icon} {power:.0f}W";
|
||||
format-icons = [
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
];
|
||||
interval = 5;
|
||||
states = {
|
||||
critical = 15;
|
||||
warning = 30;
|
||||
};
|
||||
# https://github.com/Alexays/Waybar/wiki/Module:-Battery
|
||||
"battery" = {
|
||||
format = "{icon} {power:.0f}W";
|
||||
|
@ -541,10 +310,6 @@ in {
|
|||
};
|
||||
};
|
||||
};
|
||||
on-click = "~/.local/bin/power"; # Toggle power-saver mode
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# TODO: Convert to writeShellApplication
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.custom.programs.wezterm;
|
||||
in {
|
||||
options.custom.programs.wezterm.enable = mkOption {default = false;};
|
||||
in
|
||||
{
|
||||
options.custom.programs.wezterm.enable = mkOption { default = false; };
|
||||
|
||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||
# https://github.com/wez/wezterm
|
||||
|
|
|
@ -1,13 +1,12 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.custom.programs.wireshark;
|
||||
in {
|
||||
options.custom.programs.wireshark.enable = mkOption {default = false;};
|
||||
in
|
||||
{
|
||||
options.custom.programs.wireshark.enable = mkOption { default = false; };
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
# https://gitlab.com/wireshark/wireshark
|
||||
|
@ -16,6 +15,6 @@ in {
|
|||
package = pkgs.wireshark; # GUI
|
||||
};
|
||||
|
||||
users.users.${config.custom.username}.extraGroups = ["wireshark"];
|
||||
users.users.${config.custom.username}.extraGroups = [ "wireshark" ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.custom.programs.wofi;
|
||||
in {
|
||||
options.custom.programs.wofi.enable = mkOption {default = false;};
|
||||
in
|
||||
{
|
||||
options.custom.programs.wofi.enable = mkOption { default = false; };
|
||||
|
||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||
# https://hg.sr.ht/~scoopta/wofi
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.custom.programs.wpaperd;
|
||||
in {
|
||||
options.custom.programs.wpaperd.enable = mkOption {default = false;};
|
||||
in
|
||||
{
|
||||
options.custom.programs.wpaperd.enable = mkOption { default = false; };
|
||||
|
||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||
# https://github.com/danyspin97/wpaperd
|
||||
|
|
|
@ -4,14 +4,19 @@
|
|||
pkgs,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
# Use packages from local derivation
|
||||
git = config.home-manager.users.${config.custom.username}.programs.git.package;
|
||||
hyprland =
|
||||
config.home-manager.users.${config.custom.username}.wayland.windowManager.hyprland.finalPackage;
|
||||
wofi = config.home-manager.users.${config.custom.username}.programs.wofi.package;
|
||||
in {
|
||||
config.home-manager.users.${config.custom.username}.home.file = let
|
||||
in
|
||||
{
|
||||
config.home-manager.users.${config.custom.username}.home.file =
|
||||
let
|
||||
# Place script.ext in the same directory as this file
|
||||
#?? pkg = (SHELL "NAME" [ DEPENDENCIES ])
|
||||
# https://nixos.org/manual/nixpkgs/unstable/#trivial-builder-writeShellApplication
|
||||
|
@ -30,7 +35,7 @@ in {
|
|||
# https://github.com/NixOS/nixpkgs/blob/master/pkgs/build-support/writers/scripts.nix#L605
|
||||
python = name: dependencies: {
|
||||
".local/bin/${name}".source =
|
||||
pkgs.writers.writePython3Bin name {libraries = dependencies;}
|
||||
pkgs.writers.writePython3Bin name { libraries = dependencies; }
|
||||
# Disable linting
|
||||
# https://flake8.pycqa.org/en/3.1.1/user/ignoring-errors.html#ignoring-entire-files
|
||||
("# flake8: noqa\n" + builtins.readFile ./${name}.py)
|
||||
|
@ -167,10 +172,11 @@ in {
|
|||
swww
|
||||
tailscale
|
||||
])
|
||||
|
||||
]
|
||||
++ (with pkgs.python3Packages; [
|
||||
# Python files with extension .py
|
||||
(python "bcrypt" [bcrypt])
|
||||
(python "bcrypt" [ bcrypt ])
|
||||
])
|
||||
)
|
||||
);
|
||||
|
|
|
@ -4,13 +4,17 @@
|
|||
pkgs,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cat = "${pkgs.coreutils}/bin/cat";
|
||||
sed = "${pkgs.gnused}/bin/sed";
|
||||
|
||||
cfg = config.custom.services.agenix;
|
||||
in {
|
||||
options.custom.services.agenix.enable = mkOption {default = false;};
|
||||
in
|
||||
{
|
||||
options.custom.services.agenix.enable = mkOption { default = false; };
|
||||
|
||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||
xdg.configFile."hypr/hyprland.conf".force = true;
|
||||
|
@ -36,7 +40,7 @@ in {
|
|||
};
|
||||
|
||||
Install = {
|
||||
WantedBy = ["default.target"];
|
||||
WantedBy = [ "default.target" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
@ -1,17 +1,17 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.custom.services.auto-cpufreq;
|
||||
in {
|
||||
in
|
||||
{
|
||||
options.custom.services.auto-cpufreq = {
|
||||
enable = mkOption {default = false;};
|
||||
enable = mkOption { default = false; };
|
||||
|
||||
max = {
|
||||
battery = mkOption {default = null;}; # GHz
|
||||
charger = mkOption {default = null;}; # GHz
|
||||
battery = mkOption { default = null; }; # GHz
|
||||
charger = mkOption { default = null; }; # GHz
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.custom.services.avizo;
|
||||
in {
|
||||
options.custom.services.avizo.enable = mkOption {default = false;};
|
||||
in
|
||||
{
|
||||
options.custom.services.avizo.enable = mkOption { default = false; };
|
||||
|
||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||
# https://github.com/misterdanb/avizo
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.custom.services.blueman-applet;
|
||||
in {
|
||||
options.custom.services.blueman-applet.enable = mkOption {default = false;};
|
||||
in
|
||||
{
|
||||
options.custom.services.blueman-applet.enable = mkOption { default = false; };
|
||||
|
||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||
# https://github.com/blueman-project/blueman
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.custom.services.blueman;
|
||||
in {
|
||||
options.custom.services.blueman.enable = mkOption {default = false;};
|
||||
in
|
||||
{
|
||||
options.custom.services.blueman.enable = mkOption { default = false; };
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
# https://github.com/blueman-project/blueman
|
||||
|
|
|
@ -5,11 +5,15 @@
|
|||
pkgs,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cat = "${pkgs.coreutils}/bin/cat";
|
||||
|
||||
cfg = config.custom.services.borgmatic;
|
||||
in {
|
||||
in
|
||||
{
|
||||
# https://wiki.nixos.org/wiki/Borg_backup
|
||||
# https://github.com/borgmatic-collective/borgmatic
|
||||
#!! Imperative initialization
|
||||
|
@ -17,9 +21,9 @@ in {
|
|||
#?? sudo borgmatic key export
|
||||
#?? sudo borgmatic -v 1 create --progress --stats
|
||||
options.custom.services.borgmatic = {
|
||||
enable = mkOption {default = false;};
|
||||
repositories = mkOption {default = [];};
|
||||
sources = mkOption {default = [];};
|
||||
enable = mkOption { default = false; };
|
||||
repositories = mkOption { default = [ ]; };
|
||||
sources = mkOption { default = [ ]; };
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
|
@ -64,9 +68,11 @@ in {
|
|||
};
|
||||
};
|
||||
|
||||
age.secrets = let
|
||||
secret = filename: {file = "${inputs.self}/secrets/${filename}";};
|
||||
in {
|
||||
age.secrets =
|
||||
let
|
||||
secret = filename: { file = "${inputs.self}/secrets/${filename}"; };
|
||||
in
|
||||
{
|
||||
"${config.custom.profile}/borgmatic/borgbase.${config.custom.hostname}" = secret "${config.custom.profile}/borgmatic/borgbase.${config.custom.hostname}";
|
||||
};
|
||||
};
|
||||
|
|
|
@ -4,19 +4,25 @@
|
|||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.custom.services.caddy;
|
||||
in {
|
||||
options.custom.services.caddy.enable = mkOption {default = false;};
|
||||
in
|
||||
{
|
||||
options.custom.services.caddy.enable = mkOption { default = false; };
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
age.secrets = let
|
||||
age.secrets =
|
||||
let
|
||||
secret = filename: {
|
||||
file = "${inputs.self}/secrets/${filename}";
|
||||
owner = "caddy";
|
||||
group = "caddy";
|
||||
};
|
||||
in {
|
||||
in
|
||||
{
|
||||
"${config.custom.profile}/caddy/Caddyfile" = secret "${config.custom.profile}/caddy/Caddyfile";
|
||||
};
|
||||
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue