full PC config setup

shifting towards manual symlinks for more complex setup than laptop, allows for GUI settings changes to actually apply, and is much easier than nix-ifying every config
This commit is contained in:
greyweather committed 2026-07-12 04:01:28 +01:00
1 parent 19e8f0a6d5
commit 0f018cd2e3
149 files changed
+9539 -478

No files matched your search

+19 -149
View File
@@ -1,157 +1,27 @@
{
pkgs,
lib,
...
}: {
programs.equibop = {
enable = true;
settings = {
discordBranch = "stable";
tray = false;
minimizeToTray = false;
autoStartMinimized = false;
enableMenu = false;
hardwareAcceleration = true;
arRPC = false;
appBadge = true;
customTitleBar = true;
enableSplashScreen = true;
};
equicord = {
settings = {
autoUpdate = false;
useQuickCss = true;
enabledThemeLinks = [
"https://raw.githubusercontent.com/refact0r/midnight-discord/refs/heads/master/themes/midnight.theme.css"
];
enableOnlineThemes = true;
cloud = {
authenticated = false;
url = "https://cloud.equicord.org/";
settingsSync = false;
};
plugins = {
"EquicordHelper" = {
"enabled" = true;
"noMirroredCamera" = false;
"removeActivitySection" = false;
"showYourOwnActivityButtons" = false;
"forceRoleIcon" = false;
"restoreFileDownloadButton" = false;
"noModalAnimation" = false;
"disableAdoptTagPrompt" = false;
"jsonGateway" = false;
"hideVoiceIndicatorForMutedChannels" = false;
"noBulletPoints" = false;
"accountStandingButton" = false;
};
"NoTrack" = {
"enabled" = true;
"disableAnalytics" = true;
};
"NewPluginsManager" = {
enabled = true;
};
"BetterCommands" = {
enabled = true;
autoFillArguments = true;
allowNewlinesInCommands = true;
};
"BetterAudioPlayer" = {
enabled = true;
oscilloscope = true;
spectrograph = true;
oscilloscopeSolidColor = false;
oscilloscopeColor = "255, 255, 255";
spectrographSolidColor = false;
spectrographColor = "33, 150, 243";
};
"WebKeybinds" = {
enabled = true;
};
"WebScreenShareFixes" = {
enabled = true;
};
"FullUserInChatbox" = {
enabled = true;
};
"ForceOwnerCrown" = {
enabled = true;
};
"FixYoutubeEmbeds" = {
enabled = true;
};
"FakeNitro" = {
enabled = true;
enableEmojiBypass = true;
emojiSize = 48;
transformEmojis = true;
enableStickerBypass = true;
stickerSize = 160;
transformStickers = true;
transformCompoundSentence = false;
enableStreamQualityBypass = true;
useStickerHyperLinks = true;
useEmojiHyperLinks = true;
hyperLinkText = "{{NAME}}";
disableEmbedPermissionCheck = false;
};
"DisableCallIdle" = {
enabled = true;
};
"BetterUploadButton" = {
enabled = true;
};
"BetterSettings" = {
enabled = true;
disableFade = true;
organizeMenu = true;
eagerLoad = true;
};
"BetterGifPicker" = {
enabled = true;
keepOpen = false;
};
"Settings" = {
enabled = true;
settingsLocation = "aboveNitro";
includeVencordInfoWhenCopying = true;
};
"Declutter" = {
enabled = true;
removeAvatarDecoration = false;
removeNameplate = false;
removeProfileEffect = false;
removeClanTag = false;
alwaysShowUsername = true;
programs.equibop.enable = true;
removeShopAboveDms = true;
removeQuestsAboveDms = true;
};
"AltKrispSwitch" = {
enabled = true;
};
"ClearURLs" = {
enabled = true;
};
"YoutubeAdblock" = {
enabled = true;
};
};
};
extraQuickCss = ''
/* color options */
:root {
--colors: on; /* off: discord default colors, on: midnight custom colors */
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
/* text colors */
--text-0: var(--bg-4); /* text on colored elements */
--text-1: hsl(220, 45%, 95%); /* other normally white text */
--text-2: hsl(220, 25%, 75%); /* headings and important text */
--text-3: hsl(220, 20%, 65%); /* normal text */
--text-4: hsl(220, 15%, 55%); /* icon buttons and channels */
--text-5: hsl(220, 15%, 45%); /* muted channels/chats and timestamps */
};
'';
};
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
'';
};
}
+2 -9
View File
@@ -19,11 +19,7 @@
};
modules = [
{
type = "separator";
string = " ";
times = 0;
}
"break"
{
type = "title";
color = {
@@ -40,10 +36,6 @@
type = "os";
format = "{pretty-name}";
}
{
type = "host";
format = "{version}";
}
{
type = "kernel";
}
@@ -109,6 +101,7 @@
}
{
type = "localip";
key = "Local IP";
showIpv4 = true;
showIpv6 = false;
showMac = false;
+10
View File
@@ -181,6 +181,16 @@ in {
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 = [
+37 -103
View File
@@ -15,120 +15,54 @@
];
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
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
ln -s /home/grey/nixos/assets/expose-air/wallpapers/ExposeAir /home/grey/.local/share/wallpapers/ExposeAir
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
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
ln -s /home/grey/nixos/assets/OxygenDarkEdit.colors /home/grey/.local/share/color-schemes/OxygenDarkEdit.colors
fi
ln -s /home/grey/nixos/assets/dotfiles/takamaki/OxygenDarkEdit.colors /home/grey/.local/share/color-schemes/OxygenDarkEdit.colors
if [ ! -f /home/grey/.config/oxygenrc ]; then
ln -s /home/grey/nixos/assets/oxygenrc /home/grey/.config/oxygenrc
fi
if [ ! -d /home/grey/.local/share/plasma/desktoptheme/exposeair ]; then
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
ln -s /home/grey/nixos/assets/expose-air/desktoptheme/exposeair /home/grey/.local/share/plasma/desktoptheme/exposeair
fi
ln -s /home/grey/nixos/assets/expose-air/desktoptheme/exposeair /home/grey/.local/share/plasma/desktoptheme/exposeair
'';
};
programs.plasma = {
enable = true;
overrideConfig = true;
session.sessionRestore.restoreOpenApplicationsOnLogin = "startWithEmptySession";
input.keyboard.numlockOnStartup = "on";
workspace = {
clickItemTo = "select";
colorScheme = "OxygenDarkEdit";
cursor = {
size = 22;
theme = "Bibata-Modern-Ice";
};
iconTheme = "Papirus-Dark";
theme = "exposeair";
wallpaper = "/home/grey/.local/share/wallpapers/ExposeAir/contents/images/2560x1440.png";
windowDecorations = {
library = "org.kde.oxygen";
theme = "oxygen";
};
soundTheme = "oxygen";
};
hotkeys.commands."rebuild-flake" = {
name = "Rebuild NixOS Flake";
key = "Meta+Z";
command = "kitty --hold bash -c \"nh os switch /home/grey/nixos; if [ \\$? == 0 ]; then exit; fi\"";
};
shortcuts = {
plasmashell = {
"Show Activity Switcher" = "none";
"manage activities" = "none";
};
kwin = {
"Close Window" = "Meta+Q";
"Window Close" = "Meta+Q";
};
"services/kitty.desktop"."_launch" = "Meta+Return";
};
panels = [
{
location = "bottom";
widgets = [
{
name = "org.kde.plasma.kickoff";
config = {
General = {
icon = "nix-snowflake";
};
};
}
{
name = "org.kde.plasma.icontasks";
config = {
iconsOnly = true;
launchers = [
"applications:zen-beta.desktop"
"applications:thunderbird.desktop"
"applications:org.kde.dolphin.desktop"
"applications:equibop.desktop"
"applications:spotify.desktop"
"applications:steam.desktop"
"applications:org.prismlauncher.PrismLauncher.desktop"
"applications:obsidian.desktop"
"applications:github-desktop.desktop"
"applications:unityhub.desktop"
"applications:org.godotengine.Godot4.6.desktop"
"applications:code.desktop"
"applications:idea.desktop"
"applications:clion.desktop"
"applications:com.obsproject.Studio.desktop"
"applications:proton.vpn.app.gtk.desktop"
"applications:systemsettings.desktop"
"applications:io.ente.auth.desktop"
"applications:io.github.ilya_zlobintsev.LACT.desktop"
];
};
}
"org.kde.plasma.marginsseparator"
"org.kde.plasma.systemtray"
"org.kde.plasma.digitalclock"
"org.kde.plasma.showdesktop"
];
height = 48;
}
];
};
programs.plasma.enable = true;
}
+24 -82
View File
@@ -1,89 +1,31 @@
{
config,
pkgs,
lib,
...
}: {
programs.vscode = {
enable = true;
package = pkgs.vscode-with-extensions.override {
vscodeExtensions = with pkgs.vscode-extensions; [
bbenoist.nix
] ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [
{
name = "patternstore";
publisher = "jdunkel";
version = "0.1.12";
sha256 = "sha256-JtVtBFZPsSMDC9040UE8gTg4YmNLVFQJz0NGa0+QBqA=";
}
{
name = "kdl";
publisher = "kdl-org";
version = "2.1.3";
sha256 = "sha256-Jssmb5owrgNWlmLFSKCgqMJKp3sPpOrlEUBwzZSSpbM=";
}
];
};
profiles.default = {
enableUpdateCheck = false;
userSettings = {
"[nix]" = {
"editor.tabSize" = 2;
};
"chat.disableAIFeatures" = true;
"workbench.welcomePage.walkthroughs.openOnInstall" = false;
"patternStore.savedPatterns" = [
{
label = "convert JSON pairs to Nix format";
find = "\"(\\w+)\": (.+?),?$";
replace = "$1 = $2;";
flags = {
"isRegex" = true;
"isCaseSensitive" = false;
"matchWholeWord" = false;
"isMultiline" = false;
};
scope = "global";
}
{
label = "convert JSON opening bracket to Nix format";
find = "(\"\\w+\"): \\{$";
replace = "$1 = {";
flags = {
"isRegex" = true;
"isCaseSensitive" = false;
"matchWholeWord" = false;
"isMultiline" = false;
};
scope = "global";
}
{
label = "convert JSON closing bracket to Nix format";
find = "\\},?$";
replace = "};";
flags = {
"isRegex" = true;
"isCaseSensitive" = false;
"matchWholeWord" = false;
"isMultiline" = false;
};
scope = "global";
}
];
"search.exclude" = {
"**/flake.lock" = true;
"**/assets/**" = true;
};
};
keybindings = [
{
command = "workbench.action.closeActiveEditor";
key = "alt+q";
}
{
command = "workbench.action.files.newFile";
key = "alt+enter";
}
];
};
programs.vscode.enable = true;
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
'';
linkVsCodeExtensions = lib.hm.dag.entryAfter ["writeBoundary"] ''
#!/bin/bash
if [ -d /home/grey/.vscode/extensions ]; then
rm -rf /home/grey/.vscode/extensions
fi
ln -s /home/grey/nixos/assets/dotfiles/vscode-extensions /home/grey/.vscode/extensions
'';
};
}
+11 -94
View File
@@ -1,6 +1,7 @@
{
pkgs,
inputs,
lib,
...
}: let
firefox-addons = with pkgs; inputs.firefox-addons.packages.${system};
@@ -9,103 +10,19 @@ in {
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 ];
policies = {
AIControls.Default = {
Value = "blocked";
Locked = true;
};
AutofillAddressEnabled = false;
AutofillCreditCardEnabled = false;
DisableAppUpdate = true;
DisableFeedbackCommands = true;
DisableFirefoxStudies = true;
DisablePocket = true;
DisableTelemetry = true;
NoDefaultBookmarks = true;
OfferToSaveLogins = false;
EnableTrackingProtection = {
Value = true;
Locked = true;
Cryptomining = true;
Fingerprinting = true;
};
Preferences = {
"browser.startup.homepage" = {
Value = "about:blank";
Status = "locked";
};
};
};
profiles.default = {
settings = {
"zen.urlbar.behavior" = "float";
"zen.welcome-screen.seen" = true;
};
extensions.packages = with firefox-addons; [
adnauseam
bitwarden
indie-wiki-buddy
pwas-for-firefox
];
search = {
force = true;
default = "ddg";
engines = {
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"];
};
};
};
keyboardShortcuts = [
{
id = "key_close";
key = "q";
modifiers = {
control = false;
alt = true;
};
}
{
id = "key_newNavigatorTab";
keycode = "VK_RETURN";
modifiers = {
control = false;
alt = true;
};
}
];
keyboardShortcutsVersion = 19;
};
};
}