Compare commits
8 commits
32f419cdb1
...
b30f6e22a6
Author | SHA1 | Date | |
---|---|---|---|
b30f6e22a6 | |||
4595580e23 | |||
7361295ff1 | |||
67303011f2 | |||
82961fa55a | |||
c0b0163722 | |||
f683b90e45 | |||
b2489b2e04 |
181 changed files with 2243 additions and 2294 deletions
|
@ -3,33 +3,26 @@
|
||||||
inputs,
|
inputs,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
|
age.secrets = let
|
||||||
{
|
|
||||||
age.secrets =
|
|
||||||
let
|
|
||||||
secret = filename: {
|
secret = filename: {
|
||||||
file = "${inputs.self}/secrets/${filename}";
|
file = "${inputs.self}/secrets/${filename}";
|
||||||
};
|
};
|
||||||
in
|
in {
|
||||||
{
|
|
||||||
"common/nix/access-tokens.conf" = secret "common/nix/access-tokens.conf";
|
"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:
|
|
||||||
let
|
|
||||||
name = lib.getName pkg;
|
name = lib.getName pkg;
|
||||||
in
|
in
|
||||||
# HACK: Allow all insecure electron versions
|
# HACK: Allow all insecure electron versions
|
||||||
name == "electron"
|
name
|
||||||
|
== "electron"
|
||||||
# HACK: Some Matrix clients rely on libolm, which is deprecated
|
# HACK: Some Matrix clients rely on libolm, which is deprecated
|
||||||
# https://github.com/NixOS/nixpkgs/pull/334638
|
# https://github.com/NixOS/nixpkgs/pull/334638
|
||||||
|| name == "cinny"
|
|| name == "cinny"
|
||||||
|
@ -38,16 +31,13 @@
|
||||||
|| name == "olm"
|
|| name == "olm"
|
||||||
|| name == "openssl"; # Cisco Packet Tracer
|
|| name == "openssl"; # Cisco Packet Tracer
|
||||||
};
|
};
|
||||||
in
|
in {
|
||||||
{
|
|
||||||
inherit config;
|
inherit config;
|
||||||
|
|
||||||
overlays = [
|
overlays = [
|
||||||
(
|
(
|
||||||
final: prev:
|
final: prev: let
|
||||||
let
|
nixpkgs = branch:
|
||||||
nixpkgs =
|
|
||||||
branch:
|
|
||||||
import inputs."nixpkgs-${branch}" {
|
import inputs."nixpkgs-${branch}" {
|
||||||
inherit config;
|
inherit config;
|
||||||
system = prev.system;
|
system = prev.system;
|
||||||
|
@ -57,8 +47,7 @@
|
||||||
unstable = nixpkgs "unstable";
|
unstable = nixpkgs "unstable";
|
||||||
staging-next = nixpkgs "staging-next";
|
staging-next = nixpkgs "staging-next";
|
||||||
local = nixpkgs "local";
|
local = nixpkgs "local";
|
||||||
in
|
in {
|
||||||
{
|
|
||||||
# Overlay nixpkgs branches
|
# Overlay nixpkgs branches
|
||||||
#?? nixpkgs.BRANCH.PACKAGE
|
#?? nixpkgs.BRANCH.PACKAGE
|
||||||
inherit stable unstable staging-next;
|
inherit stable unstable staging-next;
|
||||||
|
|
84
flake.in.nix
84
flake.in.nix
|
@ -6,12 +6,10 @@
|
||||||
#?? nix run .#genflake flake.nix
|
#?? nix run .#genflake flake.nix
|
||||||
# TODO: Remove flakegen hook when nix expressions are officially implemented
|
# TODO: Remove flakegen hook when nix expressions are officially implemented
|
||||||
# https://github.com/NixOS/nix/issues/3966
|
# https://github.com/NixOS/nix/issues/3966
|
||||||
|
|
||||||
{
|
{
|
||||||
# https://wiki.nixos.org/wiki/Flakes
|
# https://wiki.nixos.org/wiki/Flakes
|
||||||
# https://nix.dev/manual/nix/2.18/command-ref/new-cli/nix3-flake.html
|
# https://nix.dev/manual/nix/2.18/command-ref/new-cli/nix3-flake.html
|
||||||
inputs =
|
inputs = let
|
||||||
let
|
|
||||||
flake = url: {inherit url;};
|
flake = url: {inherit url;};
|
||||||
follows = input: {inputs.${input}.follows = input;};
|
follows = input: {inputs.${input}.follows = input;};
|
||||||
stable = input: {inputs.${input}.follows = "${input}-stable";};
|
stable = input: {inputs.${input}.follows = "${input}-stable";};
|
||||||
|
@ -21,8 +19,7 @@
|
||||||
inherit url;
|
inherit url;
|
||||||
flake = false;
|
flake = false;
|
||||||
};
|
};
|
||||||
in
|
in {
|
||||||
{
|
|
||||||
#?? branch = "git+https://REPO?ref=BRANCH"
|
#?? branch = "git+https://REPO?ref=BRANCH"
|
||||||
#?? commit = "git+https://REPO?ref=BRANCH&rev=COMMIT"
|
#?? commit = "git+https://REPO?ref=BRANCH&rev=COMMIT"
|
||||||
#?? tag = "git+https://REPO?ref=refs/tags/TAG"
|
#?? tag = "git+https://REPO?ref=refs/tags/TAG"
|
||||||
|
@ -62,24 +59,17 @@
|
||||||
fw-fanctrl = flake "github:TamtamHero/fw-fanctrl/packaging/nix" // unstable "nixpkgs";
|
fw-fanctrl = flake "github:TamtamHero/fw-fanctrl/packaging/nix" // unstable "nixpkgs";
|
||||||
hypridle = flake "github:hyprwm/hypridle" // unstable "nixpkgs";
|
hypridle = flake "github:hyprwm/hypridle" // unstable "nixpkgs";
|
||||||
#// hyprland = flake "git+https://github.com/hyprwm/Hyprland?submodules=1" // unstable "nixpkgs";
|
#// hyprland = flake "git+https://github.com/hyprwm/Hyprland?submodules=1" // unstable "nixpkgs";
|
||||||
hyprland =
|
hyprland = flake "git+https://github.com/hyprwm/Hyprland?ref=refs/tags/v0.43.0&submodules=1" // unstable "nixpkgs";
|
||||||
flake "git+https://github.com/hyprwm/Hyprland?ref=refs/tags/v0.43.0&submodules=1"
|
#// hyprland = flake "git+https://github.com/UjinT34/Hyprland?ref=vrr-cursor-fix&submodules=1" // unstable "nixpkgs";
|
||||||
// unstable "nixpkgs";
|
|
||||||
#// hyprland =
|
|
||||||
#// flake "git+https://github.com/UjinT34/Hyprland?ref=vrr-cursor-fix&submodules=1"
|
|
||||||
#// // unstable "nixpkgs";
|
|
||||||
hyprland-contrib = flake "github:hyprwm/contrib" // unstable "nixpkgs";
|
hyprland-contrib = flake "github:hyprwm/contrib" // unstable "nixpkgs";
|
||||||
hyprland-plugins =
|
hyprland-plugins = flake "github:hyprwm/hyprland-plugins" // unstable "nixpkgs" // follows "hyprland";
|
||||||
flake "github:hyprwm/hyprland-plugins" // unstable "nixpkgs" // follows "hyprland";
|
|
||||||
hyprlock = flake "github:hyprwm/hyprlock" // unstable "nixpkgs";
|
hyprlock = flake "github:hyprwm/hyprlock" // unstable "nixpkgs";
|
||||||
hyprpaper = flake "github:hyprwm/hyprpaper" // unstable "nixpkgs";
|
hyprpaper = flake "github:hyprwm/hyprpaper" // unstable "nixpkgs";
|
||||||
hyprpicker = flake "github:hyprwm/hyprpicker" // unstable "nixpkgs";
|
hyprpicker = flake "github:hyprwm/hyprpicker" // unstable "nixpkgs";
|
||||||
nix-flatpak = flake "github:gmodena/nix-flatpak?ref=v0.4.1";
|
nix-flatpak = flake "github:gmodena/nix-flatpak?ref=v0.4.1";
|
||||||
nix-vscode-extensions = flake "github:nix-community/nix-vscode-extensions" // unstable "nixpkgs";
|
nix-vscode-extensions = flake "github:nix-community/nix-vscode-extensions" // unstable "nixpkgs";
|
||||||
nixd = flake "github:nix-community/nixd" // unstable "nixpkgs";
|
nixd = flake "github:nix-community/nixd" // unstable "nixpkgs";
|
||||||
xdg-desktop-portal-hyprland =
|
xdg-desktop-portal-hyprland = flake "github:hyprwm/xdg-desktop-portal-hyprland" // unstable "nixpkgs";
|
||||||
flake "github:hyprwm/xdg-desktop-portal-hyprland"
|
|
||||||
// unstable "nixpkgs";
|
|
||||||
|
|
||||||
# Server flakes
|
# Server flakes
|
||||||
conduwuit = flake "github:Myned/conduwuit" // unstable "nixpkgs";
|
conduwuit = flake "github:Myned/conduwuit" // unstable "nixpkgs";
|
||||||
|
@ -88,8 +78,8 @@
|
||||||
nixpkgs-staging-next = flake "github:NixOS/nixpkgs/staging-next";
|
nixpkgs-staging-next = flake "github:NixOS/nixpkgs/staging-next";
|
||||||
|
|
||||||
### Development
|
### Development
|
||||||
nixpkgs-local = flake "git+file:///home/myned/.dev/nixpkgs?ref=7849cd48822de4dc0515c787b20dc85de30acdca";
|
nixpkgs-local = flake "git+file:///home/myned/SYNC/dev/repo/nixpkgs";
|
||||||
#// hyprland = flake "git+file:///home/myned/.dev/Hyprland?submodules=1";
|
#// hyprland = flake "git+file:///home/myned/SYNC/dev/repo/Hyprland?submodules=1";
|
||||||
|
|
||||||
### Source code
|
### Source code
|
||||||
firefox-gnome-theme = source "github:rafaelmardojai/firefox-gnome-theme/v128";
|
firefox-gnome-theme = source "github:rafaelmardojai/firefox-gnome-theme/v128";
|
||||||
|
@ -106,35 +96,34 @@
|
||||||
# https://github.com/kamadorueda/alejandra/blob/main/STYLE.md
|
# https://github.com/kamadorueda/alejandra/blob/main/STYLE.md
|
||||||
formatter.x86_64-linux = inputs.nixpkgs-unstable.legacyPackages.x86_64-linux.alejandra;
|
formatter.x86_64-linux = inputs.nixpkgs-unstable.legacyPackages.x86_64-linux.alejandra;
|
||||||
|
|
||||||
nixosConfigurations =
|
nixosConfigurations = let
|
||||||
let
|
|
||||||
# TODO: Use inline modules instead of specialArgs
|
# TODO: Use inline modules instead of specialArgs
|
||||||
# https://jade.fyi/blog/flakes-arent-real#nixos-modules
|
# https://jade.fyi/blog/flakes-arent-real#nixos-modules
|
||||||
# Boilerplate systems with global imports
|
# Boilerplate systems with global imports
|
||||||
#!! There is no default nixpkgs, inputs.<nixpkgs|home-manager>-BRANCH must exist
|
#!! There is no default nixpkgs, inputs.<nixpkgs|home-manager>-BRANCH must exist
|
||||||
#?? branch = common "BRANCH" "ARCHITECTURE" [ MODULES ]
|
#?? branch = common "BRANCH" "ARCHITECTURE" [ MODULES ]
|
||||||
common =
|
common = branch: arch: modules:
|
||||||
branch: arch: modules:
|
|
||||||
inputs."nixpkgs-${branch}".lib.nixosSystem {
|
inputs."nixpkgs-${branch}".lib.nixosSystem {
|
||||||
system = arch;
|
system = arch;
|
||||||
|
specialArgs = {inherit inputs;};
|
||||||
specialArgs = {
|
|
||||||
inherit inputs;
|
|
||||||
};
|
|
||||||
|
|
||||||
# TODO: Clean up optional attributes with each new release
|
# TODO: Clean up optional attributes with each new release
|
||||||
#!! Options will diverge between branches over time
|
#!! Options will diverge between branches over time
|
||||||
#?? with lib; optionalAttrs (versionAtLeast version "VERSION") { ... };
|
#?? with lib; optionalAttrs (versionAtLeast version "VERSION") { ... };
|
||||||
modules = modules ++ [
|
modules =
|
||||||
|
modules
|
||||||
|
++ [
|
||||||
./options
|
./options
|
||||||
./configuration.nix
|
./configuration.nix
|
||||||
|
|
||||||
#!! Avoid globally importing modules that are not guarded by .enable
|
#!! Avoid globally importing modules that are not guarded by .enable
|
||||||
# https://github.com/NixOS/nixpkgs/issues/137168
|
# https://github.com/NixOS/nixpkgs/issues/137168
|
||||||
(
|
(
|
||||||
{ config, inputs, ... }:
|
|
||||||
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
imports = [
|
imports = [
|
||||||
inputs."aagl-gtk-on-nix-${branch}".nixosModules.default
|
inputs."aagl-gtk-on-nix-${branch}".nixosModules.default
|
||||||
inputs."home-manager-${branch}".nixosModules.home-manager
|
inputs."home-manager-${branch}".nixosModules.home-manager
|
||||||
|
@ -157,39 +146,16 @@
|
||||||
#?? system = branch "ARCHITECTURE" [ MODULES ]
|
#?? system = branch "ARCHITECTURE" [ MODULES ]
|
||||||
stable = arch: modules: common "stable" "${arch}-linux" modules;
|
stable = arch: modules: common "stable" "${arch}-linux" modules;
|
||||||
unstable = arch: modules: common "unstable" "${arch}-linux" modules;
|
unstable = arch: modules: common "unstable" "${arch}-linux" modules;
|
||||||
in
|
in {
|
||||||
{
|
|
||||||
### Stable
|
### Stable
|
||||||
myarm = stable "aarch64" [
|
myarm = stable "aarch64" [./profiles/server ./machines/myarm];
|
||||||
./profiles/server
|
myne = stable "x86_64" [./profiles/server ./machines/myne];
|
||||||
./machines/myarm
|
mypi3 = stable "aarch64" [./profiles/sbc ./machines/mypi3];
|
||||||
];
|
|
||||||
|
|
||||||
myne = stable "x86_64" [
|
|
||||||
./profiles/server
|
|
||||||
./machines/myne
|
|
||||||
];
|
|
||||||
|
|
||||||
mypi3 = stable "aarch64" [
|
|
||||||
./profiles/sbc
|
|
||||||
./machines/mypi3
|
|
||||||
];
|
|
||||||
|
|
||||||
### Unstable
|
### Unstable
|
||||||
myeck = unstable "x86_64" [
|
myeck = unstable "x86_64" [./profiles/console ./machines/myeck];
|
||||||
./profiles/console
|
mynix = unstable "x86_64" [./profiles/desktop ./machines/mynix];
|
||||||
./machines/myeck
|
myork = unstable "x86_64" [./profiles/laptop ./machines/myork];
|
||||||
];
|
|
||||||
|
|
||||||
mynix = unstable "x86_64" [
|
|
||||||
./profiles/desktop
|
|
||||||
./machines/mynix
|
|
||||||
];
|
|
||||||
|
|
||||||
myork = unstable "x86_64" [
|
|
||||||
./profiles/laptop
|
|
||||||
./machines/myork
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -113,7 +113,7 @@
|
||||||
url = "github:nix-community/nixd";
|
url = "github:nix-community/nixd";
|
||||||
};
|
};
|
||||||
nixos-hardware.url = "github:NixOS/nixos-hardware";
|
nixos-hardware.url = "github:NixOS/nixos-hardware";
|
||||||
nixpkgs-local.url = "git+file:///home/myned/.dev/nixpkgs?ref=7849cd48822de4dc0515c787b20dc85de30acdca";
|
nixpkgs-local.url = "git+file:///home/myned/SYNC/dev/repo/nixpkgs";
|
||||||
nixpkgs-stable.url = "github:NixOS/nixpkgs/nixos-24.05";
|
nixpkgs-stable.url = "github:NixOS/nixpkgs/nixos-24.05";
|
||||||
nixpkgs-staging-next.url = "github:NixOS/nixpkgs/staging-next";
|
nixpkgs-staging-next.url = "github:NixOS/nixpkgs/staging-next";
|
||||||
nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
|
nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||||
|
|
|
@ -7,9 +7,7 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
modulesPath,
|
modulesPath,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
|
|
||||||
{
|
|
||||||
imports = [(modulesPath + "/profiles/qemu-guest.nix")];
|
imports = [(modulesPath + "/profiles/qemu-guest.nix")];
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = [
|
boot.initrd.availableKernelModules = [
|
||||||
|
|
|
@ -7,9 +7,7 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
modulesPath,
|
modulesPath,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
|
|
||||||
{
|
|
||||||
imports = [(modulesPath + "/installer/scan/not-detected.nix")];
|
imports = [(modulesPath + "/installer/scan/not-detected.nix")];
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = [
|
boot.initrd.availableKernelModules = [
|
||||||
|
|
|
@ -7,9 +7,7 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
modulesPath,
|
modulesPath,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
|
|
||||||
{
|
|
||||||
imports = [(modulesPath + "/profiles/qemu-guest.nix")];
|
imports = [(modulesPath + "/profiles/qemu-guest.nix")];
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = [
|
boot.initrd.availableKernelModules = [
|
||||||
|
|
|
@ -10,10 +10,20 @@
|
||||||
height = 1440;
|
height = 1440;
|
||||||
};
|
};
|
||||||
|
|
||||||
boot.kernelParams = [
|
boot = {
|
||||||
|
# Enable hibernation with a swapfile on btrfs
|
||||||
|
# https://wiki.archlinux.org/title/Power_management/Suspend_and_hibernate#Hibernation_into_swap_file
|
||||||
|
#?? findmnt -no UUID -T /swap/swapfile
|
||||||
|
resumeDevice = "/dev/disk/by-uuid/5df5028b-a3ba-4f07-80ef-fd5abd542a81";
|
||||||
|
|
||||||
|
kernelParams = [
|
||||||
|
#?? sudo btrfs inspect-internal map-swapfile -r /swap/swapfile
|
||||||
|
"resume_offset=533760"
|
||||||
|
|
||||||
# https://gitlab.freedesktop.org/drm/amd/-/issues/2516#note_2119750
|
# https://gitlab.freedesktop.org/drm/amd/-/issues/2516#note_2119750
|
||||||
#// "gpu_sched.sched_policy=0" # Attempt to fix stutter
|
#// "gpu_sched.sched_policy=0" # Attempt to fix stutter
|
||||||
];
|
];
|
||||||
|
};
|
||||||
|
|
||||||
# _._ _,-'""`-._
|
# _._ _,-'""`-._
|
||||||
# (,-.`._,'( |\`-/|
|
# (,-.`._,'( |\`-/|
|
||||||
|
|
|
@ -7,9 +7,7 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
modulesPath,
|
modulesPath,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
|
|
||||||
{
|
|
||||||
imports = [(modulesPath + "/installer/scan/not-detected.nix")];
|
imports = [(modulesPath + "/installer/scan/not-detected.nix")];
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = [
|
boot.initrd.availableKernelModules = [
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
@ -55,14 +52,14 @@ in
|
||||||
|
|
||||||
services.keyd.keyboards.default.settings.main.rightcontrol = "layer(altgr)"; # No Ctrl_R
|
services.keyd.keyboards.default.settings.main.rightcontrol = "layer(altgr)"; # No Ctrl_R
|
||||||
|
|
||||||
|
boot = {
|
||||||
# Enable hibernation with a swapfile on btrfs
|
# Enable hibernation with a swapfile on btrfs
|
||||||
# https://wiki.archlinux.org/title/Power_management/Suspend_and_hibernate#Hibernation_into_swap_file
|
# https://wiki.archlinux.org/title/Power_management/Suspend_and_hibernate#Hibernation_into_swap_file
|
||||||
#?? findmnt -no UUID -T /swap/swapfile
|
#?? findmnt -no UUID -T /swap/swapfile
|
||||||
#?? sudo btrfs inspect-internal map-swapfile -r /swap/swapfile
|
|
||||||
boot = {
|
|
||||||
resumeDevice = "/dev/disk/by-uuid/f9416347-eff5-45d5-8dc3-93414c11ba6f";
|
resumeDevice = "/dev/disk/by-uuid/f9416347-eff5-45d5-8dc3-93414c11ba6f";
|
||||||
|
|
||||||
kernelParams = [
|
kernelParams = [
|
||||||
|
#?? sudo btrfs inspect-internal map-swapfile -r /swap/swapfile
|
||||||
"resume_offset=533760"
|
"resume_offset=533760"
|
||||||
|
|
||||||
# Fix battery drain with suspend-then-hibernate
|
# Fix battery drain with suspend-then-hibernate
|
||||||
|
|
|
@ -7,9 +7,7 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
modulesPath,
|
modulesPath,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
|
|
||||||
{
|
|
||||||
imports = [(modulesPath + "/installer/scan/not-detected.nix")];
|
imports = [(modulesPath + "/installer/scan/not-detected.nix")];
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = [
|
boot.initrd.availableKernelModules = [
|
||||||
|
|
|
@ -7,9 +7,7 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
modulesPath,
|
modulesPath,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
|
|
||||||
{
|
|
||||||
imports = [(modulesPath + "/installer/scan/not-detected.nix")];
|
imports = [(modulesPath + "/installer/scan/not-detected.nix")];
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = [];
|
boot.initrd.availableKernelModules = [];
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
{ 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;};
|
||||||
|
|
|
@ -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,13 +4,9 @@
|
||||||
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;};
|
||||||
|
|
|
@ -114,7 +114,7 @@ in {
|
||||||
(key "Backspace" "Super" "changegroupactive" "f")
|
(key "Backspace" "Super" "changegroupactive" "f")
|
||||||
(key "Backspace" "Super+Ctrl" "togglegroup" null)
|
(key "Backspace" "Super+Ctrl" "togglegroup" null)
|
||||||
(key "Backspace" "Super+Ctrl+Shift" "lockactivegroup" "toggle")
|
(key "Backspace" "Super+Ctrl+Shift" "lockactivegroup" "toggle")
|
||||||
(key "Backspace" "Super+Shift" "changegroupactive" "b")
|
(key "Backspace" "Super+Shift" "movegroupwindow" null)
|
||||||
(key "Bracketleft" "Super" "layoutmsg" "orientationprev")
|
(key "Bracketleft" "Super" "layoutmsg" "orientationprev")
|
||||||
(key "Bracketleft" "Super+Shift" "splitratio" "-0.1")
|
(key "Bracketleft" "Super+Shift" "splitratio" "-0.1")
|
||||||
(key "Bracketright" "Super" "layoutmsg" "orientationnext")
|
(key "Bracketright" "Super" "layoutmsg" "orientationnext")
|
||||||
|
@ -124,12 +124,14 @@ in {
|
||||||
#// (key "Delete" "Super" "exec" "left")
|
#// (key "Delete" "Super" "exec" "left")
|
||||||
|
|
||||||
(key "Delete" "Super+Shift" "exec" "vrr")
|
(key "Delete" "Super+Shift" "exec" "vrr")
|
||||||
(key "Down" "Super" "movewindoworgroup" "d")
|
(key "Down" "Super" "movewindow" "d")
|
||||||
|
(key "Down" "Super+Shift" "movewindoworgroup" "d")
|
||||||
(key "Equal" "Super" "exec" "audio Normalizer")
|
(key "Equal" "Super" "exec" "audio Normalizer")
|
||||||
(key "Escape" "Super" "togglefloating" null)
|
(key "Escape" "Super" "togglefloating" null)
|
||||||
(key "Escape" "Super+Alt" "exec" "lifx state --color red")
|
(key "Escape" "Super+Alt" "exec" "lifx state --color red")
|
||||||
(key "Escape" "Super+Shift" "centerwindow" null)
|
(key "Escape" "Super+Shift" "centerwindow" null)
|
||||||
(key "Left" "Super" "movewindoworgroup" "l")
|
(key "Left" "Super" "movewindow" "l")
|
||||||
|
(key "Left" "Super+Shift" "movewindoworgroup" "l")
|
||||||
(key "Minus" "Super" "exec" "audio")
|
(key "Minus" "Super" "exec" "audio")
|
||||||
(key "Print" "Shift" "exec" "screenshot -d")
|
(key "Print" "Shift" "exec" "screenshot -d")
|
||||||
(key "Print" "Super" "exec" "screenshot -e")
|
(key "Print" "Super" "exec" "screenshot -e")
|
||||||
|
@ -137,7 +139,8 @@ in {
|
||||||
(key "Print" null "exec" "screenshot")
|
(key "Print" null "exec" "screenshot")
|
||||||
(key "Return" "Super" "fullscreen" "1") # Maximize
|
(key "Return" "Super" "fullscreen" "1") # Maximize
|
||||||
(key "Return" "Super+Shift" "fullscreen" "0") # Fullscreen
|
(key "Return" "Super+Shift" "fullscreen" "0") # Fullscreen
|
||||||
(key "Right" "Super" "movewindoworgroup" "r")
|
(key "Right" "Super" "movewindow" "r")
|
||||||
|
(key "Right" "Super+Shift" "movewindoworgroup" "r")
|
||||||
(key "Space" "Ctrl" "exec" (concatStringsSep " " [
|
(key "Space" "Ctrl" "exec" (concatStringsSep " " [
|
||||||
"toggle"
|
"toggle"
|
||||||
"--focus"
|
"--focus"
|
||||||
|
@ -155,56 +158,57 @@ in {
|
||||||
"--workspace special:pip"
|
"--workspace special:pip"
|
||||||
]))
|
]))
|
||||||
(key "Space" "Super" "togglespecialworkspace" "scratchpad")
|
(key "Space" "Super" "togglespecialworkspace" "scratchpad")
|
||||||
(key "Space" "Super+Ctrl" "movetoworkspacesilent" "special:scratchpad")
|
(key "Space" "Super+Shift" "movetoworkspacesilent" "special:scratchpad")
|
||||||
(key "Tab" "Super" "cyclenext" "tiled")
|
(key "Tab" "Super" "cyclenext" "tiled")
|
||||||
(key "Tab" "Super+Shift" "alterzorder" "top")
|
(key "Tab" "Super+Shift" "alterzorder" "top")
|
||||||
(key "Tab" "Super+Shift" "cyclenext" "floating")
|
(key "Tab" "Super+Shift" "cyclenext" "floating")
|
||||||
(key "Up" "Super" "movewindoworgroup" "u")
|
(key "Up" "Super" "movewindow" "u")
|
||||||
|
(key "Up" "Super+Shift" "movewindoworgroup" "u")
|
||||||
|
|
||||||
(key "0" "Super" "workspace" "10")
|
(key "0" "Super" "workspace" "10")
|
||||||
(key "0" "Super+Ctrl" "movetoworkspacesilent" "10")
|
(key "0" "Super+Shift" "movetoworkspacesilent" "10")
|
||||||
(key "1" "Ctrl+Alt" "exec" "lifx state --brightness 0.01")
|
(key "1" "Ctrl+Alt" "exec" "lifx state --brightness 0.01")
|
||||||
(key "1" "Super" "workspace" "1")
|
(key "1" "Super" "workspace" "1")
|
||||||
(key "1" "Super+Alt" "exec" "lifx state --kelvin 1500")
|
(key "1" "Super+Alt" "exec" "lifx state --kelvin 1500")
|
||||||
(key "1" "Super+Ctrl" "movetoworkspacesilent" "1")
|
(key "1" "Super+Shift" "movetoworkspacesilent" "1")
|
||||||
(key "2" "Ctrl+Alt" "exec" "lifx state --brightness 0.25")
|
(key "2" "Ctrl+Alt" "exec" "lifx state --brightness 0.25")
|
||||||
(key "2" "Super" "workspace" "2")
|
(key "2" "Super" "workspace" "2")
|
||||||
(key "2" "Super+Alt" "exec" "lifx state --kelvin 2500")
|
(key "2" "Super+Alt" "exec" "lifx state --kelvin 2500")
|
||||||
(key "2" "Super+Ctrl" "movetoworkspacesilent" "2")
|
(key "2" "Super+Shift" "movetoworkspacesilent" "2")
|
||||||
(key "3" "Ctrl+Alt" "exec" "lifx state --brightness 0.50")
|
(key "3" "Ctrl+Alt" "exec" "lifx state --brightness 0.50")
|
||||||
(key "3" "Super" "workspace" "3")
|
(key "3" "Super" "workspace" "3")
|
||||||
(key "3" "Super+Alt" "exec" "lifx state --kelvin 3000")
|
(key "3" "Super+Alt" "exec" "lifx state --kelvin 3000")
|
||||||
(key "3" "Super+Ctrl" "movetoworkspacesilent" "3")
|
(key "3" "Super+Shift" "movetoworkspacesilent" "3")
|
||||||
(key "4" "Ctrl+Alt" "exec" "lifx state --brightness 0.75")
|
(key "4" "Ctrl+Alt" "exec" "lifx state --brightness 0.75")
|
||||||
(key "4" "Super" "workspace" "4")
|
(key "4" "Super" "workspace" "4")
|
||||||
(key "4" "Super+Alt" "exec" "lifx state --kelvin 4000")
|
(key "4" "Super+Alt" "exec" "lifx state --kelvin 4000")
|
||||||
(key "4" "Super+Ctrl" "movetoworkspacesilent" "4")
|
(key "4" "Super+Shift" "movetoworkspacesilent" "4")
|
||||||
(key "5" "Ctrl+Alt" "exec" "lifx state --brightness 1.00")
|
(key "5" "Ctrl+Alt" "exec" "lifx state --brightness 1.00")
|
||||||
(key "5" "Super" "workspace" "5")
|
(key "5" "Super" "workspace" "5")
|
||||||
(key "5" "Super+Alt" "exec" "lifx state --kelvin 5000")
|
(key "5" "Super+Alt" "exec" "lifx state --kelvin 5000")
|
||||||
(key "5" "Super+Ctrl" "movetoworkspacesilent" "5")
|
(key "5" "Super+Shift" "movetoworkspacesilent" "5")
|
||||||
(key "6" "Super" "workspace" "6")
|
(key "6" "Super" "workspace" "6")
|
||||||
(key "6" "Super+Ctrl" "movetoworkspacesilent" "6")
|
(key "6" "Super+Shift" "movetoworkspacesilent" "6")
|
||||||
(key "7" "Super" "workspace" "7")
|
(key "7" "Super" "workspace" "7")
|
||||||
(key "7" "Super+Ctrl" "movetoworkspacesilent" "7")
|
(key "7" "Super+Shift" "movetoworkspacesilent" "7")
|
||||||
(key "8" "Super" "workspace" "8")
|
(key "8" "Super" "workspace" "8")
|
||||||
(key "8" "Super+Ctrl" "movetoworkspacesilent" "8")
|
(key "8" "Super+Shift" "movetoworkspacesilent" "8")
|
||||||
(key "9" "Super" "workspace" "9")
|
(key "9" "Super" "workspace" "9")
|
||||||
(key "9" "Super+Ctrl" "movetoworkspacesilent" "9")
|
(key "9" "Super+Shift" "movetoworkspacesilent" "9")
|
||||||
(key "A" "Ctrl+Alt" "exec" "${waydroid} session stop")
|
(key "A" "Ctrl+Alt" "exec" "${waydroid} session stop")
|
||||||
(key "A" "Super" "togglespecialworkspace" "android")
|
(key "A" "Super" "togglespecialworkspace" "android")
|
||||||
(key "A" "Super+Ctrl" "movetoworkspacesilent" "android")
|
(key "A" "Super+Shift" "movetoworkspacesilent" "android")
|
||||||
(key "B" "Super" "exec" "[group new lock; tile] ${firefox-esr}")
|
(key "B" "Super" "exec" "[group new lock; tile] ${firefox-esr}")
|
||||||
(key "C" "Super" "exec" codium)
|
(key "C" "Super" "exec" codium)
|
||||||
(key "E" "Super" "exec" gnome-text-editor)
|
(key "E" "Super" "exec" gnome-text-editor)
|
||||||
(key "F" "Super" "exec" nautilus)
|
(key "F" "Super" "exec" nautilus)
|
||||||
(key "G" "Super" "workspace" "name:game")
|
(key "G" "Super" "workspace" "name:game")
|
||||||
(key "G" "Super+Alt" "workspace" "name:gamescope")
|
(key "G" "Super+Alt" "workspace" "name:gamescope")
|
||||||
(key "G" "Super+Ctrl" "movetoworkspacesilent" "name:game")
|
(key "G" "Super+Shift" "movetoworkspacesilent" "name:game")
|
||||||
(key "G" "Super+Ctrl+Alt" "exec" "${pkill} gamescope")
|
(key "G" "Super+Ctrl+Alt" "exec" "${pkill} gamescope")
|
||||||
(key "K" "Super" "exec" obsidian)
|
(key "K" "Super" "exec" obsidian)
|
||||||
(key "M" "Super" "togglespecialworkspace" "music")
|
(key "M" "Super" "togglespecialworkspace" "music")
|
||||||
(key "M" "Super+Ctrl" "movetoworkspacesilent" "music")
|
(key "M" "Super+Shift" "movetoworkspacesilent" "music")
|
||||||
(key "O" "Super" "togglespecialworkspace" "office")
|
(key "O" "Super" "togglespecialworkspace" "office")
|
||||||
(key "P" "Super" "exec" "${hyprpicker} --autocopy")
|
(key "P" "Super" "exec" "${hyprpicker} --autocopy")
|
||||||
(key "P" "Super+Shift" "exec" "${hyprpicker} --autocopy --format rgb")
|
(key "P" "Super+Shift" "exec" "${hyprpicker} --autocopy --format rgb")
|
||||||
|
@ -213,11 +217,11 @@ in {
|
||||||
(key "Q" "Super" "killactive" null)
|
(key "Q" "Super" "killactive" null)
|
||||||
(key "S" "Ctrl+Alt" "exec" "${pkill} steam")
|
(key "S" "Ctrl+Alt" "exec" "${pkill} steam")
|
||||||
(key "S" "Super" "togglespecialworkspace" "steam")
|
(key "S" "Super" "togglespecialworkspace" "steam")
|
||||||
(key "S" "Super+Ctrl" "movetoworkspacesilent" "steam")
|
(key "S" "Super+Shift" "movetoworkspacesilent" "steam")
|
||||||
(key "S" "Super+Shift" "exec" steam)
|
(key "S" "Super+Shift" "exec" steam)
|
||||||
(key "T" "Ctrl+Alt" "exec" "${pkill} kitty")
|
(key "T" "Ctrl+Alt" "exec" "${pkill} kitty")
|
||||||
(key "T" "Super" "togglespecialworkspace" "terminal")
|
(key "T" "Super" "togglespecialworkspace" "terminal")
|
||||||
(key "T" "Super+Ctrl" "movetoworkspacesilent" "terminal")
|
(key "T" "Super+Shift" "movetoworkspacesilent" "terminal")
|
||||||
(key "T" "Super+Shift" "exec" kitty)
|
(key "T" "Super+Shift" "exec" kitty)
|
||||||
(key "V" "Super" "exec" "${kitty} --app-id clipboard --override font_size=12 ${clipse}")
|
(key "V" "Super" "exec" "${kitty} --app-id clipboard --override font_size=12 ${clipse}")
|
||||||
(key "V" "Super+Shift" "exec" "${clipse} -clear && ${notify-send} clipse 'Clipboard cleared' --urgency low")
|
(key "V" "Super+Shift" "exec" "${clipse} -clear && ${notify-send} clipse 'Clipboard cleared' --urgency low")
|
||||||
|
@ -227,12 +231,12 @@ in {
|
||||||
then "/scale:140 +f"
|
then "/scale:140 +f"
|
||||||
else ""
|
else ""
|
||||||
}")
|
}")
|
||||||
(key "W" "Super+Ctrl" "movetoworkspacesilent" "vm")
|
(key "W" "Super+Shift" "movetoworkspacesilent" "vm")
|
||||||
(key "W" "Super+Ctrl+Shift" "exec" "vm ${virt-manager} --show-domain-console myndows")
|
(key "W" "Super+Ctrl+Shift" "exec" "vm ${virt-manager} --show-domain-console myndows")
|
||||||
(key "X" "Super" "workspace" "+1")
|
(key "X" "Super" "workspace" "+1")
|
||||||
(key "X" "Super+Ctrl" "movetoworkspacesilent" "+1")
|
(key "X" "Super+Shift" "movetoworkspacesilent" "+1")
|
||||||
(key "Z" "Super" "workspace" "-1")
|
(key "Z" "Super" "workspace" "-1")
|
||||||
(key "Z" "Super+Ctrl" "movetoworkspacesilent" "-1")
|
(key "Z" "Super+Shift" "movetoworkspacesilent" "-1")
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -4,13 +4,9 @@
|
||||||
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 {
|
||||||
|
|
|
@ -4,15 +4,11 @@
|
||||||
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 {
|
||||||
|
|
|
@ -167,6 +167,7 @@ in {
|
||||||
flatten [
|
flatten [
|
||||||
### Defaults
|
### Defaults
|
||||||
(class ".*" ["float" "suppressevent maximize" "syncfullscreen"])
|
(class ".*" ["float" "suppressevent maximize" "syncfullscreen"])
|
||||||
|
(floating false ["noshadow"])
|
||||||
(floating true ["bordercolor rgb(073642)"])
|
(floating true ["bordercolor rgb(073642)"])
|
||||||
(fullscreen true ["idleinhibit focus"])
|
(fullscreen true ["idleinhibit focus"])
|
||||||
(pinned true ["bordercolor rgb(073642) rgb(073642)"])
|
(pinned true ["bordercolor rgb(073642) rgb(073642)"])
|
||||||
|
|
|
@ -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,8 +19,7 @@ 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 {
|
||||||
|
@ -51,12 +47,14 @@ 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,7 +64,8 @@ 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
|
"${rm} ~/.config/qalculate/qalc.dmenu.history" # Clear calc history
|
||||||
"${clipse} -clear" # Clear clipboard history
|
"${clipse} -clear" # Clear clipboard history
|
||||||
"${clipse} -listen" # Monitor clipboard
|
"${clipse} -listen" # Monitor clipboard
|
||||||
|
@ -143,7 +142,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)";
|
||||||
|
@ -181,7 +183,7 @@ in
|
||||||
float_switch_override_focus = 0; # Disable float to tile hover focus
|
float_switch_override_focus = 0; # Disable float to tile hover focus
|
||||||
focus_on_close = 1; # Focus window under mouse
|
focus_on_close = 1; # Focus window under mouse
|
||||||
follow_mouse = 1; # Hover focus
|
follow_mouse = 1; # Hover focus
|
||||||
mouse_refocus = false;
|
#// mouse_refocus = false;
|
||||||
repeat_delay = 300;
|
repeat_delay = 300;
|
||||||
repeat_rate = 40;
|
repeat_rate = 40;
|
||||||
sensitivity = 0.5;
|
sensitivity = 0.5;
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.desktops.kde;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.desktops.kde;
|
||||||
|
in {
|
||||||
options.custom.desktops.kde.enable = mkOption {default = false;};
|
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,11 +1,11 @@
|
||||||
{ 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;};
|
||||||
|
|
|
@ -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,11 +1,11 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.files.dev;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.files.dev;
|
||||||
|
in {
|
||||||
options.custom.files.dev.enable = mkOption {default = false;};
|
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 {
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.files.mnt;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.files.mnt;
|
||||||
|
in {
|
||||||
options.custom.files.mnt.enable = mkOption {default = false;};
|
options.custom.files.mnt.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.files.nixos;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.files.nixos;
|
||||||
|
in {
|
||||||
options.custom.files.nixos.enable = mkOption {default = false;};
|
options.custom.files.nixos.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.adb;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.adb;
|
||||||
|
in {
|
||||||
options.custom.programs.adb.enable = mkOption {default = false;};
|
options.custom.programs.adb.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
|
|
@ -4,13 +4,9 @@
|
||||||
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 {
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.alacritty;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.alacritty;
|
||||||
|
in {
|
||||||
options.custom.programs.alacritty.enable = mkOption {default = false;};
|
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 {
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.anime-game-launcher;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.anime-game-launcher;
|
||||||
|
in {
|
||||||
options.custom.programs.anime-game-launcher.enable = mkOption {default = false;};
|
options.custom.programs.anime-game-launcher.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
|
|
@ -5,17 +5,13 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
with lib; let
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.anyrun;
|
cfg = config.custom.programs.anyrun;
|
||||||
in
|
in {
|
||||||
{
|
|
||||||
options.custom.programs.anyrun.enable = mkOption {default = false;};
|
options.custom.programs.anyrun.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.anyrun.home-managerModules.default ];
|
imports = [inputs.anyrun.homeManagerModules.default];
|
||||||
|
|
||||||
# https://github.com/Kirottu/anyrun
|
# https://github.com/Kirottu/anyrun
|
||||||
programs.anyrun = {
|
programs.anyrun = {
|
||||||
|
@ -27,8 +23,7 @@ in
|
||||||
applications
|
applications
|
||||||
dictionary
|
dictionary
|
||||||
#// kidex # File search
|
#// kidex # File search
|
||||||
#// randr # Hyprland only\{
|
#// randr # Hyprland only
|
||||||
|
|
||||||
rink # Calculator
|
rink # Calculator
|
||||||
shell
|
shell
|
||||||
#// stdin # Entries from input, aka dmenu
|
#// stdin # Entries from input, aka dmenu
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.appimage;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.appimage;
|
||||||
|
in {
|
||||||
options.custom.programs.appimage.enable = mkOption {default = false;};
|
options.custom.programs.appimage.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
{ 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 {
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.chromium;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.chromium;
|
||||||
|
in {
|
||||||
options.custom.programs.chromium.enable = mkOption {default = false;};
|
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 {
|
||||||
|
|
|
@ -4,13 +4,9 @@
|
||||||
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 = {
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.dconf;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.dconf;
|
||||||
|
in {
|
||||||
options.custom.programs.dconf.enable = mkOption {default = false;};
|
options.custom.programs.dconf.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
|
|
@ -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,11 +1,11 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.direnv;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.direnv;
|
||||||
|
in {
|
||||||
options.custom.programs.direnv.enable = mkOption {default = false;};
|
options.custom.programs.direnv.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.discord;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.discord;
|
||||||
|
in {
|
||||||
options.custom.programs.discord.enable = mkOption {default = false;};
|
options.custom.programs.discord.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config.home-manager.users.myned = mkIf cfg.enable {
|
config.home-manager.users.myned = mkIf cfg.enable {
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.element-desktop;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.element-desktop;
|
||||||
|
in {
|
||||||
options.custom.programs.element-desktop.enable = mkOption {default = false;};
|
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 {
|
||||||
|
|
|
@ -4,15 +4,11 @@
|
||||||
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;};
|
||||||
|
|
|
@ -5,13 +5,9 @@
|
||||||
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 {
|
||||||
|
@ -116,8 +112,7 @@ 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";
|
||||||
|
@ -194,14 +189,12 @@ 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
|
in {
|
||||||
{
|
|
||||||
"accessibility.browsewithcaret" = locked false;
|
"accessibility.browsewithcaret" = locked false;
|
||||||
"accessibility.typeaheadfind" = locked false;
|
"accessibility.typeaheadfind" = locked false;
|
||||||
"browser.aboutConfig.showWarning" = locked false;
|
"browser.aboutConfig.showWarning" = locked false;
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.fish;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.fish;
|
||||||
|
in {
|
||||||
options.custom.programs.fish.enable = mkOption {default = false;};
|
options.custom.programs.fish.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.foot;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.foot;
|
||||||
|
in {
|
||||||
options.custom.programs.foot.enable = mkOption {default = false;};
|
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 {
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.fuzzel;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.fuzzel;
|
||||||
|
in {
|
||||||
options.custom.programs.fuzzel.enable = mkOption {default = false;};
|
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 {
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.gamemode;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.gamemode;
|
||||||
|
in {
|
||||||
options.custom.programs.gamemode.enable = mkOption {default = false;};
|
options.custom.programs.gamemode.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.gamescope;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.gamescope;
|
||||||
|
in {
|
||||||
options.custom.programs.gamescope.enable = mkOption {default = false;};
|
options.custom.programs.gamescope.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.git;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.git;
|
||||||
|
in {
|
||||||
options.custom.programs.git.enable = mkOption {default = false;};
|
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 {
|
||||||
|
|
|
@ -4,13 +4,9 @@
|
||||||
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 {
|
||||||
|
@ -18,8 +14,7 @@ in
|
||||||
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
|
||||||
]
|
]
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.gnome-terminal;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.gnome-terminal;
|
||||||
|
in {
|
||||||
options.custom.programs.gnome-terminal.enable = mkOption {default = false;};
|
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 {
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.gpg;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.gpg;
|
||||||
|
in {
|
||||||
options.custom.programs.gpg.enable = mkOption {default = false;};
|
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 {
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.htop;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.htop;
|
||||||
|
in {
|
||||||
options.custom.programs.htop.enable = mkOption {default = false;};
|
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 {
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.hyprlock;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.hyprlock;
|
||||||
|
in {
|
||||||
options.custom.programs.hyprlock.enable = mkOption {default = false;};
|
options.custom.programs.hyprlock.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.kdeconnect;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.kdeconnect;
|
||||||
|
in {
|
||||||
options.custom.programs.kdeconnect.enable = mkOption {default = false;};
|
options.custom.programs.kdeconnect.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.kitty;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.kitty;
|
||||||
|
in {
|
||||||
options.custom.programs.kitty.enable = mkOption {default = false;};
|
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 {
|
||||||
|
|
|
@ -4,13 +4,9 @@
|
||||||
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;};
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.librewolf;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.librewolf;
|
||||||
|
in {
|
||||||
options.custom.programs.librewolf.enable = mkOption {default = false;};
|
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 {
|
||||||
|
|
|
@ -1,15 +1,16 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.localsend;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.localsend;
|
||||||
|
in {
|
||||||
options.custom.programs.localsend.enable = mkOption {default = false;};
|
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,11 +1,11 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.logseq;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.logseq;
|
||||||
|
in {
|
||||||
options.custom.programs.logseq.enable = mkOption {default = false;};
|
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 {
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.man;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.man;
|
||||||
|
in {
|
||||||
options.custom.programs.man.enable = mkOption {default = false;};
|
options.custom.programs.man.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
|
|
@ -4,13 +4,9 @@
|
||||||
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 {
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.mosh;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.mosh;
|
||||||
|
in {
|
||||||
options.custom.programs.mosh.enable = mkOption {default = false;};
|
options.custom.programs.mosh.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.nano;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.nano;
|
||||||
|
in {
|
||||||
options.custom.programs.nano.enable = mkOption {default = false;};
|
options.custom.programs.nano.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
|
|
@ -4,13 +4,9 @@
|
||||||
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 {
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.networkmanager-dmenu;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.networkmanager-dmenu;
|
||||||
|
in {
|
||||||
options.custom.programs.networkmanager-dmenu.enable = mkOption {default = false;};
|
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 {
|
||||||
|
@ -13,11 +13,9 @@ in
|
||||||
# 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]
|
||||||
dmenu_command = ${wofi} --dmenu --lines 11
|
dmenu_command = ${wofi} --dmenu --lines 11
|
||||||
active_chars = >
|
active_chars = >
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.nh;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.nh;
|
||||||
|
in {
|
||||||
options.custom.programs.nh.enable = mkOption {default = false;};
|
options.custom.programs.nh.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
@ -16,7 +16,11 @@ in
|
||||||
|
|
||||||
clean = {
|
clean = {
|
||||||
enable = true;
|
enable = true;
|
||||||
extraArgs = "--keep-since ${if config.custom.minimal then "7" else "30"}d";
|
extraArgs = "--keep-since ${
|
||||||
|
if config.custom.minimal
|
||||||
|
then "7"
|
||||||
|
else "30"
|
||||||
|
}d";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.nheko;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.nheko;
|
||||||
|
in {
|
||||||
options.custom.programs.nheko.enable = mkOption {default = false;};
|
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 {
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.nix-index;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.nix-index;
|
||||||
|
in {
|
||||||
options.custom.programs.nix-index.enable = mkOption {default = false;};
|
options.custom.programs.nix-index.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.nix-ld;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.nix-ld;
|
||||||
|
in {
|
||||||
options.custom.programs.nix-ld.enable = mkOption {default = false;};
|
options.custom.programs.nix-ld.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.nushell;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.nushell;
|
||||||
|
in {
|
||||||
options.custom.programs.nushell.enable = mkOption {default = false;};
|
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 {
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.nvtop;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.nvtop;
|
||||||
|
in {
|
||||||
options.custom.programs.nvtop.enable = mkOption {default = false;};
|
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 {
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.obs-studio;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.obs-studio;
|
||||||
|
in {
|
||||||
options.custom.programs.obs-studio.enable = mkOption {default = false;};
|
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 {
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.onedrive;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.onedrive;
|
||||||
|
in {
|
||||||
options.custom.programs.onedrive.enable = mkOption {default = false;};
|
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 {
|
||||||
|
|
|
@ -4,13 +4,9 @@
|
||||||
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 {
|
||||||
|
|
|
@ -4,13 +4,9 @@
|
||||||
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 {
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.rofi-rbw;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.rofi-rbw;
|
||||||
|
in {
|
||||||
options.custom.programs.rofi-rbw.enable = mkOption {default = false;};
|
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 {
|
||||||
|
|
|
@ -4,13 +4,9 @@
|
||||||
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 {
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.seahorse;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.seahorse;
|
||||||
|
in {
|
||||||
options.custom.programs.seahorse.enable = mkOption {default = false;};
|
options.custom.programs.seahorse.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.slurp;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.slurp;
|
||||||
|
in {
|
||||||
options.custom.programs.slurp.enable = mkOption {default = false;};
|
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 {
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.ssh;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.ssh;
|
||||||
|
in {
|
||||||
options.custom.programs.ssh.enable = mkOption {default = false;};
|
options.custom.programs.ssh.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
|
|
@ -4,13 +4,9 @@
|
||||||
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 = {
|
||||||
|
@ -19,7 +15,8 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
programs.steam = {
|
programs.steam =
|
||||||
|
{
|
||||||
enable = true;
|
enable = true;
|
||||||
extest.enable = cfg.extest; # Work around invisible cursor on Wayland
|
extest.enable = cfg.extest; # Work around invisible cursor on Wayland
|
||||||
extraCompatPackages = [pkgs.proton-ge-bin];
|
extraCompatPackages = [pkgs.proton-ge-bin];
|
||||||
|
@ -31,6 +28,7 @@ in
|
||||||
# "--fullscreen"
|
# "--fullscreen"
|
||||||
# ];
|
# ];
|
||||||
};
|
};
|
||||||
} // optionalAttrs (versionAtLeast version "24.11") { protontricks.enable = true; };
|
}
|
||||||
|
// optionalAttrs (versionAtLeast version "24.11") {protontricks.enable = true;};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,13 +4,9 @@
|
||||||
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 {
|
||||||
|
|
|
@ -5,13 +5,9 @@
|
||||||
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 {
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.tio;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.tio;
|
||||||
|
in {
|
||||||
options.custom.programs.tio.enable = mkOption {default = false;};
|
options.custom.programs.tio.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.tmux;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.tmux;
|
||||||
|
in {
|
||||||
options.custom.programs.tmux.enable = mkOption {default = false;};
|
options.custom.programs.tmux.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
|
|
@ -5,13 +5,9 @@
|
||||||
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 {
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
with lib; let
|
||||||
with lib; let
|
with lib; let
|
||||||
bash = "${pkgs.bash}/bin/bash";
|
bash = "${pkgs.bash}/bin/bash";
|
||||||
blueberry = "${pkgs.blueberry}/bin/blueberry";
|
blueberry = "${pkgs.blueberry}/bin/blueberry";
|
||||||
|
@ -32,6 +33,8 @@ with lib; let
|
||||||
wttrbar = "${pkgs.wttrbar}/bin/wttrbar";
|
wttrbar = "${pkgs.wttrbar}/bin/wttrbar";
|
||||||
|
|
||||||
cfg = config.custom.programs.waybar;
|
cfg = config.custom.programs.waybar;
|
||||||
|
in {
|
||||||
|
options.custom.programs.waybar.enable = mkOption {default = false;};
|
||||||
in {
|
in {
|
||||||
options.custom.programs.waybar.enable = mkOption {default = false;};
|
options.custom.programs.waybar.enable = mkOption {default = false;};
|
||||||
|
|
||||||
|
@ -46,6 +49,52 @@ in {
|
||||||
### SETTINGS ###
|
### SETTINGS ###
|
||||||
# https://github.com/Alexays/Waybar/wiki/Configuration
|
# https://github.com/Alexays/Waybar/wiki/Configuration
|
||||||
#?? pkill -SIGUSR2 -x waybar
|
#?? pkill -SIGUSR2 -x waybar
|
||||||
|
settings = let
|
||||||
|
## INHERIT ##
|
||||||
|
#!! Module defaults are not accurate to documentation
|
||||||
|
# TODO: Submit pull request to fix in addition to inconsistent hyphen vs underscore
|
||||||
|
# https://github.com/Alexays/Waybar/wiki/Module:-Cava
|
||||||
|
cava-config = {
|
||||||
|
cava_config = null; # Default: null?
|
||||||
|
framerate = 30; # Default: 30?
|
||||||
|
autosens = 1; # Default: 1
|
||||||
|
# sensitivity = 0; # Default: 100?
|
||||||
|
bars = 16; # Default: 2
|
||||||
|
lower_cutoff_freq = 50; # Default: 50?
|
||||||
|
higher_cutoff_freq = 10000; # Default: 10000?
|
||||||
|
sleep_timer = 5; # Default: 0
|
||||||
|
hide_on_silence = true; # Default: false
|
||||||
|
method = "pipewire"; # Default: pulse
|
||||||
|
source = "auto"; # Default: auto?
|
||||||
|
sample_rate = 44100; # Default: 44100?
|
||||||
|
sample_bits = 16; # Default: 16?
|
||||||
|
stereo = false; # Default: true
|
||||||
|
reverse = false; # Default: false
|
||||||
|
bar_delimiter = 32; # ASCII code for space, default: 59 or ;
|
||||||
|
monstercat = true; # Default: false?
|
||||||
|
waves = true; # Default: false?
|
||||||
|
noise_reduction = 0.2; # Default: 0.77?
|
||||||
|
input_delay = 1; # Default: 4
|
||||||
|
format-icons = [
|
||||||
|
"▁"
|
||||||
|
"▂"
|
||||||
|
"▃"
|
||||||
|
"▄"
|
||||||
|
"▅"
|
||||||
|
"▆"
|
||||||
|
"▇"
|
||||||
|
"█"
|
||||||
|
]; # !! Required
|
||||||
|
on-click = easyeffects;
|
||||||
|
on-scroll-up = "${swayosd-client} --output-volume raise";
|
||||||
|
on-scroll-down = "${swayosd-client} --output-volume lower";
|
||||||
|
rotate = 180;
|
||||||
|
};
|
||||||
|
in {
|
||||||
|
status = {
|
||||||
|
## GLOBAL ##
|
||||||
|
layer = "top";
|
||||||
|
position = "bottom";
|
||||||
settings = let
|
settings = let
|
||||||
## INHERIT ##
|
## INHERIT ##
|
||||||
#!! Module defaults are not accurate to documentation
|
#!! Module defaults are not accurate to documentation
|
||||||
|
@ -93,6 +142,26 @@ in {
|
||||||
layer = "top";
|
layer = "top";
|
||||||
position = "bottom";
|
position = "bottom";
|
||||||
|
|
||||||
|
## POSITION ##
|
||||||
|
modules-left = [
|
||||||
|
"custom/power"
|
||||||
|
"custom/inhibitor"
|
||||||
|
"custom/vpn"
|
||||||
|
"custom/vm"
|
||||||
|
"hyprland/workspaces"
|
||||||
|
];
|
||||||
|
modules-center = [
|
||||||
|
"clock"
|
||||||
|
"custom/weather"
|
||||||
|
];
|
||||||
|
modules-right = [
|
||||||
|
"mpris"
|
||||||
|
"tray"
|
||||||
|
"wireplumber"
|
||||||
|
"bluetooth"
|
||||||
|
"network"
|
||||||
|
"battery"
|
||||||
|
];
|
||||||
## POSITION ##
|
## POSITION ##
|
||||||
modules-left = [
|
modules-left = [
|
||||||
"custom/power"
|
"custom/power"
|
||||||
|
@ -114,6 +183,14 @@ in {
|
||||||
"battery"
|
"battery"
|
||||||
];
|
];
|
||||||
|
|
||||||
|
## MODULES ##
|
||||||
|
# https://github.com/Alexays/Waybar/wiki/Module:-Custom
|
||||||
|
"custom/power" = {
|
||||||
|
format = "";
|
||||||
|
on-click = "${systemctl} poweroff";
|
||||||
|
on-click-right = "${systemctl} reboot";
|
||||||
|
on-click-middle = "${loginctl} terminate-session ''";
|
||||||
|
};
|
||||||
## MODULES ##
|
## MODULES ##
|
||||||
# https://github.com/Alexays/Waybar/wiki/Module:-Custom
|
# https://github.com/Alexays/Waybar/wiki/Module:-Custom
|
||||||
"custom/power" = {
|
"custom/power" = {
|
||||||
|
@ -123,12 +200,26 @@ in {
|
||||||
on-click-middle = "${loginctl} terminate-session ''";
|
on-click-middle = "${loginctl} terminate-session ''";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
"custom/inhibitor" = {
|
||||||
|
interval = 5;
|
||||||
|
exec = "~/.config/waybar/scripts/inhibitor.sh";
|
||||||
|
on-click = "~/.local/bin/inhibit";
|
||||||
|
};
|
||||||
"custom/inhibitor" = {
|
"custom/inhibitor" = {
|
||||||
interval = 5;
|
interval = 5;
|
||||||
exec = "~/.config/waybar/scripts/inhibitor.sh";
|
exec = "~/.config/waybar/scripts/inhibitor.sh";
|
||||||
on-click = "~/.local/bin/inhibit";
|
on-click = "~/.local/bin/inhibit";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
"custom/vm" = {
|
||||||
|
interval = 5;
|
||||||
|
exec = "~/.config/waybar/scripts/vm.sh";
|
||||||
|
on-click = "~/.local/bin/vm -x ${
|
||||||
|
if config.custom.hidpi
|
||||||
|
then "/scale:140"
|
||||||
|
else ""
|
||||||
|
}";
|
||||||
|
};
|
||||||
"custom/vm" = {
|
"custom/vm" = {
|
||||||
interval = 5;
|
interval = 5;
|
||||||
exec = "~/.config/waybar/scripts/vm.sh";
|
exec = "~/.config/waybar/scripts/vm.sh";
|
||||||
|
@ -139,12 +230,27 @@ in {
|
||||||
}";
|
}";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
"custom/vpn" = {
|
||||||
|
interval = 5;
|
||||||
|
exec = "~/.config/waybar/scripts/vpn.sh";
|
||||||
|
on-click = "~/.local/bin/vpn mypi3";
|
||||||
|
};
|
||||||
"custom/vpn" = {
|
"custom/vpn" = {
|
||||||
interval = 5;
|
interval = 5;
|
||||||
exec = "~/.config/waybar/scripts/vpn.sh";
|
exec = "~/.config/waybar/scripts/vpn.sh";
|
||||||
on-click = "~/.local/bin/vpn mypi3";
|
on-click = "~/.local/bin/vpn mypi3";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# https://github.com/Alexays/Waybar/wiki/Module:-Idle-Inhibitor
|
||||||
|
# FIXME: Not currently usable
|
||||||
|
# https://github.com/Alexays/Waybar/issues/690
|
||||||
|
idle_inhibitor = {
|
||||||
|
format = "{icon}";
|
||||||
|
format-icons = {
|
||||||
|
activated = "";
|
||||||
|
deactivated = "";
|
||||||
|
};
|
||||||
|
};
|
||||||
# https://github.com/Alexays/Waybar/wiki/Module:-Idle-Inhibitor
|
# https://github.com/Alexays/Waybar/wiki/Module:-Idle-Inhibitor
|
||||||
# FIXME: Not currently usable
|
# FIXME: Not currently usable
|
||||||
# https://github.com/Alexays/Waybar/issues/690
|
# https://github.com/Alexays/Waybar/issues/690
|
||||||
|
@ -156,8 +262,17 @@ in {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# https://github.com/Alexays/Waybar/wiki/Module:-Hyprland
|
||||||
# https://github.com/Alexays/Waybar/wiki/Module:-Hyprland
|
# https://github.com/Alexays/Waybar/wiki/Module:-Hyprland
|
||||||
# https://www.nerdfonts.com/cheat-sheet
|
# https://www.nerdfonts.com/cheat-sheet
|
||||||
|
"hyprland/workspaces" = {
|
||||||
|
show-special = true;
|
||||||
|
format = "{icon}";
|
||||||
|
format-icons = {
|
||||||
|
android = "";
|
||||||
|
dropdown = "";
|
||||||
|
game = "";
|
||||||
|
music = "";
|
||||||
"hyprland/workspaces" = {
|
"hyprland/workspaces" = {
|
||||||
show-special = true;
|
show-special = true;
|
||||||
format = "{icon}";
|
format = "{icon}";
|
||||||
|
@ -168,6 +283,7 @@ in {
|
||||||
music = "";
|
music = "";
|
||||||
office = "";
|
office = "";
|
||||||
pip = "";
|
pip = "";
|
||||||
|
pip = "";
|
||||||
scratchpad = "";
|
scratchpad = "";
|
||||||
steam = "";
|
steam = "";
|
||||||
terminal = "";
|
terminal = "";
|
||||||
|
@ -175,9 +291,28 @@ in {
|
||||||
wallpaper = "";
|
wallpaper = "";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
steam = "";
|
||||||
|
terminal = "";
|
||||||
|
vm = "";
|
||||||
|
wallpaper = "";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
cava = cava-config;
|
||||||
cava = cava-config;
|
cava = cava-config;
|
||||||
|
|
||||||
|
# https://github.com/Alexays/Waybar/wiki/Module:-Clock
|
||||||
|
clock = {
|
||||||
|
# https://fmt.dev/latest/syntax.html#chrono-specs
|
||||||
|
format = "{:%a %b %d %I:%M %p}"; # Mon Jan 01 12:00 AM
|
||||||
|
tooltip-format = "{calendar}";
|
||||||
|
calendar.format = {
|
||||||
|
months = "<span color='#eee8d5'>{}</span>";
|
||||||
|
weeks = "<span color='#eee8d5'>{}</span>";
|
||||||
|
weekdays = "<span color='#93a1a1'>{}</span>";
|
||||||
|
days = "<span color='#586e75'>{}</span>";
|
||||||
|
today = "<span color='#eee8d5'>{}</span>";
|
||||||
|
};
|
||||||
# https://github.com/Alexays/Waybar/wiki/Module:-Clock
|
# https://github.com/Alexays/Waybar/wiki/Module:-Clock
|
||||||
clock = {
|
clock = {
|
||||||
# https://fmt.dev/latest/syntax.html#chrono-specs
|
# https://fmt.dev/latest/syntax.html#chrono-specs
|
||||||
|
@ -198,7 +333,19 @@ in {
|
||||||
on-scroll-up = "${swayosd-client} --output-volume raise";
|
on-scroll-up = "${swayosd-client} --output-volume raise";
|
||||||
on-scroll-down = "${swayosd-client} --output-volume lower";
|
on-scroll-down = "${swayosd-client} --output-volume lower";
|
||||||
};
|
};
|
||||||
|
# FIXME: Click release event sends to incorrect layer without sleeping
|
||||||
|
# https://github.com/hyprwm/Hyprland/issues/1348
|
||||||
|
on-click = "${swaync-client} --toggle-panel";
|
||||||
|
# on-click-right = easyeffects;
|
||||||
|
on-scroll-up = "${swayosd-client} --output-volume raise";
|
||||||
|
on-scroll-down = "${swayosd-client} --output-volume lower";
|
||||||
|
};
|
||||||
|
|
||||||
|
# https://github.com/bjesus/wttrbar
|
||||||
|
"custom/weather" = {
|
||||||
|
format = "{}°";
|
||||||
|
interval = 60 * 60;
|
||||||
|
return-type = "json";
|
||||||
# https://github.com/bjesus/wttrbar
|
# https://github.com/bjesus/wttrbar
|
||||||
"custom/weather" = {
|
"custom/weather" = {
|
||||||
format = "{}°";
|
format = "{}°";
|
||||||
|
@ -211,9 +358,13 @@ in {
|
||||||
"--fahrenheit"
|
"--fahrenheit"
|
||||||
"--hide-conditions"
|
"--hide-conditions"
|
||||||
"--main-indicator temp_F"
|
"--main-indicator temp_F"
|
||||||
|
"--location 'Cedar Falls Iowa'"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
"cava#reverse" =
|
||||||
|
cava-config
|
||||||
|
// {
|
||||||
"cava#reverse" =
|
"cava#reverse" =
|
||||||
cava-config
|
cava-config
|
||||||
// {
|
// {
|
||||||
|
@ -236,7 +387,37 @@ in {
|
||||||
on-scroll-up = "${swayosd-client} --output-volume raise";
|
on-scroll-up = "${swayosd-client} --output-volume raise";
|
||||||
on-scroll-down = "${swayosd-client} --output-volume lower";
|
on-scroll-down = "${swayosd-client} --output-volume lower";
|
||||||
};
|
};
|
||||||
|
# https://github.com/Alexays/Waybar/wiki/Module:-MPRIS
|
||||||
|
mpris = {
|
||||||
|
format = "{player_icon} {dynamic}";
|
||||||
|
format-paused = "{status_icon} {dynamic}";
|
||||||
|
dynamic-len = 50;
|
||||||
|
dynamic-order = [
|
||||||
|
"title"
|
||||||
|
"artist"
|
||||||
|
];
|
||||||
|
dynamic-separator = " ";
|
||||||
|
player-icons.default = "";
|
||||||
|
status-icons.paused = "";
|
||||||
|
on-click-middle = ""; # TODO: Close music player
|
||||||
|
on-scroll-up = "${swayosd-client} --output-volume raise";
|
||||||
|
on-scroll-down = "${swayosd-client} --output-volume lower";
|
||||||
|
};
|
||||||
|
|
||||||
|
# https://github.com/Alexays/Waybar/wiki/Module:-WirePlumber
|
||||||
|
wireplumber = {
|
||||||
|
format = "{icon} {volume}%";
|
||||||
|
format-muted = "";
|
||||||
|
format-icons = [
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
];
|
||||||
|
on-click = easyeffects;
|
||||||
|
on-click-right = "${swayosd-client} --output-volume mute-toggle";
|
||||||
|
on-scroll-up = "${swayosd-client} --output-volume raise";
|
||||||
|
on-scroll-down = "${swayosd-client} --output-volume lower";
|
||||||
|
};
|
||||||
# https://github.com/Alexays/Waybar/wiki/Module:-WirePlumber
|
# https://github.com/Alexays/Waybar/wiki/Module:-WirePlumber
|
||||||
wireplumber = {
|
wireplumber = {
|
||||||
format = "{icon} {volume}%";
|
format = "{icon} {volume}%";
|
||||||
|
@ -252,6 +433,16 @@ in {
|
||||||
on-scroll-down = "${swayosd-client} --output-volume lower";
|
on-scroll-down = "${swayosd-client} --output-volume lower";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# https://github.com/Alexays/Waybar/wiki/Module:-Bluetooth
|
||||||
|
bluetooth = {
|
||||||
|
format-disabled = "";
|
||||||
|
format-off = "";
|
||||||
|
format-on = "";
|
||||||
|
format-connected = "";
|
||||||
|
on-click = blueberry;
|
||||||
|
on-click-right = "${bluetoothctl} disconnect";
|
||||||
|
on-click-middle = "${rfkill} toggle bluetooth"; # Toggle bluetooth on/off
|
||||||
|
};
|
||||||
# https://github.com/Alexays/Waybar/wiki/Module:-Bluetooth
|
# https://github.com/Alexays/Waybar/wiki/Module:-Bluetooth
|
||||||
bluetooth = {
|
bluetooth = {
|
||||||
format-disabled = "";
|
format-disabled = "";
|
||||||
|
@ -263,6 +454,22 @@ in {
|
||||||
on-click-middle = "${rfkill} toggle bluetooth"; # Toggle bluetooth on/off
|
on-click-middle = "${rfkill} toggle bluetooth"; # Toggle bluetooth on/off
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# https://github.com/Alexays/Waybar/wiki/Module:-Network
|
||||||
|
network = {
|
||||||
|
format = "{icon}";
|
||||||
|
format-icons = {
|
||||||
|
disabled = "";
|
||||||
|
disconnected = "";
|
||||||
|
ethernet = "";
|
||||||
|
linked = "";
|
||||||
|
wifi = [
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
];
|
||||||
|
};
|
||||||
# https://github.com/Alexays/Waybar/wiki/Module:-Network
|
# https://github.com/Alexays/Waybar/wiki/Module:-Network
|
||||||
network = {
|
network = {
|
||||||
format = "{icon}";
|
format = "{icon}";
|
||||||
|
@ -283,7 +490,31 @@ in {
|
||||||
on-click = nm-connection-editor;
|
on-click = nm-connection-editor;
|
||||||
on-click-right = "~/.local/bin/network"; # Toggle networking on/off
|
on-click-right = "~/.local/bin/network"; # Toggle networking on/off
|
||||||
};
|
};
|
||||||
|
on-click = nm-connection-editor;
|
||||||
|
on-click-right = "~/.local/bin/network"; # Toggle networking on/off
|
||||||
|
};
|
||||||
|
|
||||||
|
# https://github.com/Alexays/Waybar/wiki/Module:-Battery
|
||||||
|
"battery" = {
|
||||||
|
format = "{icon} {power:.0f}W";
|
||||||
|
format-icons = [
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
];
|
||||||
|
interval = 5;
|
||||||
|
states = {
|
||||||
|
critical = 15;
|
||||||
|
warning = 30;
|
||||||
|
};
|
||||||
# https://github.com/Alexays/Waybar/wiki/Module:-Battery
|
# https://github.com/Alexays/Waybar/wiki/Module:-Battery
|
||||||
"battery" = {
|
"battery" = {
|
||||||
format = "{icon} {power:.0f}W";
|
format = "{icon} {power:.0f}W";
|
||||||
|
@ -310,6 +541,10 @@ in {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
on-click = "~/.local/bin/power"; # Toggle power-saver mode
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# TODO: Convert to writeShellApplication
|
# TODO: Convert to writeShellApplication
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.wezterm;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.wezterm;
|
||||||
|
in {
|
||||||
options.custom.programs.wezterm.enable = mkOption {default = false;};
|
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 {
|
||||||
|
|
|
@ -1,11 +1,12 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.wireshark;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.wireshark;
|
||||||
|
in {
|
||||||
options.custom.programs.wireshark.enable = mkOption {default = false;};
|
options.custom.programs.wireshark.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.wofi;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.wofi;
|
||||||
|
in {
|
||||||
options.custom.programs.wofi.enable = mkOption {default = false;};
|
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 {
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.programs.wpaperd;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.programs.wpaperd;
|
||||||
|
in {
|
||||||
options.custom.programs.wpaperd.enable = mkOption {default = false;};
|
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 {
|
||||||
|
|
|
@ -4,19 +4,14 @@
|
||||||
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 =
|
|
||||||
let
|
|
||||||
# Place script.ext in the same directory as this file
|
# Place script.ext in the same directory as this file
|
||||||
#?? pkg = (SHELL "NAME" [ DEPENDENCIES ])
|
#?? pkg = (SHELL "NAME" [ DEPENDENCIES ])
|
||||||
# https://nixos.org/manual/nixpkgs/unstable/#trivial-builder-writeShellApplication
|
# https://nixos.org/manual/nixpkgs/unstable/#trivial-builder-writeShellApplication
|
||||||
|
@ -172,7 +167,6 @@ in
|
||||||
swww
|
swww
|
||||||
tailscale
|
tailscale
|
||||||
])
|
])
|
||||||
|
|
||||||
]
|
]
|
||||||
++ (with pkgs.python3Packages; [
|
++ (with pkgs.python3Packages; [
|
||||||
# Python files with extension .py
|
# Python files with extension .py
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
#! /usr/bin/env bash
|
#! /usr/bin/env bash
|
||||||
|
|
||||||
set -x
|
|
||||||
|
|
||||||
# Toggle pinned window, launch if needed
|
# Toggle pinned window, launch if needed
|
||||||
#?? toggle --type TYPE --expression EXPRESSION --workspace WORKSPACE [COMMAND]
|
#?? toggle --type TYPE --expression EXPRESSION --workspace WORKSPACE [COMMAND]
|
||||||
#!! Regex may need to be double-escaped
|
#!! Regex may need to be double-escaped
|
||||||
|
|
|
@ -4,16 +4,12 @@
|
||||||
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 {
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
{ 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;};
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.services.avizo;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.services.avizo;
|
||||||
|
in {
|
||||||
options.custom.services.avizo.enable = mkOption {default = false;};
|
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 {
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.services.blueman-applet;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.services.blueman-applet;
|
||||||
|
in {
|
||||||
options.custom.services.blueman-applet.enable = mkOption {default = false;};
|
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 {
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.custom.services.blueman;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.custom.services.blueman;
|
||||||
|
in {
|
||||||
options.custom.services.blueman.enable = mkOption {default = false;};
|
options.custom.services.blueman.enable = mkOption {default = false;};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
|
|
@ -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
|
||||||
|
@ -68,11 +64,9 @@ 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,25 +4,19 @@
|
||||||
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
|
in {
|
||||||
{
|
|
||||||
"${config.custom.profile}/caddy/Caddyfile" = secret "${config.custom.profile}/caddy/Caddyfile";
|
"${config.custom.profile}/caddy/Caddyfile" = secret "${config.custom.profile}/caddy/Caddyfile";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
{ 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 {
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue