begin migration to dendritic pattern

This commit is contained in:
greyweather committed 2026-08-27 00:50:33 +01:00
1 parent 4a081aef50
commit 7245e872f6
153 files changed
+3352 -53

No files matched your search

+27
View File
@@ -0,0 +1,27 @@
{
pkgs,
lib,
...
}: {
programs.equibop.enable = true;
home.activation = {
linkEquibopConfig = lib.hm.dag.entryAfter ["writeBoundary"] ''
#!/bin/bash
if [ -f /home/grey/.config/equibop/settings.json ]; then
rm /home/grey/.config/equibop/settings.json
fi
ln -s /home/grey/nixos/assets/dotfiles/equibop-config/settings.json /home/grey/.config/equibop/settings.json
if [ -f /home/grey/.config/equibop/settings/settings.json ]; then
rm /home/grey/.config/equibop/settings/settings.json
fi
ln -s /home/grey/nixos/assets/dotfiles/equibop-config/equicord-settings.json /home/grey/.config/equibop/settings/settings.json
if [ -f /home/grey/.config/equibop/settings/quickCss.css ]; then
rm /home/grey/.config/equibop/settings/quickCss.css
fi
ln -s /home/grey/nixos/assets/dotfiles/equibop-config/quickCss.css /home/grey/.config/equibop/settings/quickCss.css
'';
};
}
+208
View File
@@ -0,0 +1,208 @@
{
pkgs,
inputs,
...
}: let
firefox-addons = with pkgs; inputs.firefox-addons.packages.${system};
in {
programs.floorp = {
enable = true;
nativeMessagingHosts = [
pkgs.firefoxpwa
];
policies = {
AIControls.Default = {
Value = "blocked";
Locked = true;
};
AutofillAddressEnabled = false;
AutofillCreditCardEnabled = false;
DisableAppUpdate = true;
DisableFeedbackCommands = true;
DisableFirefoxStudies = true;
DisablePocket = true;
DisableTelemetry = true;
NoDefaultBookmarks = true;
EnableTrackingProtection = {
Value = true;
Locked = true;
Cryptomining = true;
Fingerprinting = true;
};
};
profiles.default = {
extensions = {
packages = with firefox-addons; [
adnauseam
bitwarden
indie-wiki-buddy
pwas-for-firefox
gnome-shell-integration
];
settings = {
${firefox-addons.adnauseam.addonId} = {
force = true;
settings = {
"firstInstall" = false;
"hidingAds" = true;
"clickingAds" = true;
"blockingMalware" = true;
"disableClickingForDNT" = true;
"clickProbability" = 0.75;
selectedFilterLists = [
"user-filters"
"adnauseam-filters"
"eff-dnt-whitelist"
"ublock-filters"
"ublock-badware"
"ublock-privacy"
"ublock-quick-fixes"
"ublock-unbreak"
"easylist"
"easyprivacy"
"urlhaus-1"
"fanboy-cookiemonster"
"ublock-cookies-easylist"
"adguard-cookies"
"ublock-cookies-adguard"
"fanboy-ai-suggestions"
"easylist-chat"
"easylist-newsletters"
"easylist-notifications"
"easylist-annoyances"
"adguard-mobile-app-banners"
"adguard-other-annoyances"
"adguard-popup-overlays"
"adguard-widgets"
"ublock-annoyances"
];
};
};
};
};
settings = {
"signon.rememberSignons" = false;
"signon.autofillForms" = false;
"floorp.panelSidebar.enabled" = false;
"floorp.workspaces.enabled" = false;
"browser.toolbars.bookmarks.visibility" = "newtab";
"floorp.browser.welcome.page.shown" = true;
"browser.newtabpage.activity-stream.feeds.topsites" = false;
"browser.newtabpage.activity-stream.feeds.section.topstories" = false;
"browser.newtabpage.activity-stream.feeds.adsfeed" = false;
"browser.newtabpage.activity-stream.feeds.telemetry" = false;
"browser.newtabpage.activity-stream.feeds.weatherfeed" = false;
"browser.newtabpage.activity-stream.newtabWallpapers.user.enabled" = true;
"browser.newtabpage.activity-stream.widgets.enabled" = false;
"browser.newtabpage.activity-stream.discoverystream.enabled" = false;
"browser.newtabpage.activity-stream.newtabWallpapers.wallpaper" = "suspension-bridge";
"floorp.design.configs" = {
globalConfigs = {
userInterface = "proton";
uiCustomization = {
qrCode.disableButton = true;
disableFloorpStart = true;
};
};
};
"ui.key.menuAccessKeyFocuses" = false;
"floorp.keyboardshortcut.enabled" = true;
"floorp.keyboardshortcut.config" = {
enabled = true;
shortcuts = {
gecko-close-tab = {
modifiers = {
alt = true;
ctrl = false;
meta = false;
shift = false;
};
key = "Q";
action = "gecko-close-tab";
};
gecko-open-new-tab = {
modifiers = {
alt = true;
ctrl = false;
meta = false;
shift = false;
};
key = "Enter";
action = "gecko-open-new-tab";
};
};
};
};
search = {
force = true;
default = "ddg-noai";
engines = {
ddg-noai = {
name = "DuckDuckGo No-AI";
urls = [
{
template = "https://noai.duckduckgo.com/?q={searchTerms}";
}
];
icon = "https://duckduckgo.com/favicon.ico";
definedAliases = ["@noai"];
};
nixpkgs = {
name = "nixpkgs packages";
urls = [
{
template = "https://search.nixos.org/packages?query={searchTerms}";
}
];
icon = "https://wiki.nixos.org/favicon.ico";
definedAliases = ["@np"];
};
nixos-options = {
name = "NixOS options";
urls = [
{
template = "https://search.nixos.org/options?query={searchTerms}";
}
];
icon = "https://wiki.nixos.org/favicon.ico";
definedAliases = ["@no"];
};
nixos-wiki = {
name = "NixOS Wiki";
urls = [
{
template = "https://wiki.nixos.org/w/index.php?search={searchTerms}";
}
];
icon = "https://wiki.nixos.org/favicon.ico";
definedAliases = ["@nw"];
};
noogle = {
name = "Noogle";
urls = [
{
template = "https://noogle.dev/q/?term={searchTerms}";
}
];
icon = "https://noogle.dev/favicon.ico";
definedAliases = ["@ng"];
};
arch-wiki = {
name = "ArchWiki";
urls = [
{
template = "https://wiki.archlinux.org/index.php?search={searchTerms}";
}
];
icon = "https://wiki.archlinux.org/favicon.ico";
definedAliases = ["@aw"];
};
};
};
};
};
}
+133
View File
@@ -0,0 +1,133 @@
{
pkgs,
lib,
...
}: {
programs.gnome-shell = {
enable = true;
extensions = [
{ package = pkgs.gnomeExtensions.dash-to-dock; }
{ package = pkgs.gnomeExtensions.blur-my-shell; }
{ package = pkgs.gnomeExtensions.appindicator; }
{ package = pkgs.gnomeExtensions.gsconnect; }
{ package = pkgs.gnomeExtensions.clipboard-indicator; }
{ package = pkgs.gnomeExtensions.custom-command-toggle; }
{ package = pkgs.gnomeExtensions.custom-command-list; }
{ package = pkgs.gnomeExtensions.keep-pinned-apps-in-appgrid; }
];
};
programs.floorp.nativeMessagingHosts = [
pkgs.gnome-browser-connector
];
dconf = {
enable = true;
settings = {
"org/gnome/desktop/interface" = {
cursor-size = 22;
cursor-theme = lib.gvariant.mkValue "Bibata-Modern-Ice";
accent-color = lib.gvariant.mkValue "blue";
enable-hot-corners = false;
clock-show-weekday = true;
};
"org/gnome/desktop/wm/keybindings" = {
close = lib.gvariant.mkArray [ "<Super>q" ];
show-desktop = lib.gvariant.mkArray [ "<Super>d" ];
switch-applications = lib.gvariant.mkEmptyArray (lib.gvariant.type.string);
switch-applications-backward = lib.gvariant.mkEmptyArray (lib.gvariant.type.string);
switch-windows = lib.gvariant.mkArray [ "<Alt>Tab" ];
switch-windows-backward = lib.gvariant.mkArray [ "<Shift><Alt>Tab" ];
switch-to-workspace-1 = lib.gvariant.mkArray [ "<Super>1" ];
switch-to-workspace-2 = lib.gvariant.mkArray [ "<Super>2" ];
switch-to-workspace-3 = lib.gvariant.mkArray [ "<Super>3" ];
switch-to-workspace-4 = lib.gvariant.mkArray [ "<Super>4" ];
move-to-workspace-1 = lib.gvariant.mkArray [ "<Shift><Super>1" ];
move-to-workspace-2 = lib.gvariant.mkArray [ "<Shift><Super>2" ];
move-to-workspace-3 = lib.gvariant.mkArray [ "<Shift><Super>3" ];
move-to-workspace-4 = lib.gvariant.mkArray [ "<Shift><Super>4" ];
};
"org/gnome/desktop/wm/preferences" = {
num-workspaces = 4;
};
"org/gnome/settings-daemon/plugins/media-keys" = {
help = lib.gvariant.mkEmptyArray (lib.gvariant.type.string);
calculator = lib.gvariant.mkArray [ "<Super>c" ];
shutdown = lib.gvariant.mkArray [ "<Shift><Super>p" ];
reboot = lib.gvariant.mkArray [ "<Shift><Super>r" ];
www = lib.gvariant.mkArray [ "<Super>b" ];
custom-keybindings = lib.gvariant.mkArray [
"/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/"
"/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/"
"/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom2/"
];
};
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0" = {
binding = lib.gvariant.mkValue "<Super>Return";
command = lib.gvariant.mkValue "kitty";
name = lib.gvariant.mkValue "launch kitty";
};
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1" = {
binding = lib.gvariant.mkValue "<Super>e";
command = lib.gvariant.mkValue "nautilus -w";
name = lib.gvariant.mkValue "launch nautilus";
};
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom2" = {
binding = lib.gvariant.mkValue "<Super>z";
command = lib.gvariant.mkValue "kitty nh os switch /home/grey/nixos";
name = lib.gvariant.mkValue "rebuild nixos flake";
};
"org/gnome/desktop/peripherals/touchpad" = {
speed = 0.15;
};
"org/gnome/mutter" = {
dynamic-workspaces = false;
};
"org/gnome/shell" = {
favorite-apps = lib.gvariant.mkArray [
"signal.desktop"
"equibop.desktop"
"thunderbird.desktop"
"spotify.desktop"
"obsidian.desktop"
"github-desktop.desktop"
"code.desktop"
"idea.desktop"
"clion.desktop"
"proton.vpn.app.gtk.desktop"
"io.ente.auth.desktop"
];
};
"org/gnome/shell/keybindings" = {
switch-to-application-1 = lib.gvariant.mkEmptyArray (lib.gvariant.type.string);
switch-to-application-2 = lib.gvariant.mkEmptyArray (lib.gvariant.type.string);
switch-to-application-3 = lib.gvariant.mkEmptyArray (lib.gvariant.type.string);
switch-to-application-4 = lib.gvariant.mkEmptyArray (lib.gvariant.type.string);
};
"org/gnome/settings-daemon/plugins/power" = {
sleep-inactive-ac-type = lib.gvariant.mkValue "nothing";
sleep-inactive-battery-type = lib.gvariant.mkValue "nothing";
};
"org/gnome/settings-daemon/plugins/color" = {
night-light-enabled = true;
night-light-temperature = lib.gvariant.mkUint32 4200;
night-light-schedule-from = 20.0;
night-light-schedule-to = 6.0;
};
"org/gnome/shell/extensions/dash-to-dock" = {
hot-keys = false;
show-trash = false;
};
"org/gtk/gtk4/settings/file-chooser" = {
show-hidden = true;
};
"org/gnome/nautilus/preferences" = {
default-folder-viewer = lib.gvariant.mkValue "list-view";
};
};
};
}
+11
View File
@@ -0,0 +1,11 @@
{
pkgs,
...
}: {
programs.kitty = {
enable = true;
shellIntegration.enableBashIntegration = true;
enableGitIntegration = true;
};
}
+47
View File
@@ -0,0 +1,47 @@
{
config,
pkgs,
lib,
...
}: {
home.packages = with pkgs; [
nautilus
qalculate-qt
];
home.activation = {
symlinkNiriConfig = lib.hm.dag.entryAfter ["writeBoundary"] ''
#!/bin/bash
if [ -f /home/grey/.config/niri/config.kdl ]; then
rm /home/grey/.config/niri/config.kdl
fi
ln -s /home/grey/nixos/assets/dotfiles/niri.kdl /home/grey/.config/niri/config.kdl
'';
symlinkNoctaliaState = lib.hm.dag.entryAfter ["writeBoundary"] ''
#!/bin/bash
if [ -f /home/grey/.local/state/noctalia/settings.toml ]; then
rm /home/grey/.local/state/noctalia/settings.toml
fi
ln -s /home/grey/nixos/assets/dotfiles/noctalia-state/settings.toml /home/grey/.local/state/noctalia/settings.toml
if [ -d /home/grey/.local/state/noctalia/plugins ]; then
rm -rf /home/grey/.local/state/noctalia/plugins
fi
ln -s /home/grey/nixos/assets/dotfiles/noctalia-state/plugins /home/grey/.local/state/noctalia/plugins
'';
copyNoctaliaConfig = lib.hm.dag.entryAfter ["writeBoundary"] ''
#!/bin/bash
if [ -f /home/grey/.config/noctalia/settings.toml ]; then
rm /home/grey/.config/noctalia/settings.toml
fi
cp /home/grey/nixos/assets/dotfiles/noctalia-state/settings.toml /home/grey/.config/noctalia/settings.toml
if [ -d /home/grey/.config/noctalia/plugins ]; then
rm -rf /home/grey/.config/noctalia/plugins
fi
cp -r /home/grey/nixos/assets/dotfiles/noctalia-state/plugins /home/grey/.config/noctalia/plugins
'';
};
}
+68
View File
@@ -0,0 +1,68 @@
{
pkgs,
lib,
inputs,
...
}: {
imports = [
inputs.plasma-manager.homeModules.plasma-manager
];
home.packages = [
pkgs.papirus-icon-theme
pkgs.kdePackages.oxygen
pkgs.kdePackages.oxygen-sounds
];
home.activation = {
linkKdeConfigs = lib.hm.dag.entryAfter ["writeBoundary"] ''
#!/bin/bash
cd /home/grey/nixos/assets/dotfiles/takamaki/kde-config
for file in $PWD/*; do
filename=$(basename $file)
if [ -f /home/grey/.config/$filename ]; then
rm /home/grey/.config/$filename
fi
ln -s $file /home/grey/.config/$filename
done
'';
linkCustomShortcuts = lib.hm.dag.entryAfter ["writeBoundary"] ''
#!/bin/bash
cd /home/grey/nixos/assets/dotfiles/takamaki/kde-custom-shortcuts
for file in $PWD/*; do
filename=$(basename $file)
if [ -f /home/grey/.local/share/applications/$filename ]; then
rm /home/grey/.local/share/applications/$filename
fi
ln -s $file /home/grey/.local/share/applications/$filename
done
'';
linkThemingAssets = lib.hm.dag.entryAfter ["writeBoundary"] ''
#!/bin/bash
if [ -d /home/grey/.local/share/wallpapers/ExposeAir ]; then
rm -rf /home/grey/.local/share/wallpapers/ExposeAir
else
mkdir -p /home/grey/.local/share/wallpapers
fi
ln -s /home/grey/nixos/assets/expose-air/wallpapers/ExposeAir /home/grey/.local/share/wallpapers/ExposeAir
if [ -f /home/grey/.local/share/color-schemes/OxygenDarkEdit.colors ]; then
rm /home/grey/.local/share/color-schemes/OxygenDarkEdit.colors
else
mkdir -p /home/grey/.local/share/color-schemes
fi
ln -s /home/grey/nixos/assets/dotfiles/takamaki/OxygenDarkEdit.colors /home/grey/.local/share/color-schemes/OxygenDarkEdit.colors
if [ -d /home/grey/.local/share/plasma/desktoptheme/exposeair ]; then
rm -rf /home/grey/.local/share/plasma/desktoptheme/exposeair
else
mkdir -p /home/grey/.local/share/plasma/desktoptheme
fi
ln -s /home/grey/nixos/assets/expose-air/desktoptheme/exposeair /home/grey/.local/share/plasma/desktoptheme/exposeair
'';
};
programs.plasma.enable = true;
}
+31
View File
@@ -0,0 +1,31 @@
{
config,
pkgs,
inputs,
...
}: {
imports = [
inputs.spicetify.homeManagerModules.default
];
programs.spicetify =
let
spicePkgs = inputs.spicetify.legacyPackages.${pkgs.stdenv.hostPlatform.system};
in {
enable = true;
enabledExtensions = with spicePkgs.extensions; [
hidePodcasts
];
enabledSnippets = with spicePkgs.snippets; [
spinningCdCoverArt
oneko
hideMiniPlayerButton
hideFullScreenButton
declutterNowPlayingBar
modernScrollbar
];
enabledCustomApps = with spicePkgs.apps; [
# marketplace
];
};
}
+23
View File
@@ -0,0 +1,23 @@
{
config,
pkgs,
lib,
...
}: {
home.packages = [ pkgs.vscode ];
home.activation = {
linkVsCodeConfig = lib.hm.dag.entryAfter ["writeBoundary"] ''
#!/bin/bash
if [ -f /home/grey/.config/Code/User/settings.json ]; then
rm /home/grey/.config/Code/User/settings.json
fi
ln -s /home/grey/nixos/assets/dotfiles/vscode-config/settings.json /home/grey/.config/Code/User/settings.json
if [ -f /home/grey/.config/Code/User/keybindings.json ]; then
rm /home/grey/.config/Code/User/keybindings.json
fi
ln -s /home/grey/nixos/assets/dotfiles/vscode-config/keybindings.json /home/grey/.config/Code/User/keybindings.json
'';
};
}
+28
View File
@@ -0,0 +1,28 @@
{
pkgs,
inputs,
lib,
...
}: let
firefox-addons = with pkgs; inputs.firefox-addons.packages.${system};
in {
imports = [
inputs.zen-browser.homeModules.beta
];
home.activation = {
linkZenConfig = lib.hm.dag.entryAfter ["writeBoundary"] ''
#!/bin/bash
if [ -d /home/grey/.config/zen ]; then
rm -rf /home/grey/.config/zen
fi
ln -s /home/grey/nixos/assets/dotfiles/zen-config /home/grey/.config/zen
'';
};
programs.zen-browser = {
enable = true;
setAsDefaultBrowser = true;
nativeMessagingHosts = [ pkgs.firefoxpwa ];
};
}
+24
View File
@@ -0,0 +1,24 @@
{
pkgs,
...
}: {
home.shell.enableZshIntegration = true;
programs.kitty.shellIntegration.enableZshIntegration = true;
programs.zsh = {
enable = true;
completionInit = "";
antidote = {
enable = true;
plugins = [
"getantidote/use-omz"
"ohmyzsh/ohmyzsh path:lib"
"ohmyzsh/ohmyzsh path:plugins/command-not-found"
"ohmyzsh/ohmyzsh path:themes/nanotech.zsh-theme"
"zsh-users/zsh-autosuggestions"
"zdharma-continuum/fast-syntax-highlighting"
];
};
};
}