mirror of
https://github.com/tuxdotrs/nix-config.git
synced 2026-09-19 16:49:04 +05:30
style: format code
This commit is contained in:
@@ -1,13 +1,11 @@
|
||||
{
|
||||
flake.modules.homeManager.core =
|
||||
{ userName, ... }:
|
||||
{
|
||||
programs.home-manager.enable = true;
|
||||
systemd.user.startServices = "sd-switch";
|
||||
flake.modules.homeManager.core = {userName, ...}: {
|
||||
programs.home-manager.enable = true;
|
||||
systemd.user.startServices = "sd-switch";
|
||||
|
||||
home = {
|
||||
username = "${userName}";
|
||||
homeDirectory = "/home/${userName}";
|
||||
};
|
||||
home = {
|
||||
username = "${userName}";
|
||||
homeDirectory = "/home/${userName}";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,18 +1,15 @@
|
||||
{ inputs, ... }:
|
||||
{
|
||||
flake.modules.homeManager.core =
|
||||
{
|
||||
lib,
|
||||
osConfig ? { },
|
||||
...
|
||||
}:
|
||||
{
|
||||
nixpkgs = lib.mkIf (!(osConfig.home-manager.useGlobalPkgs or false)) {
|
||||
config = {
|
||||
allowUnfree = true;
|
||||
joypixels.acceptLicense = true;
|
||||
};
|
||||
overlays = builtins.attrValues inputs.self.overlays;
|
||||
{inputs, ...}: {
|
||||
flake.modules.homeManager.core = {
|
||||
lib,
|
||||
osConfig ? {},
|
||||
...
|
||||
}: {
|
||||
nixpkgs = lib.mkIf (!(osConfig.home-manager.useGlobalPkgs or false)) {
|
||||
config = {
|
||||
allowUnfree = true;
|
||||
joypixels.acceptLicense = true;
|
||||
};
|
||||
overlays = builtins.attrValues inputs.self.overlays;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,38 +1,35 @@
|
||||
{
|
||||
flake.modules.homeManager.desktop =
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
configDir = "${config.xdg.configHome}/BraveSoftware/Brave-Browser";
|
||||
flake.modules.homeManager.desktop = {
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}: let
|
||||
configDir = "${config.xdg.configHome}/BraveSoftware/Brave-Browser";
|
||||
|
||||
extensionJson = ext: {
|
||||
name = "${configDir}/External Extensions/${ext.id}.json";
|
||||
value.text = builtins.toJSON {
|
||||
external_update_url = "https://clients2.google.com/service/update2/crx";
|
||||
};
|
||||
extensionJson = ext: {
|
||||
name = "${configDir}/External Extensions/${ext.id}.json";
|
||||
value.text = builtins.toJSON {
|
||||
external_update_url = "https://clients2.google.com/service/update2/crx";
|
||||
};
|
||||
|
||||
extensions = [
|
||||
{ id = "nkbihfbeogaeaoehlefnkodbefgpgknn"; } # Metamask
|
||||
{ id = "gppongmhjkpfnbhagpmjfkannfbllamg"; } # Wappalyzer
|
||||
{ id = "nngceckbapebfimnlniiiahkandclblb"; } # Bitwarden
|
||||
{ id = "bfnaelmomeimhlpmgjnjophhpkkoljpa"; } # Phantom
|
||||
{ id = "eimadpbcbfnmbkopoojfekhnkhdbieeh"; } # DarkReader
|
||||
];
|
||||
in
|
||||
{
|
||||
programs.chromium = {
|
||||
enable = true;
|
||||
package = pkgs.brave;
|
||||
commandLineArgs = [
|
||||
"--disable-features=WebRtcAllowInputVolumeAdjustment"
|
||||
"--force-device-scale-factor=1.0"
|
||||
];
|
||||
};
|
||||
|
||||
home.file = builtins.listToAttrs (map extensionJson extensions);
|
||||
};
|
||||
|
||||
extensions = [
|
||||
{id = "nkbihfbeogaeaoehlefnkodbefgpgknn";} # Metamask
|
||||
{id = "gppongmhjkpfnbhagpmjfkannfbllamg";} # Wappalyzer
|
||||
{id = "nngceckbapebfimnlniiiahkandclblb";} # Bitwarden
|
||||
{id = "bfnaelmomeimhlpmgjnjophhpkkoljpa";} # Phantom
|
||||
{id = "eimadpbcbfnmbkopoojfekhnkhdbieeh";} # DarkReader
|
||||
];
|
||||
in {
|
||||
programs.chromium = {
|
||||
enable = true;
|
||||
package = pkgs.brave;
|
||||
commandLineArgs = [
|
||||
"--disable-features=WebRtcAllowInputVolumeAdjustment"
|
||||
"--force-device-scale-factor=1.0"
|
||||
];
|
||||
};
|
||||
|
||||
home.file = builtins.listToAttrs (map extensionJson extensions);
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,56 +1,58 @@
|
||||
{
|
||||
flake.modules.homeManager.desktop =
|
||||
{ inputs, userName, ... }:
|
||||
{
|
||||
imports = [
|
||||
inputs.nixcord.homeModules.nixcord
|
||||
];
|
||||
flake.modules.homeManager.desktop = {
|
||||
inputs,
|
||||
userName,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
inputs.nixcord.homeModules.nixcord
|
||||
];
|
||||
|
||||
programs.nixcord = {
|
||||
enable = true;
|
||||
user = userName;
|
||||
discord.enable = false;
|
||||
vesktop.enable = true;
|
||||
config = {
|
||||
themeLinks = [
|
||||
"https://raw.githubusercontent.com/refact0r/system24/refs/heads/main/archive/flavors/spotify-text.theme.css"
|
||||
];
|
||||
frameless = true;
|
||||
plugins = {
|
||||
hideMedia.enable = true;
|
||||
anonymiseFileNames.enable = true;
|
||||
copyFileContents.enable = true;
|
||||
noTypingAnimation.enable = true;
|
||||
readAllNotificationsButton.enable = true;
|
||||
silentTyping.enable = true;
|
||||
validUser.enable = true;
|
||||
biggerStreamPreview.enable = true;
|
||||
ignoreActivities = {
|
||||
enable = true;
|
||||
ignorePlaying = true;
|
||||
ignoreWatching = true;
|
||||
};
|
||||
sortFriendRequests = {
|
||||
enable = true;
|
||||
showDates = true;
|
||||
};
|
||||
programs.nixcord = {
|
||||
enable = true;
|
||||
user = userName;
|
||||
discord.enable = false;
|
||||
vesktop.enable = true;
|
||||
config = {
|
||||
themeLinks = [
|
||||
"https://raw.githubusercontent.com/refact0r/system24/refs/heads/main/archive/flavors/spotify-text.theme.css"
|
||||
];
|
||||
frameless = true;
|
||||
plugins = {
|
||||
hideMedia.enable = true;
|
||||
anonymiseFileNames.enable = true;
|
||||
copyFileContents.enable = true;
|
||||
noTypingAnimation.enable = true;
|
||||
readAllNotificationsButton.enable = true;
|
||||
silentTyping.enable = true;
|
||||
validUser.enable = true;
|
||||
biggerStreamPreview.enable = true;
|
||||
ignoreActivities = {
|
||||
enable = true;
|
||||
ignorePlaying = true;
|
||||
ignoreWatching = true;
|
||||
};
|
||||
sortFriendRequests = {
|
||||
enable = true;
|
||||
showDates = true;
|
||||
};
|
||||
};
|
||||
dorion = {
|
||||
theme = "dark";
|
||||
zoom = "1.1";
|
||||
blur = "acrylic";
|
||||
sysTray = true;
|
||||
openOnStartup = true;
|
||||
autoClearCache = true;
|
||||
disableHardwareAccel = false;
|
||||
rpcServer = true;
|
||||
rpcProcessScanner = true;
|
||||
pushToTalk = true;
|
||||
pushToTalkKeys = [ "RControl" ];
|
||||
desktopNotifications = true;
|
||||
unreadBadge = true;
|
||||
};
|
||||
};
|
||||
dorion = {
|
||||
theme = "dark";
|
||||
zoom = "1.1";
|
||||
blur = "acrylic";
|
||||
sysTray = true;
|
||||
openOnStartup = true;
|
||||
autoClearCache = true;
|
||||
disableHardwareAccel = false;
|
||||
rpcServer = true;
|
||||
rpcProcessScanner = true;
|
||||
pushToTalk = true;
|
||||
pushToTalkKeys = ["RControl"];
|
||||
desktopNotifications = true;
|
||||
unreadBadge = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,75 +1,73 @@
|
||||
{
|
||||
flake.modules.homeManager.desktop =
|
||||
{
|
||||
pkgs,
|
||||
userName,
|
||||
...
|
||||
}:
|
||||
{
|
||||
programs.firefox = {
|
||||
enable = true;
|
||||
flake.modules.homeManager.desktop = {
|
||||
pkgs,
|
||||
userName,
|
||||
...
|
||||
}: {
|
||||
programs.firefox = {
|
||||
enable = true;
|
||||
|
||||
package = pkgs.firefox.override {
|
||||
extraPolicies = {
|
||||
CaptivePortal = false;
|
||||
DisableFirefoxStudies = true;
|
||||
DisablePocket = true;
|
||||
DisableTelemetry = true;
|
||||
DisableFirefoxAccounts = false;
|
||||
NoDefaultBookmarks = true;
|
||||
OfferToSaveLogins = false;
|
||||
OfferToSaveLoginsDefault = false;
|
||||
PasswordManagerEnabled = false;
|
||||
FirefoxHome = {
|
||||
Search = true;
|
||||
Pocket = false;
|
||||
Snippets = false;
|
||||
TopSites = false;
|
||||
Highlights = false;
|
||||
};
|
||||
UserMessaging = {
|
||||
ExtensionRecommendations = false;
|
||||
SkipOnboarding = true;
|
||||
};
|
||||
package = pkgs.firefox.override {
|
||||
extraPolicies = {
|
||||
CaptivePortal = false;
|
||||
DisableFirefoxStudies = true;
|
||||
DisablePocket = true;
|
||||
DisableTelemetry = true;
|
||||
DisableFirefoxAccounts = false;
|
||||
NoDefaultBookmarks = true;
|
||||
OfferToSaveLogins = false;
|
||||
OfferToSaveLoginsDefault = false;
|
||||
PasswordManagerEnabled = false;
|
||||
FirefoxHome = {
|
||||
Search = true;
|
||||
Pocket = false;
|
||||
Snippets = false;
|
||||
TopSites = false;
|
||||
Highlights = false;
|
||||
};
|
||||
};
|
||||
|
||||
profiles = {
|
||||
${userName} = {
|
||||
id = 0;
|
||||
name = "tux";
|
||||
search = {
|
||||
force = true;
|
||||
default = "google";
|
||||
};
|
||||
settings = {
|
||||
"general.smoothScroll" = true;
|
||||
"extensions.activeThemeID" = "firefox-compact-dark@mozilla.org";
|
||||
"layout.css.prefers-color-scheme.content-override" = 0;
|
||||
"browser.compactmode.show" = true;
|
||||
"browser.tabs.firefox-view" = false;
|
||||
"browser.bookmarks.addedImportButton" = false;
|
||||
"extensions.pocket.enabled" = false;
|
||||
"browser.fullscreen.autohide" = false;
|
||||
};
|
||||
extraConfig = ''
|
||||
user_pref("toolkit.legacyUserProfileCustomizations.stylesheets", true);
|
||||
user_pref("full-screen-api.ignore-widgets", true);
|
||||
user_pref("media.ffmpeg.vaapi.enabled", true);
|
||||
user_pref("media.rdd-vpx.enabled", true);
|
||||
'';
|
||||
|
||||
extensions.packages = with pkgs.nur.repos.rycee.firefox-addons; [
|
||||
ublock-origin
|
||||
facebook-container
|
||||
metamask
|
||||
darkreader
|
||||
bitwarden
|
||||
wappalyzer
|
||||
clearurls
|
||||
];
|
||||
UserMessaging = {
|
||||
ExtensionRecommendations = false;
|
||||
SkipOnboarding = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
profiles = {
|
||||
${userName} = {
|
||||
id = 0;
|
||||
name = "tux";
|
||||
search = {
|
||||
force = true;
|
||||
default = "google";
|
||||
};
|
||||
settings = {
|
||||
"general.smoothScroll" = true;
|
||||
"extensions.activeThemeID" = "firefox-compact-dark@mozilla.org";
|
||||
"layout.css.prefers-color-scheme.content-override" = 0;
|
||||
"browser.compactmode.show" = true;
|
||||
"browser.tabs.firefox-view" = false;
|
||||
"browser.bookmarks.addedImportButton" = false;
|
||||
"extensions.pocket.enabled" = false;
|
||||
"browser.fullscreen.autohide" = false;
|
||||
};
|
||||
extraConfig = ''
|
||||
user_pref("toolkit.legacyUserProfileCustomizations.stylesheets", true);
|
||||
user_pref("full-screen-api.ignore-widgets", true);
|
||||
user_pref("media.ffmpeg.vaapi.enabled", true);
|
||||
user_pref("media.rdd-vpx.enabled", true);
|
||||
'';
|
||||
|
||||
extensions.packages = with pkgs.nur.repos.rycee.firefox-addons; [
|
||||
ublock-origin
|
||||
facebook-container
|
||||
metamask
|
||||
darkreader
|
||||
bitwarden
|
||||
wappalyzer
|
||||
clearurls
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,40 +1,42 @@
|
||||
{
|
||||
flake.modules.homeManager.desktop =
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
# TODO: Hyprland 0.55 switched to Lua-based configuration.
|
||||
# HM module is updated but I'm too lazy at this point so we symlink our config instead.
|
||||
wayland.windowManager.hyprland = {
|
||||
enable = true;
|
||||
package = null;
|
||||
portalPackage = null;
|
||||
xwayland.enable = true;
|
||||
configType = "hyprlang";
|
||||
systemd.variables = [ "--all" ];
|
||||
};
|
||||
|
||||
home.file = {
|
||||
".config/hypr/config".source =
|
||||
config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/Projects/hypr/config";
|
||||
".config/hypr/hyprland.lua".source =
|
||||
config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/Projects/hypr/hyprland.lua";
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [
|
||||
ags
|
||||
awww
|
||||
grim
|
||||
slurp
|
||||
hyprshot
|
||||
wl-clipboard
|
||||
wl-screenrec
|
||||
(writeShellScriptBin "hypr-screenshot" ''
|
||||
hyprshot -m region -r ppm - | satty --filename -
|
||||
'')
|
||||
|
||||
(writeShellScriptBin "hypr-screenrecord" ''
|
||||
wl-screenrec -g "$(slurp)"
|
||||
'')
|
||||
];
|
||||
flake.modules.homeManager.desktop = {
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
# TODO: Hyprland 0.55 switched to Lua-based configuration.
|
||||
# HM module is updated but I'm too lazy at this point so we symlink our config instead.
|
||||
wayland.windowManager.hyprland = {
|
||||
enable = true;
|
||||
package = null;
|
||||
portalPackage = null;
|
||||
xwayland.enable = true;
|
||||
configType = "hyprlang";
|
||||
systemd.variables = ["--all"];
|
||||
};
|
||||
|
||||
home.file = {
|
||||
".config/hypr/config".source =
|
||||
config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/Projects/hypr/config";
|
||||
".config/hypr/hyprland.lua".source =
|
||||
config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/Projects/hypr/hyprland.lua";
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [
|
||||
ags
|
||||
awww
|
||||
grim
|
||||
slurp
|
||||
hyprshot
|
||||
wl-clipboard
|
||||
wl-screenrec
|
||||
(writeShellScriptBin "hypr-screenshot" ''
|
||||
hyprshot -m region -r ppm - | satty --filename -
|
||||
'')
|
||||
|
||||
(writeShellScriptBin "hypr-screenrecord" ''
|
||||
wl-screenrec -g "$(slurp)"
|
||||
'')
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,25 +1,21 @@
|
||||
{ inputs, ... }:
|
||||
{
|
||||
flake.modules.homeManager.desktop =
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib;
|
||||
let
|
||||
{inputs, ...}: {
|
||||
flake.modules.homeManager.desktop = {
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.tnix.services.lan-mouse;
|
||||
in
|
||||
{
|
||||
imports = [ inputs.lan-mouse.homeManagerModules.default ];
|
||||
in {
|
||||
imports = [inputs.lan-mouse.homeManagerModules.default];
|
||||
|
||||
options.tnix.services.lan-mouse = {
|
||||
enable = mkEnableOption "Enable Lan-Mouse";
|
||||
|
||||
settings = mkOption {
|
||||
type = (pkgs.formats.toml { }).type;
|
||||
default = { };
|
||||
type = (pkgs.formats.toml {}).type;
|
||||
default = {};
|
||||
description = ''
|
||||
TOML configuration for lan-mouse.
|
||||
See <https://github.com/feschber/lan-mouse/> for available options.
|
||||
@@ -28,7 +24,6 @@
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
|
||||
programs.lan-mouse = {
|
||||
enable = true;
|
||||
systemd = true;
|
||||
|
||||
@@ -1,17 +1,13 @@
|
||||
{ inputs, ... }:
|
||||
{
|
||||
flake.modules.homeManager.desktop =
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib;
|
||||
let
|
||||
{inputs, ...}: {
|
||||
flake.modules.homeManager.desktop = {
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.tnix.desktop.mangowm;
|
||||
in
|
||||
{
|
||||
in {
|
||||
imports = [
|
||||
inputs.mango.hmModules.mango
|
||||
];
|
||||
@@ -21,12 +17,12 @@
|
||||
|
||||
monitorRule = mkOption {
|
||||
type = with types; listOf str;
|
||||
default = [ ];
|
||||
default = [];
|
||||
};
|
||||
|
||||
tagRule = mkOption {
|
||||
type = with types; listOf str;
|
||||
default = [ ];
|
||||
default = [];
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -1,24 +1,21 @@
|
||||
{
|
||||
flake.modules.homeManager.desktop =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
programs.mpv = {
|
||||
enable = true;
|
||||
flake.modules.homeManager.desktop = {pkgs, ...}: {
|
||||
programs.mpv = {
|
||||
enable = true;
|
||||
|
||||
scripts = (
|
||||
with pkgs.mpvScripts;
|
||||
[
|
||||
modernz
|
||||
thumbfast
|
||||
mpris
|
||||
mpv-image-viewer.image-positioning
|
||||
]
|
||||
);
|
||||
scripts = (
|
||||
with pkgs.mpvScripts; [
|
||||
modernz
|
||||
thumbfast
|
||||
mpris
|
||||
mpv-image-viewer.image-positioning
|
||||
]
|
||||
);
|
||||
|
||||
config = {
|
||||
osc = "no";
|
||||
border = "no";
|
||||
};
|
||||
config = {
|
||||
osc = "no";
|
||||
border = "no";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,32 +1,30 @@
|
||||
{
|
||||
flake.modules.homeManager.desktop =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.pointerCursor = {
|
||||
enable = true;
|
||||
package = pkgs.bibata-cursors;
|
||||
name = "Bibata-Modern-Ice";
|
||||
size = 28;
|
||||
};
|
||||
|
||||
qt = {
|
||||
enable = true;
|
||||
style.name = "adwaita-dark";
|
||||
};
|
||||
|
||||
gtk = {
|
||||
enable = true;
|
||||
theme = {
|
||||
name = "adw-gtk3-dark";
|
||||
package = pkgs.adw-gtk3;
|
||||
};
|
||||
iconTheme = {
|
||||
package = pkgs.tela-icon-theme;
|
||||
name = "Tela-black";
|
||||
};
|
||||
};
|
||||
|
||||
# Make GTK4/libadwaita apps prefer dark too (they ignore gtk.theme).
|
||||
dconf.settings."org/gnome/desktop/interface".color-scheme = "prefer-dark";
|
||||
flake.modules.homeManager.desktop = {pkgs, ...}: {
|
||||
home.pointerCursor = {
|
||||
enable = true;
|
||||
package = pkgs.bibata-cursors;
|
||||
name = "Bibata-Modern-Ice";
|
||||
size = 28;
|
||||
};
|
||||
|
||||
qt = {
|
||||
enable = true;
|
||||
style.name = "adwaita-dark";
|
||||
};
|
||||
|
||||
gtk = {
|
||||
enable = true;
|
||||
theme = {
|
||||
name = "adw-gtk3-dark";
|
||||
package = pkgs.adw-gtk3;
|
||||
};
|
||||
iconTheme = {
|
||||
package = pkgs.tela-icon-theme;
|
||||
name = "Tela-black";
|
||||
};
|
||||
};
|
||||
|
||||
# Make GTK4/libadwaita apps prefer dark too (they ignore gtk.theme).
|
||||
dconf.settings."org/gnome/desktop/interface".color-scheme = "prefer-dark";
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,69 +1,64 @@
|
||||
{
|
||||
flake.modules.homeManager.desktop =
|
||||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
programs.vicinae = {
|
||||
flake.modules.homeManager.desktop = {pkgs, ...}: {
|
||||
programs.vicinae = {
|
||||
enable = true;
|
||||
systemd = {
|
||||
enable = true;
|
||||
systemd = {
|
||||
enable = true;
|
||||
autoStart = true;
|
||||
autoStart = true;
|
||||
};
|
||||
useLayerShell = true;
|
||||
|
||||
extensions = with pkgs.vicinae-extensions; [
|
||||
# @TODO broken in upstream repo
|
||||
# bluetooth
|
||||
nix
|
||||
ssh
|
||||
awww-switcher
|
||||
process-manager
|
||||
pulseaudio
|
||||
wifi-commander
|
||||
port-killer
|
||||
silverbullet
|
||||
];
|
||||
|
||||
settings = {
|
||||
close_on_focus_loss = true;
|
||||
consider_preedit = true;
|
||||
pop_to_root_on_close = true;
|
||||
favicon_service = "twenty";
|
||||
search_files_in_root = true;
|
||||
font = {
|
||||
normal = {
|
||||
size = 10;
|
||||
family = "JetBrainsMono Nerd Font";
|
||||
};
|
||||
};
|
||||
useLayerShell = true;
|
||||
|
||||
extensions = with pkgs.vicinae-extensions; [
|
||||
# @TODO broken in upstream repo
|
||||
# bluetooth
|
||||
nix
|
||||
ssh
|
||||
awww-switcher
|
||||
process-manager
|
||||
pulseaudio
|
||||
wifi-commander
|
||||
port-killer
|
||||
silverbullet
|
||||
];
|
||||
|
||||
settings = {
|
||||
close_on_focus_loss = true;
|
||||
consider_preedit = true;
|
||||
pop_to_root_on_close = true;
|
||||
favicon_service = "twenty";
|
||||
search_files_in_root = true;
|
||||
font = {
|
||||
normal = {
|
||||
size = 10;
|
||||
family = "JetBrainsMono Nerd Font";
|
||||
};
|
||||
theme = {
|
||||
light = {
|
||||
name = "vicinae-light";
|
||||
icon_theme = "default";
|
||||
};
|
||||
theme = {
|
||||
light = {
|
||||
name = "vicinae-light";
|
||||
icon_theme = "default";
|
||||
};
|
||||
dark = {
|
||||
name = "vicinae-dark";
|
||||
icon_theme = "default";
|
||||
};
|
||||
};
|
||||
launcher_window = {
|
||||
opacity = 0.98;
|
||||
dark = {
|
||||
name = "vicinae-dark";
|
||||
icon_theme = "default";
|
||||
};
|
||||
};
|
||||
launcher_window = {
|
||||
opacity = 0.98;
|
||||
};
|
||||
|
||||
imports = [ "/run/secrets/vicinae.json" ];
|
||||
imports = ["/run/secrets/vicinae.json"];
|
||||
|
||||
providers = {
|
||||
"@sovereign/vicinae-extension-awww-switcher-0" = {
|
||||
"preferences" = {
|
||||
"transitionDuration" = "1";
|
||||
"transitionType" = "center";
|
||||
"wallpaperPath" = "/home/tux/Wallpapers/";
|
||||
};
|
||||
providers = {
|
||||
"@sovereign/vicinae-extension-awww-switcher-0" = {
|
||||
"preferences" = {
|
||||
"transitionDuration" = "1";
|
||||
"transitionType" = "center";
|
||||
"wallpaperPath" = "/home/tux/Wallpapers/";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{ inputs, ... }: {
|
||||
flake.modules.homeManager.desktop = { pkgs, ... }: {
|
||||
{inputs, ...}: {
|
||||
flake.modules.homeManager.desktop = {pkgs, ...}: {
|
||||
imports = [
|
||||
inputs.voxtype.homeManagerModules.default
|
||||
];
|
||||
|
||||
@@ -1,33 +1,31 @@
|
||||
{
|
||||
flake.modules.homeManager.desktop =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
programs.wezterm = {
|
||||
enable = true;
|
||||
package = pkgs.wezterm-git;
|
||||
enableZshIntegration = false;
|
||||
flake.modules.homeManager.desktop = {pkgs, ...}: {
|
||||
programs.wezterm = {
|
||||
enable = true;
|
||||
package = pkgs.wezterm-git;
|
||||
enableZshIntegration = false;
|
||||
|
||||
extraConfig = ''
|
||||
local wezterm = require 'wezterm'
|
||||
local config = {}
|
||||
extraConfig = ''
|
||||
local wezterm = require 'wezterm'
|
||||
local config = {}
|
||||
|
||||
config.check_for_updates = false
|
||||
config.check_for_updates = false
|
||||
|
||||
config.window_close_confirmation = 'NeverPrompt'
|
||||
config.color_scheme = 'Poimandres'
|
||||
config.colors = {
|
||||
background = "#0f0f0f"
|
||||
}
|
||||
config.enable_tab_bar = false
|
||||
config.font = wezterm.font_with_fallback {
|
||||
'JetBrainsMono Nerd Font',
|
||||
}
|
||||
config.font_size = 12.0
|
||||
config.window_background_opacity = 1
|
||||
config.audible_bell = "Disabled"
|
||||
config.window_close_confirmation = 'NeverPrompt'
|
||||
config.color_scheme = 'Poimandres'
|
||||
config.colors = {
|
||||
background = "#0f0f0f"
|
||||
}
|
||||
config.enable_tab_bar = false
|
||||
config.font = wezterm.font_with_fallback {
|
||||
'JetBrainsMono Nerd Font',
|
||||
}
|
||||
config.font_size = 12.0
|
||||
config.window_background_opacity = 1
|
||||
config.audible_bell = "Disabled"
|
||||
|
||||
return config
|
||||
'';
|
||||
};
|
||||
return config
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
flake.modules.homeManager.desktop = { osConfig, ... }: {
|
||||
flake.modules.homeManager.desktop = {osConfig, ...}: {
|
||||
programs.lutris = {
|
||||
enable = true;
|
||||
steamPackage = osConfig.programs.steam.package;
|
||||
|
||||
@@ -1,27 +1,25 @@
|
||||
{
|
||||
flake.modules.homeManager.shell =
|
||||
{
|
||||
userName,
|
||||
userEmail,
|
||||
...
|
||||
}:
|
||||
{
|
||||
programs.git = {
|
||||
enable = true;
|
||||
signing = {
|
||||
key = "~/.ssh/id_ed25519.pub";
|
||||
signByDefault = true;
|
||||
};
|
||||
lfs.enable = true;
|
||||
settings = {
|
||||
user = {
|
||||
name = "${userName}";
|
||||
email = "${userEmail}";
|
||||
};
|
||||
init.defaultBranch = "main";
|
||||
commit.gpgSign = true;
|
||||
gpg.format = "ssh";
|
||||
flake.modules.homeManager.shell = {
|
||||
userName,
|
||||
userEmail,
|
||||
...
|
||||
}: {
|
||||
programs.git = {
|
||||
enable = true;
|
||||
signing = {
|
||||
key = "~/.ssh/id_ed25519.pub";
|
||||
signByDefault = true;
|
||||
};
|
||||
lfs.enable = true;
|
||||
settings = {
|
||||
user = {
|
||||
name = "${userName}";
|
||||
email = "${userEmail}";
|
||||
};
|
||||
init.defaultBranch = "main";
|
||||
commit.gpgSign = true;
|
||||
gpg.format = "ssh";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,17 +1,15 @@
|
||||
{
|
||||
flake.modules.homeManager.shell =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
systemctl-tui
|
||||
zip
|
||||
unzip
|
||||
pciutils
|
||||
usbutils
|
||||
jq
|
||||
dig
|
||||
lsof
|
||||
trok
|
||||
];
|
||||
};
|
||||
flake.modules.homeManager.shell = {pkgs, ...}: {
|
||||
home.packages = with pkgs; [
|
||||
systemctl-tui
|
||||
zip
|
||||
unzip
|
||||
pciutils
|
||||
usbutils
|
||||
jq
|
||||
dig
|
||||
lsof
|
||||
trok
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,40 +1,38 @@
|
||||
{
|
||||
flake.modules.homeManager.shell =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.file = {
|
||||
".config/nvim" = {
|
||||
recursive = true;
|
||||
source = "${pkgs.tnvim}";
|
||||
};
|
||||
};
|
||||
|
||||
programs = {
|
||||
neovim = {
|
||||
enable = true;
|
||||
defaultEditor = true;
|
||||
};
|
||||
};
|
||||
|
||||
home = {
|
||||
packages = with pkgs; [
|
||||
python3
|
||||
nodejs
|
||||
bun
|
||||
pnpm
|
||||
go
|
||||
rustup
|
||||
typescript
|
||||
neovide
|
||||
nil
|
||||
statix
|
||||
deadnix
|
||||
alejandra
|
||||
luarocks
|
||||
gdu
|
||||
gcc
|
||||
wakatime-cli
|
||||
];
|
||||
flake.modules.homeManager.shell = {pkgs, ...}: {
|
||||
home.file = {
|
||||
".config/nvim" = {
|
||||
recursive = true;
|
||||
source = "${pkgs.tnvim}";
|
||||
};
|
||||
};
|
||||
|
||||
programs = {
|
||||
neovim = {
|
||||
enable = true;
|
||||
defaultEditor = true;
|
||||
};
|
||||
};
|
||||
|
||||
home = {
|
||||
packages = with pkgs; [
|
||||
python3
|
||||
nodejs
|
||||
bun
|
||||
pnpm
|
||||
go
|
||||
rustup
|
||||
typescript
|
||||
neovide
|
||||
nil
|
||||
statix
|
||||
deadnix
|
||||
alejandra
|
||||
luarocks
|
||||
gdu
|
||||
gcc
|
||||
wakatime-cli
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
flake.modules.homeManager.shell = { pkgs, ... }: {
|
||||
flake.modules.homeManager.shell = {pkgs, ...}: {
|
||||
programs.opencode = {
|
||||
enable = true;
|
||||
package = pkgs.opencode-git;
|
||||
@@ -25,7 +25,7 @@
|
||||
};
|
||||
};
|
||||
};
|
||||
plugin = [ "@dietrichgebert/ponytail" ];
|
||||
plugin = ["@dietrichgebert/ponytail"];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,155 +1,138 @@
|
||||
{
|
||||
flake.modules.homeManager.shell =
|
||||
{ pkgs, ... }:
|
||||
let
|
||||
bg = "default";
|
||||
fg = "default";
|
||||
bg2 = "brightblack";
|
||||
fg2 = "white";
|
||||
color = c: "#{@${c}}";
|
||||
flake.modules.homeManager.shell = {pkgs, ...}: let
|
||||
bg = "default";
|
||||
fg = "default";
|
||||
bg2 = "brightblack";
|
||||
fg2 = "white";
|
||||
color = c: "#{@${c}}";
|
||||
|
||||
indicator =
|
||||
let
|
||||
accent = color "indicator_color";
|
||||
content = " ";
|
||||
in
|
||||
"#[reverse,fg=${accent}]#{?client_prefix,${content},}";
|
||||
indicator = let
|
||||
accent = color "indicator_color";
|
||||
content = " ";
|
||||
in "#[reverse,fg=${accent}]#{?client_prefix,${content},}";
|
||||
|
||||
current_window =
|
||||
let
|
||||
accent = color "main_accent";
|
||||
index = "#[reverse,fg=${accent},bg=${fg}] #I ";
|
||||
name = "#[fg=${bg2},bg=${fg2}] #W ";
|
||||
# flags = "#{?window_flags,#{window_flags}, }";
|
||||
in
|
||||
"${index}${name}";
|
||||
current_window = let
|
||||
accent = color "main_accent";
|
||||
index = "#[reverse,fg=${accent},bg=${fg}] #I ";
|
||||
name = "#[fg=${bg2},bg=${fg2}] #W ";
|
||||
# flags = "#{?window_flags,#{window_flags}, }";
|
||||
in "${index}${name}";
|
||||
|
||||
window_status =
|
||||
let
|
||||
accent = color "window_color";
|
||||
index = "#[reverse,fg=${accent},bg=${fg}] #I ";
|
||||
name = "#[fg=${bg2},bg=${fg2}] #W ";
|
||||
# flags = "#{?window_flags,#{window_flags}, }";
|
||||
in
|
||||
"${index}${name}";
|
||||
window_status = let
|
||||
accent = color "window_color";
|
||||
index = "#[reverse,fg=${accent},bg=${fg}] #I ";
|
||||
name = "#[fg=${bg2},bg=${fg2}] #W ";
|
||||
# flags = "#{?window_flags,#{window_flags}, }";
|
||||
in "${index}${name}";
|
||||
|
||||
battery =
|
||||
let
|
||||
percentage = pkgs.writeShellScript "percentage" (
|
||||
if pkgs.stdenv.isDarwin then
|
||||
''
|
||||
echo $(pmset -g batt | grep -o "[0-9]\+%" | tr '%' ' ')
|
||||
''
|
||||
else
|
||||
''
|
||||
path="/org/freedesktop/UPower/devices/DisplayDevice"
|
||||
echo $(${pkgs.upower}/bin/upower -i $path | grep -o "[0-9]\+%" | tr '%' ' ')
|
||||
''
|
||||
);
|
||||
state = pkgs.writeShellScript "state" (
|
||||
if pkgs.stdenv.isDarwin then
|
||||
''
|
||||
echo $(pmset -g batt | awk '{print $4}')
|
||||
''
|
||||
else
|
||||
''
|
||||
path="/org/freedesktop/UPower/devices/DisplayDevice"
|
||||
echo $(${pkgs.upower}/bin/upower -i $path | grep state | awk '{print $2}')
|
||||
''
|
||||
);
|
||||
icon = pkgs.writeShellScript "icon" ''
|
||||
percentage=$(${percentage})
|
||||
state=$(${state})
|
||||
if [ "$state" == "charging" ] || [ "$state" == "fully-charged" ]; then echo ""
|
||||
elif [ $percentage -ge 75 ]; then echo ""
|
||||
elif [ $percentage -ge 50 ]; then echo ""
|
||||
elif [ $percentage -ge 25 ]; then echo ""
|
||||
elif [ $percentage -ge 0 ]; then echo ""
|
||||
fi
|
||||
'';
|
||||
color = pkgs.writeShellScript "color" ''
|
||||
percentage=$(${percentage})
|
||||
state=$(${state})
|
||||
if [ "$state" == "charging" ] || [ "$state" == "fully-charged" ]; then echo "green"
|
||||
elif [ $percentage -ge 75 ]; then echo "green"
|
||||
elif [ $percentage -ge 50 ]; then echo "${fg2}"
|
||||
elif [ $percentage -ge 30 ]; then echo "yellow"
|
||||
elif [ $percentage -ge 0 ]; then echo "red"
|
||||
fi
|
||||
'';
|
||||
in
|
||||
"#[fg=#(${color})]#(${icon}) #[fg=${fg}]#(${percentage})%";
|
||||
battery = let
|
||||
percentage = pkgs.writeShellScript "percentage" (
|
||||
if pkgs.stdenv.isDarwin
|
||||
then ''
|
||||
echo $(pmset -g batt | grep -o "[0-9]\+%" | tr '%' ' ')
|
||||
''
|
||||
else ''
|
||||
path="/org/freedesktop/UPower/devices/DisplayDevice"
|
||||
echo $(${pkgs.upower}/bin/upower -i $path | grep -o "[0-9]\+%" | tr '%' ' ')
|
||||
''
|
||||
);
|
||||
state = pkgs.writeShellScript "state" (
|
||||
if pkgs.stdenv.isDarwin
|
||||
then ''
|
||||
echo $(pmset -g batt | awk '{print $4}')
|
||||
''
|
||||
else ''
|
||||
path="/org/freedesktop/UPower/devices/DisplayDevice"
|
||||
echo $(${pkgs.upower}/bin/upower -i $path | grep state | awk '{print $2}')
|
||||
''
|
||||
);
|
||||
icon = pkgs.writeShellScript "icon" ''
|
||||
percentage=$(${percentage})
|
||||
state=$(${state})
|
||||
if [ "$state" == "charging" ] || [ "$state" == "fully-charged" ]; then echo ""
|
||||
elif [ $percentage -ge 75 ]; then echo ""
|
||||
elif [ $percentage -ge 50 ]; then echo ""
|
||||
elif [ $percentage -ge 25 ]; then echo ""
|
||||
elif [ $percentage -ge 0 ]; then echo ""
|
||||
fi
|
||||
'';
|
||||
color = pkgs.writeShellScript "color" ''
|
||||
percentage=$(${percentage})
|
||||
state=$(${state})
|
||||
if [ "$state" == "charging" ] || [ "$state" == "fully-charged" ]; then echo "green"
|
||||
elif [ $percentage -ge 75 ]; then echo "green"
|
||||
elif [ $percentage -ge 50 ]; then echo "${fg2}"
|
||||
elif [ $percentage -ge 30 ]; then echo "yellow"
|
||||
elif [ $percentage -ge 0 ]; then echo "red"
|
||||
fi
|
||||
'';
|
||||
in "#[fg=#(${color})]#(${icon}) #[fg=${fg}]#(${percentage})%";
|
||||
|
||||
pwd =
|
||||
let
|
||||
accent = color "main_accent";
|
||||
icon = "#[fg=${accent}] ";
|
||||
format = "#[fg=${fg}]#{b:pane_current_path}";
|
||||
in
|
||||
"${icon}${format}";
|
||||
pwd = let
|
||||
accent = color "main_accent";
|
||||
icon = "#[fg=${accent}] ";
|
||||
format = "#[fg=${fg}]#{b:pane_current_path}";
|
||||
in "${icon}${format}";
|
||||
|
||||
git =
|
||||
let
|
||||
icon = pkgs.writeShellScript "branch" ''
|
||||
git -C "$1" branch && echo " "
|
||||
'';
|
||||
branch = pkgs.writeShellScript "branch" ''
|
||||
git -C "$1" rev-parse --abbrev-ref HEAD
|
||||
'';
|
||||
in
|
||||
"#[fg=magenta]#(${icon} #{pane_current_path})#(${branch} #{pane_current_path})";
|
||||
git = let
|
||||
icon = pkgs.writeShellScript "branch" ''
|
||||
git -C "$1" branch && echo " "
|
||||
'';
|
||||
branch = pkgs.writeShellScript "branch" ''
|
||||
git -C "$1" rev-parse --abbrev-ref HEAD
|
||||
'';
|
||||
in "#[fg=magenta]#(${icon} #{pane_current_path})#(${branch} #{pane_current_path})";
|
||||
|
||||
separator = "#[fg=${fg}]|";
|
||||
in
|
||||
{
|
||||
programs.tmux = {
|
||||
enable = true;
|
||||
baseIndex = 1;
|
||||
escapeTime = 0;
|
||||
mouse = true;
|
||||
extraConfig = ''
|
||||
set-option -sa terminal-overrides ",xterm*:Tc"
|
||||
set-option -g status-position top
|
||||
unbind r
|
||||
bind r source-file ~/.config/tmux/tmux.conf
|
||||
separator = "#[fg=${fg}]|";
|
||||
in {
|
||||
programs.tmux = {
|
||||
enable = true;
|
||||
baseIndex = 1;
|
||||
escapeTime = 0;
|
||||
mouse = true;
|
||||
extraConfig = ''
|
||||
set-option -sa terminal-overrides ",xterm*:Tc"
|
||||
set-option -g status-position top
|
||||
unbind r
|
||||
bind r source-file ~/.config/tmux/tmux.conf
|
||||
|
||||
# remap prefix from C-b to C-Space
|
||||
# unbind C-b
|
||||
# set -g prefix C-Space
|
||||
# bind C-Space send-prefix
|
||||
# remap prefix from C-b to C-Space
|
||||
# unbind C-b
|
||||
# set -g prefix C-Space
|
||||
# bind C-Space send-prefix
|
||||
|
||||
# split panes using | and -
|
||||
unbind '"'
|
||||
unbind %
|
||||
bind | split-window -h
|
||||
bind - split-window -v
|
||||
# split panes using | and -
|
||||
unbind '"'
|
||||
unbind %
|
||||
bind | split-window -h
|
||||
bind - split-window -v
|
||||
|
||||
# Start windows and panes at 1, not 0
|
||||
set -g base-index 1
|
||||
set -g pane-base-index 1
|
||||
set-window-option -g pane-base-index 1
|
||||
set-option -g renumber-windows on
|
||||
# Start windows and panes at 1, not 0
|
||||
set -g base-index 1
|
||||
set -g pane-base-index 1
|
||||
set-window-option -g pane-base-index 1
|
||||
set-option -g renumber-windows on
|
||||
|
||||
# switch panes using Alt-arrow without prefix
|
||||
bind -n M-Left select-pane -L
|
||||
bind -n M-Right select-pane -R
|
||||
bind -n M-Up select-pane -U
|
||||
bind -n M-Down select-pane -D
|
||||
# switch panes using Alt-arrow without prefix
|
||||
bind -n M-Left select-pane -L
|
||||
bind -n M-Right select-pane -R
|
||||
bind -n M-Up select-pane -U
|
||||
bind -n M-Down select-pane -D
|
||||
|
||||
set-option -g default-terminal "screen-256color"
|
||||
set-option -g status-right-length 100
|
||||
set-option -g @indicator_color "yellow"
|
||||
set-option -g @window_color "magenta"
|
||||
set-option -g @main_accent "blue"
|
||||
set-option -g pane-active-border fg=black
|
||||
set-option -g pane-border-style fg=black
|
||||
set-option -g status-style "bg=${bg} fg=${fg}"
|
||||
set-option -g status-left "${indicator}"
|
||||
set-option -g status-right "${git} ${pwd} ${separator} ${battery}"
|
||||
set-option -g window-status-current-format "${current_window}"
|
||||
set-option -g window-status-format "${window_status}"
|
||||
set-option -g window-status-separator ""
|
||||
'';
|
||||
};
|
||||
set-option -g default-terminal "screen-256color"
|
||||
set-option -g status-right-length 100
|
||||
set-option -g @indicator_color "yellow"
|
||||
set-option -g @window_color "magenta"
|
||||
set-option -g @main_accent "blue"
|
||||
set-option -g pane-active-border fg=black
|
||||
set-option -g pane-border-style fg=black
|
||||
set-option -g status-style "bg=${bg} fg=${fg}"
|
||||
set-option -g status-left "${indicator}"
|
||||
set-option -g status-right "${git} ${pwd} ${separator} ${battery}"
|
||||
set-option -g window-status-current-format "${current_window}"
|
||||
set-option -g window-status-format "${window_status}"
|
||||
set-option -g window-status-separator ""
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
flake.modules.homeManager.shell = {
|
||||
programs.zoxide = {
|
||||
enable = true;
|
||||
options = [ "--cmd cd" ];
|
||||
options = ["--cmd cd"];
|
||||
enableZshIntegration = true;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,31 +1,28 @@
|
||||
{ lib, ... }:
|
||||
{
|
||||
flake.modules.homeManager.shell =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
programs.zsh = {
|
||||
enable = true;
|
||||
history = {
|
||||
append = true;
|
||||
share = true;
|
||||
expireDuplicatesFirst = true;
|
||||
ignoreDups = true;
|
||||
size = 1000000;
|
||||
save = 1000000;
|
||||
path = "$HOME/.local/share/zsh/.zsh_history";
|
||||
};
|
||||
fastSyntaxHighlighting.enable = true;
|
||||
autosuggestion.enable = true;
|
||||
initContent = ''
|
||||
${lib.getExe pkgs.fastfetch}
|
||||
bindkey "^A" vi-beginning-of-line
|
||||
bindkey "^E" vi-end-of-line
|
||||
bindkey '^R' fzf-history-widget
|
||||
|
||||
PATH=$PATH:~/.cargo/bin:~/.local/bin
|
||||
alias stui='systemctl-tui'
|
||||
alias vim='nvim --clean'
|
||||
'';
|
||||
{lib, ...}: {
|
||||
flake.modules.homeManager.shell = {pkgs, ...}: {
|
||||
programs.zsh = {
|
||||
enable = true;
|
||||
history = {
|
||||
append = true;
|
||||
share = true;
|
||||
expireDuplicatesFirst = true;
|
||||
ignoreDups = true;
|
||||
size = 1000000;
|
||||
save = 1000000;
|
||||
path = "$HOME/.local/share/zsh/.zsh_history";
|
||||
};
|
||||
fastSyntaxHighlighting.enable = true;
|
||||
autosuggestion.enable = true;
|
||||
initContent = ''
|
||||
${lib.getExe pkgs.fastfetch}
|
||||
bindkey "^A" vi-beginning-of-line
|
||||
bindkey "^E" vi-end-of-line
|
||||
bindkey '^R' fzf-history-widget
|
||||
|
||||
PATH=$PATH:~/.cargo/bin:~/.local/bin
|
||||
alias stui='systemctl-tui'
|
||||
alias vim='nvim --clean'
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user