feat: refactored home manager
184
home/default.nix
|
@ -1,176 +1,46 @@
|
|||
let
|
||||
modulesPath = ./modules;
|
||||
miscPath = modulesPath + "/misc";
|
||||
# Recursively collect directories
|
||||
collectDirs =
|
||||
path:
|
||||
let
|
||||
content = builtins.readDir path;
|
||||
subdirs = builtins.filter (name: content.${name} == "directory") (builtins.attrNames content);
|
||||
buildPath = name: path + "/${name}";
|
||||
|
||||
moduleImport =
|
||||
path: nameTransform:
|
||||
# Get immediate subdirectories
|
||||
thisDirs = map buildPath subdirs;
|
||||
# Recursively get sub-subdirectories
|
||||
subDirs = builtins.concatMap collectDirs thisDirs;
|
||||
in
|
||||
[ path ] ++ subDirs;
|
||||
|
||||
# Import directories and their default.nix files
|
||||
directoryImport =
|
||||
path:
|
||||
builtins.listToAttrs (
|
||||
map
|
||||
(name: {
|
||||
name = nameTransform name;
|
||||
value = import (path + "/${name}");
|
||||
})
|
||||
(
|
||||
builtins.filter (
|
||||
name: (builtins.readDir path).${name} == "regular" && builtins.match ".*\\.nix$" name != null
|
||||
) (builtins.attrNames (builtins.readDir path))
|
||||
)
|
||||
map (dir: {
|
||||
name = baseNameOf (toString dir);
|
||||
value = import dir;
|
||||
}) (collectDirs path)
|
||||
);
|
||||
|
||||
modules =
|
||||
moduleImport modulesPath (
|
||||
name:
|
||||
builtins.replaceStrings
|
||||
[
|
||||
".nix"
|
||||
]
|
||||
[
|
||||
""
|
||||
]
|
||||
name
|
||||
)
|
||||
// moduleImport miscPath (
|
||||
name:
|
||||
"misc-${
|
||||
builtins.replaceStrings
|
||||
[
|
||||
".nix"
|
||||
]
|
||||
[
|
||||
""
|
||||
]
|
||||
name
|
||||
}"
|
||||
)
|
||||
//
|
||||
(
|
||||
path:
|
||||
builtins.listToAttrs (
|
||||
map
|
||||
(name: {
|
||||
name = name;
|
||||
value = import (path + "/${name}");
|
||||
})
|
||||
(
|
||||
builtins.filter (name: (builtins.readDir path).${name} == "directory" && name != "misc") (
|
||||
builtins.attrNames (builtins.readDir path)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
modulesPath;
|
||||
# Create the modules attrset
|
||||
modules = directoryImport ./.;
|
||||
in
|
||||
{
|
||||
flake.homeModules = {
|
||||
desktop = {
|
||||
imports = builtins.attrValues {
|
||||
inherit (modules)
|
||||
brave
|
||||
flameshot
|
||||
misc-android
|
||||
misc-desktop
|
||||
misc-internet
|
||||
misc-tracking
|
||||
cli
|
||||
gui
|
||||
;
|
||||
};
|
||||
};
|
||||
|
||||
entertainment = {
|
||||
server = {
|
||||
imports = builtins.attrValues {
|
||||
inherit (modules)
|
||||
freetube
|
||||
misc-entertainment
|
||||
mpv
|
||||
steam
|
||||
;
|
||||
};
|
||||
};
|
||||
|
||||
firefox = {
|
||||
imports = builtins.attrValues {
|
||||
inherit (modules)
|
||||
firefox
|
||||
;
|
||||
};
|
||||
};
|
||||
|
||||
hyprland = {
|
||||
imports = builtins.attrValues {
|
||||
inherit (modules)
|
||||
gtk
|
||||
dunst
|
||||
easyEffects
|
||||
gammastep
|
||||
hyprland
|
||||
misc-hyprland
|
||||
network
|
||||
swaylock
|
||||
tofi
|
||||
waybar
|
||||
;
|
||||
};
|
||||
};
|
||||
productionArt = {
|
||||
imports = builtins.attrValues {
|
||||
inherit (modules)
|
||||
misc-productionArt
|
||||
;
|
||||
};
|
||||
};
|
||||
|
||||
productionAudio = {
|
||||
imports = builtins.attrValues {
|
||||
inherit (modules)
|
||||
misc-productionAudio
|
||||
;
|
||||
};
|
||||
};
|
||||
|
||||
productionCode = {
|
||||
imports = builtins.attrValues {
|
||||
inherit (modules)
|
||||
neovim
|
||||
vscode
|
||||
zed
|
||||
;
|
||||
};
|
||||
};
|
||||
|
||||
productionVideo = {
|
||||
imports = builtins.attrValues {
|
||||
inherit (modules)
|
||||
misc-productionVideo
|
||||
obs-studio
|
||||
yt-dlp
|
||||
;
|
||||
};
|
||||
};
|
||||
|
||||
productionWriting = {
|
||||
imports = builtins.attrValues {
|
||||
inherit (modules)
|
||||
misc-productionWriting
|
||||
;
|
||||
};
|
||||
};
|
||||
|
||||
shared = {
|
||||
imports = builtins.attrValues {
|
||||
inherit (modules)
|
||||
bottom
|
||||
direnv
|
||||
fastfetch
|
||||
ghostty
|
||||
git
|
||||
helix
|
||||
homeManager
|
||||
lazygit
|
||||
misc-commandLine
|
||||
nushell
|
||||
starship
|
||||
yazi
|
||||
zellij
|
||||
zoxide
|
||||
cli
|
||||
;
|
||||
};
|
||||
};
|
||||
|
|
|
@ -1,8 +0,0 @@
|
|||
[
|
||||
{id = "cjpalhdlnbpafiamejdnhcphjbkeiagm";} # uBlock Origin
|
||||
{id = "cmpdlhmnmjhihmcfnigoememnffkimlk";} # Catppuccin Macchiato
|
||||
{id = "dlnpfhfhmkiebpnlllpehlmklgdggbhn";} # Don't Close Last Tab
|
||||
{id = "iplffkdpngmdjhlpjmppncnlhomiipha";} # Unpaywall
|
||||
{id = "mnjggcdmjocbbbhaepdhchncahnbgone";} # SponsorBlock
|
||||
{id = "ponfpcnoihfmfllpaingbgckeeldkhle";} # YouTube Enhancer
|
||||
]
|
|
@ -1,9 +0,0 @@
|
|||
{
|
||||
programs.brave = let
|
||||
configPath = ./config;
|
||||
extensionsPath = import (configPath + /extensions.nix);
|
||||
in {
|
||||
enable = true;
|
||||
extensions = extensionsPath;
|
||||
};
|
||||
}
|
13
home/modules/misc/android.nix → home/modules/cli/android/androidFileTransfer/default.nix
Executable file → Normal file
|
@ -1,13 +1,12 @@
|
|||
{pkgs, ...}: {
|
||||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.packages = builtins.attrValues {
|
||||
inherit
|
||||
(pkgs)
|
||||
inherit (pkgs)
|
||||
android-file-transfer
|
||||
android-tools
|
||||
deskreen
|
||||
scrcpy
|
||||
;
|
||||
};
|
||||
}
|
||||
# requires that users be part of the adbusers group
|
||||
|
12
home/modules/cli/android/androidTools/default.nix
Normal file
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.packages = builtins.attrValues {
|
||||
inherit (pkgs)
|
||||
android-tools
|
||||
;
|
||||
};
|
||||
}
|
||||
# requires that users be part of the adbusers group
|
10
home/modules/cli/android/default.nix
Normal file
|
@ -0,0 +1,10 @@
|
|||
let
|
||||
content = builtins.readDir ./.;
|
||||
|
||||
dirContent = builtins.filter (n: content.${n} == "directory") (builtins.attrNames content);
|
||||
|
||||
importList = map (name: ./. + "/${name}") dirContent;
|
||||
in
|
||||
{
|
||||
imports = importList;
|
||||
}
|
11
home/modules/cli/android/simpleMtpfs/default.nix
Normal file
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.packages = builtins.attrValues {
|
||||
inherit (pkgs)
|
||||
simple-mtpfs
|
||||
;
|
||||
};
|
||||
}
|
10
home/modules/cli/default.nix
Normal file
|
@ -0,0 +1,10 @@
|
|||
let
|
||||
content = builtins.readDir ./.;
|
||||
|
||||
dirContent = builtins.filter (n: content.${n} == "directory") (builtins.attrNames content);
|
||||
|
||||
importList = map (name: ./. + "/${name}") dirContent;
|
||||
in
|
||||
{
|
||||
imports = importList;
|
||||
}
|
10
home/modules/cli/development/default.nix
Normal file
|
@ -0,0 +1,10 @@
|
|||
let
|
||||
content = builtins.readDir ./.;
|
||||
|
||||
dirContent = builtins.filter (n: content.${n} == "directory") (builtins.attrNames content);
|
||||
|
||||
importList = map (name: ./. + "/${name}") dirContent;
|
||||
in
|
||||
{
|
||||
imports = importList;
|
||||
}
|
10
home/modules/cli/development/editing/default.nix
Normal file
|
@ -0,0 +1,10 @@
|
|||
let
|
||||
content = builtins.readDir ./.;
|
||||
|
||||
dirContent = builtins.filter (n: content.${n} == "directory") (builtins.attrNames content);
|
||||
|
||||
importList = map (name: ./. + "/${name}") dirContent;
|
||||
in
|
||||
{
|
||||
imports = importList;
|
||||
}
|
19
home/modules/cli/development/editing/helix/default.nix
Executable file
|
@ -0,0 +1,19 @@
|
|||
{
|
||||
pkgs,
|
||||
flake,
|
||||
...
|
||||
}:
|
||||
{
|
||||
programs.helix =
|
||||
let
|
||||
configPath = ./config;
|
||||
settingsPath = import (configPath + /settings.nix);
|
||||
languagesPath = import (configPath + /languages.nix);
|
||||
in
|
||||
{
|
||||
enable = true;
|
||||
package = flake.inputs.helix.packages.${pkgs.system}.default;
|
||||
languages = languagesPath;
|
||||
settings = settingsPath;
|
||||
};
|
||||
}
|
0
home/modules/neovim.nix → home/modules/cli/development/editing/neovim/default.nix
Executable file → Normal file
10
home/modules/cli/development/versioning/default.nix
Normal file
|
@ -0,0 +1,10 @@
|
|||
let
|
||||
content = builtins.readDir ./.;
|
||||
|
||||
dirContent = builtins.filter (n: content.${n} == "directory") (builtins.attrNames content);
|
||||
|
||||
importList = map (name: ./. + "/${name}") dirContent;
|
||||
in
|
||||
{
|
||||
imports = importList;
|
||||
}
|
6
home/modules/git.nix → home/modules/cli/development/versioning/git/default.nix
Executable file → Normal file
|
@ -2,10 +2,12 @@
|
|||
config,
|
||||
flake,
|
||||
...
|
||||
}: let
|
||||
}:
|
||||
let
|
||||
user = config.home.username;
|
||||
userConfig = flake.config.people.users.${user};
|
||||
in {
|
||||
in
|
||||
{
|
||||
programs.git = {
|
||||
enable = true;
|
||||
userName = userConfig.name;
|
0
home/modules/lazygit.nix → home/modules/cli/development/versioning/lazygit/default.nix
Executable file → Normal file
10
home/modules/cli/files/default.nix
Normal file
|
@ -0,0 +1,10 @@
|
|||
let
|
||||
content = builtins.readDir ./.;
|
||||
|
||||
dirContent = builtins.filter (n: content.${n} == "directory") (builtins.attrNames content);
|
||||
|
||||
importList = map (name: ./. + "/${name}") dirContent;
|
||||
in
|
||||
{
|
||||
imports = importList;
|
||||
}
|
11
home/modules/cli/files/ncdu/default.nix
Normal file
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.packages = builtins.attrValues {
|
||||
inherit (pkgs)
|
||||
ncdu
|
||||
;
|
||||
};
|
||||
}
|
11
home/modules/cli/files/samba/default.nix
Normal file
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.packages = builtins.attrValues {
|
||||
inherit (pkgs)
|
||||
samba
|
||||
;
|
||||
};
|
||||
}
|
11
home/modules/cli/files/unrar/default.nix
Normal file
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.packages = builtins.attrValues {
|
||||
inherit (pkgs)
|
||||
unrar
|
||||
;
|
||||
};
|
||||
}
|
22
home/modules/cli/files/yazi/default.nix
Executable file
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
flake,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
programs.yazi =
|
||||
let
|
||||
configPath = ./config;
|
||||
keymapPath = import (configPath + /keymap.nix);
|
||||
settingsPath = import (configPath + /settings.nix);
|
||||
in
|
||||
{
|
||||
enable = true;
|
||||
# package = flake.inputs.yazi.packages.${pkgs.system}.yazi;
|
||||
enableNushellIntegration = true;
|
||||
keymap = keymapPath;
|
||||
settings = settingsPath;
|
||||
};
|
||||
# Keymap
|
||||
# https://github.com/sxyazi/yazi/blob/main/yazi-config/preset/keymap.toml
|
||||
}
|
11
home/modules/cli/files/zip/default.nix
Normal file
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.packages = builtins.attrValues {
|
||||
inherit (pkgs)
|
||||
zip
|
||||
;
|
||||
};
|
||||
}
|
10
home/modules/cli/shell/default.nix
Normal file
|
@ -0,0 +1,10 @@
|
|||
let
|
||||
content = builtins.readDir ./.;
|
||||
|
||||
dirContent = builtins.filter (n: content.${n} == "directory") (builtins.attrNames content);
|
||||
|
||||
importList = map (name: ./. + "/${name}") dirContent;
|
||||
in
|
||||
{
|
||||
imports = importList;
|
||||
}
|
0
home/modules/nushell.nix → home/modules/cli/shell/nushell/default.nix
Executable file → Normal file
0
home/modules/zellij.nix → home/modules/cli/shell/zellij/default.nix
Executable file → Normal file
3
home/modules/zoxide.nix → home/modules/cli/shell/zoxide/default.nix
Executable file → Normal file
|
@ -1,4 +1,5 @@
|
|||
{pkgs, ...}: {
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
programs.zoxide = {
|
||||
enable = true;
|
||||
enableNushellIntegration = true;
|
11
home/modules/cli/utilities/alsaUtils/default.nix
Normal file
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.packages = builtins.attrValues {
|
||||
inherit (pkgs)
|
||||
alsa-utils
|
||||
;
|
||||
};
|
||||
}
|
11
home/modules/cli/utilities/brightnessCtl/default.nix
Normal file
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.packages = builtins.attrValues {
|
||||
inherit (pkgs)
|
||||
brightnessctl
|
||||
;
|
||||
};
|
||||
}
|
11
home/modules/cli/utilities/cifsUtils/default.nix
Normal file
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.packages = builtins.attrValues {
|
||||
inherit (pkgs)
|
||||
cifs-utils
|
||||
;
|
||||
};
|
||||
}
|
10
home/modules/cli/utilities/default.nix
Normal file
|
@ -0,0 +1,10 @@
|
|||
let
|
||||
content = builtins.readDir ./.;
|
||||
|
||||
dirContent = builtins.filter (n: content.${n} == "directory") (builtins.attrNames content);
|
||||
|
||||
importList = map (name: ./. + "/${name}") dirContent;
|
||||
in
|
||||
{
|
||||
imports = importList;
|
||||
}
|
3
home/modules/direnv.nix → home/modules/cli/utilities/direnv/default.nix
Executable file → Normal file
|
@ -2,7 +2,8 @@
|
|||
flake,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
}:
|
||||
{
|
||||
programs.direnv = {
|
||||
enable = true;
|
||||
package = flake.inputs.direnv.packages.${pkgs.system}.default;
|
|
@ -1,7 +1,8 @@
|
|||
let
|
||||
configPath = ./config;
|
||||
settingsPath = import (configPath + /settings.nix);
|
||||
in {
|
||||
in
|
||||
{
|
||||
programs.fastfetch = {
|
||||
enable = true;
|
||||
settings = settingsPath;
|
11
home/modules/cli/utilities/ffmpeg/default.nix
Normal file
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.packages = builtins.attrValues {
|
||||
inherit (pkgs)
|
||||
ffmpeg
|
||||
;
|
||||
};
|
||||
}
|
11
home/modules/cli/utilities/flac/default.nix
Normal file
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.packages = builtins.attrValues {
|
||||
inherit (pkgs)
|
||||
flac
|
||||
;
|
||||
};
|
||||
}
|
11
home/modules/cli/utilities/gLib/default.nix
Normal file
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.packages = builtins.attrValues {
|
||||
inherit (pkgs)
|
||||
glib
|
||||
;
|
||||
};
|
||||
}
|
11
home/modules/cli/utilities/hardInfo/default.nix
Normal file
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.packages = builtins.attrValues {
|
||||
inherit (pkgs)
|
||||
hardinfo
|
||||
;
|
||||
};
|
||||
}
|
1
home/modules/cli/utilities/homeManager/default.nix
Normal file
|
@ -0,0 +1 @@
|
|||
{ programs.home-manager.enable = true; }
|
11
home/modules/cli/utilities/inetUtils/default.nix
Normal file
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.packages = builtins.attrValues {
|
||||
inherit (pkgs)
|
||||
inetutils
|
||||
;
|
||||
};
|
||||
}
|
11
home/modules/cli/utilities/libgenCli/default.nix
Normal file
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.packages = builtins.attrValues {
|
||||
inherit (pkgs)
|
||||
libgen-cli
|
||||
;
|
||||
};
|
||||
}
|
11
home/modules/cli/utilities/nyanCat/default.nix
Normal file
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.packages = builtins.attrValues {
|
||||
inherit (pkgs)
|
||||
nyancat
|
||||
;
|
||||
};
|
||||
}
|
11
home/modules/cli/utilities/parted/default.nix
Normal file
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.packages = builtins.attrValues {
|
||||
inherit (pkgs)
|
||||
parted
|
||||
;
|
||||
};
|
||||
}
|
11
home/modules/cli/utilities/pciUtils/default.nix
Normal file
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.packages = builtins.attrValues {
|
||||
inherit (pkgs)
|
||||
pciutils
|
||||
;
|
||||
};
|
||||
}
|
11
home/modules/cli/utilities/pinEntry/default.nix
Normal file
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.packages = builtins.attrValues {
|
||||
inherit (pkgs)
|
||||
pinentry
|
||||
;
|
||||
};
|
||||
}
|
11
home/modules/cli/utilities/playerCtl/default.nix
Normal file
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.packages = builtins.attrValues {
|
||||
inherit (pkgs)
|
||||
playerctl
|
||||
;
|
||||
};
|
||||
}
|
11
home/modules/cli/utilities/protonVpn/default.nix
Normal file
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.packages = builtins.attrValues {
|
||||
inherit (pkgs)
|
||||
protonvpn-cli_2
|
||||
;
|
||||
};
|
||||
}
|
11
home/modules/cli/utilities/speedTest/default.nix
Normal file
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.packages = builtins.attrValues {
|
||||
inherit (pkgs)
|
||||
speedtest-rs
|
||||
;
|
||||
};
|
||||
}
|
11
home/modules/cli/utilities/sshfs/default.nix
Normal file
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.packages = builtins.attrValues {
|
||||
inherit (pkgs)
|
||||
sshfs
|
||||
;
|
||||
};
|
||||
}
|
11
home/modules/cli/utilities/tokei/default.nix
Normal file
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.packages = builtins.attrValues {
|
||||
inherit (pkgs)
|
||||
tokei
|
||||
;
|
||||
};
|
||||
}
|
11
home/modules/cli/utilities/tomb/default.nix
Normal file
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.packages = builtins.attrValues {
|
||||
inherit (pkgs)
|
||||
tomb
|
||||
;
|
||||
};
|
||||
}
|
7
home/modules/cli/utilities/udiskie/default.nix
Normal file
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
services.udiskie = {
|
||||
enable = true;
|
||||
automount = true;
|
||||
tray = "always";
|
||||
};
|
||||
}
|
11
home/modules/cli/utilities/wget/default.nix
Normal file
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.packages = builtins.attrValues {
|
||||
inherit (pkgs)
|
||||
wget
|
||||
;
|
||||
};
|
||||
}
|
11
home/modules/cli/utilities/wine/default.nix
Normal file
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.packages = builtins.attrValues {
|
||||
inherit (pkgs)
|
||||
wine
|
||||
;
|
||||
};
|
||||
}
|
11
home/modules/cli/utilities/xdgUtils/default.nix
Normal file
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.packages = builtins.attrValues {
|
||||
inherit (pkgs)
|
||||
xdg-utils
|
||||
;
|
||||
};
|
||||
}
|
11
home/modules/cli/utilities/xdoTool/default.nix
Normal file
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.packages = builtins.attrValues {
|
||||
inherit (pkgs)
|
||||
xdotool
|
||||
;
|
||||
};
|
||||
}
|
10
home/modules/misc/productionAudio.nix → home/modules/cli/utilities/yaBridge/default.nix
Executable file → Normal file
|
@ -1,8 +1,10 @@
|
|||
{pkgs, ...}: {
|
||||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.packages = builtins.attrValues {
|
||||
inherit
|
||||
(pkgs)
|
||||
reaper
|
||||
inherit (pkgs)
|
||||
yabridge
|
||||
;
|
||||
};
|
13
home/modules/cli/utilities/yt-dlp/default.nix
Executable file
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
programs.yt-dlp =
|
||||
let
|
||||
configPath = ./config;
|
||||
extraConfigPath = import (configPath + /extraConfig.nix);
|
||||
settingsPath = import (configPath + /settings.nix);
|
||||
in
|
||||
{
|
||||
enable = true;
|
||||
extraConfig = extraConfigPath;
|
||||
settings = settingsPath;
|
||||
};
|
||||
}
|
10
home/modules/default.nix
Normal file
|
@ -0,0 +1,10 @@
|
|||
let
|
||||
content = builtins.readDir ./.;
|
||||
|
||||
dirContent = builtins.filter (n: content.${n} == "directory") (builtins.attrNames content);
|
||||
|
||||
importList = map (name: ./. + "/${name}") dirContent;
|
||||
in
|
||||
{
|
||||
imports = importList;
|
||||
}
|
|
@ -1,32 +0,0 @@
|
|||
{flake, ...}: let
|
||||
configPath = ./config;
|
||||
flakedPath = configPath + /flake;
|
||||
|
||||
filterFiles = name: builtins.match ".*\\.nix$" name != null;
|
||||
|
||||
regularBookmarks = let
|
||||
files = builtins.attrNames (builtins.readDir configPath);
|
||||
in
|
||||
builtins.foldl' (
|
||||
emptyList: bookmarkFile:
|
||||
emptyList ++ (import (configPath + "/${bookmarkFile}")).bookmarks
|
||||
) [] (builtins.filter filterFiles files);
|
||||
|
||||
flakedBookmarks = let
|
||||
files = builtins.attrNames (builtins.readDir flakedPath);
|
||||
in
|
||||
builtins.foldl' (
|
||||
emptyList: bookmarkFile:
|
||||
emptyList
|
||||
++ (import (flakedPath + "/${bookmarkFile}") {
|
||||
inherit
|
||||
flake
|
||||
;
|
||||
})
|
||||
.bookmarks
|
||||
) [] (builtins.filter filterFiles files);
|
||||
|
||||
aggregatedBookmarks = regularBookmarks ++ flakedBookmarks;
|
||||
in {
|
||||
bookmarks = aggregatedBookmarks;
|
||||
}
|
|
@ -1,25 +0,0 @@
|
|||
{flake, ...}: let
|
||||
inherit
|
||||
(flake.config.services)
|
||||
instances
|
||||
;
|
||||
in {
|
||||
"${instances.jellyfin.label}" = {
|
||||
definedAliases = [
|
||||
"@jf"
|
||||
];
|
||||
icon = ./icons/jf.png;
|
||||
urls = [
|
||||
{template = "https://${instances.jellyfin.subdomain}.${instances.web.domains.url0}/web/#/search.html?query={searchTerms}";}
|
||||
];
|
||||
};
|
||||
"${instances.peertube.label}" = {
|
||||
definedAliases = [
|
||||
"@pt"
|
||||
];
|
||||
icon = ./icons/pt.png;
|
||||
urls = [
|
||||
{template = "https://${instances.peertube.subdomain}.${instances.web.domains.url1}/search?search={searchTerms}";}
|
||||
];
|
||||
};
|
||||
}
|
|
@ -1,14 +0,0 @@
|
|||
let
|
||||
configPath = ./config;
|
||||
|
||||
aggregatedSettings = let
|
||||
files = builtins.attrNames (builtins.readDir configPath);
|
||||
in
|
||||
builtins.foldl' (
|
||||
emptySet: settingsFile:
|
||||
emptySet // (import (configPath + "/${settingsFile}"))
|
||||
) {}
|
||||
(builtins.filter (name: builtins.match ".*\\.nix$" name != null) files);
|
||||
in {
|
||||
settings = aggregatedSettings;
|
||||
}
|
|
@ -1,54 +0,0 @@
|
|||
{
|
||||
pkgs,
|
||||
flake,
|
||||
...
|
||||
}: let
|
||||
inherit
|
||||
(flake.config.people)
|
||||
user0
|
||||
;
|
||||
in {
|
||||
programs.firefox = let
|
||||
configPath = ./config;
|
||||
bookmarksPath = import (configPath + /bookmarks) {
|
||||
inherit
|
||||
flake
|
||||
;
|
||||
};
|
||||
extensionsPath = import (configPath + /extensions) {
|
||||
inherit
|
||||
pkgs
|
||||
;
|
||||
};
|
||||
searchPath = import (configPath + /search) {
|
||||
inherit
|
||||
flake
|
||||
;
|
||||
};
|
||||
settingsPath = import (configPath + /settings);
|
||||
themesPath = import (configPath + /themes);
|
||||
in {
|
||||
enable = true;
|
||||
package = pkgs.firefox;
|
||||
profiles = {
|
||||
${user0} =
|
||||
{
|
||||
isDefault = true;
|
||||
id = 0;
|
||||
}
|
||||
// bookmarksPath
|
||||
// extensionsPath
|
||||
// searchPath
|
||||
// settingsPath
|
||||
// themesPath;
|
||||
testing =
|
||||
{
|
||||
isDefault = false;
|
||||
id = 1;
|
||||
}
|
||||
// bookmarksPath
|
||||
// searchPath
|
||||
// themesPath;
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
{
|
||||
programs.freetube = let
|
||||
configPath = ./config;
|
||||
settingsPath = import (configPath + /settings.nix);
|
||||
in {
|
||||
enable = true;
|
||||
settings = settingsPath;
|
||||
};
|
||||
}
|
8
home/modules/gui/apps/browsers/brave/config/extensions.nix
Executable file
|
@ -0,0 +1,8 @@
|
|||
[
|
||||
{ id = "cjpalhdlnbpafiamejdnhcphjbkeiagm"; } # uBlock Origin
|
||||
{ id = "cmpdlhmnmjhihmcfnigoememnffkimlk"; } # Catppuccin Macchiato
|
||||
{ id = "dlnpfhfhmkiebpnlllpehlmklgdggbhn"; } # Don't Close Last Tab
|
||||
{ id = "iplffkdpngmdjhlpjmppncnlhomiipha"; } # Unpaywall
|
||||
{ id = "mnjggcdmjocbbbhaepdhchncahnbgone"; } # SponsorBlock
|
||||
{ id = "ponfpcnoihfmfllpaingbgckeeldkhle"; } # YouTube Enhancer
|
||||
]
|
11
home/modules/gui/apps/browsers/brave/default.nix
Executable file
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
programs.brave =
|
||||
let
|
||||
configPath = ./config;
|
||||
extensionsPath = import (configPath + /extensions.nix);
|
||||
in
|
||||
{
|
||||
enable = true;
|
||||
extensions = extensionsPath;
|
||||
};
|
||||
}
|
11
home/modules/gui/apps/browsers/chrome/default.nix
Normal file
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.packages = builtins.attrValues {
|
||||
inherit (pkgs)
|
||||
google-chrome
|
||||
;
|
||||
};
|
||||
}
|
10
home/modules/gui/apps/browsers/default.nix
Normal file
|
@ -0,0 +1,10 @@
|
|||
let
|
||||
content = builtins.readDir ./.;
|
||||
|
||||
dirContent = builtins.filter (n: content.${n} == "directory") (builtins.attrNames content);
|
||||
|
||||
importList = map (name: ./. + "/${name}") dirContent;
|
||||
in
|
||||
{
|
||||
imports = importList;
|
||||
}
|
11
home/modules/gui/apps/browsers/edge/default.nix
Normal file
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.packages = builtins.attrValues {
|
||||
inherit (pkgs)
|
||||
microsoft-edge
|
||||
;
|
||||
};
|
||||
}
|
11
home/modules/gui/apps/browsers/epiphany/default.nix
Normal file
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.packages = builtins.attrValues {
|
||||
inherit (pkgs)
|
||||
epiphany
|
||||
;
|
||||
};
|
||||
}
|
|
@ -4,7 +4,8 @@ let
|
|||
"gitlab"
|
||||
];
|
||||
gitlabURL = "https://gitlab.com/";
|
||||
in {
|
||||
in
|
||||
{
|
||||
name = "Development";
|
||||
toolbar = false;
|
||||
bookmarks = [
|
||||
|
@ -52,32 +53,26 @@ in {
|
|||
{
|
||||
name = "GitLab (Fallaryn)";
|
||||
url = "${gitlabURL}/fallaryn/dotfiles";
|
||||
tags =
|
||||
[
|
||||
"fallaryn"
|
||||
]
|
||||
++ gitlabTags;
|
||||
tags = [
|
||||
"fallaryn"
|
||||
] ++ gitlabTags;
|
||||
keyword = "GitLab";
|
||||
}
|
||||
{
|
||||
name = "GitLab (Isaac)";
|
||||
url = "${gitlabURL}/askyourself/dotfiles";
|
||||
tags =
|
||||
[
|
||||
"isaac"
|
||||
"askyourself"
|
||||
]
|
||||
++ gitlabTags;
|
||||
tags = [
|
||||
"isaac"
|
||||
"askyourself"
|
||||
] ++ gitlabTags;
|
||||
keyword = "GitLab";
|
||||
}
|
||||
{
|
||||
name = "GitLab (Nick)";
|
||||
url = "${gitlabURL}/upRootNutrition/dotfiles";
|
||||
tags =
|
||||
[
|
||||
"brbwaffles"
|
||||
]
|
||||
++ gitlabTags;
|
||||
tags = [
|
||||
"brbwaffles"
|
||||
] ++ gitlabTags;
|
||||
keyword = "GitLab";
|
||||
}
|
||||
{
|
34
home/modules/gui/apps/browsers/firefox/config/bookmarks/default.nix
Executable file
|
@ -0,0 +1,34 @@
|
|||
{ flake, ... }:
|
||||
let
|
||||
configPath = ./config;
|
||||
flakedPath = configPath + /flake;
|
||||
|
||||
filterFiles = name: builtins.match ".*\\.nix$" name != null;
|
||||
|
||||
regularBookmarks =
|
||||
let
|
||||
files = builtins.attrNames (builtins.readDir configPath);
|
||||
in
|
||||
builtins.foldl' (
|
||||
emptyList: bookmarkFile: emptyList ++ (import (configPath + "/${bookmarkFile}")).bookmarks
|
||||
) [ ] (builtins.filter filterFiles files);
|
||||
|
||||
flakedBookmarks =
|
||||
let
|
||||
files = builtins.attrNames (builtins.readDir flakedPath);
|
||||
in
|
||||
builtins.foldl' (
|
||||
emptyList: bookmarkFile:
|
||||
emptyList
|
||||
++ (import (flakedPath + "/${bookmarkFile}") {
|
||||
inherit
|
||||
flake
|
||||
;
|
||||
}).bookmarks
|
||||
) [ ] (builtins.filter filterFiles files);
|
||||
|
||||
aggregatedBookmarks = regularBookmarks ++ flakedBookmarks;
|
||||
in
|
||||
{
|
||||
bookmarks = aggregatedBookmarks;
|
||||
}
|
|
@ -1,7 +1,7 @@
|
|||
{pkgs, ...}: {
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
extensions = builtins.attrValues {
|
||||
inherit
|
||||
(pkgs.nur.repos.rycee.firefox-addons)
|
||||
inherit (pkgs.nur.repos.rycee.firefox-addons)
|
||||
bitwarden
|
||||
enhancer-for-youtube
|
||||
sponsorblock
|
|
@ -5,7 +5,7 @@
|
|||
];
|
||||
icon = ./icons/sc.png;
|
||||
urls = [
|
||||
{template = "https://sci-hub.ee/{searchTerms}";}
|
||||
{ template = "https://sci-hub.ee/{searchTerms}"; }
|
||||
];
|
||||
};
|
||||
"Wikipedia" = {
|
||||
|
@ -13,7 +13,7 @@
|
|||
"@wi"
|
||||
];
|
||||
urls = [
|
||||
{template = "https://en.wikipedia.org/wiki/{searchTerms}";}
|
||||
{ template = "https://en.wikipedia.org/wiki/{searchTerms}"; }
|
||||
];
|
||||
};
|
||||
}
|
|
@ -5,7 +5,7 @@
|
|||
];
|
||||
icon = ./icons/dn.png;
|
||||
urls = [
|
||||
{template = "https://dnschecker.org/#A/{searchTerms}";}
|
||||
{ template = "https://dnschecker.org/#A/{searchTerms}"; }
|
||||
];
|
||||
};
|
||||
"Hackage" = {
|
||||
|
@ -14,7 +14,7 @@
|
|||
];
|
||||
icon = ./icons/ha.png;
|
||||
urls = [
|
||||
{template = "https://hackage.haskell.org/packages/search?terms={searchTerms}";}
|
||||
{ template = "https://hackage.haskell.org/packages/search?terms={searchTerms}"; }
|
||||
];
|
||||
};
|
||||
"Hoogle" = {
|
||||
|
@ -23,7 +23,7 @@
|
|||
];
|
||||
icon = ./icons/ho.png;
|
||||
urls = [
|
||||
{template = "https://www.stackage.org/lts-22.33/hoogle?q={searchTerms}";}
|
||||
{ template = "https://www.stackage.org/lts-22.33/hoogle?q={searchTerms}"; }
|
||||
];
|
||||
};
|
||||
"Nix Home Manager" = {
|
||||
|
@ -32,7 +32,7 @@
|
|||
];
|
||||
icon = ./icons/nx.png;
|
||||
urls = [
|
||||
{template = "https://searchix.alanpearce.eu/options/home-manager/search?query={searchTerms}";}
|
||||
{ template = "https://searchix.alanpearce.eu/options/home-manager/search?query={searchTerms}"; }
|
||||
];
|
||||
};
|
||||
"Nix Options" = {
|
||||
|
@ -41,7 +41,7 @@
|
|||
];
|
||||
icon = ./icons/nx.png;
|
||||
urls = [
|
||||
{template = "https://searchix.alanpearce.eu/options/nixos/search?query={searchTerms}";}
|
||||
{ template = "https://searchix.alanpearce.eu/options/nixos/search?query={searchTerms}"; }
|
||||
];
|
||||
};
|
||||
"Nix Packages" = {
|
||||
|
@ -50,7 +50,7 @@
|
|||
];
|
||||
icon = ./icons/nx.png;
|
||||
urls = [
|
||||
{template = "https://searchix.alanpearce.eu/packages/nixpkgs/search?query={searchTerms}";}
|
||||
{ template = "https://searchix.alanpearce.eu/packages/nixpkgs/search?query={searchTerms}"; }
|
||||
];
|
||||
};
|
||||
"Nix Wiki" = {
|
||||
|
@ -59,7 +59,7 @@
|
|||
];
|
||||
icon = ./icons/nx.png;
|
||||
urls = [
|
||||
{template = "https://nixos.wiki/index.php?search={searchTerms}";}
|
||||
{ template = "https://nixos.wiki/index.php?search={searchTerms}"; }
|
||||
];
|
||||
};
|
||||
}
|
Before Width: | Height: | Size: 87 KiB After Width: | Height: | Size: 87 KiB |
Before Width: | Height: | Size: 71 KiB After Width: | Height: | Size: 71 KiB |
|
@ -0,0 +1,30 @@
|
|||
{ flake, ... }:
|
||||
let
|
||||
inherit (flake.config.services)
|
||||
instances
|
||||
;
|
||||
in
|
||||
{
|
||||
"${instances.jellyfin.label}" = {
|
||||
definedAliases = [
|
||||
"@jf"
|
||||
];
|
||||
icon = ./icons/jf.png;
|
||||
urls = [
|
||||
{
|
||||
template = "https://${instances.jellyfin.subdomain}.${instances.web.domains.url0}/web/#/search.html?query={searchTerms}";
|
||||
}
|
||||
];
|
||||
};
|
||||
"${instances.peertube.label}" = {
|
||||
definedAliases = [
|
||||
"@pt"
|
||||
];
|
||||
icon = ./icons/pt.png;
|
||||
urls = [
|
||||
{
|
||||
template = "https://${instances.peertube.subdomain}.${instances.web.domains.url1}/search?search={searchTerms}";
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
|
@ -5,7 +5,7 @@
|
|||
];
|
||||
icon = ./icons/pd.png;
|
||||
urls = [
|
||||
{template = "https://www.protondb.com/search?q={searchTerms}";}
|
||||
{ template = "https://www.protondb.com/search?q={searchTerms}"; }
|
||||
];
|
||||
};
|
||||
|
||||
|
@ -15,7 +15,7 @@
|
|||
];
|
||||
icon = ./icons/sd.png;
|
||||
urls = [
|
||||
{template = "https://steamdb.info/search/?a=all&q={searchTerms}";}
|
||||
{ template = "https://steamdb.info/search/?a=all&q={searchTerms}"; }
|
||||
];
|
||||
};
|
||||
}
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 25 KiB |
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 38 KiB |