Initial commit
This commit is contained in:
5
home/programs/cli/ai.nix
Normal file
5
home/programs/cli/ai.nix
Normal file
@@ -0,0 +1,5 @@
|
||||
{pkgs, ...}: {
|
||||
home.packages = with pkgs; [
|
||||
gemini-cli
|
||||
];
|
||||
}
|
||||
21
home/programs/cli/bat.nix
Normal file
21
home/programs/cli/bat.nix
Normal file
@@ -0,0 +1,21 @@
|
||||
{pkgs, ...}: {
|
||||
programs.bat = {
|
||||
enable = true;
|
||||
# config.theme = "Catppuccin Mocha";
|
||||
themes = {
|
||||
"Catppuccin Mocha" = {
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "catppuccin";
|
||||
repo = "bat";
|
||||
rev = "6810349";
|
||||
sha256 = "1y5sfi7jfr97z1g6vm2mzbsw59j1jizwlmbadvmx842m0i5ak5ll";
|
||||
};
|
||||
file = "themes/Catppuccin Mocha.tmTheme";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
programs.zsh.shellAliases = {
|
||||
cat = "bat";
|
||||
};
|
||||
}
|
||||
15
home/programs/cli/btop.nix
Normal file
15
home/programs/cli/btop.nix
Normal file
@@ -0,0 +1,15 @@
|
||||
{pkgs, ...}: {
|
||||
programs.btop = {
|
||||
enable = true;
|
||||
# settings = {
|
||||
# color_theme = "catppuccin-mocha";
|
||||
# theme_background = false;
|
||||
# };
|
||||
themes = {
|
||||
catppuccin-mocha = pkgs.fetchurl {
|
||||
url = "https://raw.githubusercontent.com/catppuccin/btop/f437574b600f1c6d932627050b15ff5153b58fa3/themes/catppuccin_mocha.theme";
|
||||
sha256 = "0i263xwkkv8zgr71w13dnq6cv10bkiya7b06yqgjqa6skfmnjx2c";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
5
home/programs/cli/debugging.nix
Normal file
5
home/programs/cli/debugging.nix
Normal file
@@ -0,0 +1,5 @@
|
||||
{pkgs, ...}: {
|
||||
home.packages = with pkgs; [
|
||||
vscode-extensions.vadimcn.vscode-lldb
|
||||
];
|
||||
}
|
||||
13
home/programs/cli/default.nix
Normal file
13
home/programs/cli/default.nix
Normal file
@@ -0,0 +1,13 @@
|
||||
{
|
||||
imports = [
|
||||
./zoxide.nix
|
||||
./bat.nix
|
||||
./eza.nix
|
||||
./btop.nix
|
||||
./ssh.nix
|
||||
./fastfetch.nix
|
||||
./jq.nix
|
||||
./ai.nix
|
||||
./debugging.nix
|
||||
];
|
||||
}
|
||||
21
home/programs/cli/eza.nix
Normal file
21
home/programs/cli/eza.nix
Normal file
@@ -0,0 +1,21 @@
|
||||
{pkgs, ...}: {
|
||||
programs.eza = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
|
||||
colors = "auto";
|
||||
extraOptions = [
|
||||
"--classify"
|
||||
"--group-directories-first"
|
||||
];
|
||||
|
||||
theme = pkgs.fetchurl {
|
||||
url = "https://raw.githubusercontent.com/eza-community/eza-themes/17095bff4792eecd7f4f1ed8301b15000331c906/themes/catppuccin.yml";
|
||||
sha256 = "0hpchiiadyxfl5rx12msww94jbj5hvqma5b2jgcvllv1b2pd1ghd";
|
||||
};
|
||||
};
|
||||
|
||||
programs.zsh.shellAliases = {
|
||||
ls = "eza";
|
||||
};
|
||||
}
|
||||
47
home/programs/cli/fastfetch.nix
Normal file
47
home/programs/cli/fastfetch.nix
Normal file
@@ -0,0 +1,47 @@
|
||||
{
|
||||
programs.fastfetch = {
|
||||
enable = true;
|
||||
|
||||
settings = {
|
||||
display = {
|
||||
separator = " = ";
|
||||
};
|
||||
|
||||
modules = let
|
||||
mkLiteral = type: key: format: {
|
||||
inherit type;
|
||||
key = " ${key}";
|
||||
format = "${format};";
|
||||
};
|
||||
mkString = type: key: format: mkLiteral type key "\"${format}\"";
|
||||
emptyLine = {
|
||||
type = "custom";
|
||||
format = "";
|
||||
};
|
||||
in [
|
||||
{
|
||||
type = "title";
|
||||
format = "{host-name-colored}.users.{user-name-colored} = {"; # {}
|
||||
}
|
||||
|
||||
(mkString "host" "host" "{family}")
|
||||
(mkString "cpu" "cpu" "{name} ({cores-physical}C/{cores-logical}T) @ {freq-max}")
|
||||
(mkString "memory" "memory" "{used}/{total} ({percentage})")
|
||||
(mkString "disk" "disk" "{name} ({filesystem}) {size-used}/{size-total} ({size-percentage})")
|
||||
(mkString "os" "os" "{name} {release}")
|
||||
(mkString "kernel" "kernel" "{sysname} {arch} {display-version}")
|
||||
(mkString "localip" "ip" "{ipv4} {ifname}") # last seen
|
||||
|
||||
emptyLine
|
||||
|
||||
(mkString "wm" "wm" "{pretty-name} {version} ({protocol-name})")
|
||||
(mkString "editor" "editor" "{name} {version}")
|
||||
|
||||
{
|
||||
type = "custom";
|
||||
format = "};";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
3
home/programs/cli/jq.nix
Normal file
3
home/programs/cli/jq.nix
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
programs.jq.enable = true;
|
||||
}
|
||||
32
home/programs/cli/ssh.nix
Normal file
32
home/programs/cli/ssh.nix
Normal file
@@ -0,0 +1,32 @@
|
||||
{
|
||||
programs.ssh = {
|
||||
enable = true;
|
||||
enableDefaultConfig = false;
|
||||
|
||||
matchBlocks = {
|
||||
"*" = {
|
||||
identityFile = "~/.ssh/id_rsa";
|
||||
};
|
||||
"homelab" = {
|
||||
hostname = "46.5.154.149";
|
||||
user = "nix";
|
||||
};
|
||||
"hyperion" = {
|
||||
hostname = "192.168.178.55";
|
||||
user = "demenik";
|
||||
};
|
||||
"sgi-uni-ulm" = {
|
||||
hostname = "login.informatik.uni-ulm.de";
|
||||
user = "db56";
|
||||
};
|
||||
"github.com" = {
|
||||
user = "git";
|
||||
identitiesOnly = true;
|
||||
};
|
||||
"gitlab.uni-ulm.de" = {
|
||||
user = "git";
|
||||
identitiesOnly = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
10
home/programs/cli/zoxide.nix
Normal file
10
home/programs/cli/zoxide.nix
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
programs.zoxide = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
};
|
||||
|
||||
programs.zsh.shellAliases = {
|
||||
cd = "z";
|
||||
};
|
||||
}
|
||||
44
home/programs/default.nix
Normal file
44
home/programs/default.nix
Normal file
@@ -0,0 +1,44 @@
|
||||
{
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
./cli
|
||||
|
||||
./firefox.nix
|
||||
./qbittorrent.nix
|
||||
|
||||
./nmgui.nix
|
||||
./overskride.nix
|
||||
./rofi.nix
|
||||
./emulator.nix
|
||||
./vpn.nix
|
||||
|
||||
./spicetify.nix
|
||||
|
||||
./thunderbird.nix
|
||||
./obsidian.nix
|
||||
./office.nix
|
||||
|
||||
./vesktop.nix
|
||||
];
|
||||
|
||||
home.packages = with pkgs; [
|
||||
inputs.bettersoundcloud.packages.${system}.default
|
||||
|
||||
gimp
|
||||
aseprite
|
||||
|
||||
nautilus
|
||||
nautilus-open-any-terminal
|
||||
rquickshare
|
||||
flameshot
|
||||
|
||||
openvpn3
|
||||
|
||||
libreoffice
|
||||
|
||||
prismlauncher
|
||||
];
|
||||
}
|
||||
7
home/programs/emulator.nix
Normal file
7
home/programs/emulator.nix
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
wayland.windowManager.hyprland.settings.windowrulev2 = map (rule: "${rule}, class:^(Emulator)$") [
|
||||
"float"
|
||||
"keepaspectratio"
|
||||
"pin"
|
||||
];
|
||||
}
|
||||
155
home/programs/firefox.nix
Normal file
155
home/programs/firefox.nix
Normal file
@@ -0,0 +1,155 @@
|
||||
{lib, ...}: {
|
||||
home.sessionVariables."BROWSER" = "firefox";
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
env = ["BROWSER,firefox"];
|
||||
|
||||
windowrulev2 =
|
||||
[
|
||||
"workspace 2, class:^(firefox)$"
|
||||
"fullscreenstate -1 2, class:^(firefox)$"
|
||||
"float, title:^(Firefox - Sharing Indicator)$"
|
||||
"suppressevent maximize, class:^(firefox)$"
|
||||
]
|
||||
++ map (rule: "${rule}, class:^(firefox)$, title:^(Picture-in-Picture)$") [
|
||||
"float"
|
||||
"keepaspectratio"
|
||||
"pin"
|
||||
"move 100%-w-5 100%-w-5"
|
||||
];
|
||||
};
|
||||
|
||||
xdg = {
|
||||
mimeApps.defaultApplications = builtins.listToAttrs (builtins.map (key: {
|
||||
name = key;
|
||||
value = ["firefox.desktop"];
|
||||
}) [
|
||||
"x-scheme-handler/http"
|
||||
"x-scheme-handler/https"
|
||||
|
||||
"text/html"
|
||||
"text/xml"
|
||||
"application/pdf"
|
||||
]);
|
||||
};
|
||||
|
||||
programs.firefox = {
|
||||
enable = true;
|
||||
profiles.default = {
|
||||
name = "Default";
|
||||
|
||||
settings = {
|
||||
"extensions.pocket.enabled" = false;
|
||||
|
||||
"browser.uidensity" = 0;
|
||||
"browser.urlbar.suggest.engines" = false;
|
||||
"browser.urlbar.suggest.openpage" = false;
|
||||
"browser.urlbar.suggest.bookmark" = true;
|
||||
"browser.toolbars.bookmarks.visibility" = "only show on new tab";
|
||||
"browser.urlbar.suggest.addons" = false;
|
||||
"browser.urlbar.suggest.pocket" = false;
|
||||
|
||||
"widget.use-xdg-desktop-portal.file-picker" = 1;
|
||||
|
||||
"browser.formfill.enable" = false;
|
||||
"extensions.formautofill.addresses.enabled" = false;
|
||||
};
|
||||
|
||||
search = {
|
||||
force = true;
|
||||
|
||||
default = "ud";
|
||||
order = [
|
||||
"ud"
|
||||
|
||||
"no"
|
||||
"np"
|
||||
"hm"
|
||||
|
||||
"nv"
|
||||
"lsp"
|
||||
|
||||
"crates"
|
||||
];
|
||||
|
||||
engines = let
|
||||
mkParams = lib.mapAttrsToList (name: value: {
|
||||
inherit name value;
|
||||
});
|
||||
|
||||
mkEngine = {
|
||||
icon,
|
||||
template,
|
||||
params ? {},
|
||||
definedAliases ? [],
|
||||
}: {
|
||||
inherit icon definedAliases;
|
||||
urls = [
|
||||
{
|
||||
inherit template;
|
||||
params = mkParams params;
|
||||
}
|
||||
];
|
||||
};
|
||||
in {
|
||||
ud = mkEngine {
|
||||
icon = "https://www.gstatic.com/images/branding/searchlogo/ico/favicon.ico";
|
||||
template = "https://unduck.demenik.tech";
|
||||
params = {q = "{searchTerms}";};
|
||||
};
|
||||
|
||||
np = mkEngine {
|
||||
icon = "https://search.nixos.org/images/nix-logo.png";
|
||||
definedAliases = ["@np"];
|
||||
template = "https://search.nixos.org/packages";
|
||||
params = {
|
||||
type = "packages";
|
||||
channel = "unstable";
|
||||
query = "{searchTerms}";
|
||||
};
|
||||
};
|
||||
no = mkEngine {
|
||||
icon = "https://search.nixos.org/images/nix-logo.png";
|
||||
definedAliases = ["@no"];
|
||||
template = "https://search.nixos.org/options";
|
||||
params = {
|
||||
channel = "unstable";
|
||||
query = "{searchTerms}";
|
||||
};
|
||||
};
|
||||
hm = mkEngine {
|
||||
icon = "https://home-manager-options.extranix.com/images/favicon.png";
|
||||
definedAliases = ["@hm"];
|
||||
template = "https://home-manager-options.extranix.com";
|
||||
params = {
|
||||
release = "master";
|
||||
query = "{searchTerms}";
|
||||
};
|
||||
};
|
||||
|
||||
nv = mkEngine {
|
||||
icon = "https://raw.githubusercontent.com/nix-community/nixvim/main/assets/nixvim_logo.svg";
|
||||
definedAliases = ["@nv"];
|
||||
template = "https://nix-community.github.io/nixvim/";
|
||||
params = {
|
||||
search = "{searchTerms}";
|
||||
};
|
||||
};
|
||||
lsp = mkEngine {
|
||||
icon = "https://github.com/neovim.png";
|
||||
definedAliases = ["@lsp"];
|
||||
template = "https://github.com/neovim/nvim-lspconfig/blob/master/doc/configs.md#{searchTerms}";
|
||||
};
|
||||
|
||||
crates = mkEngine {
|
||||
icon = "https://crates.io/assets/cargo.png";
|
||||
definedAliases = ["@crates"];
|
||||
template = "https://crates.io/search";
|
||||
params = {
|
||||
q = "{searchTerms}";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
11
home/programs/nmgui.nix
Normal file
11
home/programs/nmgui.nix
Normal file
@@ -0,0 +1,11 @@
|
||||
{pkgs, ...}: {
|
||||
home.packages = with pkgs; [
|
||||
nmgui
|
||||
];
|
||||
|
||||
wayland.windowManager.hyprland.settings.windowrulev2 = map (rule: "${rule}, class:^(com.network.manager)$") [
|
||||
"float"
|
||||
"size 500 600"
|
||||
"center"
|
||||
];
|
||||
}
|
||||
7
home/programs/obsidian.nix
Normal file
7
home/programs/obsidian.nix
Normal file
@@ -0,0 +1,7 @@
|
||||
{pkgs, ...}: {
|
||||
home.packages = with pkgs; [obsidian];
|
||||
|
||||
wayland.windowManager.hyprland.settings.windowrulev2 = [
|
||||
"workspace 1, class:^(obsidian)$"
|
||||
];
|
||||
}
|
||||
64
home/programs/office.nix
Normal file
64
home/programs/office.nix
Normal file
@@ -0,0 +1,64 @@
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}: let
|
||||
catppuccin = {
|
||||
flavour = "mocha";
|
||||
accent = "mauve";
|
||||
socHash = "sha256-c7BIwKlwUpD+rLKQQi43mHi2s/hlNkxPE+eX7iWb2vI=";
|
||||
};
|
||||
|
||||
themeName = "catppuccin-${catppuccin.flavour}-${catppuccin.accent}";
|
||||
themeUrl = "https://raw.githubusercontent.com/catppuccin/libreoffice/main/themes/${catppuccin.flavour}/${catppuccin.accent}/${themeName}.soc";
|
||||
|
||||
themeFile = pkgs.fetchurl {
|
||||
url = themeUrl;
|
||||
hash = catppuccin.socHash;
|
||||
};
|
||||
in {
|
||||
home.packages = with pkgs; [libreoffice];
|
||||
|
||||
xdg.configFile."libreoffice/4/user/config/catppuccin-mocha-mauve.soc" = {
|
||||
source = themeFile;
|
||||
executable = false;
|
||||
};
|
||||
|
||||
# https://github.com/catppuccin/libreoffice/blob/main/scripts/install_theme.sh (edited for nix)
|
||||
# home.activation.installCatppuccinLibreofficeTheme = ''
|
||||
# PATH=${pkgs.lib.makeBinPath [pkgs.gawk pkgs.gnugrep pkgs.findutils pkgs.coreutils pkgs.gettext]}
|
||||
|
||||
# echo "Applying Catppuccin theme to LibreOffice..."
|
||||
|
||||
# configFile=$(find "${config.xdg.configHome}/libreoffice" -path '*/user/registrymodifications.xcu' -print -quit)
|
||||
|
||||
# if [[ -z "$configFile" || ! -f "$configFile" ]]; then
|
||||
# echo "LibreOffice registrymodifications.xcu not found. Skipping."
|
||||
# exit 0
|
||||
# fi
|
||||
|
||||
# echo "Found config at: $configFile"
|
||||
|
||||
# if grep -q 'oor:name="${themeName}"' "$configFile"; then
|
||||
# echo "Theme '${themeName}' is already installed. Nothing to do."
|
||||
# exit 0
|
||||
# fi
|
||||
|
||||
# echo "Injecting theme '${themeName}' into $configFile..."
|
||||
|
||||
# gawk -i inplace -v themePath="${themeFile}" '
|
||||
# BEGIN {
|
||||
# while ((getline line < themePath) > 0) {
|
||||
# themeContent = themeContent line "\n"
|
||||
# }
|
||||
# close(themePath)
|
||||
# }
|
||||
# /<\/oor:items>/ {
|
||||
# printf "%s", themeContent
|
||||
# }
|
||||
# { print }
|
||||
# ' "$configFile"
|
||||
|
||||
# echo "Successfully applied theme."
|
||||
# '';
|
||||
}
|
||||
11
home/programs/overskride.nix
Normal file
11
home/programs/overskride.nix
Normal file
@@ -0,0 +1,11 @@
|
||||
{pkgs, ...}: {
|
||||
home.packages = with pkgs; [
|
||||
overskride
|
||||
];
|
||||
|
||||
wayland.windowManager.hyprland.settings.windowrulev2 = map (rule: "${rule}, class:^(io.github.kaii_lb.Overskride)$") [
|
||||
"float"
|
||||
"size 850 650"
|
||||
"center"
|
||||
];
|
||||
}
|
||||
22
home/programs/qbittorrent.nix
Normal file
22
home/programs/qbittorrent.nix
Normal file
@@ -0,0 +1,22 @@
|
||||
{pkgs, ...}: {
|
||||
home.packages = with pkgs; [qbittorrent];
|
||||
|
||||
xdg.mimeApps = {
|
||||
enable = true;
|
||||
defaultApplications = {
|
||||
"x-scheme-handler/magnet" = ["org.qbittorrent.qBittorrent.desktop"];
|
||||
};
|
||||
};
|
||||
|
||||
programs.firefox.policies.Handlers = {
|
||||
schemes.magnet = {
|
||||
action = "useHelperApp";
|
||||
handlers = [
|
||||
{
|
||||
name = "qBittorrent";
|
||||
path = "${pkgs.qbittorrent}/share/application/org.qbittorrent.qBittorrent.desktop";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
123
home/programs/rofi.nix
Normal file
123
home/programs/rofi.nix
Normal file
@@ -0,0 +1,123 @@
|
||||
{config, ...}: {
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
bind = [
|
||||
"SUPER, Space, exec, rofi -show drun -show-icons"
|
||||
];
|
||||
|
||||
windowrulev2 = map (rule: "${rule}, class:^(Rofi)$") [
|
||||
"float"
|
||||
"dimaround"
|
||||
"pin"
|
||||
"stayfocused"
|
||||
"persistentsize"
|
||||
"decorate 0"
|
||||
"center 1"
|
||||
];
|
||||
};
|
||||
|
||||
stylix.targets.rofi.enable = false;
|
||||
|
||||
programs.rofi = {
|
||||
enable = true;
|
||||
extraConfig = {
|
||||
modi = "drun,run";
|
||||
display-drun = "drun";
|
||||
display-run = "run";
|
||||
};
|
||||
|
||||
font = "sans-serif 12";
|
||||
|
||||
theme = let
|
||||
inherit (config.lib.formats.rasi) mkLiteral;
|
||||
in {
|
||||
"*" = let
|
||||
inherit (config.lib.stylix) colors;
|
||||
in {
|
||||
bg0 = mkLiteral "#${colors.base00}F2";
|
||||
bg1 = mkLiteral "#${colors.base01}";
|
||||
bg2 = mkLiteral "#${colors.base02}";
|
||||
bg3 = mkLiteral "#${colors.base0E}";
|
||||
fg0 = mkLiteral "#${colors.base05}";
|
||||
fg1 = mkLiteral "#${colors.base04}";
|
||||
fg2 = mkLiteral "#${colors.base03}";
|
||||
fg3 = mkLiteral "#${colors.base02}";
|
||||
|
||||
background-color = mkLiteral "transparent";
|
||||
text-color = mkLiteral "@fg0";
|
||||
|
||||
margin = mkLiteral "0px";
|
||||
padding = mkLiteral "0px";
|
||||
spacing = mkLiteral "0px";
|
||||
};
|
||||
|
||||
"window" = {
|
||||
location = mkLiteral "north";
|
||||
y-offset = mkLiteral "calc(50% - 176px)";
|
||||
width = 480;
|
||||
border-radius = mkLiteral "8px";
|
||||
|
||||
background-color = mkLiteral "@bg0";
|
||||
};
|
||||
|
||||
"mainbox".padding = mkLiteral "12px";
|
||||
|
||||
"inputbar" = {
|
||||
background-color = mkLiteral "@bg1";
|
||||
border-color = mkLiteral "@bg3";
|
||||
|
||||
border = mkLiteral "2px";
|
||||
border-radius = mkLiteral "8px";
|
||||
|
||||
padding = mkLiteral "8px 16px";
|
||||
spacing = mkLiteral "8px";
|
||||
children = map mkLiteral ["prompt" "entry"];
|
||||
};
|
||||
|
||||
"prompt".text-color = mkLiteral "@fg2";
|
||||
|
||||
"entry" = {
|
||||
placeholder = " Search...";
|
||||
placeholder-color = mkLiteral "@fg3";
|
||||
};
|
||||
|
||||
"message" = {
|
||||
margin = mkLiteral "12px 0 0";
|
||||
border-radius = mkLiteral "8px";
|
||||
border-color = mkLiteral "@bg2";
|
||||
background-color = mkLiteral "@bg2";
|
||||
};
|
||||
|
||||
"textbox".padding = mkLiteral "8px 24px";
|
||||
|
||||
"listview" = {
|
||||
background-color = mkLiteral "transparent";
|
||||
|
||||
margin = mkLiteral "12px 0 0";
|
||||
lines = 8;
|
||||
columns = 1;
|
||||
|
||||
fixed-height = true;
|
||||
};
|
||||
|
||||
"element" = {
|
||||
padding = mkLiteral "8px 16px";
|
||||
spacing = mkLiteral "8px";
|
||||
border-radius = mkLiteral "8px";
|
||||
};
|
||||
|
||||
"element normal active".text-color = mkLiteral "@bg3";
|
||||
"element alternate active".text-color = mkLiteral "@bg3";
|
||||
"element selected normal, element selected active" = {
|
||||
text-color = mkLiteral "@bg0";
|
||||
background-color = mkLiteral "@bg3";
|
||||
};
|
||||
|
||||
"element-icon" = {
|
||||
size = mkLiteral "1em";
|
||||
vertical-align = mkLiteral "0.5";
|
||||
};
|
||||
|
||||
"element-text".text-color = mkLiteral "inherit";
|
||||
};
|
||||
};
|
||||
}
|
||||
34
home/programs/spicetify.nix
Normal file
34
home/programs/spicetify.nix
Normal file
@@ -0,0 +1,34 @@
|
||||
{
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
inherit (inputs) spicetify-nix;
|
||||
in {
|
||||
imports = [spicetify-nix.homeManagerModules.default];
|
||||
|
||||
programs.spicetify = let
|
||||
spicePkgs = spicetify-nix.legacyPackages.${pkgs.system};
|
||||
in {
|
||||
enable = true;
|
||||
|
||||
spotifyLaunchFlags = "--enable-features=UseOzonePlatform --ozone-platform=wayland";
|
||||
|
||||
enabledExtensions = with spicePkgs.extensions; [
|
||||
keyboardShortcut
|
||||
shuffle
|
||||
groupSession
|
||||
fullAlbumDate
|
||||
showQueueDuration
|
||||
betterGenres
|
||||
lastfm
|
||||
playNext
|
||||
volumePercentage
|
||||
allOfArtist
|
||||
];
|
||||
};
|
||||
|
||||
wayland.windowManager.hyprland.settings.windowrulev2 = [
|
||||
"workspace 3, class:^(Spotify)$"
|
||||
];
|
||||
}
|
||||
34
home/programs/thunderbird.nix
Normal file
34
home/programs/thunderbird.nix
Normal file
@@ -0,0 +1,34 @@
|
||||
{pkgs, ...}: {
|
||||
programs.thunderbird = {
|
||||
enable = true;
|
||||
|
||||
profiles.default = {
|
||||
isDefault = true;
|
||||
|
||||
settings = {
|
||||
"mail.ui.folderpane.view" = 2;
|
||||
# "mail.account.special_folders.global_inbox" = 1;
|
||||
"extensions.autoDisableScopes" = 0;
|
||||
};
|
||||
|
||||
extensions = let
|
||||
catppuccin-theme = pkgs.stdenv.mkDerivation {
|
||||
name = "catppuccin-thunderbird";
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "catppuccin";
|
||||
repo = "thunderbird";
|
||||
rev = "0289f3bd9566f9666682f66a3355155c0d0563fc";
|
||||
hash = "sha256-07gT37m1+OhRTbUk51l0Nhx+I+tl1il5ayx2ow23APY=";
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out
|
||||
cp -r $src/themes/mocha/mocha-mauve.xpi $out/catppuccin-mocha-mauve.xpi
|
||||
'';
|
||||
};
|
||||
in [
|
||||
catppuccin-theme
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
369
home/programs/vesktop.nix
Normal file
369
home/programs/vesktop.nix
Normal file
@@ -0,0 +1,369 @@
|
||||
{config, ...}: let
|
||||
inherit (config.lib.stylix) colors;
|
||||
in {
|
||||
stylix.targets.vesktop.enable = false;
|
||||
|
||||
wayland.windowManager.hyprland.settings.windowrulev2 =
|
||||
[
|
||||
"workspace 4, class:^(vesktop)$"
|
||||
]
|
||||
++ map (rule: "${rule}, class:^(vesktop)$, title:^(Discord Popout)$") [
|
||||
"float"
|
||||
"size 640 360"
|
||||
"keepaspectratio"
|
||||
"pin"
|
||||
"move 100%-w-5 100%-w-5"
|
||||
];
|
||||
|
||||
programs.vesktop = {
|
||||
enable = true;
|
||||
|
||||
settings = {
|
||||
discordBranch = "stable";
|
||||
minimizeToTray = false;
|
||||
arRPC = true;
|
||||
splashColor = "#${colors.base0E}";
|
||||
splashBackground = "#${colors.base00}";
|
||||
};
|
||||
|
||||
vencord = {
|
||||
settings = {
|
||||
autoUpdate = true;
|
||||
autpUpdateNotification = true;
|
||||
useQuickCss = true;
|
||||
eagerPatches = false;
|
||||
enableReactDevtools = true;
|
||||
frameless = false;
|
||||
transparent = true;
|
||||
winCtrlQ = false;
|
||||
disableMinSize = true;
|
||||
winNativeTitleBar = false;
|
||||
|
||||
themeLinks = [
|
||||
"https://catppuccin.github.io/discord/dist/catppuccin-mocha-mauve.theme.css"
|
||||
];
|
||||
|
||||
notifications = {
|
||||
timeout = 5000;
|
||||
position = "bottom-right";
|
||||
useNative = "not-focused";
|
||||
logLimit = 50;
|
||||
};
|
||||
|
||||
cloud = {
|
||||
authenticated = false;
|
||||
url = "https://api.vencord.dev/";
|
||||
settingsSync = false;
|
||||
settingsSyncVersion = 0;
|
||||
};
|
||||
|
||||
plugins = {
|
||||
ChatInputButtonAPI.enabled = true;
|
||||
CommandsAPI.enabled = true;
|
||||
DynamicImageModalAPI.enabled = true;
|
||||
MemberListDecoratorsAPI.enabled = true;
|
||||
MessageAccessoriesAPI.enabled = true;
|
||||
MessageDecorationsAPI.enabled = true;
|
||||
MessageEventsAPI.enabled = true;
|
||||
MessagePopoverAPI.enabled = true;
|
||||
UserSettingsAPI.enabled = true;
|
||||
AlwaysTrust = {
|
||||
enabled = true;
|
||||
domain = true;
|
||||
file = true;
|
||||
};
|
||||
AnonymiseFileNames = {
|
||||
enabled = true;
|
||||
anonymiseByDefault = true;
|
||||
method = 2;
|
||||
randomisedLength = 7;
|
||||
consistent = "image";
|
||||
};
|
||||
BetterFolders = {
|
||||
enabled = true;
|
||||
sidebarAnim = false;
|
||||
sidebar = true;
|
||||
closeAllFolders = false;
|
||||
closeAllHomeButton = false;
|
||||
closeOthers = false;
|
||||
forceOpen = false;
|
||||
keepIcons = false;
|
||||
showFolderIcon = 1;
|
||||
};
|
||||
BetterGifAltText.enabled = true;
|
||||
BetterGifPicker.enabled = true;
|
||||
BetterSettings = {
|
||||
enabled = true;
|
||||
disableFade = true;
|
||||
organizeMenu = true;
|
||||
eagerLoad = true;
|
||||
};
|
||||
BetterUploadButton.enabled = true;
|
||||
BiggerStreamPreview.enabled = true;
|
||||
BlurNSFW = {
|
||||
enabled = true;
|
||||
blurAmount = 10;
|
||||
};
|
||||
CallTimer = {
|
||||
enabled = true;
|
||||
format = "stopwatch";
|
||||
};
|
||||
ClearURLs.enabled = true;
|
||||
ConsoleJanitor = {
|
||||
enabled = true;
|
||||
disableLoggers = false;
|
||||
disableSpotifyLogger = true;
|
||||
whitelistedLoggers = "GatewaySocket; Routing/Utils";
|
||||
};
|
||||
CopyEmojiMarkdown.enabled = true;
|
||||
CopyFileContents.enabled = true;
|
||||
CopyUserURLs.enabled = true;
|
||||
CrashHandler.enabled = true;
|
||||
Decor.enabled = true;
|
||||
DisableCallIdle.enabled = true;
|
||||
DontRoundMyTimestamps.enabled = true;
|
||||
FakeNitro = {
|
||||
enabled = true;
|
||||
enableEmojiBypass = true;
|
||||
emojiSize = 48;
|
||||
transformEmojis = true;
|
||||
enableStickerBypass = true;
|
||||
stickerSize = 160;
|
||||
transformStickers = true;
|
||||
transformCompoundSentence = false;
|
||||
enableStreamQualityBypass = true;
|
||||
useHyperLinks = true;
|
||||
hyperLinkText = "{{NAME}}";
|
||||
disableEmbedPermissionCheck = false;
|
||||
};
|
||||
FakeProfileThemes = {
|
||||
enabled = true;
|
||||
nitroFirst = true;
|
||||
};
|
||||
FavoriteEmojiFirst.enabled = true;
|
||||
FavoriteGifSearch.enabled = true;
|
||||
FixCodeblockGap.enabled = true;
|
||||
FixImagesQuality.enabled = true;
|
||||
FixSpotifyEmbeds = {
|
||||
enabled = true;
|
||||
volume = 10;
|
||||
};
|
||||
ForceOwnerCrown.enabled = true;
|
||||
FriendInvites.enabled = true;
|
||||
FriendsSince.enabled = true;
|
||||
FullSearchContext.enabled = true;
|
||||
GameActivityToggle = {
|
||||
enabled = true;
|
||||
oldIcon = false;
|
||||
};
|
||||
GifPaste.enabled = true;
|
||||
GreetStickerPicker = {
|
||||
enabled = true;
|
||||
greetMode = "Greet";
|
||||
};
|
||||
iLoveSpam.enabled = true;
|
||||
IgnoreActivities = {
|
||||
enabled = false;
|
||||
listMode = 0;
|
||||
idsList = "";
|
||||
ignorePlaying = false;
|
||||
ignoreStreaming = false;
|
||||
ignoreListening = false;
|
||||
ignoreWatching = false;
|
||||
ignoreCompeting = false;
|
||||
};
|
||||
ImplicitRelationships = {
|
||||
enabled = true;
|
||||
sortByAffinity = true;
|
||||
};
|
||||
MemberCount = {
|
||||
enabled = true;
|
||||
toolTip = true;
|
||||
memberList = true;
|
||||
};
|
||||
MessageClickActions = {
|
||||
enabled = true;
|
||||
enableDeleteOnClick = true;
|
||||
enableDoubleClickToEdit = true;
|
||||
enableDoubleClickToReply = true;
|
||||
requireModifier = false;
|
||||
};
|
||||
MessageLogger.enabled = true;
|
||||
MoreCommands.enabled = true;
|
||||
MoreKaomoji.enabled = true;
|
||||
MutualGroupDMs.enabled = true;
|
||||
NewGuildSettings = {
|
||||
enabled = true;
|
||||
guild = true;
|
||||
messages = 3;
|
||||
everyone = true;
|
||||
role = true;
|
||||
highlights = true;
|
||||
events = true;
|
||||
showAllChannels = true;
|
||||
};
|
||||
NoDevtoolsWarning.enabled = true;
|
||||
NoMaskedUrlPaste.enabled = true;
|
||||
NoMosaic = {
|
||||
enabled = false;
|
||||
inlineVideo = true;
|
||||
};
|
||||
NoOnboardingDelay.enabled = true;
|
||||
NoPendingCount = {
|
||||
enabled = true;
|
||||
friendRequest = false;
|
||||
messageRequest = false;
|
||||
};
|
||||
NoUnblockToJump.enabled = true;
|
||||
NSFWGateBypass.enabled = true;
|
||||
OnePingPerDM = {
|
||||
enabled = true;
|
||||
channelToAffect = "both_dms";
|
||||
allowMentions = false;
|
||||
allowEveryone = false;
|
||||
};
|
||||
OpenInApp = {
|
||||
enabled = true;
|
||||
spotify = true;
|
||||
steam = true;
|
||||
epic = true;
|
||||
tidal = true;
|
||||
itunes = true;
|
||||
};
|
||||
PauseInvitesForever.enabled = true;
|
||||
PermissionFreeWill = {
|
||||
enabled = true;
|
||||
lockout = true;
|
||||
onboarding = true;
|
||||
};
|
||||
PermissionsViewer.enabled = true;
|
||||
petpet.enabled = true;
|
||||
PictureInPicture.enabled = true;
|
||||
PinDMs.enabled = true;
|
||||
PlatformIndicators = {
|
||||
enabled = true;
|
||||
colorMobileIndicator = true;
|
||||
list = true;
|
||||
badges = true;
|
||||
messages = true;
|
||||
};
|
||||
ReactErrorDecoder.enabled = true;
|
||||
ReadAllNotificationsButton.enabled = true;
|
||||
RelationshipNotifier = {
|
||||
enabled = true;
|
||||
offlineRemovals = true;
|
||||
groups = true;
|
||||
servers = true;
|
||||
friends = true;
|
||||
friendRequestCancels = true;
|
||||
};
|
||||
ReverseImageSearch.enabled = true;
|
||||
ReviewDB = {
|
||||
enabled = true;
|
||||
notifyReviews = true;
|
||||
showWarning = true;
|
||||
hideTimestamps = false;
|
||||
hideBlockedUsers = true;
|
||||
};
|
||||
ServerInfo.enabled = true;
|
||||
ShikiCodeblocks = {
|
||||
enabled = true;
|
||||
theme = "https://raw.githubusercontent.com/shikijs/shiki/0b28ad8ccfbf2615f2d9d38ea8255416b8ac3043/packages/shiki/themes/dark-plus.json";
|
||||
tryHljs = "SECONDARY";
|
||||
useDevIcon = "COLOR";
|
||||
bgOpacity = 100;
|
||||
customTheme = "";
|
||||
};
|
||||
ShowConnections.enabled = true;
|
||||
ShowHiddenChannels = {
|
||||
enabled = true;
|
||||
hideUnreads = true;
|
||||
showMode = 0;
|
||||
defaultAllowedUsersAndRolesDropdownState = true;
|
||||
};
|
||||
ShowTimeoutDuration = {
|
||||
enabled = true;
|
||||
displayStyle = "ssalggnikool";
|
||||
};
|
||||
SilentTyping = {
|
||||
enabled = true;
|
||||
showIcon = false;
|
||||
contextMenu = true;
|
||||
isEnabled = true;
|
||||
};
|
||||
SpotifyCrack = {
|
||||
enabled = true;
|
||||
noSpotifyAutoPause = true;
|
||||
keepSpotifyActivityOnIdle = false;
|
||||
};
|
||||
SpotifyShareCommands.enabled = true;
|
||||
ThemeAttributes.enabled = true;
|
||||
Translate = {
|
||||
enabled = true;
|
||||
showChatBarButton = true;
|
||||
service = "google";
|
||||
deeplApiKey = "";
|
||||
autoTranslate = false;
|
||||
showAutoTranslateTooltip = true;
|
||||
receivedInput = "auto";
|
||||
receivedOutput = "en";
|
||||
sentInput = "auto";
|
||||
sentOutput = "zh-CN";
|
||||
showAutoTranslateAlert = false;
|
||||
};
|
||||
TypingIndicator.enabled = true;
|
||||
Unindent.enabled = true;
|
||||
UnlockedAvatarZoom.enabled = true;
|
||||
UnsuppressEmbeds.enabled = true;
|
||||
UserMessagesPronouns = {
|
||||
enabled = true;
|
||||
pronounsFormat = "LOWERCASE";
|
||||
showSelf = true;
|
||||
};
|
||||
UserVoiceShow = {
|
||||
enabled = true;
|
||||
showInUserProfileModal = true;
|
||||
showInMemberList = true;
|
||||
showInMessages = true;
|
||||
};
|
||||
USRBG = {
|
||||
enabled = true;
|
||||
nitroFirst = true;
|
||||
voiceBackground = true;
|
||||
};
|
||||
ValidReply.enabled = true;
|
||||
ValidUser.enabled = true;
|
||||
ViewIcons.enabled = true;
|
||||
VoiceDownload.enabled = true;
|
||||
VoiceMessages = {
|
||||
enabled = true;
|
||||
noiseSuppression = true;
|
||||
echoCancellation = true;
|
||||
};
|
||||
VolumeBooster = {
|
||||
enabled = true;
|
||||
multiplier = 2;
|
||||
};
|
||||
WebKeybinds.enabled = true;
|
||||
WebScreenShareFixes.enabled = true;
|
||||
YoutubeAdblock.enabled = true;
|
||||
NoTrack = {
|
||||
enabled = true;
|
||||
disableAnalytics = true;
|
||||
};
|
||||
WebContextMenus = {
|
||||
enabled = true;
|
||||
addBack = true;
|
||||
};
|
||||
Settings = {
|
||||
enabled = true;
|
||||
settingsLocation = "aboveNitro";
|
||||
};
|
||||
SupportHelper.enabled = true;
|
||||
FullUserInChatbox.enabled = true;
|
||||
BadgeAPI.enabled = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
5
home/programs/vpn.nix
Normal file
5
home/programs/vpn.nix
Normal file
@@ -0,0 +1,5 @@
|
||||
{pkgs, ...}: {
|
||||
home.packages = with pkgs; [
|
||||
openconnect
|
||||
];
|
||||
}
|
||||
Reference in New Issue
Block a user