server/programs/default.nix
2026-02-16 09:14:30 +01:00

257 lines
7.1 KiB
Nix

_: {
imports = [
./nvim
./fish
./kanata
./kitty
./tmux
./git
./jj
./niri
./zed
./firefox
];
custom.program.graphcial-packages = {
requirements = [ "graphical" ];
home-config =
{ pkgs, ... }:
{
home.packages = with pkgs; [
spotify
obsidian
element-desktop
chromium
bind.dnsutils
mpv
vlc
];
};
};
custom.program.discord = {
requirements = [ "graphical" ];
home-config =
{
config,
pkgs,
lib,
...
}:
let
disableFeatures = [
"WebRtcAllowInputVolumeAdjustment"
"ChromeWideEchoCancellation"
];
enableFeatures = [ ];
commandLineArgs =
lib.optionals (enableFeatures != [ ]) [
"--enable-features=${lib.concatStringsSep "," enableFeatures}"
]
++ lib.optionals (disableFeatures != [ ]) [
"--disable-features=${lib.concatStringsSep "," disableFeatures}"
];
joinedArgs = lib.concatStringsSep " " commandLineArgs;
in
{
home.file."${config.xdg.configHome}/discord/settings.json".source = pkgs.writeText "settings.json" (
lib.strings.toJSON (
let
endpoint = "https://inject.shelter.uwu.network/shelter+yt_ad_block+yt_embed_fix";
in
{
SKIP_HOST_UPDATE = true;
MINIMIZE_TO_TRAY = false;
OPEN_ON_STARTUP = false;
DANGEROUS_ENABLE_DEVTOOLS_ONLY_ENABLE_IF_YOU_KNOW_WHAT_YOURE_DOING = true;
enableHardwareAcceleration = true;
UPDATE_ENDPOINT = endpoint;
NEW_UPDATE_ENDPOINT = "${endpoint}/";
BACKGROUND_COLOR = "#2c2d32";
openasar = {
setup = true;
# using the performance preset breaks vaapi
cmdPreset = "balanced";
# quickstart is buggy and breaks discord sometimes.
quickstart = false;
# this css is made for discord compact mode. if you're not using that, stuff won't align!!
css =
# css
''
/* Hide nitro begging */
@import url("https://raw.codeberg.page/AllPurposeMat/Disblock-Origin/DisblockOrigin.theme.css");
/* Hide the Visual Refresh title bar */
.visual-refresh {
/* Hide the bar itself */
--custom-app-top-bar-height: 0px !important;
/* Title bar buttons are still visible so hide them too */
div.base__5e434 > div.bar_c38106 {
display: none;
}
/* Bring the server list down a few pixels */
ul[data-list-id="guildsnav"] > div.itemsContainer_ef3116 {
margin-top: 8px;
}
}
:root {
/* Disblock settings */
--display-clan-tags: none;
--display-active-now: none;
--display-hover-reaction-emoji: none;
--bool-show-name-gradients: false;
}
/* Make "Read All" vencord button text smaller */
button.vc-ranb-button {
font-size: 9.5pt;
font-weight: normal;
}
/* Hide Discover button */
div[data-list-item-id="guildsnav___guild-discover-button"] {
display: none !important;
}
/* Hide voice settings menus in user panel */
div[class^="micButtonParent__"] button[role="switch"] {
border-radius: var(--radius-sm);
& ~ button { display: none; }
}
/* Also reduce the gap between the buttons */
div.container__37e49 > div.buttons__37e49 {
gap: 1px;
}
'';
};
}
)
);
home.packages = with pkgs; [
(discord.override {
# we disable updates in settings.json
disableUpdates = false;
commandLineArgs = joinedArgs;
withTTS = false;
enableAutoscroll = true;
withOpenASAR = true;
})
];
};
};
custom.program.fun-packages = {
requirements = [ "fun" ];
home-config =
{ pkgs, ... }:
{
home.packages = with pkgs; [
custom.p1n3appl3.tab
prismlauncher
];
};
};
custom.program.cli-packages = {
requirements = [ "cli" ];
home-config =
{ config, pkgs, ... }:
{
home.packages = with pkgs; [
# general cli tools
sops
fzf
htop
ncdu
psmisc
ripgrep
rsync
zoxide
tmux
direnv
atuin
rcon
lix
nix-output-monitor
wget
comma
unzip
pciutils
# dev tools
gdb
clang-tools
rustup
git
python3
unixtools.xxd
net-tools
sqlite-interactive
tokei
just
uv
llvmPackages.bintools
(writeShellScriptBin "nas" ''
mkdir -p ~/Documents/nas
${sshfs}/bin/sshfs fili:/storage/storage/data/ ~/Documents/nas
cd ~/Documents/nas
'')
];
# Set up direnv
programs.direnv = {
package = pkgs.direnv;
silent = false;
nix-direnv = {
enable = true;
package = pkgs.nix-direnv;
};
};
home.file = {
"${config.xdg.configHome}/sqlite3/sqliterc".source = pkgs.writeText ".sqliterc" ''
.mode box
'';
};
};
};
custom.program.homedirs = {
home-config =
{ config, ... }:
{
home.file = {
"dl".source = config.lib.file.mkOutOfStoreSymlink "${config.xdg.userDirs.download}";
"doc".source = config.lib.file.mkOutOfStoreSymlink "${config.xdg.userDirs.documents}";
};
};
};
custom.program.xdg = {
home-config =
{ config, ... }:
{
xdg = {
enable = true;
configHome = "${config.home.homeDirectory}/.config";
userDirs = {
enable = true;
documents = "${config.home.homeDirectory}/Documents";
desktop = "${config.home.homeDirectory}/Documents";
download = "${config.home.homeDirectory}/Downloads";
music = "${config.home.homeDirectory}/Documents/personal/music";
pictures = "${config.home.homeDirectory}/Documents/personal/pictures";
};
mime.enable = true;
};
};
};
}