Initial commit
This commit is contained in:
commit
cfcc57a8bd
353 changed files with 18756 additions and 0 deletions
27
module/aspect/audio.nix
Normal file
27
module/aspect/audio.nix
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
{
|
||||
den.aspects = {
|
||||
audio = {
|
||||
nixos =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
environment.systemPackages = [
|
||||
pkgs.pavucontrol
|
||||
pkgs.faudio
|
||||
pkgs.alsa-utils
|
||||
pkgs.alsa-lib
|
||||
];
|
||||
services = {
|
||||
pulseaudio.enable = false;
|
||||
pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
jack.enable = true;
|
||||
wireplumber.enable = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
10
module/aspect/base/accessibility.nix
Normal file
10
module/aspect/base/accessibility.nix
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
den.aspects = {
|
||||
base = {
|
||||
nixos = {
|
||||
services.orca.enable = false;
|
||||
services.speechd.enable = false;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
15
module/aspect/base/boot.nix
Normal file
15
module/aspect/base/boot.nix
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
den.aspects = {
|
||||
base = {
|
||||
nixos = {
|
||||
boot = {
|
||||
initrd.systemd.enable = true;
|
||||
tmp = {
|
||||
useTmpfs = true;
|
||||
cleanOnBoot = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
7
module/aspect/base/command-not-found.nix
Normal file
7
module/aspect/base/command-not-found.nix
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
den.aspects = {
|
||||
base = {
|
||||
programs.command-not-found.enable = false;
|
||||
};
|
||||
};
|
||||
}
|
||||
11
module/aspect/base/default-kernel.nix
Normal file
11
module/aspect/base/default-kernel.nix
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
den.aspects = {
|
||||
base = {
|
||||
nixos =
|
||||
{ pkgs, lib, ... }:
|
||||
{
|
||||
boot.kernelPackages = lib.mkDefault pkgs.linuxPackages_latest;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
14
module/aspect/base/documentation.nix
Normal file
14
module/aspect/base/documentation.nix
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
den.aspects = {
|
||||
base = {
|
||||
nixos = {
|
||||
documentation = {
|
||||
enable = false;
|
||||
doc.enable = false;
|
||||
info.enable = false;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
# https://mastodon.online/@nomeata/109915786344697931
|
||||
26
module/aspect/base/gnugpg.nix
Normal file
26
module/aspect/base/gnugpg.nix
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
_:
|
||||
{
|
||||
den.aspects = {
|
||||
base = {
|
||||
homeManager =
|
||||
{ config, ... }:
|
||||
{
|
||||
programs = {
|
||||
gpg = {
|
||||
enable = true;
|
||||
settings = {
|
||||
default-key = _.config.meta.${config.home.username}.key;
|
||||
};
|
||||
};
|
||||
};
|
||||
services = {
|
||||
gpg-agent = {
|
||||
enable = true;
|
||||
enableSshSupport = true;
|
||||
sshKeys = _.config.meta.${config.home.username}.keygrip;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
17
module/aspect/base/home-manager.nix
Normal file
17
module/aspect/base/home-manager.nix
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
den.aspects = {
|
||||
base = {
|
||||
homeManager =
|
||||
{ config, ... }:
|
||||
{
|
||||
home.homeDirectory = "/home/${config.home.username}";
|
||||
programs.home-manager.enable = true;
|
||||
systemd.user.startServices = "sd-switch";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
/*
|
||||
https://ohai.social/@rycee/112502545466617762
|
||||
https://github.com/nix-community/home-manager/issues/5452
|
||||
*/
|
||||
20
module/aspect/base/i18n.nix
Normal file
20
module/aspect/base/i18n.nix
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
den.aspects = {
|
||||
base = {
|
||||
nixos = {
|
||||
i18n.defaultLocale = "en_US.UTF-8";
|
||||
i18n.extraLocaleSettings = {
|
||||
LC_ADDRESS = "en_US.UTF-8";
|
||||
LC_IDENTIFICATION = "en_US.UTF-8";
|
||||
LC_MEASUREMENT = "en_US.UTF-8";
|
||||
LC_MONETARY = "en_US.UTF-8";
|
||||
LC_NAME = "en_US.UTF-8";
|
||||
LC_NUMERIC = "en_US.UTF-8";
|
||||
LC_PAPER = "en_US.UTF-8";
|
||||
LC_TELEPHONE = "en_US.UTF-8";
|
||||
LC_TIME = "en_US.UTF-8";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
24
module/aspect/base/micro-editor.nix
Normal file
24
module/aspect/base/micro-editor.nix
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
{
|
||||
den.aspects = {
|
||||
base = {
|
||||
homeManager = {
|
||||
programs = {
|
||||
micro = {
|
||||
enable = true;
|
||||
settings = {
|
||||
diffgutter = true;
|
||||
keymenu = true;
|
||||
mkparents = true;
|
||||
tabsize = 2;
|
||||
tabstospaces = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
home.sessionVariables = {
|
||||
EDITOR = "micro";
|
||||
VISUAL = "micro";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
22
module/aspect/base/networking.nix
Normal file
22
module/aspect/base/networking.nix
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
den.aspects = {
|
||||
base = {
|
||||
nixos =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
networking = {
|
||||
useDHCP = false;
|
||||
};
|
||||
systemd = {
|
||||
network.wait-online.enable = false;
|
||||
};
|
||||
services.resolved = {
|
||||
enable = true;
|
||||
};
|
||||
programs = {
|
||||
mtr.enable = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
23
module/aspect/base/nix-cli-helper.nix
Normal file
23
module/aspect/base/nix-cli-helper.nix
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
den.aspects = {
|
||||
base = {
|
||||
nixos =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
programs = {
|
||||
nh = {
|
||||
enable = true;
|
||||
clean = {
|
||||
enable = true;
|
||||
extraArgs = "--keep 2";
|
||||
};
|
||||
};
|
||||
};
|
||||
environment.systemPackages = [
|
||||
pkgs.nix-output-monitor
|
||||
pkgs.nvd
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
73
module/aspect/base/nix-config.nix
Normal file
73
module/aspect/base/nix-config.nix
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
{
|
||||
flake-file = {
|
||||
nixConfig = {
|
||||
abort-on-warn = true;
|
||||
extra-experimental-features = [
|
||||
"flakes"
|
||||
"nix-command"
|
||||
"pipe-operators"
|
||||
];
|
||||
extra-substituters = [
|
||||
"https://numtide.cachix.org"
|
||||
#"https://nix-gaming.cachix.org"
|
||||
#"https://nixpkgs-wayland.cachix.org"
|
||||
];
|
||||
extra-trusted-public-keys = [
|
||||
"numtide.cachix.org-1:2ps1kLBUWjxIneOy1Ik6cQjb41X0iXVXeHigGmycPPE="
|
||||
#"nix-gaming.cachix.org-1:nbjlureqMbRAxR1gJ/f3hxemL9svXaZF/Ees8vCUUs4="
|
||||
#"nixpkgs-wayland.cachix.org-1:3lwxaILxMRkVhehr5StQprHdEo4IrE8sRho9R9HOLYA="
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
den.aspects = {
|
||||
base = {
|
||||
nixos =
|
||||
{ pkgs, config, ... }:
|
||||
{
|
||||
nix = {
|
||||
# See https://hachyderm.io/@leftpaddotpy/112539055867932912
|
||||
channel.enable = false;
|
||||
# From https://jackson.dev/post/nix-reasonable-defaults/
|
||||
extraOptions = ''
|
||||
connect-timeout = 5
|
||||
log-lines = 50
|
||||
min-free = 128000000
|
||||
max-free = 1000000000
|
||||
fallback = true
|
||||
'';
|
||||
optimise.automatic = true;
|
||||
|
||||
settings = {
|
||||
auto-optimise-store = true;
|
||||
# See https://discourse.nixos.org/t/24-05-add-flake-to-nix-path/46310/9
|
||||
nix-path = [ "nixpkgs=${pkgs.path}" ];
|
||||
trusted-users = [
|
||||
"root"
|
||||
"kirbara"
|
||||
];
|
||||
experimental-features = [
|
||||
"flakes"
|
||||
"nix-command"
|
||||
"pipe-operators"
|
||||
];
|
||||
# ----
|
||||
substituters = [
|
||||
"https://nix-community.cachix.org"
|
||||
#"https://cache.garnix.io"
|
||||
];
|
||||
trusted-public-keys = [
|
||||
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
||||
#"cache.garnix.io:CTFPyKSLcx5RMJKfLo5EEPUObbA78b0YQ2DTCJXqr9g="
|
||||
];
|
||||
builders-use-substitutes = true;
|
||||
# ----
|
||||
warn-dirty = false;
|
||||
tarball-ttl = 60 * 60 * 24; # 1 day tarball cache
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
14
module/aspect/base/power-management.nix
Normal file
14
module/aspect/base/power-management.nix
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
den.aspects = {
|
||||
base = {
|
||||
nixos =
|
||||
{ lib, ... }:
|
||||
{
|
||||
powerManagement = {
|
||||
enable = false;
|
||||
cpuFreqGovernor = lib.mkDefault "powersave";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
14
module/aspect/base/security.nix
Normal file
14
module/aspect/base/security.nix
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
den.aspects = {
|
||||
base = {
|
||||
nixos =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
security = {
|
||||
sudo-rs.enable = true;
|
||||
sudo-rs.wheelNeedsPassword = false;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
16
module/aspect/base/services.nix
Normal file
16
module/aspect/base/services.nix
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
den.aspects = {
|
||||
base = {
|
||||
nixos = {
|
||||
services = {
|
||||
fstrim.enable = true;
|
||||
journald.extraConfig = ''
|
||||
SystemMaxUse=100M
|
||||
MaxFileSec=3day
|
||||
'';
|
||||
nscd.enableNsncd = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
11
module/aspect/base/system-auto-upgrade.nix
Normal file
11
module/aspect/base/system-auto-upgrade.nix
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
den.aspects = {
|
||||
base = {
|
||||
nixos = {
|
||||
system.autoUpgrade = {
|
||||
enable = false;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
22
module/aspect/base/system-state.nix
Normal file
22
module/aspect/base/system-state.nix
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
den.aspects = {
|
||||
base =
|
||||
let
|
||||
stateVersion = "25.05";
|
||||
in
|
||||
{
|
||||
nixos = {
|
||||
system = {
|
||||
inherit stateVersion;
|
||||
# See https://github.com/NixOS/nixpkgs/pull/415640
|
||||
rebuild.enableNg = true;
|
||||
};
|
||||
};
|
||||
homeManager = {
|
||||
home = {
|
||||
inherit stateVersion;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
9
module/aspect/base/timezone.nix
Normal file
9
module/aspect/base/timezone.nix
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
den.aspects = {
|
||||
base = {
|
||||
nixos = {
|
||||
time.timeZone = "Asia/Jakarta";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
29
module/aspect/base/xdg.nix
Normal file
29
module/aspect/base/xdg.nix
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
{
|
||||
den.aspects = {
|
||||
base = {
|
||||
homeManager =
|
||||
{ config, ... }:
|
||||
{
|
||||
xdg = {
|
||||
enable = true;
|
||||
mime.enable = true;
|
||||
userDirs = {
|
||||
enable = true;
|
||||
createDirectories = false;
|
||||
desktop = "${config.home.homeDirectory}/resource/xdg-directory/desktop";
|
||||
documents = "${config.home.homeDirectory}/resource/xdg-directory/document";
|
||||
download = "${config.home.homeDirectory}/resource/download";
|
||||
pictures = "${config.home.homeDirectory}/resource/xdg-directory/picture";
|
||||
videos = "${config.home.homeDirectory}/resource/xdg-directory/video";
|
||||
publicShare = null;
|
||||
templates = null;
|
||||
music = null;
|
||||
};
|
||||
autostart = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
10
module/aspect/bluetooth.nix
Normal file
10
module/aspect/bluetooth.nix
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
den.aspects = {
|
||||
bluetooth = {
|
||||
nixos = {
|
||||
hardware.bluetooth.enable = true;
|
||||
services.blueman.enable = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
9
module/aspect/desktop/console.nix
Normal file
9
module/aspect/desktop/console.nix
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
den.aspects = {
|
||||
desktop = {
|
||||
nixos = {
|
||||
console.useXkbConfig = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
57
module/aspect/desktop/desktop-config.nix
Normal file
57
module/aspect/desktop/desktop-config.nix
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
{
|
||||
den.aspects = {
|
||||
desktop = {
|
||||
nixos =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
programs = {
|
||||
dconf.enable = true; # desktop-config gnome
|
||||
adb.enable = true; # android-debug
|
||||
};
|
||||
environment.systemPackages = [
|
||||
# ----- gtk
|
||||
pkgs.gtk3
|
||||
pkgs.zenity
|
||||
# ----- screenshot (wayland)
|
||||
pkgs.grim
|
||||
pkgs.slurp
|
||||
pkgs.satty
|
||||
# ----- screenshot (x11)
|
||||
pkgs.flameshot
|
||||
# ----- output monitor (wayland)
|
||||
pkgs.kanshi
|
||||
pkgs.wlr-randr
|
||||
pkgs.way-displays
|
||||
# ----- output monitor (x11)
|
||||
pkgs.autorandr
|
||||
# ----- wallpaper (x11 + wayland)
|
||||
pkgs.waypaper
|
||||
# ----- wallpaper (wayland)
|
||||
pkgs.swww
|
||||
# ----- wallpaper (x11)
|
||||
pkgs.feh
|
||||
# ----- clipboard-tool (wayland)
|
||||
pkgs.wl-clipboard-rs
|
||||
# ----- notification-lib
|
||||
pkgs.libnotify
|
||||
pkgs.dunst
|
||||
];
|
||||
programs.xwayland.enable = true;
|
||||
# ----- force electron-app to wayland-compatible
|
||||
environment.variables = {
|
||||
NIXOS_OZONE_WL = "1";
|
||||
};
|
||||
# ----- x11 services
|
||||
services = {
|
||||
xserver = {
|
||||
enable = true;
|
||||
xkb = {
|
||||
layout = "us";
|
||||
variant = "";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
24
module/aspect/desktop/desktop-theme.nix
Normal file
24
module/aspect/desktop/desktop-theme.nix
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
{
|
||||
den.aspects = {
|
||||
desktop = {
|
||||
nixos =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
environment.systemPackages = [
|
||||
pkgs.xorg.xcursorthemes
|
||||
# ----- gtk theme
|
||||
pkgs.fluent-gtk-theme
|
||||
pkgs.fluent-icon-theme
|
||||
# ----- qt6 theme
|
||||
pkgs.kdePackages.qt6ct
|
||||
pkgs.adwaita-qt6
|
||||
pkgs.darkly
|
||||
];
|
||||
environment.variables = {
|
||||
QT_QPA_PLATFORMTHEME = "qt6ct";
|
||||
GTK_USE_PORTAL = "1";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
28
module/aspect/desktop/desktop-tool.nix
Normal file
28
module/aspect/desktop/desktop-tool.nix
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
{
|
||||
den.aspects = {
|
||||
desktop = {
|
||||
nixos =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
environment.systemPackages = [
|
||||
# ----- xfce tool
|
||||
pkgs.xfce.xfce4-appfinder
|
||||
pkgs.xfce.xfce4-panel
|
||||
pkgs.xfce.xfce4-panel-profiles
|
||||
pkgs.xfce.xfce4-genmon-plugin
|
||||
pkgs.xfce.xfce4-pulseaudio-plugin
|
||||
pkgs.xfce.xfce4-docklike-plugin
|
||||
pkgs.xfce.xfce4-xkb-plugin
|
||||
# ----- labwc tool (wayland)
|
||||
pkgs.labwc-menu-generator
|
||||
# ----- openbox tool (x11)
|
||||
pkgs.obconf
|
||||
# ----- utility
|
||||
pkgs.menulibre
|
||||
pkgs.xorg.xev
|
||||
pkgs.xdg-utils
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
56
module/aspect/desktop/font.nix
Normal file
56
module/aspect/desktop/font.nix
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
{
|
||||
den.aspects = {
|
||||
font = {
|
||||
nixos =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
fonts.packages = with pkgs; [
|
||||
dina-font
|
||||
aporetic
|
||||
monaspace
|
||||
nerd-fonts.jetbrains-mono
|
||||
nerd-fonts.im-writing
|
||||
nerd-fonts.blex-mono
|
||||
noto-fonts
|
||||
noto-fonts-cjk-sans
|
||||
noto-fonts-cjk-serif
|
||||
noto-fonts-emoji
|
||||
noto-fonts-monochrome-emoji
|
||||
ibm-plex
|
||||
liberation_ttf
|
||||
material-icons
|
||||
fira-code
|
||||
fira-code-symbols
|
||||
mplus-outline-fonts.githubRelease
|
||||
dina-font
|
||||
proggyfonts
|
||||
roboto
|
||||
roboto-mono
|
||||
];
|
||||
fonts.fontconfig = {
|
||||
defaultFonts = {
|
||||
monospace = [
|
||||
"nerd-fonts.jetbrains-mono"
|
||||
];
|
||||
sansSerif = [ "nerd-fonts.jetbrains-mono" ];
|
||||
serif = [ "nerd-fonts.jetbrains-mono" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
homeManager =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
fonts = {
|
||||
fontconfig = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
home.packages = [
|
||||
# ----- font-icon
|
||||
pkgs.material-design-icons
|
||||
pkgs.linearicons-free
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
16
module/aspect/desktop/launcher.nix
Normal file
16
module/aspect/desktop/launcher.nix
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
den.aspects = {
|
||||
desktop = {
|
||||
homeManager =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = [
|
||||
pkgs.rofi
|
||||
pkgs.rofimoji
|
||||
pkgs.rofi-obsidian
|
||||
pkgs.rofi-calc
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
32
module/aspect/desktop/login-manager.nix
Normal file
32
module/aspect/desktop/login-manager.nix
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
{
|
||||
den.aspects = {
|
||||
desktop = {
|
||||
nixos =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
environment.systemPackages = [
|
||||
(pkgs.where-is-my-sddm-theme.override {
|
||||
themeConfig.General = {
|
||||
usersFontSize = "12";
|
||||
passwordFontSize = "16";
|
||||
sessionsFontSize = "12";
|
||||
hideCursor = "true";
|
||||
passwordCursorColor="#ffffff";
|
||||
};
|
||||
})
|
||||
];
|
||||
services.displayManager.sddm = {
|
||||
enable = true;
|
||||
theme = "where_is_my_sddm_theme";
|
||||
package = pkgs.kdePackages.sddm;
|
||||
extraPackages = [
|
||||
pkgs.kdePackages.qt5compat
|
||||
];
|
||||
};
|
||||
environment.variables = {
|
||||
XD_RUNTIME_DIR = "/run/user/$UID";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
21
module/aspect/desktop/networking.nix
Normal file
21
module/aspect/desktop/networking.nix
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
den.aspects = {
|
||||
desktop = {
|
||||
nixos =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
networking = {
|
||||
networkmanager = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
systemd = {
|
||||
services.NetworkManager-wait-online.enable = false;
|
||||
};
|
||||
environment.systemPackages = [
|
||||
pkgs.networkmanagerapplet
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
25
module/aspect/desktop/security.nix
Normal file
25
module/aspect/desktop/security.nix
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
{
|
||||
den.aspects = {
|
||||
desktop = {
|
||||
nixos =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
security = {
|
||||
rtkit.enable = true;
|
||||
polkit.enable = true;
|
||||
};
|
||||
services.gnome.gnome-keyring.enable = true;
|
||||
programs.seahorse.enable = true;
|
||||
programs.fuse.userAllowOther = true;
|
||||
};
|
||||
homeManager =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = [
|
||||
pkgs.keepassxc
|
||||
pkgs.keepassxc-go
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
12
module/aspect/desktop/services.nix
Normal file
12
module/aspect/desktop/services.nix
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
den.aspects = {
|
||||
desktop = {
|
||||
nixos = {
|
||||
services = {
|
||||
libinput.enable = true;
|
||||
gvfs.enable = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
122
module/aspect/desktop/session/enlightenment.nix
Normal file
122
module/aspect/desktop/session/enlightenment.nix
Normal file
|
|
@ -0,0 +1,122 @@
|
|||
{
|
||||
den.aspects = {
|
||||
desktop-session-enlightenment = {
|
||||
nixos =
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib;
|
||||
|
||||
let
|
||||
e = pkgs.enlightenment;
|
||||
xcfg = config.services.xserver;
|
||||
GST_PLUGIN_PATH = lib.makeSearchPathOutput "lib" "lib/gstreamer-1.0" [
|
||||
pkgs.gst_all_1.gst-plugins-base
|
||||
pkgs.gst_all_1.gst-plugins-good
|
||||
pkgs.gst_all_1.gst-plugins-bad
|
||||
pkgs.gst_all_1.gst-libav
|
||||
];
|
||||
|
||||
econnmanFixOverlay = final: prev: {
|
||||
fix-econnman = prev // {
|
||||
enlightenment = prev.enlightenment // {
|
||||
econnman = prev.enlightenment.econnman.override (_oldArgs: {
|
||||
python3Packages = final.python311Packages;
|
||||
});
|
||||
};
|
||||
};
|
||||
};
|
||||
in
|
||||
|
||||
{
|
||||
services.displayManager.sessionPackages = [ pkgs.enlightenment.enlightenment ];
|
||||
|
||||
nixpkgs.overlays = [
|
||||
econnmanFixOverlay
|
||||
];
|
||||
|
||||
environment.systemPackages = [
|
||||
pkgs.enlightenment.enlightenment
|
||||
#pkgs.fix-econnman.enlightenment.econnman # fixed overlay to python311
|
||||
pkgs.enlightenment.efl
|
||||
];
|
||||
|
||||
environment.pathsToLink = [
|
||||
"/etc/enlightenment"
|
||||
"/share/enlightenment"
|
||||
"/share/elementary"
|
||||
"/share/locale"
|
||||
];
|
||||
|
||||
services.xserver.displayManager.sessionCommands = ''
|
||||
if test "$XDG_CURRENT_DESKTOP" = "Enlightenment"; then
|
||||
export GST_PLUGIN_PATH="${GST_PLUGIN_PATH}"
|
||||
|
||||
# make available for D-BUS user services
|
||||
#export XDG_DATA_DIRS=$XDG_DATA_DIRS''${XDG_DATA_DIRS:+:}:${config.system.path}/share:${e.efl}/share
|
||||
|
||||
# Update user dirs as described in https://freedesktop.org/wiki/Software/xdg-user-dirs/
|
||||
${pkgs.xdg-user-dirs}/bin/xdg-user-dirs-update
|
||||
fi
|
||||
'';
|
||||
|
||||
# wrappers for programs installed by enlightenment that should be setuid
|
||||
security.wrappers = {
|
||||
enlightenment_ckpasswd = {
|
||||
setuid = true;
|
||||
owner = "root";
|
||||
group = "root";
|
||||
source = "${pkgs.enlightenment.enlightenment}/lib/enlightenment/utils/enlightenment_ckpasswd";
|
||||
};
|
||||
enlightenment_sys = {
|
||||
setuid = true;
|
||||
owner = "root";
|
||||
group = "root";
|
||||
source = "${pkgs.enlightenment.enlightenment}/lib/enlightenment/utils/enlightenment_sys";
|
||||
};
|
||||
enlightenment_system = {
|
||||
setuid = true;
|
||||
owner = "root";
|
||||
group = "root";
|
||||
source = "${pkgs.enlightenment.enlightenment}/lib/enlightenment/utils/enlightenment_system";
|
||||
};
|
||||
};
|
||||
|
||||
environment.etc."X11/xkb".source = xcfg.xkb.dir;
|
||||
|
||||
fonts.packages = [ pkgs.dejavu_fonts ];
|
||||
|
||||
services.udisks2.enable = true;
|
||||
services.upower.enable = config.powerManagement.enable;
|
||||
services.libinput.enable = mkDefault true;
|
||||
|
||||
services.dbus.packages = [ e.efl ];
|
||||
|
||||
systemd.user.services.efreet = {
|
||||
enable = true;
|
||||
description = "org.enlightenment.Efreet";
|
||||
serviceConfig = {
|
||||
ExecStart = "${e.efl}/bin/efreetd";
|
||||
StandardOutput = "null";
|
||||
};
|
||||
};
|
||||
|
||||
systemd.user.services.ethumb = {
|
||||
enable = true;
|
||||
description = "org.enlightenment.Ethumb";
|
||||
serviceConfig = {
|
||||
ExecStart = "${e.efl}/bin/ethumbd";
|
||||
StandardOutput = "null";
|
||||
};
|
||||
};
|
||||
|
||||
# ----- e16 / retro-enlightenment
|
||||
# services.xserver.windowManager.e16.enable = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
48
module/aspect/desktop/session/modular.nix
Normal file
48
module/aspect/desktop/session/modular.nix
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
{
|
||||
den.aspects = {
|
||||
desktop-session-modular = {
|
||||
nixos =
|
||||
{ lib, pkgs, ... }:
|
||||
{
|
||||
# ----- xfce (x11 + wayland)
|
||||
services.xserver.desktopManager.xfce = {
|
||||
enable = true;
|
||||
noDesktop = true;
|
||||
enableXfwm = false;
|
||||
};
|
||||
services.xserver.desktopManager.xfce.enableWaylandSession = true;
|
||||
environment.variables = {
|
||||
XDG_CURRENT_DESKTOP = "XFCE";
|
||||
};
|
||||
programs.xfconf.enable = true;
|
||||
programs.thunar = {
|
||||
enable = true;
|
||||
plugins = [
|
||||
pkgs.xfce.thunar-volman
|
||||
pkgs.xfce.thunar-vcs-plugin
|
||||
pkgs.xfce.thunar-archive-plugin
|
||||
];
|
||||
};
|
||||
environment.xfce.excludePackages = [
|
||||
pkgs.xfce.xfce4-terminal
|
||||
pkgs.xfce.parole
|
||||
];
|
||||
environment.systemPackages = [
|
||||
pkgs.xfce.exo
|
||||
];
|
||||
# ----- openbox (x11)
|
||||
services.xserver.windowManager.openbox.enable = true;
|
||||
# ----- labwc (wayland)
|
||||
programs.labwc.enable = true;
|
||||
# ----- picom (X11 compositor)
|
||||
services.picom = {
|
||||
enable = true;
|
||||
vSync = true;
|
||||
settings = {
|
||||
backend = "egl";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
0
module/aspect/desktop/session/plasma.wip
Normal file
0
module/aspect/desktop/session/plasma.wip
Normal file
22
module/aspect/desktop/xdg-portal.nix
Normal file
22
module/aspect/desktop/xdg-portal.nix
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
den.aspects = {
|
||||
desktop = {
|
||||
nixos =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
xdg = {
|
||||
portal = {
|
||||
enable = true;
|
||||
config.common.default = "kde";
|
||||
extraPortals = with pkgs; [
|
||||
kdePackages.xdg-desktop-portal-kde
|
||||
xdg-desktop-portal-gtk
|
||||
xdg-desktop-portal-xapp
|
||||
];
|
||||
wlr.enable = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
0
module/aspect/desktop/xlibre.wip
Normal file
0
module/aspect/desktop/xlibre.wip
Normal file
27
module/aspect/eyay/antigravity.nix
Normal file
27
module/aspect/eyay/antigravity.nix
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
{
|
||||
flake-file.inputs = {
|
||||
antigravity-nix = {
|
||||
url = "github:jacopone/antigravity-nix";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
};
|
||||
|
||||
den.aspects = {
|
||||
antigravity = {
|
||||
nixos =
|
||||
{ pkgs, inputs, ... }:
|
||||
{
|
||||
environment.systemPackages = [
|
||||
inputs.antigravity-nix.packages.${pkgs.system}.default
|
||||
];
|
||||
};
|
||||
homeManager =
|
||||
{ pkgs, inputs, ... }:
|
||||
{
|
||||
home.packages = [
|
||||
inputs.antigravity-nix.packages.${pkgs.system}.default
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
46
module/aspect/eyay/claude-code.nix
Normal file
46
module/aspect/eyay/claude-code.nix
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
{
|
||||
flake-file.inputs = {
|
||||
claude-code.url = "github:sadjow/claude-code-nix";
|
||||
};
|
||||
|
||||
den.aspects = {
|
||||
claude-code = {
|
||||
nixos =
|
||||
{ pkgs, inputs, ... }:
|
||||
{
|
||||
nix.settings = {
|
||||
substituters = [
|
||||
"https://claude-code.cachix.org"
|
||||
];
|
||||
trusted-public-keys = [
|
||||
"claude-code.cachix.org-1:YeXf2aNu7UTX8Vwrze0za1WEDS+4DuI2kVeWEE4fsRk="
|
||||
];
|
||||
};
|
||||
nixpkgs.overlays = [
|
||||
inputs.claude-code.overlays.default
|
||||
];
|
||||
environment.systemPackages = [
|
||||
pkgs.claude-code
|
||||
];
|
||||
};
|
||||
homeManager =
|
||||
{ pkgs, inputs, ... }:
|
||||
{
|
||||
nix.settings = {
|
||||
substituters = [
|
||||
"https://claude-code.cachix.org"
|
||||
];
|
||||
trusted-public-keys = [
|
||||
"claude-code.cachix.org-1:YeXf2aNu7UTX8Vwrze0za1WEDS+4DuI2kVeWEE4fsRk="
|
||||
];
|
||||
};
|
||||
nixpkgs.overlays = [
|
||||
inputs.claude-code.overlays.default
|
||||
];
|
||||
home.packages = [
|
||||
pkgs.claude-code
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
13
module/aspect/eyay/gemini-cli.nix
Normal file
13
module/aspect/eyay/gemini-cli.nix
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
den.aspects = {
|
||||
gemini-cli = {
|
||||
nixos =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
environment.systemPackages = [
|
||||
pkgs.local.gemini-cli
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
14
module/aspect/eyay/ollama.nix
Normal file
14
module/aspect/eyay/ollama.nix
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
den.aspects = {
|
||||
ollama = {
|
||||
nixos =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
services.ollama = {
|
||||
enable = true;
|
||||
package = pkgs.latest.ollama;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
17
module/aspect/eyay/opencode.nix
Normal file
17
module/aspect/eyay/opencode.nix
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
flake-file.inputs = {
|
||||
opencode-flake.url = "github:aodhanhayter/opencode-flake";
|
||||
};
|
||||
|
||||
den.aspects = {
|
||||
opencode = {
|
||||
nixos =
|
||||
{ pkgs, inputs, ... }:
|
||||
{
|
||||
environment.systemPackages = [
|
||||
inputs.opencode-flake.packages.${pkgs.system}.default
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
52
module/aspect/fhs-compatible.nix
Normal file
52
module/aspect/fhs-compatible.nix
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
{
|
||||
flake-file.inputs = {
|
||||
nix-alien.url = "github:thiagokokada/nix-alien";
|
||||
};
|
||||
|
||||
den.aspects = {
|
||||
fhs-compatible = {
|
||||
nixos =
|
||||
{ inputs, pkgs, ... }:
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
steam-run
|
||||
appimage-run
|
||||
inputs.nix-alien.packages.${pkgs.system}.nix-alien
|
||||
# FHS environtment
|
||||
(
|
||||
let
|
||||
base = pkgs.appimageTools.defaultFhsEnvArgs;
|
||||
in
|
||||
pkgs.buildFHSEnv (
|
||||
base
|
||||
// {
|
||||
name = "fhs";
|
||||
targetPkgs =
|
||||
pkgs:
|
||||
(base.targetPkgs pkgs)
|
||||
++ (with pkgs; [
|
||||
pkg-config
|
||||
ncurses
|
||||
# feel free to add more packages here if needed
|
||||
]);
|
||||
profile = "export FHS=1";
|
||||
runScript = "bash";
|
||||
extraOutputsToInstall = [ "dev" ];
|
||||
}
|
||||
)
|
||||
)
|
||||
];
|
||||
# autoload appimage
|
||||
boot.binfmt.registrations.appimage = {
|
||||
wrapInterpreterInShell = false;
|
||||
interpreter = "${pkgs.appimage-run}/bin/appimage-run";
|
||||
recognitionType = "magic";
|
||||
offset = 0;
|
||||
mask = ''\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff'';
|
||||
magicOrExtension = ''\x7fELF....AI\x02'';
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
16
module/aspect/gaming/cachy-kernel.nix
Normal file
16
module/aspect/gaming/cachy-kernel.nix
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
flake-file.inputs = {
|
||||
chaotic.url = "github:chaotic-cx/nyx/nyxpkgs-unstable";
|
||||
};
|
||||
|
||||
den.aspects = {
|
||||
cachy-kernel = {
|
||||
nixos =
|
||||
{ inputs, pkgs, lib, ... }:
|
||||
{
|
||||
imports = [ inputs.chaotic.nixosModules.default ];
|
||||
boot.kernelPackages = lib.mkForce pkgs.linuxPackages_cachyos;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
31
module/aspect/gaming/gaming.nix
Normal file
31
module/aspect/gaming/gaming.nix
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
{ inputs, ... }:
|
||||
{
|
||||
flake-file.inputs = {
|
||||
nix-gaming.url = "github:fufexan/nix-gaming";
|
||||
};
|
||||
|
||||
den.aspects = {
|
||||
gaming = {
|
||||
nixos =
|
||||
{ pkgs, inputs, ... }:
|
||||
{
|
||||
imports = [
|
||||
inputs.nix-gaming.nixosModules.pipewireLowLatency
|
||||
inputs.nix-gaming.nixosModules.platformOptimizations
|
||||
];
|
||||
programs.gamemode.enable = true;
|
||||
services.pipewire.lowLatency.enable = true;
|
||||
environment.systemPackages = [
|
||||
pkgs.lutris
|
||||
];
|
||||
};
|
||||
homeManager =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = [
|
||||
pkgs.mangohud
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
15
module/aspect/gaming/steam.nix
Normal file
15
module/aspect/gaming/steam.nix
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
den.aspects = {
|
||||
gaming = {
|
||||
nixos = {
|
||||
programs.steam = {
|
||||
enable = true;
|
||||
platformOptimizations.enable = true;
|
||||
gamescopeSession.enable = false;
|
||||
protontricks.enable = true;
|
||||
extest.enable = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
13
module/aspect/home-manager-standalone.nix
Normal file
13
module/aspect/home-manager-standalone.nix
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
den.aspects = {
|
||||
home-manager-standalone = {
|
||||
nixos =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
environment.systemPackages = [
|
||||
pkgs.latest.home-manager
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
12
module/aspect/nfs.nix
Normal file
12
module/aspect/nfs.nix
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
den.aspects = {
|
||||
nfs = {
|
||||
nixos = {
|
||||
services = {
|
||||
rpcbind.enable = true;
|
||||
nfs.server.enable = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
36
module/aspect/nix-flatpak.nix
Normal file
36
module/aspect/nix-flatpak.nix
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
{
|
||||
flake-file.inputs = {
|
||||
nix-flatpak.url = "github:gmodena/nix-flatpak/?ref=latest";
|
||||
};
|
||||
|
||||
den.aspects = {
|
||||
nix-flatpak = {
|
||||
nixos =
|
||||
{ inputs, ... }:
|
||||
{
|
||||
imports = [
|
||||
inputs.nix-flatpak.nixosModules.nix-flatpak
|
||||
];
|
||||
services = {
|
||||
flatpak = {
|
||||
enable = true;
|
||||
update.onActivation = false; # update when rebuild
|
||||
};
|
||||
};
|
||||
};
|
||||
homeManager =
|
||||
{ inputs, ... }:
|
||||
{
|
||||
imports = [
|
||||
inputs.nix-flatpak.homeManagerModules.nix-flatpak
|
||||
];
|
||||
services = {
|
||||
flatpak = {
|
||||
enable = true;
|
||||
update.onActivation = false;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
13
module/aspect/software/browser/brave.nix
Normal file
13
module/aspect/software/browser/brave.nix
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
den.aspects = {
|
||||
brave = {
|
||||
homeManager =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = [
|
||||
pkgs.latest.brave
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
13
module/aspect/software/browser/librewolf.nix
Normal file
13
module/aspect/software/browser/librewolf.nix
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
den.aspects = {
|
||||
librewolf = {
|
||||
homeManager =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = [
|
||||
pkgs.latest.librewolf
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
13
module/aspect/software/code/editor/gui/codium.nix
Normal file
13
module/aspect/software/code/editor/gui/codium.nix
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
den.aspects = {
|
||||
code-editor-gui = {
|
||||
homeManager =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = [
|
||||
pkgs.latest.vscodium
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
13
module/aspect/software/code/editor/gui/zed.nix
Normal file
13
module/aspect/software/code/editor/gui/zed.nix
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
den.aspects = {
|
||||
code-editor-gui = {
|
||||
homeManager =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = [
|
||||
pkgs.latest.zed-editor
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
13
module/aspect/software/code/editor/tty/helix.nix
Normal file
13
module/aspect/software/code/editor/tty/helix.nix
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
den.aspects = {
|
||||
code-editor-tty = {
|
||||
homeManager =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = [
|
||||
pkgs.helix
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
13
module/aspect/software/code/editor/tty/neovim.nix
Normal file
13
module/aspect/software/code/editor/tty/neovim.nix
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
den.aspects = {
|
||||
code-editor-tty = {
|
||||
homeManager = {
|
||||
programs = {
|
||||
neovim = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
13
module/aspect/software/code/editor/tty/vim.nix
Normal file
13
module/aspect/software/code/editor/tty/vim.nix
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
den.aspects = {
|
||||
code-editor-tty = {
|
||||
homeManager =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = [
|
||||
pkgs.vim
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
0
module/aspect/software/code/package-manager/bun.wip
Normal file
0
module/aspect/software/code/package-manager/bun.wip
Normal file
0
module/aspect/software/code/package-manager/cargo.wip
Normal file
0
module/aspect/software/code/package-manager/cargo.wip
Normal file
0
module/aspect/software/code/package-manager/npm.wip
Normal file
0
module/aspect/software/code/package-manager/npm.wip
Normal file
13
module/aspect/software/code/package-manager/uv.nix
Normal file
13
module/aspect/software/code/package-manager/uv.nix
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
den.aspects = {
|
||||
uv = {
|
||||
nixos =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
environment.systemPackages = [
|
||||
pkgs.uv
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
14
module/aspect/software/code/runtime/nodejs.nix
Normal file
14
module/aspect/software/code/runtime/nodejs.nix
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
den.aspects = {
|
||||
nodejs = {
|
||||
nixos =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
environment.systemPackages = [
|
||||
pkgs.nodejs_24
|
||||
pkgs.fnm
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
15
module/aspect/software/code/runtime/python.nix
Normal file
15
module/aspect/software/code/runtime/python.nix
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
den.aspects = {
|
||||
python = {
|
||||
nixos =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
environment.systemPackages = [
|
||||
pkgs.python311
|
||||
pkgs.python313
|
||||
pkgs.python313Packages.pygobject3
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
0
module/aspect/software/code/runtime/rust.wip
Normal file
0
module/aspect/software/code/runtime/rust.wip
Normal file
283
module/aspect/software/code/version-control/git.nix
Normal file
283
module/aspect/software/code/version-control/git.nix
Normal file
|
|
@ -0,0 +1,283 @@
|
|||
_:
|
||||
{
|
||||
den.aspects = {
|
||||
version-control = {
|
||||
homeManager =
|
||||
{ config, ... }:
|
||||
{
|
||||
programs = {
|
||||
git = {
|
||||
enable = true;
|
||||
settings.user.name = _.config.meta.${config.home.username}.username;
|
||||
settings.user.email = _.config.meta.${config.home.username}.email;
|
||||
ignores = [
|
||||
".direnv/"
|
||||
"result"
|
||||
];
|
||||
settings.alias = {
|
||||
ll = "log --stat --abbrev-commit";
|
||||
co = "checkout";
|
||||
patch = "format-patch --stdout HEAD~1";
|
||||
rpatch = "reset --hard HEAD~1";
|
||||
lgg = "log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative";
|
||||
lol = "log --graph --decorate --pretty=oneline --abbrev-commit";
|
||||
lola = "log --graph --decorate --pretty=oneline --abbrev-commit --all";
|
||||
clb = "!/home/user/bin/git-clean-local-branches";
|
||||
pf = "push --force-with-lease";
|
||||
rewrite = "rebase - x 'git commit - -amend - C HEAD - -date=\"$(date -R)\" && sleep 1.05'";
|
||||
# From https://gist.github.com/pksunkara/988716
|
||||
a = "add --all";
|
||||
ai = "add -i";
|
||||
# -----
|
||||
ap = "apply";
|
||||
as = "apply --stat";
|
||||
ac = "apply --check";
|
||||
# -----
|
||||
ama = "am --abort";
|
||||
amr = "am --resolved";
|
||||
ams = "am --skip";
|
||||
# -----
|
||||
b = "branch";
|
||||
ba = "branch -a";
|
||||
bd = "branch -d";
|
||||
bdd = "branch -D";
|
||||
br = "branch -r";
|
||||
bc = "rev-parse --abbrev-ref HEAD";
|
||||
bu = ''!git rev-parse --abbrev-ref --symbolic-full-name "@{u}"'';
|
||||
recent-branches = "branch --sort=-committerdate";
|
||||
# -----
|
||||
c = "commit";
|
||||
ca = "commit -a";
|
||||
cm = "commit -m";
|
||||
cam = "commit -am";
|
||||
cem = "commit --allow-empty -m";
|
||||
cd = "commit --amend";
|
||||
cad = "commit -a --amend";
|
||||
ced = "commit --allow-empty --amend";
|
||||
# -----
|
||||
cl = "clone";
|
||||
cld = "clone --depth 1";
|
||||
clg = "!sh -c 'git clone git://github.com/$1 $(basename $1)' -";
|
||||
clgp = "!sh -c 'git clone git@github.com:$(git config --get user.username)/$1 $1' -";
|
||||
# -----
|
||||
co-pr = "!sh -c 'git fetch origin refs/pull/$1/head:pull/$1 && git checkout pull/$1' -";
|
||||
cp = "cherry-pick";
|
||||
cpa = "cherry-pick --abort";
|
||||
cpc = "cherry-pick --continue";
|
||||
# -----
|
||||
d = "diff";
|
||||
dp = "diff --patience";
|
||||
dc = "diff --cached";
|
||||
dk = "diff --check";
|
||||
dck = "diff --cached --check";
|
||||
dt = "difftool";
|
||||
dct = "difftool --cached";
|
||||
# -----
|
||||
f = "fetch";
|
||||
fo = "fetch origin";
|
||||
fu = "fetch upstream";
|
||||
# -----
|
||||
fp = "format-patch";
|
||||
# -----
|
||||
fk = "fsck";
|
||||
# -----
|
||||
g = "grep -p";
|
||||
# -----
|
||||
l = "log --oneline";
|
||||
lg = "log --oneline --graph --decorate";
|
||||
# -----
|
||||
ls = "ls-files";
|
||||
lsf = "!git ls-files | grep -i";
|
||||
# -----
|
||||
m = "merge";
|
||||
ma = "merge --abort";
|
||||
mc = "merge --continue";
|
||||
ms = "merge --skip";
|
||||
# -----
|
||||
o = "checkout";
|
||||
ob = "checkout -b";
|
||||
# -----
|
||||
pr = "prune -v";
|
||||
# -----
|
||||
ps = "push";
|
||||
psf = "push -f";
|
||||
psu = "push -u";
|
||||
pst = "push --tags";
|
||||
# -----
|
||||
pso = "push origin";
|
||||
psao = "push --all origin";
|
||||
psfo = "push -f origin";
|
||||
psuo = "push -u origin";
|
||||
# -----
|
||||
psom = "push origin master";
|
||||
psaom = "push --all origin master";
|
||||
psfom = "push -f origin master";
|
||||
psuom = "push -u origin master";
|
||||
psoc = "!git push origin $(git bc)";
|
||||
psaoc = "!git push --all origin $(git bc)";
|
||||
psfoc = "!git push -f origin $(git bc)";
|
||||
psuoc = "!git push -u origin $(git bc)";
|
||||
psdc = "!git push origin :$(git bc)";
|
||||
# -----
|
||||
pl = "pull";
|
||||
pb = "pull --rebase";
|
||||
# -----
|
||||
plo = "pull origin";
|
||||
pbo = "pull --rebase origin";
|
||||
plom = "pull origin master";
|
||||
ploc = "!git pull origin $(git bc)";
|
||||
pbom = "pull --rebase origin master";
|
||||
pboc = "!git pull --rebase origin $(git bc)";
|
||||
# -----
|
||||
plu = "pull upstream";
|
||||
plum = "pull upstream master";
|
||||
pluc = "!git pull upstream $(git bc)";
|
||||
pbum = "pull --rebase upstream master";
|
||||
pbuc = "!git pull --rebase upstream $(git bc)";
|
||||
# -----
|
||||
rb = "rebase";
|
||||
rba = "rebase --abort";
|
||||
rbc = "rebase --continue";
|
||||
rbi = "rebase --interactive";
|
||||
rbs = "rebase --skip";
|
||||
# -----
|
||||
re = "reset";
|
||||
rh = "reset HEAD";
|
||||
reh = "reset --hard";
|
||||
rem = "reset --mixed";
|
||||
res = "reset --soft";
|
||||
rehh = "reset --hard HEAD";
|
||||
remh = "reset --mixed HEAD";
|
||||
resh = "reset --soft HEAD";
|
||||
# -----
|
||||
r = "remote";
|
||||
ra = "remote add";
|
||||
rr = "remote rm";
|
||||
rv = "remote -v";
|
||||
rn = "remote rename";
|
||||
rp = "remote prune";
|
||||
rs = "remote show";
|
||||
rao = "remote add origin";
|
||||
rau = "remote add upstream";
|
||||
rro = "remote remove origin";
|
||||
rru = "remote remove upstream";
|
||||
rso = "remote show origin";
|
||||
rsu = "remote show upstream";
|
||||
rpo = "remote prune origin";
|
||||
rpu = "remote prune upstream";
|
||||
# -----
|
||||
rmf = "rm -f";
|
||||
rmrf = "rm -r -f";
|
||||
# -----
|
||||
s = "status";
|
||||
sb = "status -s -b";
|
||||
# -----
|
||||
sa = "stash apply";
|
||||
sc = "stash clear";
|
||||
sd = "stash drop";
|
||||
sl = "stash list";
|
||||
sp = "stash pop";
|
||||
ss = "stash save";
|
||||
ssk = "stash save -k";
|
||||
sw = "stash show";
|
||||
st = "!git stash list | wc -l 2>/dev/null | grep -oEi '[0-9][0-9]*'";
|
||||
# -----
|
||||
t = "tag";
|
||||
td = "tag -d";
|
||||
# -----
|
||||
w = "show";
|
||||
wp = "show -p";
|
||||
wr = "show -p --no-color";
|
||||
# -----
|
||||
subadd = "!sh -c 'git submodule add git://github.com/$1 $2/$(basename $1)' -";
|
||||
subup = "submodule update --init --recursive";
|
||||
subpull = "!git submodule foreach git pull --tags origin master";
|
||||
# -----
|
||||
assume = "update-index --assume-unchanged";
|
||||
unassume = "update-index --no-assume-unchanged";
|
||||
assumed = "!git ls -v | grep ^h | cut -c 3-";
|
||||
unassumeall = "!git assumed | xargs git unassume";
|
||||
assumeall = "!git status -s | awk {'print $2'} | xargs git assume";
|
||||
# -----
|
||||
bump = ''!sh -c 'git commit -am "Version bump v$1" && git psuoc && git release $1' -'';
|
||||
release = "!sh -c 'git tag v$1 && git pst' -";
|
||||
unrelease = "!sh -c 'git tag -d v$1 && git pso :v$1' -";
|
||||
merged = "!sh -c 'git o master && git plom && git bd $1 && git rpo' -";
|
||||
aliases = "!git config -l | grep alias | cut -c 7-";
|
||||
snap = "!git stash save 'snapshot = $(date)' && git stash apply 'stash@{0}'";
|
||||
bare = "!sh -c 'git symbolic-ref HEAD refs/heads/$1 && git rm --cached -r . && git clean -xfd' -";
|
||||
whois = ''!sh -c 'git log -i -1 --author="$1" --pretty="format:%an <%ae>"' -'';
|
||||
serve = "daemon --reuseaddr --verbose --base-path=. --export-all ./.git";
|
||||
# -----
|
||||
behind = "!git rev-list --left-only --count $(git bu)...HEAD";
|
||||
ahead = "!git rev-list --right-only --count $(git bu)...HEAD";
|
||||
# -----
|
||||
ours = "!f() { git checkout --ours $@ && git add $@; }; f";
|
||||
theirs = "!f() { git checkout --theirs $@ && git add $@; }; f";
|
||||
subrepo = "!sh -c 'git filter-branch --prune-empty --subdirectory-filter $1 master' -";
|
||||
human = "name-rev --name-only --refs=refs/heads/*";
|
||||
};
|
||||
settings = {
|
||||
branch = {
|
||||
autosetuprebase = "always";
|
||||
};
|
||||
color = {
|
||||
ui = "auto";
|
||||
};
|
||||
core = {
|
||||
autocrlf = "input";
|
||||
editor = "micro";
|
||||
safecrlf = "warn";
|
||||
excludesfile = "~/.gitignore_global";
|
||||
};
|
||||
diff = {
|
||||
mnemonicprefix = true;
|
||||
};
|
||||
include = {
|
||||
path = "~/.gitconfig.local";
|
||||
};
|
||||
init = {
|
||||
defaultBranch = "main";
|
||||
};
|
||||
merge = {
|
||||
conflictstyle = "diff3";
|
||||
commit = "no";
|
||||
ff = "no";
|
||||
tool = "splice";
|
||||
};
|
||||
push = {
|
||||
autoSetupRemote = true;
|
||||
default = "current";
|
||||
};
|
||||
pull = {
|
||||
default = "matching";
|
||||
autoSetupRemote = true;
|
||||
rebase = true;
|
||||
useForceIfIncludes = true;
|
||||
};
|
||||
rebase = {
|
||||
autostash = true;
|
||||
autosquash = true;
|
||||
instructionFormat = "(%an <%ae>) %s";
|
||||
updateRefs = true;
|
||||
};
|
||||
rerere = {
|
||||
enabled = true;
|
||||
};
|
||||
sequence = {
|
||||
editor = "code --wait";
|
||||
};
|
||||
signing = {
|
||||
signByDefault = true;
|
||||
inherit (_.config.meta.${config.home.username}.key);
|
||||
};
|
||||
commit = {
|
||||
gpgsign = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
18
module/aspect/software/code/version-control/github.nix
Normal file
18
module/aspect/software/code/version-control/github.nix
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
den.aspects = {
|
||||
version-control = {
|
||||
homeManager =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
programs = {
|
||||
gh = {
|
||||
enable = true;
|
||||
extensions = [
|
||||
pkgs.gh-copilot
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
274
module/aspect/software/code/version-control/jujutsu.nix
Normal file
274
module/aspect/software/code/version-control/jujutsu.nix
Normal file
|
|
@ -0,0 +1,274 @@
|
|||
_:
|
||||
{
|
||||
den.aspects = {
|
||||
version-control = {
|
||||
homeManager =
|
||||
{ pkgs, config, ... }:
|
||||
{
|
||||
home.packages = [
|
||||
pkgs.watchman
|
||||
];
|
||||
programs = {
|
||||
jujutsu = {
|
||||
enable = true;
|
||||
settings = {
|
||||
fsmonitor = {
|
||||
backend = "watchman";
|
||||
watchman.register-snapshot-trigger = true;
|
||||
};
|
||||
snapshot.max-new-file-size = "15M";
|
||||
user = {
|
||||
inherit (_.config.meta.${config.home.username}.fullname);
|
||||
inherit (_.config.meta.${config.home.username}.email);
|
||||
};
|
||||
ui = {
|
||||
default-command = "l";
|
||||
diff-editor = ":builtin";
|
||||
graph.style = "square";
|
||||
pager = ":builtin";
|
||||
show-cryptographic-signatures = true;
|
||||
};
|
||||
git = {
|
||||
private-commits = "description(glob:'wip:*') | description(glob:'private:*')";
|
||||
auto-local-bookmark = true;
|
||||
fetch = [
|
||||
"origin"
|
||||
];
|
||||
write-change-id-header = true;
|
||||
};
|
||||
revset-aliases = {
|
||||
"immutable_heads()" = "trunk() | tags() | remote_bookmarks(remote=origin)";
|
||||
"closest_bookmark(to)" = "heads(::to & bookmarks())";
|
||||
"closest_pushable(to)" =
|
||||
"heads(::to & mutable() & ~description(exact:\"\") & (~empty() | merges()))";
|
||||
# Source: https://github.com/bryceberger/config/blob/38c6caf0823517b5423b2ca2a25f7fd79d445e0e/home/jj/config.toml
|
||||
"mine()" = "author(exact:'@name@') | author(exact:'@email@')";
|
||||
"wip()" = "description(glob:'wip:*')";
|
||||
"private()" = "description(glob:'private:*')";
|
||||
"stack()" = "ancestors(mutable() & (..@ | @::), 2)";
|
||||
"stack(x)" = "ancestors(mutable() & (..x | x::), 2)";
|
||||
"stack(x, n)" = "ancestors(mutable() & (..x | x::), n)";
|
||||
"streams()" = "heads(::@ & bookmarks())";
|
||||
"streams(x)" = "heads(::x & bookmarks())";
|
||||
"base_point(x)" = "heads(immutable_heads() & ::x)";
|
||||
"open()" = "stack(trunk().. & mine(), 2)";
|
||||
"open(n)" = "stack(trunk().. & mine(), n)";
|
||||
"why_immutable(r)" = "(r & immutable()) | roots(r:: & immutable_heads())";
|
||||
};
|
||||
revsets = {
|
||||
log = ''
|
||||
none()
|
||||
| base_point(@)
|
||||
| ancestors(@, 10) & trunk()..@
|
||||
| trunk()
|
||||
| bookmarks()
|
||||
| mutable() & visible_heads()
|
||||
| fork_point(mutable() & visible_heads())
|
||||
| (mutable() & merges())-
|
||||
'';
|
||||
short-prefixes = "stack(@)";
|
||||
};
|
||||
|
||||
template-aliases = {
|
||||
"link(target, text)" =
|
||||
''raw_escape_sequence("\x1b]8;;" ++ target ++ "\x1b\\") ++ label("text link", text) ++ raw_escape_sequence("\x1b]8;;\x1b\\")'';
|
||||
"italic(text)" = ''raw_escape_sequence("\x1b[3m") ++ text ++ raw_escape_sequence("\x1b[23m")'';
|
||||
"dim(text)" = ''raw_escape_sequence("\x1b[2m") ++ text ++ raw_escape_sequence("\x1b[22m")'';
|
||||
|
||||
"commit_description_verbose(commit)" = ''
|
||||
concat(
|
||||
commit_description(commit),
|
||||
"JJ: ignore-rest\n",
|
||||
diff.git(),
|
||||
)
|
||||
'';
|
||||
"commit_description(commit)" = ''
|
||||
concat(
|
||||
commit.description(), "\n",
|
||||
"JJ: This commit contains the following changes:\n",
|
||||
indent("JJ: ", diff.stat(72)),
|
||||
)
|
||||
'';
|
||||
|
||||
annotate_header = ''
|
||||
if(first_line_in_hunk, surround("\n", "\n", separate("\n",
|
||||
separate(" ",
|
||||
format_short_change_id_with_hidden_and_divergent_info(commit),
|
||||
format_short_id(commit.commit_id()),
|
||||
format_short_cryptographic_signature(commit.signature()),
|
||||
commit.description().first_line(),
|
||||
),
|
||||
commit_timestamp(commit).local().format('%Y-%m-%d %H:%M:%S')
|
||||
++ " "
|
||||
++ commit.author(),
|
||||
))) ++ pad_start(4, line_number) ++ ": " ++ content
|
||||
'';
|
||||
|
||||
# 00000000 ........ yyyy-mm-dd HH:MM:SS 1:
|
||||
annotate = ''
|
||||
if(first_line_in_hunk,
|
||||
separate(" ",
|
||||
format_short_id(commit.change_id()),
|
||||
pad_end(8, truncate_end(8, commit.author().email().local())),
|
||||
commit_timestamp(commit).local().format('%Y-%m-%d %H:%M:%S'),
|
||||
),
|
||||
pad_end(37, ""),
|
||||
) ++ pad_start(4, line_number) ++ ": " ++ content
|
||||
'';
|
||||
|
||||
"format_commit_info(commit)" = ''
|
||||
separate(" ",
|
||||
format_short_change_id_with_hidden_and_divergent_info(commit),
|
||||
format_short_id(commit.commit_id()),
|
||||
format_short_cryptographic_signature(commit.signature()),
|
||||
)'';
|
||||
|
||||
"format_commit_bookmarks(commit)" = ''
|
||||
separate(" ",
|
||||
commit.working_copies(),
|
||||
commit.tags(),
|
||||
commit.bookmarks(),
|
||||
)'';
|
||||
|
||||
"format_description(commit)" = ''
|
||||
separate(" ",
|
||||
if(empty, label("empty", "(empty)")),
|
||||
coalesce(
|
||||
if(commit.description(),
|
||||
truncate_end(48, commit.description().first_line(), " [...]"),
|
||||
if(!empty, label("description placeholder", "(no description)")),
|
||||
)
|
||||
)
|
||||
)'';
|
||||
|
||||
"format_author(commit)" = ''
|
||||
separate(" ",
|
||||
commit.author().email(),
|
||||
commit.author().name(),
|
||||
)
|
||||
'';
|
||||
|
||||
"format_commit_date(commit)" = ''
|
||||
separate(" ",
|
||||
commit_timestamp(commit).local().format('%Y-%m-%d %H:%M:%S'),
|
||||
)
|
||||
'';
|
||||
|
||||
default_log = ''
|
||||
separate(" ",
|
||||
format_commit_info(self),
|
||||
format_commit_bookmarks(self),
|
||||
format_description(self),
|
||||
format_author(self),
|
||||
format_commit_date(self),
|
||||
)'';
|
||||
};
|
||||
|
||||
templates = {
|
||||
draft_commit_description = "commit_description(self)";
|
||||
|
||||
file_annotate = "annotate_header";
|
||||
|
||||
log = "default_log";
|
||||
log_node = ''
|
||||
label("node", coalesce(
|
||||
if(!self, label("elided", "~")),
|
||||
label(
|
||||
separate(" ",
|
||||
if(current_working_copy, "working_copy"),
|
||||
if(conflict, "conflict"),
|
||||
if(immutable, "immutable"),
|
||||
if(description.starts_with("wip:"), "wip"),
|
||||
if(description.starts_with("private:"), "wip"),
|
||||
),
|
||||
coalesce(
|
||||
if(current_working_copy, "@"),
|
||||
if(conflict, "x"),
|
||||
if(immutable, "◆"),
|
||||
if(description.starts_with("wip:"), "!"),
|
||||
if(description.starts_with("private:"), "◇"),
|
||||
"○",
|
||||
)
|
||||
)
|
||||
))
|
||||
'';
|
||||
};
|
||||
|
||||
aliases = {
|
||||
tug = [
|
||||
"bookmark"
|
||||
"move"
|
||||
"--from"
|
||||
"closest_bookmark(@)"
|
||||
"--to"
|
||||
"closest_pushable(@)"
|
||||
];
|
||||
ds = [
|
||||
"diff"
|
||||
"--stat"
|
||||
];
|
||||
dv = [
|
||||
"--config=templates.draft_commit_description=commit_description_verbose(self)"
|
||||
"describe"
|
||||
];
|
||||
# Too slow - TODO investigate why
|
||||
# l = ["log" "-T" "builtin_log_compact"];
|
||||
# ll = ["log" "-T" "builtin_log_detailed"];
|
||||
l = [
|
||||
"log"
|
||||
"-r"
|
||||
"all()"
|
||||
];
|
||||
ll = [
|
||||
"log"
|
||||
"-r"
|
||||
"all()"
|
||||
"-T"
|
||||
"builtin_log_detailed"
|
||||
];
|
||||
xl = [
|
||||
"log"
|
||||
"-T"
|
||||
"builtin_log_detailed"
|
||||
];
|
||||
evolve = [
|
||||
"rebase"
|
||||
"--skip-empty"
|
||||
"-d"
|
||||
"main"
|
||||
];
|
||||
streams = [
|
||||
"log"
|
||||
"--no-graph"
|
||||
"-r"
|
||||
"streams()"
|
||||
"-T"
|
||||
"bookmarks.map(|b| b ++ ' ')"
|
||||
];
|
||||
open = [
|
||||
"log"
|
||||
"-r"
|
||||
"open()"
|
||||
];
|
||||
stack = [
|
||||
"log"
|
||||
"-r"
|
||||
"stack()"
|
||||
];
|
||||
s = [ "stack" ];
|
||||
yank = [
|
||||
"rebase"
|
||||
"--skip-emptied"
|
||||
"-s"
|
||||
"all:roots(mutable() & mine())"
|
||||
"-d"
|
||||
"trunk()"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
16
module/aspect/software/code/version-control/lazygit.nix
Normal file
16
module/aspect/software/code/version-control/lazygit.nix
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
den.aspects = {
|
||||
version-control = {
|
||||
homeManager = {
|
||||
programs = {
|
||||
lazygit = {
|
||||
enable = true;
|
||||
settings = {
|
||||
git.overrideGpg = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
11
module/aspect/software/code/version-control/mergiraf.nix
Normal file
11
module/aspect/software/code/version-control/mergiraf.nix
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
den.aspects = {
|
||||
version-control = {
|
||||
homeManager = {
|
||||
programs.mergiraf = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
den.aspects = {
|
||||
version-control = {
|
||||
homeManager =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = [
|
||||
pkgs.nixpkgs-review
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
14
module/aspect/software/file-manager/file-sync/syncthing.nix
Normal file
14
module/aspect/software/file-manager/file-sync/syncthing.nix
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
den.aspects = {
|
||||
syncthing = {
|
||||
nixos =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
environment.systemPackages = [
|
||||
pkgs.syncthing
|
||||
pkgs.syncthingtray
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
11
module/aspect/software/file-manager/file-sync/unison.nix
Normal file
11
module/aspect/software/file-manager/file-sync/unison.nix
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
den.aspects = {
|
||||
unison = {
|
||||
homeManager =
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
home.packages = [ pkgs.unison ];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
13
module/aspect/software/file-manager/gui/ark-archiver.nix
Normal file
13
module/aspect/software/file-manager/gui/ark-archiver.nix
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
den.aspects = {
|
||||
ark-archiver = {
|
||||
homeManager =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = [
|
||||
pkgs.latest.kdePackages.ark
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
13
module/aspect/software/file-manager/gui/dolphin.nix
Normal file
13
module/aspect/software/file-manager/gui/dolphin.nix
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
den.aspects = {
|
||||
dolphin = {
|
||||
homeManager =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = [
|
||||
pkgs.latest.kdePackages.dolphin
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
13
module/aspect/software/file-manager/gui/krusader.nix
Normal file
13
module/aspect/software/file-manager/gui/krusader.nix
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
den.aspects = {
|
||||
krusader = {
|
||||
homeManager =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = [
|
||||
pkgs.krusader
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
31
module/aspect/software/file-manager/gui/nemo.nix
Normal file
31
module/aspect/software/file-manager/gui/nemo.nix
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
{
|
||||
den.aspects = {
|
||||
nemo = {
|
||||
homeManager =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = [
|
||||
pkgs.latest.nemo-with-extensions
|
||||
pkgs.latest.nemo-preview
|
||||
pkgs.latest.nemo-seahorse
|
||||
pkgs.latest.nemo-fileroller
|
||||
];
|
||||
gtk.gtk3.extraConfig = {
|
||||
GtkFileChooserBackend = "nemo";
|
||||
};
|
||||
gtk.gtk4.extraConfig = {
|
||||
GtkFileChooserBackend = "nemo";
|
||||
};
|
||||
xdg.desktopEntries = {
|
||||
"nemo" = {
|
||||
name = "Nemo";
|
||||
exec = "nemo %U";
|
||||
terminal = false;
|
||||
categories = [ "System" "FileManager" ];
|
||||
mimeType = [ "inode/directory" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
13
module/aspect/software/file-manager/gui/spacedrive.nix
Normal file
13
module/aspect/software/file-manager/gui/spacedrive.nix
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
den.aspects = {
|
||||
spacedrive = {
|
||||
homeManager =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = [
|
||||
pkgs.latest.spacedrive
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
14
module/aspect/software/file-manager/tty/yazi.nix
Normal file
14
module/aspect/software/file-manager/tty/yazi.nix
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
den.aspects = {
|
||||
yazi = {
|
||||
homeManager =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = [
|
||||
pkgs.latest.yazi
|
||||
pkgs.latest.yaziPlugins.sudo
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
17
module/aspect/software/software-gui/affinity.nix
Normal file
17
module/aspect/software/software-gui/affinity.nix
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
flake-file.inputs = {
|
||||
affinity-nix.url = "github:mrshmllow/affinity-nix";
|
||||
};
|
||||
|
||||
den.aspects = {
|
||||
affinity = {
|
||||
homeManager =
|
||||
{ inputs, pkgs, ... }:
|
||||
{
|
||||
home.packages = [
|
||||
inputs.affinity-nix.packages.x86_64-linux.v3
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
18
module/aspect/software/software-gui/antimicrox.nix
Normal file
18
module/aspect/software/software-gui/antimicrox.nix
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
den.aspects = {
|
||||
antimicrox = {
|
||||
homeManager =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = [
|
||||
pkgs.antimicrox
|
||||
];
|
||||
};
|
||||
nixos = {
|
||||
services.udev.extraRules = ''
|
||||
SUBSYSTEM=="misc", KERNEL=="uinput", OPTIONS+="static_node=uinput", TAG+="uaccess"
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
13
module/aspect/software/software-gui/audacity.nix
Normal file
13
module/aspect/software/software-gui/audacity.nix
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
den.aspects = {
|
||||
audacity = {
|
||||
homeManager =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = [
|
||||
pkgs.audacity
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
13
module/aspect/software/software-gui/blender-hip-latest.nix
Normal file
13
module/aspect/software/software-gui/blender-hip-latest.nix
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
den.aspects = {
|
||||
blender-hip-latest = {
|
||||
homeManager =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = [
|
||||
pkgs.blender-hip
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
flake input
|
||||
persystem overlay
|
||||
|
||||
|
||||
|
||||
den.aspects = {
|
||||
blender-hip-v45 = {
|
||||
nixos =
|
||||
{ blender-hip-v45, ... }:
|
||||
{
|
||||
systemPackages = [
|
||||
blender-hip-v45.blender-hip
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
14
module/aspect/software/software-gui/bottles.nix
Normal file
14
module/aspect/software/software-gui/bottles.nix
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
den.aspects = {
|
||||
bottles = {
|
||||
flatpak = {
|
||||
services.flatpak.packages = [
|
||||
{
|
||||
appId = "com.usebottles.bottles";
|
||||
origin = "flathub";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
13
module/aspect/software/software-gui/discord.nix
Normal file
13
module/aspect/software/software-gui/discord.nix
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
den.aspects = {
|
||||
discord = {
|
||||
homeManager =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = [
|
||||
pkgs.local.chromium-discord
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
14
module/aspect/software/software-gui/gimp.nix
Normal file
14
module/aspect/software/software-gui/gimp.nix
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
den.aspects = {
|
||||
gimp = {
|
||||
flatpak = {
|
||||
services.flatpak.packages = [
|
||||
{
|
||||
appId = "org.gimp.GIMP";
|
||||
origin = "flathub";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
14
module/aspect/software/software-gui/inkscape.nix
Normal file
14
module/aspect/software/software-gui/inkscape.nix
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
den.aspects = {
|
||||
inkscape = {
|
||||
flatpak = {
|
||||
services.flatpak.packages = [
|
||||
{
|
||||
appId = "org.inkscape.Inkscape";
|
||||
origin = "flathub";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
14
module/aspect/software/software-gui/jdownloader.nix
Normal file
14
module/aspect/software/software-gui/jdownloader.nix
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
den.aspects = {
|
||||
jdownloader = {
|
||||
flatpak = {
|
||||
services.flatpak.packages = [
|
||||
{
|
||||
appId = "org.jdownloader.JDownloader";
|
||||
origin = "flathub";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
14
module/aspect/software/software-gui/kdenlive.nix
Normal file
14
module/aspect/software/software-gui/kdenlive.nix
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
den.aspects = {
|
||||
kdenlive = {
|
||||
flatpak = {
|
||||
services.flatpak.packages = [
|
||||
{
|
||||
appId = "org.kde.kdenlive";
|
||||
origin = "flathub";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
14
module/aspect/software/software-gui/krita.nix
Normal file
14
module/aspect/software/software-gui/krita.nix
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
den.aspects = {
|
||||
krita = {
|
||||
flatpak = {
|
||||
services.flatpak.packages = [
|
||||
{
|
||||
appId = "org.kde.krita";
|
||||
origin = "flathub";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
13
module/aspect/software/software-gui/media-player/haruna.nix
Normal file
13
module/aspect/software/software-gui/media-player/haruna.nix
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
den.aspects = {
|
||||
haruna = {
|
||||
homeManager =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = [
|
||||
pkgs.latest.haruna
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
0
module/aspect/software/software-gui/media-player/mpv.wip
Normal file
0
module/aspect/software/software-gui/media-player/mpv.wip
Normal file
13
module/aspect/software/software-gui/netbird.nix
Normal file
13
module/aspect/software/software-gui/netbird.nix
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
den.aspects = {
|
||||
netbird = {
|
||||
nixos = {
|
||||
services.netbird = {
|
||||
enable = true;
|
||||
ui.enable = true;
|
||||
useRoutingFeatures = "both";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
22
module/aspect/software/software-gui/obs-studio.nix
Normal file
22
module/aspect/software/software-gui/obs-studio.nix
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
den.aspects = {
|
||||
obs-studio = {
|
||||
homeManager =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
programs.obs-studio = {
|
||||
enable = true;
|
||||
plugins = with pkgs.obs-studio-plugins; [
|
||||
wlrobs
|
||||
obs-pipewire-audio-capture
|
||||
obs-vkcapture
|
||||
obs-source-clone
|
||||
obs-move-transition
|
||||
obs-composite-blur
|
||||
obs-backgroundremoval
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
13
module/aspect/software/software-gui/obsidian.nix
Normal file
13
module/aspect/software/software-gui/obsidian.nix
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
den.aspects = {
|
||||
obsidian = {
|
||||
homeManager =
|
||||
{ pkgs, inputs, ... }:
|
||||
{
|
||||
home.packages = [
|
||||
pkgs.latest.obsidian
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
16
module/aspect/software/software-gui/open-tablet.nix
Normal file
16
module/aspect/software/software-gui/open-tablet.nix
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
den.aspects = {
|
||||
open-tablet = {
|
||||
nixos = {
|
||||
hardware.opentabletdriver = {
|
||||
enable = true;
|
||||
daemon.enable = true;
|
||||
blacklistedKernelModules = [
|
||||
"hid-uclogic"
|
||||
"wacom"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
13
module/aspect/software/software-gui/qbittorrent.nix
Normal file
13
module/aspect/software/software-gui/qbittorrent.nix
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
den.aspects = {
|
||||
qbittorrent = {
|
||||
homeManager =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = [
|
||||
pkgs.qbittorrent
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
21
module/aspect/software/software-gui/shotcut.nix
Normal file
21
module/aspect/software/software-gui/shotcut.nix
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
den.aspects = {
|
||||
shotcut = {
|
||||
homeManager =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = [
|
||||
(pkgs.symlinkJoin {
|
||||
name = "shotcut";
|
||||
buildInputs = [ pkgs.makeWrapper ];
|
||||
paths = [ pkgs.shotcut ];
|
||||
postBuild = ''
|
||||
wrapProgram $out/bin/shotcut \
|
||||
--unset QT_QPA_PLATFORMTHEME
|
||||
'';
|
||||
})
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
13
module/aspect/software/software-gui/utility/bleachbit.nix
Normal file
13
module/aspect/software/software-gui/utility/bleachbit.nix
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
den.aspects = {
|
||||
tool-gui = {
|
||||
homeManager =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = [
|
||||
pkgs.bleachbit
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
13
module/aspect/software/software-gui/utility/copyq.nix
Normal file
13
module/aspect/software/software-gui/utility/copyq.nix
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
den.aspects = {
|
||||
tool-gui = {
|
||||
homeManager =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = [
|
||||
pkgs.copyq
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
13
module/aspect/software/software-gui/utility/cpu-x.nix
Normal file
13
module/aspect/software/software-gui/utility/cpu-x.nix
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
den.aspects = {
|
||||
tool-gui = {
|
||||
homeManager =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = [
|
||||
pkgs.cpu-x
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
13
module/aspect/software/software-gui/utility/fsearch.nix
Normal file
13
module/aspect/software/software-gui/utility/fsearch.nix
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
den.aspects = {
|
||||
tool-gui = {
|
||||
homeManager =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = [
|
||||
pkgs.fsearch
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue