nix: format with alejandra
Signed-off-by: Myned <dev@bjork.tech>
This commit is contained in:
parent
08cadc64dc
commit
ab485dec35
176 changed files with 1852 additions and 2126 deletions
|
@ -3,86 +3,75 @@
|
||||||
inputs,
|
inputs,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
|
age.secrets = let
|
||||||
{
|
secret = filename: {
|
||||||
age.secrets =
|
file = "${inputs.self}/secrets/${filename}";
|
||||||
let
|
|
||||||
secret = filename: {
|
|
||||||
file = "${inputs.self}/secrets/${filename}";
|
|
||||||
};
|
|
||||||
in
|
|
||||||
{
|
|
||||||
"common/nix/access-tokens.conf" = secret "common/nix/access-tokens.conf";
|
|
||||||
};
|
};
|
||||||
|
in {
|
||||||
|
"common/nix/access-tokens.conf" = secret "common/nix/access-tokens.conf";
|
||||||
|
};
|
||||||
|
|
||||||
### NixOS
|
### NixOS
|
||||||
nixpkgs =
|
nixpkgs = let
|
||||||
let
|
config = {
|
||||||
config = {
|
allowUnfree = true;
|
||||||
allowUnfree = true;
|
|
||||||
|
|
||||||
allowInsecurePredicate =
|
allowInsecurePredicate = pkg: let
|
||||||
pkg:
|
name = lib.getName pkg;
|
||||||
let
|
in
|
||||||
name = lib.getName pkg;
|
# HACK: Allow all insecure electron versions
|
||||||
in
|
name
|
||||||
# HACK: Allow all insecure electron versions
|
== "electron"
|
||||||
name == "electron"
|
# HACK: Some Matrix clients rely on libolm, which is deprecated
|
||||||
|
# https://github.com/NixOS/nixpkgs/pull/334638
|
||||||
|
|| name == "cinny"
|
||||||
|
|| name == "cinny-unwrapped"
|
||||||
|
|| name == "fluffychat-linux"
|
||||||
|
|| name == "olm"
|
||||||
|
|| name == "openssl"; # Cisco Packet Tracer
|
||||||
|
};
|
||||||
|
in {
|
||||||
|
inherit config;
|
||||||
|
|
||||||
# HACK: Some Matrix clients rely on libolm, which is deprecated
|
overlays = [
|
||||||
# https://github.com/NixOS/nixpkgs/pull/334638
|
(
|
||||||
|| name == "cinny"
|
final: prev: let
|
||||||
|| name == "cinny-unwrapped"
|
nixpkgs = branch:
|
||||||
|| name == "fluffychat-linux"
|
import inputs."nixpkgs-${branch}" {
|
||||||
|| name == "olm"
|
inherit config;
|
||||||
|| name == "openssl"; # Cisco Packet Tracer
|
system = prev.system;
|
||||||
};
|
|
||||||
in
|
|
||||||
{
|
|
||||||
inherit config;
|
|
||||||
|
|
||||||
overlays = [
|
|
||||||
(
|
|
||||||
final: prev:
|
|
||||||
let
|
|
||||||
nixpkgs =
|
|
||||||
branch:
|
|
||||||
import inputs."nixpkgs-${branch}" {
|
|
||||||
inherit config;
|
|
||||||
system = prev.system;
|
|
||||||
};
|
|
||||||
|
|
||||||
stable = nixpkgs "stable";
|
|
||||||
unstable = nixpkgs "unstable";
|
|
||||||
staging-next = nixpkgs "staging-next";
|
|
||||||
local = nixpkgs "local";
|
|
||||||
in
|
|
||||||
{
|
|
||||||
# Overlay nixpkgs branches
|
|
||||||
#?? nixpkgs.BRANCH.PACKAGE
|
|
||||||
inherit stable unstable staging-next;
|
|
||||||
|
|
||||||
# Hypr*
|
|
||||||
hypridle = inputs.hypridle.packages.${prev.system}.default;
|
|
||||||
hyprland = inputs.hyprland.packages.${prev.system}.default;
|
|
||||||
hyprlock = inputs.hyprlock.packages.${prev.system}.default;
|
|
||||||
|
|
||||||
# TODO: Remove when merged into unstable
|
|
||||||
# https://github.com/NixOS/nixpkgs/pull/338836
|
|
||||||
xdg-desktop-portal-hyprland =
|
|
||||||
inputs.xdg-desktop-portal-hyprland.packages.${prev.system}.xdg-desktop-portal-hyprland;
|
|
||||||
|
|
||||||
hyprlandPlugins = {
|
|
||||||
hyprbars = inputs.hyprland-plugins.packages.${prev.system}.hyprbars;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
# Development
|
stable = nixpkgs "stable";
|
||||||
ciscoPacketTracer8 = local.ciscoPacketTracer8;
|
unstable = nixpkgs "unstable";
|
||||||
}
|
staging-next = nixpkgs "staging-next";
|
||||||
)
|
local = nixpkgs "local";
|
||||||
];
|
in {
|
||||||
};
|
# Overlay nixpkgs branches
|
||||||
|
#?? nixpkgs.BRANCH.PACKAGE
|
||||||
|
inherit stable unstable staging-next;
|
||||||
|
|
||||||
|
# Hypr*
|
||||||
|
hypridle = inputs.hypridle.packages.${prev.system}.default;
|
||||||
|
hyprland = inputs.hyprland.packages.${prev.system}.default;
|
||||||
|
hyprlock = inputs.hyprlock.packages.${prev.system}.default;
|
||||||
|
|
||||||
|
# TODO: Remove when merged into unstable
|
||||||
|
# https://github.com/NixOS/nixpkgs/pull/338836
|
||||||
|
xdg-desktop-portal-hyprland =
|
||||||
|
inputs.xdg-desktop-portal-hyprland.packages.${prev.system}.xdg-desktop-portal-hyprland;
|
||||||
|
|
||||||
|
hyprlandPlugins = {
|
||||||
|
hyprbars = inputs.hyprland-plugins.packages.${prev.system}.hyprbars;
|
||||||
|
};
|
||||||
|
|
||||||
|
# Development
|
||||||
|
ciscoPacketTracer8 = local.ciscoPacketTracer8;
|
||||||
|
}
|
||||||
|
)
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
nix = {
|
nix = {
|
||||||
#!! Override upstream nix
|
#!! Override upstream nix
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
# Do not modify! This file is generated.
|
# Do not modify! This file is generated.
|
||||||
|
|
||||||
{
|
{
|
||||||
inputs = {
|
inputs = {
|
||||||
aagl-gtk-on-nix-stable = {
|
aagl-gtk-on-nix-stable = {
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
size = "100%";
|
size = "100%";
|
||||||
content = {
|
content = {
|
||||||
type = "btrfs";
|
type = "btrfs";
|
||||||
extraArgs = [ "-f" ];
|
extraArgs = ["-f"];
|
||||||
subvolumes = {
|
subvolumes = {
|
||||||
"/root" = {
|
"/root" = {
|
||||||
mountpoint = "/";
|
mountpoint = "/";
|
||||||
|
|
|
@ -7,19 +7,17 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
modulesPath,
|
modulesPath,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
|
imports = [(modulesPath + "/profiles/qemu-guest.nix")];
|
||||||
{
|
|
||||||
imports = [ (modulesPath + "/profiles/qemu-guest.nix") ];
|
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = [
|
boot.initrd.availableKernelModules = [
|
||||||
"xhci_pci"
|
"xhci_pci"
|
||||||
"virtio_scsi"
|
"virtio_scsi"
|
||||||
"sr_mod"
|
"sr_mod"
|
||||||
];
|
];
|
||||||
boot.initrd.kernelModules = [ ];
|
boot.initrd.kernelModules = [];
|
||||||
boot.kernelModules = [ ];
|
boot.kernelModules = [];
|
||||||
boot.extraModulePackages = [ ];
|
boot.extraModulePackages = [];
|
||||||
|
|
||||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
# 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
|
# (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%";
|
size = "100%";
|
||||||
content = {
|
content = {
|
||||||
type = "btrfs";
|
type = "btrfs";
|
||||||
extraArgs = [ "-f" ];
|
extraArgs = ["-f"];
|
||||||
subvolumes = {
|
subvolumes = {
|
||||||
"/root" = {
|
"/root" = {
|
||||||
mountpoint = "/";
|
mountpoint = "/";
|
||||||
|
|
|
@ -7,10 +7,8 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
modulesPath,
|
modulesPath,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
|
imports = [(modulesPath + "/installer/scan/not-detected.nix")];
|
||||||
{
|
|
||||||
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
|
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = [
|
boot.initrd.availableKernelModules = [
|
||||||
"nvme"
|
"nvme"
|
||||||
|
@ -21,9 +19,9 @@
|
||||||
"sd_mod"
|
"sd_mod"
|
||||||
"sdhci_pci"
|
"sdhci_pci"
|
||||||
];
|
];
|
||||||
boot.initrd.kernelModules = [ ];
|
boot.initrd.kernelModules = [];
|
||||||
boot.kernelModules = [ "kvm-amd" ];
|
boot.kernelModules = ["kvm-amd"];
|
||||||
boot.extraModulePackages = [ ];
|
boot.extraModulePackages = [];
|
||||||
|
|
||||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
# 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
|
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
size = "100%";
|
size = "100%";
|
||||||
content = {
|
content = {
|
||||||
type = "btrfs";
|
type = "btrfs";
|
||||||
extraArgs = [ "-f" ];
|
extraArgs = ["-f"];
|
||||||
subvolumes = {
|
subvolumes = {
|
||||||
"/root" = {
|
"/root" = {
|
||||||
mountpoint = "/";
|
mountpoint = "/";
|
||||||
|
|
|
@ -7,10 +7,8 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
modulesPath,
|
modulesPath,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
|
imports = [(modulesPath + "/profiles/qemu-guest.nix")];
|
||||||
{
|
|
||||||
imports = [ (modulesPath + "/profiles/qemu-guest.nix") ];
|
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = [
|
boot.initrd.availableKernelModules = [
|
||||||
"ahci"
|
"ahci"
|
||||||
|
@ -20,9 +18,9 @@
|
||||||
"sd_mod"
|
"sd_mod"
|
||||||
"sr_mod"
|
"sr_mod"
|
||||||
];
|
];
|
||||||
boot.initrd.kernelModules = [ ];
|
boot.initrd.kernelModules = [];
|
||||||
boot.kernelModules = [ ];
|
boot.kernelModules = [];
|
||||||
boot.extraModulePackages = [ ];
|
boot.extraModulePackages = [];
|
||||||
|
|
||||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
# 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
|
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
passwordFile = "/tmp/secret.key";
|
passwordFile = "/tmp/secret.key";
|
||||||
content = {
|
content = {
|
||||||
type = "btrfs";
|
type = "btrfs";
|
||||||
extraArgs = [ "-f" ];
|
extraArgs = ["-f"];
|
||||||
subvolumes = {
|
subvolumes = {
|
||||||
"/root" = {
|
"/root" = {
|
||||||
mountpoint = "/";
|
mountpoint = "/";
|
||||||
|
|
|
@ -7,10 +7,8 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
modulesPath,
|
modulesPath,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
|
imports = [(modulesPath + "/installer/scan/not-detected.nix")];
|
||||||
{
|
|
||||||
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
|
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = [
|
boot.initrd.availableKernelModules = [
|
||||||
"xhci_pci"
|
"xhci_pci"
|
||||||
|
@ -21,9 +19,9 @@
|
||||||
"usb_storage"
|
"usb_storage"
|
||||||
"sd_mod"
|
"sd_mod"
|
||||||
];
|
];
|
||||||
boot.initrd.kernelModules = [ ];
|
boot.initrd.kernelModules = [];
|
||||||
boot.kernelModules = [ "kvm-intel" ];
|
boot.kernelModules = ["kvm-intel"];
|
||||||
boot.extraModulePackages = [ ];
|
boot.extraModulePackages = [];
|
||||||
|
|
||||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
# 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
|
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||||
|
|
|
@ -4,12 +4,9 @@
|
||||||
lib,
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}: let
|
||||||
|
|
||||||
let
|
|
||||||
brightnessctl = "${pkgs.brightnessctl}/bin/brightnessctl";
|
brightnessctl = "${pkgs.brightnessctl}/bin/brightnessctl";
|
||||||
in
|
in {
|
||||||
{
|
|
||||||
imports = [
|
imports = [
|
||||||
inputs.nixos-hardware.nixosModules.framework-13-7040-amd
|
inputs.nixos-hardware.nixosModules.framework-13-7040-amd
|
||||||
|
|
||||||
|
@ -35,7 +32,7 @@ in
|
||||||
|
|
||||||
home-manager.users.${config.custom.username} = with lib; {
|
home-manager.users.${config.custom.username} = with lib; {
|
||||||
wayland.windowManager.hyprland.settings = {
|
wayland.windowManager.hyprland.settings = {
|
||||||
exec-once = [ "${brightnessctl} set 0%" ];
|
exec-once = ["${brightnessctl} set 0%"];
|
||||||
|
|
||||||
master = {
|
master = {
|
||||||
mfact = mkForce 0.5;
|
mfact = mkForce 0.5;
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
passwordFile = "/tmp/secret.key";
|
passwordFile = "/tmp/secret.key";
|
||||||
content = {
|
content = {
|
||||||
type = "btrfs";
|
type = "btrfs";
|
||||||
extraArgs = [ "-f" ];
|
extraArgs = ["-f"];
|
||||||
subvolumes = {
|
subvolumes = {
|
||||||
"/root" = {
|
"/root" = {
|
||||||
mountpoint = "/";
|
mountpoint = "/";
|
||||||
|
|
|
@ -7,10 +7,8 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
modulesPath,
|
modulesPath,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
|
imports = [(modulesPath + "/installer/scan/not-detected.nix")];
|
||||||
{
|
|
||||||
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
|
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = [
|
boot.initrd.availableKernelModules = [
|
||||||
"nvme"
|
"nvme"
|
||||||
|
@ -20,9 +18,9 @@
|
||||||
"uas"
|
"uas"
|
||||||
"sd_mod"
|
"sd_mod"
|
||||||
];
|
];
|
||||||
boot.initrd.kernelModules = [ ];
|
boot.initrd.kernelModules = [];
|
||||||
boot.kernelModules = [ "kvm-amd" ];
|
boot.kernelModules = ["kvm-amd"];
|
||||||
boot.extraModulePackages = [ ];
|
boot.extraModulePackages = [];
|
||||||
|
|
||||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
# 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
|
# (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";
|
custom.hostname = "mypi3";
|
||||||
|
|
||||||
|
|
|
@ -7,22 +7,20 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
modulesPath,
|
modulesPath,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
|
imports = [(modulesPath + "/installer/scan/not-detected.nix")];
|
||||||
|
|
||||||
{
|
boot.initrd.availableKernelModules = [];
|
||||||
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
|
boot.initrd.kernelModules = [];
|
||||||
|
boot.kernelModules = [];
|
||||||
boot.initrd.availableKernelModules = [ ];
|
boot.extraModulePackages = [];
|
||||||
boot.initrd.kernelModules = [ ];
|
|
||||||
boot.kernelModules = [ ];
|
|
||||||
boot.extraModulePackages = [ ];
|
|
||||||
|
|
||||||
fileSystems."/" = {
|
fileSystems."/" = {
|
||||||
device = "/dev/disk/by-uuid/44444444-4444-4444-8888-888888888888";
|
device = "/dev/disk/by-uuid/44444444-4444-4444-8888-888888888888";
|
||||||
fsType = "ext4";
|
fsType = "ext4";
|
||||||
};
|
};
|
||||||
|
|
||||||
swapDevices = [ ];
|
swapDevices = [];
|
||||||
|
|
||||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
# 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
|
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||||
|
|
|
@ -1,38 +1,38 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom;
|
||||||
|
in {
|
||||||
options.custom = {
|
options.custom = {
|
||||||
### Profiles
|
### Profiles
|
||||||
default = mkOption { default = true; };
|
default = mkOption {default = true;};
|
||||||
full = mkOption { default = false; };
|
full = mkOption {default = false;};
|
||||||
minimal = mkOption { default = cfg.full; };
|
minimal = mkOption {default = cfg.full;};
|
||||||
profile = mkOption { };
|
profile = mkOption {};
|
||||||
|
|
||||||
### Users
|
### Users
|
||||||
domain = mkOption { default = "bjork.tech"; };
|
domain = mkOption {default = "bjork.tech";};
|
||||||
hostname = mkOption { };
|
hostname = mkOption {};
|
||||||
realname = mkOption { default = "Myned"; };
|
realname = mkOption {default = "Myned";};
|
||||||
username = mkOption { default = "myned"; };
|
username = mkOption {default = "myned";};
|
||||||
|
|
||||||
### Hardware
|
### Hardware
|
||||||
width = mkOption { default = 1920; };
|
width = mkOption {default = 1920;};
|
||||||
height = mkOption { default = 1080; };
|
height = mkOption {default = 1080;};
|
||||||
ultrawide = mkOption { default = cfg.width * 9 / 16 > cfg.height; }; # Wider than 16:9
|
ultrawide = mkOption {default = cfg.width * 9 / 16 > cfg.height;}; # Wider than 16:9
|
||||||
hidpi = mkOption { default = cfg.scale > 1; };
|
hidpi = mkOption {default = cfg.scale > 1;};
|
||||||
scale = mkOption { default = 1; };
|
scale = mkOption {default = 1;};
|
||||||
|
|
||||||
# TODO: Use option for border size
|
# TODO: Use option for border size
|
||||||
border = mkOption { default = 2; };
|
border = mkOption {default = 2;};
|
||||||
|
|
||||||
gap = mkOption { default = 10; };
|
gap = mkOption {default = 10;};
|
||||||
padding = mkOption { default = 56; }; # ?? journalctl --user -u waybar.service | grep height:
|
padding = mkOption {default = 56;}; # ?? journalctl --user -u waybar.service | grep height:
|
||||||
|
|
||||||
### Misc
|
### Misc
|
||||||
wallpaper = mkOption { default = false; };
|
wallpaper = mkOption {default = false;};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; {
|
||||||
config.custom.desktops.hyprland.enable = config.custom.full;
|
config.custom.desktops.hyprland.enable = config.custom.full;
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,16 +4,12 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
with lib; let
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.desktops.gnome;
|
cfg = config.custom.desktops.gnome;
|
||||||
in
|
in {
|
||||||
{
|
|
||||||
options.custom.desktops.gnome = {
|
options.custom.desktops.gnome = {
|
||||||
enable = mkOption { default = false; };
|
enable = mkOption {default = false;};
|
||||||
gdm = mkOption { default = true; };
|
gdm = mkOption {default = true;};
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
@ -30,6 +26,6 @@ in
|
||||||
|
|
||||||
# Remove default packages
|
# Remove default packages
|
||||||
# https://wiki.nixos.org/wiki/GNOME#Excluding_GNOME_Applications
|
# https://wiki.nixos.org/wiki/GNOME#Excluding_GNOME_Applications
|
||||||
environment.gnome.excludePackages = [ pkgs.gnome-shell-extensions ];
|
environment.gnome.excludePackages = [pkgs.gnome-shell-extensions];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,14 +4,10 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
with lib; let
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.desktops.hyprland;
|
cfg = config.custom.desktops.hyprland;
|
||||||
in
|
in {
|
||||||
{
|
options.custom.desktops.hyprland.enable = mkOption {default = false;};
|
||||||
options.custom.desktops.hyprland.enable = mkOption { default = false; };
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
custom.desktops.hyprland = mkIf config.custom.full {
|
custom.desktops.hyprland = mkIf config.custom.full {
|
||||||
|
@ -26,7 +22,7 @@ in
|
||||||
|
|
||||||
xdg.portal = {
|
xdg.portal = {
|
||||||
enable = true;
|
enable = true;
|
||||||
extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
|
extraPortals = [pkgs.xdg-desktop-portal-gtk];
|
||||||
|
|
||||||
# Prefer hyprland over gtk portal
|
# Prefer hyprland over gtk portal
|
||||||
config.common.default = [
|
config.common.default = [
|
||||||
|
@ -38,7 +34,7 @@ in
|
||||||
# https://wiki.hyprland.org
|
# https://wiki.hyprland.org
|
||||||
home-manager.users.${config.custom.username}.wayland.windowManager.hyprland = {
|
home-manager.users.${config.custom.username}.wayland.windowManager.hyprland = {
|
||||||
enable = true;
|
enable = true;
|
||||||
systemd.variables = [ "--all" ]; # Import some environment variables into session
|
systemd.variables = ["--all"]; # Import some environment variables into session
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,22 +4,18 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
with lib; let
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
hyprctl = "${pkgs.hyprland}/bin/hyprctl";
|
hyprctl = "${pkgs.hyprland}/bin/hyprctl";
|
||||||
|
|
||||||
cfg = config.custom.desktops.hyprland.plugins;
|
cfg = config.custom.desktops.hyprland.plugins;
|
||||||
in
|
in {
|
||||||
{
|
options.custom.desktops.hyprland.plugins.enable = mkOption {default = false;};
|
||||||
options.custom.desktops.hyprland.plugins.enable = mkOption { default = false; };
|
|
||||||
|
|
||||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||||
wayland.windowManager.hyprland = {
|
wayland.windowManager.hyprland = {
|
||||||
# https://github.com/hyprwm/hyprland-plugins/tree/main/hyprbars
|
# https://github.com/hyprwm/hyprland-plugins/tree/main/hyprbars
|
||||||
# https://wiki.hyprland.org/Plugins/Using-Plugins
|
# https://wiki.hyprland.org/Plugins/Using-Plugins
|
||||||
plugins = with pkgs.hyprlandPlugins; [ hyprbars ];
|
plugins = with pkgs.hyprlandPlugins; [hyprbars];
|
||||||
|
|
||||||
settings = {
|
settings = {
|
||||||
#!! Static rules
|
#!! Static rules
|
||||||
|
|
|
@ -4,10 +4,7 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
with lib; let
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
clipse = "${pkgs.clipse}/bin/clipse";
|
clipse = "${pkgs.clipse}/bin/clipse";
|
||||||
firefox-esr = "${
|
firefox-esr = "${
|
||||||
config.home-manager.users.${config.custom.username}.programs.firefox.finalPackage
|
config.home-manager.users.${config.custom.username}.programs.firefox.finalPackage
|
||||||
|
@ -22,9 +19,8 @@ let
|
||||||
}/bin/waybar";
|
}/bin/waybar";
|
||||||
|
|
||||||
cfg = config.custom.desktops.hyprland.settings;
|
cfg = config.custom.desktops.hyprland.settings;
|
||||||
in
|
in {
|
||||||
{
|
options.custom.desktops.hyprland.settings.enable = mkOption {default = false;};
|
||||||
options.custom.desktops.hyprland.settings.enable = mkOption { default = false; };
|
|
||||||
|
|
||||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||||
wayland.windowManager.hyprland.settings = {
|
wayland.windowManager.hyprland.settings = {
|
||||||
|
@ -51,12 +47,12 @@ in
|
||||||
#?? envd = VARIABLE, VALUE
|
#?? envd = VARIABLE, VALUE
|
||||||
# HACK: Mapped home-manager variables to envd in lieu of upstream fix
|
# HACK: Mapped home-manager variables to envd in lieu of upstream fix
|
||||||
# https://github.com/nix-community/home-manager/issues/2659
|
# https://github.com/nix-community/home-manager/issues/2659
|
||||||
envd =
|
envd = with builtins;
|
||||||
with builtins;
|
|
||||||
attrValues (
|
attrValues (
|
||||||
mapAttrs (
|
mapAttrs (
|
||||||
name: value: "${name}, ${toString value}"
|
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"
|
"EDITOR, gnome-text-editor"
|
||||||
|
@ -66,15 +62,16 @@ in
|
||||||
#// exec = [ ];
|
#// exec = [ ];
|
||||||
|
|
||||||
# https://wiki.hyprland.org/Configuring/Keywords/#executing
|
# 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
|
"${rm} ~/.config/qalculate/qalc.dmenu.history" # Clear calc history
|
||||||
"${clipse} -listen" # Monitor clipboard
|
"${clipse} -clear" # Clear clipboard history
|
||||||
sway-audio-idle-inhibit # Inhibit idle while audio is playing
|
"${clipse} -listen" # Monitor clipboard
|
||||||
|
sway-audio-idle-inhibit # Inhibit idle while audio is playing
|
||||||
|
|
||||||
# TODO: Remove when systemd service fixed
|
# TODO: Remove when systemd service fixed
|
||||||
# https://github.com/Alexays/Waybar/issues/2882
|
# https://github.com/Alexays/Waybar/issues/2882
|
||||||
"${sleep} 2 && ${systemctl} --user restart waybar"
|
"${sleep} 2 && ${systemctl} --user restart waybar"
|
||||||
|
|
||||||
"[group new lock; tile] ${firefox-esr}"
|
"[group new lock; tile] ${firefox-esr}"
|
||||||
]
|
]
|
||||||
|
@ -143,7 +140,10 @@ in
|
||||||
"col.inactive" = "rgba(6c71c440)";
|
"col.inactive" = "rgba(6c71c440)";
|
||||||
"col.locked_active" = "rgb(d33682)";
|
"col.locked_active" = "rgb(d33682)";
|
||||||
"col.locked_inactive" = "rgba(d3368240)";
|
"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;
|
height = 5;
|
||||||
render_titles = false;
|
render_titles = false;
|
||||||
text_color = "rgb(93a1a1)";
|
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,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
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; };
|
config = mkIf cfg.enable {services.desktopManager.plasma6.enable = true;};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,16 +1,16 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.files.agenix;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.files.agenix;
|
||||||
|
in {
|
||||||
# https://wiki.nixos.org/wiki/Agenix
|
# https://wiki.nixos.org/wiki/Agenix
|
||||||
# https://github.com/ryantm/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 {
|
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,8 +1,9 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; {
|
||||||
config.custom.files = mkIf config.custom.default {
|
config.custom.files = mkIf config.custom.default {
|
||||||
agenix.enable = true;
|
agenix.enable = true;
|
||||||
dev.enable = true;
|
dev.enable = true;
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.files.dev;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
options.custom.files.dev.enable = mkOption { default = false; };
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.files.dev;
|
||||||
|
in {
|
||||||
|
options.custom.files.dev.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||||
# .keep empty file needed to create empty directory
|
# .keep empty file needed to create empty directory
|
||||||
|
|
|
@ -1,15 +1,15 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.files.mnt;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
options.custom.files.mnt.enable = mkOption { default = false; };
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.files.mnt;
|
||||||
|
in {
|
||||||
|
options.custom.files.mnt.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
# Set /mnt permissions
|
# 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
|
|
||||||
cfg = config.custom.files.nixos;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
options.custom.files.nixos.enable = mkOption { default = false; };
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.files.nixos;
|
||||||
|
in {
|
||||||
|
options.custom.files.nixos.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
# https://www.freedesktop.org/software/systemd/man/latest/tmpfiles.d.html
|
# https://www.freedesktop.org/software/systemd/man/latest/tmpfiles.d.html
|
||||||
|
|
|
@ -1,17 +1,17 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.adb;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
options.custom.programs.adb.enable = mkOption { default = false; };
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.adb;
|
||||||
|
in {
|
||||||
|
options.custom.programs.adb.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
# https://wiki.nixos.org/wiki/Android
|
# https://wiki.nixos.org/wiki/Android
|
||||||
# https://developer.android.com/tools/adb
|
# https://developer.android.com/tools/adb
|
||||||
programs.adb.enable = true;
|
programs.adb.enable = true;
|
||||||
users.users.${config.custom.username}.extraGroups = [ "adbusers" ];
|
users.users.${config.custom.username}.extraGroups = ["adbusers"];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,17 +4,13 @@
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
with lib; let
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.ags;
|
cfg = config.custom.programs.ags;
|
||||||
in
|
in {
|
||||||
{
|
options.custom.programs.ags.enable = mkOption {default = false;};
|
||||||
options.custom.programs.ags.enable = mkOption { default = false; };
|
|
||||||
|
|
||||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
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://aylur.github.io/ags-docs
|
||||||
# https://github.com/Aylur/ags
|
# https://github.com/Aylur/ags
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.alacritty;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
options.custom.programs.alacritty.enable = mkOption { default = false; };
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.alacritty;
|
||||||
|
in {
|
||||||
|
options.custom.programs.alacritty.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||||
# https://github.com/alacritty/alacritty
|
# https://github.com/alacritty/alacritty
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.anime-game-launcher;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
options.custom.programs.anime-game-launcher.enable = mkOption { default = false; };
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.anime-game-launcher;
|
||||||
|
in {
|
||||||
|
options.custom.programs.anime-game-launcher.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
# https://github.com/an-anime-team
|
# https://github.com/an-anime-team
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.appimage;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
options.custom.programs.appimage.enable = mkOption { default = false; };
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.appimage;
|
||||||
|
in {
|
||||||
|
options.custom.programs.appimage.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
# https://wiki.nixos.org/wiki/Appimage
|
# https://wiki.nixos.org/wiki/Appimage
|
||||||
|
|
|
@ -1,14 +1,14 @@
|
||||||
{ config, lib, ... }:
|
{
|
||||||
|
config,
|
||||||
with lib;
|
lib,
|
||||||
|
...
|
||||||
let
|
}:
|
||||||
|
with lib; let
|
||||||
wofi = "${config.home-manager.users.${config.custom.username}.programs.wofi.package}/bin/wofi";
|
wofi = "${config.home-manager.users.${config.custom.username}.programs.wofi.package}/bin/wofi";
|
||||||
|
|
||||||
cfg = config.custom.programs.bitwarden-menu;
|
cfg = config.custom.programs.bitwarden-menu;
|
||||||
in
|
in {
|
||||||
{
|
options.custom.programs.bitwarden-menu.enable = mkOption {default = false;};
|
||||||
options.custom.programs.bitwarden-menu.enable = mkOption { default = false; };
|
|
||||||
|
|
||||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||||
# https://github.com/firecat53/bitwarden-menu
|
# https://github.com/firecat53/bitwarden-menu
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.chromium;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
options.custom.programs.chromium.enable = mkOption { default = false; };
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.chromium;
|
||||||
|
in {
|
||||||
|
options.custom.programs.chromium.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||||
# https://wiki.nixos.org/wiki/Chromium
|
# https://wiki.nixos.org/wiki/Chromium
|
||||||
|
|
|
@ -4,14 +4,10 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
with lib; let
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.clipse;
|
cfg = config.custom.programs.clipse;
|
||||||
in
|
in {
|
||||||
{
|
options.custom.programs.clipse.enable = mkOption {default = false;};
|
||||||
options.custom.programs.clipse.enable = mkOption { default = false; };
|
|
||||||
|
|
||||||
config = {
|
config = {
|
||||||
# https://github.com/savedra1/clipse
|
# https://github.com/savedra1/clipse
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.dconf;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
options.custom.programs.dconf.enable = mkOption { default = false; };
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.dconf;
|
||||||
|
in {
|
||||||
|
options.custom.programs.dconf.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
# https://gitlab.gnome.org/GNOME/dconf
|
# https://gitlab.gnome.org/GNOME/dconf
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; {
|
||||||
config.custom.programs = mkMerge [
|
config.custom.programs = mkMerge [
|
||||||
(mkIf config.custom.default {
|
(mkIf config.custom.default {
|
||||||
direnv.enable = true;
|
direnv.enable = true;
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.direnv;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
options.custom.programs.direnv.enable = mkOption { default = false; };
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.direnv;
|
||||||
|
in {
|
||||||
|
options.custom.programs.direnv.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
# https://github.com/direnv/direnv
|
# https://github.com/direnv/direnv
|
||||||
|
|
|
@ -1,16 +1,16 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.discord;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
options.custom.programs.discord.enable = mkOption { default = false; };
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.discord;
|
||||||
|
in {
|
||||||
|
options.custom.programs.discord.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config.home-manager.users.myned = mkIf cfg.enable {
|
config.home-manager.users.myned = mkIf cfg.enable {
|
||||||
home.file.".config/BetterDiscord".source =
|
home.file.".config/BetterDiscord".source =
|
||||||
config.home-manager.users.${config.custom.username}.lib.file.mkOutOfStoreSymlink
|
config.home-manager.users.${config.custom.username}.lib.file.mkOutOfStoreSymlink
|
||||||
"/home/${config.custom.username}/SYNC/common/config/discord/BetterDiscord";
|
"/home/${config.custom.username}/SYNC/common/config/discord/BetterDiscord";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.element-desktop;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
options.custom.programs.element-desktop.enable = mkOption { default = false; };
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.element-desktop;
|
||||||
|
in {
|
||||||
|
options.custom.programs.element-desktop.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||||
# Element Desktop custom themes
|
# Element Desktop custom themes
|
||||||
|
|
|
@ -4,23 +4,19 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
with lib; let
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
fastfetch = "${pkgs.fastfetch}/bin/fastfetch";
|
fastfetch = "${pkgs.fastfetch}/bin/fastfetch";
|
||||||
|
|
||||||
cfg = config.custom.programs.fastfetch;
|
cfg = config.custom.programs.fastfetch;
|
||||||
in
|
in {
|
||||||
{
|
|
||||||
options.custom.programs.fastfetch = {
|
options.custom.programs.fastfetch = {
|
||||||
enable = mkOption { default = false; };
|
enable = mkOption {default = false;};
|
||||||
greet = mkOption { default = false; };
|
greet = mkOption {default = false;};
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
# https://github.com/fastfetch-cli/fastfetch
|
# https://github.com/fastfetch-cli/fastfetch
|
||||||
environment.systemPackages = [ pkgs.fastfetch ];
|
environment.systemPackages = [pkgs.fastfetch];
|
||||||
|
|
||||||
# System info greeting
|
# System info greeting
|
||||||
programs.fish.interactiveShellInit = mkIf cfg.greet ''
|
programs.fish.interactiveShellInit = mkIf cfg.greet ''
|
||||||
|
|
|
@ -5,14 +5,10 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
with lib; let
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.firefox;
|
cfg = config.custom.programs.firefox;
|
||||||
in
|
in {
|
||||||
{
|
options.custom.programs.firefox.enable = mkOption {default = false;};
|
||||||
options.custom.programs.firefox.enable = mkOption { default = false; };
|
|
||||||
|
|
||||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||||
# TODO: Switch to librewolf when supported by module
|
# TODO: Switch to librewolf when supported by module
|
||||||
|
@ -116,13 +112,12 @@ in
|
||||||
# https://mozilla.github.io/policy-templates/#extensionsettings
|
# https://mozilla.github.io/policy-templates/#extensionsettings
|
||||||
#?? https://addons.mozilla.org/en-US/firefox
|
#?? https://addons.mozilla.org/en-US/firefox
|
||||||
#?? about:support#addons
|
#?? about:support#addons
|
||||||
ExtensionSettings =
|
ExtensionSettings = let
|
||||||
let
|
extension = id: {
|
||||||
extension = id: {
|
install_url = "https://addons.mozilla.org/firefox/downloads/latest/${id}/latest.xpi";
|
||||||
install_url = "https://addons.mozilla.org/firefox/downloads/latest/${id}/latest.xpi";
|
installation_mode = "normal_installed";
|
||||||
installation_mode = "normal_installed";
|
};
|
||||||
};
|
in
|
||||||
in
|
|
||||||
mkMerge [
|
mkMerge [
|
||||||
(mkIf config.custom.minimal {
|
(mkIf config.custom.minimal {
|
||||||
"uBlock0@raymondhill.net" = extension "ublock-origin"; # uBlock Origin
|
"uBlock0@raymondhill.net" = extension "ublock-origin"; # uBlock Origin
|
||||||
|
@ -194,59 +189,57 @@ in
|
||||||
#!! Only certain preferences are supported via policies
|
#!! Only certain preferences are supported via policies
|
||||||
# https://mozilla.github.io/policy-templates/#preferences
|
# https://mozilla.github.io/policy-templates/#preferences
|
||||||
#?? about:config
|
#?? about:config
|
||||||
Preferences =
|
Preferences = let
|
||||||
let
|
locked = value: {
|
||||||
locked = value: {
|
Value = value;
|
||||||
Value = value;
|
Status = "locked";
|
||||||
Status = "locked";
|
|
||||||
};
|
|
||||||
in
|
|
||||||
{
|
|
||||||
"accessibility.browsewithcaret" = locked false;
|
|
||||||
"accessibility.typeaheadfind" = locked false;
|
|
||||||
"browser.aboutConfig.showWarning" = locked false;
|
|
||||||
"browser.contentblocking.category" = locked "standard";
|
|
||||||
"browser.crashReports.unsubmittedCheck.autoSubmit2" = locked false;
|
|
||||||
"browser.ctrlTab.sortByRecentlyUsed" = locked false;
|
|
||||||
"browser.download.always_ask_before_handling_new_types" = locked false;
|
|
||||||
"browser.download.useDownloadDir" = locked true;
|
|
||||||
"browser.link.open_newwindow" = locked 3; # New tab
|
|
||||||
"browser.link.open_newwindow.restriction" = locked 0; # Popups in new tab
|
|
||||||
"browser.newtabpage.enabled" = locked true;
|
|
||||||
"browser.preferences.defaultPerformanceSettings.enabled" = locked true;
|
|
||||||
"browser.quitShortcut.disabled" = locked true;
|
|
||||||
"browser.search.widget.inNavBar" = locked false;
|
|
||||||
"browser.startup.homepage" = locked "about:home";
|
|
||||||
"browser.startup.page" = locked 3; # Previous session
|
|
||||||
"browser.tabs.closeTabByDblclick" = locked true;
|
|
||||||
"browser.tabs.closeWindowWithLastTab" = locked false;
|
|
||||||
"browser.tabs.insertAfterCurrent" = locked false;
|
|
||||||
"browser.tabs.insertRelatedAfterCurrent" = locked false;
|
|
||||||
"browser.tabs.loadInBackground" = locked true;
|
|
||||||
"browser.tabs.warnOnClose" = locked false;
|
|
||||||
"browser.tabs.warnOnCloseOtherTabs" = locked false;
|
|
||||||
"browser.theme.dark-private-windows" = locked false;
|
|
||||||
"browser.toolbars.bookmarks.showOtherBookmarks" = locked false;
|
|
||||||
"browser.uidensity" = locked 0;
|
|
||||||
"browser.warnOnQuitShortcut" = locked true;
|
|
||||||
"dom.security.https_only_mode" = locked true;
|
|
||||||
"extensions.formautofill.addresses.enabled" = locked false;
|
|
||||||
"extensions.formautofill.creditCards.enabled" = locked false;
|
|
||||||
"general.autoScroll" = locked false;
|
|
||||||
"general.smoothScroll" = locked true;
|
|
||||||
"layers.acceleration.force-enabled" = locked true;
|
|
||||||
"layout.css.always_underline_links" = locked false;
|
|
||||||
"layout.css.backdrop-filter.enabled" = locked true;
|
|
||||||
"layout.spellcheckDefault" = locked 0; # Disabled
|
|
||||||
"media.eme.enabled" = locked true; # DRM
|
|
||||||
"media.hardwaremediakeys.enabled" = locked true;
|
|
||||||
"media.hardware-video-decoding.enabled" = locked false; # !! Disable video acceleration
|
|
||||||
#// "media.rdd-process.enabled" = locked false; # RDD sandbox #!! Insecure
|
|
||||||
"toolkit.legacyUserProfileCustomizations.stylesheets" = locked true;
|
|
||||||
"ui.key.menuAccessKey" = locked 0; # Disable menu key
|
|
||||||
"widget.gtk.overlay-scrollbars.enabled" = locked true;
|
|
||||||
"widget.gtk.rounded-bottom-corners.enabled" = locked true;
|
|
||||||
};
|
};
|
||||||
|
in {
|
||||||
|
"accessibility.browsewithcaret" = locked false;
|
||||||
|
"accessibility.typeaheadfind" = locked false;
|
||||||
|
"browser.aboutConfig.showWarning" = locked false;
|
||||||
|
"browser.contentblocking.category" = locked "standard";
|
||||||
|
"browser.crashReports.unsubmittedCheck.autoSubmit2" = locked false;
|
||||||
|
"browser.ctrlTab.sortByRecentlyUsed" = locked false;
|
||||||
|
"browser.download.always_ask_before_handling_new_types" = locked false;
|
||||||
|
"browser.download.useDownloadDir" = locked true;
|
||||||
|
"browser.link.open_newwindow" = locked 3; # New tab
|
||||||
|
"browser.link.open_newwindow.restriction" = locked 0; # Popups in new tab
|
||||||
|
"browser.newtabpage.enabled" = locked true;
|
||||||
|
"browser.preferences.defaultPerformanceSettings.enabled" = locked true;
|
||||||
|
"browser.quitShortcut.disabled" = locked true;
|
||||||
|
"browser.search.widget.inNavBar" = locked false;
|
||||||
|
"browser.startup.homepage" = locked "about:home";
|
||||||
|
"browser.startup.page" = locked 3; # Previous session
|
||||||
|
"browser.tabs.closeTabByDblclick" = locked true;
|
||||||
|
"browser.tabs.closeWindowWithLastTab" = locked false;
|
||||||
|
"browser.tabs.insertAfterCurrent" = locked false;
|
||||||
|
"browser.tabs.insertRelatedAfterCurrent" = locked false;
|
||||||
|
"browser.tabs.loadInBackground" = locked true;
|
||||||
|
"browser.tabs.warnOnClose" = locked false;
|
||||||
|
"browser.tabs.warnOnCloseOtherTabs" = locked false;
|
||||||
|
"browser.theme.dark-private-windows" = locked false;
|
||||||
|
"browser.toolbars.bookmarks.showOtherBookmarks" = locked false;
|
||||||
|
"browser.uidensity" = locked 0;
|
||||||
|
"browser.warnOnQuitShortcut" = locked true;
|
||||||
|
"dom.security.https_only_mode" = locked true;
|
||||||
|
"extensions.formautofill.addresses.enabled" = locked false;
|
||||||
|
"extensions.formautofill.creditCards.enabled" = locked false;
|
||||||
|
"general.autoScroll" = locked false;
|
||||||
|
"general.smoothScroll" = locked true;
|
||||||
|
"layers.acceleration.force-enabled" = locked true;
|
||||||
|
"layout.css.always_underline_links" = locked false;
|
||||||
|
"layout.css.backdrop-filter.enabled" = locked true;
|
||||||
|
"layout.spellcheckDefault" = locked 0; # Disabled
|
||||||
|
"media.eme.enabled" = locked true; # DRM
|
||||||
|
"media.hardwaremediakeys.enabled" = locked true;
|
||||||
|
"media.hardware-video-decoding.enabled" = locked false; # !! Disable video acceleration
|
||||||
|
#// "media.rdd-process.enabled" = locked false; # RDD sandbox #!! Insecure
|
||||||
|
"toolkit.legacyUserProfileCustomizations.stylesheets" = locked true;
|
||||||
|
"ui.key.menuAccessKey" = locked 0; # Disable menu key
|
||||||
|
"widget.gtk.overlay-scrollbars.enabled" = locked true;
|
||||||
|
"widget.gtk.rounded-bottom-corners.enabled" = locked true;
|
||||||
|
};
|
||||||
|
|
||||||
SearchBar = "unified";
|
SearchBar = "unified";
|
||||||
|
|
||||||
|
@ -552,7 +545,7 @@ in
|
||||||
"Downloads/stg" = mkIf config.custom.full {
|
"Downloads/stg" = mkIf config.custom.full {
|
||||||
source =
|
source =
|
||||||
config.home-manager.users.${config.custom.username}.lib.file.mkOutOfStoreSymlink
|
config.home-manager.users.${config.custom.username}.lib.file.mkOutOfStoreSymlink
|
||||||
"/home/myned/SYNC/common/config/extensions/Simple Tab Groups";
|
"/home/myned/SYNC/common/config/extensions/Simple Tab Groups";
|
||||||
};
|
};
|
||||||
|
|
||||||
# Work around icon dissociation due to missing --name flag in actions
|
# Work around icon dissociation due to missing --name flag in actions
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.fish;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
options.custom.programs.fish.enable = mkOption { default = false; };
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.fish;
|
||||||
|
in {
|
||||||
|
options.custom.programs.fish.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
# https://wiki.nixos.org/wiki/Fish
|
# https://wiki.nixos.org/wiki/Fish
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.foot;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
options.custom.programs.foot.enable = mkOption { default = false; };
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.foot;
|
||||||
|
in {
|
||||||
|
options.custom.programs.foot.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||||
# https://codeberg.org/dnkl/foot
|
# https://codeberg.org/dnkl/foot
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.fuzzel;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
options.custom.programs.fuzzel.enable = mkOption { default = false; };
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.fuzzel;
|
||||||
|
in {
|
||||||
|
options.custom.programs.fuzzel.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||||
# https://codeberg.org/dnkl/fuzzel
|
# https://codeberg.org/dnkl/fuzzel
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.gamemode;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
options.custom.programs.gamemode.enable = mkOption { default = false; };
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.gamemode;
|
||||||
|
in {
|
||||||
|
options.custom.programs.gamemode.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
# https://github.com/FeralInteractive/gamemode
|
# https://github.com/FeralInteractive/gamemode
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.gamescope;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
options.custom.programs.gamescope.enable = mkOption { default = false; };
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.gamescope;
|
||||||
|
in {
|
||||||
|
options.custom.programs.gamescope.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
# https://github.com/ValveSoftware/gamescope
|
# https://github.com/ValveSoftware/gamescope
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.git;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
options.custom.programs.git.enable = mkOption { default = false; };
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.git;
|
||||||
|
in {
|
||||||
|
options.custom.programs.git.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||||
# https://wiki.archlinux.org/title/Git
|
# https://wiki.archlinux.org/title/Git
|
||||||
|
|
|
@ -4,43 +4,38 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
with lib; let
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.gnome-shell;
|
cfg = config.custom.programs.gnome-shell;
|
||||||
in
|
in {
|
||||||
{
|
options.custom.programs.gnome-shell.enable = mkOption {default = false;};
|
||||||
options.custom.programs.gnome-shell.enable = mkOption { default = false; };
|
|
||||||
|
|
||||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||||
# BUG: programs.gnome-shell.theme option forces installation of gnome-shell-extensions
|
# BUG: programs.gnome-shell.theme option forces installation of gnome-shell-extensions
|
||||||
programs.gnome-shell = {
|
programs.gnome-shell = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
extensions =
|
extensions = with pkgs.gnomeExtensions;
|
||||||
with pkgs.gnomeExtensions;
|
|
||||||
optionals config.custom.default [
|
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 [
|
++ optionals config.custom.minimal [
|
||||||
{ package = caffeine; } # https://github.com/eonpatapon/gnome-shell-extension-caffeine
|
{package = caffeine;} # https://github.com/eonpatapon/gnome-shell-extension-caffeine
|
||||||
{ package = dash-to-dock; } # https://github.com/micheleg/dash-to-dock
|
{package = dash-to-dock;} # https://github.com/micheleg/dash-to-dock
|
||||||
#// { package = dash2dock-lite; } # https://github.com/icedman/dash2dock-lite
|
#// { package = dash2dock-lite; } # https://github.com/icedman/dash2dock-lite
|
||||||
{ package = gsconnect; } # https://github.com/GSConnect/gnome-shell-extension-gsconnect
|
{package = gsconnect;} # https://github.com/GSConnect/gnome-shell-extension-gsconnect
|
||||||
{ package = just-perfection; } # https://gitlab.gnome.org/jrahmatzadeh/just-perfection
|
{package = just-perfection;} # https://gitlab.gnome.org/jrahmatzadeh/just-perfection
|
||||||
{ package = rounded-window-corners-reborn; } # https://github.com/flexagoon/rounded-window-corners
|
{package = rounded-window-corners-reborn;} # https://github.com/flexagoon/rounded-window-corners
|
||||||
#// { package = user-themes; } # https://gitlab.gnome.org/GNOME/gnome-shell-extensions
|
#// { package = user-themes; } # https://gitlab.gnome.org/GNOME/gnome-shell-extensions
|
||||||
]
|
]
|
||||||
++ optionals config.custom.full [
|
++ optionals config.custom.full [
|
||||||
#// { package = auto-move-windows; } # https://gitlab.gnome.org/GNOME/gnome-shell-extensions
|
#// { 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 = clipboard-indicator;} # https://github.com/Tudmotu/gnome-shell-extension-clipboard-indicator
|
||||||
{ package = ddterm; } # https://github.com/ddterm/gnome-shell-extension-ddterm
|
{package = ddterm;} # https://github.com/ddterm/gnome-shell-extension-ddterm
|
||||||
#// { package = hide-top-bar; } # https://gitlab.gnome.org/tuxor1337/hidetopbar
|
#// { 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 = smart-auto-move; } # https://github.com/khimaros/smart-auto-move
|
||||||
{ package = tailscale-qs; } # https://github.com/joaophi/tailscale-gnome-qs
|
{package = tailscale-qs;} # https://github.com/joaophi/tailscale-gnome-qs
|
||||||
{ package = tiling-assistant; } # https://github.com/Leleat/Tiling-Assistant
|
{package = tiling-assistant;} # https://github.com/Leleat/Tiling-Assistant
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.gnome-terminal;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
options.custom.programs.gnome-terminal.enable = mkOption { default = false; };
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.gnome-terminal;
|
||||||
|
in {
|
||||||
|
options.custom.programs.gnome-terminal.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||||
# https://gitlab.gnome.org/GNOME/gnome-terminal
|
# https://gitlab.gnome.org/GNOME/gnome-terminal
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.gpg;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
options.custom.programs.gpg.enable = mkOption { default = false; };
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.gpg;
|
||||||
|
in {
|
||||||
|
options.custom.programs.gpg.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||||
# https://wiki.archlinux.org/title/GnuPG
|
# https://wiki.archlinux.org/title/GnuPG
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.htop;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
options.custom.programs.htop.enable = mkOption { default = false; };
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.htop;
|
||||||
|
in {
|
||||||
|
options.custom.programs.htop.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||||
# https://github.com/htop-dev/htop
|
# https://github.com/htop-dev/htop
|
||||||
|
@ -71,25 +71,25 @@ in
|
||||||
}
|
}
|
||||||
// (
|
// (
|
||||||
with config.home-manager.users.${config.custom.username}.lib.htop;
|
with config.home-manager.users.${config.custom.username}.lib.htop;
|
||||||
leftMeters [
|
leftMeters [
|
||||||
(bar "LeftCPUs4")
|
(bar "LeftCPUs4")
|
||||||
(text "Blank")
|
(text "Blank")
|
||||||
(bar "CPU")
|
(bar "CPU")
|
||||||
(bar "MemorySwap")
|
(bar "MemorySwap")
|
||||||
(text "System")
|
(text "System")
|
||||||
(text "DateTime")
|
(text "DateTime")
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
// (
|
// (
|
||||||
with config.home-manager.users.${config.custom.username}.lib.htop;
|
with config.home-manager.users.${config.custom.username}.lib.htop;
|
||||||
rightMeters [
|
rightMeters [
|
||||||
(bar "RightCPUs4")
|
(bar "RightCPUs4")
|
||||||
(text "Blank")
|
(text "Blank")
|
||||||
(bar "NetworkIO")
|
(bar "NetworkIO")
|
||||||
(bar "DiskIO")
|
(bar "DiskIO")
|
||||||
(text "Hostname")
|
(text "Hostname")
|
||||||
(text "Uptime")
|
(text "Uptime")
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.hyprlock;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
options.custom.programs.hyprlock.enable = mkOption { default = false; };
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.hyprlock;
|
||||||
|
in {
|
||||||
|
options.custom.programs.hyprlock.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
programs.hyprlock.enable = true; # Grant PAM access
|
programs.hyprlock.enable = true; # Grant PAM access
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.kdeconnect;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
options.custom.programs.kdeconnect.enable = mkOption { default = false; };
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.kdeconnect;
|
||||||
|
in {
|
||||||
|
options.custom.programs.kdeconnect.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
# https://github.com/KDE/kdeconnect-kde
|
# https://github.com/KDE/kdeconnect-kde
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.kitty;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
options.custom.programs.kitty.enable = mkOption { default = false; };
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.kitty;
|
||||||
|
in {
|
||||||
|
options.custom.programs.kitty.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||||
# https://sw.kovidgoyal.net/kitty/
|
# https://sw.kovidgoyal.net/kitty/
|
||||||
|
|
|
@ -4,25 +4,21 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
with lib; let
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.libreoffice;
|
cfg = config.custom.programs.libreoffice;
|
||||||
in
|
in {
|
||||||
{
|
|
||||||
options.custom.programs.libreoffice = {
|
options.custom.programs.libreoffice = {
|
||||||
enable = mkOption { default = false; };
|
enable = mkOption {default = false;};
|
||||||
package = mkOption { default = pkgs.libreoffice-fresh; };
|
package = mkOption {default = pkgs.libreoffice-fresh;};
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
# https://www.libreoffice.org
|
# https://www.libreoffice.org
|
||||||
environment.systemPackages = [ cfg.package ];
|
environment.systemPackages = [cfg.package];
|
||||||
|
|
||||||
#!! Options not available, files synced
|
#!! Options not available, files synced
|
||||||
home-manager.users.${config.custom.username}.home.file.".config/libreoffice/4/user".source =
|
home-manager.users.${config.custom.username}.home.file.".config/libreoffice/4/user".source =
|
||||||
config.home-manager.users.${config.custom.username}.lib.file.mkOutOfStoreSymlink
|
config.home-manager.users.${config.custom.username}.lib.file.mkOutOfStoreSymlink
|
||||||
"/home/${config.custom.username}/SYNC/linux/config/libreoffice/user";
|
"/home/${config.custom.username}/SYNC/linux/config/libreoffice/user";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.librewolf;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
options.custom.programs.librewolf.enable = mkOption { default = false; };
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.librewolf;
|
||||||
|
in {
|
||||||
|
options.custom.programs.librewolf.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||||
# https://codeberg.org/librewolf
|
# https://codeberg.org/librewolf
|
||||||
|
|
|
@ -1,15 +1,16 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.localsend;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
options.custom.programs.localsend.enable = mkOption { default = false; };
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.localsend;
|
||||||
|
in {
|
||||||
|
options.custom.programs.localsend.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config =
|
config =
|
||||||
if (versionAtLeast version "24.11") then
|
if (versionAtLeast version "24.11")
|
||||||
|
then
|
||||||
(mkIf cfg.enable {
|
(mkIf cfg.enable {
|
||||||
# https://github.com/localsend/localsend
|
# https://github.com/localsend/localsend
|
||||||
programs.localsend = {
|
programs.localsend = {
|
||||||
|
@ -17,6 +18,5 @@ in
|
||||||
openFirewall = true;
|
openFirewall = true;
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
else
|
else {};
|
||||||
{ };
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,17 +1,17 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.logseq;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
options.custom.programs.logseq.enable = mkOption { default = false; };
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.logseq;
|
||||||
|
in {
|
||||||
|
options.custom.programs.logseq.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||||
#!! Synced imperative configuration
|
#!! Synced imperative configuration
|
||||||
home.file.".logseq/".source =
|
home.file.".logseq/".source =
|
||||||
config.home-manager.users.${config.custom.username}.lib.file.mkOutOfStoreSymlink
|
config.home-manager.users.${config.custom.username}.lib.file.mkOutOfStoreSymlink
|
||||||
"/home/${config.custom.username}/SYNC/common/config/logseq/";
|
"/home/${config.custom.username}/SYNC/common/config/logseq/";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.man;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
options.custom.programs.man.enable = mkOption { default = false; };
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.man;
|
||||||
|
in {
|
||||||
|
options.custom.programs.man.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
# Enable as much offline docs as possible
|
# Enable as much offline docs as possible
|
||||||
|
|
|
@ -4,14 +4,10 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
with lib; let
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.mangohud;
|
cfg = config.custom.programs.mangohud;
|
||||||
in
|
in {
|
||||||
{
|
options.custom.programs.mangohud.enable = mkOption {default = false;};
|
||||||
options.custom.programs.mangohud.enable = mkOption { default = false; };
|
|
||||||
|
|
||||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||||
# https://github.com/flightlessmango/MangoHud
|
# https://github.com/flightlessmango/MangoHud
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.mosh;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
options.custom.programs.mosh.enable = mkOption { default = false; };
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.mosh;
|
||||||
|
in {
|
||||||
|
options.custom.programs.mosh.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
# https://wiki.nixos.org/wiki/Mosh
|
# https://wiki.nixos.org/wiki/Mosh
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.nano;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
options.custom.programs.nano.enable = mkOption { default = false; };
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.nano;
|
||||||
|
in {
|
||||||
|
options.custom.programs.nano.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
# https://wiki.archlinux.org/title/Nano
|
# https://wiki.archlinux.org/title/Nano
|
||||||
|
|
|
@ -4,14 +4,10 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
with lib; let
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.nautilus;
|
cfg = config.custom.programs.nautilus;
|
||||||
in
|
in {
|
||||||
{
|
options.custom.programs.nautilus.enable = mkOption {default = false;};
|
||||||
options.custom.programs.nautilus.enable = mkOption { default = false; };
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
services.gvfs.enable = true; # Trash dependency
|
services.gvfs.enable = true; # Trash dependency
|
||||||
|
|
|
@ -1,28 +1,26 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.networkmanager-dmenu;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
options.custom.programs.networkmanager-dmenu.enable = mkOption { default = false; };
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.networkmanager-dmenu;
|
||||||
|
in {
|
||||||
|
options.custom.programs.networkmanager-dmenu.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||||
# https://github.com/firecat53/networkmanager-dmenu
|
# https://github.com/firecat53/networkmanager-dmenu
|
||||||
# https://github.com/firecat53/networkmanager-dmenu/blob/main/config.ini.example
|
# https://github.com/firecat53/networkmanager-dmenu/blob/main/config.ini.example
|
||||||
#!! Option not available, files written directly
|
#!! Option not available, files written directly
|
||||||
# FIXME: active_chars does not take effect
|
# FIXME: active_chars does not take effect
|
||||||
home.file.".config/networkmanager-dmenu/config.ini".text =
|
home.file.".config/networkmanager-dmenu/config.ini".text = let
|
||||||
let
|
wofi = "${config.home-manager.users.${config.custom.username}.programs.wofi.package}/bin/wofi";
|
||||||
wofi = "${config.home-manager.users.${config.custom.username}.programs.wofi.package}/bin/wofi";
|
in ''
|
||||||
in
|
[dmenu]
|
||||||
''
|
dmenu_command = ${wofi} --dmenu --lines 11
|
||||||
[dmenu]
|
active_chars = >
|
||||||
dmenu_command = ${wofi} --dmenu --lines 11
|
wifi_icons =
|
||||||
active_chars = >
|
format = {icon} {name}
|
||||||
wifi_icons =
|
'';
|
||||||
format = {icon} {name}
|
|
||||||
'';
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.nh;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
options.custom.programs.nh.enable = mkOption { default = false; };
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.nh;
|
||||||
|
in {
|
||||||
|
options.custom.programs.nh.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
# https://github.com/viperML/nh
|
# https://github.com/viperML/nh
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.nheko;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
options.custom.programs.nheko.enable = mkOption { default = false; };
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.nheko;
|
||||||
|
in {
|
||||||
|
options.custom.programs.nheko.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||||
# https://github.com/Nheko-Reborn/nheko
|
# https://github.com/Nheko-Reborn/nheko
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.nix-index;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
options.custom.programs.nix-index.enable = mkOption { default = false; };
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.nix-index;
|
||||||
|
in {
|
||||||
|
options.custom.programs.nix-index.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
# https://github.com/nix-community/nix-index
|
# https://github.com/nix-community/nix-index
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.nix-ld;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
options.custom.programs.nix-ld.enable = mkOption { default = false; };
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.nix-ld;
|
||||||
|
in {
|
||||||
|
options.custom.programs.nix-ld.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
# https://github.com/nix-community/nix-ld
|
# https://github.com/nix-community/nix-ld
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.nushell;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
options.custom.programs.nushell.enable = mkOption { default = false; };
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.nushell;
|
||||||
|
in {
|
||||||
|
options.custom.programs.nushell.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||||
# TODO: Create config
|
# TODO: Create config
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.nvtop;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
options.custom.programs.nvtop.enable = mkOption { default = false; };
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.nvtop;
|
||||||
|
in {
|
||||||
|
options.custom.programs.nvtop.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||||
# https://github.com/Syllo/nvtop
|
# https://github.com/Syllo/nvtop
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.obs-studio;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
options.custom.programs.obs-studio.enable = mkOption { default = false; };
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.obs-studio;
|
||||||
|
in {
|
||||||
|
options.custom.programs.obs-studio.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||||
# https://github.com/obsproject/obs-studio
|
# https://github.com/obsproject/obs-studio
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.onedrive;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
options.custom.programs.onedrive.enable = mkOption { default = false; };
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.onedrive;
|
||||||
|
in {
|
||||||
|
options.custom.programs.onedrive.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||||
# https://github.com/abraunegg/onedrive
|
# https://github.com/abraunegg/onedrive
|
||||||
|
|
|
@ -4,14 +4,10 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
with lib; let
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.path-of-building;
|
cfg = config.custom.programs.path-of-building;
|
||||||
in
|
in {
|
||||||
{
|
options.custom.programs.path-of-building.enable = mkOption {default = false;};
|
||||||
options.custom.programs.path-of-building.enable = mkOption { default = false; };
|
|
||||||
|
|
||||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||||
xdg.desktopEntries.path-of-building = {
|
xdg.desktopEntries.path-of-building = {
|
||||||
|
|
|
@ -4,14 +4,10 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
with lib; let
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.rbw;
|
cfg = config.custom.programs.rbw;
|
||||||
in
|
in {
|
||||||
{
|
options.custom.programs.rbw.enable = mkOption {default = false;};
|
||||||
options.custom.programs.rbw.enable = mkOption { default = false; };
|
|
||||||
|
|
||||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||||
# https://github.com/doy/rbw
|
# https://github.com/doy/rbw
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.rofi-rbw;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
options.custom.programs.rofi-rbw.enable = mkOption { default = false; };
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.rofi-rbw;
|
||||||
|
in {
|
||||||
|
options.custom.programs.rofi-rbw.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||||
# https://github.com/fdw/rofi-rbw
|
# https://github.com/fdw/rofi-rbw
|
||||||
|
|
|
@ -4,14 +4,10 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
with lib; let
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.rofi;
|
cfg = config.custom.programs.rofi;
|
||||||
in
|
in {
|
||||||
{
|
options.custom.programs.rofi.enable = mkOption {default = false;};
|
||||||
options.custom.programs.rofi.enable = mkOption { default = false; };
|
|
||||||
|
|
||||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||||
#!! Creates package derivation
|
#!! Creates package derivation
|
||||||
|
@ -30,8 +26,8 @@ in
|
||||||
# Build against rofi-wayland due to ABI incompatibility with upstream
|
# Build against rofi-wayland due to ABI incompatibility with upstream
|
||||||
# https://github.com/lbonn/rofi/issues/96
|
# https://github.com/lbonn/rofi/issues/96
|
||||||
# https://github.com/NixOS/nixpkgs/issues/298539
|
# https://github.com/NixOS/nixpkgs/issues/298539
|
||||||
(rofi-calc.override { rofi-unwrapped = rofi-wayland-unwrapped; }) # Calculator
|
(rofi-calc.override {rofi-unwrapped = rofi-wayland-unwrapped;}) # Calculator
|
||||||
(rofi-top.override { rofi-unwrapped = rofi-wayland-unwrapped; }) # System monitor
|
(rofi-top.override {rofi-unwrapped = rofi-wayland-unwrapped;}) # System monitor
|
||||||
];
|
];
|
||||||
|
|
||||||
#?? rofi-theme-selector
|
#?? rofi-theme-selector
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.seahorse;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
options.custom.programs.seahorse.enable = mkOption { default = false; };
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.seahorse;
|
||||||
|
in {
|
||||||
|
options.custom.programs.seahorse.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
programs.seahorse.enable = true;
|
programs.seahorse.enable = true;
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.slurp;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
options.custom.programs.slurp.enable = mkOption { default = false; };
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.slurp;
|
||||||
|
in {
|
||||||
|
options.custom.programs.slurp.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||||
# https://github.com/emersion/slurp
|
# https://github.com/emersion/slurp
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.ssh;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
options.custom.programs.ssh.enable = mkOption { default = false; };
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.ssh;
|
||||||
|
in {
|
||||||
|
options.custom.programs.ssh.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
# Disable prompt for new hosts
|
# Disable prompt for new hosts
|
||||||
|
|
|
@ -4,33 +4,31 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
with lib; let
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.steam;
|
cfg = config.custom.programs.steam;
|
||||||
in
|
in {
|
||||||
{
|
|
||||||
# https://wiki.nixos.org/wiki/Steam
|
# https://wiki.nixos.org/wiki/Steam
|
||||||
# https://store.steampowered.com
|
# https://store.steampowered.com
|
||||||
options.custom.programs.steam = {
|
options.custom.programs.steam = {
|
||||||
enable = mkOption { default = false; };
|
enable = mkOption {default = false;};
|
||||||
extest = mkOption { default = false; };
|
extest = mkOption {default = false;};
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
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 ];
|
|
||||||
|
|
||||||
gamescopeSession = {
|
|
||||||
enable = true;
|
enable = true;
|
||||||
# args = [
|
extest.enable = cfg.extest; # Work around invisible cursor on Wayland
|
||||||
# "--backend sdl"
|
extraCompatPackages = [pkgs.proton-ge-bin];
|
||||||
# "--fullscreen"
|
|
||||||
# ];
|
gamescopeSession = {
|
||||||
};
|
enable = true;
|
||||||
} // optionalAttrs (versionAtLeast version "24.11") { protontricks.enable = true; };
|
# args = [
|
||||||
|
# "--backend sdl"
|
||||||
|
# "--fullscreen"
|
||||||
|
# ];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
// optionalAttrs (versionAtLeast version "24.11") {protontricks.enable = true;};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,19 +4,15 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
with lib; let
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.swaylock;
|
cfg = config.custom.programs.swaylock;
|
||||||
in
|
in {
|
||||||
{
|
options.custom.programs.swaylock.enable = mkOption {default = false;};
|
||||||
options.custom.programs.swaylock.enable = mkOption { default = false; };
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
# Allow swaylock to unlock the session
|
# Allow swaylock to unlock the session
|
||||||
# https://wiki.nixos.org/wiki/Sway#Swaylock_cannot_be_unlocked_with_the_correct_password
|
# 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
|
# https://github.com/swaywm/swaylock
|
||||||
home-manager.users.${config.custom.username}.programs.swaylock = {
|
home-manager.users.${config.custom.username}.programs.swaylock = {
|
||||||
|
|
|
@ -5,14 +5,10 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
with lib; let
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.thunderbird;
|
cfg = config.custom.programs.thunderbird;
|
||||||
in
|
in {
|
||||||
{
|
options.custom.programs.thunderbird.enable = mkOption {default = false;};
|
||||||
options.custom.programs.thunderbird.enable = mkOption { default = false; };
|
|
||||||
|
|
||||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||||
# https://wiki.nixos.org/wiki/Thunderbird
|
# https://wiki.nixos.org/wiki/Thunderbird
|
||||||
|
|
|
@ -1,17 +1,17 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.tio;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
options.custom.programs.tio.enable = mkOption { default = false; };
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.tio;
|
||||||
|
in {
|
||||||
|
options.custom.programs.tio.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
# Allow serial device access
|
# Allow serial device access
|
||||||
# https://github.com/tio/tio?tab=readme-ov-file#46-known-issues
|
# 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
|
# https://github.com/tio/tio
|
||||||
#!! Options not available, files written directly
|
#!! Options not available, files written directly
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.tmux;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
options.custom.programs.tmux.enable = mkOption { default = false; };
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.tmux;
|
||||||
|
in {
|
||||||
|
options.custom.programs.tmux.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
# https://wiki.nixos.org/wiki/Tmux
|
# https://wiki.nixos.org/wiki/Tmux
|
||||||
|
|
|
@ -5,14 +5,10 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
with lib; let
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.vscode;
|
cfg = config.custom.programs.vscode;
|
||||||
in
|
in {
|
||||||
{
|
options.custom.programs.vscode.enable = mkOption {default = false;};
|
||||||
options.custom.programs.vscode.enable = mkOption { default = false; };
|
|
||||||
|
|
||||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||||
# https://wiki.nixos.org/wiki/VSCodium
|
# https://wiki.nixos.org/wiki/VSCodium
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.wezterm;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
options.custom.programs.wezterm.enable = mkOption { default = false; };
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.wezterm;
|
||||||
|
in {
|
||||||
|
options.custom.programs.wezterm.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||||
# https://github.com/wez/wezterm
|
# https://github.com/wez/wezterm
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.wireshark;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
options.custom.programs.wireshark.enable = mkOption { default = false; };
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.wireshark;
|
||||||
|
in {
|
||||||
|
options.custom.programs.wireshark.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
# https://gitlab.com/wireshark/wireshark
|
# https://gitlab.com/wireshark/wireshark
|
||||||
|
@ -15,6 +15,6 @@ in
|
||||||
package = pkgs.wireshark; # GUI
|
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
|
|
||||||
cfg = config.custom.programs.wofi;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
options.custom.programs.wofi.enable = mkOption { default = false; };
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.wofi;
|
||||||
|
in {
|
||||||
|
options.custom.programs.wofi.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||||
# https://hg.sr.ht/~scoopta/wofi
|
# https://hg.sr.ht/~scoopta/wofi
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.wpaperd;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
options.custom.programs.wpaperd.enable = mkOption { default = false; };
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.wpaperd;
|
||||||
|
in {
|
||||||
|
options.custom.programs.wpaperd.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||||
# https://github.com/danyspin97/wpaperd
|
# https://github.com/danyspin97/wpaperd
|
||||||
|
|
|
@ -4,180 +4,174 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
with lib; let
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
# Use packages from local derivation
|
# Use packages from local derivation
|
||||||
git = config.home-manager.users.${config.custom.username}.programs.git.package;
|
git = config.home-manager.users.${config.custom.username}.programs.git.package;
|
||||||
hyprland =
|
hyprland =
|
||||||
config.home-manager.users.${config.custom.username}.wayland.windowManager.hyprland.finalPackage;
|
config.home-manager.users.${config.custom.username}.wayland.windowManager.hyprland.finalPackage;
|
||||||
wofi = config.home-manager.users.${config.custom.username}.programs.wofi.package;
|
wofi = config.home-manager.users.${config.custom.username}.programs.wofi.package;
|
||||||
in
|
in {
|
||||||
{
|
config.home-manager.users.${config.custom.username}.home.file = let
|
||||||
config.home-manager.users.${config.custom.username}.home.file =
|
# Place script.ext in the same directory as this file
|
||||||
let
|
#?? pkg = (SHELL "NAME" [ DEPENDENCIES ])
|
||||||
# Place script.ext in the same directory as this file
|
# https://nixos.org/manual/nixpkgs/unstable/#trivial-builder-writeShellApplication
|
||||||
#?? pkg = (SHELL "NAME" [ DEPENDENCIES ])
|
bash = name: dependencies: {
|
||||||
# https://nixos.org/manual/nixpkgs/unstable/#trivial-builder-writeShellApplication
|
".local/bin/${name}".source =
|
||||||
bash = name: dependencies: {
|
pkgs.writeShellApplication {
|
||||||
".local/bin/${name}".source =
|
inherit name;
|
||||||
pkgs.writeShellApplication {
|
runtimeInputs = dependencies;
|
||||||
inherit name;
|
text = builtins.readFile ./${name}.sh;
|
||||||
runtimeInputs = dependencies;
|
}
|
||||||
text = builtins.readFile ./${name}.sh;
|
+ "/bin/${name}";
|
||||||
}
|
};
|
||||||
+ "/bin/${name}";
|
|
||||||
};
|
|
||||||
|
|
||||||
# https://wiki.nixos.org/wiki/Nix-writers#Python3
|
# https://wiki.nixos.org/wiki/Nix-writers#Python3
|
||||||
# Always latest python version in nixpkgs, use writers.makePythonWriter to pin version
|
# Always latest python version in nixpkgs, use writers.makePythonWriter to pin version
|
||||||
# https://github.com/NixOS/nixpkgs/blob/master/pkgs/build-support/writers/scripts.nix#L605
|
# https://github.com/NixOS/nixpkgs/blob/master/pkgs/build-support/writers/scripts.nix#L605
|
||||||
python = name: dependencies: {
|
python = name: dependencies: {
|
||||||
".local/bin/${name}".source =
|
".local/bin/${name}".source =
|
||||||
pkgs.writers.writePython3Bin name { libraries = dependencies; }
|
pkgs.writers.writePython3Bin name {libraries = dependencies;}
|
||||||
# Disable linting
|
# Disable linting
|
||||||
# https://flake8.pycqa.org/en/3.1.1/user/ignoring-errors.html#ignoring-entire-files
|
# https://flake8.pycqa.org/en/3.1.1/user/ignoring-errors.html#ignoring-entire-files
|
||||||
("# flake8: noqa\n" + builtins.readFile ./${name}.py)
|
("# flake8: noqa\n" + builtins.readFile ./${name}.py)
|
||||||
+ "/bin/${name}";
|
+ "/bin/${name}";
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
mkIf config.custom.full (
|
mkIf config.custom.full (
|
||||||
with pkgs;
|
with pkgs;
|
||||||
mkMerge (
|
mkMerge (
|
||||||
[
|
[
|
||||||
# Bash files with extension .sh
|
# Bash files with extension .sh
|
||||||
(bash "audio" [
|
(bash "audio" [
|
||||||
easyeffects
|
easyeffects
|
||||||
libnotify
|
libnotify
|
||||||
|
])
|
||||||
|
(bash "bwm" [
|
||||||
|
bitwarden-cli
|
||||||
|
coreutils
|
||||||
|
jq
|
||||||
|
libnotify
|
||||||
|
wl-clipboard
|
||||||
|
wofi
|
||||||
|
xclip
|
||||||
|
])
|
||||||
|
(bash "calc" [
|
||||||
|
coreutils
|
||||||
|
libnotify
|
||||||
|
libqalculate
|
||||||
|
wl-clipboard
|
||||||
|
wofi
|
||||||
|
xclip
|
||||||
|
])
|
||||||
|
(bash "clipboard" [
|
||||||
|
cliphist
|
||||||
|
libnotify
|
||||||
|
procps
|
||||||
|
wl-clipboard
|
||||||
|
wofi
|
||||||
|
xclip
|
||||||
|
])
|
||||||
|
(bash "close" [
|
||||||
|
coreutils
|
||||||
|
hyprland
|
||||||
|
jq
|
||||||
|
libnotify
|
||||||
|
])
|
||||||
|
(bash "fingerprints" [
|
||||||
|
fprintd
|
||||||
|
libnotify
|
||||||
|
])
|
||||||
|
(bash "flakegen" [
|
||||||
|
git
|
||||||
|
libnotify
|
||||||
|
nix
|
||||||
|
])
|
||||||
|
(bash "inhibit" [
|
||||||
|
coreutils
|
||||||
|
libnotify
|
||||||
|
systemd
|
||||||
|
])
|
||||||
|
(bash "left" [
|
||||||
|
hyprland
|
||||||
|
jq
|
||||||
|
libnotify
|
||||||
|
])
|
||||||
|
(bash "minimize" [
|
||||||
|
hyprland
|
||||||
|
jq
|
||||||
|
libnotify
|
||||||
|
])
|
||||||
|
(bash "network" [
|
||||||
|
libnotify
|
||||||
|
networkmanager
|
||||||
|
])
|
||||||
|
(bash "power" [
|
||||||
|
libnotify
|
||||||
|
power-profiles-daemon
|
||||||
|
])
|
||||||
|
(bash "rebuild" [
|
||||||
|
libnotify
|
||||||
|
nixos-rebuild
|
||||||
|
])
|
||||||
|
(bash "repl" [
|
||||||
|
libnotify
|
||||||
|
nixos-rebuild
|
||||||
|
])
|
||||||
|
(bash "screenshot" [
|
||||||
|
coreutils
|
||||||
|
grimblast
|
||||||
|
imagemagick
|
||||||
|
libnotify
|
||||||
|
swappy
|
||||||
|
])
|
||||||
|
(bash "target" [
|
||||||
|
libnotify
|
||||||
|
nixos-rebuild
|
||||||
|
])
|
||||||
|
(bash "toggle" [
|
||||||
|
gnugrep
|
||||||
|
hyprland
|
||||||
|
jq
|
||||||
|
libnotify
|
||||||
|
])
|
||||||
|
(bash "upgrade" [
|
||||||
|
libnotify
|
||||||
|
nix
|
||||||
|
nixos-rebuild
|
||||||
|
])
|
||||||
|
(bash "vm" [
|
||||||
|
coreutils
|
||||||
|
freerdp3
|
||||||
|
iputils
|
||||||
|
libnotify
|
||||||
|
libvirt
|
||||||
|
remmina
|
||||||
|
])
|
||||||
|
(bash "vpn" [
|
||||||
|
gnused
|
||||||
|
jq
|
||||||
|
libnotify
|
||||||
|
tailscale
|
||||||
|
])
|
||||||
|
(bash "vrr" [
|
||||||
|
hyprland
|
||||||
|
jq
|
||||||
|
libnotify
|
||||||
|
])
|
||||||
|
(bash "wallpaper" [
|
||||||
|
coreutils
|
||||||
|
fd
|
||||||
|
imagemagick
|
||||||
|
libnotify
|
||||||
|
rsync
|
||||||
|
swww
|
||||||
|
tailscale
|
||||||
|
])
|
||||||
|
]
|
||||||
|
++ (with pkgs.python3Packages; [
|
||||||
|
# Python files with extension .py
|
||||||
|
(python "bcrypt" [bcrypt])
|
||||||
])
|
])
|
||||||
(bash "bwm" [
|
)
|
||||||
bitwarden-cli
|
|
||||||
coreutils
|
|
||||||
jq
|
|
||||||
libnotify
|
|
||||||
wl-clipboard
|
|
||||||
wofi
|
|
||||||
xclip
|
|
||||||
])
|
|
||||||
(bash "calc" [
|
|
||||||
coreutils
|
|
||||||
libnotify
|
|
||||||
libqalculate
|
|
||||||
wl-clipboard
|
|
||||||
wofi
|
|
||||||
xclip
|
|
||||||
])
|
|
||||||
(bash "clipboard" [
|
|
||||||
cliphist
|
|
||||||
libnotify
|
|
||||||
procps
|
|
||||||
wl-clipboard
|
|
||||||
wofi
|
|
||||||
xclip
|
|
||||||
])
|
|
||||||
(bash "close" [
|
|
||||||
coreutils
|
|
||||||
hyprland
|
|
||||||
jq
|
|
||||||
libnotify
|
|
||||||
])
|
|
||||||
(bash "fingerprints" [
|
|
||||||
fprintd
|
|
||||||
libnotify
|
|
||||||
])
|
|
||||||
(bash "flakegen" [
|
|
||||||
git
|
|
||||||
libnotify
|
|
||||||
nix
|
|
||||||
])
|
|
||||||
(bash "inhibit" [
|
|
||||||
coreutils
|
|
||||||
libnotify
|
|
||||||
systemd
|
|
||||||
])
|
|
||||||
(bash "left" [
|
|
||||||
hyprland
|
|
||||||
jq
|
|
||||||
libnotify
|
|
||||||
])
|
|
||||||
(bash "minimize" [
|
|
||||||
hyprland
|
|
||||||
jq
|
|
||||||
libnotify
|
|
||||||
])
|
|
||||||
(bash "network" [
|
|
||||||
libnotify
|
|
||||||
networkmanager
|
|
||||||
])
|
|
||||||
(bash "power" [
|
|
||||||
libnotify
|
|
||||||
power-profiles-daemon
|
|
||||||
])
|
|
||||||
(bash "rebuild" [
|
|
||||||
libnotify
|
|
||||||
nixos-rebuild
|
|
||||||
])
|
|
||||||
(bash "repl" [
|
|
||||||
libnotify
|
|
||||||
nixos-rebuild
|
|
||||||
])
|
|
||||||
(bash "screenshot" [
|
|
||||||
coreutils
|
|
||||||
grimblast
|
|
||||||
imagemagick
|
|
||||||
libnotify
|
|
||||||
swappy
|
|
||||||
])
|
|
||||||
(bash "target" [
|
|
||||||
libnotify
|
|
||||||
nixos-rebuild
|
|
||||||
])
|
|
||||||
(bash "toggle" [
|
|
||||||
gnugrep
|
|
||||||
hyprland
|
|
||||||
jq
|
|
||||||
libnotify
|
|
||||||
])
|
|
||||||
(bash "upgrade" [
|
|
||||||
libnotify
|
|
||||||
nix
|
|
||||||
nixos-rebuild
|
|
||||||
])
|
|
||||||
(bash "vm" [
|
|
||||||
coreutils
|
|
||||||
freerdp3
|
|
||||||
iputils
|
|
||||||
libnotify
|
|
||||||
libvirt
|
|
||||||
remmina
|
|
||||||
])
|
|
||||||
(bash "vpn" [
|
|
||||||
gnused
|
|
||||||
jq
|
|
||||||
libnotify
|
|
||||||
tailscale
|
|
||||||
])
|
|
||||||
(bash "vrr" [
|
|
||||||
hyprland
|
|
||||||
jq
|
|
||||||
libnotify
|
|
||||||
])
|
|
||||||
(bash "wallpaper" [
|
|
||||||
coreutils
|
|
||||||
fd
|
|
||||||
imagemagick
|
|
||||||
libnotify
|
|
||||||
rsync
|
|
||||||
swww
|
|
||||||
tailscale
|
|
||||||
])
|
|
||||||
|
|
||||||
]
|
|
||||||
++ (with pkgs.python3Packages; [
|
|
||||||
# Python files with extension .py
|
|
||||||
(python "bcrypt" [ bcrypt ])
|
|
||||||
])
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,17 +4,13 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
with lib; let
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cat = "${pkgs.coreutils}/bin/cat";
|
cat = "${pkgs.coreutils}/bin/cat";
|
||||||
sed = "${pkgs.gnused}/bin/sed";
|
sed = "${pkgs.gnused}/bin/sed";
|
||||||
|
|
||||||
cfg = config.custom.services.agenix;
|
cfg = config.custom.services.agenix;
|
||||||
in
|
in {
|
||||||
{
|
options.custom.services.agenix.enable = mkOption {default = false;};
|
||||||
options.custom.services.agenix.enable = mkOption { default = false; };
|
|
||||||
|
|
||||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||||
xdg.configFile."hypr/hyprland.conf".force = true;
|
xdg.configFile."hypr/hyprland.conf".force = true;
|
||||||
|
@ -40,7 +36,7 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
Install = {
|
Install = {
|
||||||
WantedBy = [ "default.target" ];
|
WantedBy = ["default.target"];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,17 +1,17 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.services.auto-cpufreq;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.services.auto-cpufreq;
|
||||||
|
in {
|
||||||
options.custom.services.auto-cpufreq = {
|
options.custom.services.auto-cpufreq = {
|
||||||
enable = mkOption { default = false; };
|
enable = mkOption {default = false;};
|
||||||
|
|
||||||
max = {
|
max = {
|
||||||
battery = mkOption { default = null; }; # GHz
|
battery = mkOption {default = null;}; # GHz
|
||||||
charger = mkOption { default = null; }; # GHz
|
charger = mkOption {default = null;}; # GHz
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.services.avizo;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
options.custom.services.avizo.enable = mkOption { default = false; };
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.services.avizo;
|
||||||
|
in {
|
||||||
|
options.custom.services.avizo.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||||
# https://github.com/misterdanb/avizo
|
# https://github.com/misterdanb/avizo
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.services.blueman-applet;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
options.custom.services.blueman-applet.enable = mkOption { default = false; };
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.services.blueman-applet;
|
||||||
|
in {
|
||||||
|
options.custom.services.blueman-applet.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
|
||||||
# https://github.com/blueman-project/blueman
|
# https://github.com/blueman-project/blueman
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.services.blueman;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
options.custom.services.blueman.enable = mkOption { default = false; };
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.services.blueman;
|
||||||
|
in {
|
||||||
|
options.custom.services.blueman.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
# https://github.com/blueman-project/blueman
|
# https://github.com/blueman-project/blueman
|
||||||
|
|
|
@ -5,15 +5,11 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
with lib; let
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cat = "${pkgs.coreutils}/bin/cat";
|
cat = "${pkgs.coreutils}/bin/cat";
|
||||||
|
|
||||||
cfg = config.custom.services.borgmatic;
|
cfg = config.custom.services.borgmatic;
|
||||||
in
|
in {
|
||||||
{
|
|
||||||
# https://wiki.nixos.org/wiki/Borg_backup
|
# https://wiki.nixos.org/wiki/Borg_backup
|
||||||
# https://github.com/borgmatic-collective/borgmatic
|
# https://github.com/borgmatic-collective/borgmatic
|
||||||
#!! Imperative initialization
|
#!! Imperative initialization
|
||||||
|
@ -21,9 +17,9 @@ in
|
||||||
#?? sudo borgmatic key export
|
#?? sudo borgmatic key export
|
||||||
#?? sudo borgmatic -v 1 create --progress --stats
|
#?? sudo borgmatic -v 1 create --progress --stats
|
||||||
options.custom.services.borgmatic = {
|
options.custom.services.borgmatic = {
|
||||||
enable = mkOption { default = false; };
|
enable = mkOption {default = false;};
|
||||||
repositories = mkOption { default = [ ]; };
|
repositories = mkOption {default = [];};
|
||||||
sources = mkOption { default = [ ]; };
|
sources = mkOption {default = [];};
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
@ -68,12 +64,10 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
age.secrets =
|
age.secrets = let
|
||||||
let
|
secret = filename: {file = "${inputs.self}/secrets/${filename}";};
|
||||||
secret = filename: { file = "${inputs.self}/secrets/${filename}"; };
|
in {
|
||||||
in
|
"${config.custom.profile}/borgmatic/borgbase.${config.custom.hostname}" = secret "${config.custom.profile}/borgmatic/borgbase.${config.custom.hostname}";
|
||||||
{
|
};
|
||||||
"${config.custom.profile}/borgmatic/borgbase.${config.custom.hostname}" = secret "${config.custom.profile}/borgmatic/borgbase.${config.custom.hostname}";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,27 +4,21 @@
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
with lib; let
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.services.caddy;
|
cfg = config.custom.services.caddy;
|
||||||
in
|
in {
|
||||||
{
|
options.custom.services.caddy.enable = mkOption {default = false;};
|
||||||
options.custom.services.caddy.enable = mkOption { default = false; };
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
age.secrets =
|
age.secrets = let
|
||||||
let
|
secret = filename: {
|
||||||
secret = filename: {
|
file = "${inputs.self}/secrets/${filename}";
|
||||||
file = "${inputs.self}/secrets/${filename}";
|
owner = "caddy";
|
||||||
owner = "caddy";
|
group = "caddy";
|
||||||
group = "caddy";
|
|
||||||
};
|
|
||||||
in
|
|
||||||
{
|
|
||||||
"${config.custom.profile}/caddy/Caddyfile" = secret "${config.custom.profile}/caddy/Caddyfile";
|
|
||||||
};
|
};
|
||||||
|
in {
|
||||||
|
"${config.custom.profile}/caddy/Caddyfile" = secret "${config.custom.profile}/caddy/Caddyfile";
|
||||||
|
};
|
||||||
|
|
||||||
# https://caddyserver.com/
|
# https://caddyserver.com/
|
||||||
# https://github.com/caddyserver/caddy
|
# https://github.com/caddyserver/caddy
|
||||||
|
|
|
@ -1,14 +1,14 @@
|
||||||
{ config, lib, ... }:
|
{
|
||||||
|
config,
|
||||||
with lib;
|
lib,
|
||||||
|
...
|
||||||
let
|
}:
|
||||||
|
with lib; let
|
||||||
wofi = "${config.home-manager.users.${config.custom.username}.programs.wofi.package}/bin/wofi";
|
wofi = "${config.home-manager.users.${config.custom.username}.programs.wofi.package}/bin/wofi";
|
||||||
|
|
||||||
cfg = config.custom.services.clipcat;
|
cfg = config.custom.services.clipcat;
|
||||||
in
|
in {
|
||||||
{
|
options.custom.services.clipcat.enable = mkOption {default = false;};
|
||||||
options.custom.services.clipcat.enable = mkOption { default = false; };
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
# BUG: Random high CPU usage
|
# BUG: Random high CPU usage
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue