Use alejandra formatter / fix warnings
This commit is contained in:
parent
c5b1041bbb
commit
693d4e3c70
70 changed files with 1424 additions and 1547 deletions
|
|
@ -5,12 +5,13 @@
|
||||||
hostName,
|
hostName,
|
||||||
modulesPath,
|
modulesPath,
|
||||||
...
|
...
|
||||||
}:
|
}: let
|
||||||
let
|
|
||||||
username = config.conf.username;
|
username = config.conf.username;
|
||||||
in
|
in {
|
||||||
{
|
imports = [
|
||||||
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
|
(modulesPath + "/installer/scan/not-detected.nix")
|
||||||
|
#(modulesPath + "/misc/nixpkgs/read-only.nix")
|
||||||
|
];
|
||||||
|
|
||||||
# Bootloader.
|
# Bootloader.
|
||||||
boot = {
|
boot = {
|
||||||
|
|
@ -34,11 +35,13 @@ in
|
||||||
"sd_mod"
|
"sd_mod"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
kernelParams = [
|
kernelParams =
|
||||||
''resume="PARTLABEL=SWAP"''
|
[
|
||||||
''quiet''
|
''resume="PARTLABEL=SWAP"''
|
||||||
''udev.log_level=3''
|
''quiet''
|
||||||
] ++ config.conf.bootParams;
|
''udev.log_level=3''
|
||||||
|
]
|
||||||
|
++ config.conf.bootParams;
|
||||||
};
|
};
|
||||||
|
|
||||||
# Enable networking
|
# Enable networking
|
||||||
|
|
@ -59,6 +62,8 @@ in
|
||||||
flatpak.enable = true;
|
flatpak.enable = true;
|
||||||
xserver.enable = true;
|
xserver.enable = true;
|
||||||
fstrim.enable = lib.mkDefault true;
|
fstrim.enable = lib.mkDefault true;
|
||||||
|
# Enable sound with pipewire.
|
||||||
|
pulseaudio.enable = false;
|
||||||
pipewire = {
|
pipewire = {
|
||||||
enable = true;
|
enable = true;
|
||||||
alsa = {
|
alsa = {
|
||||||
|
|
@ -78,16 +83,14 @@ in
|
||||||
options = "--delete-older-than 7d --delete-generations +5";
|
options = "--delete-older-than 7d --delete-generations +5";
|
||||||
};
|
};
|
||||||
settings = {
|
settings = {
|
||||||
trusted-users = [ username ];
|
trusted-users = [username];
|
||||||
auto-optimise-store = true;
|
auto-optimise-store = true;
|
||||||
|
|
||||||
experimental-features = "nix-command flakes";
|
experimental-features = "nix-command flakes";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# Enable sound with pipewire.
|
|
||||||
hardware = {
|
hardware = {
|
||||||
pulseaudio.enable = false;
|
|
||||||
cpu.${config.conf.cpu}.updateMicrocode =
|
cpu.${config.conf.cpu}.updateMicrocode =
|
||||||
lib.mkDefault config.hardware.enableRedistributableFirmware;
|
lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
};
|
};
|
||||||
|
|
@ -124,5 +127,4 @@ in
|
||||||
password = "firstlogin";
|
password = "firstlogin";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,8 @@
|
||||||
{ pkgs, config, ... }:
|
|
||||||
{
|
{
|
||||||
|
pkgs,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
environment = {
|
environment = {
|
||||||
variables = {
|
variables = {
|
||||||
GSETTINGS_SCHEMA_DIR = "${pkgs.glib.getSchemaPath pkgs.gsettings-desktop-schemas}";
|
GSETTINGS_SCHEMA_DIR = "${pkgs.glib.getSchemaPath pkgs.gsettings-desktop-schemas}";
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
{ pkgs, ... }:
|
{pkgs, ...}: let
|
||||||
let
|
|
||||||
layout = pkgs.writeText "dashie" ''
|
layout = pkgs.writeText "dashie" ''
|
||||||
xkb_symbols "dashie"
|
xkb_symbols "dashie"
|
||||||
{
|
{
|
||||||
|
|
@ -10,12 +9,11 @@ let
|
||||||
key <AD07> { [ u, U, udiaeresis, Udiaeresis ] };
|
key <AD07> { [ u, U, udiaeresis, Udiaeresis ] };
|
||||||
};
|
};
|
||||||
'';
|
'';
|
||||||
in
|
in {
|
||||||
{
|
environment.systemPackages = [pkgs.xorg.xkbcomp];
|
||||||
environment.systemPackages = [ pkgs.xorg.xkbcomp ];
|
|
||||||
services.xserver.xkb.extraLayouts.dashie = {
|
services.xserver.xkb.extraLayouts.dashie = {
|
||||||
description = "US layout with 'umlaut'";
|
description = "US layout with 'umlaut'";
|
||||||
languages = [ "eng" ];
|
languages = ["eng"];
|
||||||
symbolsFile = "${layout}";
|
symbolsFile = "${layout}";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,9 +4,8 @@
|
||||||
build_systems,
|
build_systems,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}:
|
}: let
|
||||||
let
|
makeOptionsDoc = configuration: pkgs.nixosOptionsDoc {options = configuration;};
|
||||||
makeOptionsDoc = configuration: pkgs.nixosOptionsDoc { options = configuration; };
|
|
||||||
generateDocs = obj: ''
|
generateDocs = obj: ''
|
||||||
touch src/${obj.fst}.md
|
touch src/${obj.fst}.md
|
||||||
sed '/*Declared by:*/,/^$/d' <${obj.snd.optionsCommonMark} >> src/${obj.fst}.md
|
sed '/*Declared by:*/,/^$/d' <${obj.snd.optionsCommonMark} >> src/${obj.fst}.md
|
||||||
|
|
@ -14,8 +13,8 @@ let
|
||||||
summaryAppend = name: ''
|
summaryAppend = name: ''
|
||||||
echo "- [${name}](${name}.md)" >> src/SUMMARY.md
|
echo "- [${name}](${name}.md)" >> src/SUMMARY.md
|
||||||
'';
|
'';
|
||||||
system = (build_systems { root = ../example/.; })."example".options;
|
system = (build_systems {root = ../example/.;})."example".options;
|
||||||
makeOptionsDocPrograms = name: pkgs.nixosOptionsDoc { options = system.mods.${name}; };
|
makeOptionsDocPrograms = name: pkgs.nixosOptionsDoc {options = system.mods.${name};};
|
||||||
conf = makeOptionsDoc system.conf;
|
conf = makeOptionsDoc system.conf;
|
||||||
paths = builtins.readDir ../modules/programs;
|
paths = builtins.readDir ../modules/programs;
|
||||||
names = lib.lists.remove "default" (
|
names = lib.lists.remove "default" (
|
||||||
|
|
@ -25,18 +24,18 @@ let
|
||||||
docs = lib.strings.concatLines (map generateDocs (lib.lists.zipLists names mods));
|
docs = lib.strings.concatLines (map generateDocs (lib.lists.zipLists names mods));
|
||||||
summary = lib.strings.concatStringsSep " " (map summaryAppend names);
|
summary = lib.strings.concatStringsSep " " (map summaryAppend names);
|
||||||
in
|
in
|
||||||
pkgs.stdenvNoCC.mkDerivation {
|
pkgs.stdenvNoCC.mkDerivation {
|
||||||
name = "dashNix-book";
|
name = "dashNix-book";
|
||||||
src = ./.;
|
src = ./.;
|
||||||
|
|
||||||
patchPhase = ''
|
patchPhase = ''
|
||||||
sed '/*Declared by:*/,/^$/d' <${conf.optionsCommonMark} >> src/conf.md
|
sed '/*Declared by:*/,/^$/d' <${conf.optionsCommonMark} >> src/conf.md
|
||||||
${docs}
|
${docs}
|
||||||
echo "[README](README.md)\n # Options\n - [Base Config](conf.md)" >> src/SUMMARY.md
|
echo "[README](README.md)\n # Options\n - [Base Config](conf.md)" >> src/SUMMARY.md
|
||||||
${summary}
|
${summary}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
buildPhase = ''
|
buildPhase = ''
|
||||||
${pkgs.mdbook}/bin/mdbook build --dest-dir $out
|
${pkgs.mdbook}/bin/mdbook build --dest-dir $out
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -21,11 +21,9 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs =
|
outputs = {...} @ inputs: {
|
||||||
{ ... }@inputs:
|
nixosConfigurations = inputs.dashNix.dashNixLib.build_systems {root = ./.;};
|
||||||
{
|
};
|
||||||
nixosConfigurations = inputs.dashNix.dashNixLib.build_systems { root = ./.; };
|
|
||||||
};
|
|
||||||
|
|
||||||
nixConfig = {
|
nixConfig = {
|
||||||
builders-use-substitutes = true;
|
builders-use-substitutes = true;
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
{ config, ... }:
|
{config, ...}: {
|
||||||
{
|
|
||||||
# variables for system
|
# variables for system
|
||||||
# TODO important changes
|
# TODO important changes
|
||||||
conf = {
|
conf = {
|
||||||
|
|
|
||||||
112
flake.nix
112
flake.nix
|
|
@ -48,66 +48,62 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs =
|
outputs = {self, ...} @ inputs: let
|
||||||
{ self, ... }@inputs:
|
permittedPackages = [
|
||||||
let
|
"olm-3.2.16"
|
||||||
permittedPackages = [
|
# well done dotnet...
|
||||||
"olm-3.2.16"
|
# this is just for omnisharp
|
||||||
# well done dotnet...
|
"dotnet-core-combined"
|
||||||
# this is just for omnisharp
|
"dotnet-wrapped-combined"
|
||||||
"dotnet-core-combined"
|
"dotnet-combined"
|
||||||
"dotnet-wrapped-combined"
|
"dotnet-sdk-6.0.428"
|
||||||
"dotnet-combined"
|
"dotnet-sdk-wrapped-6.0.428"
|
||||||
"dotnet-sdk-6.0.428"
|
"dotnet-sdk-6.0.136"
|
||||||
"dotnet-sdk-wrapped-6.0.428"
|
"dotnet-sdk-wrapped-6.0.136"
|
||||||
"dotnet-sdk-6.0.136"
|
"dotnet-sdk-7.0.120"
|
||||||
"dotnet-sdk-wrapped-6.0.136"
|
"dotnet-sdk-wrapped-7.0.120"
|
||||||
"dotnet-sdk-7.0.120"
|
"dotnet-sdk-7.0.410"
|
||||||
"dotnet-sdk-wrapped-7.0.120"
|
"dotnet-sdk-wrapped-7.0.410"
|
||||||
"dotnet-sdk-7.0.410"
|
"jitsi-meet-1.0.8043"
|
||||||
"dotnet-sdk-wrapped-7.0.410"
|
"nextcloud-27.1.11"
|
||||||
"jitsi-meet-1.0.8043"
|
];
|
||||||
"nextcloud-27.1.11"
|
stable = import inputs.stable {
|
||||||
];
|
system = "x86_64-linux";
|
||||||
stable = import inputs.stable {
|
config = {
|
||||||
system = "x86_64-linux";
|
allowUnfree = true;
|
||||||
config = {
|
permittedInsecurePackages = permittedPackages;
|
||||||
allowUnfree = true;
|
|
||||||
allowBroken = true;
|
|
||||||
permittedInsecurePackages = permittedPackages;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
pkgs = import inputs.nixpkgs {
|
|
||||||
system = "x86_64-linux";
|
|
||||||
config = {
|
|
||||||
allowUnsupportedSystem = true;
|
|
||||||
permittedInsecurePackages = permittedPackages;
|
|
||||||
allowBroken = true;
|
|
||||||
allowUnfree = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
in
|
|
||||||
rec {
|
|
||||||
dashNixLib = import ./lib {
|
|
||||||
inherit
|
|
||||||
self
|
|
||||||
inputs
|
|
||||||
pkgs
|
|
||||||
stable
|
|
||||||
;
|
|
||||||
lib = inputs.nixpkgs.lib;
|
|
||||||
};
|
|
||||||
docs = import ./docs {
|
|
||||||
inherit inputs pkgs stable;
|
|
||||||
lib = inputs.nixpkgs.lib;
|
|
||||||
build_systems = dashNixLib.build_systems;
|
|
||||||
};
|
|
||||||
dashNixInputs = inputs;
|
|
||||||
stablePkgs = stable;
|
|
||||||
unstablePkgs = pkgs;
|
|
||||||
modules = ./modules;
|
|
||||||
iso = dashNixLib.buildIso.config.system.build.isoImage;
|
|
||||||
};
|
};
|
||||||
|
pkgs = import inputs.nixpkgs {
|
||||||
|
system = "x86_64-linux";
|
||||||
|
config = {
|
||||||
|
allowUnsupportedSystem = true;
|
||||||
|
permittedInsecurePackages = permittedPackages;
|
||||||
|
allowBroken = true;
|
||||||
|
allowUnfree = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
in rec {
|
||||||
|
dashNixLib = import ./lib {
|
||||||
|
inherit
|
||||||
|
self
|
||||||
|
inputs
|
||||||
|
pkgs
|
||||||
|
stable
|
||||||
|
;
|
||||||
|
lib = inputs.nixpkgs.lib;
|
||||||
|
};
|
||||||
|
docs = import ./docs {
|
||||||
|
inherit inputs pkgs stable;
|
||||||
|
lib = inputs.nixpkgs.lib;
|
||||||
|
build_systems = dashNixLib.build_systems;
|
||||||
|
};
|
||||||
|
dashNixInputs = inputs;
|
||||||
|
stablePkgs = stable;
|
||||||
|
unstablePkgs = pkgs;
|
||||||
|
modules = ./modules;
|
||||||
|
iso = dashNixLib.buildIso.config.system.build.isoImage;
|
||||||
|
};
|
||||||
|
|
||||||
nixConfig = {
|
nixConfig = {
|
||||||
builders-use-substitutes = true;
|
builders-use-substitutes = true;
|
||||||
|
|
|
||||||
|
|
@ -2,11 +2,9 @@
|
||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}:
|
}: let
|
||||||
let
|
|
||||||
username = config.conf.username;
|
username = config.conf.username;
|
||||||
in
|
in {
|
||||||
{
|
|
||||||
manual = {
|
manual = {
|
||||||
html.enable = false;
|
html.enable = false;
|
||||||
json.enable = false;
|
json.enable = false;
|
||||||
|
|
@ -18,7 +16,7 @@ in
|
||||||
home = {
|
home = {
|
||||||
username = username;
|
username = username;
|
||||||
homeDirectory = "/home/${username}";
|
homeDirectory = "/home/${username}";
|
||||||
sessionPath = [ "$HOME/.cargo/bin" ];
|
sessionPath = ["$HOME/.cargo/bin"];
|
||||||
|
|
||||||
enableNixpkgsReleaseCheck = false;
|
enableNixpkgsReleaseCheck = false;
|
||||||
sessionVariables = {
|
sessionVariables = {
|
||||||
|
|
|
||||||
|
|
@ -1,22 +1,21 @@
|
||||||
{
|
{
|
||||||
inputs,
|
|
||||||
pkgs,
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
mod,
|
|
||||||
additionalHomeConfig,
|
additionalHomeConfig,
|
||||||
homeMods,
|
|
||||||
additionalHomeMods,
|
additionalHomeMods,
|
||||||
additionalInputs,
|
additionalInputs,
|
||||||
|
config,
|
||||||
|
homeMods,
|
||||||
|
inputs,
|
||||||
|
lib,
|
||||||
|
mod,
|
||||||
|
pkgs,
|
||||||
root,
|
root,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
{
|
|
||||||
xdg = {
|
xdg = {
|
||||||
portal.config.common.default = "*";
|
portal.config.common.default = "*";
|
||||||
portal = {
|
portal = {
|
||||||
enable = true;
|
enable = true;
|
||||||
extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
|
extraPortals = [pkgs.xdg-desktop-portal-gtk];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
home-manager = {
|
home-manager = {
|
||||||
|
|
|
||||||
|
|
@ -4,53 +4,56 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}:
|
}: let
|
||||||
let
|
|
||||||
username = config.mods.nextcloud.username;
|
username = config.mods.nextcloud.username;
|
||||||
password =
|
password =
|
||||||
if (config.sops.secrets ? nextcloud.path) then config.sops.secrets.nextcloud.path else "";
|
if (config.sops.secrets ? nextcloud.path)
|
||||||
|
then config.sops.secrets.nextcloud.path
|
||||||
|
else "";
|
||||||
url = config.mods.nextcloud.url;
|
url = config.mods.nextcloud.url;
|
||||||
synclist = config.mods.nextcloud.synclist;
|
synclist = config.mods.nextcloud.synclist;
|
||||||
in
|
in
|
||||||
lib.mkIf config.mods.nextcloud.enable {
|
lib.mkIf config.mods.nextcloud.enable {
|
||||||
systemd.user = {
|
systemd.user = {
|
||||||
services = (
|
services = (
|
||||||
builtins.listToAttrs (
|
builtins.listToAttrs (
|
||||||
map (opts: {
|
map (opts: {
|
||||||
name = "${opts.name}";
|
name = "${opts.name}";
|
||||||
value = {
|
value = {
|
||||||
Unit = {
|
Unit = {
|
||||||
Description = "Auto sync Nextcloud";
|
Description = "Auto sync Nextcloud";
|
||||||
After = "network-online.target";
|
After = "network-online.target";
|
||||||
|
};
|
||||||
|
Service = {
|
||||||
|
Type = "simple";
|
||||||
|
ExecStart = "${pkgs.bash}/bin/bash -c '${pkgs.nextcloud-client}/bin/nextcloudcmd -h --path ${opts.remote} ${opts.local} https://${username}:$(bat ${password})@${url}'";
|
||||||
|
TimeoutStopSec = "180";
|
||||||
|
KillMode = "process";
|
||||||
|
KillSignal = "SIGINT";
|
||||||
|
};
|
||||||
|
Install.WantedBy = ["multi-user.target"];
|
||||||
};
|
};
|
||||||
Service = {
|
})
|
||||||
Type = "simple";
|
synclist
|
||||||
ExecStart = "${pkgs.bash}/bin/bash -c '${pkgs.nextcloud-client}/bin/nextcloudcmd -h --path ${opts.remote} ${opts.local} https://${username}:$(bat ${password})@${url}'";
|
)
|
||||||
TimeoutStopSec = "180";
|
);
|
||||||
KillMode = "process";
|
timers = (
|
||||||
KillSignal = "SIGINT";
|
builtins.listToAttrs (
|
||||||
|
map (opts: {
|
||||||
|
name = "${opts.name}";
|
||||||
|
value = {
|
||||||
|
Unit.Description = "Automatic sync files with Nextcloud when booted up after 1 minute then rerun every 60 minutes";
|
||||||
|
Timer.OnBootSec = "1min";
|
||||||
|
Timer.OnUnitActiveSec = "60min";
|
||||||
|
Install.WantedBy = [
|
||||||
|
"multi-user.target"
|
||||||
|
"timers.target"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
Install.WantedBy = [ "multi-user.target" ];
|
})
|
||||||
};
|
synclist
|
||||||
}) synclist
|
)
|
||||||
)
|
);
|
||||||
);
|
startServices = true;
|
||||||
timers = (
|
};
|
||||||
builtins.listToAttrs (
|
}
|
||||||
map (opts: {
|
|
||||||
name = "${opts.name}";
|
|
||||||
value = {
|
|
||||||
Unit.Description = "Automatic sync files with Nextcloud when booted up after 1 minute then rerun every 60 minutes";
|
|
||||||
Timer.OnBootSec = "1min";
|
|
||||||
Timer.OnUnitActiveSec = "60min";
|
|
||||||
Install.WantedBy = [
|
|
||||||
"multi-user.target"
|
|
||||||
"timers.target"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}) synclist
|
|
||||||
)
|
|
||||||
);
|
|
||||||
startServices = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -6,19 +6,16 @@
|
||||||
lib,
|
lib,
|
||||||
inputs,
|
inputs,
|
||||||
...
|
...
|
||||||
}:
|
}: let
|
||||||
let
|
base16 = pkgs.callPackage inputs.base16.lib {};
|
||||||
base16 = pkgs.callPackage inputs.base16.lib { };
|
|
||||||
|
|
||||||
baseScheme = (base16.mkSchemeAttrs config.stylix.base16Scheme);
|
baseScheme = base16.mkSchemeAttrs config.stylix.base16Scheme;
|
||||||
power =
|
power = number: powerIndex:
|
||||||
number: powerIndex:
|
if powerIndex == 1
|
||||||
if powerIndex == 1 then
|
then number
|
||||||
number
|
else if powerIndex == 0
|
||||||
else if powerIndex == 0 then
|
then 1
|
||||||
1
|
else number * power number (powerIndex - 1);
|
||||||
else
|
|
||||||
number * power number (powerIndex - 1);
|
|
||||||
|
|
||||||
lookupTable = powerIndex: {
|
lookupTable = powerIndex: {
|
||||||
"0" = 0 * (power 16 powerIndex);
|
"0" = 0 * (power 16 powerIndex);
|
||||||
|
|
@ -39,16 +36,14 @@ let
|
||||||
"f" = 15 * (power 16 powerIndex);
|
"f" = 15 * (power 16 powerIndex);
|
||||||
};
|
};
|
||||||
|
|
||||||
convertHex =
|
convertHex = hexChars:
|
||||||
hexChars:
|
|
||||||
recombineColors [
|
recombineColors [
|
||||||
(convertColor (lib.lists.take 2 hexChars))
|
(convertColor (lib.lists.take 2 hexChars))
|
||||||
(convertColor (lib.lists.take 2 (lib.lists.drop 2 hexChars)))
|
(convertColor (lib.lists.take 2 (lib.lists.drop 2 hexChars)))
|
||||||
(convertColor (lib.lists.take 2 (lib.lists.drop 4 hexChars)))
|
(convertColor (lib.lists.take 2 (lib.lists.drop 4 hexChars)))
|
||||||
];
|
];
|
||||||
|
|
||||||
convertColor =
|
convertColor = color: (lookupTable 1).${(lib.lists.head color)} + (lookupTable 0).${(lib.lists.last color)};
|
||||||
color: (lookupTable 1).${(lib.lists.head color)} + (lookupTable 0).${(lib.lists.last color)};
|
|
||||||
recombineColors = colors: lib.lists.foldr (a: b: (toString a) + "," + (toString b)) "end" colors;
|
recombineColors = colors: lib.lists.foldr (a: b: (toString a) + "," + (toString b)) "end" colors;
|
||||||
|
|
||||||
scheme = {
|
scheme = {
|
||||||
|
|
@ -101,9 +96,7 @@ let
|
||||||
convertHex (lib.strings.stringToCharacters baseScheme.base0F)
|
convertHex (lib.strings.stringToCharacters baseScheme.base0F)
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
in {
|
||||||
in
|
|
||||||
{
|
|
||||||
# temp
|
# temp
|
||||||
# crust -> surface1
|
# crust -> surface1
|
||||||
# subtext0 -> surface2
|
# subtext0 -> surface2
|
||||||
|
|
|
||||||
|
|
@ -3,16 +3,14 @@
|
||||||
inputs,
|
inputs,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}: let
|
||||||
let
|
|
||||||
# at time of using this here, stylix might not be evaluated yet
|
# at time of using this here, stylix might not be evaluated yet
|
||||||
# hence ensure it is by using base16 mkSchemeAttrs
|
# hence ensure it is by using base16 mkSchemeAttrs
|
||||||
base16 = pkgs.callPackage inputs.base16.lib { };
|
base16 = pkgs.callPackage inputs.base16.lib {};
|
||||||
scheme = (base16.mkSchemeAttrs config.stylix.base16Scheme);
|
scheme = base16.mkSchemeAttrs config.stylix.base16Scheme;
|
||||||
in
|
in {
|
||||||
{
|
|
||||||
xdg.configFile."oxiced/theme.toml" = {
|
xdg.configFile."oxiced/theme.toml" = {
|
||||||
source = (pkgs.formats.toml { }).generate "oxiced" {
|
source = (pkgs.formats.toml {}).generate "oxiced" {
|
||||||
name = scheme.scheme;
|
name = scheme.scheme;
|
||||||
base00 = scheme.base00;
|
base00 = scheme.base00;
|
||||||
base01 = scheme.base01;
|
base01 = scheme.base01;
|
||||||
|
|
|
||||||
|
|
@ -4,23 +4,25 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}:
|
}: let
|
||||||
let
|
|
||||||
username = config.conf.username;
|
username = config.conf.username;
|
||||||
# at time of using this here, stylix might not be evaluated yet
|
# at time of using this here, stylix might not be evaluated yet
|
||||||
# hence ensure it is by using base16 mkSchemeAttrs
|
# hence ensure it is by using base16 mkSchemeAttrs
|
||||||
base16 = pkgs.callPackage inputs.base16.lib { };
|
base16 = pkgs.callPackage inputs.base16.lib {};
|
||||||
scheme = (base16.mkSchemeAttrs config.stylix.base16Scheme);
|
scheme = base16.mkSchemeAttrs config.stylix.base16Scheme;
|
||||||
# active_colors=#ffc0caf5, #${scheme.base00}, #ff373949, #ff2b2c3b, #ff1a1b26, #ff2b2c3b, #ffc0caf5, #ffc0caf5, #ffc0caf5, #ff1a1b26, #ff1a1b26, #19000000, #ff2b2c3b, #ffc0caf5, #ff3584e4, #ff1b6acb, #ff1a1b26, #ff242530, #ff1a1b26, #ffc0caf5, #ffc0caf5
|
# active_colors=#ffc0caf5, #${scheme.base00}, #ff373949, #ff2b2c3b, #ff1a1b26, #ff2b2c3b, #ffc0caf5, #ffc0caf5, #ffc0caf5, #ff1a1b26, #ff1a1b26, #19000000, #ff2b2c3b, #ffc0caf5, #ff3584e4, #ff1b6acb, #ff1a1b26, #ff242530, #ff1a1b26, #ffc0caf5, #ffc0caf5
|
||||||
# disabled_colors=#ff6d728d, #${scheme.base00}, #ff373949, #ff2b2c3b, #ff1a1b26, #ff2b2c3b, #ff6d728d, #ff6d728d, #ff6d728d, #ff1a1b26, #ff1a1b26, #19000000, #ff2b2c3b, #ff6d728d, #ff3584e4, #ff1b6acb, #ff1a1b26, #ff242530, #ff1a1b26, #ff6d728d, #ff6d728d
|
# disabled_colors=#ff6d728d, #${scheme.base00}, #ff373949, #ff2b2c3b, #ff1a1b26, #ff2b2c3b, #ff6d728d, #ff6d728d, #ff6d728d, #ff1a1b26, #ff1a1b26, #19000000, #ff2b2c3b, #ff6d728d, #ff3584e4, #ff1b6acb, #ff1a1b26, #ff242530, #ff1a1b26, #ff6d728d, #ff6d728d
|
||||||
# inactive_colors=#ff6d728d, #${scheme.base00}, #ff373949, #ff2b2c3b, #ff1a1b26, #ff2b2c3b, #ff6d728d, #ff6d728d, #ff6d728d, #ff1a1b26, #ff1a1b26, #19000000, #ff2b2c3b, #ff6d728d, #ff3584e4, #ff1b6acb, #ff1a1b26, #ff242530, #ff1a1b26, #ff6d728d, #ff6d728d
|
# inactive_colors=#ff6d728d, #${scheme.base00}, #ff373949, #ff2b2c3b, #ff1a1b26, #ff2b2c3b, #ff6d728d, #ff6d728d, #ff6d728d, #ff1a1b26, #ff1a1b26, #19000000, #ff2b2c3b, #ff6d728d, #ff3584e4, #ff1b6acb, #ff1a1b26, #ff242530, #ff1a1b26, #ff6d728d, #ff6d728d
|
||||||
color = ''
|
color = ''
|
||||||
|
|
||||||
|
|
||||||
[ColorScheme]
|
[ColorScheme]
|
||||||
active_colors=#ff${scheme.base05}, #ff${scheme.base01}, #ff${scheme.base01}, #ff${scheme.base01}, #ff${scheme.base00}, #ff${scheme.base00}, #ff${scheme.base05}, #ff${scheme.base04}, #ff${scheme.base05}, #ff${scheme.base00}, #ff${scheme.base00}, #00${scheme.base01}, #ff${scheme.base02}, #ff${scheme.base04}, #ff${scheme.base08}, #ff${scheme.base04}, #ff${scheme.base01}, #ff${scheme.base00}, #ff${scheme.base01}, #ff${scheme.base05}, #ff${scheme.base04}
|
active_colors=#ff${scheme.base05}, #ff${scheme.base01}, #ff${scheme.base01}, #ff${scheme.base01}, #ff${scheme.base00}, #ff${scheme.base00}, #ff${scheme.base05}, #ff${scheme.base04}, #ff${scheme.base05}, #ff${scheme.base00}, #ff${scheme.base00}, #00${scheme.base01}, #ff${scheme.base02}, #ff${scheme.base04}, #ff${scheme.base08}, #ff${scheme.base04}, #ff${scheme.base01}, #ff${scheme.base00}, #ff${scheme.base01}, #ff${scheme.base05}, #ff${scheme.base04}
|
||||||
disabled_colors=#ff${scheme.base05}, #ff${scheme.base01}, #ff${scheme.base01}, #ff${scheme.base01}, #ff${scheme.base00}, #ff${scheme.base00}, #ff${scheme.base05}, #ff${scheme.base04}, #ff${scheme.base05}, #ff${scheme.base00}, #ff${scheme.base00}, #00${scheme.base01}, #ff${scheme.base02}, #ff${scheme.base04}, #ff${scheme.base08}, #ff${scheme.base04}, #ff${scheme.base01}, #ff${scheme.base00}, #ff${scheme.base01}, #ff${scheme.base05}, #ff${scheme.base04}
|
disabled_colors=#ff${scheme.base05}, #ff${scheme.base01}, #ff${scheme.base01}, #ff${scheme.base01}, #ff${scheme.base00}, #ff${scheme.base00}, #ff${scheme.base05}, #ff${scheme.base04}, #ff${scheme.base05}, #ff${scheme.base00}, #ff${scheme.base00}, #00${scheme.base01}, #ff${scheme.base02}, #ff${scheme.base04}, #ff${scheme.base08}, #ff${scheme.base04}, #ff${scheme.base01}, #ff${scheme.base00}, #ff${scheme.base01}, #ff${scheme.base05}, #ff${scheme.base04}
|
||||||
inactive_colors=#ff${scheme.base05}, #ff${scheme.base01}, #ff${scheme.base01}, #ff${scheme.base01}, #ff${scheme.base00}, #ff${scheme.base00}, #ff${scheme.base05}, #ff${scheme.base04}, #ff${scheme.base05}, #ff${scheme.base00}, #ff${scheme.base00}, #00${scheme.base01}, #ff${scheme.base02}, #ff${scheme.base04}, #ff${scheme.base08}, #ff${scheme.base04}, #ff${scheme.base01}, #ff${scheme.base00}, #ff${scheme.base01}, #ff${scheme.base05}, #ff${scheme.base04}
|
inactive_colors=#ff${scheme.base05}, #ff${scheme.base01}, #ff${scheme.base01}, #ff${scheme.base01}, #ff${scheme.base00}, #ff${scheme.base00}, #ff${scheme.base05}, #ff${scheme.base04}, #ff${scheme.base05}, #ff${scheme.base00}, #ff${scheme.base00}, #00${scheme.base01}, #ff${scheme.base02}, #ff${scheme.base04}, #ff${scheme.base08}, #ff${scheme.base04}, #ff${scheme.base01}, #ff${scheme.base00}, #ff${scheme.base01}, #ff${scheme.base05}, #ff${scheme.base04}
|
||||||
'';
|
'';
|
||||||
qss = ''
|
qss = ''
|
||||||
|
|
||||||
QTabBar::tab:selected {
|
QTabBar::tab:selected {
|
||||||
color: palette(highlight);
|
color: palette(highlight);
|
||||||
}
|
}
|
||||||
|
|
@ -28,33 +30,7 @@ let
|
||||||
border: none;
|
border: none;
|
||||||
}
|
}
|
||||||
'';
|
'';
|
||||||
|
in {
|
||||||
## test
|
|
||||||
#cfg = config.stylix.targets.qt;
|
|
||||||
kvconfig = config.lib.stylix.colors {
|
|
||||||
template = ./kvconfig.mustache;
|
|
||||||
extension = ".kvconfig";
|
|
||||||
};
|
|
||||||
svg = config.lib.stylix.colors {
|
|
||||||
template = ./kvantum-svg.mustache;
|
|
||||||
extension = "svg";
|
|
||||||
};
|
|
||||||
kvantumPackage = pkgs.runCommandLocal "base16-kvantum" { } ''
|
|
||||||
directory="$out/share/Kvantum/Base16Kvantum"
|
|
||||||
mkdir --parents "$directory"
|
|
||||||
cat ${kvconfig} >>"$directory/Base16Kvantum.kvconfig"
|
|
||||||
cat ${svg} >>"$directory/Base16Kvantum.svg"
|
|
||||||
'';
|
|
||||||
|
|
||||||
xdg.configFile."Kvantum/kvantum.kvconfig".source =
|
|
||||||
(pkgs.formats.ini { }).generate "kvantum.kvconfig"
|
|
||||||
{
|
|
||||||
General.theme = "Base16Kvantum";
|
|
||||||
};
|
|
||||||
|
|
||||||
xdg.configFile."Kvantum/Base16Kvantum".source = "${kvantumPackage}/share/Kvantum/Base16Kvantum";
|
|
||||||
in
|
|
||||||
{
|
|
||||||
xdg.configFile."qt5ct/colors/tokyonight.conf" = {
|
xdg.configFile."qt5ct/colors/tokyonight.conf" = {
|
||||||
text = "${color}";
|
text = "${color}";
|
||||||
};
|
};
|
||||||
|
|
@ -64,34 +40,18 @@ in
|
||||||
xdg.configFile."qt5ct/qss/tab.qss" = {
|
xdg.configFile."qt5ct/qss/tab.qss" = {
|
||||||
text = "${qss}";
|
text = "${qss}";
|
||||||
};
|
};
|
||||||
|
stylix.targets.qt = {
|
||||||
|
enable = false;
|
||||||
|
};
|
||||||
qt = {
|
qt = {
|
||||||
enable = true;
|
enable = true;
|
||||||
style.package = pkgs.libsForQt5.breeze-qt5;
|
style.package = pkgs.libsForQt5.breeze-qt5;
|
||||||
style.name = lib.mkForce "breeze-dark";
|
style.name = lib.mkForce "breeze-dark";
|
||||||
};
|
};
|
||||||
|
|
||||||
# ## test
|
|
||||||
# xdg.configFile."Kvantum/kvantum.kvconfig".source = (pkgs.formats.ini {}).generate "kvantum.kvconfig" {
|
|
||||||
# General.theme = "Base16Kvantum";
|
|
||||||
# };
|
|
||||||
|
|
||||||
# xdg.configFile."Kvantum/Base16Kvantum".source = "${kvantumPackage}/share/Kvantum/Base16Kvantum";
|
|
||||||
|
|
||||||
# xdg.configFile."qt5ct/qt5ct.conf".text = ''
|
|
||||||
# [Appearance]
|
|
||||||
# style=kvantum
|
|
||||||
# '';
|
|
||||||
|
|
||||||
# #icon_theme=${cfg.iconThemeName}
|
|
||||||
|
|
||||||
# xdg.configFile."qt6ct/qt6ct.conf".text = ''
|
|
||||||
# [Appearance]
|
|
||||||
# style=kvantum
|
|
||||||
# '';
|
|
||||||
# #icon_theme=${cfg.iconThemeName}
|
|
||||||
|
|
||||||
xdg.configFile."qt5ct/qt5ct.conf" = {
|
xdg.configFile."qt5ct/qt5ct.conf" = {
|
||||||
text = ''
|
text = ''
|
||||||
|
|
||||||
[Appearance]
|
[Appearance]
|
||||||
color_scheme_path=/home/${username}/.config/qt5ct/colors/tokyonight.conf
|
color_scheme_path=/home/${username}/.config/qt5ct/colors/tokyonight.conf
|
||||||
custom_palette=true
|
custom_palette=true
|
||||||
|
|
@ -128,6 +88,7 @@ in
|
||||||
};
|
};
|
||||||
xdg.configFile."qt6ct/qt6ct.conf" = {
|
xdg.configFile."qt6ct/qt6ct.conf" = {
|
||||||
text = ''
|
text = ''
|
||||||
|
|
||||||
[Appearance]
|
[Appearance]
|
||||||
color_scheme_path=/home/${username}/.config/qt6ct/colors/tokyonight.conf
|
color_scheme_path=/home/${username}/.config/qt6ct/colors/tokyonight.conf
|
||||||
custom_palette=true
|
custom_palette=true
|
||||||
|
|
|
||||||
|
|
@ -4,10 +4,8 @@
|
||||||
modulesPath,
|
modulesPath,
|
||||||
self,
|
self,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
{
|
imports = ["${modulesPath}/installer/cd-dvd/installation-cd-minimal.nix"];
|
||||||
|
|
||||||
imports = [ "${modulesPath}/installer/cd-dvd/installation-cd-minimal.nix" ];
|
|
||||||
nixpkgs.hostPlatform = {
|
nixpkgs.hostPlatform = {
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
};
|
};
|
||||||
|
|
|
||||||
192
lib/default.nix
192
lib/default.nix
|
|
@ -1,32 +1,31 @@
|
||||||
{
|
{
|
||||||
inputs,
|
inputs,
|
||||||
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
self,
|
self,
|
||||||
stable,
|
stable,
|
||||||
lib,
|
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
{
|
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
# build_systems
|
# build_systems
|
||||||
|
|
||||||
Builds system given a list of system names which are placed within your hosts/ directory. Note that each system has its own directory in hosts/ as well.
|
Builds system given a list of system names which are placed within your hosts/ directory. Note that each system has its own directory in hosts/ as well.
|
||||||
|
|
||||||
A minimal configuration requires the file configuration.nix within each system directory, this will be the base config that is used across both NisOS and home-manager, specific optional files can also be added, hardware.nix for NisOS configuration and home.nix for home-manager configuration.
|
A minimal configuration requires the file configuration.nix within each system directory, this will be the base config that is used across both NisOS and home-manager, specific optional files can also be added, hardware.nix for NisOS configuration and home.nix for home-manager configuration.
|
||||||
|
|
||||||
The second parameter is the root of your configuration, which should be ./. in most cases.
|
The second parameter is the root of your configuration, which should be ./. in most cases.
|
||||||
|
|
||||||
`root`
|
`root`
|
||||||
|
|
||||||
: the root path of your configuration
|
: the root path of your configuration
|
||||||
|
|
||||||
# Example usage
|
# Example usage
|
||||||
:::{.example}
|
:::{.example}
|
||||||
```nix
|
```nix
|
||||||
nixosConfigurations = build_systems { root = ./.; };
|
nixosConfigurations = build_systems { root = ./.; };
|
||||||
```
|
```
|
||||||
:::
|
:::
|
||||||
*/
|
*/
|
||||||
# let
|
# let
|
||||||
# paths = builtins.readDir ;
|
# paths = builtins.readDir ;
|
||||||
|
|
@ -35,89 +34,102 @@
|
||||||
# );
|
# );
|
||||||
|
|
||||||
# in
|
# in
|
||||||
build_systems =
|
build_systems = {
|
||||||
{
|
root,
|
||||||
root,
|
additionalMods ? {
|
||||||
additionalMods ? {
|
nixos = [];
|
||||||
nixos = [ ];
|
home = [];
|
||||||
home = [ ];
|
},
|
||||||
},
|
mods ? {
|
||||||
mods ? {
|
nixos = [
|
||||||
nixos = [
|
inputs.home-manager.nixosModules.home-manager
|
||||||
inputs.home-manager.nixosModules.home-manager
|
inputs.stylix.nixosModules.stylix
|
||||||
inputs.stylix.nixosModules.stylix
|
../base
|
||||||
../base
|
../home
|
||||||
../home
|
../modules
|
||||||
../modules
|
];
|
||||||
];
|
home = [
|
||||||
home = [
|
inputs.anyrun.homeManagerModules.default
|
||||||
inputs.anyrun.homeManagerModules.default
|
inputs.ironbar.homeManagerModules.default
|
||||||
inputs.ironbar.homeManagerModules.default
|
inputs.oxicalc.homeManagerModules.default
|
||||||
inputs.oxicalc.homeManagerModules.default
|
inputs.oxishut.homeManagerModules.default
|
||||||
inputs.oxishut.homeManagerModules.default
|
inputs.oxinoti.homeManagerModules.default
|
||||||
inputs.oxinoti.homeManagerModules.default
|
inputs.oxidash.homeManagerModules.default
|
||||||
inputs.oxidash.homeManagerModules.default
|
inputs.oxipaste.homeManagerModules.default
|
||||||
inputs.oxipaste.homeManagerModules.default
|
inputs.hyprdock.homeManagerModules.default
|
||||||
inputs.hyprdock.homeManagerModules.default
|
inputs.hyprland.homeManagerModules.default
|
||||||
inputs.hyprland.homeManagerModules.default
|
inputs.reset.homeManagerModules.default
|
||||||
inputs.reset.homeManagerModules.default
|
inputs.nix-flatpak.homeManagerModules.nix-flatpak
|
||||||
inputs.nix-flatpak.homeManagerModules.nix-flatpak
|
inputs.sops-nix.homeManagerModules.sops
|
||||||
inputs.sops-nix.homeManagerModules.sops
|
inputs.dashvim.homeManagerModules.dashvim
|
||||||
inputs.dashvim.homeManagerModules.dashvim
|
../modules
|
||||||
../modules
|
];
|
||||||
];
|
},
|
||||||
},
|
additionalInputs ? {},
|
||||||
additionalInputs ? { },
|
overridePkgs ? false,
|
||||||
overridePkgs ? false,
|
...
|
||||||
...
|
}:
|
||||||
}:
|
|
||||||
builtins.listToAttrs (
|
builtins.listToAttrs (
|
||||||
map
|
map
|
||||||
(name: {
|
(name: {
|
||||||
name = name;
|
name = name;
|
||||||
value =
|
value = let
|
||||||
let
|
mod = root + /hosts/${name}/configuration.nix;
|
||||||
mod = root + /hosts/${name}/configuration.nix;
|
additionalNixosConfig = root + /hosts/${name}/hardware.nix;
|
||||||
additionalNixosConfig = root + /hosts/${name}/hardware.nix;
|
additionalHomeConfig = root + /hosts/${name}/home.nix;
|
||||||
additionalHomeConfig = root + /hosts/${name}/home.nix;
|
args = {
|
||||||
in
|
inherit
|
||||||
inputs.nixpkgs.lib.nixosSystem {
|
self
|
||||||
specialArgs = {
|
inputs
|
||||||
inherit
|
mod
|
||||||
self
|
additionalHomeConfig
|
||||||
inputs
|
root
|
||||||
mod
|
;
|
||||||
additionalHomeConfig
|
pkgs = lib.mkForce (
|
||||||
root
|
if overridePkgs
|
||||||
;
|
then stable
|
||||||
pkgs = if overridePkgs then stable else pkgs;
|
else pkgs
|
||||||
alternativePkgs = if overridePkgs then pkgs else stable;
|
);
|
||||||
hostName = name;
|
alternativePkgs =
|
||||||
homeMods = mods.home;
|
if overridePkgs
|
||||||
additionalHomeMods = additionalMods.home;
|
then pkgs
|
||||||
additionalInputs = additionalInputs;
|
else stable;
|
||||||
};
|
hostName = name;
|
||||||
modules =
|
homeMods = mods.home;
|
||||||
[ mod ]
|
additionalHomeMods = additionalMods.home;
|
||||||
++ mods.nixos
|
additionalInputs = additionalInputs;
|
||||||
++ additionalMods.nixos
|
};
|
||||||
++ inputs.nixpkgs.lib.optional (builtins.pathExists additionalNixosConfig) additionalNixosConfig
|
in
|
||||||
++ inputs.nixpkgs.lib.optional (builtins.pathExists mod) mod;
|
inputs.nixpkgs.lib.nixosSystem {
|
||||||
};
|
modules =
|
||||||
})
|
[
|
||||||
(
|
{_module.args = args;}
|
||||||
lib.lists.remove "" (
|
mod
|
||||||
lib.attrsets.mapAttrsToList (name: fType: if fType == "directory" then name else "") (
|
]
|
||||||
builtins.readDir (root + /hosts)
|
++ mods.nixos
|
||||||
)
|
++ additionalMods.nixos
|
||||||
|
++ inputs.nixpkgs.lib.optional (builtins.pathExists additionalNixosConfig) additionalNixosConfig
|
||||||
|
++ inputs.nixpkgs.lib.optional (builtins.pathExists mod) mod;
|
||||||
|
};
|
||||||
|
})
|
||||||
|
(
|
||||||
|
lib.lists.remove "" (
|
||||||
|
lib.attrsets.mapAttrsToList (name: fType:
|
||||||
|
if fType == "directory"
|
||||||
|
then name
|
||||||
|
else "") (
|
||||||
|
builtins.readDir (root + /hosts)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
buildIso = inputs.nixpkgs.lib.nixosSystem {
|
buildIso = inputs.nixpkgs.lib.nixosSystem {
|
||||||
specialArgs = {
|
specialArgs = {
|
||||||
inherit self inputs pkgs;
|
inherit self inputs pkgs;
|
||||||
};
|
};
|
||||||
modules = [ ../iso/configuration.nix ];
|
modules = [
|
||||||
|
../iso/configuration.nix
|
||||||
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,20 +4,16 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
options,
|
options,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
{
|
|
||||||
options.conf = {
|
options.conf = {
|
||||||
|
|
||||||
system = lib.mkOption {
|
system = lib.mkOption {
|
||||||
default = "x86_64-linux";
|
default = "x86_64-linux";
|
||||||
# no fisherprice unix support
|
# no fisherprice unix support
|
||||||
type =
|
type = with lib.types; (enum [
|
||||||
with lib.types;
|
"x86_64-linux"
|
||||||
(enum [
|
"aarch64-linux"
|
||||||
"x86_64-linux"
|
"aarch64-linux-android"
|
||||||
"aarch64-linux"
|
]);
|
||||||
"aarch64-linux-android"
|
|
||||||
]);
|
|
||||||
example = "aarch64-linux";
|
example = "aarch64-linux";
|
||||||
description = ''
|
description = ''
|
||||||
System architecture.
|
System architecture.
|
||||||
|
|
@ -27,12 +23,10 @@
|
||||||
cpu = lib.mkOption {
|
cpu = lib.mkOption {
|
||||||
# TODO: how to enable arm?
|
# TODO: how to enable arm?
|
||||||
default = "amd";
|
default = "amd";
|
||||||
type =
|
type = with lib.types; (enum [
|
||||||
with lib.types;
|
"amd"
|
||||||
(enum [
|
"intel"
|
||||||
"amd"
|
]);
|
||||||
"intel"
|
|
||||||
]);
|
|
||||||
example = "intel";
|
example = "intel";
|
||||||
description = ''
|
description = ''
|
||||||
cpu microcode.
|
cpu microcode.
|
||||||
|
|
@ -43,7 +37,7 @@
|
||||||
default = [
|
default = [
|
||||||
"video=${config.conf.defaultMonitor}:${config.conf.defaultMonitorMode}"
|
"video=${config.conf.defaultMonitor}:${config.conf.defaultMonitorMode}"
|
||||||
];
|
];
|
||||||
example = [ ];
|
example = [];
|
||||||
type = with lib.types; listOf str;
|
type = with lib.types; listOf str;
|
||||||
description = ''
|
description = ''
|
||||||
additional kernelParams passed to bootloader
|
additional kernelParams passed to bootloader
|
||||||
|
|
@ -79,7 +73,7 @@
|
||||||
|
|
||||||
ironbar = {
|
ironbar = {
|
||||||
modules = lib.mkOption {
|
modules = lib.mkOption {
|
||||||
default = [ ];
|
default = [];
|
||||||
example = [
|
example = [
|
||||||
{
|
{
|
||||||
type = "upower";
|
type = "upower";
|
||||||
|
|
@ -94,8 +88,8 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
bootParams = lib.mkOption {
|
bootParams = lib.mkOption {
|
||||||
default = [ ];
|
default = [];
|
||||||
example = [ "resume=something" ];
|
example = ["resume=something"];
|
||||||
type = with lib.types; listOf str;
|
type = with lib.types; listOf str;
|
||||||
description = ''
|
description = ''
|
||||||
Boot params
|
Boot params
|
||||||
|
|
@ -175,7 +169,6 @@
|
||||||
Home state version
|
Home state version
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
config =
|
config =
|
||||||
|
|
|
||||||
|
|
@ -3,9 +3,7 @@
|
||||||
config,
|
config,
|
||||||
options,
|
options,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
{
|
|
||||||
|
|
||||||
options.mods = {
|
options.mods = {
|
||||||
acpid.enable = lib.mkOption {
|
acpid.enable = lib.mkOption {
|
||||||
default = false;
|
default = false;
|
||||||
|
|
@ -18,6 +16,6 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
config = lib.mkIf config.mods.acpid.enable (
|
config = lib.mkIf config.mods.acpid.enable (
|
||||||
lib.optionalAttrs (options ? virtualisation.virtualbox.host) { services.acpid.enable = true; }
|
lib.optionalAttrs (options ? virtualisation.virtualbox.host) {services.acpid.enable = true;}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,10 +3,8 @@
|
||||||
lib,
|
lib,
|
||||||
options,
|
options,
|
||||||
pkgs,
|
pkgs,
|
||||||
inputs,
|
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
{
|
|
||||||
options.mods = {
|
options.mods = {
|
||||||
basePackages = {
|
basePackages = {
|
||||||
enable = lib.mkOption {
|
enable = lib.mkOption {
|
||||||
|
|
@ -18,8 +16,8 @@
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
additionalPackages = lib.mkOption {
|
additionalPackages = lib.mkOption {
|
||||||
default = [ ];
|
default = [];
|
||||||
example = [ pkgs.openssl ];
|
example = [pkgs.openssl];
|
||||||
type = with lib.types; listOf package;
|
type = with lib.types; listOf package;
|
||||||
description = ''
|
description = ''
|
||||||
Additional packages to install.
|
Additional packages to install.
|
||||||
|
|
@ -27,16 +25,16 @@
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
specialPrograms = lib.mkOption {
|
specialPrograms = lib.mkOption {
|
||||||
default = { };
|
default = {};
|
||||||
example = { };
|
example = {};
|
||||||
type = with lib.types; attrsOf anything;
|
type = with lib.types; attrsOf anything;
|
||||||
description = ''
|
description = ''
|
||||||
special program configuration to be added which require programs.something notation.
|
special program configuration to be added which require programs.something notation.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
specialServices = lib.mkOption {
|
specialServices = lib.mkOption {
|
||||||
default = { };
|
default = {};
|
||||||
example = { };
|
example = {};
|
||||||
type = with lib.types; attrsOf anything;
|
type = with lib.types; attrsOf anything;
|
||||||
description = ''
|
description = ''
|
||||||
special services configuration to be added which require an services.something notation.
|
special services configuration to be added which require an services.something notation.
|
||||||
|
|
@ -47,42 +45,43 @@
|
||||||
|
|
||||||
config = lib.optionalAttrs (options ? environment.systemPackages) {
|
config = lib.optionalAttrs (options ? environment.systemPackages) {
|
||||||
environment.systemPackages =
|
environment.systemPackages =
|
||||||
if config.mods.basePackages.enable then
|
if config.mods.basePackages.enable
|
||||||
|
then
|
||||||
with pkgs;
|
with pkgs;
|
||||||
[
|
[
|
||||||
adwaita-icon-theme
|
adwaita-icon-theme
|
||||||
dbus
|
dbus
|
||||||
dconf
|
dconf
|
||||||
direnv
|
direnv
|
||||||
glib
|
glib
|
||||||
gnome.nixos-gsettings-overrides
|
gnome.nixos-gsettings-overrides
|
||||||
gsettings-desktop-schemas
|
gsettings-desktop-schemas
|
||||||
gtk-layer-shell
|
gtk-layer-shell
|
||||||
gtk3
|
gtk3
|
||||||
gtk4
|
gtk4
|
||||||
gtk4-layer-shell
|
gtk4-layer-shell
|
||||||
hicolor-icon-theme
|
hicolor-icon-theme
|
||||||
icon-library
|
icon-library
|
||||||
kdePackages.breeze-icons
|
kdePackages.breeze-icons
|
||||||
kdePackages.breeze
|
kdePackages.breeze
|
||||||
libsForQt5.breeze-qt5
|
libsForQt5.breeze-qt5
|
||||||
kdePackages.qtstyleplugin-kvantum
|
kdePackages.qtstyleplugin-kvantum
|
||||||
libsForQt5.qtstyleplugin-kvantum
|
libsForQt5.qtstyleplugin-kvantum
|
||||||
libadwaita
|
libadwaita
|
||||||
libxkbcommon
|
libxkbcommon
|
||||||
nixfmt-rfc-style
|
alejandra
|
||||||
openssl
|
openssl
|
||||||
seahorse
|
seahorse
|
||||||
upower
|
upower
|
||||||
xorg.xkbutils
|
xorg.xkbutils
|
||||||
]
|
]
|
||||||
++ config.mods.basePackages.additionalPackages
|
++ config.mods.basePackages.additionalPackages
|
||||||
else
|
else config.mods.basePackages.additionalPackages;
|
||||||
config.mods.basePackages.additionalPackages;
|
|
||||||
|
|
||||||
gtk.iconCache.enable = false;
|
gtk.iconCache.enable = false;
|
||||||
services =
|
services =
|
||||||
if config.mods.basePackages.enable then
|
if config.mods.basePackages.enable
|
||||||
|
then
|
||||||
{
|
{
|
||||||
upower.enable = true;
|
upower.enable = true;
|
||||||
dbus = {
|
dbus = {
|
||||||
|
|
@ -95,11 +94,11 @@
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
// config.mods.basePackages.specialServices
|
// config.mods.basePackages.specialServices
|
||||||
else
|
else config.mods.basePackages.specialServices;
|
||||||
config.mods.basePackages.specialServices;
|
|
||||||
|
|
||||||
programs =
|
programs =
|
||||||
if config.mods.basePackages.enable then
|
if config.mods.basePackages.enable
|
||||||
|
then
|
||||||
{
|
{
|
||||||
nix-ld = {
|
nix-ld = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
@ -121,8 +120,6 @@
|
||||||
gnupg.agent.enable = true;
|
gnupg.agent.enable = true;
|
||||||
}
|
}
|
||||||
// config.mods.basePackages.specialPrograms
|
// config.mods.basePackages.specialPrograms
|
||||||
else
|
else config.mods.basePackages.specialPrograms;
|
||||||
config.mods.basePackages.specialPrograms;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,8 +3,7 @@
|
||||||
config,
|
config,
|
||||||
options,
|
options,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
{
|
|
||||||
options.mods = {
|
options.mods = {
|
||||||
bluetooth.enable = lib.mkOption {
|
bluetooth.enable = lib.mkOption {
|
||||||
default = false;
|
default = false;
|
||||||
|
|
|
||||||
|
|
@ -4,8 +4,7 @@
|
||||||
options,
|
options,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
{
|
|
||||||
options.mods.browser.brave = {
|
options.mods.browser.brave = {
|
||||||
enable = lib.mkOption {
|
enable = lib.mkOption {
|
||||||
default = false;
|
default = false;
|
||||||
|
|
@ -17,7 +16,7 @@
|
||||||
};
|
};
|
||||||
config = lib.mkIf config.mods.browser.brave.enable (
|
config = lib.mkIf config.mods.browser.brave.enable (
|
||||||
lib.optionalAttrs (options ? home.packages) {
|
lib.optionalAttrs (options ? home.packages) {
|
||||||
home.packages = with pkgs; [ brave ];
|
home.packages = with pkgs; [brave];
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,8 +4,7 @@
|
||||||
options,
|
options,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
{
|
|
||||||
options.mods.browser.chromium = {
|
options.mods.browser.chromium = {
|
||||||
enable = lib.mkOption {
|
enable = lib.mkOption {
|
||||||
default = false;
|
default = false;
|
||||||
|
|
@ -17,7 +16,7 @@
|
||||||
};
|
};
|
||||||
config = lib.mkIf config.mods.browser.chromium.enable (
|
config = lib.mkIf config.mods.browser.chromium.enable (
|
||||||
lib.optionalAttrs (options ? home.packages) {
|
lib.optionalAttrs (options ? home.packages) {
|
||||||
home.packages = with pkgs; [ chromium ];
|
home.packages = with pkgs; [chromium];
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,8 +3,7 @@
|
||||||
config,
|
config,
|
||||||
options,
|
options,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
{
|
|
||||||
options.mods.browser.firefox = {
|
options.mods.browser.firefox = {
|
||||||
enable = lib.mkOption {
|
enable = lib.mkOption {
|
||||||
default = false;
|
default = false;
|
||||||
|
|
@ -43,7 +42,7 @@
|
||||||
SkipOnboarding = true;
|
SkipOnboarding = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
example = { };
|
example = {};
|
||||||
type = with lib.types; attrsOf anything;
|
type = with lib.types; attrsOf anything;
|
||||||
description = "Firefox policy configuration. See https://mozilla.github.io/policy-templates/ for more information.";
|
description = "Firefox policy configuration. See https://mozilla.github.io/policy-templates/ for more information.";
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -5,8 +5,7 @@
|
||||||
system,
|
system,
|
||||||
inputs,
|
inputs,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
{
|
|
||||||
options.mods.browser.zen = {
|
options.mods.browser.zen = {
|
||||||
enable = lib.mkOption {
|
enable = lib.mkOption {
|
||||||
default = false;
|
default = false;
|
||||||
|
|
@ -18,7 +17,7 @@
|
||||||
};
|
};
|
||||||
config = lib.mkIf config.mods.browser.zen.enable (
|
config = lib.mkIf config.mods.browser.zen.enable (
|
||||||
lib.optionalAttrs (options ? home.packages) {
|
lib.optionalAttrs (options ? home.packages) {
|
||||||
home.packages = [ inputs.zen-browser.packages."${system}".default ];
|
home.packages = [inputs.zen-browser.packages."${system}".default];
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,8 +4,7 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
options,
|
options,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
{
|
|
||||||
options.mods = {
|
options.mods = {
|
||||||
coding = {
|
coding = {
|
||||||
enable = lib.mkOption {
|
enable = lib.mkOption {
|
||||||
|
|
@ -42,8 +41,8 @@
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
extensions = lib.mkOption {
|
extensions = lib.mkOption {
|
||||||
default = [ ];
|
default = [];
|
||||||
example = [ ];
|
example = [];
|
||||||
type = with lib.types; listOf package;
|
type = with lib.types; listOf package;
|
||||||
description = "Extensions to be installed";
|
description = "Extensions to be installed";
|
||||||
};
|
};
|
||||||
|
|
@ -55,8 +54,8 @@
|
||||||
description = "Use default base packages (only additionalPackages are installed if false)";
|
description = "Use default base packages (only additionalPackages are installed if false)";
|
||||||
};
|
};
|
||||||
additionalPackages = lib.mkOption {
|
additionalPackages = lib.mkOption {
|
||||||
default = [ ];
|
default = [];
|
||||||
example = [ ];
|
example = [];
|
||||||
type = with lib.types; listOf package;
|
type = with lib.types; listOf package;
|
||||||
description = "Additional packages to be installed";
|
description = "Additional packages to be installed";
|
||||||
};
|
};
|
||||||
|
|
@ -76,7 +75,7 @@
|
||||||
ghc
|
ghc
|
||||||
haskellPackages.haskell-language-server
|
haskellPackages.haskell-language-server
|
||||||
];
|
];
|
||||||
example = [ ];
|
example = [];
|
||||||
type = with lib.types; listOf package;
|
type = with lib.types; listOf package;
|
||||||
description = ''
|
description = ''
|
||||||
haskell packages
|
haskell packages
|
||||||
|
|
@ -98,7 +97,7 @@
|
||||||
tinymist
|
tinymist
|
||||||
ltex-ls
|
ltex-ls
|
||||||
];
|
];
|
||||||
example = [ ];
|
example = [];
|
||||||
type = with lib.types; listOf package;
|
type = with lib.types; listOf package;
|
||||||
description = ''
|
description = ''
|
||||||
typst packages
|
typst packages
|
||||||
|
|
@ -119,7 +118,7 @@
|
||||||
go
|
go
|
||||||
gopls
|
gopls
|
||||||
];
|
];
|
||||||
example = [ ];
|
example = [];
|
||||||
type = with lib.types; listOf package;
|
type = with lib.types; listOf package;
|
||||||
description = ''
|
description = ''
|
||||||
Go packages
|
Go packages
|
||||||
|
|
@ -136,8 +135,8 @@
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
packages = lib.mkOption {
|
packages = lib.mkOption {
|
||||||
default = with pkgs; [ rustup ];
|
default = with pkgs; [rustup];
|
||||||
example = [ ];
|
example = [];
|
||||||
type = with lib.types; listOf package;
|
type = with lib.types; listOf package;
|
||||||
description = ''
|
description = ''
|
||||||
Rust packages
|
Rust packages
|
||||||
|
|
@ -161,7 +160,7 @@
|
||||||
nodePackages.typescript-language-server
|
nodePackages.typescript-language-server
|
||||||
nodePackages.prettier
|
nodePackages.prettier
|
||||||
];
|
];
|
||||||
example = [ ];
|
example = [];
|
||||||
type = with lib.types; listOf package;
|
type = with lib.types; listOf package;
|
||||||
description = ''
|
description = ''
|
||||||
TS/JS packages
|
TS/JS packages
|
||||||
|
|
@ -182,7 +181,7 @@
|
||||||
zig
|
zig
|
||||||
zls
|
zls
|
||||||
];
|
];
|
||||||
example = [ ];
|
example = [];
|
||||||
type = with lib.types; listOf package;
|
type = with lib.types; listOf package;
|
||||||
description = ''
|
description = ''
|
||||||
zig packages
|
zig packages
|
||||||
|
|
@ -205,7 +204,7 @@
|
||||||
jdt-language-server
|
jdt-language-server
|
||||||
temurin-jre-bin
|
temurin-jre-bin
|
||||||
];
|
];
|
||||||
example = [ ];
|
example = [];
|
||||||
type = with lib.types; listOf package;
|
type = with lib.types; listOf package;
|
||||||
description = ''
|
description = ''
|
||||||
Java packages
|
Java packages
|
||||||
|
|
@ -232,7 +231,7 @@
|
||||||
fsharp
|
fsharp
|
||||||
#fsautocomplete
|
#fsautocomplete
|
||||||
];
|
];
|
||||||
example = [ ];
|
example = [];
|
||||||
type = with lib.types; listOf package;
|
type = with lib.types; listOf package;
|
||||||
description = ''
|
description = ''
|
||||||
C#/F# packages
|
C#/F# packages
|
||||||
|
|
@ -255,7 +254,7 @@
|
||||||
gcc
|
gcc
|
||||||
clang-tools
|
clang-tools
|
||||||
];
|
];
|
||||||
example = [ ];
|
example = [];
|
||||||
type = with lib.types; listOf package;
|
type = with lib.types; listOf package;
|
||||||
description = ''
|
description = ''
|
||||||
C/C++ packages
|
C/C++ packages
|
||||||
|
|
@ -278,7 +277,7 @@
|
||||||
python312Packages.python-lsp-ruff
|
python312Packages.python-lsp-ruff
|
||||||
python312Packages.python-lsp-black
|
python312Packages.python-lsp-black
|
||||||
];
|
];
|
||||||
example = [ ];
|
example = [];
|
||||||
type = with lib.types; listOf package;
|
type = with lib.types; listOf package;
|
||||||
description = ''
|
description = ''
|
||||||
python packages
|
python packages
|
||||||
|
|
@ -304,7 +303,7 @@
|
||||||
#json
|
#json
|
||||||
jq
|
jq
|
||||||
];
|
];
|
||||||
example = [ ];
|
example = [];
|
||||||
type = with lib.types; listOf package;
|
type = with lib.types; listOf package;
|
||||||
description = ''
|
description = ''
|
||||||
packages for said filetypes
|
packages for said filetypes
|
||||||
|
|
@ -325,7 +324,7 @@
|
||||||
bash-language-server
|
bash-language-server
|
||||||
shfmt
|
shfmt
|
||||||
];
|
];
|
||||||
example = [ ];
|
example = [];
|
||||||
type = with lib.types; listOf package;
|
type = with lib.types; listOf package;
|
||||||
description = ''
|
description = ''
|
||||||
bash packages
|
bash packages
|
||||||
|
|
@ -347,7 +346,7 @@
|
||||||
tailwindcss-language-server
|
tailwindcss-language-server
|
||||||
# html-tidy
|
# html-tidy
|
||||||
];
|
];
|
||||||
example = [ ];
|
example = [];
|
||||||
type = with lib.types; listOf package;
|
type = with lib.types; listOf package;
|
||||||
description = ''
|
description = ''
|
||||||
html/css packages
|
html/css packages
|
||||||
|
|
@ -368,7 +367,7 @@
|
||||||
nodePackages.sql-formatter
|
nodePackages.sql-formatter
|
||||||
sqls
|
sqls
|
||||||
];
|
];
|
||||||
example = [ ];
|
example = [];
|
||||||
type = with lib.types; listOf package;
|
type = with lib.types; listOf package;
|
||||||
description = ''
|
description = ''
|
||||||
sql packages
|
sql packages
|
||||||
|
|
@ -385,8 +384,8 @@
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
packages = lib.mkOption {
|
packages = lib.mkOption {
|
||||||
default = with pkgs; [ gleam ];
|
default = with pkgs; [gleam];
|
||||||
example = [ ];
|
example = [];
|
||||||
type = with lib.types; listOf package;
|
type = with lib.types; listOf package;
|
||||||
description = ''
|
description = ''
|
||||||
gleam packages
|
gleam packages
|
||||||
|
|
@ -403,8 +402,8 @@
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
packages = lib.mkOption {
|
packages = lib.mkOption {
|
||||||
default = with pkgs; [ asm-lsp ];
|
default = with pkgs; [asm-lsp];
|
||||||
example = [ ];
|
example = [];
|
||||||
type = with lib.types; listOf package;
|
type = with lib.types; listOf package;
|
||||||
description = ''
|
description = ''
|
||||||
assembly packages
|
assembly packages
|
||||||
|
|
@ -415,23 +414,22 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config =
|
config = let
|
||||||
let
|
basePackages = with pkgs; [
|
||||||
basePackages = with pkgs; [
|
gitui
|
||||||
gitui
|
meson
|
||||||
meson
|
ninja
|
||||||
ninja
|
tree-sitter
|
||||||
tree-sitter
|
unzip
|
||||||
unzip
|
pkg-config
|
||||||
pkg-config
|
sqlite
|
||||||
sqlite
|
plantuml
|
||||||
plantuml
|
d-spy
|
||||||
d-spy
|
tmux
|
||||||
tmux
|
tmate
|
||||||
tmate
|
];
|
||||||
];
|
font_family = "${config.mods.stylix.fonts.monospace.name}";
|
||||||
font_family = "${config.mods.stylix.fonts.monospace.name}";
|
in
|
||||||
in
|
|
||||||
lib.mkIf config.mods.coding.enable (
|
lib.mkIf config.mods.coding.enable (
|
||||||
lib.optionalAttrs (options ? home.packages) {
|
lib.optionalAttrs (options ? home.packages) {
|
||||||
programs.dashvim = lib.mkIf config.mods.coding.dashvim {
|
programs.dashvim = lib.mkIf config.mods.coding.dashvim {
|
||||||
|
|
@ -444,7 +442,7 @@
|
||||||
extensions = config.mods.coding.vscodium.extensions;
|
extensions = config.mods.coding.vscodium.extensions;
|
||||||
};
|
};
|
||||||
xdg.configFile."neovide/config.toml" = lib.mkIf config.mods.coding.dashvim {
|
xdg.configFile."neovide/config.toml" = lib.mkIf config.mods.coding.dashvim {
|
||||||
source = (pkgs.formats.toml { }).generate "neovide" {
|
source = (pkgs.formats.toml {}).generate "neovide" {
|
||||||
font = {
|
font = {
|
||||||
size = 12;
|
size = 12;
|
||||||
normal = {
|
normal = {
|
||||||
|
|
@ -466,8 +464,7 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
home.packages =
|
home.packages = with pkgs;
|
||||||
with pkgs;
|
|
||||||
[
|
[
|
||||||
(lib.mkIf config.mods.coding.dashvim neovide)
|
(lib.mkIf config.mods.coding.dashvim neovide)
|
||||||
(lib.mkIf config.mods.coding.jetbrains jetbrains-toolbox)
|
(lib.mkIf config.mods.coding.jetbrains jetbrains-toolbox)
|
||||||
|
|
|
||||||
|
|
@ -4,8 +4,7 @@
|
||||||
options,
|
options,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
{
|
|
||||||
options.mods.containers = {
|
options.mods.containers = {
|
||||||
variant = lib.mkOption {
|
variant = lib.mkOption {
|
||||||
default = "";
|
default = "";
|
||||||
|
|
@ -22,7 +21,7 @@
|
||||||
podman-tui
|
podman-tui
|
||||||
podman-compose
|
podman-compose
|
||||||
];
|
];
|
||||||
example = [ ];
|
example = [];
|
||||||
type = with lib.types; listOf package;
|
type = with lib.types; listOf package;
|
||||||
description = "Podman packages";
|
description = "Podman packages";
|
||||||
};
|
};
|
||||||
|
|
@ -30,7 +29,7 @@
|
||||||
default = with pkgs; [
|
default = with pkgs; [
|
||||||
docker-compose
|
docker-compose
|
||||||
];
|
];
|
||||||
example = [ ];
|
example = [];
|
||||||
type = with lib.types; listOf package;
|
type = with lib.types; listOf package;
|
||||||
description = "Docker packages";
|
description = "Docker packages";
|
||||||
};
|
};
|
||||||
|
|
@ -38,7 +37,7 @@
|
||||||
default = with pkgs; [
|
default = with pkgs; [
|
||||||
dive
|
dive
|
||||||
];
|
];
|
||||||
example = [ ];
|
example = [];
|
||||||
type = with lib.types; listOf package;
|
type = with lib.types; listOf package;
|
||||||
description = "Container packages";
|
description = "Container packages";
|
||||||
};
|
};
|
||||||
|
|
@ -47,33 +46,35 @@
|
||||||
lib.optionalAttrs (options ? environment.systemPackages) {
|
lib.optionalAttrs (options ? environment.systemPackages) {
|
||||||
environment.systemPackages =
|
environment.systemPackages =
|
||||||
(lib.lists.optionals (
|
(lib.lists.optionals (
|
||||||
config.mods.containers.variant == "podman"
|
config.mods.containers.variant == "podman"
|
||||||
) config.mods.containers.podmanPackages)
|
)
|
||||||
|
config.mods.containers.podmanPackages)
|
||||||
++ (lib.lists.optionals (
|
++ (lib.lists.optionals (
|
||||||
config.mods.containers.variant == "docker"
|
config.mods.containers.variant == "docker"
|
||||||
) config.mods.containers.dockerPackages)
|
)
|
||||||
|
config.mods.containers.dockerPackages)
|
||||||
++ (lib.lists.optionals (
|
++ (lib.lists.optionals (
|
||||||
config.mods.containers.variant == "podman" || config.mods.containers.variant == "docker"
|
config.mods.containers.variant == "podman" || config.mods.containers.variant == "docker"
|
||||||
) config.mods.containers.combinedPackages);
|
)
|
||||||
|
config.mods.containers.combinedPackages);
|
||||||
virtualisation =
|
virtualisation =
|
||||||
if (config.mods.containers.variant == "podman") then
|
if (config.mods.containers.variant == "podman")
|
||||||
{
|
then {
|
||||||
containers.enable = true;
|
containers.enable = true;
|
||||||
podman = {
|
podman = {
|
||||||
enable = true;
|
enable = true;
|
||||||
dockerCompat = true;
|
dockerCompat = true;
|
||||||
defaultNetwork.settings.dns_enabled = true;
|
defaultNetwork.settings.dns_enabled = true;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
else if (config.mods.containers.variant == "docker") then
|
else if (config.mods.containers.variant == "docker")
|
||||||
{
|
then {
|
||||||
containers.enable = true;
|
containers.enable = true;
|
||||||
docker = {
|
docker = {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
else
|
else {};
|
||||||
{ };
|
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,9 +3,7 @@
|
||||||
config,
|
config,
|
||||||
options,
|
options,
|
||||||
...
|
...
|
||||||
}:
|
}: let
|
||||||
let
|
|
||||||
|
|
||||||
driveModule = lib.types.submodule {
|
driveModule = lib.types.submodule {
|
||||||
options = {
|
options = {
|
||||||
name = lib.mkOption {
|
name = lib.mkOption {
|
||||||
|
|
@ -20,7 +18,7 @@ let
|
||||||
drive = lib.mkOption {
|
drive = lib.mkOption {
|
||||||
type = lib.types.attrsOf lib.types.anything;
|
type = lib.types.attrsOf lib.types.anything;
|
||||||
description = "The attrs of the drive";
|
description = "The attrs of the drive";
|
||||||
default = { };
|
default = {};
|
||||||
example = {
|
example = {
|
||||||
device = "/dev/disk/by-label/DRIVE2";
|
device = "/dev/disk/by-label/DRIVE2";
|
||||||
fsType = "ext4";
|
fsType = "ext4";
|
||||||
|
|
@ -33,8 +31,7 @@ let
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
in
|
in {
|
||||||
{
|
|
||||||
options.mods = {
|
options.mods = {
|
||||||
drives = {
|
drives = {
|
||||||
useSwap = {
|
useSwap = {
|
||||||
|
|
@ -59,7 +56,6 @@ in
|
||||||
};
|
};
|
||||||
extraDrives = lib.mkOption {
|
extraDrives = lib.mkOption {
|
||||||
default = [
|
default = [
|
||||||
|
|
||||||
];
|
];
|
||||||
example = [
|
example = [
|
||||||
{
|
{
|
||||||
|
|
@ -90,12 +86,15 @@ in
|
||||||
fileSystems =
|
fileSystems =
|
||||||
builtins.listToAttrs (
|
builtins.listToAttrs (
|
||||||
map (
|
map (
|
||||||
{ name, drive }:
|
|
||||||
{
|
{
|
||||||
|
name,
|
||||||
|
drive,
|
||||||
|
}: {
|
||||||
name = "/" + name;
|
name = "/" + name;
|
||||||
value = drive;
|
value = drive;
|
||||||
}
|
}
|
||||||
) config.mods.drives.extraDrives
|
)
|
||||||
|
config.mods.drives.extraDrives
|
||||||
)
|
)
|
||||||
// (lib.optionalAttrs config.mods.drives.defaultDrives.enable) {
|
// (lib.optionalAttrs config.mods.drives.defaultDrives.enable) {
|
||||||
"/" = {
|
"/" = {
|
||||||
|
|
@ -131,7 +130,7 @@ in
|
||||||
};
|
};
|
||||||
# TODO make this convert to choice of drives -> thanks to funny types this doesn't work...
|
# TODO make this convert to choice of drives -> thanks to funny types this doesn't work...
|
||||||
swapDevices = lib.mkIf config.mods.drives.useSwap.enable [
|
swapDevices = lib.mkIf config.mods.drives.useSwap.enable [
|
||||||
{ device = "/dev/disk/by-label/SWAP"; }
|
{device = "/dev/disk/by-label/SWAP";}
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -5,12 +5,10 @@
|
||||||
config,
|
config,
|
||||||
options,
|
options,
|
||||||
...
|
...
|
||||||
}:
|
}: let
|
||||||
let
|
base16 = pkgs.callPackage inputs.base16.lib {};
|
||||||
base16 = pkgs.callPackage inputs.base16.lib { };
|
scheme = base16.mkSchemeAttrs config.stylix.base16Scheme;
|
||||||
scheme = (base16.mkSchemeAttrs config.stylix.base16Scheme);
|
in {
|
||||||
in
|
|
||||||
{
|
|
||||||
options.mods.fish = {
|
options.mods.fish = {
|
||||||
enable = lib.mkOption {
|
enable = lib.mkOption {
|
||||||
default = true;
|
default = true;
|
||||||
|
|
@ -36,7 +34,8 @@ in
|
||||||
programs.fish = {
|
programs.fish = {
|
||||||
enable = true;
|
enable = true;
|
||||||
shellInit =
|
shellInit =
|
||||||
if config.mods.fish.useDefaultConfig then
|
if config.mods.fish.useDefaultConfig
|
||||||
|
then
|
||||||
''
|
''
|
||||||
if status is-interactive
|
if status is-interactive
|
||||||
# Commands to run in interactive sessions can go here
|
# Commands to run in interactive sessions can go here
|
||||||
|
|
@ -182,8 +181,7 @@ in
|
||||||
direnv hook fish | source
|
direnv hook fish | source
|
||||||
''
|
''
|
||||||
+ config.mods.fish.additionalConfig
|
+ config.mods.fish.additionalConfig
|
||||||
else
|
else config.mods.fish.additionalConfig;
|
||||||
config.mods.fish.additionalConfig;
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -4,8 +4,7 @@
|
||||||
options,
|
options,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
{
|
|
||||||
options.mods.flatpak = {
|
options.mods.flatpak = {
|
||||||
enable = lib.mkOption {
|
enable = lib.mkOption {
|
||||||
default = true;
|
default = true;
|
||||||
|
|
@ -14,15 +13,15 @@
|
||||||
description = "Enables the flatpak package manager";
|
description = "Enables the flatpak package manager";
|
||||||
};
|
};
|
||||||
additional_packages = lib.mkOption {
|
additional_packages = lib.mkOption {
|
||||||
default = [ ];
|
default = [];
|
||||||
example = [ ];
|
example = [];
|
||||||
type = with lib.types; listOf str;
|
type = with lib.types; listOf str;
|
||||||
description = "Flatpak packages";
|
description = "Flatpak packages";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
config = lib.mkIf config.mods.flatpak.enable (
|
config = lib.mkIf config.mods.flatpak.enable (
|
||||||
lib.optionalAttrs (options ? services.flatpak.remote) {
|
lib.optionalAttrs (options ? services.flatpak.remote) {
|
||||||
environment.systemPackages = [ pkgs.flatpak ];
|
environment.systemPackages = [pkgs.flatpak];
|
||||||
services.flatpak.remotes = lib.mkOptionDefault [
|
services.flatpak.remotes = lib.mkOptionDefault [
|
||||||
{
|
{
|
||||||
name = "flathub-stable";
|
name = "flathub-stable";
|
||||||
|
|
@ -32,11 +31,13 @@
|
||||||
services.flatpak.uninstallUnmanaged = true;
|
services.flatpak.uninstallUnmanaged = true;
|
||||||
}
|
}
|
||||||
// lib.optionalAttrs (options ? services.flatpak.packages) {
|
// lib.optionalAttrs (options ? services.flatpak.packages) {
|
||||||
services.flatpak.packages = [
|
services.flatpak.packages =
|
||||||
# fallback if necessary, but generally avoided as nix is superior :)
|
[
|
||||||
# default flatseal installation since flatpak permissions are totally not a broken idea
|
# fallback if necessary, but generally avoided as nix is superior :)
|
||||||
"com.github.tchx84.Flatseal"
|
# default flatseal installation since flatpak permissions are totally not a broken idea
|
||||||
] ++ config.mods.flatpak.additional_packages;
|
"com.github.tchx84.Flatseal"
|
||||||
|
]
|
||||||
|
++ config.mods.flatpak.additional_packages;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,8 +4,7 @@
|
||||||
options,
|
options,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
{
|
|
||||||
options.mods.gaming = {
|
options.mods.gaming = {
|
||||||
enable = lib.mkOption {
|
enable = lib.mkOption {
|
||||||
default = false;
|
default = false;
|
||||||
|
|
@ -24,7 +23,7 @@
|
||||||
#heroic
|
#heroic
|
||||||
mangohud
|
mangohud
|
||||||
];
|
];
|
||||||
example = [ ];
|
example = [];
|
||||||
type = with lib.types; listOf package;
|
type = with lib.types; listOf package;
|
||||||
description = "Install gaming related packages";
|
description = "Install gaming related packages";
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -3,8 +3,7 @@
|
||||||
options,
|
options,
|
||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
{
|
|
||||||
options.mods.gdm = {
|
options.mods.gdm = {
|
||||||
enable = lib.mkOption {
|
enable = lib.mkOption {
|
||||||
default = false;
|
default = false;
|
||||||
|
|
@ -13,8 +12,8 @@
|
||||||
description = "Enables the gdm displayManager";
|
description = "Enables the gdm displayManager";
|
||||||
};
|
};
|
||||||
extraOptions = lib.mkOption {
|
extraOptions = lib.mkOption {
|
||||||
default = { };
|
default = {};
|
||||||
example = { };
|
example = {};
|
||||||
type = with lib.types; attrsOf anything;
|
type = with lib.types; attrsOf anything;
|
||||||
description = "Extra options to be applied to the gnome config";
|
description = "Extra options to be applied to the gnome config";
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -3,8 +3,7 @@
|
||||||
config,
|
config,
|
||||||
options,
|
options,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
{
|
|
||||||
options.mods.git = {
|
options.mods.git = {
|
||||||
username = lib.mkOption {
|
username = lib.mkOption {
|
||||||
default = "DashieTM";
|
default = "DashieTM";
|
||||||
|
|
@ -38,25 +37,22 @@
|
||||||
default = ''
|
default = ''
|
||||||
Host github.com
|
Host github.com
|
||||||
${
|
${
|
||||||
if (config ? sops.secrets && config.sops.secrets ? hub.path) then
|
if (config ? sops.secrets && config.sops.secrets ? hub.path)
|
||||||
"IdentityFile ${config.sops.secrets.hub.path}"
|
then "IdentityFile ${config.sops.secrets.hub.path}"
|
||||||
else
|
else ""
|
||||||
""
|
}
|
||||||
}
|
|
||||||
Host gitlab.com
|
Host gitlab.com
|
||||||
${
|
${
|
||||||
if (config ? sops.secrets && config.sops.secrets ? lab.path) then
|
if (config ? sops.secrets && config.sops.secrets ? lab.path)
|
||||||
"IdentityFile ${config.sops.secrets.lab.path}"
|
then "IdentityFile ${config.sops.secrets.lab.path}"
|
||||||
else
|
else ""
|
||||||
""
|
}
|
||||||
}
|
|
||||||
Host dashie.org
|
Host dashie.org
|
||||||
${
|
${
|
||||||
if (config ? sops.secrets && config.sops.secrets ? dashie.path) then
|
if (config ? sops.secrets && config.sops.secrets ? dashie.path)
|
||||||
"IdentityFile ${config.sops.secrets.dashie.path}"
|
then "IdentityFile ${config.sops.secrets.dashie.path}"
|
||||||
else
|
else ""
|
||||||
""
|
}
|
||||||
}
|
|
||||||
'';
|
'';
|
||||||
example = "";
|
example = "";
|
||||||
type = lib.types.lines;
|
type = lib.types.lines;
|
||||||
|
|
|
||||||
|
|
@ -4,8 +4,7 @@
|
||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
{
|
|
||||||
options.mods.gnome = {
|
options.mods.gnome = {
|
||||||
enable = lib.mkOption {
|
enable = lib.mkOption {
|
||||||
default = false;
|
default = false;
|
||||||
|
|
@ -20,27 +19,26 @@
|
||||||
description = "Use default options provided by module. If disabled, will only apply extraOptions.";
|
description = "Use default options provided by module. If disabled, will only apply extraOptions.";
|
||||||
};
|
};
|
||||||
extraOptions = lib.mkOption {
|
extraOptions = lib.mkOption {
|
||||||
default = { };
|
default = {};
|
||||||
example = { };
|
example = {};
|
||||||
type = with lib.types; attrsOf anything;
|
type = with lib.types; attrsOf anything;
|
||||||
description = "Extra options to be applied to the gnome config";
|
description = "Extra options to be applied to the gnome config";
|
||||||
};
|
};
|
||||||
extraDconf = lib.mkOption {
|
extraDconf = lib.mkOption {
|
||||||
default = { };
|
default = {};
|
||||||
example = { };
|
example = {};
|
||||||
type = with lib.types; attrsOf anything;
|
type = with lib.types; attrsOf anything;
|
||||||
description = "Extra options to be applied to the dconf config";
|
description = "Extra options to be applied to the dconf config";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config =
|
config = let
|
||||||
let
|
defaultExtensions = with pkgs.gnomeExtensions; [
|
||||||
defaultExtensions = with pkgs.gnomeExtensions; [
|
blur-my-shell
|
||||||
blur-my-shell
|
dash-to-dock
|
||||||
dash-to-dock
|
tray-icons-reloaded
|
||||||
tray-icons-reloaded
|
];
|
||||||
];
|
in
|
||||||
in
|
|
||||||
lib.mkIf config.mods.gnome.enable (
|
lib.mkIf config.mods.gnome.enable (
|
||||||
lib.optionalAttrs (options ? services.xserver.desktopManager.gnome) (
|
lib.optionalAttrs (options ? services.xserver.desktopManager.gnome) (
|
||||||
{
|
{
|
||||||
|
|
@ -49,7 +47,7 @@
|
||||||
desktopManager.gnome.enable = true;
|
desktopManager.gnome.enable = true;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
// lib.mkIf config.mods.gnome.useDefaultOptions { environment.systemPackages = defaultExtensions; }
|
// lib.mkIf config.mods.gnome.useDefaultOptions {environment.systemPackages = defaultExtensions;}
|
||||||
// {
|
// {
|
||||||
services.xserver.desktopManager.gnome = config.mods.gnome.extraOptions;
|
services.xserver.desktopManager.gnome = config.mods.gnome.extraOptions;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,8 +4,7 @@
|
||||||
options,
|
options,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
{
|
|
||||||
options.mods = {
|
options.mods = {
|
||||||
gnomeServices.enable = lib.mkOption {
|
gnomeServices.enable = lib.mkOption {
|
||||||
default = true;
|
default = true;
|
||||||
|
|
@ -66,15 +65,14 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
home = {
|
home = {
|
||||||
packages =
|
packages = let
|
||||||
let
|
packages = with pkgs; [
|
||||||
packages = with pkgs; [
|
gcr
|
||||||
gcr
|
nautilus
|
||||||
nautilus
|
sushi
|
||||||
sushi
|
nautilus-python
|
||||||
nautilus-python
|
];
|
||||||
];
|
in
|
||||||
in
|
|
||||||
lib.mkIf config.mods.nautilus.enable packages;
|
lib.mkIf config.mods.nautilus.enable packages;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,9 +4,7 @@
|
||||||
options,
|
options,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
{
|
|
||||||
|
|
||||||
options.mods = {
|
options.mods = {
|
||||||
gpu = {
|
gpu = {
|
||||||
nvidia.enable = lib.mkOption {
|
nvidia.enable = lib.mkOption {
|
||||||
|
|
@ -57,35 +55,34 @@
|
||||||
config =
|
config =
|
||||||
(lib.optionalAttrs (options ? hardware.graphics) {
|
(lib.optionalAttrs (options ? hardware.graphics) {
|
||||||
boot = lib.mkIf config.mods.amdgpu.enable {
|
boot = lib.mkIf config.mods.amdgpu.enable {
|
||||||
kernelModules = [ "kvm-amd" ];
|
kernelModules = ["kvm-amd"];
|
||||||
initrd.kernelModules = [ "amdgpu" ];
|
initrd.kernelModules = ["amdgpu"];
|
||||||
kernelParams = [ "amdgpu.ppfeaturemask=0xffffffff" ];
|
kernelParams = ["amdgpu.ppfeaturemask=0xffffffff"];
|
||||||
};
|
};
|
||||||
|
|
||||||
hardware = {
|
hardware = {
|
||||||
graphics =
|
graphics = let
|
||||||
let
|
amdPackages = [
|
||||||
amdPackages = [
|
(lib.mkIf (config.mods.gpu.intelgpu && lib.mkIf config.mods.gpu.vapi.enable) pkgs.vpl-gpu-rt)
|
||||||
(lib.mkIf (config.mods.gpu.intelgpu && lib.mkIf config.mods.gpu.vapi.enable) pkgs.vpl-gpu-rt)
|
(lib.mkIf (
|
||||||
(lib.mkIf (
|
|
||||||
config.mods.gpu.intelgpu && lib.mkIf config.mods.gpu.vapi.enable
|
config.mods.gpu.intelgpu && lib.mkIf config.mods.gpu.vapi.enable
|
||||||
) pkgs.intel-media-driver)
|
)
|
||||||
(lib.mkIf config.mods.gpu.vapi.enable pkgs.libvdpau-va-gl)
|
pkgs.intel-media-driver)
|
||||||
(lib.mkIf config.mods.gpu.vapi.enable pkgs.vaapiVdpau)
|
(lib.mkIf config.mods.gpu.vapi.enable pkgs.libvdpau-va-gl)
|
||||||
(lib.mkIf (config.mods.gpu.intelgpu || config.mods.gpu.amdgpu) pkgs.mesa.drivers)
|
(lib.mkIf config.mods.gpu.vapi.enable pkgs.vaapiVdpau)
|
||||||
];
|
(lib.mkIf (config.mods.gpu.intelgpu || config.mods.gpu.amdgpu) pkgs.mesa.drivers)
|
||||||
rocmPackages = [
|
];
|
||||||
pkgs.rocmPackages.clr.icd
|
rocmPackages = [
|
||||||
pkgs.rocm-opencl-runtime
|
pkgs.rocmPackages.clr.icd
|
||||||
];
|
pkgs.rocm-opencl-runtime
|
||||||
in
|
];
|
||||||
{
|
in {
|
||||||
enable = true;
|
enable = true;
|
||||||
enable32Bit = lib.mkDefault true;
|
enable32Bit = lib.mkDefault true;
|
||||||
extraPackages =
|
extraPackages =
|
||||||
amdPackages
|
amdPackages
|
||||||
++ (lib.lists.optionals (config.mods.gpu.vapi.rocm.enable && config.mods.gpu.amdgpu) rocmPackages);
|
++ (lib.lists.optionals (config.mods.gpu.vapi.rocm.enable && config.mods.gpu.amdgpu) rocmPackages);
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
// lib.optionalAttrs (options ? hardware.graphics) (
|
// lib.optionalAttrs (options ? hardware.graphics) (
|
||||||
|
|
@ -98,7 +95,7 @@
|
||||||
nvidiaSettings = true;
|
nvidiaSettings = true;
|
||||||
package = config.boot.kernelPackages.nvidiaPackages.beta;
|
package = config.boot.kernelPackages.nvidiaPackages.beta;
|
||||||
};
|
};
|
||||||
services.xserver.videoDrivers = [ "nvidia" ];
|
services.xserver.videoDrivers = ["nvidia"];
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,8 +5,7 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
options,
|
options,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
{
|
|
||||||
options.mods = {
|
options.mods = {
|
||||||
greetd = {
|
greetd = {
|
||||||
enable = lib.mkOption {
|
enable = lib.mkOption {
|
||||||
|
|
@ -59,8 +58,8 @@
|
||||||
};
|
};
|
||||||
regreet = {
|
regreet = {
|
||||||
customSettings = lib.mkOption {
|
customSettings = lib.mkOption {
|
||||||
default = { };
|
default = {};
|
||||||
example = { };
|
example = {};
|
||||||
type = with lib.types; attrsOf anything;
|
type = with lib.types; attrsOf anything;
|
||||||
description = ''
|
description = ''
|
||||||
Custom regret settings. See https://github.com/rharish101/ReGreet/blob/main/regreet.sample.toml for more information.
|
Custom regret settings. See https://github.com/rharish101/ReGreet/blob/main/regreet.sample.toml for more information.
|
||||||
|
|
@ -70,16 +69,15 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config =
|
config = let
|
||||||
let
|
username = config.conf.username;
|
||||||
username = config.conf.username;
|
session = {
|
||||||
session = {
|
command = "${
|
||||||
command = "${
|
lib.getExe inputs.hyprland.packages.${config.conf.system}.hyprland
|
||||||
lib.getExe inputs.hyprland.packages.${config.conf.system}.hyprland
|
} --config /etc/greetd/hyprgreet.conf";
|
||||||
} --config /etc/greetd/hyprgreet.conf";
|
user = username;
|
||||||
user = username;
|
};
|
||||||
};
|
in
|
||||||
in
|
|
||||||
lib.mkIf config.mods.greetd.enable (
|
lib.mkIf config.mods.greetd.enable (
|
||||||
lib.optionalAttrs (options ? environment) {
|
lib.optionalAttrs (options ? environment) {
|
||||||
services.xserver.displayManager.session = [
|
services.xserver.displayManager.session = [
|
||||||
|
|
@ -136,8 +134,8 @@
|
||||||
}
|
}
|
||||||
// lib.optionalAttrs (options ? home) {
|
// lib.optionalAttrs (options ? home) {
|
||||||
xdg.configFile."regreet/regreet.toml".source =
|
xdg.configFile."regreet/regreet.toml".source =
|
||||||
(pkgs.formats.toml { }).generate "regreet"
|
(pkgs.formats.toml {}).generate "regreet"
|
||||||
config.mods.greetd.regreet.customSettings;
|
config.mods.greetd.regreet.customSettings;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,8 +5,7 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
inputs,
|
inputs,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
{
|
|
||||||
options.mods.homePackages = {
|
options.mods.homePackages = {
|
||||||
useDefaultPackages = lib.mkOption {
|
useDefaultPackages = lib.mkOption {
|
||||||
default = true;
|
default = true;
|
||||||
|
|
@ -15,8 +14,8 @@
|
||||||
description = "Use default packages (will use additional_packages only if disabled)";
|
description = "Use default packages (will use additional_packages only if disabled)";
|
||||||
};
|
};
|
||||||
additionalPackages = lib.mkOption {
|
additionalPackages = lib.mkOption {
|
||||||
default = [ ];
|
default = [];
|
||||||
example = [ pkgs.flatpak ];
|
example = [pkgs.flatpak];
|
||||||
type = with lib.types; listOf package;
|
type = with lib.types; listOf package;
|
||||||
description = ''
|
description = ''
|
||||||
Additional Home manager packages.
|
Additional Home manager packages.
|
||||||
|
|
@ -24,16 +23,16 @@
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
specialPrograms = lib.mkOption {
|
specialPrograms = lib.mkOption {
|
||||||
default = { };
|
default = {};
|
||||||
example = { };
|
example = {};
|
||||||
type = with lib.types; attrsOf anything;
|
type = with lib.types; attrsOf anything;
|
||||||
description = ''
|
description = ''
|
||||||
special program configuration to be added which require programs.something notation.
|
special program configuration to be added which require programs.something notation.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
specialServices = lib.mkOption {
|
specialServices = lib.mkOption {
|
||||||
default = { };
|
default = {};
|
||||||
example = { };
|
example = {};
|
||||||
type = with lib.types; attrsOf anything;
|
type = with lib.types; attrsOf anything;
|
||||||
description = ''
|
description = ''
|
||||||
special services configuration to be added which require an services.something notation.
|
special services configuration to be added which require an services.something notation.
|
||||||
|
|
@ -72,66 +71,67 @@
|
||||||
browser = lib.mkOption {
|
browser = lib.mkOption {
|
||||||
default = inputs.zen-browser.packages.${pkgs.system}.default;
|
default = inputs.zen-browser.packages.${pkgs.system}.default;
|
||||||
example = "firefox";
|
example = "firefox";
|
||||||
type =
|
type = with lib.types;
|
||||||
with lib.types;
|
|
||||||
nullOr (
|
nullOr (
|
||||||
either (enum [
|
either (enum [
|
||||||
"firefox"
|
"firefox"
|
||||||
]) package
|
])
|
||||||
|
package
|
||||||
);
|
);
|
||||||
description = "The browser (the enum variants have preconfigured modules)";
|
description = "The browser (the enum variants have preconfigured modules)";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
config = lib.optionalAttrs (options ? home.packages) {
|
config = lib.optionalAttrs (options ? home.packages) {
|
||||||
home.packages =
|
home.packages =
|
||||||
if config.mods.homePackages.useDefaultPackages then
|
if config.mods.homePackages.useDefaultPackages
|
||||||
|
then
|
||||||
with pkgs;
|
with pkgs;
|
||||||
[
|
[
|
||||||
(lib.mkIf config.mods.homePackages.ncspot ncspot)
|
(lib.mkIf config.mods.homePackages.ncspot ncspot)
|
||||||
(lib.mkIf config.mods.homePackages.vesktop vesktop)
|
(lib.mkIf config.mods.homePackages.vesktop vesktop)
|
||||||
(lib.mkIf config.mods.homePackages.nextcloudClient nextcloud-client)
|
(lib.mkIf config.mods.homePackages.nextcloudClient nextcloud-client)
|
||||||
(lib.mkIf (!isNull config.mods.homePackages.matrixClient) config.mods.homePackages.matrixClient)
|
(lib.mkIf (!isNull config.mods.homePackages.matrixClient) config.mods.homePackages.matrixClient)
|
||||||
(lib.mkIf (!isNull config.mods.homePackages.mailClient) config.mods.homePackages.mailClient)
|
(lib.mkIf (!isNull config.mods.homePackages.mailClient) config.mods.homePackages.mailClient)
|
||||||
(lib.mkIf (
|
(lib.mkIf (
|
||||||
# NOTE: This should be package, but nix doesn't have that....
|
# NOTE: This should be package, but nix doesn't have that....
|
||||||
builtins.isAttrs config.mods.homePackages.browser && !isNull config.mods.homePackages.browser
|
builtins.isAttrs config.mods.homePackages.browser && !isNull config.mods.homePackages.browser
|
||||||
) config.mods.homePackages.browser)
|
)
|
||||||
adw-gtk3
|
config.mods.homePackages.browser)
|
||||||
bat
|
adw-gtk3
|
||||||
brightnessctl
|
bat
|
||||||
dbus
|
brightnessctl
|
||||||
fastfetch
|
dbus
|
||||||
fd
|
fastfetch
|
||||||
ffmpeg
|
fd
|
||||||
flake-checker
|
ffmpeg
|
||||||
gnome-keyring
|
flake-checker
|
||||||
gnutar
|
gnome-keyring
|
||||||
greetd.regreet
|
gnutar
|
||||||
killall
|
greetd.regreet
|
||||||
kitty
|
killall
|
||||||
libnotify
|
kitty
|
||||||
lsd
|
libnotify
|
||||||
networkmanager
|
lsd
|
||||||
nh
|
networkmanager
|
||||||
nix-index
|
nh
|
||||||
playerctl
|
nix-index
|
||||||
poppler_utils
|
playerctl
|
||||||
pulseaudio
|
poppler_utils
|
||||||
libsForQt5.qt5ct
|
pulseaudio
|
||||||
qt6ct
|
libsForQt5.qt5ct
|
||||||
fcp
|
qt6ct
|
||||||
ripgrep
|
fcp
|
||||||
rm-improved
|
ripgrep
|
||||||
system-config-printer
|
rm-improved
|
||||||
xournalpp
|
system-config-printer
|
||||||
zenith
|
xournalpp
|
||||||
zoxide
|
zenith
|
||||||
]
|
zoxide
|
||||||
++ config.mods.homePackages.additionalPackages
|
]
|
||||||
else
|
++ config.mods.homePackages.additionalPackages
|
||||||
config.mods.homePackages.additionalPackages;
|
else config.mods.homePackages.additionalPackages;
|
||||||
|
|
||||||
xdg.configFile."direnv/direnv.toml".source = (pkgs.formats.toml { }).generate "direnv" {
|
xdg.configFile."direnv/direnv.toml".source = (pkgs.formats.toml {}).generate "direnv" {
|
||||||
global = {
|
global = {
|
||||||
warn_timeout = "-1s";
|
warn_timeout = "-1s";
|
||||||
};
|
};
|
||||||
|
|
@ -139,21 +139,19 @@
|
||||||
programs =
|
programs =
|
||||||
config.mods.homePackages.specialPrograms
|
config.mods.homePackages.specialPrograms
|
||||||
// (
|
// (
|
||||||
if config.mods.homePackages.browser == "firefox" then
|
if config.mods.homePackages.browser == "firefox"
|
||||||
{
|
then {
|
||||||
firefox = {
|
firefox = {
|
||||||
enable = true;
|
enable = true;
|
||||||
policies = config.mods.browser.firefox.configuration;
|
policies = config.mods.browser.firefox.configuration;
|
||||||
profiles = builtins.listToAttrs config.mods.browser.firefox.profiles;
|
profiles = builtins.listToAttrs config.mods.browser.firefox.profiles;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
else
|
else {}
|
||||||
{ }
|
|
||||||
);
|
);
|
||||||
services =
|
services =
|
||||||
if config.mods.homePackages.useDefaultPackages then
|
if config.mods.homePackages.useDefaultPackages
|
||||||
config.mods.homePackages.specialServices
|
then config.mods.homePackages.specialServices
|
||||||
else
|
else config.mods.homePackages.specialServices;
|
||||||
config.mods.homePackages.specialServices;
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,8 +5,7 @@
|
||||||
options,
|
options,
|
||||||
inputs,
|
inputs,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
{
|
|
||||||
options.mods = {
|
options.mods = {
|
||||||
hyprland = {
|
hyprland = {
|
||||||
anyrun = {
|
anyrun = {
|
||||||
|
|
@ -25,8 +24,8 @@
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
customConfig = lib.mkOption {
|
customConfig = lib.mkOption {
|
||||||
default = { };
|
default = {};
|
||||||
example = { };
|
example = {};
|
||||||
type = with lib.types; attrsOf anything;
|
type = with lib.types; attrsOf anything;
|
||||||
description = ''
|
description = ''
|
||||||
Custom anyrun configuration.
|
Custom anyrun configuration.
|
||||||
|
|
@ -63,7 +62,8 @@
|
||||||
programs.anyrun = {
|
programs.anyrun = {
|
||||||
enable = true;
|
enable = true;
|
||||||
config =
|
config =
|
||||||
if config.mods.hyprland.anyrun.useDefaultConfig then
|
if config.mods.hyprland.anyrun.useDefaultConfig
|
||||||
|
then
|
||||||
{
|
{
|
||||||
plugins = [
|
plugins = [
|
||||||
inputs.anyrun.packages.${pkgs.system}.applications
|
inputs.anyrun.packages.${pkgs.system}.applications
|
||||||
|
|
@ -84,11 +84,11 @@
|
||||||
closeOnClick = true;
|
closeOnClick = true;
|
||||||
}
|
}
|
||||||
// config.mods.hyprland.anyrun.customConfig
|
// config.mods.hyprland.anyrun.customConfig
|
||||||
else
|
else config.mods.hyprland.anyrun.customConfig;
|
||||||
config.mods.hyprland.anyrun.customConfig;
|
|
||||||
|
|
||||||
extraCss =
|
extraCss =
|
||||||
if config.mods.hyprland.anyrun.useDefaultCss then
|
if config.mods.hyprland.anyrun.useDefaultCss
|
||||||
|
then
|
||||||
''
|
''
|
||||||
#window {
|
#window {
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
|
|
@ -138,8 +138,7 @@
|
||||||
}
|
}
|
||||||
''
|
''
|
||||||
+ config.mods.hyprland.anyrun.customCss
|
+ config.mods.hyprland.anyrun.customCss
|
||||||
else
|
else config.mods.hyprland.anyrun.customCss;
|
||||||
config.mods.hyprland.anyrun.customCss;
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -5,19 +5,14 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
inputs,
|
inputs,
|
||||||
...
|
...
|
||||||
}:
|
}: let
|
||||||
let
|
|
||||||
browserName =
|
browserName =
|
||||||
if (builtins.isString config.mods.homePackages.browser) then
|
if (builtins.isString config.mods.homePackages.browser)
|
||||||
config.mods.homePackages.browser
|
then config.mods.homePackages.browser
|
||||||
else if
|
else if config.mods.homePackages.browser ? meta && config.mods.homePackages.browser.meta ? mainProgram
|
||||||
config.mods.homePackages.browser ? meta && config.mods.homePackages.browser.meta ? mainProgram
|
then config.mods.homePackages.browser.meta.mainProgram
|
||||||
then
|
else config.mods.homePackages.browser.pname;
|
||||||
config.mods.homePackages.browser.meta.mainProgram
|
in {
|
||||||
else
|
|
||||||
config.mods.homePackages.browser.pname;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.mods = {
|
options.mods = {
|
||||||
hyprland = {
|
hyprland = {
|
||||||
enable = lib.mkOption {
|
enable = lib.mkOption {
|
||||||
|
|
@ -35,15 +30,15 @@ in
|
||||||
# all others
|
# all others
|
||||||
",highrr,auto,1"
|
",highrr,auto,1"
|
||||||
];
|
];
|
||||||
example = [ "DP-1,3440x1440@180,2560x0,1,vrr,0" ];
|
example = ["DP-1,3440x1440@180,2560x0,1,vrr,0"];
|
||||||
type = with lib.types; listOf str;
|
type = with lib.types; listOf str;
|
||||||
description = ''
|
description = ''
|
||||||
The monitor configuration for hyprland.
|
The monitor configuration for hyprland.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
workspace = lib.mkOption {
|
workspace = lib.mkOption {
|
||||||
default = [ ];
|
default = [];
|
||||||
example = [ "2,monitor:DP-1, default:true" ];
|
example = ["2,monitor:DP-1, default:true"];
|
||||||
type = with lib.types; listOf str;
|
type = with lib.types; listOf str;
|
||||||
description = ''
|
description = ''
|
||||||
The workspace configuration for hyprland.
|
The workspace configuration for hyprland.
|
||||||
|
|
@ -58,8 +53,8 @@ in
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
extraAutostart = lib.mkOption {
|
extraAutostart = lib.mkOption {
|
||||||
default = [ ];
|
default = [];
|
||||||
example = [ "your application" ];
|
example = ["your application"];
|
||||||
type = lib.types.listOf lib.types.str;
|
type = lib.types.listOf lib.types.str;
|
||||||
description = ''
|
description = ''
|
||||||
Extra exec_once.
|
Extra exec_once.
|
||||||
|
|
@ -74,8 +69,8 @@ in
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
customConfig = lib.mkOption {
|
customConfig = lib.mkOption {
|
||||||
default = { };
|
default = {};
|
||||||
example = { };
|
example = {};
|
||||||
type = with lib.types; attrsOf anything;
|
type = with lib.types; attrsOf anything;
|
||||||
description = ''
|
description = ''
|
||||||
Custom Hyprland configuration.
|
Custom Hyprland configuration.
|
||||||
|
|
@ -83,16 +78,16 @@ in
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
plugins = lib.mkOption {
|
plugins = lib.mkOption {
|
||||||
default = [ ];
|
default = [];
|
||||||
example = [ ];
|
example = [];
|
||||||
type = with lib.types; listOf package;
|
type = with lib.types; listOf package;
|
||||||
description = ''
|
description = ''
|
||||||
Plugins to be added to Hyprland.
|
Plugins to be added to Hyprland.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
pluginConfig = lib.mkOption {
|
pluginConfig = lib.mkOption {
|
||||||
default = { };
|
default = {};
|
||||||
example = { };
|
example = {};
|
||||||
type = with lib.types; attrsOf anything;
|
type = with lib.types; attrsOf anything;
|
||||||
description = ''
|
description = ''
|
||||||
Plugin configuration to be added to Hyprland.
|
Plugin configuration to be added to Hyprland.
|
||||||
|
|
@ -129,7 +124,8 @@ in
|
||||||
wayland.windowManager.hyprland = {
|
wayland.windowManager.hyprland = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings =
|
settings =
|
||||||
if config.mods.hyprland.useDefaultConfig then
|
if config.mods.hyprland.useDefaultConfig
|
||||||
|
then
|
||||||
{
|
{
|
||||||
"$mod" = "SUPER";
|
"$mod" = "SUPER";
|
||||||
|
|
||||||
|
|
@ -366,34 +362,39 @@ in
|
||||||
"immediate,class:^(.*)(needforspeedheat.exe)$"
|
"immediate,class:^(.*)(needforspeedheat.exe)$"
|
||||||
];
|
];
|
||||||
|
|
||||||
exec-once = [
|
exec-once =
|
||||||
# environment
|
[
|
||||||
"systemctl --user import-environment"
|
# environment
|
||||||
"dbus-update-activation-environment --systemd --all"
|
"systemctl --user import-environment"
|
||||||
"hyprctl setcursor Bibata-Modern-Classic 24"
|
"dbus-update-activation-environment --systemd --all"
|
||||||
|
"hyprctl setcursor Bibata-Modern-Classic 24"
|
||||||
|
|
||||||
# other programs
|
# other programs
|
||||||
"hyprpaper"
|
"hyprpaper"
|
||||||
"ironbar"
|
"ironbar"
|
||||||
"${browserName}"
|
"${browserName}"
|
||||||
"oxipaste_daemon"
|
"oxipaste_daemon"
|
||||||
"oxinoti"
|
"oxinoti"
|
||||||
] ++ config.mods.hyprland.extraAutostart;
|
]
|
||||||
|
++ config.mods.hyprland.extraAutostart;
|
||||||
|
|
||||||
plugin = {
|
plugin =
|
||||||
hyprspace = lib.mkIf config.mods.hyprland.hyprspaceEnable {
|
{
|
||||||
bind = [
|
hyprspace = lib.mkIf config.mods.hyprland.hyprspaceEnable {
|
||||||
"SUPER, W, overview:toggle, toggle"
|
bind = [
|
||||||
];
|
"SUPER, W, overview:toggle, toggle"
|
||||||
};
|
];
|
||||||
} // config.mods.hyprland.pluginConfig;
|
};
|
||||||
|
}
|
||||||
|
// config.mods.hyprland.pluginConfig;
|
||||||
}
|
}
|
||||||
// config.mods.hyprland.customConfig
|
// config.mods.hyprland.customConfig
|
||||||
else
|
else lib.mkForce config.mods.hyprland.customConfig;
|
||||||
lib.mkForce config.mods.hyprland.customConfig;
|
plugins =
|
||||||
plugins = [
|
[
|
||||||
(lib.mkIf config.mods.hyprland.hyprspaceEnable inputs.Hyprspace.packages.${pkgs.system}.Hyprspace)
|
(lib.mkIf config.mods.hyprland.hyprspaceEnable inputs.Hyprspace.packages.${pkgs.system}.Hyprspace)
|
||||||
] ++ config.mods.hyprland.plugins;
|
]
|
||||||
|
++ config.mods.hyprland.plugins;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -4,8 +4,7 @@
|
||||||
options,
|
options,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
{
|
|
||||||
options.mods = {
|
options.mods = {
|
||||||
hyprland.hyprlock = {
|
hyprland.hyprlock = {
|
||||||
enable = lib.mkOption {
|
enable = lib.mkOption {
|
||||||
|
|
@ -22,7 +21,7 @@
|
||||||
stylix.targets.hyprlock = {
|
stylix.targets.hyprlock = {
|
||||||
enable = false;
|
enable = false;
|
||||||
};
|
};
|
||||||
home.packages = with pkgs; [ hyprlock ];
|
home.packages = with pkgs; [hyprlock];
|
||||||
programs.hyprlock = lib.mkIf config.mods.hyprland.hyprlock.enable {
|
programs.hyprlock = lib.mkIf config.mods.hyprland.hyprlock.enable {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
|
|
|
||||||
|
|
@ -4,8 +4,7 @@
|
||||||
options,
|
options,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
{
|
|
||||||
options.mods = {
|
options.mods = {
|
||||||
hyprland.hyprpaper = {
|
hyprland.hyprpaper = {
|
||||||
enable = lib.mkOption {
|
enable = lib.mkOption {
|
||||||
|
|
@ -30,7 +29,7 @@
|
||||||
|
|
||||||
config = lib.mkIf config.mods.hyprland.hyprpaper.enable (
|
config = lib.mkIf config.mods.hyprland.hyprpaper.enable (
|
||||||
lib.optionalAttrs (options ? xdg.configFile) {
|
lib.optionalAttrs (options ? xdg.configFile) {
|
||||||
home.packages = with pkgs; [ hyprpaper ];
|
home.packages = with pkgs; [hyprpaper];
|
||||||
xdg.configFile."hypr/hyprpaper.conf" = lib.mkIf config.mods.hyprland.hyprpaper.enable {
|
xdg.configFile."hypr/hyprpaper.conf" = lib.mkIf config.mods.hyprland.hyprpaper.enable {
|
||||||
text = config.mods.hyprland.hyprpaper.config;
|
text = config.mods.hyprland.hyprpaper.config;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -3,11 +3,9 @@
|
||||||
config,
|
config,
|
||||||
options,
|
options,
|
||||||
...
|
...
|
||||||
}:
|
}: let
|
||||||
let
|
|
||||||
username = config.conf.username;
|
username = config.conf.username;
|
||||||
in
|
in {
|
||||||
{
|
|
||||||
options.mods = {
|
options.mods = {
|
||||||
hyprland.ironbar = {
|
hyprland.ironbar = {
|
||||||
enable = lib.mkOption {
|
enable = lib.mkOption {
|
||||||
|
|
@ -25,8 +23,8 @@ in
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
customConfig = lib.mkOption {
|
customConfig = lib.mkOption {
|
||||||
default = { };
|
default = {};
|
||||||
example = { };
|
example = {};
|
||||||
type = with lib.types; attrsOf anything;
|
type = with lib.types; attrsOf anything;
|
||||||
description = ''
|
description = ''
|
||||||
Custom ironbar configuration.
|
Custom ironbar configuration.
|
||||||
|
|
@ -61,7 +59,8 @@ in
|
||||||
programs.ironbar = {
|
programs.ironbar = {
|
||||||
enable = true;
|
enable = true;
|
||||||
style =
|
style =
|
||||||
if config.mods.hyprland.ironbar.useDefaultCss then
|
if config.mods.hyprland.ironbar.useDefaultCss
|
||||||
|
then
|
||||||
''
|
''
|
||||||
@import url("/home/${username}/.config/gtk-3.0/gtk.css");
|
@import url("/home/${username}/.config/gtk-3.0/gtk.css");
|
||||||
|
|
||||||
|
|
@ -197,106 +196,108 @@ in
|
||||||
}
|
}
|
||||||
''
|
''
|
||||||
+ config.mods.hyprland.ironbar.customCss
|
+ config.mods.hyprland.ironbar.customCss
|
||||||
else
|
else config.mods.hyprland.ironbar.customCss;
|
||||||
config.mods.hyprland.ironbar.customCss;
|
|
||||||
features = [
|
features = [
|
||||||
#"another_feature"
|
#"another_feature"
|
||||||
];
|
];
|
||||||
config = {
|
config = {
|
||||||
monitors."${config.conf.defaultMonitor}" =
|
monitors."${config.conf.defaultMonitor}" =
|
||||||
if config.mods.hyprland.ironbar.useDefaultConfig then
|
if config.mods.hyprland.ironbar.useDefaultConfig
|
||||||
|
then
|
||||||
{
|
{
|
||||||
end = config.conf.ironbar.modules ++ [
|
end =
|
||||||
{
|
config.conf.ironbar.modules
|
||||||
type = "sys_info";
|
++ [
|
||||||
format = [ " {memory_percent}" ];
|
{
|
||||||
interval.memory = 30;
|
type = "sys_info";
|
||||||
class = "memory-usage";
|
format = [" {memory_percent}"];
|
||||||
}
|
interval.memory = 30;
|
||||||
{
|
class = "memory-usage";
|
||||||
type = "custom";
|
}
|
||||||
bar = [
|
{
|
||||||
{
|
type = "custom";
|
||||||
type = "button";
|
bar = [
|
||||||
class = "popup-button";
|
{
|
||||||
label = "";
|
type = "button";
|
||||||
on_click = "popup:toggle";
|
class = "popup-button";
|
||||||
}
|
label = "";
|
||||||
];
|
on_click = "popup:toggle";
|
||||||
class = "popup-button-box";
|
}
|
||||||
popup = [
|
];
|
||||||
{
|
class = "popup-button-box";
|
||||||
type = "box";
|
popup = [
|
||||||
orientation = "vertical";
|
{
|
||||||
class = "audio-box";
|
type = "box";
|
||||||
widgets = [
|
orientation = "vertical";
|
||||||
{
|
class = "audio-box";
|
||||||
type = "box";
|
widgets = [
|
||||||
orientation = "horizontal";
|
{
|
||||||
widgets = [
|
type = "box";
|
||||||
{
|
orientation = "horizontal";
|
||||||
type = "button";
|
widgets = [
|
||||||
class = "audio-button";
|
{
|
||||||
label = "";
|
type = "button";
|
||||||
on_click = (lib.mkIf config.mods.scripts.audioControl "!audioControl bluetooth");
|
class = "audio-button";
|
||||||
}
|
label = "";
|
||||||
{
|
on_click = lib.mkIf config.mods.scripts.audioControl "!audioControl bluetooth";
|
||||||
type = "button";
|
}
|
||||||
class = "audio-button";
|
{
|
||||||
label = "";
|
type = "button";
|
||||||
on_click = (lib.mkIf config.mods.scripts.audioControl "!audioControl internal");
|
class = "audio-button";
|
||||||
}
|
label = "";
|
||||||
];
|
on_click = lib.mkIf config.mods.scripts.audioControl "!audioControl internal";
|
||||||
class = "audio-button-box";
|
}
|
||||||
}
|
];
|
||||||
{
|
class = "audio-button-box";
|
||||||
type = "label";
|
}
|
||||||
label = "Output";
|
{
|
||||||
}
|
type = "label";
|
||||||
{
|
label = "Output";
|
||||||
type = "slider";
|
}
|
||||||
class = "audio-slider";
|
{
|
||||||
step = 1.0;
|
type = "slider";
|
||||||
length = 200;
|
class = "audio-slider";
|
||||||
value = "pactl get-sink-volume @DEFAULT_SINK@ | awk -F'/' '{ print $2 }' | tr -d ' %'";
|
step = 1.0;
|
||||||
on_change = "!pactl set-sink-volume @DEFAULT_SINK@ $0%";
|
length = 200;
|
||||||
}
|
value = "pactl get-sink-volume @DEFAULT_SINK@ | awk -F'/' '{ print $2 }' | tr -d ' %'";
|
||||||
{
|
on_change = "!pactl set-sink-volume @DEFAULT_SINK@ $0%";
|
||||||
type = "label";
|
}
|
||||||
label = "Input";
|
{
|
||||||
}
|
type = "label";
|
||||||
{
|
label = "Input";
|
||||||
type = "slider";
|
}
|
||||||
class = "audio-slider";
|
{
|
||||||
step = 1.0;
|
type = "slider";
|
||||||
length = 200;
|
class = "audio-slider";
|
||||||
value = "pactl get-source-volume @DEFAULT_SOURCE@ | awk -F'/' '{ print $2 }' | tr -d ' %'";
|
step = 1.0;
|
||||||
on_change = "!pactl set-source-volume @DEFAULT_SOURCE@ $0%";
|
length = 200;
|
||||||
}
|
value = "pactl get-source-volume @DEFAULT_SOURCE@ | awk -F'/' '{ print $2 }' | tr -d ' %'";
|
||||||
];
|
on_change = "!pactl set-source-volume @DEFAULT_SOURCE@ $0%";
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
{
|
];
|
||||||
type = "custom";
|
}
|
||||||
bar = [
|
{
|
||||||
{
|
type = "custom";
|
||||||
type = "button";
|
bar = [
|
||||||
class = "popup-button";
|
{
|
||||||
label = "";
|
type = "button";
|
||||||
on_click = "!oxidash --css /home/${username}/gits/oxidash/style.css";
|
class = "popup-button";
|
||||||
}
|
label = "";
|
||||||
];
|
on_click = "!oxidash --css /home/${username}/gits/oxidash/style.css";
|
||||||
class = "popup-button-box";
|
}
|
||||||
}
|
];
|
||||||
{
|
class = "popup-button-box";
|
||||||
type = "clock";
|
}
|
||||||
format = "%I:%M";
|
{
|
||||||
format_popup = "%I:%M:%S";
|
type = "clock";
|
||||||
locale = "en_US";
|
format = "%I:%M";
|
||||||
}
|
format_popup = "%I:%M:%S";
|
||||||
{ type = "tray"; }
|
locale = "en_US";
|
||||||
];
|
}
|
||||||
|
{type = "tray";}
|
||||||
|
];
|
||||||
position = "top";
|
position = "top";
|
||||||
height = 10;
|
height = 10;
|
||||||
anchor_to_edges = true;
|
anchor_to_edges = true;
|
||||||
|
|
@ -317,8 +318,7 @@ in
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
// config.mods.hyprland.ironbar.customConfig
|
// config.mods.hyprland.ironbar.customConfig
|
||||||
else
|
else config.mods.hyprland.ironbar.customConfig;
|
||||||
config.mods.hyprland.ironbar.customConfig;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,8 +3,7 @@
|
||||||
options,
|
options,
|
||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
{
|
|
||||||
options.mods.kde = {
|
options.mods.kde = {
|
||||||
enable = lib.mkOption {
|
enable = lib.mkOption {
|
||||||
default = false;
|
default = false;
|
||||||
|
|
@ -20,5 +19,4 @@
|
||||||
services.desktopManager.plasma6.enable = true;
|
services.desktopManager.plasma6.enable = true;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,9 +4,7 @@
|
||||||
options,
|
options,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
{
|
|
||||||
|
|
||||||
options.mods = {
|
options.mods = {
|
||||||
kdeConnect.enable = lib.mkOption {
|
kdeConnect.enable = lib.mkOption {
|
||||||
default = false;
|
default = false;
|
||||||
|
|
@ -38,7 +36,7 @@
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
// lib.optionalAttrs (options ? home.packages) {
|
// lib.optionalAttrs (options ? home.packages) {
|
||||||
home.packages = with pkgs; [ kdePackages.kdeconnect-kde ];
|
home.packages = with pkgs; [kdePackages.kdeconnect-kde];
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,8 +4,7 @@
|
||||||
options,
|
options,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
{
|
|
||||||
options.mods.keepassxc = {
|
options.mods.keepassxc = {
|
||||||
enable = lib.mkOption {
|
enable = lib.mkOption {
|
||||||
default = true;
|
default = true;
|
||||||
|
|
@ -34,7 +33,7 @@
|
||||||
};
|
};
|
||||||
config = lib.mkIf config.mods.keepassxc.enable (
|
config = lib.mkIf config.mods.keepassxc.enable (
|
||||||
lib.optionalAttrs (options ? home.file) {
|
lib.optionalAttrs (options ? home.file) {
|
||||||
home.packages = [ pkgs.keepassxc ];
|
home.packages = [pkgs.keepassxc];
|
||||||
xdg.configFile."keepassxc/keepassxc.ini" = {
|
xdg.configFile."keepassxc/keepassxc.ini" = {
|
||||||
text = ''
|
text = ''
|
||||||
[General]
|
[General]
|
||||||
|
|
|
||||||
|
|
@ -5,10 +5,9 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
inputs,
|
inputs,
|
||||||
...
|
...
|
||||||
}:
|
}: let
|
||||||
let
|
base16 = pkgs.callPackage inputs.base16.lib {};
|
||||||
base16 = pkgs.callPackage inputs.base16.lib { };
|
scheme = base16.mkSchemeAttrs config.stylix.base16Scheme;
|
||||||
scheme = (base16.mkSchemeAttrs config.stylix.base16Scheme);
|
|
||||||
hexTable = {
|
hexTable = {
|
||||||
"0" = "1";
|
"0" = "1";
|
||||||
"1" = "0";
|
"1" = "0";
|
||||||
|
|
@ -32,10 +31,9 @@ let
|
||||||
"#"
|
"#"
|
||||||
+ lib.strings.concatStrings (
|
+ lib.strings.concatStrings (
|
||||||
(lib.lists.take 5 (lib.strings.stringToCharacters scheme.base00))
|
(lib.lists.take 5 (lib.strings.stringToCharacters scheme.base00))
|
||||||
++ [ hexTable."${(lib.lists.last (lib.strings.stringToCharacters scheme.base00))}" ]
|
++ [hexTable."${(lib.lists.last (lib.strings.stringToCharacters scheme.base00))}"]
|
||||||
);
|
);
|
||||||
in
|
in {
|
||||||
{
|
|
||||||
options.mods.kitty = {
|
options.mods.kitty = {
|
||||||
enable = lib.mkOption {
|
enable = lib.mkOption {
|
||||||
default = true;
|
default = true;
|
||||||
|
|
@ -44,7 +42,7 @@ in
|
||||||
description = "Enables kitty";
|
description = "Enables kitty";
|
||||||
};
|
};
|
||||||
additionalConfig = lib.mkOption {
|
additionalConfig = lib.mkOption {
|
||||||
default = { };
|
default = {};
|
||||||
example = {
|
example = {
|
||||||
# for the insane people out there :P
|
# for the insane people out there :P
|
||||||
enable_audio_bell = "yes";
|
enable_audio_bell = "yes";
|
||||||
|
|
@ -60,79 +58,81 @@ in
|
||||||
};
|
};
|
||||||
programs.kitty = {
|
programs.kitty = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings =
|
||||||
enable_audio_bell = "no";
|
{
|
||||||
window_alert_on_bell = "no";
|
enable_audio_bell = "no";
|
||||||
cursor_blink_interval = "0";
|
window_alert_on_bell = "no";
|
||||||
window_padding_width = "1";
|
cursor_blink_interval = "0";
|
||||||
shell_integration = "yes";
|
window_padding_width = "1";
|
||||||
sync_with_monitor = "no";
|
shell_integration = "yes";
|
||||||
background_opacity = "0.8";
|
sync_with_monitor = "no";
|
||||||
|
background_opacity = "0.8";
|
||||||
|
|
||||||
font_family = "${config.mods.stylix.fonts.monospace.name}";
|
font_family = "${config.mods.stylix.fonts.monospace.name}";
|
||||||
bold_font = "${config.mods.stylix.fonts.monospace.name} Extra Bold";
|
bold_font = "${config.mods.stylix.fonts.monospace.name} Extra Bold";
|
||||||
italic_font = "${config.mods.stylix.fonts.monospace.name} Extra Italic";
|
italic_font = "${config.mods.stylix.fonts.monospace.name} Extra Italic";
|
||||||
bold_italic_font = "${config.mods.stylix.fonts.monospace.name} Extra Bold Italic";
|
bold_italic_font = "${config.mods.stylix.fonts.monospace.name} Extra Bold Italic";
|
||||||
|
|
||||||
background = base;
|
background = base;
|
||||||
foreground = "#" + scheme.base05;
|
foreground = "#" + scheme.base05;
|
||||||
selection_foreground = "#" + scheme.base05;
|
selection_foreground = "#" + scheme.base05;
|
||||||
selection_background = base;
|
selection_background = base;
|
||||||
url_color = "#" + scheme.base04;
|
url_color = "#" + scheme.base04;
|
||||||
cursor = "#" + scheme.base05;
|
cursor = "#" + scheme.base05;
|
||||||
active_border_color = "#" + scheme.base03;
|
active_border_color = "#" + scheme.base03;
|
||||||
inactive_border_color = "#" + scheme.base01;
|
inactive_border_color = "#" + scheme.base01;
|
||||||
active_tab_background = base;
|
active_tab_background = base;
|
||||||
active_tab_foreground = "#" + scheme.base05;
|
active_tab_foreground = "#" + scheme.base05;
|
||||||
inactive_tab_background = "#" + scheme.base01;
|
inactive_tab_background = "#" + scheme.base01;
|
||||||
inactive_tab_foreground = "#" + scheme.base04;
|
inactive_tab_foreground = "#" + scheme.base04;
|
||||||
tab_bar_background = "#" + scheme.base01;
|
tab_bar_background = "#" + scheme.base01;
|
||||||
|
|
||||||
mark1_foreground = "#" + scheme.base00;
|
mark1_foreground = "#" + scheme.base00;
|
||||||
mark1_background = "#" + scheme.base07;
|
mark1_background = "#" + scheme.base07;
|
||||||
mark2_foreground = "#" + scheme.base00;
|
mark2_foreground = "#" + scheme.base00;
|
||||||
mark2_background = "#" + scheme.base0E;
|
mark2_background = "#" + scheme.base0E;
|
||||||
mark3_foreground = "#" + scheme.base00;
|
mark3_foreground = "#" + scheme.base00;
|
||||||
mark3_background = "#" + scheme.base08;
|
mark3_background = "#" + scheme.base08;
|
||||||
|
|
||||||
color0 = "#" + scheme.base03;
|
color0 = "#" + scheme.base03;
|
||||||
color1 = "#" + scheme.base08;
|
color1 = "#" + scheme.base08;
|
||||||
color2 = "#" + scheme.base0B;
|
color2 = "#" + scheme.base0B;
|
||||||
color3 = "#" + scheme.base0A;
|
color3 = "#" + scheme.base0A;
|
||||||
color4 = "#" + scheme.base0D;
|
color4 = "#" + scheme.base0D;
|
||||||
color5 = "#" + scheme.base06;
|
color5 = "#" + scheme.base06;
|
||||||
color6 = "#" + scheme.base0C;
|
color6 = "#" + scheme.base0C;
|
||||||
color7 = "#" + scheme.base07;
|
color7 = "#" + scheme.base07;
|
||||||
|
|
||||||
color8 = "#" + scheme.base04;
|
color8 = "#" + scheme.base04;
|
||||||
color9 = "#" + scheme.base08;
|
color9 = "#" + scheme.base08;
|
||||||
color10 = "#" + scheme.base0B;
|
color10 = "#" + scheme.base0B;
|
||||||
color11 = "#" + scheme.base0A;
|
color11 = "#" + scheme.base0A;
|
||||||
color12 = "#" + scheme.base0D;
|
color12 = "#" + scheme.base0D;
|
||||||
color13 = "#" + scheme.base06;
|
color13 = "#" + scheme.base06;
|
||||||
color14 = "#" + scheme.base0C;
|
color14 = "#" + scheme.base0C;
|
||||||
color15 = "#" + scheme.base0B;
|
color15 = "#" + scheme.base0B;
|
||||||
|
|
||||||
# color0 = base;
|
# color0 = base;
|
||||||
# color1 = "#" + scheme.base08;
|
# color1 = "#" + scheme.base08;
|
||||||
# color2 = "#" + scheme.base0B;
|
# color2 = "#" + scheme.base0B;
|
||||||
# color3 = "#" + scheme.base0A;
|
# color3 = "#" + scheme.base0A;
|
||||||
# color4 = "#" + scheme.base0D;
|
# color4 = "#" + scheme.base0D;
|
||||||
# color5 = "#" + scheme.base0E;
|
# color5 = "#" + scheme.base0E;
|
||||||
# color6 = "#" + scheme.base0C;
|
# color6 = "#" + scheme.base0C;
|
||||||
# color7 = "#" + scheme.base05;
|
# color7 = "#" + scheme.base05;
|
||||||
#
|
#
|
||||||
# color8 = "#" + scheme.base03;
|
# color8 = "#" + scheme.base03;
|
||||||
# color9 = "#" + scheme.base08;
|
# color9 = "#" + scheme.base08;
|
||||||
# color10 = "#" + scheme.base0B;
|
# color10 = "#" + scheme.base0B;
|
||||||
# color11 = "#" + scheme.base0A;
|
# color11 = "#" + scheme.base0A;
|
||||||
# color12 = "#" + scheme.base0D;
|
# color12 = "#" + scheme.base0D;
|
||||||
# color13 = "#" + scheme.base0E;
|
# color13 = "#" + scheme.base0E;
|
||||||
# color14 = "#" + scheme.base0C;
|
# color14 = "#" + scheme.base0C;
|
||||||
# color15 = "#" + scheme.base07;
|
# color15 = "#" + scheme.base07;
|
||||||
|
|
||||||
shell = lib.mkIf config.mods.fish.enable "fish";
|
shell = lib.mkIf config.mods.fish.enable "fish";
|
||||||
} // config.mods.kitty.additionalConfig;
|
}
|
||||||
|
// config.mods.kitty.additionalConfig;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -4,8 +4,7 @@
|
||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
{
|
|
||||||
options.mods.media = {
|
options.mods.media = {
|
||||||
useBasePackages = lib.mkOption {
|
useBasePackages = lib.mkOption {
|
||||||
default = true;
|
default = true;
|
||||||
|
|
@ -14,24 +13,24 @@
|
||||||
description = "Default media packages (If disabled, only the additional packages will be installed)";
|
description = "Default media packages (If disabled, only the additional packages will be installed)";
|
||||||
};
|
};
|
||||||
additionalPackages = lib.mkOption {
|
additionalPackages = lib.mkOption {
|
||||||
default = [ ];
|
default = [];
|
||||||
example = [ pkgs.flatpak ];
|
example = [pkgs.flatpak];
|
||||||
type = with lib.types; listOf package;
|
type = with lib.types; listOf package;
|
||||||
description = ''
|
description = ''
|
||||||
Additional media packages.
|
Additional media packages.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
specialPrograms = lib.mkOption {
|
specialPrograms = lib.mkOption {
|
||||||
default = { };
|
default = {};
|
||||||
example = { };
|
example = {};
|
||||||
type = with lib.types; attrsOf anything;
|
type = with lib.types; attrsOf anything;
|
||||||
description = ''
|
description = ''
|
||||||
special program configuration to be added which require programs.something notation.
|
special program configuration to be added which require programs.something notation.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
specialServices = lib.mkOption {
|
specialServices = lib.mkOption {
|
||||||
default = { };
|
default = {};
|
||||||
example = { };
|
example = {};
|
||||||
type = with lib.types; attrsOf anything;
|
type = with lib.types; attrsOf anything;
|
||||||
description = ''
|
description = ''
|
||||||
special services configuration to be added which require an services.something notation.
|
special services configuration to be added which require an services.something notation.
|
||||||
|
|
@ -40,51 +39,50 @@
|
||||||
};
|
};
|
||||||
config = lib.optionalAttrs (options ? home.packages) {
|
config = lib.optionalAttrs (options ? home.packages) {
|
||||||
home.packages =
|
home.packages =
|
||||||
if config.mods.media.useBasePackages then
|
if config.mods.media.useBasePackages
|
||||||
|
then
|
||||||
with pkgs;
|
with pkgs;
|
||||||
[
|
[
|
||||||
# base audio
|
# base audio
|
||||||
pipewire
|
pipewire
|
||||||
wireplumber
|
wireplumber
|
||||||
# audio control
|
# audio control
|
||||||
playerctl
|
playerctl
|
||||||
# images
|
# images
|
||||||
imv
|
imv
|
||||||
# videos
|
# videos
|
||||||
mpv
|
mpv
|
||||||
# pdf
|
# pdf
|
||||||
zathura
|
zathura
|
||||||
evince
|
evince
|
||||||
libreoffice-fresh
|
libreoffice-fresh
|
||||||
onlyoffice-bin
|
onlyoffice-bin
|
||||||
pdftk
|
pdftk
|
||||||
pdfpc
|
pdfpc
|
||||||
polylux2pdfpc
|
polylux2pdfpc
|
||||||
# spotify
|
# spotify
|
||||||
# video editing
|
# video editing
|
||||||
kdenlive
|
kdenlive
|
||||||
# image creation
|
# image creation
|
||||||
inkscape
|
inkscape
|
||||||
gimp
|
gimp
|
||||||
krita
|
krita
|
||||||
yt-dlp
|
yt-dlp
|
||||||
]
|
]
|
||||||
++ config.mods.media.additionalPackages
|
++ config.mods.media.additionalPackages
|
||||||
else
|
else config.mods.media.additionalPackages;
|
||||||
config.mods.media.additionalPackages;
|
|
||||||
programs =
|
programs =
|
||||||
if config.mods.media.useBasePackages then
|
if config.mods.media.useBasePackages
|
||||||
|
then
|
||||||
{
|
{
|
||||||
obs-studio.enable = true;
|
obs-studio.enable = true;
|
||||||
obs-studio.plugins = with pkgs; [ obs-studio-plugins.obs-vaapi ];
|
obs-studio.plugins = with pkgs; [obs-studio-plugins.obs-vaapi];
|
||||||
}
|
}
|
||||||
// config.mods.media.specialPrograms
|
// config.mods.media.specialPrograms
|
||||||
else
|
else config.mods.media.specialPrograms;
|
||||||
config.mods.media.specialPrograms;
|
|
||||||
services =
|
services =
|
||||||
if config.mods.media.useBasePackages then
|
if config.mods.media.useBasePackages
|
||||||
config.mods.media.specialServices
|
then config.mods.media.specialServices
|
||||||
else
|
else config.mods.media.specialServices;
|
||||||
config.mods.media.specialServices;
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,19 +5,14 @@
|
||||||
lib,
|
lib,
|
||||||
options,
|
options,
|
||||||
...
|
...
|
||||||
}:
|
}: let
|
||||||
let
|
|
||||||
browserName =
|
browserName =
|
||||||
if (builtins.isString config.mods.homePackages.browser) then
|
if (builtins.isString config.mods.homePackages.browser)
|
||||||
config.mods.homePackages.browser
|
then config.mods.homePackages.browser
|
||||||
else if
|
else if config.mods.homePackages.browser ? meta && config.mods.homePackages.browser.meta ? mainProgram
|
||||||
config.mods.homePackages.browser ? meta && config.mods.homePackages.browser.meta ? mainProgram
|
then config.mods.homePackages.browser.meta.mainProgram
|
||||||
then
|
else config.mods.homePackages.browser.pname;
|
||||||
config.mods.homePackages.browser.meta.mainProgram
|
in {
|
||||||
else
|
|
||||||
config.mods.homePackages.browser.pname;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.mods.mime = {
|
options.mods.mime = {
|
||||||
enable = lib.mkOption {
|
enable = lib.mkOption {
|
||||||
default = true;
|
default = true;
|
||||||
|
|
@ -32,7 +27,7 @@ in
|
||||||
"jpeg"
|
"jpeg"
|
||||||
"gif"
|
"gif"
|
||||||
];
|
];
|
||||||
example = [ ];
|
example = [];
|
||||||
type = with lib.types; listOf str;
|
type = with lib.types; listOf str;
|
||||||
description = "Image mime handlers";
|
description = "Image mime handlers";
|
||||||
};
|
};
|
||||||
|
|
@ -42,7 +37,7 @@ in
|
||||||
"avi"
|
"avi"
|
||||||
"mkv"
|
"mkv"
|
||||||
];
|
];
|
||||||
example = [ ];
|
example = [];
|
||||||
type = with lib.types; listOf str;
|
type = with lib.types; listOf str;
|
||||||
description = "Video mime handlers";
|
description = "Video mime handlers";
|
||||||
};
|
};
|
||||||
|
|
@ -53,7 +48,7 @@ in
|
||||||
"wav"
|
"wav"
|
||||||
"aac"
|
"aac"
|
||||||
];
|
];
|
||||||
example = [ ];
|
example = [];
|
||||||
type = with lib.types; listOf str;
|
type = with lib.types; listOf str;
|
||||||
description = "Audio mime handlers";
|
description = "Audio mime handlers";
|
||||||
};
|
};
|
||||||
|
|
@ -66,7 +61,7 @@ in
|
||||||
"x-extension-xht"
|
"x-extension-xht"
|
||||||
"x-extension-xhtml"
|
"x-extension-xhtml"
|
||||||
];
|
];
|
||||||
example = [ ];
|
example = [];
|
||||||
type = with lib.types; listOf str;
|
type = with lib.types; listOf str;
|
||||||
description = "Browser mime handlers";
|
description = "Browser mime handlers";
|
||||||
};
|
};
|
||||||
|
|
@ -78,71 +73,71 @@ in
|
||||||
"https"
|
"https"
|
||||||
"unknown"
|
"unknown"
|
||||||
];
|
];
|
||||||
example = [ ];
|
example = [];
|
||||||
type = with lib.types; listOf str;
|
type = with lib.types; listOf str;
|
||||||
description = "Browser X mime handlers";
|
description = "Browser X mime handlers";
|
||||||
};
|
};
|
||||||
browserApplications = lib.mkOption {
|
browserApplications = lib.mkOption {
|
||||||
default = [ "${browserName}" ];
|
default = ["${browserName}"];
|
||||||
example = [ ];
|
example = [];
|
||||||
type = with lib.types; listOf str;
|
type = with lib.types; listOf str;
|
||||||
description = "Applications used for handling browser mime types";
|
description = "Applications used for handling browser mime types";
|
||||||
};
|
};
|
||||||
imageApplications = lib.mkOption {
|
imageApplications = lib.mkOption {
|
||||||
default = [ "imv" ];
|
default = ["imv"];
|
||||||
example = [ ];
|
example = [];
|
||||||
type = with lib.types; listOf str;
|
type = with lib.types; listOf str;
|
||||||
description = "Applications used for handling image mime types";
|
description = "Applications used for handling image mime types";
|
||||||
};
|
};
|
||||||
videoApplications = lib.mkOption {
|
videoApplications = lib.mkOption {
|
||||||
default = [ "mpv" ];
|
default = ["mpv"];
|
||||||
example = [ ];
|
example = [];
|
||||||
type = with lib.types; listOf str;
|
type = with lib.types; listOf str;
|
||||||
description = "Applications used for handling video mime types";
|
description = "Applications used for handling video mime types";
|
||||||
};
|
};
|
||||||
audioApplications = lib.mkOption {
|
audioApplications = lib.mkOption {
|
||||||
default = [ "io.bassi.Amberol" ];
|
default = ["io.bassi.Amberol"];
|
||||||
example = [ ];
|
example = [];
|
||||||
type = with lib.types; listOf str;
|
type = with lib.types; listOf str;
|
||||||
description = "Applications used for handling audio mime types";
|
description = "Applications used for handling audio mime types";
|
||||||
};
|
};
|
||||||
# TODO additional config
|
# TODO additional config
|
||||||
};
|
};
|
||||||
config = lib.optionalAttrs (options ? home) {
|
config = lib.optionalAttrs (options ? home) {
|
||||||
xdg =
|
xdg = let
|
||||||
let
|
xdgAssociations = type: program: list:
|
||||||
xdgAssociations =
|
builtins.listToAttrs (
|
||||||
type: program: list:
|
map (e: {
|
||||||
builtins.listToAttrs (
|
name = "${type}/${e}";
|
||||||
map (e: {
|
value = program;
|
||||||
name = "${type}/${e}";
|
})
|
||||||
value = program;
|
list
|
||||||
}) list
|
|
||||||
);
|
|
||||||
|
|
||||||
imageAc = xdgAssociations "image" config.mods.mime.imageApplications config.mods.mime.imageTypes;
|
|
||||||
videoAc = xdgAssociations "video" config.mods.mime.videoApplications config.mods.mime.videoTypes;
|
|
||||||
audioAc = xdgAssociations "audio" config.mods.mime.audioApplications config.mods.mime.audioTypes;
|
|
||||||
browserAc =
|
|
||||||
(xdgAssociations "application" config.mods.mime.browserApplications config.mods.mime.browserTypes)
|
|
||||||
// (xdgAssociations "x-scheme-handler" config.mods.mime.browserApplications
|
|
||||||
config.mods.mime.browserXTypes
|
|
||||||
);
|
|
||||||
associations = builtins.mapAttrs (_: v: (map (e: "${e}.desktop") v)) (
|
|
||||||
# TODO make configurable
|
|
||||||
{
|
|
||||||
"application/pdf" = [ "org.pwmt.zathura-pdf-mupdf" ];
|
|
||||||
"text/html" = config.mods.mime.browserApplications;
|
|
||||||
"text/plain" = [ "neovide" ];
|
|
||||||
"x-scheme-handler/chrome" = [ "com.brave.browser" ];
|
|
||||||
"inode/directory" = [ "yazi" ];
|
|
||||||
}
|
|
||||||
// imageAc
|
|
||||||
// audioAc
|
|
||||||
// videoAc
|
|
||||||
// browserAc
|
|
||||||
);
|
);
|
||||||
in
|
|
||||||
|
imageAc = xdgAssociations "image" config.mods.mime.imageApplications config.mods.mime.imageTypes;
|
||||||
|
videoAc = xdgAssociations "video" config.mods.mime.videoApplications config.mods.mime.videoTypes;
|
||||||
|
audioAc = xdgAssociations "audio" config.mods.mime.audioApplications config.mods.mime.audioTypes;
|
||||||
|
browserAc =
|
||||||
|
(xdgAssociations "application" config.mods.mime.browserApplications config.mods.mime.browserTypes)
|
||||||
|
// (
|
||||||
|
xdgAssociations "x-scheme-handler" config.mods.mime.browserApplications
|
||||||
|
config.mods.mime.browserXTypes
|
||||||
|
);
|
||||||
|
associations = builtins.mapAttrs (_: v: (map (e: "${e}.desktop") v)) (
|
||||||
|
# TODO make configurable
|
||||||
|
{
|
||||||
|
"application/pdf" = ["org.pwmt.zathura-pdf-mupdf"];
|
||||||
|
"text/html" = config.mods.mime.browserApplications;
|
||||||
|
"text/plain" = ["neovide"];
|
||||||
|
"x-scheme-handler/chrome" = ["com.brave.browser"];
|
||||||
|
"inode/directory" = ["yazi"];
|
||||||
|
}
|
||||||
|
// imageAc
|
||||||
|
// audioAc
|
||||||
|
// videoAc
|
||||||
|
// browserAc
|
||||||
|
);
|
||||||
|
in
|
||||||
lib.mkIf config.mods.mime.enable {
|
lib.mkIf config.mods.mime.enable {
|
||||||
enable = true;
|
enable = true;
|
||||||
cacheHome = config.home.homeDirectory + "/.local/cache";
|
cacheHome = config.home.homeDirectory + "/.local/cache";
|
||||||
|
|
|
||||||
|
|
@ -4,8 +4,7 @@
|
||||||
options,
|
options,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
{
|
|
||||||
options.mods.ncspot = {
|
options.mods.ncspot = {
|
||||||
enable = lib.mkOption {
|
enable = lib.mkOption {
|
||||||
default = false;
|
default = false;
|
||||||
|
|
@ -16,13 +15,13 @@
|
||||||
};
|
};
|
||||||
config = lib.mkIf config.mods.ncspot.enable (
|
config = lib.mkIf config.mods.ncspot.enable (
|
||||||
lib.optionalAttrs (options ? home.packages) {
|
lib.optionalAttrs (options ? home.packages) {
|
||||||
home.packages = with pkgs; [ ncspot ];
|
home.packages = with pkgs; [ncspot];
|
||||||
xdg.configFile."ncspot/config.toml".source = (pkgs.formats.toml { }).generate "ncspot" {
|
xdg.configFile."ncspot/config.toml".source = (pkgs.formats.toml {}).generate "ncspot" {
|
||||||
notify = true;
|
notify = true;
|
||||||
shuffle = true;
|
shuffle = true;
|
||||||
cover_max_scale = 2;
|
cover_max_scale = 2;
|
||||||
initial_screen = "library";
|
initial_screen = "library";
|
||||||
library_tabs = [ "playlists" ];
|
library_tabs = ["playlists"];
|
||||||
theme = {
|
theme = {
|
||||||
background = "#1a1b26";
|
background = "#1a1b26";
|
||||||
primary = "#9aa5ce";
|
primary = "#9aa5ce";
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
{ lib, ... }:
|
{lib, ...}: {
|
||||||
{
|
|
||||||
options.mods = {
|
options.mods = {
|
||||||
nextcloud = {
|
nextcloud = {
|
||||||
enable = lib.mkOption {
|
enable = lib.mkOption {
|
||||||
|
|
@ -21,7 +20,7 @@
|
||||||
description = "Your url";
|
description = "Your url";
|
||||||
};
|
};
|
||||||
synclist = lib.mkOption {
|
synclist = lib.mkOption {
|
||||||
default = [ ];
|
default = [];
|
||||||
example = [
|
example = [
|
||||||
{
|
{
|
||||||
name = "sync globi folder";
|
name = "sync globi folder";
|
||||||
|
|
@ -36,5 +35,4 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,8 +4,7 @@
|
||||||
options,
|
options,
|
||||||
inputs,
|
inputs,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
{
|
|
||||||
imports = [
|
imports = [
|
||||||
./oxidash.nix
|
./oxidash.nix
|
||||||
./oxinoti.nix
|
./oxinoti.nix
|
||||||
|
|
|
||||||
|
|
@ -3,8 +3,7 @@
|
||||||
config,
|
config,
|
||||||
options,
|
options,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
{
|
|
||||||
options.mods.oxi.oxidash = {
|
options.mods.oxi.oxidash = {
|
||||||
enable = lib.mkOption {
|
enable = lib.mkOption {
|
||||||
default = true;
|
default = true;
|
||||||
|
|
|
||||||
|
|
@ -3,8 +3,7 @@
|
||||||
config,
|
config,
|
||||||
options,
|
options,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
{
|
|
||||||
options.mods.oxi.oxinoti = {
|
options.mods.oxi.oxinoti = {
|
||||||
enable = lib.mkOption {
|
enable = lib.mkOption {
|
||||||
default = true;
|
default = true;
|
||||||
|
|
@ -17,7 +16,8 @@
|
||||||
lib.optionalAttrs (options ? xdg.configFile) {
|
lib.optionalAttrs (options ? xdg.configFile) {
|
||||||
programs.oxinoti.enable = true;
|
programs.oxinoti.enable = true;
|
||||||
xdg.configFile."oxinoti/style.css" = {
|
xdg.configFile."oxinoti/style.css" = {
|
||||||
text = # css
|
text =
|
||||||
|
# css
|
||||||
''
|
''
|
||||||
@import url("/home/${config.conf.username}/.config/gtk-3.0/gtk.css");
|
@import url("/home/${config.conf.username}/.config/gtk-3.0/gtk.css");
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,8 +3,7 @@
|
||||||
config,
|
config,
|
||||||
options,
|
options,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
{
|
|
||||||
options.mods.oxi.oxipaste = {
|
options.mods.oxi.oxipaste = {
|
||||||
enable = lib.mkOption {
|
enable = lib.mkOption {
|
||||||
default = true;
|
default = true;
|
||||||
|
|
|
||||||
|
|
@ -3,8 +3,7 @@
|
||||||
config,
|
config,
|
||||||
options,
|
options,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
{
|
|
||||||
options.mods.oxi.oxishut = {
|
options.mods.oxi.oxishut = {
|
||||||
enable = lib.mkOption {
|
enable = lib.mkOption {
|
||||||
default = true;
|
default = true;
|
||||||
|
|
|
||||||
|
|
@ -4,8 +4,7 @@
|
||||||
options,
|
options,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
{
|
|
||||||
options.mods.piper = {
|
options.mods.piper = {
|
||||||
enable = lib.mkOption {
|
enable = lib.mkOption {
|
||||||
default = false;
|
default = false;
|
||||||
|
|
@ -15,7 +14,7 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
config = lib.mkIf config.mods.piper.enable (
|
config = lib.mkIf config.mods.piper.enable (
|
||||||
lib.optionalAttrs (options ? services.ratbagd) { services.ratbagd.enable = true; }
|
lib.optionalAttrs (options ? services.ratbagd) {services.ratbagd.enable = true;}
|
||||||
// lib.optionalAttrs (options ? home.packages) { home.packages = with pkgs; [ piper ]; }
|
// lib.optionalAttrs (options ? home.packages) {home.packages = with pkgs; [piper];}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,8 +3,7 @@
|
||||||
config,
|
config,
|
||||||
options,
|
options,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
{
|
|
||||||
options.mods.plymouth = {
|
options.mods.plymouth = {
|
||||||
enable = lib.mkOption {
|
enable = lib.mkOption {
|
||||||
default = true;
|
default = true;
|
||||||
|
|
@ -14,6 +13,6 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
config = lib.mkIf config.mods.plymouth.enable (
|
config = lib.mkIf config.mods.plymouth.enable (
|
||||||
lib.optionalAttrs (options ? boot.plymouth) { boot.plymouth.enable = true; }
|
lib.optionalAttrs (options ? boot.plymouth) {boot.plymouth.enable = true;}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,8 +4,7 @@
|
||||||
options,
|
options,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
{
|
|
||||||
options.mods.printing = {
|
options.mods.printing = {
|
||||||
enable = lib.mkOption {
|
enable = lib.mkOption {
|
||||||
default = true;
|
default = true;
|
||||||
|
|
@ -21,7 +20,7 @@
|
||||||
printing = {
|
printing = {
|
||||||
enable = true;
|
enable = true;
|
||||||
browsing = true;
|
browsing = true;
|
||||||
drivers = [ pkgs.hplip ];
|
drivers = [pkgs.hplip];
|
||||||
startWhenNeeded = true; # optional
|
startWhenNeeded = true; # optional
|
||||||
};
|
};
|
||||||
avahi = {
|
avahi = {
|
||||||
|
|
|
||||||
|
|
@ -4,8 +4,7 @@
|
||||||
options,
|
options,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
{
|
|
||||||
options.mods.scripts = {
|
options.mods.scripts = {
|
||||||
changeBrightness = lib.mkOption {
|
changeBrightness = lib.mkOption {
|
||||||
default = true;
|
default = true;
|
||||||
|
|
@ -20,111 +19,113 @@
|
||||||
description = "Enables the audioControl script";
|
description = "Enables the audioControl script";
|
||||||
};
|
};
|
||||||
scripts = lib.mkOption {
|
scripts = lib.mkOption {
|
||||||
default = [ ];
|
default = [];
|
||||||
example = [ ];
|
example = [];
|
||||||
description = "More scripts to be passed. (check existing ones for types and examples)";
|
description = "More scripts to be passed. (check existing ones for types and examples)";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
config = (
|
config = (
|
||||||
lib.optionalAttrs (options ? home.packages) {
|
lib.optionalAttrs (options ? home.packages) {
|
||||||
home.packages = [
|
home.packages =
|
||||||
(lib.mkIf config.mods.scripts.changeBrightness (
|
[
|
||||||
pkgs.writeShellScriptBin "changeBrightness" ''
|
(lib.mkIf config.mods.scripts.changeBrightness (
|
||||||
set_brightness() {
|
pkgs.writeShellScriptBin "changeBrightness" ''
|
||||||
brightnessctl set "$1"
|
set_brightness() {
|
||||||
CURRENT=$(brightnessctl -m -d intel_backlight | awk -F, '{print substr($4, 0, length($4)-1)}')
|
brightnessctl set "$1"
|
||||||
dunstify -a "changeBrightness" -r 3 -u low -i brightness-high -h int:value:"$CURRENT" "Brightness: ''${CURRENT}%"
|
CURRENT=$(brightnessctl -m -d intel_backlight | awk -F, '{print substr($4, 0, length($4)-1)}')
|
||||||
}
|
dunstify -a "changeBrightness" -r 3 -u low -i brightness-high -h int:value:"$CURRENT" "Brightness: ''${CURRENT}%"
|
||||||
|
}
|
||||||
|
|
||||||
if [ "$1" == "brightness" ]; then
|
if [ "$1" == "brightness" ]; then
|
||||||
set_brightness "$2"
|
set_brightness "$2"
|
||||||
fi
|
fi
|
||||||
''
|
''
|
||||||
))
|
))
|
||||||
(lib.mkIf config.mods.scripts.audioControl (
|
(lib.mkIf config.mods.scripts.audioControl (
|
||||||
pkgs.writeShellScriptBin "audioControl" ''
|
pkgs.writeShellScriptBin "audioControl" ''
|
||||||
ncspot() {
|
ncspot() {
|
||||||
NUM=$(pactl list clients short | rg "ncspot" | awk -F 'PipeWire' ' { print $1 } ' | tr -d ' \t\n')
|
NUM=$(pactl list clients short | rg "ncspot" | awk -F 'PipeWire' ' { print $1 } ' | tr -d ' \t\n')
|
||||||
CHANGE=$(pactl list sink-inputs short | rg "$NUM" | awk -F ' ' ' { print $1 }' | tr -d ' \t\n')
|
CHANGE=$(pactl list sink-inputs short | rg "$NUM" | awk -F ' ' ' { print $1 }' | tr -d ' \t\n')
|
||||||
pactl set-sink-input-volume "$CHANGE" "$1"
|
pactl set-sink-input-volume "$CHANGE" "$1"
|
||||||
VOLUME=$(pactl list sink-inputs | rg "$NUM" -A7 | rg "Volume:" | awk -F ' ' ' { print $5 }' | tr -d '%')
|
VOLUME=$(pactl list sink-inputs | rg "$NUM" -A7 | rg "Volume:" | awk -F ' ' ' { print $5 }' | tr -d '%')
|
||||||
notify-send -a "ncspot" -r 990 -u low -i audio-volume-high -h int:progress:"$VOLUME" "Spotify Volume: ''${VOLUME}%"
|
notify-send -a "ncspot" -r 990 -u low -i audio-volume-high -h int:progress:"$VOLUME" "Spotify Volume: ''${VOLUME}%"
|
||||||
}
|
}
|
||||||
|
|
||||||
firefox() {
|
firefox() {
|
||||||
STRING=$(pactl list clients short | rg "firefox" | awk -F 'PipeWire' ' { print $1 "," } ' | tr -d ' \t\n')
|
STRING=$(pactl list clients short | rg "firefox" | awk -F 'PipeWire' ' { print $1 "," } ' | tr -d ' \t\n')
|
||||||
# NUMS=',' read -r -a array <<< "$STRING"
|
# NUMS=',' read -r -a array <<< "$STRING"
|
||||||
readarray -td, NUMS <<<"$STRING"
|
readarray -td, NUMS <<<"$STRING"
|
||||||
declare -p NUMS
|
declare -p NUMS
|
||||||
for index in "''${!NUMS[@]}"; do #"''${!array[@]}"
|
for index in "''${!NUMS[@]}"; do #"''${!array[@]}"
|
||||||
NUM=$(echo "''${NUMS[index]}" | tr -d ' \t\n')
|
NUM=$(echo "''${NUMS[index]}" | tr -d ' \t\n')
|
||||||
CHANGE=$(pactl list sink-inputs short | rg "$NUM" | awk -F ' ' ' { print $1 }' | tr -d ' \t\n')
|
CHANGE=$(pactl list sink-inputs short | rg "$NUM" | awk -F ' ' ' { print $1 }' | tr -d ' \t\n')
|
||||||
pactl set-sink-input-volume "$CHANGE" "$1"
|
pactl set-sink-input-volume "$CHANGE" "$1"
|
||||||
done
|
done
|
||||||
VOLUME=$(pactl list sink-inputs | rg "''${NUMS[0]}" -A7 | rg "Volume:" | awk -F ' ' ' { print $5 }' | tr -d '%')
|
VOLUME=$(pactl list sink-inputs | rg "''${NUMS[0]}" -A7 | rg "Volume:" | awk -F ' ' ' { print $5 }' | tr -d '%')
|
||||||
notify-send -a "Firefox" -r 991 -u low -i audio-volume-high -h int:progress:"$VOLUME" "Firefox Volume: ''${VOLUME}%"
|
notify-send -a "Firefox" -r 991 -u low -i audio-volume-high -h int:progress:"$VOLUME" "Firefox Volume: ''${VOLUME}%"
|
||||||
}
|
}
|
||||||
|
|
||||||
internal() {
|
internal() {
|
||||||
SPEAKER=$(pactl list sinks | grep "Name" | grep "alsa" | awk -F ': ' '{ print $2 }')
|
SPEAKER=$(pactl list sinks | grep "Name" | grep "alsa" | awk -F ': ' '{ print $2 }')
|
||||||
if [ "$SPEAKER" != "" ]; then
|
if [ "$SPEAKER" != "" ]; then
|
||||||
pactl set-default-sink "$SPEAKER"
|
pactl set-default-sink "$SPEAKER"
|
||||||
pactl set-sink-mute "$SPEAKER" false
|
pactl set-sink-mute "$SPEAKER" false
|
||||||
DEVICE=$(echo "$SPEAKER" | awk -F '.' ' { print $4 } ')
|
DEVICE=$(echo "$SPEAKER" | awk -F '.' ' { print $4 } ')
|
||||||
notify-send "changed audio to "$DEVICE" "
|
notify-send "changed audio to "$DEVICE" "
|
||||||
else
|
else
|
||||||
notify-send "failed, not available!"
|
notify-send "failed, not available!"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
set_volume_sink() {
|
set_volume_sink() {
|
||||||
pactl set-sink-volume @DEFAULT_SINK@ "$1"
|
pactl set-sink-volume @DEFAULT_SINK@ "$1"
|
||||||
CURRENT=$(pactl get-sink-volume @DEFAULT_SINK@ | awk -F'/' '{ print $2 }' | tr -d ' %')
|
CURRENT=$(pactl get-sink-volume @DEFAULT_SINK@ | awk -F'/' '{ print $2 }' | tr -d ' %')
|
||||||
notify-send -a "System Volume" -r 1001 -u low -i audio-volume-high -h int:progress:"$CURRENT" "Output Volume: ''${CURRENT}%"
|
notify-send -a "System Volume" -r 1001 -u low -i audio-volume-high -h int:progress:"$CURRENT" "Output Volume: ''${CURRENT}%"
|
||||||
}
|
}
|
||||||
|
|
||||||
set_volume_source() {
|
set_volume_source() {
|
||||||
pactl set-source-volume @DEFAULT_SOURCE@ "$1"
|
pactl set-source-volume @DEFAULT_SOURCE@ "$1"
|
||||||
CURRENT=$(pactl get-source-volume @DEFAULT_SOURCE@ | awk -F'/' '{ print $2 }' | tr -d ' %')
|
CURRENT=$(pactl get-source-volume @DEFAULT_SOURCE@ | awk -F'/' '{ print $2 }' | tr -d ' %')
|
||||||
notify-send -a "System Volume" -r 1001 -u low -i audio-volume-high -h int:progress:"$CURRENT" "Input Volume: ''${CURRENT}%"
|
notify-send -a "System Volume" -r 1001 -u low -i audio-volume-high -h int:progress:"$CURRENT" "Input Volume: ''${CURRENT}%"
|
||||||
}
|
}
|
||||||
|
|
||||||
bluetooth() {
|
bluetooth() {
|
||||||
SPEAKER=$(pactl list sinks | grep "Name" | grep "blue" | awk -F ': ' '{ print $2 }')
|
SPEAKER=$(pactl list sinks | grep "Name" | grep "blue" | awk -F ': ' '{ print $2 }')
|
||||||
if [ "$SPEAKER" != "" ]; then
|
if [ "$SPEAKER" != "" ]; then
|
||||||
pactl set-default-sink "$SPEAKER"
|
pactl set-default-sink "$SPEAKER"
|
||||||
pactl set-sink-mute "$SPEAKER" false
|
pactl set-sink-mute "$SPEAKER" false
|
||||||
DEVICE=$(echo "$SPEAKER" | awk -F '.' ' { print $4 } ')
|
DEVICE=$(echo "$SPEAKER" | awk -F '.' ' { print $4 } ')
|
||||||
notify-send "changed audio to "$DEVICE" "
|
notify-send "changed audio to "$DEVICE" "
|
||||||
else
|
else
|
||||||
notify-send "failed, not available!"
|
notify-send "failed, not available!"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
mute() {
|
mute() {
|
||||||
pactl set-sink-mute @DEFAULT_SINK@ toggle
|
pactl set-sink-mute @DEFAULT_SINK@ toggle
|
||||||
MUTE=$(pactl get-sink-mute @DEFAULT_SINK@)
|
MUTE=$(pactl get-sink-mute @DEFAULT_SINK@)
|
||||||
notify-send -a "Audio" -r 994 -u low -i audio-volume-high "Audio: $MUTE"
|
notify-send -a "Audio" -r 994 -u low -i audio-volume-high "Audio: $MUTE"
|
||||||
}
|
}
|
||||||
|
|
||||||
if [ "$1" == "internal" ]; then
|
if [ "$1" == "internal" ]; then
|
||||||
internal
|
internal
|
||||||
elif [ "$1" == "bluetooth" ]; then
|
elif [ "$1" == "bluetooth" ]; then
|
||||||
bluetooth
|
bluetooth
|
||||||
elif [ "$1" == "firefox" ]; then
|
elif [ "$1" == "firefox" ]; then
|
||||||
firefox "$2"
|
firefox "$2"
|
||||||
elif [ "$1" == "ncspot" ]; then
|
elif [ "$1" == "ncspot" ]; then
|
||||||
ncspot "$2"
|
ncspot "$2"
|
||||||
elif [ "$1" == "mute" ]; then
|
elif [ "$1" == "mute" ]; then
|
||||||
mute
|
mute
|
||||||
elif [ "$1" == "sink" ]; then
|
elif [ "$1" == "sink" ]; then
|
||||||
set_volume_sink "$2"
|
set_volume_sink "$2"
|
||||||
elif [ "$1" == "source" ]; then
|
elif [ "$1" == "source" ]; then
|
||||||
set_volume_source "$2"
|
set_volume_source "$2"
|
||||||
fi
|
fi
|
||||||
''
|
''
|
||||||
))
|
))
|
||||||
] ++ config.mods.scripts.scripts;
|
]
|
||||||
|
++ config.mods.scripts.scripts;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,8 +3,7 @@
|
||||||
options,
|
options,
|
||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
{
|
|
||||||
options.mods.sddm = {
|
options.mods.sddm = {
|
||||||
enable = lib.mkOption {
|
enable = lib.mkOption {
|
||||||
default = false;
|
default = false;
|
||||||
|
|
@ -19,7 +18,7 @@
|
||||||
description = "Use default options provided by module. If disabled, will only apply extraOptions.";
|
description = "Use default options provided by module. If disabled, will only apply extraOptions.";
|
||||||
};
|
};
|
||||||
extraOptions = lib.mkOption {
|
extraOptions = lib.mkOption {
|
||||||
default = { };
|
default = {};
|
||||||
example = {
|
example = {
|
||||||
wayland.enable = false;
|
wayland.enable = false;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -5,8 +5,7 @@
|
||||||
options,
|
options,
|
||||||
root,
|
root,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
{
|
|
||||||
options.mods.sops = {
|
options.mods.sops = {
|
||||||
enable = lib.mkOption {
|
enable = lib.mkOption {
|
||||||
default = true;
|
default = true;
|
||||||
|
|
@ -15,13 +14,13 @@
|
||||||
description = "Enable sops secrets";
|
description = "Enable sops secrets";
|
||||||
};
|
};
|
||||||
secrets = lib.mkOption {
|
secrets = lib.mkOption {
|
||||||
default = { };
|
default = {};
|
||||||
example = {
|
example = {
|
||||||
hub = { };
|
hub = {};
|
||||||
lab = { };
|
lab = {};
|
||||||
${config.conf.username} = { };
|
${config.conf.username} = {};
|
||||||
nextcloud = { };
|
nextcloud = {};
|
||||||
access = { };
|
access = {};
|
||||||
};
|
};
|
||||||
type = with lib.types; attrsOf anything;
|
type = with lib.types; attrsOf anything;
|
||||||
description = "secrets for sops";
|
description = "secrets for sops";
|
||||||
|
|
@ -29,8 +28,7 @@
|
||||||
sopsPath = lib.mkOption {
|
sopsPath = lib.mkOption {
|
||||||
default = root + /secrets/secrets.yaml;
|
default = root + /secrets/secrets.yaml;
|
||||||
example = "/your/path";
|
example = "/your/path";
|
||||||
type =
|
type = with lib.types;
|
||||||
with lib.types;
|
|
||||||
oneOf [
|
oneOf [
|
||||||
str
|
str
|
||||||
path
|
path
|
||||||
|
|
@ -46,18 +44,18 @@
|
||||||
};
|
};
|
||||||
config = lib.mkIf config.mods.sops.enable (
|
config = lib.mkIf config.mods.sops.enable (
|
||||||
lib.optionalAttrs (options ? home.packages) {
|
lib.optionalAttrs (options ? home.packages) {
|
||||||
home.packages = with pkgs; [ sops ];
|
home.packages = with pkgs; [sops];
|
||||||
sops = {
|
sops = {
|
||||||
gnupg = {
|
gnupg = {
|
||||||
home = "~/.gnupg";
|
home = "~/.gnupg";
|
||||||
sshKeyPaths = [ ];
|
sshKeyPaths = [];
|
||||||
};
|
};
|
||||||
defaultSopsFile = config.mods.sops.sopsPath;
|
defaultSopsFile = config.mods.sops.sopsPath;
|
||||||
validateSopsFiles = config.mods.sops.validateSopsFile;
|
validateSopsFiles = config.mods.sops.validateSopsFile;
|
||||||
secrets = config.mods.sops.secrets;
|
secrets = config.mods.sops.secrets;
|
||||||
};
|
};
|
||||||
|
|
||||||
systemd.user.services.mbsync.Unit.After = [ "sops-nix.service" ];
|
systemd.user.services.mbsync.Unit.After = ["sops-nix.service"];
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,8 +5,7 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
inputs,
|
inputs,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
{
|
|
||||||
options.mods = {
|
options.mods = {
|
||||||
starship = {
|
starship = {
|
||||||
enable = lib.mkOption {
|
enable = lib.mkOption {
|
||||||
|
|
@ -26,8 +25,8 @@
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
customPrompt = lib.mkOption {
|
customPrompt = lib.mkOption {
|
||||||
default = { };
|
default = {};
|
||||||
example = { };
|
example = {};
|
||||||
type = with lib.types; attrsOf anything;
|
type = with lib.types; attrsOf anything;
|
||||||
description = ''
|
description = ''
|
||||||
Custom configuration for prompt.
|
Custom configuration for prompt.
|
||||||
|
|
@ -40,138 +39,136 @@
|
||||||
# environment.systemPackages needed in order to configure systemwide
|
# environment.systemPackages needed in order to configure systemwide
|
||||||
config = lib.mkIf config.mods.starship.enable (
|
config = lib.mkIf config.mods.starship.enable (
|
||||||
lib.optionalAttrs (options ? environment.systemPackages) {
|
lib.optionalAttrs (options ? environment.systemPackages) {
|
||||||
programs.starship =
|
programs.starship = let
|
||||||
let
|
base16 = pkgs.callPackage inputs.base16.lib {};
|
||||||
base16 = pkgs.callPackage inputs.base16.lib { };
|
scheme = base16.mkSchemeAttrs config.stylix.base16Scheme;
|
||||||
scheme = (base16.mkSchemeAttrs config.stylix.base16Scheme);
|
code_format = "[](bg:prev_bg fg:#5256c3)[ $symbol ($version)](bg:#5256c3)";
|
||||||
code_format = "[](bg:prev_bg fg:#5256c3)[ $symbol ($version)](bg:#5256c3)";
|
in {
|
||||||
in
|
enable = true;
|
||||||
{
|
interactiveOnly = true;
|
||||||
enable = true;
|
presets = lib.mkIf config.mods.starship.useDefaultPrompt ["pastel-powerline"];
|
||||||
interactiveOnly = true;
|
settings =
|
||||||
presets = lib.mkIf config.mods.starship.useDefaultPrompt [ "pastel-powerline" ];
|
lib.mkIf config.mods.starship.useDefaultPrompt {
|
||||||
settings =
|
# derived from https://starship.rs/presets/pastel-powerline
|
||||||
lib.mkIf config.mods.starship.useDefaultPrompt {
|
format = "$username$directory$git_branch$git_status$git_metrics[ ](bg:none fg:prev_bg)";
|
||||||
# derived from https://starship.rs/presets/pastel-powerline
|
right_format = "$c$elixir$elm$golang$gradle$haskell$java$julia$nodejs$nim$rust$scala$python$ocaml$opa$perl$zig$dart$dotnet$nix_shell$shell$solidity[](bg:prev_bg fg:#3465A4)$time$os";
|
||||||
format = "$username$directory$git_branch$git_status$git_metrics[ ](bg:none fg:prev_bg)";
|
username = {
|
||||||
right_format = "$c$elixir$elm$golang$gradle$haskell$java$julia$nodejs$nim$rust$scala$python$ocaml$opa$perl$zig$dart$dotnet$nix_shell$shell$solidity[](bg:prev_bg fg:#3465A4)$time$os";
|
show_always = false;
|
||||||
username = {
|
style_user = "bg:#5277C3 fg:#${scheme.base05}";
|
||||||
show_always = false;
|
style_root = "bg:#5277C3 fg:#${scheme.base05}";
|
||||||
style_user = "bg:#5277C3 fg:#${scheme.base05}";
|
format = "[ $user ]($style)[](bg:#3465A4 fg:#5277C3)";
|
||||||
style_root = "bg:#5277C3 fg:#${scheme.base05}";
|
disabled = false;
|
||||||
format = "[ $user ]($style)[](bg:#3465A4 fg:#5277C3)";
|
};
|
||||||
disabled = false;
|
os = {
|
||||||
|
symbols = {
|
||||||
|
NixOS = " ";
|
||||||
};
|
};
|
||||||
os = {
|
style = "bg:#3465A4 fg:#${scheme.base05}";
|
||||||
symbols = {
|
disabled = false;
|
||||||
NixOS = " ";
|
};
|
||||||
};
|
directory = {
|
||||||
style = "bg:#3465A4 fg:#${scheme.base05}";
|
style = "bg:#3465A4 fg:#${scheme.base05}";
|
||||||
disabled = false;
|
format = "[ $path ]($style)";
|
||||||
};
|
truncation_length = 3;
|
||||||
directory = {
|
truncation_symbol = "…/";
|
||||||
style = "bg:#3465A4 fg:#${scheme.base05}";
|
};
|
||||||
format = "[ $path ]($style)";
|
git_branch = {
|
||||||
truncation_length = 3;
|
always_show_remote = true;
|
||||||
truncation_symbol = "…/";
|
symbol = "";
|
||||||
};
|
style = "bg:#5256c3 fg:#${scheme.base05}";
|
||||||
git_branch = {
|
format = "[ ](bg:#5256c3 fg:prev_bg)[$symbol ($remote_name )$branch ]($style)";
|
||||||
always_show_remote = true;
|
};
|
||||||
symbol = "";
|
git_status = {
|
||||||
style = "bg:#5256c3 fg:#${scheme.base05}";
|
staged = "+\${count} (fg:#C4A000)";
|
||||||
format = "[ ](bg:#5256c3 fg:prev_bg)[$symbol ($remote_name )$branch ]($style)";
|
ahead = "⇡\${count} (fg:#C4A000)";
|
||||||
};
|
diverged = "⇕⇡\${count} (fg:#C4A000)";
|
||||||
git_status = {
|
behind = "⇣\${count} (fg:#C4A000)";
|
||||||
staged = "+\${count} (fg:#C4A000)";
|
stashed = " ";
|
||||||
ahead = "⇡\${count} (fg:#C4A000)";
|
untracked = "?\${count} (fg:#C4A000)";
|
||||||
diverged = "⇕⇡\${count} (fg:#C4A000)";
|
modified = "!\${count} (fg:#C4A000)";
|
||||||
behind = "⇣\${count} (fg:#C4A000)";
|
deleted = "✘\${count} (fg:#C4A000)";
|
||||||
stashed = " ";
|
conflicted = "=\${count} (fg:#C4A000)";
|
||||||
untracked = "?\${count} (fg:#C4A000)";
|
renamed = "»\${count} (fg:#C4A000)";
|
||||||
modified = "!\${count} (fg:#C4A000)";
|
style = "bg:#5256c3 fg:fg:#C4A000";
|
||||||
deleted = "✘\${count} (fg:#C4A000)";
|
format = "[$all_status$ahead_behind]($style)";
|
||||||
conflicted = "=\${count} (fg:#C4A000)";
|
};
|
||||||
renamed = "»\${count} (fg:#C4A000)";
|
git_metrics = {
|
||||||
style = "bg:#5256c3 fg:fg:#C4A000";
|
disabled = false;
|
||||||
format = "[$all_status$ahead_behind]($style)";
|
format = "([| ](bg:#5256c3)[+$added]($added_style bg:#5256c3)[ -$deleted]($deleted_style bg:#5256c3))";
|
||||||
};
|
};
|
||||||
git_metrics = {
|
c = {
|
||||||
disabled = false;
|
format = code_format;
|
||||||
format = "([| ](bg:#5256c3)[+$added]($added_style bg:#5256c3)[ -$deleted]($deleted_style bg:#5256c3))";
|
};
|
||||||
};
|
elixir = {
|
||||||
c = {
|
format = code_format;
|
||||||
format = code_format;
|
};
|
||||||
};
|
elm = {
|
||||||
elixir = {
|
format = code_format;
|
||||||
format = code_format;
|
};
|
||||||
};
|
golang = {
|
||||||
elm = {
|
format = code_format;
|
||||||
format = code_format;
|
};
|
||||||
};
|
gradle = {
|
||||||
golang = {
|
format = code_format;
|
||||||
format = code_format;
|
};
|
||||||
};
|
haskell = {
|
||||||
gradle = {
|
format = code_format;
|
||||||
format = code_format;
|
};
|
||||||
};
|
java = {
|
||||||
haskell = {
|
format = code_format;
|
||||||
format = code_format;
|
};
|
||||||
};
|
julia = {
|
||||||
java = {
|
format = code_format;
|
||||||
format = code_format;
|
};
|
||||||
};
|
nodejs = {
|
||||||
julia = {
|
format = code_format;
|
||||||
format = code_format;
|
};
|
||||||
};
|
nim = {
|
||||||
nodejs = {
|
format = code_format;
|
||||||
format = code_format;
|
};
|
||||||
};
|
nix_shell = {
|
||||||
nim = {
|
symbol = "";
|
||||||
format = code_format;
|
format = code_format;
|
||||||
};
|
};
|
||||||
nix_shell = {
|
rust = {
|
||||||
symbol = "";
|
format = code_format;
|
||||||
format = code_format;
|
};
|
||||||
};
|
scala = {
|
||||||
rust = {
|
format = code_format;
|
||||||
format = code_format;
|
};
|
||||||
};
|
typst = {
|
||||||
scala = {
|
format = code_format;
|
||||||
format = code_format;
|
};
|
||||||
};
|
python = {
|
||||||
typst = {
|
format = code_format;
|
||||||
format = code_format;
|
};
|
||||||
};
|
ocaml = {
|
||||||
python = {
|
format = code_format;
|
||||||
format = code_format;
|
};
|
||||||
};
|
opa = {
|
||||||
ocaml = {
|
format = code_format;
|
||||||
format = code_format;
|
};
|
||||||
};
|
perl = {
|
||||||
opa = {
|
format = code_format;
|
||||||
format = code_format;
|
};
|
||||||
};
|
zig = {
|
||||||
perl = {
|
format = code_format;
|
||||||
format = code_format;
|
};
|
||||||
};
|
dart = {
|
||||||
zig = {
|
format = code_format;
|
||||||
format = code_format;
|
};
|
||||||
};
|
dotnet = {
|
||||||
dart = {
|
format = code_format;
|
||||||
format = code_format;
|
};
|
||||||
};
|
time = {
|
||||||
dotnet = {
|
disabled = false;
|
||||||
format = code_format;
|
time_format = "%R"; # Hour:Minute Format
|
||||||
};
|
style = "bg:#3465A4 fg:#${scheme.base05}";
|
||||||
time = {
|
format = "[ $time ]($style)";
|
||||||
disabled = false;
|
};
|
||||||
time_format = "%R"; # Hour:Minute Format
|
}
|
||||||
style = "bg:#3465A4 fg:#${scheme.base05}";
|
// config.mods.starship.customPrompt;
|
||||||
format = "[ $time ]($style)";
|
};
|
||||||
};
|
|
||||||
}
|
|
||||||
// config.mods.starship.customPrompt;
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,8 +4,7 @@
|
||||||
options,
|
options,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
{
|
|
||||||
options.mods.stylix = {
|
options.mods.stylix = {
|
||||||
colorscheme = lib.mkOption {
|
colorscheme = lib.mkOption {
|
||||||
default = "catppuccin-mocha";
|
default = "catppuccin-mocha";
|
||||||
|
|
@ -34,8 +33,7 @@
|
||||||
base0E = "BB9AF7";
|
base0E = "BB9AF7";
|
||||||
base0F = "F7768E";
|
base0F = "F7768E";
|
||||||
};
|
};
|
||||||
type =
|
type = with lib.types;
|
||||||
with lib.types;
|
|
||||||
oneOf [
|
oneOf [
|
||||||
str
|
str
|
||||||
attrs
|
attrs
|
||||||
|
|
@ -57,7 +55,7 @@
|
||||||
name = "catppuccin-mocha-lavender-cursors";
|
name = "catppuccin-mocha-lavender-cursors";
|
||||||
size = 24;
|
size = 24;
|
||||||
};
|
};
|
||||||
example = { };
|
example = {};
|
||||||
type = with lib.types; attrsOf anything;
|
type = with lib.types; attrsOf anything;
|
||||||
description = "Xcursor config";
|
description = "Xcursor config";
|
||||||
};
|
};
|
||||||
|
|
@ -83,7 +81,7 @@
|
||||||
name = "Noto Color Emoji";
|
name = "Noto Color Emoji";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
example = { };
|
example = {};
|
||||||
type = with lib.types; attrsOf anything;
|
type = with lib.types; attrsOf anything;
|
||||||
description = "font config";
|
description = "font config";
|
||||||
};
|
};
|
||||||
|
|
@ -101,10 +99,9 @@
|
||||||
fonts = config.mods.stylix.fonts;
|
fonts = config.mods.stylix.fonts;
|
||||||
cursor = config.mods.stylix.cursor;
|
cursor = config.mods.stylix.cursor;
|
||||||
base16Scheme = (
|
base16Scheme = (
|
||||||
if builtins.isAttrs config.mods.stylix.colorscheme then
|
if builtins.isAttrs config.mods.stylix.colorscheme
|
||||||
config.mods.stylix.colorscheme
|
then config.mods.stylix.colorscheme
|
||||||
else
|
else "${pkgs.base16-schemes}/share/themes/${config.mods.stylix.colorscheme}.yaml"
|
||||||
"${pkgs.base16-schemes}/share/themes/${config.mods.stylix.colorscheme}.yaml"
|
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -5,12 +5,10 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
inputs,
|
inputs,
|
||||||
...
|
...
|
||||||
}:
|
}: let
|
||||||
let
|
base16 = pkgs.callPackage inputs.base16.lib {};
|
||||||
base16 = pkgs.callPackage inputs.base16.lib { };
|
|
||||||
scheme = base16.mkSchemeAttrs config.stylix.base16Scheme;
|
scheme = base16.mkSchemeAttrs config.stylix.base16Scheme;
|
||||||
in
|
in {
|
||||||
{
|
|
||||||
options.mods.supersonic = {
|
options.mods.supersonic = {
|
||||||
enable = lib.mkOption {
|
enable = lib.mkOption {
|
||||||
default = false;
|
default = false;
|
||||||
|
|
@ -31,42 +29,45 @@ in
|
||||||
config = lib.mkIf config.mods.supersonic.enable (
|
config = lib.mkIf config.mods.supersonic.enable (
|
||||||
lib.optionalAttrs (options ? home.packages) {
|
lib.optionalAttrs (options ? home.packages) {
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
(if config.mods.supersonic.variant == "wayland" then supersonic-wayland else supersonic)
|
(
|
||||||
|
if config.mods.supersonic.variant == "wayland"
|
||||||
|
then supersonic-wayland
|
||||||
|
else supersonic
|
||||||
|
)
|
||||||
];
|
];
|
||||||
xdg.configFile."supersonic/themes/custom.toml".source =
|
xdg.configFile."supersonic/themes/custom.toml".source =
|
||||||
(pkgs.formats.toml { }).generate "customTheme"
|
(pkgs.formats.toml {}).generate "customTheme"
|
||||||
{
|
{
|
||||||
SupersonicTheme = {
|
SupersonicTheme = {
|
||||||
Name = "Custom";
|
Name = "Custom";
|
||||||
Version = "0.2";
|
Version = "0.2";
|
||||||
SupportsDark = true;
|
SupportsDark = true;
|
||||||
SupportsLight = true;
|
SupportsLight = true;
|
||||||
};
|
|
||||||
|
|
||||||
DarkColors = {
|
|
||||||
PageBackground = "#${scheme.base00}";
|
|
||||||
ListHeader = "#${scheme.base02}";
|
|
||||||
PageHeader = "#${scheme.base02}";
|
|
||||||
Background = "#${scheme.base01}";
|
|
||||||
ScrollBar = "#${scheme.base02}";
|
|
||||||
Button = "#${scheme.base02}";
|
|
||||||
Foreground = "#${scheme.base04}";
|
|
||||||
InputBackground = "#${scheme.base02}";
|
|
||||||
};
|
|
||||||
|
|
||||||
# just define the same as base 16 doesn't define if it is light or not
|
|
||||||
LightColors = {
|
|
||||||
PageBackground = "#${scheme.base00}";
|
|
||||||
ListHeader = "#${scheme.base02}";
|
|
||||||
PageHeader = "#${scheme.base02}";
|
|
||||||
Background = "#${scheme.base01}";
|
|
||||||
ScrollBar = "#${scheme.base02}";
|
|
||||||
Button = "#${scheme.base02}";
|
|
||||||
Foreground = "#${scheme.base04}";
|
|
||||||
InputBackground = "#${scheme.base02}";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
}
|
|
||||||
|
|
||||||
|
DarkColors = {
|
||||||
|
PageBackground = "#${scheme.base00}";
|
||||||
|
ListHeader = "#${scheme.base02}";
|
||||||
|
PageHeader = "#${scheme.base02}";
|
||||||
|
Background = "#${scheme.base01}";
|
||||||
|
ScrollBar = "#${scheme.base02}";
|
||||||
|
Button = "#${scheme.base02}";
|
||||||
|
Foreground = "#${scheme.base04}";
|
||||||
|
InputBackground = "#${scheme.base02}";
|
||||||
|
};
|
||||||
|
|
||||||
|
# just define the same as base 16 doesn't define if it is light or not
|
||||||
|
LightColors = {
|
||||||
|
PageBackground = "#${scheme.base00}";
|
||||||
|
ListHeader = "#${scheme.base02}";
|
||||||
|
PageHeader = "#${scheme.base02}";
|
||||||
|
Background = "#${scheme.base01}";
|
||||||
|
ScrollBar = "#${scheme.base02}";
|
||||||
|
Button = "#${scheme.base02}";
|
||||||
|
Foreground = "#${scheme.base04}";
|
||||||
|
InputBackground = "#${scheme.base02}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,12 +3,11 @@
|
||||||
config,
|
config,
|
||||||
options,
|
options,
|
||||||
pkgs,
|
pkgs,
|
||||||
|
stable,
|
||||||
...
|
...
|
||||||
}:
|
}: let
|
||||||
let
|
|
||||||
callPackage = lib.callPackageWith pkgs;
|
callPackage = lib.callPackageWith pkgs;
|
||||||
in
|
in {
|
||||||
{
|
|
||||||
options.mods.teams = {
|
options.mods.teams = {
|
||||||
enable = lib.mkOption {
|
enable = lib.mkOption {
|
||||||
default = false;
|
default = false;
|
||||||
|
|
@ -25,12 +24,12 @@ in
|
||||||
};
|
};
|
||||||
config = lib.mkIf config.mods.teams.enable (
|
config = lib.mkIf config.mods.teams.enable (
|
||||||
lib.optionalAttrs (options ? home.packages) {
|
lib.optionalAttrs (options ? home.packages) {
|
||||||
home.packages = [ (callPackage ../../override/teams.nix { }) ];
|
home.packages = [(callPackage ../../override/teams.nix {pkgs = stable;})];
|
||||||
}
|
}
|
||||||
// (lib.optionalAttrs (options ? boot.kernelModules) {
|
// (lib.optionalAttrs (options ? boot.kernelModules) {
|
||||||
boot = {
|
boot = {
|
||||||
extraModulePackages = with config.boot.kernelPackages; [ v4l2loopback ];
|
extraModulePackages = with config.boot.kernelPackages; [v4l2loopback];
|
||||||
kernelModules = [ "v4l2loopback" ];
|
kernelModules = ["v4l2loopback"];
|
||||||
extraModprobeConfig = ''
|
extraModprobeConfig = ''
|
||||||
options v4l2loopback exclusive_caps=1 card_label="Virtual Camera"
|
options v4l2loopback exclusive_caps=1 card_label="Virtual Camera"
|
||||||
'';
|
'';
|
||||||
|
|
|
||||||
|
|
@ -4,18 +4,14 @@
|
||||||
options,
|
options,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}: let
|
||||||
let
|
|
||||||
module =
|
module =
|
||||||
if config.conf.cpu == "intel" then
|
if config.conf.cpu == "intel"
|
||||||
"kvm-intel"
|
then "kvm-intel"
|
||||||
else if config.conf.cpu == "amd" then
|
else if config.conf.cpu == "amd"
|
||||||
"kvm-amd"
|
then "kvm-amd"
|
||||||
else
|
else "";
|
||||||
"";
|
in {
|
||||||
in
|
|
||||||
{
|
|
||||||
|
|
||||||
options.mods = {
|
options.mods = {
|
||||||
virtmanager.enable = lib.mkOption {
|
virtmanager.enable = lib.mkOption {
|
||||||
default = false;
|
default = false;
|
||||||
|
|
@ -24,7 +20,7 @@ in
|
||||||
description = ''
|
description = ''
|
||||||
|
|
||||||
|
|
||||||
Enables virt-manager kvm.
|
Enables virt-manager kvm.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
@ -48,7 +44,7 @@ in
|
||||||
package = pkgs.qemu_kvm;
|
package = pkgs.qemu_kvm;
|
||||||
swtpm.enable = true;
|
swtpm.enable = true;
|
||||||
ovmf.enable = true;
|
ovmf.enable = true;
|
||||||
ovmf.packages = [ pkgs.OVMFFull.fd ];
|
ovmf.packages = [pkgs.OVMFFull.fd];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
spiceUSBRedirection.enable = true;
|
spiceUSBRedirection.enable = true;
|
||||||
|
|
@ -60,13 +56,12 @@ in
|
||||||
"kvm"
|
"kvm"
|
||||||
"qemu-libvirtd"
|
"qemu-libvirtd"
|
||||||
];
|
];
|
||||||
|
|
||||||
}
|
}
|
||||||
// lib.optionalAttrs (options ? dconf.settings) {
|
// lib.optionalAttrs (options ? dconf.settings) {
|
||||||
dconf.settings = {
|
dconf.settings = {
|
||||||
"org/virt-manager/virt-manager/connections" = {
|
"org/virt-manager/virt-manager/connections" = {
|
||||||
autoconnect = [ "qemu:///system" ];
|
autoconnect = ["qemu:///system"];
|
||||||
uris = [ "qemu:///system" ];
|
uris = ["qemu:///system"];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -3,8 +3,7 @@
|
||||||
options,
|
options,
|
||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
{
|
|
||||||
options.mods.xkb = {
|
options.mods.xkb = {
|
||||||
layout = lib.mkOption {
|
layout = lib.mkOption {
|
||||||
default = "dashie";
|
default = "dashie";
|
||||||
|
|
|
||||||
|
|
@ -3,9 +3,7 @@
|
||||||
config,
|
config,
|
||||||
options,
|
options,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
{
|
|
||||||
|
|
||||||
options.mods = {
|
options.mods = {
|
||||||
xone.enable = lib.mkOption {
|
xone.enable = lib.mkOption {
|
||||||
default = false;
|
default = false;
|
||||||
|
|
@ -17,5 +15,5 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config = lib.optionalAttrs (options ? hardware) { hardware.xone.enable = true; };
|
config = lib.optionalAttrs (options ? hardware) {hardware.xone.enable = true;};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,8 +3,7 @@
|
||||||
config,
|
config,
|
||||||
options,
|
options,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
{
|
|
||||||
options.mods.yazi = {
|
options.mods.yazi = {
|
||||||
enable = lib.mkOption {
|
enable = lib.mkOption {
|
||||||
default = true;
|
default = true;
|
||||||
|
|
@ -19,8 +18,8 @@
|
||||||
description = "Use default yazi config (if disabled only additionalConfig is used)";
|
description = "Use default yazi config (if disabled only additionalConfig is used)";
|
||||||
};
|
};
|
||||||
additionalConfig = lib.mkOption {
|
additionalConfig = lib.mkOption {
|
||||||
default = { };
|
default = {};
|
||||||
example = { };
|
example = {};
|
||||||
type = with lib.types; attrsOf anything;
|
type = with lib.types; attrsOf anything;
|
||||||
description = "Additional config for yazi";
|
description = "Additional config for yazi";
|
||||||
};
|
};
|
||||||
|
|
@ -31,16 +30,15 @@
|
||||||
description = "Use default yazi keymap (if disabled only additionalKeymap is used)";
|
description = "Use default yazi keymap (if disabled only additionalKeymap is used)";
|
||||||
};
|
};
|
||||||
additionalKeymap = lib.mkOption {
|
additionalKeymap = lib.mkOption {
|
||||||
default = { };
|
default = {};
|
||||||
example = { };
|
example = {};
|
||||||
type = with lib.types; attrsOf anything;
|
type = with lib.types; attrsOf anything;
|
||||||
description = "Additional keymap for yazi";
|
description = "Additional keymap for yazi";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
config =
|
config = let
|
||||||
let
|
conf = import ./yazi.nix;
|
||||||
conf = import ./yazi.nix;
|
in
|
||||||
in
|
|
||||||
lib.optionalAttrs (options ? home.packages) (
|
lib.optionalAttrs (options ? home.packages) (
|
||||||
lib.mkIf config.mods.yazi.enable {
|
lib.mkIf config.mods.yazi.enable {
|
||||||
programs.yazi = {
|
programs.yazi = {
|
||||||
|
|
|
||||||
|
|
@ -99,125 +99,125 @@
|
||||||
keymap = {
|
keymap = {
|
||||||
manager.keymap = [
|
manager.keymap = [
|
||||||
{
|
{
|
||||||
on = [ "<Esc>" ];
|
on = ["<Esc>"];
|
||||||
run = "escape";
|
run = "escape";
|
||||||
desc = "Exit visual mode clear selected or cancel search";
|
desc = "Exit visual mode clear selected or cancel search";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "q" ];
|
on = ["q"];
|
||||||
run = "quit";
|
run = "quit";
|
||||||
desc = "Exit the process";
|
desc = "Exit the process";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "Q" ];
|
on = ["Q"];
|
||||||
run = "quit --no-cwd-file";
|
run = "quit --no-cwd-file";
|
||||||
desc = "Exit the process without writing cwd-file";
|
desc = "Exit the process without writing cwd-file";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "<C-q>" ];
|
on = ["<C-q>"];
|
||||||
run = "close";
|
run = "close";
|
||||||
desc = "Close the current tab or quit if it is last tab";
|
desc = "Close the current tab or quit if it is last tab";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "<C-z>" ];
|
on = ["<C-z>"];
|
||||||
run = "suspend";
|
run = "suspend";
|
||||||
desc = "Suspend the process";
|
desc = "Suspend the process";
|
||||||
}
|
}
|
||||||
|
|
||||||
# Navigation
|
# Navigation
|
||||||
{
|
{
|
||||||
on = [ "l" ];
|
on = ["l"];
|
||||||
run = "arrow -1";
|
run = "arrow -1";
|
||||||
desc = "Move cursor up";
|
desc = "Move cursor up";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "k" ];
|
on = ["k"];
|
||||||
run = "arrow 1";
|
run = "arrow 1";
|
||||||
desc = "Move cursor down";
|
desc = "Move cursor down";
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
on = [ "L" ];
|
on = ["L"];
|
||||||
run = "arrow -5";
|
run = "arrow -5";
|
||||||
desc = "Move cursor up 5 lines";
|
desc = "Move cursor up 5 lines";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "K" ];
|
on = ["K"];
|
||||||
run = "arrow 5";
|
run = "arrow 5";
|
||||||
desc = "Move cursor down 5 lines";
|
desc = "Move cursor down 5 lines";
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
on = [ "<C-u>" ];
|
on = ["<C-u>"];
|
||||||
run = "arrow -50%";
|
run = "arrow -50%";
|
||||||
desc = "Move cursor up half page";
|
desc = "Move cursor up half page";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "<C-d>" ];
|
on = ["<C-d>"];
|
||||||
run = "arrow 50%";
|
run = "arrow 50%";
|
||||||
desc = "Move cursor down half page";
|
desc = "Move cursor down half page";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "<C-b>" ];
|
on = ["<C-b>"];
|
||||||
run = "arrow -100%";
|
run = "arrow -100%";
|
||||||
desc = "Move cursor up one page";
|
desc = "Move cursor up one page";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "<C-f>" ];
|
on = ["<C-f>"];
|
||||||
run = "arrow 100%";
|
run = "arrow 100%";
|
||||||
desc = "Move cursor down one page";
|
desc = "Move cursor down one page";
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
on = [ "j" ];
|
on = ["j"];
|
||||||
run = "leave";
|
run = "leave";
|
||||||
desc = "Go back to the parent directory";
|
desc = "Go back to the parent directory";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ ";" ];
|
on = [";"];
|
||||||
run = "enter";
|
run = "enter";
|
||||||
desc = "Enter the child directory";
|
desc = "Enter the child directory";
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
on = [ "J" ];
|
on = ["J"];
|
||||||
run = "back";
|
run = "back";
|
||||||
desc = "Go back to the previous directory";
|
desc = "Go back to the previous directory";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "P" ];
|
on = ["P"];
|
||||||
run = "forward";
|
run = "forward";
|
||||||
desc = "Go forward to the next directory";
|
desc = "Go forward to the next directory";
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
on = [ "<C-k>" ];
|
on = ["<C-k>"];
|
||||||
run = "peek -5";
|
run = "peek -5";
|
||||||
desc = "Peek up 5 units in the preview";
|
desc = "Peek up 5 units in the preview";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "<C-j>" ];
|
on = ["<C-j>"];
|
||||||
run = "peek 5";
|
run = "peek 5";
|
||||||
desc = "Peek down 5 units in the preview";
|
desc = "Peek down 5 units in the preview";
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
on = [ "<Up>" ];
|
on = ["<Up>"];
|
||||||
run = "arrow -1";
|
run = "arrow -1";
|
||||||
desc = "Move cursor up";
|
desc = "Move cursor up";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "<Down>" ];
|
on = ["<Down>"];
|
||||||
run = "arrow 1";
|
run = "arrow 1";
|
||||||
desc = "Move cursor down";
|
desc = "Move cursor down";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "<Left>" ];
|
on = ["<Left>"];
|
||||||
run = "leave";
|
run = "leave";
|
||||||
desc = "Go back to the parent directory";
|
desc = "Go back to the parent directory";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "<Right>" ];
|
on = ["<Right>"];
|
||||||
run = "enter";
|
run = "enter";
|
||||||
desc = "Enter the child directory";
|
desc = "Enter the child directory";
|
||||||
}
|
}
|
||||||
|
|
@ -231,116 +231,116 @@
|
||||||
desc = "Move cursor to the top";
|
desc = "Move cursor to the top";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "G" ];
|
on = ["G"];
|
||||||
run = "arrow 99999999";
|
run = "arrow 99999999";
|
||||||
desc = "Move cursor to the bottom";
|
desc = "Move cursor to the bottom";
|
||||||
}
|
}
|
||||||
|
|
||||||
# Selection
|
# Selection
|
||||||
{
|
{
|
||||||
on = [ "v" ];
|
on = ["v"];
|
||||||
run = "visual_mode";
|
run = "visual_mode";
|
||||||
desc = "Enter visual mode (selection mode)";
|
desc = "Enter visual mode (selection mode)";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "V" ];
|
on = ["V"];
|
||||||
run = "visual_mode --unset";
|
run = "visual_mode --unset";
|
||||||
desc = "Enter visual mode (unset mode)";
|
desc = "Enter visual mode (unset mode)";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "<C-a>" ];
|
on = ["<C-a>"];
|
||||||
run = "select_all --state=true";
|
run = "select_all --state=true";
|
||||||
desc = "Select all files";
|
desc = "Select all files";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "<C-r>" ];
|
on = ["<C-r>"];
|
||||||
run = "select_all --state=none";
|
run = "select_all --state=none";
|
||||||
desc = "Inverse selection of all files";
|
desc = "Inverse selection of all files";
|
||||||
}
|
}
|
||||||
|
|
||||||
# Operation
|
# Operation
|
||||||
{
|
{
|
||||||
on = [ "o" ];
|
on = ["o"];
|
||||||
run = "open";
|
run = "open";
|
||||||
desc = "Open the selected files";
|
desc = "Open the selected files";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "O" ];
|
on = ["O"];
|
||||||
run = "open --interactive";
|
run = "open --interactive";
|
||||||
desc = "Open the selected files interactively";
|
desc = "Open the selected files interactively";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "<Enter>" ];
|
on = ["<Enter>"];
|
||||||
run = "open";
|
run = "open";
|
||||||
desc = "Open the selected files";
|
desc = "Open the selected files";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "<C-Enter>" ];
|
on = ["<C-Enter>"];
|
||||||
run = "open --interactive";
|
run = "open --interactive";
|
||||||
desc = "Open the selected files interactively";
|
desc = "Open the selected files interactively";
|
||||||
} # It's cool if you're using a terminal that supports CSI u
|
} # It's cool if you're using a terminal that supports CSI u
|
||||||
{
|
{
|
||||||
on = [ "y" ];
|
on = ["y"];
|
||||||
run = "yank";
|
run = "yank";
|
||||||
desc = "Copy the selected files";
|
desc = "Copy the selected files";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "x" ];
|
on = ["x"];
|
||||||
run = "yank --cut";
|
run = "yank --cut";
|
||||||
desc = "Cut the selected files";
|
desc = "Cut the selected files";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "p" ];
|
on = ["p"];
|
||||||
run = "paste";
|
run = "paste";
|
||||||
desc = "Paste the files";
|
desc = "Paste the files";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "P" ];
|
on = ["P"];
|
||||||
run = "paste --force";
|
run = "paste --force";
|
||||||
desc = "Paste the files (overwrite if the destination exists)";
|
desc = "Paste the files (overwrite if the destination exists)";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "-" ];
|
on = ["-"];
|
||||||
run = "link";
|
run = "link";
|
||||||
desc = "Symlink the absolute path of files";
|
desc = "Symlink the absolute path of files";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "_" ];
|
on = ["_"];
|
||||||
run = "link --relative";
|
run = "link --relative";
|
||||||
desc = "Symlink the relative path of files";
|
desc = "Symlink the relative path of files";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "d" ];
|
on = ["d"];
|
||||||
run = "remove";
|
run = "remove";
|
||||||
desc = "Move the files to the trash";
|
desc = "Move the files to the trash";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "D" ];
|
on = ["D"];
|
||||||
run = "remove --permanently";
|
run = "remove --permanently";
|
||||||
desc = "Permanently delete the files";
|
desc = "Permanently delete the files";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "a" ];
|
on = ["a"];
|
||||||
run = "create";
|
run = "create";
|
||||||
desc = "Create a file or directory (ends with / for directories)";
|
desc = "Create a file or directory (ends with / for directories)";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "r" ];
|
on = ["r"];
|
||||||
run = "rename";
|
run = "rename";
|
||||||
desc = "Rename a file or directory";
|
desc = "Rename a file or directory";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ ";" ];
|
on = [";"];
|
||||||
run = "shell";
|
run = "shell";
|
||||||
desc = "Run a shell command";
|
desc = "Run a shell command";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ ":" ];
|
on = [":"];
|
||||||
run = "shell --block";
|
run = "shell --block";
|
||||||
desc = "Run a shell command (block the UI until the command finishes)";
|
desc = "Run a shell command (block the UI until the command finishes)";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "." ];
|
on = ["."];
|
||||||
run = "hidden toggle";
|
run = "hidden toggle";
|
||||||
desc = "Toggle the visibility of hidden files";
|
desc = "Toggle the visibility of hidden files";
|
||||||
}
|
}
|
||||||
|
|
@ -363,17 +363,17 @@
|
||||||
desc = "Search files by content using ripgrep";
|
desc = "Search files by content using ripgrep";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "<C-s>" ];
|
on = ["<C-s>"];
|
||||||
run = "search none";
|
run = "search none";
|
||||||
desc = "Cancel the ongoing search";
|
desc = "Cancel the ongoing search";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "z" ];
|
on = ["z"];
|
||||||
run = "jump zoxide";
|
run = "jump zoxide";
|
||||||
desc = "Jump to a directory using zoxide";
|
desc = "Jump to a directory using zoxide";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "Z" ];
|
on = ["Z"];
|
||||||
run = "jump fzf";
|
run = "jump fzf";
|
||||||
desc = "Jump to a directory or reveal a file using fzf";
|
desc = "Jump to a directory or reveal a file using fzf";
|
||||||
}
|
}
|
||||||
|
|
@ -414,19 +414,19 @@
|
||||||
|
|
||||||
# Find
|
# Find
|
||||||
{
|
{
|
||||||
on = [ "/" ];
|
on = ["/"];
|
||||||
run = "find --smart";
|
run = "find --smart";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "?" ];
|
on = ["?"];
|
||||||
run = "find --previous --smart";
|
run = "find --previous --smart";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "n" ];
|
on = ["n"];
|
||||||
run = "find_arrow";
|
run = "find_arrow";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "N" ];
|
on = ["N"];
|
||||||
run = "find_arrow --previous";
|
run = "find_arrow --previous";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -514,82 +514,82 @@
|
||||||
|
|
||||||
# Tabs
|
# Tabs
|
||||||
{
|
{
|
||||||
on = [ "t" ];
|
on = ["t"];
|
||||||
run = "tab_create --current";
|
run = "tab_create --current";
|
||||||
desc = "Create a new tab using the current path";
|
desc = "Create a new tab using the current path";
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
on = [ "1" ];
|
on = ["1"];
|
||||||
run = "tab_switch 0";
|
run = "tab_switch 0";
|
||||||
desc = "Switch to the first tab";
|
desc = "Switch to the first tab";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "2" ];
|
on = ["2"];
|
||||||
run = "tab_switch 1";
|
run = "tab_switch 1";
|
||||||
desc = "Switch to the second tab";
|
desc = "Switch to the second tab";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "3" ];
|
on = ["3"];
|
||||||
run = "tab_switch 2";
|
run = "tab_switch 2";
|
||||||
desc = "Switch to the third tab";
|
desc = "Switch to the third tab";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "4" ];
|
on = ["4"];
|
||||||
run = "tab_switch 3";
|
run = "tab_switch 3";
|
||||||
desc = "Switch to the fourth tab";
|
desc = "Switch to the fourth tab";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "5" ];
|
on = ["5"];
|
||||||
run = "tab_switch 4";
|
run = "tab_switch 4";
|
||||||
desc = "Switch to the fifth tab";
|
desc = "Switch to the fifth tab";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "6" ];
|
on = ["6"];
|
||||||
run = "tab_switch 5";
|
run = "tab_switch 5";
|
||||||
desc = "Switch to the sixth tab";
|
desc = "Switch to the sixth tab";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "7" ];
|
on = ["7"];
|
||||||
run = "tab_switch 6";
|
run = "tab_switch 6";
|
||||||
desc = "Switch to the seventh tab";
|
desc = "Switch to the seventh tab";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "8" ];
|
on = ["8"];
|
||||||
run = "tab_switch 7";
|
run = "tab_switch 7";
|
||||||
desc = "Switch to the eighth tab";
|
desc = "Switch to the eighth tab";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "9" ];
|
on = ["9"];
|
||||||
run = "tab_switch 8";
|
run = "tab_switch 8";
|
||||||
desc = "Switch to the ninth tab";
|
desc = "Switch to the ninth tab";
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
on = [ "[" ];
|
on = ["["];
|
||||||
run = "tab_switch -1 --relative";
|
run = "tab_switch -1 --relative";
|
||||||
desc = "Switch to the previous tab";
|
desc = "Switch to the previous tab";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "]" ];
|
on = ["]"];
|
||||||
run = "tab_switch 1 --relative";
|
run = "tab_switch 1 --relative";
|
||||||
desc = "Switch to the next tab";
|
desc = "Switch to the next tab";
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
on = [ "{" ];
|
on = ["{"];
|
||||||
run = "tab_swap -1";
|
run = "tab_swap -1";
|
||||||
desc = "Swap the current tab with the previous tab";
|
desc = "Swap the current tab with the previous tab";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "}" ];
|
on = ["}"];
|
||||||
run = "tab_swap 1";
|
run = "tab_swap 1";
|
||||||
desc = "Swap the current tab with the next tab";
|
desc = "Swap the current tab with the next tab";
|
||||||
}
|
}
|
||||||
|
|
||||||
# Tasks
|
# Tasks
|
||||||
{
|
{
|
||||||
on = [ "w" ];
|
on = ["w"];
|
||||||
run = "tasks_show";
|
run = "tasks_show";
|
||||||
desc = "Show the tasks manager";
|
desc = "Show the tasks manager";
|
||||||
}
|
}
|
||||||
|
|
@ -638,7 +638,7 @@
|
||||||
|
|
||||||
# Help
|
# Help
|
||||||
{
|
{
|
||||||
on = [ "~" ];
|
on = ["~"];
|
||||||
run = "help";
|
run = "help";
|
||||||
desc = "Open help";
|
desc = "Open help";
|
||||||
}
|
}
|
||||||
|
|
@ -646,56 +646,56 @@
|
||||||
|
|
||||||
tasks.keymap = [
|
tasks.keymap = [
|
||||||
{
|
{
|
||||||
on = [ "<Esc>" ];
|
on = ["<Esc>"];
|
||||||
run = "close";
|
run = "close";
|
||||||
desc = "Hide the task manager";
|
desc = "Hide the task manager";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "<C-q>" ];
|
on = ["<C-q>"];
|
||||||
run = "close";
|
run = "close";
|
||||||
desc = "Hide the task manager";
|
desc = "Hide the task manager";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "w" ];
|
on = ["w"];
|
||||||
run = "close";
|
run = "close";
|
||||||
desc = "Hide the task manager";
|
desc = "Hide the task manager";
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
on = [ "k" ];
|
on = ["k"];
|
||||||
run = "arrow -1";
|
run = "arrow -1";
|
||||||
desc = "Move cursor up";
|
desc = "Move cursor up";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "j" ];
|
on = ["j"];
|
||||||
run = "arrow 1";
|
run = "arrow 1";
|
||||||
desc = "Move cursor down";
|
desc = "Move cursor down";
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
on = [ "<Up>" ];
|
on = ["<Up>"];
|
||||||
run = "arrow -1";
|
run = "arrow -1";
|
||||||
desc = "Move cursor up";
|
desc = "Move cursor up";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "<Down>" ];
|
on = ["<Down>"];
|
||||||
run = "arrow 1";
|
run = "arrow 1";
|
||||||
desc = "Move cursor down";
|
desc = "Move cursor down";
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
on = [ "<Enter>" ];
|
on = ["<Enter>"];
|
||||||
run = "inspect";
|
run = "inspect";
|
||||||
desc = "Inspect the task";
|
desc = "Inspect the task";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "x" ];
|
on = ["x"];
|
||||||
run = "cancel";
|
run = "cancel";
|
||||||
desc = "Cancel the task";
|
desc = "Cancel the task";
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
on = [ "~" ];
|
on = ["~"];
|
||||||
run = "help";
|
run = "help";
|
||||||
desc = "Open help";
|
desc = "Open help";
|
||||||
}
|
}
|
||||||
|
|
@ -703,56 +703,56 @@
|
||||||
|
|
||||||
select.keymap = [
|
select.keymap = [
|
||||||
{
|
{
|
||||||
on = [ "<C-q>" ];
|
on = ["<C-q>"];
|
||||||
run = "close";
|
run = "close";
|
||||||
desc = "Cancel selection";
|
desc = "Cancel selection";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "<Esc>" ];
|
on = ["<Esc>"];
|
||||||
run = "close";
|
run = "close";
|
||||||
desc = "Cancel selection";
|
desc = "Cancel selection";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "<Enter>" ];
|
on = ["<Enter>"];
|
||||||
run = "close --submit";
|
run = "close --submit";
|
||||||
desc = "Submit the selection";
|
desc = "Submit the selection";
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
on = [ "k" ];
|
on = ["k"];
|
||||||
run = "arrow -1";
|
run = "arrow -1";
|
||||||
desc = "Move cursor up";
|
desc = "Move cursor up";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "j" ];
|
on = ["j"];
|
||||||
run = "arrow 1";
|
run = "arrow 1";
|
||||||
desc = "Move cursor down";
|
desc = "Move cursor down";
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
on = [ "K" ];
|
on = ["K"];
|
||||||
run = "arrow -5";
|
run = "arrow -5";
|
||||||
desc = "Move cursor up 5 lines";
|
desc = "Move cursor up 5 lines";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "J" ];
|
on = ["J"];
|
||||||
run = "arrow 5";
|
run = "arrow 5";
|
||||||
desc = "Move cursor down 5 lines";
|
desc = "Move cursor down 5 lines";
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
on = [ "<Up>" ];
|
on = ["<Up>"];
|
||||||
run = "arrow -1";
|
run = "arrow -1";
|
||||||
desc = "Move cursor up";
|
desc = "Move cursor up";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "<Down>" ];
|
on = ["<Down>"];
|
||||||
run = "arrow 1";
|
run = "arrow 1";
|
||||||
desc = "Move cursor down";
|
desc = "Move cursor down";
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
on = [ "~" ];
|
on = ["~"];
|
||||||
run = "help";
|
run = "help";
|
||||||
desc = "Open help";
|
desc = "Open help";
|
||||||
}
|
}
|
||||||
|
|
@ -760,39 +760,39 @@
|
||||||
|
|
||||||
input.keymap = [
|
input.keymap = [
|
||||||
{
|
{
|
||||||
on = [ "<C-q>" ];
|
on = ["<C-q>"];
|
||||||
run = "close";
|
run = "close";
|
||||||
desc = "Cancel input";
|
desc = "Cancel input";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "<Enter>" ];
|
on = ["<Enter>"];
|
||||||
run = "close --submit";
|
run = "close --submit";
|
||||||
desc = "Submit the input";
|
desc = "Submit the input";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "<Esc>" ];
|
on = ["<Esc>"];
|
||||||
run = "escape";
|
run = "escape";
|
||||||
desc = "Go back the normal mode or cancel input";
|
desc = "Go back the normal mode or cancel input";
|
||||||
}
|
}
|
||||||
|
|
||||||
# Mode
|
# Mode
|
||||||
{
|
{
|
||||||
on = [ "i" ];
|
on = ["i"];
|
||||||
run = "insert";
|
run = "insert";
|
||||||
desc = "Enter insert mode";
|
desc = "Enter insert mode";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "a" ];
|
on = ["a"];
|
||||||
run = "insert --append";
|
run = "insert --append";
|
||||||
desc = "Enter append mode";
|
desc = "Enter append mode";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "v" ];
|
on = ["v"];
|
||||||
run = "visual";
|
run = "visual";
|
||||||
desc = "Enter visual mode";
|
desc = "Enter visual mode";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "V" ];
|
on = ["V"];
|
||||||
run = [
|
run = [
|
||||||
"move -999"
|
"move -999"
|
||||||
"visual"
|
"visual"
|
||||||
|
|
@ -803,28 +803,28 @@
|
||||||
|
|
||||||
# Navigation
|
# Navigation
|
||||||
{
|
{
|
||||||
on = [ "h" ];
|
on = ["h"];
|
||||||
run = "move -1";
|
run = "move -1";
|
||||||
desc = "Move cursor left";
|
desc = "Move cursor left";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "l" ];
|
on = ["l"];
|
||||||
run = "move 1";
|
run = "move 1";
|
||||||
desc = "Move cursor right";
|
desc = "Move cursor right";
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
on = [ "0" ];
|
on = ["0"];
|
||||||
run = "move -999";
|
run = "move -999";
|
||||||
desc = "Move to the BOL";
|
desc = "Move to the BOL";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "$" ];
|
on = ["$"];
|
||||||
run = "move 999";
|
run = "move 999";
|
||||||
desc = "Move to the EOL";
|
desc = "Move to the EOL";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "I" ];
|
on = ["I"];
|
||||||
run = [
|
run = [
|
||||||
"move -999"
|
"move -999"
|
||||||
"insert"
|
"insert"
|
||||||
|
|
@ -832,7 +832,7 @@
|
||||||
desc = "Move to the BOL and enter insert mode";
|
desc = "Move to the BOL and enter insert mode";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "A" ];
|
on = ["A"];
|
||||||
run = [
|
run = [
|
||||||
"move 999"
|
"move 999"
|
||||||
"insert --append"
|
"insert --append"
|
||||||
|
|
@ -841,40 +841,40 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
on = [ "<Left>" ];
|
on = ["<Left>"];
|
||||||
run = "move -1";
|
run = "move -1";
|
||||||
desc = "Move cursor left";
|
desc = "Move cursor left";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "<Right>" ];
|
on = ["<Right>"];
|
||||||
run = "move 1";
|
run = "move 1";
|
||||||
desc = "Move cursor right";
|
desc = "Move cursor right";
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
on = [ "b" ];
|
on = ["b"];
|
||||||
run = "backward";
|
run = "backward";
|
||||||
desc = "Move to the beginning of the previous word";
|
desc = "Move to the beginning of the previous word";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "w" ];
|
on = ["w"];
|
||||||
run = "forward";
|
run = "forward";
|
||||||
desc = "Move to the beginning of the next word";
|
desc = "Move to the beginning of the next word";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "e" ];
|
on = ["e"];
|
||||||
run = "forward --end-of-word";
|
run = "forward --end-of-word";
|
||||||
desc = "Move to the end of the next word";
|
desc = "Move to the end of the next word";
|
||||||
}
|
}
|
||||||
|
|
||||||
# Deletion
|
# Deletion
|
||||||
{
|
{
|
||||||
on = [ "d" ];
|
on = ["d"];
|
||||||
run = "delete --cut";
|
run = "delete --cut";
|
||||||
desc = "Cut the selected characters";
|
desc = "Cut the selected characters";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "D" ];
|
on = ["D"];
|
||||||
run = [
|
run = [
|
||||||
"delete --cut"
|
"delete --cut"
|
||||||
"move 999"
|
"move 999"
|
||||||
|
|
@ -882,12 +882,12 @@
|
||||||
desc = "Cut until the EOL";
|
desc = "Cut until the EOL";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "c" ];
|
on = ["c"];
|
||||||
run = "delete --cut --insert";
|
run = "delete --cut --insert";
|
||||||
desc = "Cut the selected characters and enter insert mode";
|
desc = "Cut the selected characters and enter insert mode";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "C" ];
|
on = ["C"];
|
||||||
run = [
|
run = [
|
||||||
"delete --cut --insert"
|
"delete --cut --insert"
|
||||||
"move 999"
|
"move 999"
|
||||||
|
|
@ -895,7 +895,7 @@
|
||||||
desc = "Cut until the EOL and enter insert mode";
|
desc = "Cut until the EOL and enter insert mode";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "x" ];
|
on = ["x"];
|
||||||
run = [
|
run = [
|
||||||
"delete --cut"
|
"delete --cut"
|
||||||
"move 1 --in-operating"
|
"move 1 --in-operating"
|
||||||
|
|
@ -905,36 +905,36 @@
|
||||||
|
|
||||||
# Yank/Paste
|
# Yank/Paste
|
||||||
{
|
{
|
||||||
on = [ "y" ];
|
on = ["y"];
|
||||||
run = "yank";
|
run = "yank";
|
||||||
desc = "Copy the selected characters";
|
desc = "Copy the selected characters";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "p" ];
|
on = ["p"];
|
||||||
run = "paste";
|
run = "paste";
|
||||||
desc = "Paste the copied characters after the cursor";
|
desc = "Paste the copied characters after the cursor";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "P" ];
|
on = ["P"];
|
||||||
run = "paste --before";
|
run = "paste --before";
|
||||||
desc = "Paste the copied characters before the cursor";
|
desc = "Paste the copied characters before the cursor";
|
||||||
}
|
}
|
||||||
|
|
||||||
# Undo/Redo
|
# Undo/Redo
|
||||||
{
|
{
|
||||||
on = [ "u" ];
|
on = ["u"];
|
||||||
run = "undo";
|
run = "undo";
|
||||||
desc = "Undo the last operation";
|
desc = "Undo the last operation";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "<C-r>" ];
|
on = ["<C-r>"];
|
||||||
run = "redo";
|
run = "redo";
|
||||||
desc = "Redo the last operation";
|
desc = "Redo the last operation";
|
||||||
}
|
}
|
||||||
|
|
||||||
# Help
|
# Help
|
||||||
{
|
{
|
||||||
on = [ "~" ];
|
on = ["~"];
|
||||||
run = "help";
|
run = "help";
|
||||||
desc = "Open help";
|
desc = "Open help";
|
||||||
}
|
}
|
||||||
|
|
@ -942,58 +942,58 @@
|
||||||
|
|
||||||
help.keymap = [
|
help.keymap = [
|
||||||
{
|
{
|
||||||
on = [ "<Esc>" ];
|
on = ["<Esc>"];
|
||||||
run = "escape";
|
run = "escape";
|
||||||
desc = "Clear the filter or hide the help";
|
desc = "Clear the filter or hide the help";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "q" ];
|
on = ["q"];
|
||||||
run = "close";
|
run = "close";
|
||||||
desc = "Exit the process";
|
desc = "Exit the process";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "<C-q>" ];
|
on = ["<C-q>"];
|
||||||
run = "close";
|
run = "close";
|
||||||
desc = "Hide the help";
|
desc = "Hide the help";
|
||||||
}
|
}
|
||||||
|
|
||||||
# Navigation
|
# Navigation
|
||||||
{
|
{
|
||||||
on = [ "k" ];
|
on = ["k"];
|
||||||
run = "arrow -1";
|
run = "arrow -1";
|
||||||
desc = "Move cursor up";
|
desc = "Move cursor up";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "j" ];
|
on = ["j"];
|
||||||
run = "arrow 1";
|
run = "arrow 1";
|
||||||
desc = "Move cursor down";
|
desc = "Move cursor down";
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
on = [ "K" ];
|
on = ["K"];
|
||||||
run = "arrow -5";
|
run = "arrow -5";
|
||||||
desc = "Move cursor up 5 lines";
|
desc = "Move cursor up 5 lines";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "J" ];
|
on = ["J"];
|
||||||
run = "arrow 5";
|
run = "arrow 5";
|
||||||
desc = "Move cursor down 5 lines";
|
desc = "Move cursor down 5 lines";
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
on = [ "<Up>" ];
|
on = ["<Up>"];
|
||||||
run = "arrow -1";
|
run = "arrow -1";
|
||||||
desc = "Move cursor up";
|
desc = "Move cursor up";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "<Down>" ];
|
on = ["<Down>"];
|
||||||
run = "arrow 1";
|
run = "arrow 1";
|
||||||
desc = "Move cursor down";
|
desc = "Move cursor down";
|
||||||
}
|
}
|
||||||
|
|
||||||
# Filtering
|
# Filtering
|
||||||
{
|
{
|
||||||
on = [ "/" ];
|
on = ["/"];
|
||||||
run = "filter";
|
run = "filter";
|
||||||
desc = "Apply a filter for the help items";
|
desc = "Apply a filter for the help items";
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@
|
||||||
stdenv.mkDerivation (final: {
|
stdenv.mkDerivation (final: {
|
||||||
pname = "teams-pwa";
|
pname = "teams-pwa";
|
||||||
name = final.pname;
|
name = final.pname;
|
||||||
nativeBuildInputs = [ copyDesktopItems ];
|
nativeBuildInputs = [copyDesktopItems];
|
||||||
dontUnpack = true;
|
dontUnpack = true;
|
||||||
|
|
||||||
desktopItems = [
|
desktopItems = [
|
||||||
|
|
@ -21,15 +21,15 @@ stdenv.mkDerivation (final: {
|
||||||
} --app=https://teams.microsoft.com";
|
} --app=https://teams.microsoft.com";
|
||||||
desktopName = "Microsoft Teams PWA";
|
desktopName = "Microsoft Teams PWA";
|
||||||
genericName = "Progressive Web App for Microsoft Teams";
|
genericName = "Progressive Web App for Microsoft Teams";
|
||||||
categories = [ "Network" ];
|
categories = ["Network"];
|
||||||
mimeTypes = [ "x-scheme-handler/msteams" ];
|
mimeTypes = ["x-scheme-handler/msteams"];
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "Microsoft Teams PWA";
|
description = "Microsoft Teams PWA";
|
||||||
homepage = "https://teams.microsoft.com";
|
homepage = "https://teams.microsoft.com";
|
||||||
maintainers = with maintainers; [ ners ];
|
maintainers = with maintainers; [ners];
|
||||||
platforms = chromium.meta.platforms;
|
platforms = chromium.meta.platforms;
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue